| 1 | * TAPE 3 OF 5 - BEGIN |
| 2 | * |
| 3 | * |
| 4 | * ************************** |
| 5 | * *STATEMENT IDENTIFICATION* |
| 6 | * ************************** |
| 7 | * READ FOUR CHARACTERS AND DETERMINE CORRECT ROUTINE |
| 8 | * FOR PROCESSING, THEN CHECK SPELLING ON REST |
| 9 | A9T1 PZE 0 |
| 10 | A9T2 PZE 0 |
| 11 | A9T3 PZE 0 |
| 12 | A9 LDA K104 |
| 13 | JST IA00 INPUT (4) CHARS |
| 14 | LDA IBUF |
| 15 | STA NAMF NAMF = IBUF |
| 16 | LDA IBUF+1 |
| 17 | STA NAMF+1 |
| 18 | LDA A9Z9 INITIALIZE INDEX FOR LOOP |
| 19 | STA XR THROUGH THE STATEMENT NAMES |
| 20 | A9A LDA NAMF |
| 21 | SUB A9X1+30,1 |
| 22 | SZE |
| 23 | JMP A9F READ IN REST OF |
| 24 | LDA NAMF+1 CHECK REST OF SPELLING FOR |
| 25 | SUB A9X2+30,1 |
| 26 | SZE A MATCH ON 4 CHARACTERS |
| 27 | JMP A9F NOT FOUND |
| 28 | LDA A9X4+30,1 |
| 29 | ANA K133 |
| 30 | STA A9T1 T1 = NUMBER OF REMAINING CHARACTERS |
| 31 | LDA A9X3+30,1 LEFT TO CHECK |
| 32 | LRL 13 |
| 33 | IAB |
| 34 | LGR 3 |
| 35 | STA A9T2 T2 = ADDRESS OF ROUTINE |
| 36 | IAB |
| 37 | JST NP00 FIRST NON-SPECIFIC. CHECK -(A) = |
| 38 | A9B LDA A9T1 HIERARCHY CODE |
| 39 | SZE |
| 40 | JMP A9C MUST CHECK MORE CHARACTERS |
| 41 | JMP* A9T2 FINISHED CHARACTER CHECK, EXIT TO |
| 42 | * SPECIFIC ANALYZER. |
| 43 | A9C SUB K106 |
| 44 | SPL |
| 45 | JMP A9E |
| 46 | STA A9T1 |
| 47 | LDA K106 REMAINING SPELLING 1S CHECKED. |
| 48 | A9D STA A9T3 |
| 49 | JST IA00 |
| 50 | SUB A9T3 |
| 51 | SNZ |
| 52 | JMP A9B |
| 53 | JST ER00 |
| 54 | BCI 1,SP STATEMENT NAME MISSPELLED |
| 55 | A9E ADD K106 |
| 56 | IMA A9T1 |
| 57 | CRA |
| 58 | IMA A9T1 |
| 59 | JMP A9D |
| 60 | A9F IRS XR LOOP CONTROL FOR STATEMENT NAMES. |
| 61 | JMP A9A MORE NAMES - CONTINUE LOOP |
| 62 | LDA TC |
| 63 | SUB CRET |
| 64 | SZE |
| 65 | JMP A9G |
| 66 | LDA LSTN TC = C/R |
| 67 | SNZ |
| 68 | JMP C7 AND LSTN = 0 - INPUT NEW STATEMENT |
| 69 | A9G JST ER00 |
| 70 | BCI 1,ID UNRECOGNIZED STATEMENT |
| 71 | A9X1 BCI 10,INREDOCOLOFUSUBLEXDI |
| 72 | BCI 10,COEQGOCARECOFOIFWRRE |
| 73 | BCI 7,BAENREENASSTPA |
| 74 | BCI 2,DATR |
| 75 | BCI 1,PR |
| 76 | A9X2 BCI 10,TEALUBMPGINCBROCTEME |
| 77 | BCI 10,MMUITOLLTUNTRM( ITAD |
| 78 | BCI 3,CKDFWI |
| 79 | OCT 142215 D, C/R |
| 80 | BCI 3,SIOPUS |
| 81 | BCI 2,TAAC |
| 82 | BCI 1,IN |
| 83 | A9X3 DAC A3 |
| 84 | DAC A4 |
| 85 | DAC A5 |
| 86 | DAC A6 |
| 87 | DAC A7 |
| 88 | DAC R1 |
| 89 | DAC R2 |
| 90 | DAC R3 |
| 91 | DAC B2 |
| 92 | DAC B3 |
| 93 | DAC B4 |
| 94 | DAC B5 |
| 95 | DAC* R7 |
| 96 | DAC* R8 |
| 97 | DAC* R9 |
| 98 | DAC* CONT |
| 99 | DAC* V2 |
| 100 | DAC* V3 |
| 101 | DAC* V4 |
| 102 | DAC* V5 |
| 103 | DAC* V6 |
| 104 | DAC* V7 |
| 105 | DAC* V8 |
| 106 | DAC W5+'20000 |
| 107 | DAC* W3 |
| 108 | DAC* W7 |
| 109 | DAC* W8 |
| 110 | DAC W4,1 |
| 111 | DAC* TRAC+'20000,1 TRACE STATEMENT |
| 112 | DAC* V10 |
| 113 | * |
| 114 | * ****************************** |
| 115 | * *CONTINUE STATEMENT PROCESS0R* |
| 116 | * ****************************** |
| 117 | CONT LDA LSTP ACCOUNTS FOR POSSIBLE PATH ERROR |
| 118 | ADD LSTN ACCOUNTS FOR POSSIBLE PATH ERROR |
| 119 | STA LSTP ACCOUNTS FOR POSSIBLE PATH ERROR |
| 120 | JMP C6 |
| 121 | * |
| 122 | *-------------THE FOLLOWING TABLE IS USED BY STATEMENT ID |
| 123 | *-------------(RIGHT 6 BITS) AND OUTPUT ITEM, |
| 124 | A9X4 OCT 000003 (00) |
| 125 | OCT 030100 (01) + (A$--) |
| 126 | OCT 032313 (02) - (S$--) |
| 127 | OCT 031503 (03) * (M$--) |
| 128 | OCT 030403 (04) / (D$--) |
| 129 | OCT 000004 (05) .NOT. |
| 130 | OCT 000006 (06) .AND. |
| 131 | OCT 031405 (07) .OR. (L$-, |
| 132 | OCT 000004 (10) .LT. |
| 133 | OCT 000005 (11) .LE. |
| 134 | OCT 000002 (12) .EQ. |
| 135 | OCT 000007 (13) .GE. |
| 136 | OCT 000000 (14) .GT. |
| 137 | OCT 000000 (15) .NE. |
| 138 | OCT 031003 (16) = (H$--) |
| 139 | OCT 000005 (17) , |
| 140 | OCT 030503 (20) 'E' (E$--) |
| 141 | OCT 031600 (21) 'C' NC$--) |
| 142 | OCT 000001 (22) 'A' |
| 143 | OCT 000000 (23) |
| 144 | OCT 000005 (24) 'X' |
| 145 | OCT 000003 (25) 'H' |
| 146 | OCT 000002 (26) 'L' |
| 147 | OCT 000000 (27) 'I' |
| 148 | OCT 000002 (30) 'T' |
| 149 | OCT 031400 (31) 'F' (L$--) |
| 150 | OCT 000001 (32) 'Q' |
| 151 | OCT 000000 |
| 152 | OCT 000001 |
| 153 | OCT 000001 |
| 154 | A9Z9 DAC* -30,1 NO. OF ITEMS IN STMNT NAME TABLE |
| 155 | * |
| 156 | * |
| 157 | * ********************** |
| 158 | * *FIRST NON-SPEC CHECK* |
| 159 | * ********************** |
| 160 | * AT FIRST SHIFT IN LEVEL FROM ZERO, WRAP-UP |
| 161 | * SPECIFICATION STATEMENTS |
| 162 | T0NP PZE 0 |
| 163 | NPT0 EQU T0NP |
| 164 | T2NP PZE 0 |
| 165 | T1NP PZE 0 |
| 166 | NP00 DAC ** |
| 167 | STA NPT0 T0 = (A) |
| 168 | LDA A |
| 169 | STA T1NP T1 = A |
| 170 | LDA NPT0 |
| 171 | CAS K107 =7 |
| 172 | JMP *+2 |
| 173 | JMP NP10 TRACE STMNT. (MAY OCCUR ANYWHERE) |
| 174 | CAS SPF T0 , G.R. SPF, GO TO NP30 |
| 175 | JMP NP30 T0 = SPF, G0 TO NP25 |
| 176 | JMP NP25 |
| 177 | LDA TC IF TC = C/R |
| 178 | SUB CRET GO TO NP10 |
| 179 | SNZ |
| 180 | JMP NP10 |
| 181 | JST ER00 ELSE, ILLEGAL STATEMENT |
| 182 | BCI 1,EX SPECIFICATION STATEMENT APPEARS AFTER |
| 183 | * |
| 184 | NP10 LDA LSTN SPECIFICATION STATEMENT CLEAN-UP |
| 185 | STA A A = LSTN |
| 186 | SNZ |
| 187 | JMP NP16 IF ZERO, RETURN |
| 188 | JST FA00 FETCH ASSIGNS |
| 189 | LDA K103 STR-REL |
| 190 | SUB AT |
| 191 | SZE |
| 192 | JMP NP20 |
| 193 | LDA AF |
| 194 | JST OS00 OUTPUT STRING RPL |
| 195 | NP15 JST LO00 DEFINE LOCATION |
| 196 | LDA NAMF |
| 197 | SUB A9X1+16 |
| 198 | SZE |
| 199 | JST TRSE OUTPUT TRACE COUPLING |
| 200 | NP16 LDA T1NP |
| 201 | STA A |
| 202 | JMP* NP00 |
| 203 | NP20 JST NR00 NON-REL TEST |
| 204 | JMP NP15 |
| 205 | NP25 LDA LIF |
| 206 | SZE |
| 207 | JMP NP16 |
| 208 | LDA LSTP IF LSTP + LSTN =0 |
| 209 | ADD LSTN |
| 210 | SZE |
| 211 | JMP NP10 |
| 212 | IRS LSTP |
| 213 | JST ER00 'NO PATH' ERROR |
| 214 | BCI 1,PH NO PATH LEADING TO THE STATEMENT |
| 215 | NP30 LDA SPF IF SPF 0 0 |
| 216 | SZE |
| 217 | JMP NP37 |
| 218 | NP32 LDA TC |
| 219 | STA T2NP T2 = TC |
| 220 | LDA RPL |
| 221 | STA XST XST = RPL |
| 222 | LDA BDF BLOCK DATA SUBPROGRAM FLAG |
| 223 | SZE SKIP IF NOT BLOCK DATA SUBPROGRAM |
| 224 | JMP C2 GO TO RELATE COMMON |
| 225 | STA A SET LISTING FOR OCTAL ADDR. |
| 226 | LDA OMI5 JMP INSTRUCTION |
| 227 | STA DF SET LISTING FOR SYMBOLIC INSTR. |
| 228 | JST OA00 OUTPUT ABSOLUTE |
| 229 | JMP C2 GO TO RELATE COMMON |
| 230 | NP35 LDA T2NP |
| 231 | STA TC |
| 232 | NP37 LDA T0NP |
| 233 | STA SPF SPF = T0 |
| 234 | SUB K104 |
| 235 | SZE |
| 236 | JMP NP10 |
| 237 | NP40 STA A SET LISTING FOR OCTAL ADDR. |
| 238 | LDA XST LOCATION OF INITIAL JUMP |
| 239 | JST OS00 OUTPUT STRING |
| 240 | LDA RPL |
| 241 | STA XST XST = RPL |
| 242 | JMP NP10 GO TO NP10 |
| 243 | * |
| 244 | * ***************** |
| 245 | * *IF( PROCESSOR* |
| 246 | * ***************** |
| 247 | * ARITHMETIC IF ($1 $2 $3) |
| 248 | * IF $2 NOT = $3, JZE $2 |
| 249 | * IF $3 NOT = $1, JPL $3 |
| 250 | * (IF $1 NOT = NEXT ST NO., JMP $1) LATER |
| 251 | * LOGICAL IF |
| 252 | * OUTPUT JZE 77777 (FOR STRINGING AROUND |
| 253 | * IMBEDDED STATEMENT) |
| 254 | V3 JST II00 INPUT ITEM |
| 255 | SNZ |
| 256 | JMP V310 IM=0 (POSSI8LE UNARY + OR -) |
| 257 | LDA DFL |
| 258 | SZE |
| 259 | JMP V310 FIRST ITEM IN EXPRESSION 0.K. |
| 260 | V308 JST ER00 ERROR.....IF(SENSE SWITCH,.ETC)..... |
| 261 | BCI 1,IF ILLEGAL IF STATEMENT TYPE |
| 262 | V310 CRA (A)=0 |
| 263 | JST EX00 EXPRESSION EVALUATOR |
| 264 | LDA K4 |
| 265 | JST TS00 )-TEST |
| 266 | CRA |
| 267 | STA A SET A TO SPECIAL (IF) ENTRY IN DATA POOL |
| 268 | STA 0 |
| 269 | LDA MFL SET MODE OF EXPRESSION INTO SPECIAL (IF) |
| 270 | LGL 9 |
| 271 | STA DP,1 |
| 272 | JST TRSE OUTPUT TRACE COUPLING (IF NECESSARY) |
| 273 | LDA MFL CHECK MODE FLAG FOR LOGICAL |
| 274 | SUB K103 |
| 275 | SZE |
| 276 | JMP V320 ARITHMETIC IF |
| 277 | LDA LIF |
| 278 | SZE |
| 279 | JMP V308 |
| 280 | STA AF SET ADDR OF SNZ AND JMP INSTR TO 00000 |
| 281 | LDA OMJ2 =SNZ INSTR. |
| 282 | JST OA00 OUTPUT ABSOLUTE |
| 283 | LDA RPL SET LIF=CURRENT +DDR, (STRING BACK) |
| 284 | STA LIF |
| 285 | LDA OMI5 =JMP 0 INSTR. |
| 286 | JST OA00 OUTPUT ABSOLUTE |
| 287 | JST XN00 GO TO NEXT INPUT LINE |
| 288 | JMP C8 GO TO STATEMENT SCAN |
| 289 | * |
| 290 | V320 SUB K102 CHECK FOR MODE = COMPLEX |
| 291 | SNZ |
| 292 | JMP V308 ERROR,...COMPLEX MODE EXPRESSION |
| 293 | LDA V356 =-3 |
| 294 | STA I |
| 295 | V324 JST IS00 INPUT STATEMENT NUMBER |
| 296 | JST STXI SET INDEX TO I |
| 297 | LDA A |
| 298 | STA T1V3+3,1 SAVE BRANCH ADDRESSES |
| 299 | IRS I I=I+1 |
| 300 | JMP V350 CHECK FOR TERMINAL COMMA |
| 301 | LDA T3V3 |
| 302 | CAS T2V3 CHECK FOR ADDR-2 = ADDR-3 |
| 303 | JMP *+2 |
| 304 | JMP V330 ADDR-2 = ADDR-3 |
| 305 | CRA |
| 306 | STA A |
| 307 | LDA OMJ2 =SNZ INSTR. |
| 308 | STA DF |
| 309 | JST OA00 OUTPUT ABSOLUTE |
| 310 | LDA T2V3 |
| 311 | JST V360 OUTPUT A JMP(ADDR-2) INSTR. |
| 312 | LDA T3V3 |
| 313 | V330 CAS T1V3 CHECK FOR ADDR-3 = ADDR-2 |
| 314 | JMP *+2 |
| 315 | JMP V340 ADDR-3 = ADDR-1 |
| 316 | CRA |
| 317 | STA A |
| 318 | LDA OMJ3 =SMI INSTR. |
| 319 | JST OA00 OUTPUT ABSOLUTE |
| 320 | LDA T3V3 |
| 321 | JST V360 OUTPUT A JMP (ADDR-3) INSTR. |
| 322 | V340 LDA T1V3 |
| 323 | STA IFF SET IFF ' ADDR-1 |
| 324 | JMP C5 GO TO ILL-TERM |
| 325 | * |
| 326 | V350 LDA K5 |
| 327 | JST TS00 COMMA TEST |
| 328 | JMP V324 INPUT NEXT STATEMENT NO. |
| 329 | * |
| 330 | V356 OCT 177775 -3 |
| 331 | * |
| 332 | *---------------SUBROUTINE TO OUTPUT A RELATIVE JMP |
| 333 | V360 DAC ** |
| 334 | STA A SET ADDR. OF JUMP REF. TO A |
| 335 | CRA |
| 336 | IAB SET (B) = 0 |
| 337 | LDA OMI5 SET (A) = JMP INSTR. |
| 338 | JST OB00 OUTPUT OA |
| 339 | JMP* V360 EXIT |
| 340 | * |
| 341 | T1V3 *** ** ADDR-1 |
| 342 | T2V3 *** ** ADDR-2 |
| 343 | T3V3 *** ** ADDR-3 |
| 344 | * |
| 345 | * ******* |
| 346 | * *GO TO* |
| 347 | * ******* |
| 348 | * CHECK FOR NORMAL (R740), COMPUTED (R710) OR |
| 349 | * ASSIGNED (R730). INPUT BRANCH LIST USED BY BOTH |
| 350 | * R710 AND R730 FOR STATEMENT NO. LIST. |
| 351 | * |
| 352 | * |
| 353 | R7 JST XN00 EXAMINE NEXT CHAR |
| 354 | SZE |
| 355 | JMP R78 GO TO TEST DFL |
| 356 | JST IS00 INPUT STMNT = |
| 357 | LDA A (GO TO 20) |
| 358 | STA IFF IFF = A |
| 359 | JMP C5 G0 TO ILLTERM |
| 360 | R78 LDA DFL |
| 361 | SZE |
| 362 | JMP R7D |
| 363 | JST IR00 GO TO I (10, 20, 30} |
| 364 | LRL 32 |
| 365 | LDA K206 OUTPUT JMP* INSTRUCTION |
| 366 | JST OB00 OUTPUT OA |
| 367 | LDA K134 |
| 368 | JST TS00 , TEST |
| 369 | JST IB00 INPUT BRANCH LIST |
| 370 | JMP B6 GO TO JUMP |
| 371 | R7D JST IB00 INPUT BRANCH LIST GO TO (10,11,12), I |
| 372 | LDA K134 |
| 373 | JST TS00 , TEST |
| 374 | JST IR00 INPUT INT VAR |
| 375 | LRL 32 |
| 376 | LDA K200 OUTPUT LDA |
| 377 | JST OB00 OUTPUT OA |
| 378 | CRA |
| 379 | STA A |
| 380 | STA AF CAUSE OCTAL ADDRESS IN LISTING |
| 381 | LDA K75 |
| 382 | JST OA00 OUTPUT ABS (STA 0) - INDEX LOAD |
| 383 | LDA RPL |
| 384 | STA AF CAUSE RPL T0 BE IN LISTING |
| 385 | LDA K207 |
| 386 | JST OR00 OUTPUT RELATIVE (JMP RPL,1) |
| 387 | LDA L0 |
| 388 | R7F SUB K101 |
| 389 | STA I I = L (0) |
| 390 | JST STXI |
| 391 | LDA DP,1 |
| 392 | STA A |
| 393 | JST STXA |
| 394 | SNZ |
| 395 | JMP B6 FINISHED LOOPING ON LIST |
| 396 | LLL 16 |
| 397 | LDA K201 OUTPUT JMP INSTRUCTIONS |
| 398 | JST OB00 OUTPUT OA (JMP 0) |
| 399 | LDA I |
| 400 | JMP R7F |
| 401 | * ******************* |
| 402 | * *INPUT BRANCH LIST* |
| 403 | * ******************* |
| 404 | * INPUT STATEMENT NO. LISTS FOR GO TO PROCESSOR |
| 405 | IB00 DAC ** |
| 406 | LDA L0 |
| 407 | SUB K101 |
| 408 | STA I I = L0-1 |
| 409 | JST CH00 INPUT CHAR |
| 410 | LDA K17 |
| 411 | JST TS00 (- TEST |
| 412 | IB10 JST IS00 INPUT STMNT = |
| 413 | JST STXI |
| 414 | LDA A |
| 415 | STA DP,1 SET POINTER OF ST. N0. INTO TRIAD TABLE |
| 416 | * AREA |
| 417 | LDA I DP (J) = A |
| 418 | SUB K101 |
| 419 | STA I I = I-1 |
| 420 | LDA TC IF TC = , GO TO IB10 |
| 421 | SUB K5 |
| 422 | SNZ |
| 423 | JMP IB10 CONTINUE LOOP |
| 424 | CRA |
| 425 | STA DP-1,1 SET END FLAG INTO TABLE |
| 426 | JST IP00 )- INPUT OPEN |
| 427 | JMP* IB00 EXIT |
| 428 | K75 STA 0 |
| 429 | * |
| 430 | * |
| 431 | * ******** |
| 432 | * *ASSIGN* |
| 433 | * ******** |
| 434 | * CHECK TO SEE THAT 'TO' IS INCLUDED PROPERLY |
| 435 | W3 JST IS00 INPUT STMNT = |
| 436 | LDA A |
| 437 | STA T1W3 SAVE A |
| 438 | LDA TC |
| 439 | SUB K34 CHECK FOR T0 |
| 440 | SZE |
| 441 | JMP W305 CLEAR A FOR OUTPUT REL |
| 442 | STA A CAUSE OCTAL ADDRESS IN LIST |
| 443 | JST CH00 INPUT CHAR |
| 444 | LDA TC |
| 445 | SUB K35 |
| 446 | SNZ |
| 447 | JMP *+3 |
| 448 | W305 JST ER00 ERROR |
| 449 | BCI 1,TO GO TO IN ASSIGN STATEMENT |
| 450 | LDA RPL |
| 451 | ADD K102 |
| 452 | STA AF OUTPUT REL LDA *+2 |
| 453 | LDA K200 OUTPUT LDA *+2 |
| 454 | JST OR00 OUTPUT REL |
| 455 | LDA RPL |
| 456 | ADD K102 |
| 457 | STA AF OUTPUT REL JMP *+2 |
| 458 | LDA K201 |
| 459 | JST OR00 OUTPUT OA |
| 460 | LRL 32 |
| 461 | LDA T1W3 |
| 462 | STA A RESTORE A |
| 463 | CRA |
| 464 | JST OB00 OUTPUT DAC ST. NO. |
| 465 | JST IR00 INPUT INTEGER VARIABLE |
| 466 | LRL 32 |
| 467 | LDA K202 OUTPUT STA INSTRUCTION |
| 468 | JST OB00 OUTPUT OA |
| 469 | JMP A1 GO TO C/R TEST |
| 470 | T1W3 PZE ** TEMP STORE |
| 471 | * |
| 472 | * |
| 473 | * ************************ |
| 474 | * *DO STATEMENT PROCESSOR* |
| 475 | * ************************ |
| 476 | * STACK INFO IN DO TABLE. OUTPUT DO INITIAL |
| 477 | * CODE |
| 478 | C9T0 PZE ** |
| 479 | C9 JST IS00 INPUT STATEMENT = |
| 480 | JST NR00 NON-REL TEST |
| 481 | LDA A |
| 482 | STA C9T0 T0 = A |
| 483 | JST UC00 UNINPUT COLUMN |
| 484 | JST IR00 |
| 485 | LDA C951 |
| 486 | JST TS00 |
| 487 | LDA C9T0 (A) = T0 |
| 488 | IAB |
| 489 | JST DP00 DO INPUT |
| 490 | JST DS00 DO INITIALIZE |
| 491 | JMP C5 GO TO ILLTERM |
| 492 | C951 OCT 16 = |
| 493 | * |
| 494 | * |
| 495 | * ********** |
| 496 | * *END FILE* |
| 497 | * ********** |
| 498 | * *********** |
| 499 | * *BACKSPACE* |
| 500 | * *REWIND * |
| 501 | * *********** |
| 502 | V6 LDA K71 |
| 503 | V6A STA NAMF+1 |
| 504 | JST NF00 SET UP NAMF |
| 505 | JST OI00 OUTPUT I/0 LINK |
| 506 | JMP A1 GO TO C/R TEST |
| 507 | V7 LDA K72 |
| 508 | JMP V6A |
| 509 | V8 LDA K73 |
| 510 | JMP V6A |
| 511 | K71 BCI 1,FN FN |
| 512 | K72 BCI 1,DN |
| 513 | K73 BCI 1,BN BN |
| 514 | * |
| 515 | * |
| 516 | * ************** |
| 517 | * *READ * |
| 518 | * *WRITE * |
| 519 | * *INPUT FORMAT* |
| 520 | * ************** |
| 521 | * LIST ELEMENT DATA AND IMPLIED DO CONTROL |
| 522 | * STACKED IN TRIAD TABLE. PROCESSED BY |
| 523 | * OUTPUT TRIAD ROUTINE, SPECIAL OPERATORS |
| 524 | * ARE -I = DO INITIALIZATION |
| 525 | * T = DO TERMINATION |
| 526 | * Q = I/0 ARG TRANSFER |
| 527 | T0V5 PZE ** |
| 528 | V5 LDA K41 FSRN |
| 529 | STA NAMF+1 |
| 530 | JST XN00 EXAM NEXT CHAR |
| 531 | SZE |
| 532 | JMP V5A GENERAL READ |
| 533 | LDA V5K4 |
| 534 | JMP V10A CARD READ |
| 535 | V4 LDA K40 NAWF = F$WN |
| 536 | STA NAMF+1 |
| 537 | V5A JST NF00 SET UP REMAINING NAME |
| 538 | LDA D |
| 539 | STA V5T1 |
| 540 | JST CH00 INPUT CHARACTER |
| 541 | LDA K17 ='250......( |
| 542 | JST TS00 (-TEST |
| 543 | JST OI00 OUTPUT I0 LINK |
| 544 | LDA TC IF TC .NE. , |
| 545 | SUB K134 ='17 (,) |
| 546 | SZE G0 10 V5J |
| 547 | JMP V5J |
| 548 | JST V5X INPUT FORMAT |
| 549 | V5B JST IP00 ) - INPUT OPERATOR |
| 550 | LDA TC |
| 551 | SUB CRET TEST FOR TC=C/R |
| 552 | SZE |
| 553 | JMP V5C N0, G0 TO V5C |
| 554 | V5B2 LDA K42 YES. NAMF = ND |
| 555 | STA NAMF+1 |
| 556 | JST CN00 CALL NAME |
| 557 | LDA V5T1 |
| 558 | STA D |
| 559 | JMP A1 G0 TO C/R TEST |
| 560 | V5C JST UC00 |
| 561 | V5C5 CRA |
| 562 | STA IOF IOF = 0 |
| 563 | V5D JST II00 INPUT ITEM |
| 564 | SZE |
| 565 | JMP V5E IF (A) NOT 0, GO TO V5E |
| 566 | LDA K17 |
| 567 | JST TS00 (-TEST |
| 568 | CRA |
| 569 | STA O2 O2 = 0 |
| 570 | LDA IOF |
| 571 | STA O1 01 = IOF |
| 572 | LDA V5K1 = '27 |
| 573 | STA P |
| 574 | JST ET00 |
| 575 | LDA L |
| 576 | STA IOF IOF = L |
| 577 | JMP V5D GO TO V5D |
| 578 | V5E JST NC00 NON-CONSTANT TEST |
| 579 | LDA IU IF IU NOT ARR |
| 580 | SUB K103 |
| 581 | SZE |
| 582 | JMP V5H GO TO V5H |
| 583 | LDA TC |
| 584 | SUB K17 IF TC NOT -(, |
| 585 | SZE |
| 586 | JMP V5G GO TO V5G |
| 587 | LDA D0 |
| 588 | STA T0V5 T5 = D0 |
| 589 | LDA K103 |
| 590 | TCA |
| 591 | JST EX00 EXPRESSION |
| 592 | LDA T0V5 |
| 593 | STA D0 D0 = T5 |
| 594 | V5E5 LDA A |
| 595 | STA O2 |
| 596 | LDA D0 O2 = D0 |
| 597 | STA O1 |
| 598 | LDA V5K2 ='32 |
| 599 | STA P |
| 600 | JST ET00 ENTER TRIAD |
| 601 | V5E7 LDA TC IF TC = COMMA |
| 602 | SUB K134 GO T0 V5D |
| 603 | SNZ |
| 604 | JMP V5D |
| 605 | LDA IOF I = IOF |
| 606 | STA I |
| 607 | SZE IF NOT ZERO, |
| 608 | JMP V5F GO TO V5F |
| 609 | JST OT00 OUTPUT TRIADS |
| 610 | JMP V5B2 GO TO V5B2 |
| 611 | V5F JST IP00 )-INPUT OPERATOR |
| 612 | JST STXI |
| 613 | LDA DP+1,1 |
| 614 | STA IOF IOF = O1 (I) |
| 615 | JMP V5E7 |
| 616 | V5G JST KT00 K = = WDS/ITEM |
| 617 | JMP V5E5 GO TO V5E5 |
| 618 | V5H JST TV00 TAG VARIABLE |
| 619 | LDA TC |
| 620 | SUB K16X ='16 (=) |
| 621 | SZE GO TO V5E5 |
| 622 | JMP V5E5 ELSE, |
| 623 | JST IT00 INTEGER TEST |
| 624 | LDA IOF |
| 625 | SNZ IF IOF = ZERO OR L |
| 626 | JMP V5H7 |
| 627 | SUB L |
| 628 | SZE |
| 629 | JMP *+3 ERROR |
| 630 | V5H7 JST ER00 |
| 631 | BCI 1,PR PARENTHESES MISSING IN DO STATEMENT |
| 632 | JST DP00 DO INPUT |
| 633 | LDA IOF |
| 634 | STA I |
| 635 | JST STXI |
| 636 | LDA D |
| 637 | STA DP,1 O2(IOF) = D |
| 638 | STA O2 O2 = D |
| 639 | LDA V5K3 ='30 |
| 640 | STA P |
| 641 | JST ET00 ENTER TRIAD 'T'. |
| 642 | JMP V5F |
| 643 | V5J CRA |
| 644 | STA A A = 0 |
| 645 | JST OA00 OUTPUT ABSOLUTE |
| 646 | JMP V5B |
| 647 | V5T1 PZE 0 |
| 648 | V5K1 OCT 27 |
| 649 | V5K2 OCT 32 |
| 650 | V5K3 OCT 30 |
| 651 | V5K4 BCI 1,R3 |
| 652 | V5K5 BCI 1,W4 |
| 653 | V5X DAC ** INPUT FORMAT |
| 654 | JST XN00 EXAM NEXT CHARACTER |
| 655 | SZE |
| 656 | JMP V5X5 GO TO INPUT ARRAY NAME |
| 657 | JST IS00 INPUT STMNT NO. |
| 658 | V5X2 LRL 32 OUTPUT DAC A |
| 659 | JST OB00 OUTPUT 0A |
| 660 | JMP* V5X RETURN |
| 661 | V5X5 JST NA00 INPUT NAME |
| 662 | JST AT00 ARRAY TEST |
| 663 | JMP V5X2 |
| 664 | * PRINT |
| 665 | V10 LDA V5K5 PRINTER |
| 666 | V10A STA NAMF+1 |
| 667 | JST NF00 SET UP REST 0F NAME |
| 668 | JST CN00 CALL NAME |
| 669 | JST V5X INPUT FORMAT |
| 670 | LDA TC |
| 671 | SUB K134 |
| 672 | SZE SKIP IF COMMA |
| 673 | JMP V5B2 |
| 674 | LDA D |
| 675 | STA V5T1 |
| 676 | JMP V5C5 |
| 677 | * |
| 678 | * |
| 679 | * ************************** |
| 680 | * *FORMAT * |
| 681 | * *INPUT FORMAT STRING * |
| 682 | * *INPUT NUMERIC FORMAT STR* |
| 683 | * *NON ZERO TEST STRING * |
| 684 | * ************************** |
| 685 | T0V2 PZE 0 |
| 686 | T2V2 PZE 0 |
| 687 | V2T0 EQU T0V2 |
| 688 | V2T2 EQU T2V2 |
| 689 | V2 LDA K17 |
| 690 | JST OK00 OUTPUT RACK |
| 691 | CRA |
| 692 | STA T0V2 TO = 0 |
| 693 | LDA LSTP IF LSTOP .NE. 0 |
| 694 | SZE |
| 695 | JMP V2K GO TO V2K |
| 696 | V2A JST SI00 INPUT FORMAT STRING |
| 697 | SZE |
| 698 | JMP V2B |
| 699 | V2A1 LDA TC |
| 700 | SUB K12 IF TC NOT MINUS |
| 701 | SZE |
| 702 | JMP V2F GO TO V2F |
| 703 | JST IN00 INPUT NUMERIC FORMAT STRING |
| 704 | CRA |
| 705 | STA TID TID = 0 |
| 706 | V2B LDA TC IF TC .NE. P |
| 707 | SUB K46 |
| 708 | SZE |
| 709 | JMP V2H GO TO V2H |
| 710 | JST SI00 INPUT FORMAT STRING |
| 711 | SZE |
| 712 | JST NZ00 IF (A) .NE. 0 |
| 713 | V2C LDA TC |
| 714 | CAS K52 IF TC = D,E,F, OR G |
| 715 | NOP |
| 716 | JMP *+2 |
| 717 | JMP V2DA |
| 718 | CAS K53 |
| 719 | JMP V2E5-2 |
| 720 | NOP |
| 721 | JST IN00 INPUT NUMERIC FORMAT STRING |
| 722 | JST NZ00 NON-ZERO STRING TEST |
| 723 | LDA K10 |
| 724 | JST TS00 PERIOD TEST |
| 725 | V2D JST IN00 INPUT NUMERIC FORMAT STRING |
| 726 | V2DA LDA TC IF TC = ) |
| 727 | SUB K4 |
| 728 | SZE |
| 729 | JMP V2E |
| 730 | JST CH00 |
| 731 | JST OK00 INPUT CHAR AND OUTPUT PACK |
| 732 | LDA T0V2 IF F4 + ( Z ( |
| 733 | SUB K101 GO TO V2E |
| 734 | STA T0V2 |
| 735 | SPL |
| 736 | JMP V2N ELSE, |
| 737 | JMP V2DA |
| 738 | * GO TO C/R TEST |
| 739 | V2E LDA TC IF TC =, |
| 740 | SUB K5 |
| 741 | SNZ |
| 742 | JMP V2A GO TO V2A |
| 743 | LDA K9 |
| 744 | JST TS00 / TEST |
| 745 | JMP V2A |
| 746 | V2E5 JST SI00 INPUT FORMAT STRING |
| 747 | SZE IF (A) NOT 0, |
| 748 | JMP V2B GO TO V2B |
| 749 | LDA DFL IF DFL .NE. ZERO, |
| 750 | SZE |
| 751 | JMP V2DA GO TO V2DA |
| 752 | JMP V2A1 |
| 753 | V2F LDA TC IF TC = H |
| 754 | CAS K48 |
| 755 | JMP *+2 |
| 756 | JMP V2P GO TO V2P |
| 757 | V2FB CAS K47 |
| 758 | JMP *+2 |
| 759 | JMP V2E5 |
| 760 | CAS K17 IF TC = (, |
| 761 | JMP *+2 |
| 762 | JMP V2Q GO TO V2Q |
| 763 | LDA TC IF TC .NE. A,I, OR L |
| 764 | CAS K49 A |
| 765 | JMP *+2 |
| 766 | JMP V2G |
| 767 | CAS K50 I |
| 768 | JMP *+2 |
| 769 | JMP V2G |
| 770 | SUB K51 L |
| 771 | SZE |
| 772 | JMP V2C |
| 773 | V2G JST IN00 INPUT NUMERIC FORMAT STRING |
| 774 | JST NZ00 NON-ZERO STRING TEST |
| 775 | JMP V2DA |
| 776 | V2H JST NZ00 NON-ZERO STRING TEST |
| 777 | LDA TC |
| 778 | SUB K48 |
| 779 | SZE |
| 780 | JMP V2F |
| 781 | V2J JST HS00 TRANSMIT HOLLERITH STRING |
| 782 | JMP V2E5 GO T0 V2E5 |
| 783 | V2K LDA LSTN IF LSTN = 0, |
| 784 | SZE |
| 785 | JMP *+3 |
| 786 | JST ER00 ERR0R, NO PATH |
| 787 | BCI 1,NF NO REFERENCE T0 FORMAT STATEMENT |
| 788 | LDA RPL LIF = RPL |
| 789 | STA LIF |
| 790 | CRA |
| 791 | STA A |
| 792 | STA AF |
| 793 | AOA |
| 794 | STA DF |
| 795 | LDA K201 = JMP 0 |
| 796 | JST OA00 OUTPUT ABS |
| 797 | JMP V2A GO T0 V2A |
| 798 | * |
| 799 | NZ00 DAC ** |
| 800 | LDA TID |
| 801 | SZE |
| 802 | JMP* NZ00 |
| 803 | NZ10 JST ER00 |
| 804 | BCI 1,NZ NON-ZERO STRING TEST FAILED |
| 805 | IN00 DAC ** |
| 806 | JST SI00 (A) = 0 IS ERROR CONDITION |
| 807 | SZE |
| 808 | JMP* IN00 |
| 809 | JMP NZ10 |
| 810 | SI00 DAC ** |
| 811 | CRA |
| 812 | STA TID ID = T2 = 0 |
| 813 | SI05 STA V2T2 |
| 814 | JST CH00 INPUT CHAR |
| 815 | JST OK00 OUTPUT PACK |
| 816 | LDA TC |
| 817 | SUB K60 ASC-2 ZERO |
| 818 | CAS K124 |
| 819 | JMP SI10 |
| 820 | NOP |
| 821 | SPL |
| 822 | JMP SI10 |
| 823 | STA TC |
| 824 | LDA TID TID = 10*TID+TC |
| 825 | ALS 3 |
| 826 | ADD TID |
| 827 | ADD TID |
| 828 | ADD TC |
| 829 | STA TID |
| 830 | LDA K101 T2 =1 |
| 831 | JMP SI05 |
| 832 | SI10 LDA V2T2 (A) = ERROR CONDITION OR NOT |
| 833 | JMP* SI00 |
| 834 | V2M JST ER00 |
| 835 | BCI 1,FR FORMAT STATEMENT ERROR |
| 836 | V2N EQU A1 |
| 837 | V2P LDA K101 |
| 838 | STA ID ID = 1 |
| 839 | JMP V2J GO T0 V2J |
| 840 | V2Q LDA T0V2 |
| 841 | AOA |
| 842 | STA T0V2 |
| 843 | SUB K103 |
| 844 | SZE |
| 845 | JMP V2A |
| 846 | JMP V2M |
| 847 | K46 OCT 320 0P |
| 848 | K47 OCT 330 0X |
| 849 | K48 EQU K14 0H |
| 850 | K49 OCT 301 0A |
| 851 | K51 OCT 314 0L |
| 852 | K52 EQU K11 0D |
| 853 | K53 OCT 307 0G |
| 854 | K50 EQU K43 0I |
| 855 | * |
| 856 | * |
| 857 | * ******* |
| 858 | * *STOP * |
| 859 | * *PAUSE* |
| 860 | * ******* |
| 861 | * PAUSE AND STOP CENERATE CALLS TO F$HT |
| 862 | T1W7 PZE 0 |
| 863 | T2W7 PZE 0 |
| 864 | W7 LDA K55 |
| 865 | STA T1W7 |
| 866 | W7A LDA K74 |
| 867 | STA NAMF+1 NAMF = F$HT |
| 868 | JST NF00 SET-UP REMAINING CHAR 0F NAME |
| 869 | JST XN00 EXAMINE NEXT CHAR |
| 870 | LDA TC |
| 871 | SUB CRET |
| 872 | SNZ |
| 873 | JMP W7C TC = C/R - NOTING FOLLOWING |
| 874 | JST IV00 INPUT INTEGER/VARIA8LE |
| 875 | LRL 32 |
| 876 | LDA K200 OUTPUT LDA |
| 877 | JST OB00 OUTPUT OA |
| 878 | W7C JST CN00 CALL NAME |
| 879 | CRA |
| 880 | STA DF DF = 0 |
| 881 | LDA T1W7 |
| 882 | STA ID |
| 883 | JST AI00 ASSIGN INTEGER CONSTANT |
| 884 | CRA OUTPUT DAC |
| 885 | JST OB00 OUTPUT OA OF ST/PA OR HT |
| 886 | LDA T1W7 |
| 887 | SUB K54 |
| 888 | SNZ |
| 889 | JMP C5 PA-NOT THE CASE |
| 890 | LDA RPL |
| 891 | STA AF OUTPUT JMP * |
| 892 | CRA |
| 893 | STA A CAUSE LISTING TO HAVE OCTAL ADDRESS |
| 894 | LDA K201 |
| 895 | JST OR00 OUTPUT RELATWE |
| 896 | JMP B6 |
| 897 | W8 LDA K54 |
| 898 | JMP W7+1 |
| 899 | K74 BCI 1,HT HT |
| 900 | K54 BCI 1,PA PA |
| 901 | K55 BCI 1,ST ST |
| 902 | * |
| 903 | * |
| 904 | * - R8 CALL |
| 905 | * GENERATES CALL DIRECTLY OR USES EXPRESSION TO |
| 906 | * ANALYZE AN ARGUMENT LIST. |
| 907 | R8 JST SY00 INPUT SYMBOL |
| 908 | LDA IU |
| 909 | SUB K101 =1 (SUB) |
| 910 | SZE SKIP IF IU=SUBR, |
| 911 | JST TG00 TAG SUB PROCRAM |
| 912 | LDA TC |
| 913 | SUB K17 ='250 ( ( ) |
| 914 | SZE |
| 915 | JMP *+3 |
| 916 | G2B LDA K101 SET A=1 BEFORE EXPRESSION |
| 917 | JMP G2A |
| 918 | CRA |
| 919 | IAB (B)=0 |
| 920 | LDA OMI2 =JST INSTR, |
| 921 | JST OB00 OUTPUT 0A |
| 922 | JMP A1 CR TEST |
| 923 | * ********************** |
| 924 | * *ASSIGNMENT STATEMENT* |
| 925 | * ********************** |
| 926 | G2 LDA K104 |
| 927 | JST NP00 FIRST NON-SPEC CHECK |
| 928 | JST II00 INPUT ITEM |
| 929 | LDA K102 SET A = 2 BEFORE EXPRESSION |
| 930 | G2A TCA |
| 931 | JST EX00 |
| 932 | JMP A1 |
| 933 | * |
| 934 | * |
| 935 | * ******** |
| 936 | * *RETURN* |
| 937 | * ******** |
| 938 | * OPTIMIZES EXIT CODING FOR FUNCTIONS TO MINIMIZE |
| 939 | * FETCHES OF THE FUNCTION VALUE. |
| 940 | R9 LDA SBF A = SBF, |
| 941 | STA A IF ZERO, GO TO ERROR |
| 942 | SZE |
| 943 | JMP *+3 |
| 944 | JST ER00 |
| 945 | BCI 1,RT RETURN NOT ALLOWED IN MAIN PROGRAM |
| 946 | LDA SFF ELSE, IF SFF = 0, |
| 947 | SNZ |
| 948 | JMP R9C GO TO R9C |
| 949 | CAS K101 IF SFF = 1, GO TO R98 |
| 950 | JMP *+2 |
| 951 | JMP R9B |
| 952 | STA AF OUTPUT REL JMP TO 1ST RETN |
| 953 | LRL 32 |
| 954 | STA A SET A=0 TO OUTPUT OCTAL ADDR ON LISTING |
| 955 | LDA K201 |
| 956 | JMP R9A |
| 957 | R9B IAB |
| 958 | LDA RPL SFF = RPL |
| 959 | STA SFF |
| 960 | LDA K56 0UTPUT ITEM (F,A) |
| 961 | JST OM00 |
| 962 | R9C LRL 32 |
| 963 | STA A SET FOR OCTAL ADDHESS IW LISTING |
| 964 | STA AF SET RELATIVE ADDRESS TO ZERO |
| 965 | LDA K206 JUMP I, 0 |
| 966 | R9A JST OR00 OUTPUT REL |
| 967 | JMP B6 EXIT |
| 968 | K56 OCT 31 P CODE FOR 'F' (FETCH) |
| 969 | * |
| 970 | * |
| 971 | * ******************** |
| 972 | * *STATEMENT FUNCTION* |
| 973 | * ******************** |
| 974 | * OLD ASSIGN VALUES ARE SAVED IN SFTB AND ARE |
| 975 | * RESTORED AT COMPLETION. |
| 976 | G1T0 PZE 0 |
| 977 | G1T1 PZE 0 |
| 978 | G1 LDA K103 (A) = 3 |
| 979 | JST NP00 FIRST NON-SPEC CHECK |
| 980 | JST SY00 INPUT SYMBOL |
| 981 | JST LO00 DEFINE LOCATION |
| 982 | LDA K103 |
| 983 | STA I |
| 984 | JST GE00 GENERATE SUBPROGRAM ENTRANCE |
| 985 | LDA I |
| 986 | STA G1T1 T1 = I |
| 987 | LDA K16X '=' TEST |
| 988 | JST TS00 |
| 989 | JST II00 INPUT ITEM |
| 990 | CRA |
| 991 | JST EX00 EXPRESSION |
| 992 | LDA G1T1 |
| 993 | STA I I = T1 |
| 994 | IRS TCF TCF = TCF+1 |
| 995 | G1A JST STXI |
| 996 | LDA SFTB+2,1 |
| 997 | STA A |
| 998 | LDA SFTB+0,1 |
| 999 | IAB |
| 1000 | JST STXA SET R TO A |
| 1001 | IAB |
| 1002 | STA DP,1 |
| 1003 | JST STXI SET R TO I |
| 1004 | LDA SFTB+1,1 |
| 1005 | IAB |
| 1006 | JST STXA SET R TO A |
| 1007 | IAB |
| 1008 | STA DP+1,1 |
| 1009 | LDA I |
| 1010 | SUB K103 I = I-3 = 0 |
| 1011 | STA I |
| 1012 | SUB K103 |
| 1013 | SZE |
| 1014 | JMP G1A NO, GO TO G1A |
| 1015 | LDA T1NP |
| 1016 | STA A |
| 1017 | LLL 16 |
| 1018 | LDA OMJ1 |
| 1019 | JST OB00 |
| 1020 | JST TG00 TAG SUBPROGRAM |
| 1021 | JMP A1 GO TO C/R TEST |
| 1022 | * - W5 END |
| 1023 | * *************** |
| 1024 | * *END PROC6SSOR* |
| 1025 | * *************** |
| 1026 | * FIRST CHECK SUBPROGRAMS FOR CORRECT USAGE, THEN |
| 1027 | * GENERATE MAP AND STRING BACK VARIABLES |
| 1028 | * AND CONSTANTS. |
| 1029 | T1W5 PZE |
| 1030 | W5 LDA BDF IF BLOCK DATA, |
| 1031 | SZE |
| 1032 | JMP W5K GO TO W5K |
| 1033 | LDA SBF IF SBF NOT ZERO |
| 1034 | STA A INDICATES SUBROUTINES |
| 1035 | SZE OR FUNCTION, |
| 1036 | JMP W5M GO TO W5M |
| 1037 | W5B CRA |
| 1038 | STA A A = J=0 |
| 1039 | JMP W5H |
| 1040 | W5D JST FA00 FETCH ASSIGNS |
| 1041 | JST STXA |
| 1042 | LDA NT |
| 1043 | SZE IF NT=L (CONSTANT) |
| 1044 | JMP W5O GO TO W5O |
| 1045 | LDA IU |
| 1046 | SUB K101 IF IU=1 |
| 1047 | SZE INDICATES VARIABLE, |
| 1048 | JMP W5T GO TO W5T |
| 1049 | W5F LDA RPL SAVE RPL |
| 1050 | STA T1W5 RPL=-AF (INHIBIT LISTING) |
| 1051 | LDA AF |
| 1052 | SSM |
| 1053 | STA RPL |
| 1054 | CRA |
| 1055 | JST OR00 OUTPUT REL |
| 1056 | LDA T1W5 RESTORE RPL |
| 1057 | STA RPL |
| 1058 | W5H LDA A A=A+5 |
| 1059 | ADD K105 |
| 1060 | STA A |
| 1061 | SUB ABAR IF A=ABAR, (DONE) |
| 1062 | SUB K105 |
| 1063 | SZE |
| 1064 | JMP W5D ELSE, GO TO W5D |
| 1065 | W5J JST FS00 FLUSH BUFFER |
| 1066 | LDA SBF |
| 1067 | SZE |
| 1068 | LDA W5Z1 |
| 1069 | ERA W5Z2 |
| 1070 | STA OCI |
| 1071 | LDA SBF |
| 1072 | SZE |
| 1073 | LDA W5Z3 |
| 1074 | STA OCI+1 |
| 1075 | LDA K106 |
| 1076 | STA OCNT |
| 1077 | JST FS00 |
| 1078 | JMP A051 GO TO INITIALIZE |
| 1079 | W5K LDA RPL IF RPL NOT ZERO, |
| 1080 | SNZ |
| 1081 | JMP W5J |
| 1082 | JST ER00 ERROR-CODE GENERATED |
| 1083 | BCI 1,BD IN A BLOCK DATA SUBPROGRAM |
| 1084 | W5M JST FA00 FETCH ASSIGNS |
| 1085 | LDA SFF IF FUNCTION, |
| 1086 | SZE |
| 1087 | JMP W5N GO TO W5N |
| 1088 | JST NU00 NO USE TEST |
| 1089 | JST STXA |
| 1090 | LDA DP,1 IF NO ERROR, |
| 1091 | SSM NT(A)=1 |
| 1092 | STA DP,1 |
| 1093 | JMP W5B GO T0 W5B |
| 1094 | W5N LDA IU |
| 1095 | SUB K102 IU MUST BE VAR/CON, |
| 1096 | SNZ ELSE, |
| 1097 | JMP W5B |
| 1098 | JST ER00 ERROR-FUNCTION |
| 1099 | BCI 1,FD NAME NOT DEFINED BY AN ARITHM, STATEMENT |
| 1100 | W5O LDA IU IF IU=VAR/CON |
| 1101 | SUB K102 |
| 1102 | SZE |
| 1103 | JMP W5H |
| 1104 | LDA AT AND AT = STR/REL |
| 1105 | SUB K103 A "STRING" REQ'D. |
| 1106 | SZE |
| 1107 | JMP W5H |
| 1108 | W5P LDA D0 IF D0 IS 4, THE |
| 1109 | SUB K104 CONSTANT IS COMPLEX, |
| 1110 | SZE OTHERWISE |
| 1111 | JMP W5Q GO TO W5Q |
| 1112 | LDA AF |
| 1113 | JST OS00 OUTPUT STRING |
| 1114 | JST STXA |
| 1115 | LDA DP+2,1 OUTPUT 4 WORDS |
| 1116 | JST W5X OF CONSTANT |
| 1117 | LDA DP+3,1 |
| 1118 | JST W5X |
| 1119 | LDA NT |
| 1120 | SNZ |
| 1121 | JMP W5S |
| 1122 | LDA A INCREMENT A |
| 1123 | ADD K105 |
| 1124 | STA A |
| 1125 | JST STXA |
| 1126 | JMP W5S |
| 1127 | W5Q LDA AF |
| 1128 | JST OS00 OUTPUT STRING |
| 1129 | JST STXA |
| 1130 | LDA D0 IF D0=1, |
| 1131 | SUB K101 INDICATES INTEGER, |
| 1132 | SNZ |
| 1133 | JMP W5R GO TO W5R |
| 1134 | W5S LDA DP+2,1 OUTPUT TWO WORDS |
| 1135 | JST W5X FLOATING POINT CONSTANT |
| 1136 | LDA DP+3,1 |
| 1137 | JST W5X |
| 1138 | LDA D0 IF DOUBLE PRECISION, |
| 1139 | SUB K103 |
| 1140 | SZE |
| 1141 | JMP W5H |
| 1142 | W5R LDA DP+4,1 OUTPUT THE 3RD WORD |
| 1143 | JST W5X |
| 1144 | JMP W5H GO TO W5H |
| 1145 | W5T LDA AT |
| 1146 | CAS K103 |
| 1147 | JMP W5F STRONG VARIABLE (IU = NON 0) |
| 1148 | JMP W5T5 |
| 1149 | CAS K102 TEST FOR STG ABS ADDRESS |
| 1150 | OCT 17400 |
| 1151 | JMP *+2 |
| 1152 | JMP W5F NO |
| 1153 | LDA DP+4,1 TEST FOR PREFIX G |
| 1154 | ANA *-4 |
| 1155 | SUB *-5 |
| 1156 | SZE |
| 1157 | JMP W5F STRONG VARIABLE (IU = NON 0) |
| 1158 | W5T5 LDA IU |
| 1159 | SZE |
| 1160 | JMP W5P |
| 1161 | JST ER00 |
| 1162 | BCI 1,US |
| 1163 | W5X DAC ** |
| 1164 | LRL 16 |
| 1165 | STA DF |
| 1166 | IAB |
| 1167 | JST OA00 OUTPUT ABS |
| 1168 | JST STXA REST "A" |
| 1169 | JMP* W5X EXIT |
| 1170 | W5Z1 EQU K100 000377 |
| 1171 | W5Z2 EQU K122 040000 |
| 1172 | W5Z3 EQU K116 177400 |
| 1173 | * |
| 1174 | * |
| 1175 | * |
| 1176 | * ************************ |
| 1177 | * *INPUT CHAR/OUTPUT PACK* |
| 1178 | * ************************ |
| 1179 | PO00 DAC ** |
| 1180 | JST CH00 INPUT CHAR |
| 1181 | JST OK00 OUTPUT PACK |
| 1182 | JMP* PO00 RETURN |
| 1183 | * ************************ |
| 1184 | * *TRANS HOLLERITH STRING* |
| 1185 | * ************************ |
| 1186 | * FORM HOLLERITH STRING, CHARACTER COUNT IN ID 0N |
| 1187 | * ENTRY. C/R WILL ALSO TERMINATE STRING. |
| 1188 | HS00 DAC ** |
| 1189 | HS10 JST IC00 INPUT 1 CHARACTER |
| 1190 | CAS CRET CHECK FOR CHAR = C/R |
| 1191 | JMP *+2 |
| 1192 | JMP HS15 HOLLERITH STRING EXTENDS PAST END 0F CARD |
| 1193 | JST OK00 OUTPUT PACK THE CHARACTER |
| 1194 | LDA ID |
| 1195 | SUB K101 REDUCE CHARACTER COUNT BY 1 |
| 1196 | STA ID |
| 1197 | SZE |
| 1198 | JMP HS10 INPUT MORE CHARACTERS |
| 1199 | JMP* HS00 |
| 1200 | HS15 JST ER00 |
| 1201 | BCI 1,HS HOLLERITH STRING EXTENDS OVER STATEMENT |
| 1202 | * |
| 1203 | * |
| 1204 | * ********** |
| 1205 | * *DO INPUT* |
| 1206 | * ********** |
| 1207 | * SET UP DO TABLE ENTRIES. |
| 1208 | DP00 DAC ** |
| 1209 | LDA D D = D+5 |
| 1210 | ADD K105 IFLG = NON-ZERO |
| 1211 | STA IFLG |
| 1212 | STA D |
| 1213 | ADD DO I = D0+D |
| 1214 | STA I |
| 1215 | JST STXI |
| 1216 | LDA A DP (1-4) = (B) |
| 1217 | STA DP-2,1 DP (1-2) = A |
| 1218 | IAB |
| 1219 | STA DP-4,1 |
| 1220 | JST IV00 INPUT INT VAR/CON |
| 1221 | LDA K134 = , |
| 1222 | JST TS00 COMMA TEST |
| 1223 | JST STXI |
| 1224 | LDA A |
| 1225 | STA DP,1 DP(I) = INITIAL VALUE POINTER |
| 1226 | JST IV00 INPUT INT VAR/CON |
| 1227 | JST STXI |
| 1228 | LDA A |
| 1229 | STA DP-1,1 DP (I-1) = A - FINAL VALUE POINTER |
| 1230 | LDA TC |
| 1231 | SUB K134 = , |
| 1232 | SZE IF THIRD TERM |
| 1233 | JMP DP20 |
| 1234 | JST IV00 READ AND ASSIGN, |
| 1235 | DP10 JST STXI |
| 1236 | LDA A |
| 1237 | STA DP-3,1 DP(I-3) = INCREMENT POINTER |
| 1238 | CRA |
| 1239 | STA IFLG CLEAR IFLAG |
| 1240 | JMP* DP00 EXIT |
| 1241 | DP20 LDA K101 |
| 1242 | STA ID THIRD TERM = 1 |
| 1243 | JST AI00 ASSIGN CONSTANT |
| 1244 | JMP DP10 |
| 1245 | * *************** |
| 1246 | * *DO INITIALIZE* |
| 1247 | * *************** |
| 1248 | * GENERATE DO INITIALIZATION CODE. |
| 1249 | DS00 DAC ** |
| 1250 | JST STXI ESTABLISH I |
| 1251 | LDA DP,1 A = DP (I) |
| 1252 | STA A |
| 1253 | LDA K200 |
| 1254 | JST DS20 LOAD - LDA INITIAL VALUE |
| 1255 | LDA DP-2,1 |
| 1256 | STA A A = DP (I-2) |
| 1257 | LDA RPL |
| 1258 | STA DP,1 SET RETURN ADDRESS INTO DP(I) |
| 1259 | LDA K202 |
| 1260 | JST DS20 STORE - STA VARIABLE NAME |
| 1261 | JMP* DS00 |
| 1262 | * OUTPUT OA SUBROUTINE |
| 1263 | DS20 DAC ** |
| 1264 | IAB |
| 1265 | LLL 16 SET B = 0 |
| 1266 | JST OB00 OUTPUT OA |
| 1267 | JST STXI RESTORE I |
| 1268 | JMP* DS20 RETURN |
| 1269 | * |
| 1270 | DS90 PZE 0 |
| 1271 | * |
| 1272 | * **************** |
| 1273 | * *DO TERMINATION* |
| 1274 | * **************** |
| 1275 | * GENERATE DO TERMINATION CODE. |
| 1276 | DQ00 DAC ** |
| 1277 | JST STXI |
| 1278 | LDA DP-2,1 |
| 1279 | STA A |
| 1280 | LDA K200 |
| 1281 | JST DS20 OUTPUT LDA VARIABLE NAME |
| 1282 | LDA DP-3,1 |
| 1283 | STA A |
| 1284 | LDA K203 |
| 1285 | JST DS20 OUTPUT ADD INCREMENT |
| 1286 | LDA DP-1,1 |
| 1287 | STA A |
| 1288 | LDA OMK9 |
| 1289 | JST DS20 OUTPUT CAS FINAL VALUE |
| 1290 | CRA |
| 1291 | STA A |
| 1292 | LDA RPL |
| 1293 | ADD K103 |
| 1294 | STA AF |
| 1295 | LDA DP,1 |
| 1296 | STA DS90 |
| 1297 | LDA OMI5 JUMP *+3 |
| 1298 | JST OR00 OUTPUT REL |
| 1299 | LDA DS90 |
| 1300 | STA AF |
| 1301 | LDA OMI5 JMP RPL (SAVED) - POINTS TO 'STA' INST. |
| 1302 | JST OR00 OUTPUT REL |
| 1303 | LDA OMI5 OUTPUT JMP RPL (SAVED) |
| 1304 | JST OR00 OUTPUT REL |
| 1305 | JMP* DQ00 |
| 1306 | * ************ |
| 1307 | * *EXPRESSION* |
| 1308 | * ************ |
| 1309 | * THE RESULTANT OUTPUT IS A BUILT UP AOIN |
| 1310 | * TABLE THAT IS FURTHER PROCESSED BY SCAN. |
| 1311 | T0EX PZE 0 |
| 1312 | EXT0 EQU T0EX |
| 1313 | T1EX PZE 0 |
| 1314 | T2EX PZE 0 |
| 1315 | T3EX PZE 0 |
| 1316 | T5EX PZE 0 |
| 1317 | T6EX PZE 0 |
| 1318 | EXT7 PZE 0 |
| 1319 | T9EX PZE 0 |
| 1320 | EX00 DAC ** |
| 1321 | STA F F = (A) |
| 1322 | LDA A SAVE POINTER TO FIRST VARIABLE |
| 1323 | STA TRFA FOR LATER POSSIBLE TRACING |
| 1324 | LDA D I = D+D0+10 |
| 1325 | ADD DO |
| 1326 | ADD K125 =8 |
| 1327 | STA I |
| 1328 | JST EX99 DATA POOL CHECK |
| 1329 | JST STXI |
| 1330 | CRA |
| 1331 | STA EXT0 T0 = 0 |
| 1332 | STA B B = 0 |
| 1333 | STA EXT7 T7 = 0 |
| 1334 | ADD EX92+12 |
| 1335 | LGL 9 O(1-2) = '=' |
| 1336 | STA DP-1,1 0 (I) = 0 |
| 1337 | CMA |
| 1338 | STA IFLG IFLM NOT 0 |
| 1339 | LDA L0 |
| 1340 | STA DP-2,1 O(I-2) = L0 |
| 1341 | EX10 JST STXI |
| 1342 | CRA |
| 1343 | STA T1EX T1 = 0 |
| 1344 | STA DP,1 AOIN(I) = T(1) = 0 |
| 1345 | STA DP+1,1 |
| 1346 | LDA IM IF IM NOT ZERO, |
| 1347 | SZE |
| 1348 | JMP EX50 GO TO EX50 |
| 1349 | LDA K106 |
| 1350 | TCA |
| 1351 | STA 0 |
| 1352 | * PERFORM TABLE SEARCH |
| 1353 | EX11 LDA TC GO TO ROUTINE ACCORDING |
| 1354 | SUB EX90+6,1 TO TC. |
| 1355 | SNZ IF NO MATCH, ERROR |
| 1356 | JMP EXI1 |
| 1357 | IRS XR |
| 1358 | JMP EX11 |
| 1359 | JST STXI |
| 1360 | LDA LIBF SPECIAL LIBRARY FLAG |
| 1361 | SZE |
| 1362 | JMP EX39 |
| 1363 | JMP EX95 ERROR CONDITION |
| 1364 | EXI1 LDA EX91+6,1 |
| 1365 | STA 0 |
| 1366 | JMP 0,1 PROCESS LEADING OPERATOR |
| 1367 | * SPECIAL OPERATOR FLAG SET WHEN COMPILING THE FORTRAN |
| 1368 | * LIBRARY IN WHICH CASE THE OPERATIONS ( A= ) AND |
| 1369 | * ( =A ) ARE REQUIRED, THIS LOGIC WILL ALLOW THESE |
| 1370 | * TO BE PROCESSED WITHOUT GIVING AN ERROR MESSAGE IF THE |
| 1371 | * SPECIAL LIBRARY FLAG, (LIBF) IS SET TO NON-ZERO, |
| 1372 | * |
| 1373 | EX12 LDA B TC = ( |
| 1374 | ADD K109 B = B+16 |
| 1375 | STA B SXF = NON-ZERO |
| 1376 | STA SXF |
| 1377 | EX14 JST II00 INPUT ITEM |
| 1378 | JST STXI |
| 1379 | JMP EX10 GO TO EX10 |
| 1380 | EX16 JST STXI TC = * |
| 1381 | LDA TC |
| 1382 | LGL 9 OI (I-2) = *, B+13 |
| 1383 | ADD B |
| 1384 | ADD K129 |
| 1385 | ERA DP-1,1 |
| 1386 | SSP |
| 1387 | SNZ |
| 1388 | JMP *+3 |
| 1389 | JST ER00 NO, CONSTR ERROR |
| 1390 | BCI 1,PW * NOT PRECEDED BY ANOTHER * |
| 1391 | LDA K109 (E = '20) |
| 1392 | LGL 9 |
| 1393 | IMA DP-1,1 |
| 1394 | ANA K118 ='777 |
| 1395 | ADD K101 |
| 1396 | ERA DP-1,1 CHAJNE * TO ** |
| 1397 | STA DP-1,1 |
| 1398 | JMP EX14 GO TO EX14 |
| 1399 | EX18 LDA K102 =2 |
| 1400 | STA TC SET TC TO - |
| 1401 | LDA K125 =8 |
| 1402 | STA T1EX T1 = 8 |
| 1403 | JST STXI |
| 1404 | LDA DP-1,1 |
| 1405 | ANA K118 |
| 1406 | SUB B 8 .GT. I (I-2) -B |
| 1407 | SUB T1EX |
| 1408 | SPL |
| 1409 | JMP *+3 |
| 1410 | EX19 JST ER00 NO, ERROR |
| 1411 | BCI 1,NT LOGICAL .NOT. NOT A UNARY OPERATOR |
| 1412 | EX20 LDA T0EX YES |
| 1413 | SZE T (0) = 0 |
| 1414 | JMP EX34 |
| 1415 | EX22 LDA B YES, |
| 1416 | ADD F B + + (5) .GT. 0 |
| 1417 | SPL NO, ERROR |
| 1418 | JMP EX96 |
| 1419 | EX24 JST STXI |
| 1420 | LDA TC |
| 1421 | LGL 9 |
| 1422 | ADD T1EX |
| 1423 | ADD B |
| 1424 | STA DP+1,1 OI(I) = TC , T1+B |
| 1425 | JST EX99 DATA POOL CHECK |
| 1426 | JMP EX14 |
| 1427 | EX26 JST STXI |
| 1428 | LDA DP-1,1 |
| 1429 | ANA K118 IF I (I-2) .LT. B |
| 1430 | CAS B |
| 1431 | JMP EX97 ERROR-----MULTIPLE + OR - SIGNS |
| 1432 | NOP |
| 1433 | EX30 LDA K131 SET INDEX TO |
| 1434 | STA 0 SEARCH OPERATOR TABLE FOR TRAILING |
| 1435 | EX31 LDA EX92+14,1 OPERATOR AFTER HAVING ENCOUNTERED AN |
| 1436 | SUB TC ITEM 0R A NEGATE, |
| 1437 | SZE |
| 1438 | JMP EX32 |
| 1439 | LDA EX93+14,1 |
| 1440 | STA *+3 |
| 1441 | JST STXI |
| 1442 | JMP* *+1 |
| 1443 | DAC ** |
| 1444 | EX32 IRS XR CONTROL OPERATOR LOOP |
| 1445 | JMP EX31 CONTINUE |
| 1446 | * |
| 1447 | * |
| 1448 | * TAPE 3 OF 5 - END |
| 1449 | MOR |