Previous File   Multiple Pages   Next File

* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 1

0001 * F4$IOS-B - DEC 12 2006 - VERSION 1 0002 * 0003 * FORTRAN COMPILER IO SELECTOR 0004 * 0005 * WHEN THE COMPILER IS STARTED, REGISTER A SPECIFIES THE DEVICES 0006 * TO BE USED FOR SOURCE INPUT, OBJECT OUTPUT AND FOR LISTING OUTPUT. 0007 * THE IOS SELECTOR HONORS THIS SELECTION BY ACTIVATING THE SELECTED 0008 * DEVICES FOR THESE TASKS. 0009 * 0010 * THE FOLOWING OPTIONS ARE SUPPORTED: 0011 * 0012 * A[ 8-10] SOURCE INPUT DEVICE (1=TTY 2=CR 3=HSR 4=MAGTAPE-UNIT 1) 0013 * A[11-13] LISTING DEVICE (0=SUP 1=TTY 2=LP 4=MAGTAPE-UNIT 2) 0014 * A[14-16] OBJECT OUTPUT DEVICE (0=SUP 1=PTP 2=TTY 4=MAGTAPE-UNIT 2) 0015 * THE LISTED DEVICE ALLOCATION IS SET BY F4IOS 0016 * THIS VERSION OF F4IOS DOES NOT, WITHOUT MODIFICATION, SUPPORT OTHER 0017 * DEVICES FOR THE SPECIFIED TASKS. 0018 * THIS ALSO MEANS THAT TAPE UNIT 2 CAN EITHER BE USED FOR 0019 * OBJECT OUTPUT OR FOR LISTING OUTPUT 0020 * 0021 * IN CASE NO DEVICE SELECTION IS SPECIFIED IN REGISTER A, A DEFAULT 0022 * SELECTION IS MADE BY F4IOS: 0023 * - SOURCE INPUT 3=HSR 0024 * - LISTING OUTPUT 1=TTY 0025 * - OBJECT OUTPUT 1=PTP 0026 * 0027 * F4IOS LINKS, TO SUPPORT THE SPECIFIED IO, THE DRIVERS FOR THESE DEVICES. 0028 * HOWEVER, IF FOR INSTANCE NO MAGTAPE IS AVAILABLE IN A PARTICULAR 0029 * INSTALLATION, THE MAGTAPE DRIVER CAN BE REPLACED BY A DUMMY DRIVER. 0030 * THE COMPILER FOOTPRINT IN MEMORY BECOMES SMALLER THEN. DO NOT LINK 0031 * THE MAGTAPE DRIVER IN THAT CASE. THE F4$DUM MODULE RESOLVES THE CALLS 0032 * TO THE MAGTAPE DRIVER AND MUST BE THAT LAST MODULE TO BE LINKED. 0033 * 0034 * HONEYWELL X16 16 BIT COMPUTER SOFTWARE 0035 * 0036 * PROGRAM LENGTH: 415 WORDS 0037 * 0038 * THIS SOURCE IS RECREATED FROM THE EXISTING SLST FILE: 0039 * - SLST-FRTN.IMG (WHICH ORIGINATES FROM HONEYWELL) 0040 * 0041 * THE SOURCE IS RECREATED BY: THEO ENGEL (THEO.ENGEL@HETNET.NL) 0042 * 0043 * SUBR F4$INT,F4IN IO INITIALISATION ROUTINE 0044 * SUBR F4$IN,F4SI GENERAL SOURCE INPUT ROUTINE 0045 * SUBR F4$OUT,F4OO GENERAL OBJECT OUTPUT ROUTINE 0046 * SUBR F4$SYM,F4LO GENERAL LISTING OUTPUT ROUTINE 0047 * SUBR F4$END,F4EN END COMPILATION 0048 * 0049 * SUBR F4$DUI,IL1 DUMMY SOURCE INPUT DRIVER 0050 * SUBR F4$DUO,OL4 DUMMY OBJECT OUTPUT DRIVER
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 2

0051 * SUBR F4$DUS,LL9 DUMMY LISTING OUTPUT DRIVER 0052 * 0053 SUBR F4$INT,F4IN 0054 SUBR F4$IN,F4SI 0055 SUBR F4$OUT,F4OO 0056 SUBR F4$SYM,F4LO 0057 SUBR F4$END,F4EN 0058 * 0059 SUBR F4$DUI,IL1 0060 SUBR F4$DUO,OL4 0061 SUBR F4$DUS,LL9 0062 REL 0063 * 0064 ******************************************************************* 0065 * F4$INT -- INIT COMPILER DATA POOL AND STORE IO DEVICE SELECTION * 0066 ******************************************************************* 0067 * 0068 00000 0 000000 F4IN DAC *-* 0069 00001 0 10 00373 JST SDEV SET THE SELECTED DEVICES 0070 00002 0 10 00411 JST PUTR PUNCH LEADER IN CASE PTP IS OBJECT DEVICE 0071 00003 0 10 00000 CALL F4$INI SET THE SIZE OF THE DATA POOL 0072 00004 140040 CRA 0073 00005 0 04 00501 STA SCNT SOURCE INPUT RECORD COUNTER/LINENUMBER = 0 0074 00006 0 12 00502 IRS INFL SET 1ST-TIME-CALL FLAG FOR LISTING DRIVER 0075 00007 -0 01 00000 JMP* F4IN 0076 * 0077 ************************************** 0078 * GENERAL SOURCE INPUT ROUTINE * 0079 * CALLING SEQUENCE: * 0080 * CALL F4$IN * 0081 * DAC SOURCEBUFFER * 0082 ************************************** 0083 * 0084 00010 0 000000 F4SI DAC *-* SOURCE INPUT DRIVER 0085 00011 -0 02 00010 LDA* F4SI GET SOURCE BUFFER ADDRESS 0086 00012 0 04 00037 STA IB1 AND STORE 0087 00013 0 04 00043 STA IB2 0088 00014 0 04 00047 STA IB3 0089 00015 0 04 00053 STA IB4 0090 00016 0 04 00062 STA IB5 0091 00017 0 04 00500 STA IB6 0092 00020 0 02 00475 IL6 LDA DSRC LOAD SELECTED SOURCE DEVICE 0093 00021 0 10 00451 JST SWCH JMP SWITCH 0094 00022 0 01 00031 JMP IL1 0 NON 0095 00023 0 01 00036 JMP IL2 1 TTY 0096 00024 0 01 00042 JMP IL3 2 CR 0097 00025 0 01 00046 JMP IL4 3 HSR 0098 00026 0 01 00052 JMP IL5 4 MAG TAPE 0099 00027 0 01 00031 JMP IL1 5 NON 0100 00030 0 01 00031 JMP IL1 6 NON
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 3

0101 * DUMMY SOURCE INPUT DEVICE DRIVER: SELECT PROPER DEVICE 0102 00031 0 02 00635 IL1 LDA MO5 7 NON =-5 MESSAGE LENGTH, 5 WORDS LONG 0103 00032 0 10 00416 JST PRBF 0104 00033 0 000606 DAC MDEV MESSAGE: DEVICE? (NO DRIVER FOR REQUESTED DEVICE) 0105 00034 0 10 00366 JST STOP SET DEFAULT OR NEW DEVICE SELECTION 0106 00035 0 01 00020 JMP IL6 0107 * 0108 00036 0 10 00000 IL2 CALL I$AA TTY = SOURCE INPUT DEVICE 0109 00037 0 000000 IB1 DAC *-* SOURCE BUFFER ADDRESS 0110 00040 0 01 00036 JMP IL2 EOM/EOF RETURN 0111 00041 0 01 00064 JMP IL7 NORMAL RETURN 0112 00042 0 10 00000 IL3 CALL I$CA CR = SOURCE INPUT DEVICE 0113 00043 0 000000 IB2 DAC *-* SOURCE BUFFER ADDRESS 0114 00044 0 01 00042 JMP IL3 EOM/EOF RETURN 0115 00045 0 01 00064 JMP IL7 NORMAL RETURN 0116 00046 0 10 00000 IL4 CALL I$PA HSR = SOURCE INPUT DEVICE 0117 00047 0 000000 IB3 DAC *-* SOURCE BUFFER ADDRESS 0118 00050 0 01 00046 JMP IL4 0119 00051 0 01 00064 JMP IL7 0120 00052 0 10 00000 IL5 CALL I$MA MT = SOURCE INPUT DEVICE 0121 00053 0 000000 IB4 DAC *-* SOURCE BUFFER ADDRESS 0122 00054 000050 OCT 50 BUFFER LENGTH (WORDS) 0123 00055 000001 OCT 1 TAPE UNIT 1 = SOURCE DECK 0124 00056 0 01 00455 JMP ERR0 RECORD NOT READABLE RETURN 0125 00057 0 01 00461 JMP ERR1 END OF TAPE RETURN 0126 00060 0 01 00052 JMP IL5 END OF FILE RETURN; READ NEXT FILE 0127 00061 0 10 00000 CALL C$6TO8 NORMAL RETURN; CONVERT RECORD TO ASCII 0128 00062 0 000000 IB5 DAC *-* SOURCE BUFFER ADDRESS 0129 00063 000050 OCT 50 BUFFER LENGTH 0130 00064 0 02 00501 IL7 LDA SCNT SOURCE RECORD COUNTER 0131 00065 0 06 00636 ADD N1 =1 0132 00066 140100 SSP 0133 00067 0 04 00501 STA SCNT SOURCE RECORD COUNTER 0134 00070 0 12 00010 IRS F4SI SET RETURN ADDRESS 0135 00071 -0 01 00010 JMP* F4SI 0136 * 0137 ************************************** 0138 * GENERAL OBJECT OUTPUT ROUTINE * 0139 * CALLING SEQUENCE: * 0140 * A = OBJECT BUFFER ADDRESS * 0141 * X = - BUFFER LENGTH (WORDS) * 0142 * CALL F4$OUT * 0143 ************************************** 0144 * 0145 00072 0 000000 F4OO DAC *-* OBJECT OUTPUT DRIVER 0146 00073 0 04 00503 STA OSRC EXTERNAL OBJECT BUFFER ADDRESS 0147 00074 0 02 00000 LDA 0 - BUFFER LENGTH (WORDS) 0148 00075 140407 TCA 0149 00076 0 04 00512 STA OBFL + BUFFER LENGTH (WORDS) 0150 00077 0 04 00136 STA MTBL
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 4

0151 00100 0 06 00510 ADD OPTR POINTER TO OUTPUT BUFFER 0152 00101 0 06 00634 ADD IFLG INDEX FLAG 0153 00102 0 04 00504 STA ODES INDEXED DESTINATION 0154 00103 -0 02 00503 OL1 LDA* OSRC MOVE OBJECT TO INTERNAL OUTPUT BUFFER 0155 00104 -0 04 00504 STA* ODES 0156 00105 0 12 00000 IRS 0 0157 00106 0 01 00103 JMP OL1 0158 00107 0 02 00477 OL6 LDA DOBJ 0159 00110 0 10 00451 JST SWCH JMP SWITCH 0160 00111 -0 01 00072 JMP* F4OO 0 SUPPRESS OBJECT OUTPUT 0161 00112 0 01 00126 JMP OL2 1 PTP 0162 00113 0 01 00131 JMP OL3 2 TTY 0163 00114 0 01 00120 JMP OL4 3 NON 0164 00115 0 01 00134 JMP OL5 4 MAG TAPE 0165 00116 0 01 00120 JMP OL4 5 NON 0166 00117 0 01 00120 JMP OL4 6 NON 0167 * DUMMY OBJECT OUTPUT DEVICE DRIVER: SELECT PROPER DEVICE 0168 00120 0 02 00635 OL4 LDA MO5 7 NON =-5 0169 00121 0 10 00416 JST PRBF 0170 00122 0 000606 DAC MDEV MESSAGE: DEVICE? 0171 00123 0 10 00366 JST STOP SET DEFAULT OR NEW DEVICE SELECTION 0172 00124 0 10 00411 JST PUTR PUNCH TRAILER IN CASE PTP IS SELECTED 0173 00125 0 01 00107 JMP OL6 0174 * 0175 00126 0 10 00000 OL2 CALL O$PB PTP = OBJECT OUTPUT DEVICE 0176 00127 0 000512 DAC OBUF OUTPUT BUFFER ADDRESS 0177 00130 -0 01 00072 JMP* F4OO EXIT 0178 00131 0 10 00000 OL3 CALL O$AB TTY = OBJECT OUTPUT DEVICE 0179 00132 0 000512 DAC OBUF OUTPUT BUFFER ADDRESS 0180 00133 -0 01 00072 JMP* F4OO EXIT 0181 00134 0 10 00000 OL5 CALL O$MB MAG TAPE = OBJECT OUTPUT DEVICE 0182 00135 0 000513 DAC OBUF+1 BUFFER ADDRESS 0183 00136 000000 MTBL OCT 0 BUFFER LENGTH (WORDS) 0184 00137 000002 OCT 2 TAPE UNIT 2 = OBJECT DECK 0185 00140 0 01 00461 JMP ERR1 END OF TAPE RETURN 0186 00141 -0 01 00072 JMP* F4OO EXIT 0187 * 0188 ************************************** 0189 * GENERAL LISTING OUTPUT ROUTINE * 0190 * CALLING SEQUENCE: * 0191 * CALL F4$SYM * 0192 * DAC LINEBUFFER * 0193 ************************************** 0194 * 0195 00142 0 000000 F4LO DAC *-* LISTING OUTPUT DRIVER 0196 00143 0 02 00633 LDA SPSP <SPACE><SPACE> 0197 00144 0 04 00512 STA OBUF SET LINENUMBER FIELD 0198 00145 0 04 00513 STA OBUF+1 (6 CHARS) TO SPACES 0199 00146 0 04 00514 STA OBUF+2 0200 00147 -0 02 00142 LDA* F4LO EXTERNAL BUFFER ADDRESS
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 5

0201 00150 0 06 00632 ADD ILPB +INDEX / LENGTH 0202 00151 0 04 00503 STA OSRC INDEXED EXTERNAL BUFFER ADDRESS 0203 00152 0 02 00631 LDA MO50 ='-50 0204 00153 0 04 00000 STA 0 X = INDEX INTO THE LINE BUFFER 0205 00154 -0 02 00503 LL1 LDA* OSRC MOVE LINE TO INTERNAL DRIVER BUFFER 0206 00155 1 04 00565 STA LBUF,1 0207 00156 0 12 00000 IRS 0 0208 00157 0 01 00154 JMP LL1 0209 00160 0 02 00502 LL10 LDA INFL NON-ZERO WITH 1ST CALL 0210 00161 101040 SNZ 0211 00162 0 01 00175 JMP LL2 EQUAL 0 0212 * 1ST CALL OF LISTING DRIVER 0213 00163 -0 02 00142 LDA* F4LO EXTERNAL BUFFER ADDRESS 0214 00164 0 05 00500 ERA IB6 EQUAL TO SOURCE BUFFER ADDRESS?? 0215 00165 100040 SZE 0216 00166 0 01 00267 JMP LEX NOT EQUAL; EXIT 0217 00167 0 02 00476 LDA DLST YES; GET REQUIRED LISTING DEVICE 0218 00170 0 05 00630 ERA N2 EQUAL 2 ? (LP) 0219 00171 100040 SZE 0220 00172 0 01 00175 JMP LL2 NOT LP 0221 00173 0 10 00000 CALL O$LH YES, LP. INIT THE HEADER 0222 00174 0 000512 DAC OBUF 0223 00175 -0 02 00142 LL2 LDA* F4LO EXTERNAL BUFFER ADDRESS 0224 00176 0 05 00500 ERA IB6 EQUAL TO SOURCE BUFFER ADDRESS?? 0225 00177 100040 SZE 0226 00200 0 01 00213 JMP LL3 NO 0227 00201 0 02 00511 LDA TPTR YES, EQUAL TO SOURCE BUFFER 0228 00202 0 04 00504 STA TEMP TEMP = PTR TO DEC CONV TAB 0229 00203 0 02 00501 LDA SCNT GET SOURCE LINE NUMBER 0230 00204 0 04 00505 STA NUMB LINENUMBER TO PRINT 0231 * WITH ZERO BEING TRUE, LEADING ZERO'S OF THE LINENUMBER ARE SUPPRESSED 0232 00205 0 12 00506 IRS ZERO LEADING ZERO FLAG IS TRUE (SET TO FALSE WITH 1ST NO 0233 00206 0 10 00271 JST CDIG DIGIT 1 0234 00207 0 10 00271 JST CDIG DIGIT 2 0235 00210 0 10 00271 JST CDIG DIGIT 3 0236 00211 0 10 00271 JST CDIG DIGIT 4 0237 00212 0 10 00271 JST CDIG DIGIT 5 0238 00213 0 02 00476 LL3 LDA DLST WHICH DRIVER TO OUTPUT LISTING? 0239 00214 0 10 00451 JST SWCH JMP SWITCH 0240 00215 0 01 00265 JMP LL4 0 SUPPRESS LISTING 0241 00216 0 01 00231 JMP LL5 1 TTY 0242 00217 0 01 00252 JMP LL6 2 LP 0243 00220 0 01 00224 JMP LL9 3 NON 0244 00221 0 01 00255 JMP LL8 4 MAG TAPE 0245 00222 0 01 00224 JMP LL9 5 NON 0246 00223 0 01 00224 JMP LL9 6 NON 0247 * DUMMY LISTING OUTPUT DEVICE DRIVER: SELECT PROPER DEVICE 0248 00224 0 02 00635 LL9 LDA MO5 7 NON =-5 0249 00225 0 10 00416 JST PRBF 0250 00226 0 000606 DAC MDEV MESSAGE: DEVICE?
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 6

0251 00227 0 10 00366 JST STOP SET DEFAULT OR NEW DEVICE SELECTION 0252 00230 0 01 00160 JMP LL10 0253 * 0254 00231 0 02 00627 LL5 LDA O43 TTY = LISTING OUTPUT DEVICE (35 WORDS) 0255 00232 0 04 00000 LL13 STA 0 REMOVE TRAILING BLANKS 0256 00233 1 02 00512 LDA OBUF,1 0257 00234 0 05 00633 ERA SPSP 0258 00235 100040 SZE 0259 00236 0 01 00244 JMP LL11 0260 00237 0 02 00000 LDA 0 0261 00240 101040 SNZ 0262 00241 0 01 00247 JMP LL12 0263 00242 0 07 00636 SUB N1 0264 00243 0 01 00232 JMP LL13 0265 00244 0 12 00000 LL11 IRS 0 0266 00245 0 02 00000 LDA 0 0267 00246 140407 TCA A = - LENGTH (IN WORDS) OF THE LINE TO PRINT 0268 00247 0 10 00416 LL12 JST PRBF PRINT THE LINE 0269 00250 0 000512 DAC OBUF 0270 00251 0 01 00265 JMP LL4 0271 00252 0 10 00000 LL6 CALL O$LA LP = LISTING OUTPUT DEVICE 0272 00253 0 000512 DAC OBUF OUTPUT BUFFER (60 WORDS) 0273 00254 0 01 00265 JMP LL4 0274 00255 0 10 00000 LL8 CALL C$8TO6 MAG TAPE = LISTING OUTPUT DEVICE (UNIT 2) 0275 00256 0 000512 DAC OBUF OUTPUT BUFFER 0276 00257 000050 OCT 50 BUFFER LENGTH (WORDS) 0277 00260 0 10 00000 CALL O$MA 0278 00261 0 000512 DAC OBUF OUTPUT BUFFER 0279 00262 000050 OCT 50 BUFFER LENGTH (WORDS) 0280 00263 000002 OCT 2 TAPE UNIT 2 = OBJECT DECK 0281 00264 0 01 00461 JMP ERR1 EOT RETURN 0282 00265 140040 LL4 CRA NORMAL RETURN 0283 00266 0 04 00502 STA INFL RESET 1ST-TIME-CALL FLAG OF THE LISTING DRIVER 0284 00267 0 12 00142 LEX IRS F4LO SET RETURN ADDRESS 0285 00270 -0 01 00142 JMP* F4LO 0286 * 0287 * CONVERT 1 DIGIT FOR PRINTING A 5 DIGIT LINENUMBER 0288 * USED BY THE OUTPUT LISTING DRIVER 0289 00271 0 000000 CDIG DAC *-* 0290 00272 140040 CRA 0291 00273 0 04 00000 STA 0 X=0 (COUNT=0) 0292 00274 0 02 00505 LDA NUMB NUMBER (OR RESIDUAL OF NUMBER) BEING CONVERTED 0293 00275 -0 07 00504 CV1 SUB* TEMP TEMP = POINTER INTO CONVERSION TABLE 0294 00276 100400 SPL 0295 00277 0 01 00303 JMP CV2 NEGATIVE 0296 00300 0 04 00505 STA NUMB STILL POSITIVE 0297 00301 0 12 00000 IRS 0 COUNT + 1 0298 00302 0 01 00275 JMP CV1 0299 00303 0 12 00504 CV2 IRS TEMP TEMP = POINTER TO NEXT ITEM IN CONVERSION TABLE 0300 00304 0 02 00511 LDA TPTR POINTER TO TABLE
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 7

0301 00305 0 07 00504 SUB TEMP MINUS THE CURRENT POINTER TO THE TABLE 0302 00306 0 04 00507 STA T1 0303 00307 0 06 00636 ADD N1 +1 0304 00310 140407 TCA 0305 00311 0404 77 LGR 1 = INDEX IN BUFFER 0306 00312 0 13 00000 IMA 0 A = COUNT 0307 00313 101040 SNZ 0308 00314 0 01 00326 JMP CV3 COUNT = 0 => DIGIT WOULD BE 0 0309 00315 0 06 00626 CV4 ADD O20 ='20 (TO MAKE ASCII DIGIT OF SPACE) 0310 00316 0416 70 CV5 ALR '10 0311 00317 0 12 00507 IRS T1 0312 00320 0 01 00316 JMP CV5 0313 00321 1 06 00512 ADD OBUF,1 0314 00322 1 04 00512 STA OBUF,1 0315 00323 140040 CRA 0316 00324 0 04 00506 STA ZERO RESET THE LEADING ZERO FLAG 0317 00325 -0 01 00271 JMP* CDIG 0318 00326 0 02 00506 CV3 LDA ZERO NONZERO IF STILL LEADING ZERO'S 0319 00327 100040 SZE 0320 00330 -0 01 00271 JMP* CDIG NONZERO, SO STILL A LEADING ZERO 0321 00331 0 01 00315 JMP CV4 ZERO, SO NOT A LEADING ZERO, SO OUTPUT 0322 * 0323 ************************************** 0324 * STOP COMPILATION: F4$END * 0325 ************************************** 0326 * 0327 00332 0 000000 F4EN DAC *-* 0328 00333 0 02 00477 LDA DOBJ OBJECT DEVICE? 0329 00334 0 10 00411 JST PUTR PUNCH TRAILER IN CASE OF PTP 0330 00335 0 02 00477 LDA DOBJ 0331 00336 0 05 00636 ERA N1 PTP? 0332 00337 101040 SNZ 0333 00340 14 0102 OCP '102 YES; PTP OFF 0334 00341 0 05 00625 ERA N5 OBJECT DEVICE MAGTAPE? 0335 00342 101040 SNZ 0336 00343 0 01 00350 JMP LE1 YES 0337 00344 0 02 00476 LDA DLST LISTING DEVICE MAGTAPE? 0338 00345 0 05 00624 ERA N4 0339 00346 100040 SZE 0340 00347 0 01 00352 JMP LE2 NO 0341 00350 0 10 00000 LE1 CALL O$ME WRITE EOF ON UNIT 2 (OBJECT OR LISTING DEVICE) 0342 00351 000002 OCT 2 UNIT 2 0343 00352 0 02 00623 LE2 LDA MO6 ='-6 0344 00353 0 10 00416 JST PRBF PRINT EOJ MESSGE 0345 00354 0 000360 DAC MEOJ 0346 00355 0 10 00366 JST STOP STOP 0347 00356 0 02 00467 LDA DEFT 0348 00357 -0 01 00332 JMP* F4EN AND RESTART 0349 00360 106612 MEOJ OCT 106612 END OF JOB MESSAGE 0350 00361 142716 BCI 1,EN
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 8

0351 00362 142240 BCI 1,D 0352 00363 147706 BCI 1,OF 0353 00364 120312 BCI 1, J 0354 00365 147702 BCI 1,OB 0355 * 0356 ************************************** 0357 * STOP AND (RE)LOAD DEVICE SELECTION * 0358 ************************************** 0359 * CALLED BY SOURCE, OBJECT AND LISTING (DUMMY) DRIVERS OF F4-IOS 0360 * CALLED BY F4$END (WHICH IS ALSO PART OF F4-IOS) 0361 * 0362 00366 0 000000 STOP DAC *-* 0363 00367 0 02 00467 LDA DEFT LOAD DEFAULT DEVICE SETTINGS 0364 00370 000000 HLT STOP AND POSSIBLY ADAPT THE SETTING 0365 00371 0 10 00373 JST SDEV SET THE NEW DEVICE SELECTION 0366 00372 -0 01 00366 JMP* STOP 0367 * 0368 ************************************************************** 0369 * SAVE DEVICE SELECTION AS DEFINED DURING COMPILER (RE)START * 0370 ************************************************************** 0371 * DEVICE SELECTION AS SPECIFIED IN REG-A (SOURCE, LIST, OBJECT), OR DEFAULT 0372 * 0373 00373 0 000000 SDEV DAC *-* SET SELECTED DEVICES 0374 00374 100040 SZE 0375 00375 0 04 00467 STA DEFT STORE REQUESTED DEVICES 0376 00376 0 02 00467 LDA DEFT LOAD DEFAULT IF NOTHING SPECIFIED, 0377 00377 0400 72 LRL 6 0378 00400 0 03 00622 ANA M7 0379 00401 0 04 00475 STA DSRC SOURCE DEVICE 0380 00402 140040 CRA 0381 00403 0410 75 LLL 3 0382 00404 0 04 00476 STA DLST LISTING DEVICE 0383 00405 140040 CRA 0384 00406 0410 75 LLL 3 0385 00407 0 04 00477 STA DOBJ OBJECT DEVICE 0386 00410 -0 01 00373 JMP* SDEV 0387 * 0388 ****************************************************************** 0389 * PUNCH LEADER/TRAILER IN CASE PTP IS THE SELECTED OBJECT DEVICE * 0390 ****************************************************************** 0391 * A[14-16] = SELECTED OBJECT DEVICE 0392 * 0393 00411 0 000000 PUTR DAC *-* 0394 00412 0 05 00636 ERA N1 =1 PUNCHER SELECTED? 0395 00413 101040 SNZ 0396 00414 0 10 00000 CALL O$PLDR YES; PUNCH LEADER/TRAILER 0397 00415 -0 01 00411 JMP* PUTR 0398 * 0399 ************************************** 0400 * PRINT MESSAGE FROM BUFFER ON TTY *
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 9

0401 ************************************** 0402 * CALLING SEQUENCE: 0403 * JST PRBF A = - MESSAGE LENGTH IN WORDS 0404 * DAC MESSAGE 0405 * 0406 00416 0 000000 PRBF DAC *-* PRINT BUFFER 0407 00417 0 04 00000 STA 0 X = A = - BUFFER LENGTH 0408 00420 -0 02 00416 LDA* PRBF BUFFER ADDRESS 0409 00421 0 12 00416 IRS PRBF SET RETURN ADDRESS 0410 00422 0 04 00504 STA BA STORE BUFFER ADDRESS 0411 00423 34 0104 SKS '104 TTY READY? 0412 00424 0 01 00423 JMP *-1 0413 00425 14 0104 OCP '104 SET OUTPUT MODE 0414 00426 0 02 00606 LDA CRLF 0415 00427 0 10 00441 JST PRA PRINT 2 CHARS IN A 0416 00430 0 02 00000 LDA 0 0417 00431 101040 SNZ 0418 00432 -0 01 00416 JMP* PRBF 0419 00433 -0 02 00504 P1 LDA* BA GET 2 CHARS 0420 00434 0 10 00441 JST PRA PRINT 2 CHARS IN A 0421 00435 0 12 00504 IRS BA 0422 00436 0 12 00000 IRS 0 0423 00437 0 01 00433 JMP P1 0424 00440 -0 01 00416 JMP* PRBF 0425 * 0426 ************************************** 0427 * PRINT 2 CHARS FROM REG-A ON TTY * 0428 ************************************** 0429 * 0430 00441 0 000000 PRA DAC *-* 0431 00442 0400 70 LRL '10 0432 00443 74 0004 OTA 4 0433 00444 0 01 00443 JMP *-1 0434 00445 0410 70 LLL '10 0435 00446 74 0004 OTA 4 0436 00447 0 01 00446 JMP *-1 0437 00450 -0 01 00441 JMP* PRA 0438 * 0439 ************************************** 0440 * SWITCH VIA JUMP-TABLE * 0441 ************************************** 0442 * CALLING SEQUENCE: 0443 * LDA INDEX INTO JUMP-TABLE 0444 * JST SWCH 0445 * JMP -- JUMP-TABLE ENTRY 0 (INDEX 0) 0446 * JMP -- JUMP-TABLE ENTRY 1 (INDEX 1) 0447 * ETC 0448 * 0449 00451 0 000000 SWCH DAC *-* SWITCH 0450 00452 0 06 00451 ADD SWCH
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 10

0451 00453 0 04 00451 STA SWCH 0452 00454 -0 01 00451 JMP* SWCH 0453 * 0454 ************************************** 0455 * ERROR HANDLING ROUTINES * 0456 ************************************** 0457 * 0458 001000 STRT EQU '1000 COMPILER START ADDRESS 0459 00455 0 02 00621 ERR0 LDA MO2 =-2 0460 00456 0 10 00416 JST PRBF 0461 00457 0 000616 DAC MUR MESSAGE: UR (RECORD UNREADABLE) 0462 00460 0 01 00464 JMP ERR2 0463 00461 0 02 00620 ERR1 LDA MO3 =-3 0464 00462 0 10 00416 JST PRBF 0465 00463 0 000613 DAC MEOT MESSAGE: EOT (END OF TAPE) 0466 00464 0 10 00366 ERR2 JST STOP 0467 00465 0 02 00467 LDA DEFT LOAD DEVICE SETTINGS (REG-A) 0468 00466 0 01 01000 JMP STRT RESTART COMPILATION 0469 * 0470 ************************************** 0471 * F4-IOS DATA AREA * 0472 ************************************** 0473 * 0474 00467 000311 DEFT OCT 311 DEFAULT SELECTION OF IO DEVICES (I 3=HSR; L 1=TTY; O 1=PTP) 0475 * DECIMAL CONVERION TABLE (USER FOR PRINTING NUMBERS) 0476 00470 023420 DTAB OCT 23420 =10000 0477 00471 001750 OCT 1750 =1000 0478 00472 000144 OCT 144 =100 0479 00473 000012 OCT 12 =10 0480 00474 000001 OCT 1 =1 0481 00475 000000 DSRC OCT 0 SOURCE INPUT DEVICE AS SPECIFIED DURING START 0482 00476 000000 DLST OCT 0 LISTING DEVICE AS SPECIFIED DURING START 0483 00477 000000 DOBJ OCT 0 OBJECT OUTPUT DEVICE AS SPECIFIED DURING START 0484 00500 000000 IB6 OCT 0 SOURCE BUFFER ADDRESS 0485 00501 000000 SCNT OCT 0 SOURCE RECORD COUNTER 0486 00502 000000 INFL OCT 0 FLAG LISTING DRIVER (NONZERO WITH 1ST-TIME-CALL) 0487 00503 000000 OSRC OCT 0 POINTER TO EXTERNAL OBJECT BUFFER 0488 000504 BA EQU * BUFFER ADDRESS 0489 000504 TEMP EQU * TEMP POINTER TO DECIMAL CONVERSION TABLE 0490 00504 000000 ODES OCT 0 INDEXED POINTER TO INTERNAL OBJECT BUFFER 0491 00505 000000 NUMB OCT 0 TEMP STORAGE FOR LINENUMBER TO CONVERT/PRINT 0492 00506 000000 ZERO OCT 0 SET TO 0 WITH 1ST NONZERO DIGIT IN LINENUMBER 0493 00507 000000 T1 OCT 0 0494 00510 0 000512 OPTR DAC OBUF POINTER TO OUTPUT BUFFER 0495 00511 0 000470 TPTR DAC DTAB POINTER TO DECIMAL CONVERSION TABLE 0496 * 0497 000512 OBFL EQU * OUTPUT BUFFER LENGTH FOR BINARY OUTPUT (WORDS) 0498 00512 000004 OBUF OCT 4 OUTPUT BUFFER (60 WORDS; MUST NOT EXCEED 60 WORDS) 0499 00513 000300 OCT 300 0500 00514 000000 OCT 0
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 11

0501 00515 000002 OCT 2 0502 00516 000302 OCT 302 0503 00517 120240 BCI 3, 00520 120240 00521 120240 0504 00522 142717 BCI 3,EOB 00523 141240 00524 120240 0505 00525 130260 BCI 3,000300 00526 130263 00527 130260 0506 00530 120240 BCI 1, 0507 00531 130260 BCI 3,000000 00532 130260 00533 130260 0508 00534 120240 BCI 1, 0509 00535 130260 BCI 3,000002 00536 130260 00537 130262 0510 00540 120240 BCI 3, 00541 120240 00542 120240 0511 00543 120240 BCI 3, 00544 120240 00545 120240 0512 00546 120240 BCI 3, 00547 120240 00550 120240 0513 00551 120240 BCI 3, 00552 120240 00553 120240 0514 00554 120240 BCI 3, 00555 120240 00556 120240 0515 00557 120240 BCI 3, 00560 120240 00561 120240 0516 00562 120240 BCI 3, 00563 120240 00564 120240 0517 00565 120240 LBUF BCI 3, END OF LISTING BUFFER 00566 120240 00567 120240 0518 00570 120240 BCI 3, 00571 120240 00572 120240 0519 00573 120240 BCI 3, 00574 120240 00575 120240 0520 00576 120240 BCI 3,
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 12

00577 120240 00600 120240 0521 00601 120240 BCI 3, 00602 120240 00603 120240 0522 00604 120240 BCI 2, 00605 120240 0523 * 0524 000606 CRLF EQU * 0525 * MESSAGE: DRIVER? (NO DEVICE DRIVER FOR REQUESTED DEVICE) 5 WORDS LONG 0526 00606 106612 MDEV OCT 106612 MESSAGE: DEVICE? 0527 00607 142305 BCI 1,DE 0528 00610 153311 BCI 1,VI 0529 00611 141705 BCI 1,CE 0530 00612 137640 BCI 1,? 0531 * 0532 00613 106612 MEOT OCT 106612 MESSAGE: EOT (END OF TAPE) 0533 00614 142717 BCI 1,EO 0534 00615 152240 BCI 1,T 0535 00616 106612 MUR OCT 106612 MESSAGE: UR (UNREADABLE RECORD) 0536 00617 152722 BCI 1,UR 0537 00620 177775 MO3 OCT 177775 0538 00621 177776 MO2 OCT 177776 0539 00622 000007 M7 OCT 7 0540 00623 177772 MO6 OCT 177772 0541 00624 000004 N4 OCT 4 0542 00625 000005 N5 OCT 5 0543 00626 000020 O20 OCT 20 0544 00627 000043 O43 OCT 43 0545 00630 000002 N2 OCT 2 0546 00631 177730 MO50 OCT 177730 ='-50 0547 00632 040050 ILPB OCT 40050 INDEX LISTING BUFFER 0548 00633 120240 SPSP OCT 120240 <SPACE><SPACE> 0549 00634 040001 IFLG OCT 40001 INDEX FLAG 0550 00635 177773 MO5 OCT 177773 0551 00636 000001 N1 OCT 1 0552 END BA 000504 CDIG 000271 CRLF 000606 CV1 000275 CV2 000303 CV3 000326 CV4 000315 CV5 000316 DEFT 000467 DLST 000476 DOBJ 000477 DSRC 000475 DTAB 000470 ERR0 000455 ERR1 000461 ERR2 000464 F4EN 000332 F4IN 000000 F4LO 000142 F4OO 000072 F4SI 000010 IB1 000037 IB2 000043 IB3 000047 IB4 000053 IB5 000062 IB6 000500 IFLG 000634 IL1 000031 IL2 000036 IL3 000042 IL4 000046 IL5 000052 IL6 000020 IL7 000064 ILPB 000632 INFL 000502 LBUF 000565 LE1 000350 LE2 000352 LEX 000267 LL1 000154 LL10 000160 LL11 000244 LL12 000247 LL13 000232 LL2 000175 LL3 000213
* F4$IOS-B - DEC 12 2006 - VERSION 1 PAGE 13

LL4 000265 LL5 000231 LL6 000252 LL8 000255 LL9 000224 M7 000622 MDEV 000606 MEOJ 000360 MEOT 000613 MO2 000621 MO3 000620 MO5 000635 MO50 000631 MO6 000623 MTBL 000136 MUR 000616 N1 000636 N2 000630 N4 000624 N5 000625 NUMB 000505 O20 000626 O43 000627 OBFL 000512 OBUF 000512 ODES 000504 OL1 000103 OL2 000126 OL3 000131 OL4 000120 OL5 000134 OL6 000107 OPTR 000510 OSRC 000503 P1 000433 PRA 000441 PRBF 000416 PUTR 000411 SCNT 000501 SDEV 000373 SPSP 000633 STOP 000366 STRT 001000A SWCH 000451 T1 000507 TEMP 000504 TPTR 000511 ZERO 000506 0000 WARNING OR ERROR FLAGS DAP-16 MOD 2 REV. C 01-26-71
Previous File   Multiple Pages   Next File