1 /SABR ASSEMBLER V18 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 // 10 / 11 / 12 / 13 / 14 /COPYRIGHT (C) 1971,1974,1975 15 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 16 / 17 / 18 / 19 /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A 20 /SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- 21 /SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER 22 /COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE 23 /TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO 24 /AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE 25 /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. 26 / 27 / 28 /THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT 29 /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL 30 /EQUIPMRNT COROPATION. 31 / 32 /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 33 /SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 34 / 35 / 36 / 37 / 38 / 39 / 40 / VERSION SABR.17 41 / OCTOBER 26, 1971 42 / C. MCCOMAS 43 / R. LARY 44 / B. CLOGHER 45 /SABR.V17 DEC-08-A2D2-17 46 / OCTOBER 26,1971 47 /COPYRIGHT 1971, DIGITAL EQUIPMENT CORPORATION, MAYNARD MASSACHUSETTS 01754 48 / C. MCCOMAS/R. LARY/B. CLOGHER 49 50 51 // 52 / 53 /FIXES TO SABR FOR V18 J.K 1975 54 / 55 / .LITERAL POOL OVERFLOW 56 / .INCORRECT LINE NUMBER WITH ERROR MESSAGE 57 / 58 / 59 /ASSEMBLY, LOAD AND SAVE INSTRUCTIONS 60 / 61 / .PAL SABR.PA 62 / .PAL SPATCH.PA 63 / 64 / .LO SABR$SPATCH$ 65 / 66 / .SA SYS SABR 67 / 68 / 69 FIELD 1 70 / 71 / 72 / DEFINE LOCATIONS OF MONITOR SUBROUTINES 73 / 74 DISPL=10 75 CDFSK=35+DISPL 76 CDZSK=41+DISPL 77 DUMS=57+DISPL 78 LINK=23+DISPL 79 OBIS=45+DISPL 80 OPIS=52+DISPL 81 RTN=30+DISPL 82 83 84 *1 85 010001 0000 USE, 0 86 010002 0000 VAL, 0 87 010003 0000 SYMBOL, 0 /PTR TO CURRENT USE WORD IN MST 88 010004 7771 M7, -7 89 010005 0150 AS0, S0 90 010006 7577 OTP, CORE1-1 /OCC. TAB. PTR (NEXT FREE WORD BELOW) 91 010007 2430 STT, STTP /PTR TO 1ST FREE WORD OF SYM. TAB. 92 /(KEEP STT AFTER OTP FOR INITA) 93 94 010010 0000 X0, 0 /LINE BUFFER INDEX 95 010011 0000 X1, 0 /TEMP AUTOS 96 010012 0000 X2, 0 97 010013 0000 X3, 0 /HSR BUFFER INDEX 98 99 010014 0002 K2, 2 100 010015 0004 K4, 4 101 010016 0003 K3, 3 102 010017 0130 K130, 130 103 010020 0030 K30, 30 104 105 / INDIRRECT REFERENCES 106 / 107 010021 5306 ICPLFS, CPLFS /CHECK FOR AND PROCESS COLLECTION LFS 108 010022 5550 CPGESI, CPGES 109 010023 1323 CTYPE, L61 /CHARACTER TYPEOUT ROUTINE 110 010024 4726 CRLF, L73 111 010025 3706 DUMMY, DUM /DUMMY ROUTINE 112 010026 4705 GETCHR, L65 /ROUTINE TO READ NEXT CHAR 113 010027 0600 GETSYM, GTSYM /ROUTINE TO INPUT AND DECODE NEXT SYMBOL 114 010030 1000 INI, INILPT 115 010031 3000 LFSCHK, LFSCK /CHECK FOR A LFS 116 010032 4507 OBSYM, OBNSYM /OBTAIN SYMBOL FROM MST 117 010033 2001 DCIL1, RDL1 118 010034 4764 NULLP, NULL 119 010035 3664 OTYPE, L62 /OCTAL TYPEOUT ROUTINE 120 010036 3400 OUTBIN, OUTBN /ROUTINE TO OUTPUT COMP WORD AND REL BITS 121 010037 6254 OUTSKP, OUTSK /ROUTINE TO OUTPUT A SKIP INSTRUCTION 122 010040 6443 POPEXP, POPEX 123 010041 4000 PRSYMP, PRSYM 124 010042 3164 PUNCH, L63 /BINARY PUNCH ROUTINE 125 010043 2000 RDIL, DCIL /READ AND DECODE ONE INPUT LINE 126 010044 0442 RECTI, RECT 127 010045 0400 L55I, L55 128 010046 2200 SKIPL, L72 /SKIPS UNTIL A RETURN OR SEMICOLON 129 010047 2400 SLITAB, SLTAB /SEARCH LITERAL TABLE 130 010050 2224 SPSTAB, SPSTB /SEARCH PAGE SYMBOL TABLE 131 010051 3713 SREST, L66 /ROUTINE TO SEARCH EXTERNAL SYMBOL TABLE 132 010052 5000 STCE, SETCT 133 010053 1347 TEST, TSCHR /ROUTINE TO TEST CHARACTERS FOR EQUALITY 134 010054 4772 TYPE, L64 /TTY TYPE ROUTINE 135 010055 1060 WLNP, WLN 136 010056 2532 WRITEP, WRITE 137 / 138 / IMPORTANT VARIABLES 139 / 140 010057 0000 ACTR, 0 /ASSEMBLY COUNTER 141 010060 0000 BSSSW, 0 /BSS 0 IN PROCESS SWITCH 142 010061 0000 CHR, 0 /LOC TO HOLD CURRENT CHARACTER 143 010062 0000 CSUM, 0 /BINARY CHECK SUM 144 010063 0000 EQVOPR, EQUTB /EQUIVALENCE TABLE OUTPUT POINTER 145 010064 0000 EQVIPR, EQUTB /EQ. TB. INPUT PTR. 146 010065 0000 ILC, 0 /CURRENT LOCATION 147 010066 0000 LFSPTR, 0 /POINTER TO LFS TABLE ENTRY 148 010067 0000 LINE, 0 /NO OF LINES SINCE LAST LFS 149 010070 0000 LITSZE, 0 /SIZE OF LIT TAB (ASM PHASE) 150 010071 0000 LTSZE, 0 /SAME FOR COLL. PHASE 151 010072 0000 LSTSKP, 0 /LAST INSTRUCTION SKIP INDICATOR 152 010073 0000 LSTBNK, 0 /LAST INSTRUCTION BANK INDICATOR 153 010074 0000 OBACTR, 0 /OFF BANK INSTRUCTION ADDITION COUNTER 154 010075 0000 OPSCTR, 0 /OFF PAGE SYMBOL COUNTER 155 /***** KEEP ITEMS SO INCLOSED IN THE GIVEN ORDER FOR INITA 156 010076 0177 HICOM, 0177 157 010077 0200 PAG, 0200 /CURRENT PAGE BITS 158 010100 0000 ESTSIZ, 0 /HOLDS SIZE OF EXTERNAL SYMBOL TABLE 159 010101 0000 EQVBIT, 0 160 010102 0000 APMSW, 0 /AUTOMATIC PAGING MODE SWITCH 161 010103 0001 TEM7, 1 /SPECIAL VARIABLE USED BY ASME5 162 010104 0001 CPSW, 1 163 010105 0000 DSW, 0 164 010106 0000 FORFLG, 0 /FORTR PSUEDO-OP FLAG 165 /POS NON-0 MEANS IGNORE DATA 166 010107 0000 SCOLON, 0 167 /***** 168 010110 0000 PASS, 0 169 010111 0000 PGEESC, 0 /HOLDS SIZE OF PAGE ESCAPE REQUIRED FOR CUR PAGE 170 010112 0000 PUPGE, 0 171 010113 0000 PHASE, 0 /PHASE SWITCH 172 010114 0000 PSTCPR, 0 /PAGE SYMBOL TABLE CODE POINTER 173 010115 0000 PSTSPR, 0 /PAGE SYMBOL TABLE SYMBOL POINTER 174 010116 0000 PSTSZE, 0 /SIZE OF PST 175 010117 0000 PTCPR, 0 /PAGE TABLE CODE POINTER 176 010120 0000 PTOPR, 0 /PAGE TABLE OP CODE POINTER 177 010121 0000 PTSPR, 0 /PAGE TABLE SYMBOL POINTER 178 010122 0000 PTSZE, 0 /SIZE OF PT 179 010123 0000 TEM1, 0 180 010124 0000 TEM2, 0 181 010125 0000 TEM3, 0 182 010126 0000 TEM4, 0 183 010127 0000 TEM5, 0 184 PTSIZ=PTSZE /KEYPUNCHING ERROR 185 LITSIZ=LITSZE /KEYPUNCHING ERROR 186 / 187 /LISTING VARIABLES 188 010130 0000 LFLG, 0 /0 IF NULL LINE 189 010131 0000 EFLG, 0 /ERROR FLAG, 6BIT CHAR. IN LEFT HALF 190 010132 0000 VFLG, 0 /0 IF NO VALUE TO OUTPUT 191 010133 0000 AFLG, 0 /DITTO FOR ADDRESS 192 010134 0000 CODE, 0 /RELOCATION CODE 193 010135 0000 ADDRES, 0 /INSTR. ADDRESS 194 010136 0000 VALUE, 0 /INSTR. VALUE 195 196 /LINE INFO 197 010137 0000 LFS, 0 /KEEP THIS LIST ORDERED AS GIVEN 198 010140 0000 OP, 0 /TO AGREE WITH TLFS LIST 199 010141 0000 IB, 0 200 010142 0000 AFS, 0 201 010143 0000 UMIC, 0 202 010144 0000 NSGN, 0 203 010145 0000 EXP, 0 204 010146 0000 SK, 0 205 CURSKP=SK 206 010147 0000 BANK, 0 207 010150 0000 S0, 0 208 010151 0000 S1, 0 209 010152 0000 S2, 0 210 010153 0000 S3, 0 211 212 213 / FREQUENTLY USED CONSTANTS 214 / 215 010154 0005 K5, 5 216 010155 0007 K7, 0007 217 010156 0010 K10, 0010 218 010157 0020 K20, 0020 219 010160 0040 K40, 0040 220 010161 0077 K77, 0077 221 010162 0100 K100, 100 222 010163 0177 K177, 0177 223 010164 0200 K200, 0200 224 010165 0240 K240, 240 225 K400=L55I 226 K600=GETSYM 227 K3000=LFSCHK 228 K1000=INI 229 K4000=PRSYMP 230 010166 7600 K7600, 7600 231 M200=K7600 232 010167 7524 M254, -254 233 010170 1645 LINAX, LINBUF-1 234 010171 7776 M2, -2 235 010172 7775 M3, -3 236 K2000=RDIL 237 M3000=STCE 238 M7600=K200 239 / 240 / CORE LAYOUT POINTERS 241 / 242 PTOPTB=K200 /PAGE OP CODE TABLE 1 IN BANK 1 243 BSEEST=K100 /BASE OF EXTERNAL SYMBOL TABLE IN BANK 1 244 MST=K2000 /BASE MAIN SYM. TAB IN BANK1 245 LFSBSE=K600 /BASE OF LOCATION FIELD SYMBOL TABLE IN BANK 1 246 LITBSE=L55I /BASE OF ASSEMBLY PHASE LITERAL TABLE IN BANK 1 247 010173 6776 PSTBSE, PSTB /BASE OF PAGE SYMBOL TABLE IN BANK 0 248 010174 7176 PTBSE, PTB /BASE OF PAGE TABLE IN BANK 0 249 LTBSE=K1000 /BASE OF COLL. PHASE LIT. TABLE IN BANK 1 250 PTB=7176 251 PSTB=6776 252 253 254 255 IERROR=JMP I . /ERROR MESSAGES 256 010175 2710 ERRI 257 CERROR=JMP I . 258 010176 2711 ERRC 259 SERROR=JMP I . 260 010177 2702 ERRS 261 262 *0200 263 / 264 / MAIN CONTROL LOGIC 265 / 266 010200 7200 START, CLA 267 010201 4777 JMS I INITIO 268 010202 3110 DCA PASS 269 010203 3726 DCA I ICALSW 270 010204 4725 JMS I INITAP 271 010205 4430 RSTRT, JMS I INI /INITIALIZE PAGE TABLE POINTERS 272 010206 7410 SKP 273 010207 4727 RSTRT1, JMS I INCPTI /INCREMENT PAGE TABLE POINTERS 274 010210 4443 JMS I RDIL /INPUT AND DECODE ONE LINE 275 010211 4733 JMS I CKCSWP /CK FOR MISSING ARG 276 010212 3060 DCA BSSSW /ALSO CLR BSS IS PROGRESS SW 277 010213 4452 JMS I STCE /SET COUNTERS FOR CURRENT LINE 278 010214 1140 TAD OP /OP CODE 279 010215 6201 CDF 00 280 010216 3520 DCA I PTOPR /TO PT OP CODE WORD 281 010217 6211 CDF 10 282 010220 1146 TAD SK /OR IN SKIP BIT 283 010221 7640 SZA CLA 284 010222 1160 TAD K40 /SKIP INST 285 010223 1517 TAD I PTCPR /IN CASE LFS BIT IN ALREADY 286 010224 3123 DCA TEM1 287 010225 1141 TAD IB /OR IN INDIRECT BIT 288 010226 7640 SZA CLA 289 010227 1045 TAD K400 /YES 290 010230 1123 TAD TEM1 291 010231 3123 DCA TEM1 /FOR NEW PT CODE WORD 292 010232 1145 TAD EXP /DO WE HAVE A PAR? 293 010233 7640 SZA CLA 294 010234 5242 JMP RSTRT5 /YES 295 010235 1143 TAD UMIC /A MICRO INST? 296 010236 7650 SNA CLA 297 010237 5245 JMP RSTRT4 /NO AN MRI 298 010240 1015 TAD K4 /OR IN OPERATE BIT 299 010241 5270 JMP COMP /EXIT TO COMPUTE PAGE SIZE 300 / 301 / PAR FOR AN OP CODE 302 / 303 010242 1156 RSTRT5, TAD K10 /PLACE PAR BIT ON PAGE TABLE 304 010243 1123 TAD TEM1 305 010244 3123 DCA TEM1 306 010245 1171 RSTRT4, TAD M2 307 010246 1142 TAD AFS /IS AFS A CONSTANT 308 010247 7440 SZA 309 010250 5256 JMP .+6 /NO 310 010251 1157 TAD K20 /YES ... CONSTANT BIT 311 010252 1123 RSTRT2, TAD TEM1 /+PT CODE WORD 312 010253 3123 DCA TEM1 /FOR NEW PT CODE WORD 313 010254 1150 TAD S0 /ACTUAL BINARY CONSTANT 314 010255 5264 JMP COMPGO /EXIT TO COMPUTE PAGE SIZE 315 010256 7001 IAC 316 010257 7640 SZA CLA /IS AFS A LITERAL 317 010260 5263 JMP .+3 /NO 318 010261 1014 TAD K2 /YES ... LITERAL BIT 319 010262 5252 JMP RSTRT2 /SAVE AS CONSTANT FROM THIS POINT 320 010263 1142 TAD AFS /PLACE AFS ON PST 321 010264 3521 COMPGO, DCA I PTSPR 322 010265 1144 TAD NSGN /CK FOR # REF 323 010266 7640 SZA CLA 324 010267 1043 TAD K2000 /YES 325 010270 1123 COMP, TAD TEM1 /GET ALL THE BITS 326 010271 3517 DCA I PTCPR /TO THE CODE WORD 327 / 328 / NOW COMPUTE THE CURRENT PAGE SIZE 329 / 330 010272 1137 TAD LFS /IS THERE AN LFS 331 010273 7640 SZA CLA 332 010274 4444 JMS I RECTI /YES ... EXIT TO RECOUNT PAGE 333 010275 4422 JMS I CPGESI /COMPUTE ACTUAL PAGE SIZE 334 010276 1166 TAD M200 /SUBTRACT PHYSICAL PAGE SIZE 335 010277 7750 SPA SNA CLA /IS SIZE .GT. PHYSICAL SIZE 336 010300 5316 JMP RSTRT6 /NO ... GET NEXT 337 010301 4731 JMS I PSHINI /YES ... PUSH CURRENT INPUT LINE 338 010302 1112 TAD PUPGE /RESTORE LAST PAGE ESCAPE 339 010303 3111 DCA PGEESC 340 010304 7240 CLA CMA /DECREMENT PAGE TABLE SIZE 341 010305 1122 TAD PTSZE 342 010306 3122 DCA PTSZE 343 / 344 / ASSEMBLE THE CURRENT PAGE 345 / 346 010307 4445 JMS I L55I /ASSEMBLE CURRENT PAGE 347 010310 4776 JMS I UDPG 348 010311 4732 JMS I FIXI /FIX ILC IF PASS 2 349 010312 4730 JMS I POPINI /POP LAST INPUT LINE 350 010313 4430 JMS I INI /INITIALIZE PT POINTERS 351 010314 3444 DCA I RECTI /CLR RECOUNT FLAG FOR CPLFS 352 010315 5211 JMP RSTRT1+2 /EXIT TO PROCESS POPPED LINE 353 / 354 010316 1111 RSTRT6, TAD PGEESC /SAVE CURRENT PAGE ESCAPE 355 010317 3112 DCA PUPGE /IN CASE NEXT LINE OVERFLOWS PAGE 356 010320 1110 TAD PASS 357 010321 7640 SZA CLA 358 010322 4724 JMS I LASMP 359 010323 5207 JMP RSTRT1 360 010324 5650 LASMP, ASM02 361 010325 4327 INITAP, INITA 362 010326 1562 ICALSW, CALLSW 363 010327 3550 INCPTI, INCPT 364 010330 4217 POPINI, POPIN 365 010331 4200 PSHINI, PUSHIN 366 010332 2215 FIXI, FIXILC 367 010333 0762 CKCSWP, CKCSW 368 / PAGE PSEUDO OPERATION 369 / 370 010334 4446 PPAGE, JMS I SKIPL 371 010335 7240 CLA CMA /DECREMENT PAGE TABLE SIZE 372 010336 1122 TAD PTSZE 373 010337 7450 SNA /WATCH FOR ZERO 374 010340 5343 JMP .+3 375 010341 3122 DCA PTSZE /FOR NEW PAGE TABLE SIZE 376 010342 4445 JMS I L55I /ASSEMBLE CURRENT PAGE 377 010343 4776 JMS I UDPG 378 010344 5370 JMP RORGX /INITIALIZE AND INPUT ANOTHER LINE 379 / 380 / REORG PSEUDO OPERATOIN 381 / 382 010345 4427 PRORG, JMS I GETSYM /GET NEXT INPUT ITEM 383 010346 7000 NOP /NOTHING THERE 384 010347 7410 SKP /SYMBOL 385 010350 7610 SKP CLA /CONSTANT 386 010351 5575 IERROR /LITERAL 387 010352 4446 JMS I SKIPL 388 010353 1150 TAD S0 /NEW RELOCATABLE ORIGIN 389 010354 0166 AND K7600 /MASK OFF PAGE DISPLACEMENT BITS 390 010355 7450 SNA /ARE WE TRYING TO REORIGIN BELOW 200 391 010356 5575 IERROR /YES ... NOT ALLOWED 392 010357 3374 DCA RORG1 /SAVE NEW ORIGIN 393 010360 7240 CLA CMA /DECREMENT PAGE TABLE SIZE 394 010361 1122 TAD PTSZE 395 010362 7450 SNA /IS THIS THE BEGINNING OF A PAGE 396 010363 5366 JMP .+3 /YES 397 010364 3122 DCA PTSZE 398 010365 4445 JMS I L55I 399 010366 1374 TAD RORG1 /NEW ORIGIN 400 010367 3077 DCA PAG /TO PROPER LOCATION 401 010370 4732 RORGX, JMS I FIXI 402 010371 1375 TAD RSTRTX /RETURN AT RSTRT INSTEAD OF RDL1 403 010372 3033 DCA DCIL1 404 010373 5434 JMP I NULLP /RE-INITIALIZE AND GO 405 010374 0000 RORG1, 0 406 010375 0205 RSTRTX, RSTRT 407 010376 3172 UDPG, UDPAGE 408 010377 6457 INITIO, IOINIT 409 *0400 410 / 411 / ROUTINE TO CAUSE CURRENT PAGE TO BE ASSEMBLED 412 413 /THIS ROUTINE ACTS AS THE DRIVER FOR THE ASSEMBLY 414 /PROCESS. MOST OF THE ACTUAL ASSEMBLY WORK 415 /IS DONE BY ASMBL,A1,A2,& ASM02. 416 /FUNCTION:(PASS1) 417 / CALL ASMBL TWICE. THE FIRST TIME 418 / (ACTR=0) PROHIBIT OUTPUT BY CONVERTING 419 / "JMS OUTBIN" TO "JMS DUMMY". BUT 420 / ALSO CONVERT "JMS DUMMY" TO "JMS OUTBN" 421 / SO THAT OUTPUTTING OF OCCURANCES 422 / WILL OCCUR IN FIRST CALL TO ASMBL. 423 / IN GENERAL, IN THE FIRST RUN THRU ASMBL 424 / NOTHING HAPPENS EXCEPT THAT TAGS ARE 425 / DEFINED (BY LFSCK). AS THE TAGS ARE 426 / DEFINED LFSCK ALSO CAUSES THE 427 / OCC.TAB. TO BE SEARCHED FOR PREVIOUSLY 428 / UNRESOLVED FORWARD REFERENCES TO THIS 429 / TAG. IF FOUND, RELOCATABLE POINTERS TO 430 / THE TAG ARE OUTPUT AT ALL REQUIRED 431 / ADDRESSES DURING PHASE1 OF ASMBL. 432 / AFTER THE 1ST ASMBL, OUTBIN & DUMMY ARE 433 / SWITCHED BACK TO NORMAL & ASMBL 434 / IS CALLED AGAIN. DURING 2ND ASMBL 435 / THE TAG DEFN. SECTION OF LFSCK IS 436 / BY-PASSED & ALL CODE EXCEPT OCCURANCES 437 / IS OUTPUT. 438 / (PASS2) 439 / DURING THE LISTING PASS MOST OF THE 440 / ASSEMBLY IS DONE ON A LINE-BY-LINE 441 / BASIS BY ASM02 SO L55 HAS LITTLE 442 / TO DO. IT JUST CALLS A2 TO 443 / OUTPUT THE LITERAL POOL & THEN 444 / A1 TO INIT. ASSEMBLY OF THE NEXT 445 / PAGE. 446 / 447 010400 0000 L55, 0 448 010401 5633 JMP I L55B /CHANGED FROM V16 TO FIX LISTING BUG 449 010402 1110 L55C, TAD PASS 450 010403 7640 SZA CLA 451 010404 5235 JMP L55L 452 010405 4632 JMS I L55A /CHECK COMMON PUNCHED 453 010406 1227 TAD L56 /SET DUMMY ROUTINE TO OUTPUT 454 010407 3025 DCA DUMMY 455 010410 1230 TAD L56+1 /SET OUTPUT ROUTINE TO DUMMY 456 010411 3036 DCA OUTBIN 457 010412 3057 DCA ACTR /CLEAR ASSEMBLY COUNTER 458 010413 1063 TAD EQVOPR /SAVE FOR 2ND ASSEMBL 459 010414 3234 DCA TEM55 460 010415 4631 JMS I ASSMBL /ASSEMBLE PAGE FIRST TIME 461 010416 1227 TAD L56 /RESTORE OUTPUT ROUTINE 462 010417 3036 DCA OUTBIN 463 010420 1230 TAD L56+1 /RESTORE DUMMY ROUTINE 464 010421 3025 DCA DUMMY 465 010422 2057 ISZ ACTR /SET ASSEMBLY COUNTER 466 010423 1234 TAD TEM55 /RESTORE AS BEFORE 1ST ASSEMBL 467 010424 3063 DCA EQVOPR 468 010425 4631 JMS I ASSMBL /ASSEMBLE AND OUTPUT THIS TIME 469 010426 5600 JMP I L55 /RETURN 470 010427 3400 L56, OUTBN 471 010430 3706 DUM 472 010431 5400 ASSMBL, ASMBL 473 010432 3536 L55A, HCBPS 474 010433 6725 L55B, EQVFIX 475 010434 0000 TEM55, 0 476 477 478 479 010435 4640 L55L, JMS I A2P 480 010436 4641 JMS I A1P /INITIALIZE NEXT PAGE 481 010437 5600 JMP I L55 482 010440 5422 A2P, A2 483 010441 5517 A1P, A1 484 485 486 487 / 488 /COLLECTION PHASE ROUTINE 489 /RECOUNT THE CURRENT PAGE BECAUSE OF AN LFS 490 /CALL WITH AC=0, LEAVES AC=0 491 /FUNCTION:WHEN A NEW TAG IS DEFINED ON PAGE 492 / OPSCTR & OBACTR MAY NEED TO BE 493 / REDUCED. CPLFS TAKES CARE OF OPSCTR 494 / BUT OBACTR REQUIRES REVIEWING THE 495 / ENTIRE PAGE. 496 /OPERATION: (1) CALL CLNPST TO CLEAR BITS 1-9 497 / OF ALL PST CODE WORDS-WIPES OUT 498 / SHARE OF OBACTR DUE TO EACH SYM. 499 / (2) RE-INIT PAGE & CLR OBACTR 500 / (3) FETCH ITEM FROM PAGE TABLE 501 / (4) SET ALL INSTR.TYPE FLAGS ACCORDINGLY 502 / (5) CALL SETC 503 / (6) INC PAGE TABLE PTRS TO NEXT ITEM 504 / & LOOP BACK TO (3) 505 / CONTINUE THRU ENTIRE TABLE. 506 / 507 010442 0000 RECT, 0 508 010443 1116 TAD PSTSZE /ANYTHING ON PST? 509 010444 7440 SZA 510 010445 5730 JMP I CLENUP /YES, CLEAN PST CODES 511 512 010446 4727 RECRET, JMS I INISS /DO INITS. 513 010447 3074 DCA OBACTR /ZERO OFF BANK ADDITION COUNTER 514 010450 1122 TAD PTSZE /SIZE OF PT 515 010451 7041 CIA 516 010452 3200 DCA RECT1 /TO INDEX LOCATION 517 / 518 / THIS IS THE RECOUNT LOOP 519 / 520 010453 6201 RECT2, CDF 00 521 010454 1520 TAD I PTOPR /OP CODE FROM PT 522 010455 6211 CDF 10 523 010456 3140 DCA OP 524 010457 1517 TAD I PTCPR /CK FOR SKIP INST 525 010460 0160 AND K40 526 010461 3146 DCA SK 527 010462 1517 TAD I PTCPR /CK FOR # REF 528 010463 0043 AND K2000 529 010464 3144 DCA NSGN 530 010465 1517 TAD I PTCPR /PT CODE WORD 531 010466 0015 AND K4 /IS IT AN OPERATE INSTRUCTION 532 010467 3143 DCA UMIC 533 010470 1517 TAD I PTCPR /CK FOR PAR EXP 534 010471 0156 AND K10 535 010472 3145 DCA EXP 536 010473 1517 TAD I PTCPR /PAGE TABLE CODE WORD 537 010474 0045 AND K400 /MASK OFF INDIRECT BIT 538 010475 3141 DCA IB /PLACE IT IN PROPER LOCATION 539 010476 1517 TAD I PTCPR /PT CODE WORD 540 010477 0157 AND K20 /IS AFS A CONSTANT 541 010500 7112 CLL RTR 542 010501 7440 SZA 543 010502 5305 JMP .+3 /YES 544 010503 1517 TAD I PTCPR /PT CODE WORD 545 010504 0014 AND K2 /IS AFS A LITERAL 546 010505 7110 CLL RAR 547 010506 7450 SNA 548 010507 1521 TAD I PTSPR /ADDRESS FIELD SYMBOL 549 010510 3142 DCA AFS 550 010511 1521 TAD I PTSPR /ACTUAL LITERAL 551 010512 3150 DCA S0 /TO LITERAL LOCATION 552 / 553 / AREA WHICH CALLS COUNT ROUTINE 554 / 555 010513 1517 RECT3, TAD I PTCPR /PT CODE WORD 556 010514 0331 AND K201 /IS THERE A TAG OR AN EQUIVALENCED TAG? 557 010515 7650 SNA CLA 558 010516 5321 JMP .+3 /NO 559 010517 7240 CLA CMA /YES ... SET BANK UNKNOWN 560 010520 3147 DCA BANK 561 010521 4452 JMS I STCE /CALL COUNT ROUTINE 562 010522 2200 ISZ RECT1 /OVER YET 563 010523 7410 SKP /NO 564 010524 5642 JMP I RECT /EXIT 565 010525 4732 JMS I ISZPT1 566 010526 5253 JMP RECT2 /GO GET NEXT LINE 567 RECT1=L55 568 010527 1041 INISS, INISUB 569 010530 6424 CLENUP, CLNPST 570 010531 0201 K201, 201 571 010532 6701 ISZPT1, ISZPT 572 010533 4323 PAUS1, PPAUS1 573 / 574 / END PSEUDO OPERATION 575 / 576 010534 1106 PEND, TAD FORFLG /IF FLAG ON, TURN OFF & 577 010535 7740 SMA SZA CLA /GO TO RDL1 578 010536 5733 JMP I PAUS1 /GO TURN OFF FORTR P-OP 579 010537 7240 CLA CMA /DECREMENT PT SIZE 580 010540 1122 TAD PTSZE 581 010541 7450 SNA /ARE WE AT THE BEGINNING OF A PAGE 582 010542 5352 JMP PCSM /YES 583 010543 3122 DCA PTSZE /NO ... NEW PAGE TABLE SIZE 584 010544 1077 TAD PAG /CHECK FOR OVERFLOW INTO 7600 PAGE 585 010545 1164 TAD K200 586 010546 7650 SNA CLA 587 010547 5577 SERROR /OVERFLOW-ERROR S 588 010550 2102 ISZ APMSW /LEAVE AUTO PAGING MODE FOR LAST PAGE 589 010551 4200 JMS L55 /ASSEMBLE CURRENT PAGE 590 010552 4436 PCSM, JMS I OUTBIN /OUTPUT CKSUM 591 010553 0062 CSUM 592 010554 0010 10 593 010555 1110 TAD PASS 594 010556 7640 SZA CLA 595 010557 5367 JMP ENDEND 596 010560 4774 JMS I LEAD /OUTPUT TRAILER CODE 597 010561 4441 JMS I PRSYMP /TYPE OUT SYMBOL TABLE 598 010562 2110 ISZ PASS 599 010563 4773 JMS I INITAI 600 010564 4641 JMS I A1P 601 010565 7402 HLT 602 010566 5772 JMP I REE 603 010567 4455 ENDEND, JMS I WLNP /LIST THE "END" STATMT 604 010570 7602 HLT CLA 605 010571 5564 JMP I K200 /RESTART AT 200 606 010572 0205 REE, RSTRT 607 010573 4327 INITAI, INITA 608 010574 4714 LEAD, LEADER 609 610 611 *600 612 /READ INPUT ITEM 613 / IGNORES SPACES & TABS TO 1ST CHAR OF ITEM 614 /ASSUMES AC=0 615 /CALLING SEQ: JMS I GETSYM 616 / NULL RETURN (IF NO ITEM FOUND BEFORE CR ; / * 617 / SYMBOL RET. (WITH SYM PACKED IN S1-S3 618 / AND S0=SYMBOL LENGTH) 619 / CONST. RET. (WITH VALUE IN S0) 620 / LITERAL RET. (WITH VALUE IN S0) 621 /SYNTAX: LITERALS: (000 NUMERIC LIT. 622 / (-000 NEG. 623 / (K000 OCTAL 624 / (D000 DECIMAL 625 / ("A ASCII LIT. 626 / (-"A NEGATIVE ASCII 627 / CONSTANTS: 000,-000,"A,OR -"A 628 / NOTE: AFTER A VALID QUOTE ANY ASCII CHAR MAY APPEAR 629 / AND WILL BE STORED AS THE CONST OR LIT VALUE. 630 / THIS INCLUDES CR ; / * SO THESE DO NOT 631 / TERMINATE A LINE AFTER A QUOTE. 632 /ALL EXITS LEAVE AC=0 633 /NOTE: TO PROVIDE A CHECK OF THE PUNCTUATION 634 /CHAR. FOLLOWING PREVIOUSLY READ SYMBOL, GTSYM 635 /DECREMENTS THE LINE PTR BEFORE STARTING 636 /THE READ. IF THIS IS NOT WANTED 637 /CALL TO GTSYM MUST BE PRECEDED 638 /BY "ISZ X0" 639 640 010600 0000 GTSYM, 0 641 010601 7040 CMA /DECREMENT CHARACTER PTR 642 010602 1010 TAD X0 643 010603 3010 DCA X0 644 010604 1105 TAD DSW /SAVE NUMERIC MODE 645 010605 3126 DCA TEM4 646 010606 7040 CMA /SIGN=-1 FOR POSITIVE 647 010607 3355 ITM4, DCA SIGN /SIGN=0 TO FORCE NEGATION 648 010610 4754 ITM2, JMS I RC /READ 1ST CHAR 649 010611 5264 JMP ITM5 /DIGIT: GET NUMERIC CONST 650 010612 5217 JMP ITM3 /ALPHA: GET SYMBOL 651 010613 4453 JMS I TEST /SORT LEADING PUNCT. 652 010614 0751 SL2-1 653 010615 0011 BL2-SL2 654 010616 5576 CERROR /ILLEGAL CHAR 655 / 656 /READ IN A SYMBOL 657 /ASSUMES 1ST CHAR ALREADY READ IN & SAVED IN CHR 658 /LEAVES SYMBOL PACKED IN 6BIT CHAR PAIRS IN S1-S3 659 / S0=NUMBER OF CHAR PAIRS ACTUALLY USED 660 661 010617 2355 ITM3, ISZ SIGN /CK FOR -SYMBOL 662 010620 5576 CERROR /YES 663 010621 3150 DCA S0 /CLR FOR SYM LENGTH COUNT 664 010622 3123 DCA TEM1 /CLR FOR CHAR COUNT 665 010623 3125 DCA TEM3 /SET PTR FOR LEFT BYTE 666 010624 1005 TAD AS0 /AUTO-INDEX STORAGE IN S1-S3 667 010625 3012 DCA X2 668 010626 2123 RSM2, ISZ TEM1 /COUNT CHAR 669 010627 1123 TAD TEM1 /ARE MORE THAN 6 CHARS IN? 670 010630 1004 TAD M7 671 010631 7700 SMA CLA 672 010632 5251 JMP RSM1 /YES, IGNORE 673 010633 1061 TAD CHR /NO, GET ASCII 674 010634 0161 AND K77 /MASK TO 6BIT 675 010635 2125 ISZ TEM3 /WHICH BYTE? 676 010636 5242 JMP RSM3 /LEFT 677 010637 1124 TAD TEM2 /ADD ON LEFT HALF 678 010640 3412 DCA I X2 /STORE CHAR PAIR IN S1-S3 679 010641 5251 JMP RSM1 680 010642 7106 RSM3, RTL CLL /MOVE 6BIT TO LEFT BYTE 681 010643 7006 RTL 682 010644 7006 RTL 683 010645 3124 DCA TEM2 /SAVE WHILE WAITING ON RT BYTE 684 010646 7040 CMA /SET PTR FOR RT BYTE 685 010647 3125 DCA TEM3 686 010650 2150 ISZ S0 /COUNT 1 SYMBOL WORD 687 010651 4754 RSM1, JMS I RC /READ NEXT CHAR 688 010652 5226 JMP RSM2 /DIGIT 689 010653 5226 JMP RSM2 /ALPHA 690 010654 2125 ISZ TEM3 /PUNCT=END OF SYM: CHECK BYTE PTR 691 010655 5260 JMP .+3 /NOTHING IN TEM2 692 010656 1124 TAD TEM2 /SAVE THE ODD CHAR 693 010657 3412 DCA I X2 694 010660 1756 TAD I IFCTP /SKIP SYM TAB IF IF-COUNT NOT UP 695 010661 7700 SMA CLA 696 010662 4753 JMS I SRS /LOOK IT UP IN SYM TAB. & ENTER IF NEC. 697 010663 5350 JMP ITM14 /EXIT 698 699 /READ DIGIT STRING 700 /ASSUMES 1ST DIGIT ALREADY READ AND ASCII SAVED IN CHR 701 / SGN=-1 IF NUM. IS TO BE NEGATED 702 / DSW=0 FOR OCTAL CONVERSION, 1 FOR DECIMAL 703 /LEAVES AC=OCTAL VALUE OF DIGIT STRING (NEG IF SGN=-1) 704 / CHR=ASCII FOR TERMINAL PUNCTUATION 705 706 010664 3123 ITM5, DCA TEM1 /CLEAR FOR ACCUMULATION 707 010665 1061 RDS1, TAD CHR /REDUCE CHR TO OCTAL VALUE 708 010666 1352 TAD M260A 709 010667 3124 DCA TEM2 710 010670 1105 TAD DSW /OCTAL OR DECIMAL CONVERSION? 711 010671 7640 SZA CLA /OCTAL, CK FOR 8 OR 9 712 010672 5302 JMP MUL1 /DECIMAL, 8 OR 9 IS OK 713 010673 1124 TAD TEM2 /VALUE = 8 OR 9? 714 010674 1004 TAD M7 715 010675 7740 SMA SZA CLA /NO, GO ON 716 010676 5576 CERROR /YES 717 /MULT. PREV. VAL. BY CONV. FACTOR 718 010677 1123 TAD TEM1 719 010700 7106 CLL RTL /ARG *4 720 010701 5305 JMP MUL1+3 721 010702 1123 MUL1, TAD TEM1 722 010703 7106 CLL RTL /ARG * 4 723 010704 1123 TAD TEM1 /PLUS ARG=ARG*5 724 010705 7004 RAL /*2 725 010706 1124 TAD TEM2 /ADD NEW DIGIT 726 010707 3123 DCA TEM1 /SAVE ACCUMULATED VALUE 727 010710 4754 JMS I RC /READ NEXT CHAR. 728 010711 5265 JMP RDS1 /DIGIT 729 010712 5576 CERROR /ALPHA 730 010713 1123 TAD TEM1 /PUNCT.; GET TOTAL 731 010714 2355 ITM6, ISZ SIGN /IS NEGATE SW. SET? 732 010715 7041 CIA /YES 733 010716 3150 DCA S0 /STORE CONST VALUE 734 010717 1126 TAD TEM4 /RESTORE NUMERIC MODE 735 010720 3105 DCA DSW 736 010721 5347 JMP ITM13 /EXIT 737 010722 4426 ITM7, JMS I GETCHR /READ ALPHA CONST. 738 010723 7450 SNA 739 010724 5575 IERROR /NOTHING THERE 740 010725 3123 DCA TEM1 741 010726 4426 JMS I GETCHR /READ NEXT CHAR FOR BENEFIT OF SKIPL 742 010727 7200 CLA 743 010730 1123 TAD TEM1 744 010731 5314 JMP ITM6 745 010732 4757 ITM8, JMS I CKIFP /MOVE PTR TO LITERAL EXIT 746 010733 4754 ITM9, JMS I RC /READ 1ST CHAR OF LIT. 747 010734 5264 JMP ITM5 /DIGIT: NUMERIC LIT. 748 010735 7000 NOP /ALPHA: MUST BE K OR D 749 010736 4453 JMS I TEST /LOOK FOR K,D,",- 750 010737 0737 SL3-1 751 010740 0033 BL3-SL3 752 010741 5576 CERROR /ILLEGAL CHAR 753 010742 3355 ITM10, DCA SIGN /SET FLAG FOR NEG. LIT. 754 010743 5333 JMP ITM9 755 010744 7001 ITM11, IAC /FORCE DECIMAL LIT. 756 010745 3105 ITM12, DCA DSW /FORCE OCTAL LIT. 757 010746 5333 JMP ITM9 758 010747 4757 ITM13, JMS I CKIFP /CONST. EXIT 759 010750 4757 ITM14, JMS I CKIFP /SYMBOL EXIT 760 010751 5600 ITM15, JMP I GTSYM /NULL EXIT 761 010752 7520 M260A, -260 762 010753 4400 SRS, SRSYM 763 010754 4546 RC, RCH 764 010755 0000 SIGN, 0 765 010756 6362 IFCTP, IFCTR 766 010757 6746 CKIFP, CKIF 767 AERROR=JMP I . 768 010760 2712 ERRA 769 010761 1562 CALLSP, CALLSW 770 / 771 /CHECK FOR TOO FEW ARGS 772 /AERROR IF CALLSW MINUS 773 / 774 010762 0000 CKCSW, 0 775 010763 1761 TAD I CALLSP /CK 776 010764 7700 SMA CLA 777 010765 5762 JMP I CKCSW /OK 778 010766 2761 ISZ I CALLSP /COUNT MISSING ARG 779 010767 7000 NOP 780 010770 5760 AERROR /FLAG 781 / 782 /CHECK FOR TOO MANY ARGS 783 /AERROR IF CALLSW POSITIVE 784 / 785 010771 0000 CKCLS, 0 786 010772 1761 TAD I CALLSP /DO WE WANT THIS ARG? 787 010773 7700 SMA CLA 788 010774 5760 AERROR /NO, ARG COUNT OVERFLOW 789 010775 2761 ISZ I CALLSP /YES, COUNT THIS ARG 790 010776 7000 NOP 791 010777 5771 JMP I CKCLS 792 *1000 793 / 794 / ROUTINE TO INITIALIZE POINTERS FOR THE COLLECTION OF A PAGE 795 / 796 011000 0000 INILPT, 0 797 011001 7201 CLA IAC 798 011002 3122 DCA PTSZE /SET PAGE TABLE SIZE 799 011003 3116 DCA PSTSZE /ZERO PAGE SYMBOL TABLE SIZE 800 011004 3071 DCA LTSZE /ZERO LITERAL TABLE SIZE (COLL. PHASE) 801 011005 3070 DCA LITSZE /& ASMBLY PHASE LIT TABL 802 011006 3075 DCA OPSCTR /ZERO OFF PAGE SYMBOL COUNTER 803 011007 3113 DCA PHASE /SET PHASE SWITCH TO COLLECTION 804 011010 4241 JMS INISUB 805 011011 7240 CLA CMA 806 011012 3636 DCA I BNKSV 807 011013 7201 CLA IAC 808 011014 3637 DCA I LSTSKK 809 011015 1101 TAD EQVBIT /ANY EQUIV. LEFT FROM LAST PAGE? 810 011016 7440 SZA 811 011017 5222 JMP EQSAV /YES, SKIP TABLE REINIT & SAVE BIT 812 011020 3064 DCA EQVIPR /NO, RE-INIT EQ. TAB. PTRS 813 011021 3063 DCA EQVOPR 814 011022 3517 EQSAV, DCA I PTCPR /INITIALIZE PAGE TABLE CODE WORD 815 011023 3521 DCA I PTSPR /INITIALIZE PAGE TABLE SYMBOL WORD 816 011024 6201 CDF 00 817 011025 3520 DCA I PTOPR /INITIALIZE PT OP CODE WORD 818 011026 6211 CDF 10 819 011027 1027 TAD LFSBSE /INITIALIZE LFS TABLE POINTER 820 011030 3066 DCA LFSPTR 821 011031 3074 DCA OBACTR /ZERO OFF BANK ADDITION COUNTER 822 011032 1235 TAD RDL1X /RESTORE IN CASE OF REORG OR PAGE PSUEDO 823 011033 3033 DCA DCIL1 824 011034 5600 JMP I INILPT /RETURN 825 826 011035 2001 RDL1X, RDL1 827 011036 5751 BNKSV, BNKSAV 828 011037 5752 LSTSKK, SKPSAV 829 011040 7567 M211, -211 830 831 832 / 833 /GENERAL PAGE TABLE INITALIZATION 834 /DOES PARTS OF INITALIZ. COMMON TO SEVERAL 835 /ROUTINES 836 / 837 011041 0000 INISUB, 0 838 011042 1174 TAD PTBSE /INITIALIZE PAGE TABLE CODE POINTER 839 011043 3117 DCA PTCPR 840 011044 1174 TAD PTBSE /INITIALIZE PAGE TABLE SYMBOL POINTER 841 011045 7001 IAC 842 011046 3121 DCA PTSPR 843 011047 1164 TAD PTOPTB /INITIALIZE PT OP CODE POINTER 844 011050 3120 DCA PTOPR 845 011051 7240 CLA CMA /SET LAST BANK UNKNOWN 846 011052 3073 DCA LSTBNK 847 011053 7201 CLA IAC /SET LAST INSTRUCTION SKIP INDICATOR ON 848 011054 3072 DCA LSTSKP 849 011055 7240 CLA CMA /SET CURRENT BANK UNKNOWN 850 011056 3147 DCA BANK 851 011057 5641 JMP I INISUB 852 853 854 / 855 /SUBR. TO WRITE A LINE 856 /MAY BE USED ONLY DURING PASS 2 (LISTING) 857 /FUNCTION:TYPES (OR PUNCHES) EACH LINE OF SOURCE 858 / WITH PROPER ASSEMBLY ADDR. & CODES 859 / AT BEGINNING OF LINE (OR SPACES IF 860 / THESE ARE OMITTED). 861 /LINE FORMAT: 862 /ADDR VALU RC CONTENTS OF LINE BUFFER 863 /ERROR FLAGS TYPED BETWEEN ADDR & VALU 864 /COLUMNS. RC=RELOCATION CODE. THE LINE 865 /BUFFER IS IN FIELD 1 AT "LINBUF." 866 / 867 011060 0000 WLN, 0 868 011061 1130 TAD LFLG /NULL LINE? 869 011062 7650 SNA CLA 870 011063 5353 JMP WLN3 /YES 871 011064 1133 TAD AFLG 872 011065 7640 SZA CLA 873 011066 5272 JMP .+4 874 011067 4423 JMS I CTYPE /IF AFLG=0 TYPE 4 SPACES 875 011070 4423 JMS I CTYPE 876 011071 5274 JMP .+3 877 011072 1135 TAD ADDRES /OTHERWISE TYPE 4 DIGITS 878 011073 4435 JMS I OTYPE 879 011074 1131 TAD EFLG /TYPE ERR. FLAG & SPACE 880 011075 4423 JMS I CTYPE 881 011076 1132 TAD VFLG /SAME TREATMENT FOR VALUE 882 011077 7640 SZA CLA /AS FOR ADDRES 883 011100 5304 JMP .+4 884 011101 4423 JMS I CTYPE 885 011102 4423 JMS I CTYPE 886 011103 5306 JMP .+3 887 011104 1136 TAD VALUE 888 011105 4435 JMS I OTYPE 889 011106 1165 TAD K240 /SPACE 890 011107 4454 JMS I TYPE 891 011110 1134 TAD CODE /2 DIGITS OR 2 SPACES 892 011111 4423 JMS I CTYPE 893 011112 6201 CDF 00 894 011113 1764 TAD I LINEB /IS THERE ANY LINE TO TYPE? 895 011114 6211 CDF 10 896 011115 7650 SNA CLA 897 011116 5353 JMP WLN3 /NO, EXIT 898 011117 4423 JMS I CTYPE /2 SPACES 899 011120 1165 TAD K240 /3RD SPACE 900 011121 4454 JMS I TYPE 901 011122 1170 TAD LINAX /INDEX LINE BUFFER 902 011123 3011 DCA X1 903 011124 3127 DCA CHARCT /CLR COUNTER 904 011125 6201 WLN1, CDF 00 905 011126 1411 TAD I X1 /GET CHAR 906 011127 6211 CDF 10 907 011130 7450 SNA 908 011131 5353 JMP WLN3 /END OF LINE 909 011132 3061 DCA CHR 910 011133 1061 TAD CHR /CK FOR TAB 911 011134 1240 TAD M211 912 011135 7650 SNA CLA 913 011136 5343 JMP WLN2 /YES 914 011137 2127 ISZ CHARCT /COUNT 1 CHAR 915 011140 1061 TAD CHR /OUTPUT IT 916 011141 4454 JMS I TYPE 917 011142 5325 JMP WLN1 918 011143 1165 WLN2, TAD K240 /SIMULATE TAB 919 011144 2127 ISZ CHARCT 920 011145 4454 JMS I TYPE 921 011146 1127 TAD CHARCT 922 011147 0155 AND K7 923 011150 7640 SZA CLA 924 011151 5343 JMP WLN2 /CONTINUE TAB 925 011152 5325 JMP WLN1 926 011153 4424 WLN3, JMS I CRLF 927 011154 3132 DCA VFLG 928 011155 3131 DCA EFLG 929 011156 3133 DCA AFLG 930 011157 3134 DCA CODE 931 011160 6201 CDF 00 932 011161 3764 DCA I LINEB 933 011162 6211 CDF 10 934 011163 5660 JMP I WLN 935 936 011164 1646 LINEB, LINBUF 937 CHARCT=TEM5 938 / 939 /PATCH FOR SETCT 940 /NOT USED BY ANY OTHER PART OF PROGRAM 941 /(ADDED AT V15) 942 / 943 /FUNCTION: SET BANK=1 AFTER A "CALL" 944 /(MUST BE DONE FOR BENEFIT OF RECT ROUTINE) 945 / 946 011165 0000 SETCAL, 0 947 011166 1517 TAD I PTCPR /CK FOR CALL CONST. 948 011167 0162 AND K100 949 011170 7650 SNA CLA 950 011171 5374 JMP .+3 /NO 951 011172 7001 IAC /YES, BANK TO CURRENT 952 011173 3147 DCA BANK 953 011174 1145 TAD EXP /DO 2 INSTRUCTIONS THAT 954 011175 1143 TAD UMIC /WERE KNOCKED OUT OF SETCT 955 011176 5765 JMP I SETCAL 956 957 958 *1200 959 / 960 / ASSEMBLY PHASE PAR 961 962 / 963 /PPAR1 IS ACTUALLY A PART OF THE BASIC ASSEMBLY 964 /ROUTINE ASM02. 965 /IT ASSEMBLES ALL PARAMETERS 966 /TYPES ARE: RC=00 ABSOLUTE CONSTANT 967 / RC=01 RELOCATABLE ADDRESS 968 / RC=05 CDF TO CURRENT FIELD 969 / RC=06 CALL CONSTANT (#ARGS+EXT.SYM.#) 970 / ALSO LITERALS USED IN ARG STATEMENTS 971 / SUCH LITS. ARE PUT IN LIT. POOL 972 / AND RC=01 ADDRESS OF LIT. PUT WHERE 973 / THE ARG STATEMT OCCURS. 974 /ADDRESS PARAMETERS ARE ACUALLY TAKEN 975 /CAR OF BY SUBR. PPAR3S. 976 / 977 / 978 011200 3234 PPAR1, DCA PPARY /CLR OUTPUT CODE 979 011201 1517 TAD I PTCPR /CK FOR LITERAL ARG OR PARAM. 980 011202 0014 AND K2 981 011203 7640 SZA CLA 982 011204 5241 JMP PARLIT /YES 983 011205 1517 TAD I PTCPR /PT CODE WORD 984 011206 0157 AND K20 /IS IT PAR CONSTANT 985 011207 7650 SNA CLA 986 011210 5236 JMP PPAR3 /NO 987 011211 1521 TAD I PTSPR /YES ... ACTUAL CONSTANT 988 011212 3123 DCA TEM1 /TO DIRECTLY ADDRESSABLE LOC 989 011213 1517 TAD I PTCPR /IS THIS A SPECIAL CONSTANT USED BY CALL 990 011214 0162 AND K100 991 011215 7650 SNA CLA 992 011216 5223 JMP .+5 993 011217 7001 IAC /YES, SET BANK TO CURRENT (NEW IN V15) 994 011220 3147 DCA BANK 995 011221 7001 IAC /& FORCE CODE=06 996 011222 5227 JMP .+5 997 011223 1517 TAD I PTCPR /IS THIS A CDF INSTRUCTION TO THIS BANK 998 011224 0030 AND K1000 999 011225 7650 SNA CLA 1000 011226 5231 JMP .+3 1001 011227 1154 TAD K5 1002 011230 3234 DCA PPARY 1003 011231 4456 JMS I WRITEP 1004 011232 4436 JMS I OUTBIN /OUTPUT IT 1005 011233 0123 TEM1 /NO RELOCATION 1006 011234 0000 PPARY, 0 1007 011235 7410 SKP 1008 011236 4253 PPAR3, JMS PPAR3S /DO ALL WORK 1009 011237 5715 JMP I PPAR5-1 1010 011240 3445 SERALI, SRALT 1011 1012 011241 1521 PARLIT, TAD I PTSPR /PUT LIT ON TAB. 1013 011242 3151 DCA S1 1014 011243 7001 IAC 1015 011244 3150 DCA S0 1016 011245 4640 JMS I SERALI 1017 011246 0163 AND K177 /GET PAGE ADDRESS 1018 011247 1077 TAD PAG /+ PAGE BITS 1019 011250 3123 DCA TEM1 1020 011251 2234 ISZ PPARY /CODE FOR RELOCATABLE ADDR. 1021 011252 5231 JMP PPARY-3 1022 / 1023 / SUBROUTINE TO ASSEMBLE PAR SYMBOL 1024 1025 / 1026 /ASSEMBLE ADDRESS PARAMETER 1027 /SYMBOL MAY BE ABSOLUTE OR RELOCATABLE 1028 /NORMAL OR # REF. 1029 /IF SYMBOL IS YET UNDEFINED, AN ENTRY IS 1030 /MADE FOR IT & THE CURRENT ADDRESS IN THE 1031 /OCCURANCE TABLE. 1032 / 1033 / 1034 011253 0000 PPAR3S, 0 1035 011254 3302 DCA PPARX /CLR OUTPUT CODE 1036 011255 1057 TAD ACTR /WHCH TIME ARE WE ASSEMBLING THIS PAGE 1037 /NOTE: ACTR REMAINS 1 DURING PASS 2 1038 011256 7650 SNA CLA 1039 011257 5653 JMP I PPAR3S /FIRST TIME JUST RETURN 1040 011260 1521 TAD I PTSPR /SYMBOL 1041 011261 3142 DCA AFS /TO DIRRECTLY ADDRESSABLE LOCATION 1042 011262 4432 JMS I OBSYM /GET IT FROM MST 1043 011263 0142 AFS 1044 011264 1001 TAD USE /MST USE WORD 1045 011265 0045 AND K400 /IS IT DEFINED YET 1046 011266 7650 SNA CLA 1047 011267 5304 JMP PPAR4 /NO ... OCCURANCE 1048 011270 1001 TAD USE /MST USE WORD 1049 011271 0031 AND K3000 /IS SYMBOL ABSOLUTE 1050 011272 7640 SZA CLA 1051 011273 2302 ISZ PPARX /OUTPUT RELOCATABLE 1052 011274 4722 JMS I NSCHKI 1053 011275 1002 TAD VAL /INCREMENT IF # REF. 1054 011276 3123 PPAR6, DCA TEM1 1055 011277 4456 JMS I WRITEP 1056 011300 4436 JMS I OUTBIN 1057 011301 0123 TEM1 1058 011302 0000 PPARX, 0 1059 011303 5653 JMP I PPAR3S /RETURN 1060 011304 1142 PPAR4, TAD AFS /SYMBOL 1061 011305 3716 DCA I PPAR5 /TO SUBROUTINE LOCATION 1062 011306 1065 TAD ILC /CUR LOC 1063 011307 3717 DCA I PPAR5+1 /TO SUBROUTINE LOC 1064 011310 4722 JMS I NSCHKI 1065 011311 7106 CLL RTL 1066 011312 3721 DCA I PPAR5+3 /SET ATEM2 FOR NORMAL OR # REFERENCE 1067 011313 4720 JMS I PPAR5+2 /CREATE AN OCCURANCE 1068 011314 5276 JMP PPAR6 /OUTPUT ZERO WORD FOR LOADER 1069 011315 5737 ASM01 1070 011316 3353 PPAR5, ATEM3 1071 011317 3354 ATEM4 1072 011320 3315 L53B 1073 011321 3352 ATEM2 1074 011322 6324 NSCHKI, NSCHK 1075 1076 / 1077 /TWO CHARACTER TYPEOUT 1078 /FROM PACKED ASCII PAIR 1079 /CALL WITH 6-BIT PAIR IN AC 1080 /L61A ACTS AS SUBR FOR L61 1081 / 1082 011323 0000 L61, 0 1083 011324 3123 DCA TEM1 /SAVE CHARACTERS 1084 011325 1123 TAD TEM1 1085 011326 7012 RTR /SHIFT HIGH 6 BITS TO LOW 1086 011327 7012 RTR 1087 011330 7012 RTR 1088 011331 4335 JMS L61A /MASK AND TYPE FIRST CHARACTER 1089 011332 1123 TAD TEM1 1090 011333 4335 JMS L61A /MASK AND TYPE SECOND CHARACTER 1091 011334 5723 JMP I L61 /RETURN 1092 1093 011335 0000 L61A, 0 1094 011336 0161 AND K77 /MASK CHAR TO 6 BITS 1095 011337 7450 SNA /ZERO MEANS SPACE 1096 011340 5344 JMP L61B 1097 011341 5746 JMP I L61CP /HAVE DO SOME OF THIS WORK ON ANOTHER PAGE 1098 011342 4454 L61D, JMS I TYPE /TYPE CHAR 1099 011343 5735 JMP I L61A /RETURN 1100 011344 1165 L61B, TAD K240 /SPACE 1101 011345 5342 JMP L61D 1102 011346 3363 L61CP, L61C 1103 1104 / 1105 / ROUTINE TO TEST CHARACTERS AND TAKE SELECTIVE EXITS 1106 / 1107 / CALL IS 1108 / JMS I TEST 1109 / SORT LIST ADDR -1 1110 / BRANCH LIST ADDR - SORT LIST ADDR 1111 / RETURN IF ALL TESTS UNSUCCESSFUL 1112 / ASSUMES AC=0 & CHAR TO LOOK FOR IS IN CHR 1113 1114 /SORT ENDS UNSUCCESSFULLY AT 1115 /NEGATIVE NUMBER FOLLOWING SORT LIST 1116 /IF SORT IS SUCCESSFUL, A BRANCH IS 1117 /TAKEN VIA BR. LIST ITEM CORRESPONDING 1118 /TO MATCHING SORT LIST ITEM. 1119 / 1120 011347 0000 TSCHR, 0 1121 011350 7200 CLA 1122 011351 1747 TAD I TSCHR /GET SORT LIST ADDR -1 1123 011352 3011 DCA X1 /AUTO-INDEX SORT LIST 1124 011353 2347 ISZ TSCHR /MOVE ARG PTR 1125 011354 6201 CDF 00 1126 011355 1411 TSCHR2, TAD I X1 /GET SORT LIST ITEM 1127 011356 7510 SPA 1128 011357 5374 JMP TSCHR3 /NEG = END OF SORT LIST 1129 011360 7041 CIA /COMPARE ITEM WITH CHR 1130 011361 1061 TAD CHR 1131 011362 7640 SZA CLA /0 = MATCH FOUND 1132 011363 5355 JMP TSCHR2 /NO MATCH, TRY NEXT ITEM 1133 011364 1011 TAD X1 /GET ADDR. OF MATCH 1134 011365 6211 CDF 10 1135 011366 1747 TAD I TSCHR /+BR. LIST ADDR - SORT LIST ADDR 1136 011367 3347 DCA TSCHR /= PTR TO BR. LIST ITEM 1137 011370 6201 CDF 00 1138 011371 1747 TAD I TSCHR /GET BR. LIST ITEM 1139 011372 3347 DCA TSCHR /= BRANCH PTR FOR THE MATCH 1140 011373 7410 SKP 1141 011374 2347 TSCHR3, ISZ TSCHR /NO MATCH ON LIST 1142 011375 7300 CLA CLL 1143 011376 6211 CDF 10 1144 011377 5747 JMP I TSCHR / RETURN UNSUCCESSFUL 1145 1146 1147 *1400 1148 / 1149 / CALL PSEUDO OPERATION 1150 / 1151 011400 4427 PCALL, JMS I GETSYM /GET NEXT INPUT ITEM 1152 011401 7000 NOP /NOTHING THERE 1153 011402 7410 SKP /SYMBOL 1154 011403 1061 TAD CHR /CONSTANT 1155 011404 1167 TAD M254 /LITERAL 1156 011405 7640 SZA CLA /IS BREAK CHARACTER A COMMA 1157 011406 5216 JMP CALERR /NO ... ERROR 1158 011407 1150 TAD S0 /SAVE ARG COUNT 1159 011410 3361 DCA ARGCT 1160 011411 2010 ISZ X0 /PROHIBIT FLAGGING THE COMMA 1161 011412 4427 JMS I GETSYM /GET SUBROUTINE NAME 1162 011413 7410 SKP /NONE THERE 1163 011414 5217 JMP .+3 /SYMBOL 1164 011415 7000 NOP /CONSTANT 1165 011416 5575 CALERR, IERROR /LITERAL 1166 011417 4446 JMS I SKIPL 1167 011420 4451 JMS I SREST /SEARCH EXTERNAL SYMBOL TABLE AND OUTPUT TV DEF 1168 011421 3367 DCA PCALL1 /SAVE EXTERNAL SYMBOL NUMBER 1169 011422 1137 TAD LFS 1170 011423 3441 DCA I CALLFS 1171 011424 1361 TAD ARGCT /SET ARG COUNT IN DYNAMIC LOCATION 1172 011425 7041 CIA 1173 011426 3362 DCA CALLSW /SET CALL - ARG IN PROCESS SWITCH & COUNTER 1174 011427 1361 TAD ARGCT /COUNT OF ARGS 1175 011430 7104 RAL CLL /*2 1176 011431 1361 TAD ARGCT /*3 IN CASE USING LITERAL ARGS 1177 011432 1014 TAD K2 /+2 1178 011433 4763 JMS I PARG2 /CAN THE CURRENT PAGE HOLD IT 1179 011434 7410 SKP /YES 1180 011435 4430 JMS I INI /NO ... INITIALIZE PT PTRS ... HAD TO ASSEMBLE PAG 1181 011436 1441 TAD I CALLFS 1182 011437 3137 DCA LFS 1183 011440 4421 JMS I ICPLFS /PROCESS COLLECTION LFS 1184 011441 1517 TAD I PTCPR /PT CODE WORD 1185 011442 1020 TAD K30 /ADD CONSTANT BIT & PAR BIT 1186 011443 3517 DCA I PTCPR /TO PT CODE WORD 1187 011444 1365 TAD PARG6 /PLACE JMS LINK INSTRUCTION 1188 011445 3521 DCA I PTSPR /AS CONSTANT 1189 011446 4351 JMS PARG5 /INC PT PTRS & ASSMBL IF PASS 2 1190 011447 1017 TAD K130 /CORRECT BIT PATTERN FOR CALL 1191 011450 3517 DCA I PTCPR /TO PT CODE WORD 1192 011451 7001 IAC /A CALL FORCES BANK TO CURRENT 1193 011452 3073 DCA LSTBNK /(NEW IN V15) 1194 011453 7001 IAC 1195 011454 3147 DCA BANK 1196 011455 1361 TAD ARGCT /COUNT OF ARGS 1197 011456 7106 CLL RTL /TO HIGH ORDER AC 1198 011457 7006 RTL 1199 011460 7006 RTL 1200 011461 1367 TAD PCALL1 /OR IN EXTERNAL SYMBOL NUMBER 1201 011462 3521 DCA I PTSPR /PLACE IN PT SYMBOL WORD 1202 011463 5326 JMP ARGPP0 /COMMON EXIT 1203 / 1204 / ARG PSEUDO OPERATION 1205 / 1206 011464 4427 PARG, JMS I GETSYM /GET NEXT INPUT ITEM 1207 011465 5575 IERROR /NOTHING THERE 1208 011466 5275 JMP PARGSM /SYMBOL 1209 011467 5273 JMP PARGCN /CONSTANT CODE IS 2 1210 011470 4446 JMS I SKIPL /FIXES BUG IN V16 1211 011471 4447 JMS I SLITAB /PUT LIT ON TABLE 1212 011472 7040 CMA /LIT CODE IS 1 1213 011473 1014 PARGCN, TAD K2 1214 011474 7410 SKP 1215 011475 1003 PARGSM, TAD SYMBOL /PAR ADDRESS 1216 011476 3142 DCA AFS 1217 011477 4446 JMS I SKIPL 1218 011500 4764 JMS I CKCLSP /CK FOR TOO MANY ARGS 1219 / 1220 / ROUTINE TO PUT A CDF IN THE PAGE TABLE 1221 / 1222 011501 1020 TAD K30 /PT CODE WORD 1223 011502 3517 DCA I PTCPR /TO PT 1224 011503 4421 JMS I ICPLFS /PROCESS ANY LFS 1225 011504 1350 TAD K6201 /CDF 1226 011505 3521 DCA I PTSPR /TO PT SYMBOL WORD 1227 011506 1171 TAD M2 1228 011507 1142 TAD AFS /IS AFS A CONSTANT 1229 011510 7450 SNA 1230 011511 5334 JMP ARGPP4 /YES 1231 011512 7001 IAC /IS AFS A LITERAL 1232 011513 7650 SNA CLA 1233 011514 5330 JMP ARGPP5 /YES 1234 011515 4432 JMS I OBSYM /NO ... SYMBOL ... GET ITS POINTERS TO MST 1235 011516 0142 AFS 1236 011517 1001 TAD USE /AFS MST USE WORD 1237 011520 0160 AND K40 /IS IT A COMMON SYMBOL 1238 011521 7650 SNA CLA 1239 011522 4367 JMS CDFCHG /NO 1240 011523 4343 JMS ARGPP2 /INCREMENT PT PTRS AND PUT OUT A PAR 1241 011524 1142 TAD AFS 1242 011525 3521 DCA I PTSPR /PLACE SYMBOL IN PT SYMBOL WORD 1243 011526 4351 ARGPP0, JMS PARG5 /INC PT PTRS &ASSMBL IF PASS 2 1244 011527 5440 JMP I POPEXP /EXIT TO GET NEXT LINE 1245 1246 / 1247 011530 4367 ARGPP5, JMS CDFCHG 1248 011531 4343 JMS ARGPP2 /INCREMENT PTRS AND PUT OUT A PAR 1249 011532 1014 TAD K2 /SET LITERAL BIT 1250 011533 5336 JMP .+3 /SAVE AS CONSTANT FROM HERE 1251 / 1252 011534 4343 ARGPP4, JMS ARGPP2 /INCREMENT PTRS AND PUT OUT A PAR 1253 011535 1157 TAD K20 /SET CONSTANT BIT 1254 011536 1517 TAD I PTCPR /PT CODE WORD 1255 011537 3517 DCA I PTCPR /FOR PROPER WORD 1256 011540 1150 TAD S0 /PLACE CONSTANT IN PROPER LOCATION 1257 011541 3521 DCA I PTSPR 1258 011542 5326 JMP ARGPP0 1259 / 1260 / ROUTINE TO INCREMENT POINTERS AND SET UP FOR A PAR IN THE PAGE TABLE 1261 / 1262 011543 0000 ARGPP2, 0 1263 011544 4351 JMS PARG5 /INC PT PTRS & ASSMBL IF PASS 2 1264 011545 1156 TAD K10 1265 011546 3517 DCA I PTCPR 1266 011547 5743 JMP I ARGPP2 /RETURN 1267 011550 6211 K6201, CDF 10 1268 1269 011551 0000 ASMIF1, 0 1270 011552 1110 TAD PASS 1271 011553 7640 SZA CLA 1272 011554 4757 JMS I ASM02S /ASSMBL NOW IF LISTING PASS 1273 011555 4760 JMS I INC 1274 011556 5751 JMP I ASMIF1 1275 1276 011557 5650 ASM02S, ASM02 1277 011560 3550 INC, INCPT 1278 1279 011561 0000 ARGCT, 0 1280 CALLFS=PRSYMP /TEMP 1281 011562 0000 CALLSW, 0 1282 011563 2646 PARG2, IFFSUB 1283 011564 0771 CKCLSP, CKCLS 1284 PARG5=ASMIF1 1285 011565 4033 PARG6, JMS LINK 1286 011566 7770 M10, -10 1287 1288 /ROUTINE TO CHANGE CDF 10 TO CDF * 1289 011567 0000 CDFCHG, 0 1290 011570 1517 TAD I PTCPR 1291 011571 1030 TAD K1000 /SET CDF * BIT IN P.T. 1292 011572 3517 DCA I PTCPR 1293 011573 1521 TAD I PTSPR /CHANGE 6211 1294 011574 1366 TAD M10 /TO 6201 1295 011575 3521 DCA I PTSPR 1296 011576 5767 JMP I CDFCHG 1297 PCALL1=CDFCHG /TEMP 1298 1299 1300 *1600 1301 / 1302 / COMMN PSEUDO OPERATION 1303 / 1304 011600 4427 PCOMMN, JMS I GETSYM /GET ADDRESS FIELD SYMBOL 1305 011601 7000 NOP /NOTHING THERE 1306 011602 7410 SKP /SYMBOL THERE 1307 011603 7610 SKP CLA /CONSTANT 1308 011604 5575 IERROR /LITERAL 1309 011605 4446 JMS I SKIPL 1310 011606 1137 TAD LFS 1311 011607 7650 SNA CLA /IS THERE AN LFS 1312 011610 5245 JMP COMMN2 /NO ... JUST INCREMENT COUNTERS 1313 011611 4432 JMS I OBSYM /GET POINTERS TO LFS 1314 011612 0137 LFS 1315 011613 1001 TAD USE /MST USE WORD 1316 011614 0016 AND K3 /SAVE SYMBOL LENGTH 1317 011615 1256 TAD K440 /ADD CORRECT BITS 1318 011616 3001 DCA USE /FOR NEW MST USE WORD 1319 011617 1150 TAD S0 /NO OF COMMON LOCATIONS 1320 011620 7650 SNA CLA /ARE THERE ZERO 1321 011621 5241 JMP COMMN1 /YES ... EQUIVALENCE OUTPUT 1322 011622 1076 TAD HICOM /NO ... HIGHEST COMMON LOCATION USED 1323 011623 1150 TAD S0 /+SIZE OF THIS BLOCK 1324 011624 3123 DCA TEM1 /FOR TENTATIVE NEW HIGHEST 1325 011625 1123 TAD TEM1 /ACTUAL ADDRESS 1326 011626 0166 AND K7600 /ARE WE OVERFLOWING ONTO THE LAST PAGE 1327 011627 1164 TAD M7600 1328 011630 7630 SZL CLA 1329 011631 5577 SERROR /YES ... ERROR 1330 011632 1076 TAD HICOM /LAST COMMON ASSIGNMENT 1331 011633 7001 IAC /+1 1332 011634 3002 DCA VAL /GIVES NEW ADDRESS 1333 011635 1123 TAD TEM1 /NEW HIGHEST COMMON LOCATION 1334 011636 3076 DCA HICOM /TO PROPER LOC 1335 011637 1002 COMMN0, TAD VAL 1336 011640 5434 JMP I NULLP /GO GET NEXT LINE 1337 / 1338 / EQUIVALENCE GENERATED COMMON OUTPUT 1339 / 1340 011641 1076 COMMN1, TAD HICOM /PLACE LAST COMMON ASSIGNMENT 1341 011642 7001 IAC /+1 1342 011643 3002 DCA VAL /IN MST AS ADDRESS 1343 011644 5237 JMP COMMN0 /EXIT 1344 / 1345 / NON LOCATION FIELD SYMBOL COMMON ASSIGNMENT 1346 / 1347 011645 1076 COMMN2, TAD HICOM /LAST HIGHEST 1348 011646 1150 TAD S0 /+CUR ASSIGNMENT 1349 011647 3076 DCA HICOM /FOR NEW HIGHEST 1350 011650 1076 TAD HICOM /NEW HIGHEST 1351 011651 0166 AND K7600 /ARE WE OVERFLOWING ONTO THE LAST PAGE 1352 011652 1164 TAD M7600 1353 011653 7630 SZL CLA 1354 011654 5577 SERROR /YES ... ERROR 1355 011655 5237 JMP COMMN0 /NO ... EXIT 1356 011656 0440 K440, 0440 1357 1358 /TEXT PSUEDO-OP 1359 1360 011657 1106 PTEXT, TAD FORFLG 1361 011660 7740 SMA SZA CLA 1362 011661 5433 JMP I DCIL1 1363 011662 4426 JMS I GETCHR /LOOK FOR STRING START 1364 011663 4453 JMS I TEST 1365 011664 0756 SL1-1 1366 011665 1006 BL1-SL1 1367 011666 1061 TAD CHR /SAVE OPENING DELINEATOR 1368 011667 7041 CIA 1369 011670 3371 DCA DELIN 1370 011671 3372 DCA TEXCTR /CLR CHAR CTR 1371 011672 1010 TAD X0 /SAVE AUTO-INDEX TO START OF STR 1372 011673 3351 DCA TEXSUB 1373 011674 4426 TEX1, JMS I GETCHR /LOOK FOR END OF STRING 1374 011675 7450 SNA 1375 011676 5575 TEXERR, IERROR /TOO SOON END OF LINE 1376 011677 1371 TAD DELIN 1377 011700 7650 SNA CLA 1378 011701 5304 JMP TEX2 /THE END OF THE LINE 1379 011702 2372 ISZ TEXCTR /KEEP STRING TALLY 1380 011703 5274 JMP TEX1 1381 011704 4426 TEX2, JMS I GETCHR /MOVE LINE PTR TO CHAR. AFTER DELINEATOR 1382 011705 7200 CLA 1383 011706 4446 JMS I SKIPL 1384 011707 4765 JMS I PUSH /SAVE INFO FOR A MINUTE 1385 011710 1372 TAD TEXCTR 1386 011711 7001 IAC 1387 011712 7110 CLL RAR /DIV BY 2 1388 011713 4770 JMS I IFFS /SEE IF STR WILL FIT ON PAGE 1389 011714 7610 SKP CLA 1390 011715 4430 JMS I INI /HAD TO ASSMBL: RE-INIT PT 1391 011716 4766 JMS I POP /POP LINE INFO 1392 011717 4421 JMS I ICPLFS /PROCESS LFS 1393 011720 1372 TAD TEXCTR 1394 011721 7041 CIA 1395 011722 3372 DCA TEXCTR 1396 011723 1351 TAD TEXSUB /RE-INIT STRING INDEX 1397 011724 3010 DCA X0 1398 011725 3371 DCA BYTE /SET FOR LEFT BYTE 1399 011726 4426 TEX5, JMS I GETCHR 1400 011727 0161 AND K77 /EXTRACT 6 BIT 1401 011730 2371 ISZ BYTE 1402 011731 7410 SKP 1403 011732 5342 JMP TEX4 /RIGHT BYTE 1404 011733 7106 CLL RTL 1405 011734 7006 RTL /MOVE LEFT 1406 011735 7006 RTL 1407 011736 3153 DCA TXSV 1408 011737 7040 CMA /SET PTR TO RT BYTE 1409 011740 3371 DCA BYTE 1410 011741 7410 SKP 1411 011742 4351 TEX4, JMS TEXSUB 1412 011743 2372 ISZ TEXCTR 1413 011744 5326 JMP TEX5 /NOT DONE 1414 011745 2371 ISZ BYTE /CK FOR ODD CHAR LEFT OVER 1415 011746 7410 SKP /NO 1416 011747 4351 JMS TEXSUB /YES 1417 011750 5440 JMP I POPEXP 1418 1419 011751 0000 TEXSUB, 0 1420 011752 1153 TAD TXSV /COMBINE LEFT & RT BYTES 1421 011753 3521 DCA I PTSPR 1422 011754 1020 TAD K30 /PAR CONST BITS 1423 011755 1517 TAD I PTCPR 1424 011756 3517 DCA I PTCPR 1425 011757 1010 TAD X0 /SAVE INDEX 1426 011760 3153 DCA TXSV 1427 011761 4767 JMS I ASIF /INC PTRS & ASSMBL IF PASS 2 1428 011762 1153 TAD TXSV /RESTOR INDEX 1429 011763 3010 DCA X0 1430 011764 5751 JMP I TEXSUB 1431 1432 011765 4200 PUSH, PUSHIN 1433 011766 4217 POP, POPIN 1434 011767 1551 ASIF, ASMIF1 1435 011770 2646 IFFS, IFFSUB 1436 011771 0000 DELIN, 0 1437 011772 0000 TEXCTR, 0 1438 TXSV=S3 1439 BYTE=DELIN 1440 1441 1442 1443 / 1444 /WRITE LINE IF IN PASS 2 1445 / 1446 011773 0000 WLNIF1, 0 1447 011774 1110 TAD PASS /WHICH PASS? 1448 011775 7640 SZA CLA 1449 011776 4455 JMS I WLNP /LISTING 1450 011777 5773 JMP I WLNIF1 1451 1452 / 1453 *2000 1454 1455 /READ & DECODE 1 LINE 1456 /IGNORES NULL LINES & COMMENT LINES 1457 / EXP=NON-0 IF NO OPERATION ON LINE (CONST, LIT, 1458 / OR ADDRESS ONLY) 1459 / SK=NON-0 IF SKIP INSTR. 1460 / UMIC=NON-0 IF OP CODE IS 6 OR 7 1461 / IB=NON-0 IF INSTR IS INDIRECT 1462 / NSGN=NON-0 IF AFS IS # SYMBOL 1463 / OP=OP CODE 1464 / LFS=PTR TO LFS IN SYM. TAB., IF ANY 1465 /*** AFS=2 IF CONSTANT PARAMETER OR CONST. AFS*** 1466 /*** AFS=1 IF LITERAL PARAMETER OR LIT. AFS*** 1467 / AFS=SYM. TAB. PTR. TO ADDRESS PARAMETER OR AFS 1468 / 1469 012000 0000 DCIL, 0 1470 012001 4764 RDL1, JMS I RLNP /READ IN A LINE 1471 012002 3137 DCA LFS /CLR STORAGE FOR LINE INFO 1472 012003 3145 DCA EXP 1473 012004 3140 DCA OP 1474 012005 3146 DCA SK 1475 012006 3141 DCA IB 1476 012007 3144 DCA NSGN 1477 012010 3143 DCA UMIC 1478 012011 3444 DCA I RECTI /CLR RECOUNT FLAG FOR CPLFS 1479 012012 2067 ISZ LINE /INC LINE COUNT 1480 012013 2010 ISZ X0 /DO NOT BACK UP X0 1481 012014 4427 JMS I GETSYM /READ 1ST ITEM 1482 012015 5372 JMP RDL11 /NULL LINE OR COMMENT 1483 012016 5227 JMP RDL7 /SYMBOL - POSSIBLE LFS 1484 012017 5222 JMP .+3 /SET AFS=2 FOR CONSTANT 1485 012020 4447 RDL3, JMS I SLITAB /PUT LIT ON TAB 1486 012021 7040 CMA /AFS=1 FOR LITERAL 1487 012022 1014 RDL2, TAD K2 1488 012023 2145 ISZ EXP /SET PARAMETER EXPRESSION FLAG 1489 012024 3142 RDL5, DCA AFS 1490 012025 4446 JMS I SKIPL /SKIP TO END OF LINE 1491 012026 5600 JMP I DCIL /RETURN 1492 012027 1061 RDL7, TAD CHR /CK FOR COMMA 1493 012030 1167 TAD M254 1494 012031 7640 SZA CLA 1495 012032 5246 JMP RDL9 /NO, SHOULD BE SPACE,TAB,CR,OR ; 1496 012033 4770 JMS I WHATPP 1497 012034 7410 SKP 1498 012035 5575 IERROR /OP SYMBOL AS TAG 1499 012036 1003 TAD SYMBOL /NO, ENTER PTR TO LFS 1500 012037 3137 DCA LFS 1501 012040 2010 ISZ X0 /PROHIBIT FLAGGING COMMA 1502 012041 4427 JMS I GETSYM /GET ITEM AFTER LFS 1503 012042 5765 JMP I PB0 /NULL AFTER LFS IS BSS0 1504 012043 5246 JMP RDL9 /SYMBOL-OP OR PARAMETER 1505 012044 5222 JMP RDL2 /CONSTANT 1506 012045 5220 JMP RDL3 /LITERAL 1507 012046 4770 RDL9, JMS I WHATPP 1508 012047 5305 JMP RDL4 /NO-MUST BE ADDRESS PARAMETER 1509 012050 1001 TAD USE /IS SYMBOLE A PSUEDO-OP 1510 012051 0160 AND K40 1511 012052 7640 SZA CLA /NO 1512 012053 5374 JMP RDL18 /YES 1513 012054 1001 TAD USE /IS SYMBOL AN MRI? 1514 012055 0045 AND K400 1515 012056 7650 SNA CLA 1516 012057 5325 JMP RDL14 /NO-OPR OR I/O INSTR. 1517 012060 1001 TAD USE /MRI-PUT OP SKIP BIT 1518 012061 0157 AND K20 /INTO SKIP FLAG 1519 012062 3146 DCA SK 1520 012063 1002 TAD VAL 1521 012064 3140 DCA OP 1522 012065 7410 SKP 1523 012066 2141 RDL10, ISZ IB / SET INDIRECT FLAG 1524 012067 4427 JMS I GETSYM /READ SYMBOL AFTER MRI 1525 012070 5575 IERROR /NOTHING THERE 1526 012071 5275 JMP RDL12 /SYMBOL 1527 012072 7001 IAC /AFS=2 FOR CONST. AFS 1528 012073 7001 IAC /AFS=1 FOR LIT.AFS 1529 012074 5224 JMP RDL5 /SKIP TO END OF LINE 1530 1531 012075 1003 RDL12, TAD SYMBOL /CK FOR I 1532 012076 7041 CIA 1533 012077 1363 TAD IBTI /SYM. ADDR-I ADDR 1534 012100 7650 SNA CLA /NOT I 1535 012101 5266 JMP RDL10 /IT IS I 1536 012102 4770 JMS I WHATPP 1537 012103 5306 JMP .+3 1538 012104 5575 IERROR /AFS NOT USER SYMBOL 1539 012105 2145 RDL4, ISZ EXP /ENTER HERE ON ADDRESS PAR. 1540 012106 1061 TAD CHR /CK FOR # 1541 012107 1371 TAD M243 1542 012110 7640 SZA CLA 1543 012111 5315 JMP .+4 1544 012112 2144 ISZ NSGN /YES 1545 012113 4426 JMS I GETCHR /PREVENT FLAGGING # 1546 012114 7200 CLA 1547 012115 1003 TAD SYMBOL /SET PTR TO AFS 1548 012116 5224 JMP RDL5 1549 012117 4770 RDL13, JMS I WHATPP 1550 012120 5575 IERROR /ELIM USER SYM 1551 012121 1001 TAD USE /CK FOR OPR OR I/O INST. 1552 012122 0366 AND K4440 /ELIM. MRI, PSUEDO 1553 012123 7640 SZA CLA /OK 1554 012124 5575 IERROR /ILLEGAL SYMBOL 1555 012125 1001 RDL14, TAD USE /COMPARE NEW MICRO-GRP 1556 012126 0367 AND K300 /WITH OLD, IF ANY 1557 012127 7450 SNA 1558 012130 5343 JMP RDL16 /GRP0 OK WITH ANYTHING 1559 012131 3123 DCA TEM1 /NEW IS NOT 0 1560 012132 1143 TAD MGRP /CK OLD MGP, IF ANY 1561 012133 7450 SNA /THERE IS ONE 1562 012134 5341 JMP RDL15 /0 OK WITH ANY NEW 1563 012135 7041 CIA /COMPARE OLD 1564 012136 1123 TAD TEM1 /WITH NEW 1565 012137 7640 SZA CLA /SAME-OK 1566 012140 5575 IERROR /ILLEGAL COMBINATION 1567 012141 1123 RDL15, TAD TEM1 /MICRO-GRP=NEW 1568 012142 3143 DCA MGRP 1569 012143 1002 RDL16, TAD VAL /OR NEW VALUE INTO OLD OP 1570 012144 7040 CMA /NOT A 1571 012145 0140 AND OP /AND B 1572 012146 1002 TAD VAL /+A 1573 012147 3140 DCA OP /=A OR B 1574 012150 1001 TAD USE /GET NEW SKIP BIT 1575 012151 0157 AND K20 1576 012152 7640 SZA CLA /NON-SKIP 1577 012153 2146 ISZ SK /SET SKIP FLAG 1578 012154 4427 JMS I GETSYM /GET NEXT INSTR OF STRING 1579 012155 5361 JMP RDL17 /NONE THERE - END OF SRTING 1580 012156 5317 JMP RDL13 /SYMBOL (AS EXPECTED) 1581 012157 7000 NOP /CONST, ILLEGAL 1582 012160 5575 IERROR /LIT ILLEGAL 1583 012161 2143 RDL17, ISZ UMIC /SET MICRO INST FLAG 1584 012162 5224 JMP RDL5 /SKIP TO END OF LINE 1585 012163 2425 IBTI, II 1586 MGRP=UMIC 1587 012164 4600 RLNP, RLN 1588 012165 2435 PB0, PBSS2 1589 012166 0440 K4440, 440 1590 012167 0300 K300, 300 1591 012170 6737 WHATPP, WHATYP 1592 012171 7535 M243, -243 1593 1594 /NULL LINE OR COMMENT 1595 1596 012172 4446 RDL11, JMS I SKIPL 1597 012173 5434 JMP I NULLP 1598 1599 /PSUEDO-OP 1600 1601 012174 1002 RDL18, TAD VAL /GET PSUEDO-OP ADDRESS 1602 012175 3123 DCA TEM1 /STORE PTR 1603 012176 5523 JMP I TEM1 /TO PROPER PSUEDO-OP HANDLER 1604 1605 *2200 1606 / 1607 /END OF LINE PROCESSOR FOR COLLECTION PHASE 1608 /LOOKS FOR SEMI-COLON BEFORE A SLASH 1609 /STAR OR SLASH OR 000 (CR) MEANS NORMAL 1610 /END OF LINE. SEMI-COLON MEANS WE MUST 1611 /SAVE CURRENT ADDRESS IN LINE BUFFER FOR 1612 /START OF "NEXT" LINE. 1613 /THIS ROUTINE ALSO HAS THE IMPORTANT 1614 /FUNCTION OF WATCHING THE FORTR PSUEDO-OP 1615 /FLAG. IF FLAG IS ON L72 CAUSES LINE 1616 /TO BE TREATED AS NON-EXISTENT. L72 MUST 1617 /BE CALLED FOR EVER INSTR. LINE OR PSUEDO-OP 1618 /LINE (EXCEPT END, PAUSE, FORTR) BEFORE 1619 /ACTUAL PROCESSING OF THAT LINE BEGINS. 1620 / 1621 012200 0000 L72, 0 1622 012201 7410 SKP 1623 012202 4426 JMS I GETCHR 1624 012203 4453 JMS I TEST 1625 012204 0754 SL6-1 1626 012205 1013 BL7-SL6 1627 012206 5575 IERROR 1628 012207 1010 L72S, TAD X0 1629 012210 3107 DCA SCOLON 1630 012211 1106 L72X, TAD FORFLG /IF FLG=1 WE ARE SKIPPING 1631 012212 7740 SMA SZA CLA /1ST HALF OF FORTRAN OUTPUT 1632 012213 5433 JMP I DCIL1 1633 012214 5600 JMP I L72 1634 1635 /KLUDGE TO RESET ILC BECAUSE A1 COMES BEFORE UDPAGE IN PASS 2 1636 1637 012215 0000 FIXILC, 0 1638 012216 1110 TAD PASS 1639 012217 7650 SNA CLA 1640 012220 5615 JMP I FIXILC 1641 012221 1077 TAD PAG 1642 012222 3065 DCA ILC 1643 012223 5615 JMP I FIXILC 1644 1645 1646 1647 / 1648 /COLLECTION PHASE ROUTINE 1649 /SEARCH PAGE SYMBOL TABLE FOR SYMBOL 1650 /CALLING SEQUENCE: (ASSUMES SYM.ID.IS IN "SYMBOL") 1651 / JMS SPSTB 1652 / RETURN IF NOT FOUND (HAD TO ENTER IT) 1653 / RETURN IF FOUND 1654 /THE SEARCH IS AT L31; ENTERING DONE BY L32. 1655 / 1656 012224 0000 SPSTB, 0 1657 012225 1116 TAD PSTSZE /SIZE OF PST 1658 012226 7440 SZA /IS IT EMPTY 1659 012227 5265 JMP L31 /NO 1660 012230 1116 L32, TAD PSTSZE /IS PST FULL? 1661 012231 1312 TAD PSTMAX 1662 012232 7700 SMA CLA 1663 012233 5577 SERROR /YES 1664 012234 1116 TAD PSTSZE /SIZE OF PST*2 1665 012235 7104 RAL CLL 1666 012236 1173 TAD PSTBSE /+BASE 1667 012237 3115 DCA PSTSPR /GIVES POINTER TO SYMBOL 1668 012240 2116 ISZ PSTSZE / INCREMENT COUNTER 1669 012241 1003 TAD SYMBOL /PHYSICALLY MOVE SYMBOL 1670 012242 3515 DCA I PSTSPR 1671 012243 1115 TAD PSTSPR 1672 012244 7001 IAC /ADD 1 1673 012245 3114 DCA PSTCPR /FOR CODE WORD POINTER 1674 012246 1110 TAD PASS 1675 012247 7650 SNA CLA 1676 012250 5263 JMP L32A /ASSEMBLY: JUST ZERO CODE WORD 1677 012251 4432 JMS I OBSYM /LISTING 1678 012252 0003 SYMBOL 1679 012253 1002 TAD VAL /CK IF SYM IS ON PAGE FORWARD REF. 1680 012254 0166 AND K7600 /EXTRACT PAGE BITS 1681 012255 7041 CIA 1682 012256 1077 TAD PAG 1683 012257 7640 SZA CLA 1684 012260 5263 JMP L32A /NOT ON PAGE 1685 012261 1041 TAD K4000 /ON PAGE: SET DEFINED BIT 1686 012262 2224 ISZ SPSTB /& SET FOR "FOUND" RETURN 1687 012263 3514 L32A, DCA I PSTCPR 1688 012264 5624 JMP I SPSTB /NOT FOUND 1689 / 1690 012265 7041 L31, CIA /PLACE - COUNT OF TABLE 1691 012266 3123 DCA TEM1 /IN INDEX LOC 1692 012267 1173 TAD PSTBSE /PLACE TABLE BASE 1693 012270 3124 DCA TEM2 /IN ADDRESS LOC 1694 012271 1524 L31B, TAD I TEM2 /-SYMBOL 1695 012272 7041 CIA 1696 012273 1003 TAD SYMBOL /+ REQUESTED SYMBOL 1697 012274 7650 SNA CLA 1698 012275 5303 JMP L31A /FOUND 1699 012276 2124 ISZ TEM2 /NOT FOUNE ... INCREMENT ADDRESS 1700 012277 2124 ISZ TEM2 1701 012300 2123 ISZ TEM1 /OVER 1702 012301 5271 JMP L31B /NO ... TRY AGAIN 1703 012302 5230 JMP L32 /YES ... PLACE ON TABLE 1704 012303 2224 L31A, ISZ SPSTB /FOUND ... INDEX FOR EXIT 1705 012304 1124 TAD TEM2 /POINTER TO SYMBOL 1706 012305 3115 DCA PSTSPR /TO PROPER LOC 1707 012306 1115 TAD PSTSPR /SYMBOL POINTER 1708 012307 7001 IAC /+1 1709 012310 3114 DCA PSTCPR /GIVES CODE POINTER 1710 012311 5624 JMP I SPSTB /EXIT 1711 / 1712 012312 7700 PSTMAX, -100 /MUST BE (PSTB-PTB)/2 1713 1714 1715 1716 / 1717 /OUTPUT 6 CHARACTER ASCII NAME 1718 /TO BINARY TAPE 1719 /FOR EXTERNAL SYMBOL DEFN. 1720 /USED BY LFSCK (FOR RC=03) & 666 (FOR RC=17) 1721 /OUTPUT GOES VIA TYPE PTR, BUT PTR IS 1722 /CHANGED TO L66E SO CHAR CAN BE PUNCHED 1723 /& ADDED TO CK.SUM INSTEAD OF TYPED. 1724 /668 IS USED ONLY IN PAS1- 1725 /ASSEMBLY PHASE1 1726 / 1727 012313 0000 L68, 0 1728 012314 1110 TAD PASS 1729 012315 7640 SZA CLA 1730 012316 5713 JMP I L68 /EXIT IF LISTING 1731 012317 1365 TAD L66B /FOOL OUTPUT ROUTINE 1732 012320 3054 DCA TYPE /SO IT THINKS PUNCH IS TTY 1733 012321 3151 DCA S1 1734 012322 3152 DCA S2 1735 012323 3153 DCA S3 1736 012324 1005 TAD AS0 1737 012325 3011 DCA X1 1738 012326 1003 TAD SYMBOL /MST SYMBOL ADDRESS - 1 1739 012327 3012 DCA X2 /TO AUTO X2 1740 012330 1001 TAD USE /MST USE WORD 1741 012331 0016 AND K3 /SYMBOL LENGTH 1742 012332 7041 CIA 1743 012333 3126 DCA TEM4 /-WORDS TO LOC 1744 012334 6201 CDF 00 1745 012335 1412 TAD I X2 /OBTAIN SYMBOL 1746 012336 6211 CDF 10 1747 012337 3411 DCA I X1 1748 012340 2126 ISZ TEM4 1749 012341 5334 JMP .-5 1750 012342 1005 TAD AS0 1751 012343 3012 DCA X2 1752 012344 1172 TAD M3 1753 012345 3126 DCA TEM4 1754 012346 1412 TAD I X2 1755 012347 4423 JMS I CTYPE /PUNCH IT EXPANDED 1756 012350 2126 ISZ TEM4 /MORE 1757 012351 5346 JMP .-3 /YES 1758 012352 1366 TAD L66D /RESTORE TYPE ROUTINE 1759 012353 3054 DCA TYPE 1760 012354 5713 JMP I L68 1761 / 1762 / DUMMY TYPE ROUTINE FOR EST TV DEFINITION 1763 / 1764 T8=SPSTB /SCRATCH LOC 1765 012355 0000 L66E, 0 1766 012356 3224 DCA T8 /SAVE CHAR 1767 012357 1224 TAD T8 1768 012360 1062 TAD CSUM /ADD CHAR TO BINARY CHECK SUM 1769 012361 3062 DCA CSUM 1770 012362 1224 TAD T8 1771 012363 4442 JMS I PUNCH /OUTPUT CHAR ON BINARY TAPE 1772 012364 5755 JMP I L66E /RETURN 1773 012365 2355 L66B, L66E 1774 012366 4772 L66D, L64 1775 1776 1777 / 1778 /INITIALIZATION THAT WONT FIT IN "INITA" 1779 / 1780 012367 0000 INITMR, 0 1781 012370 3774 DCA I VALPTP 1782 012371 3775 DCA I LLFSP 1783 012372 3067 DCA LINE 1784 012373 5767 JMP I INITMR 1785 012374 4545 VALPTP, VALPTR 1786 012375 5364 LLFSP, LLFS 1787 1788 *2400 1789 1790 1791 / 1792 /COLLECTION PHASE ROUTINE. 1793 /SEARCH LITERAL TABLE FOR VALUE IN S0. 1794 /PLACES LITERAL ON TABLE IS NOT THERE. 1795 /OTHERWISE DOES NOTHING. 1796 / 1797 012400 0000 SLTAB, 0 1798 012401 7200 CLA 1799 012402 1071 TAD LTSZE /SIZE OF TABLE 1800 012403 7440 SZA /IS TABLE EMPTY 1801 012404 5216 JMP SLITB1 /NO ... SEARCH IT 1802 012405 1030 TAD LTBSE /BASE COLL. PHASE LIT. TABLE) 1803 012406 1071 TAD LTSZE /+DISPLACEMENT 1804 012407 3123 DCA TEM1 /GIVES ADDRESS POINTER 1805 012410 1150 TAD S0 /PHYSICALLY MOVE LITERAL 1806 012411 6201 CDF 00 1807 012412 3523 DCA I TEM1 1808 012413 2071 ISZ LTSZE /INCREMENT COUNT 1809 012414 6211 CDF 10 1810 012415 5600 JMP I SLTAB /RETURN 1811 012416 7041 SLITB1, CIA /PLACE - COUNT 1812 012417 3123 DCA TEM1 1813 012420 7040 CMA 1814 012421 1030 TAD LTBSE /LTBSE-1 1815 012422 3011 DCA X1 /TO AUTO X1 1816 012423 6201 SLITB2, CDF 00 1817 012424 1411 TAD I X1 /-TABLE 1818 012425 6211 CDF 10 1819 012426 7041 CIA 1820 012427 1150 TAD S0 /+REQUESTED LITERAL 1821 012430 7650 SNA CLA /SAME 1822 012431 5600 JMP I SLTAB /YES, RETURN 1823 012432 2123 ISZ TEM1 /MORE SYMBOLS TO TEST 1824 012433 5223 JMP SLITB2 /YES 1825 012434 5205 JMP SLTAB+5 /NO 1826 1827 1828 / 1829 /COLLECTION PHASE EQUIVALENCE PROCESSOR 1830 /(FORMERLY CALLED BSS0 PROCESSOR) 1831 /ENTERS SYMBOL ID. IN EQ. TAB 1832 / 1833 012435 4446 PBSS2, JMS I SKIPL 1834 012436 1137 TAD LFS /LOCATION FIELD SYMBOL 1835 012437 7650 SNA CLA /IS THERE ANY 1836 012440 5434 JMP I NULLP /NO 1837 012441 6201 CDF 00 1838 012442 1060 TAD BSSSW /ARE WE PROCESSING A BSS 0 SEQUENCE 1839 012443 7640 SZA CLA 1840 012444 5251 JMP .+5 /YES ... SKIP INITIALIZING 1841 012445 1064 TAD EQVIPR /NO ... INITIALIZE 1842 012446 3273 DCA CTPTR /SET INPUT POINTER TO COUNT LOCATION 1843 012447 3673 DCA I CTPTR /ZERO COUNT 1844 012450 2064 ISZ EQVIPR /INCREMENT INPUT POINTER 1845 012451 1137 TAD LFS /LOCATION FIELD SYMBOL 1846 012452 3464 DCA I EQVIPR /PLACE LFS ON EQUIVALENCE TABLE 1847 012453 2673 ISZ I CTPTR /INCREMENT COUNT 1848 012454 6211 CDF 10 1849 012455 4421 JMS I ICPLFS /PROCESS IT FOR COLLECTION 1850 012456 7240 CLA CMA /REMOVE LFS FROM LFS TABLE 1851 012457 1066 TAD LFSPTR 1852 012460 3066 DCA LFSPTR 1853 012461 2060 ISZ BSSSW /SET BSS 0 IN PROGRSS SWITCH 1854 012462 7040 CMA /REMOVE EXTRA LFS BIT 1855 012463 1517 TAD I PTCPR 1856 012464 0275 AND K7577X /REMOVE EXTRA BSS0 BIT 1857 012465 1164 TAD K200 /PLACE BSS0 BIT ON PT 1858 012466 3517 DCA I PTCPR 1859 012467 1114 TAD PSTCPR /SAVE PST ADDRESS IN CASE NEXT LINE OVERFLOWS 1860 012470 3101 DCA EQVBIT 1861 012471 2064 ISZ EQVIPR /INCREMENT POINTER 1862 012472 5434 JMP I NULLP /EXIT FOR NEXT LINE 1863 012473 0000 CTPTR, EQUTB 1864 012474 3017 LFSBSI, LFSBSS 1865 012475 7577 K7577X, 7577 1866 1867 / 1868 /ASSEMBLY PHASE EQUIVALENCE PROCESSOR 1869 /EXTRACTS ENTIRE GROUP OF TAGS EQUIVALENCED 1870 /TO SAME ADDRESS FROM TABLE & DEFINES 1871 /THEM BY USING LFSCK FROM LFSBSS ON. 1872 / 1873 012476 0000 ANUMCK, 0 1874 012477 1517 TAD I PTCPR /PT CODE WORD 1875 012500 0164 AND K200 /MASK OUT BSS 0 BIT 1876 012501 7650 SNA CLA /IS IT A BSS 0 SYMBOL 1877 012502 5676 JMP I ANUMCK /NO ... EXIT 1878 012503 7040 CMA 1879 012504 3147 DCA BANK /BANK UNKNOWN 1880 012505 1323 TAD AANUM7 /CHEAT RETURN ADDRESS 1881 012506 3431 DCA I LFSCHK /SO IT LOOKS LIKE A JMS FROM SOMEWHERE ELSE 1882 012507 4324 JMS GNEQ /GET COUNT 1883 012510 7041 CIA /NEGATE 1884 012511 3332 DCA OPICTR /SAVE IN INDEX LOC 1885 012512 4324 JMS GNEQ /GET SYMBOL 1886 012513 5674 JMP I LFSBSI /PROCESS SYMBOL 1887 012514 4450 ANUM7, JMS I SPSTAB /SET DEFINED BIT ON PST IN CASE 1888 012515 7000 NOP /THIS WAS CARRIED OVER 1889 012516 4722 JMS I PSTD /THE LAST PAGE 1890 012517 2332 ISZ OPICTR /ANY MORE ? 1891 012520 5312 JMP ANUM7-2 /YES 1892 012521 5676 JMP I ANUMCK /EXIT 1893 012522 5571 PSTD, PSTDEF 1894 012523 2514 AANUM7, ANUM7 1895 / 1896 / ROUTINE TO GET NEXT ITEM OFF EQUIVALENCE TABLE 1897 / 1898 012524 0000 GNEQ, 0 1899 012525 6201 CDF 00 1900 012526 1463 TAD I EQVOPR 1901 012527 2063 ISZ EQVOPR 1902 012530 6211 CDF 10 1903 012531 5724 JMP I GNEQ 1904 / 1905 /SUBR. TO LIST A LINE IF IN PASS 2 1906 / 1907 /CALLING SEQUENCE: JMS I WRITEP 1908 / JMS I OUTBIN 1909 / LOCATION OF WORD TO OUTPUT 1910 / CONSTANT=RELOC. CODE 1911 / RETURN 1912 /(CALL TO OUTBN MUST ALWAYS FOLLOW CALL 1913 /TO WRITE.) 1914 /ASSUMES CURRENT PC IS IN "ILC" 1915 /SETS FLAGS FOR PROPER LISTING 1916 /& CALLS WLN TO DO THE DRUDGE WORK. 1917 / 1918 012532 0000 WRITE, 0 1919 012533 1110 TAD PASS 1920 012534 7650 SNA CLA 1921 012535 5732 JMP I WRITE /PASS 1 1922 012536 2332 ISZ WRITE 1923 012537 1732 TAD I WRITE /ADDRESS OF VALUE 1924 012540 3136 DCA VALUE 1925 012541 1536 TAD I VALUE /GET VALUE 1926 012542 3136 DCA VALUE 1927 012543 2132 ISZ VFLG 1928 012544 2332 ISZ WRITE 1929 012545 1732 TAD I WRITE /GET RELOC. CODE 1930 012546 3134 DCA CODE 1931 012547 1134 TAD CODE 1932 012550 7450 SNA 1933 012551 5367 JMP WRITE2 1934 012552 7012 RTR /CONVERT TO 6BIT 1935 012553 7010 RAR 1936 012554 0155 AND K7 1937 012555 1376 TAD K60 1938 012556 7106 CLL RTL 1939 012557 7006 RTL 1940 012560 7006 RTL 1941 012561 3135 DCA ADDRES /TEM SAVE 1942 012562 1134 TAD CODE 1943 012563 0155 AND K7 1944 012564 1376 TAD K60 1945 012565 1135 TAD ADDRES 1946 012566 3134 DCA CODE 1947 012567 1065 WRITE2, TAD ILC /CURRENT ADDRESS 1948 012570 3135 DCA ADDRES 1949 012571 2133 ISZ AFLG 1950 012572 2130 ISZ LFLG 1951 012573 4455 JMS I WLNP /LIST 1952 012574 2332 ISZ WRITE 1953 012575 5732 JMP I WRITE 1954 012576 0060 K60, 60 1955 OPICTR=WRITE 1956 012577 4051 CDZSKP, JMS CDZSK 1957 *2600 1958 / 1959 / BLOCK PSEUDO OPERATOR 1960 / 1961 012600 4427 PBSS, JMS I GETSYM /GET NEXT INPUT ITEM 1962 012601 5630 JMP I PBSS2I /NOTHING THERE (BSS 0) 1963 012602 7410 SKP /SYMBOL 1964 012603 7610 SKP CLA /CONSTANT 1965 012604 5575 IERROR /LITERAL 1966 012605 4446 JMS I SKIPL 1967 012606 4667 JMS I IPSHIN /SAVE ALL CURRENT INFO 1968 012607 5632 JMP I PBSS4I /CHECK BLOCK SIZE 1969 012610 4246 PBSS5, JMS IFFSUB /CAN THIS FIT IN CORE 1970 012611 7610 SKP CLA /YES 1971 012612 4430 JMS I INI /NO ... INITIALIZE PT POINTERS 1972 012613 4670 JMS I IPOPIN /POP CURRENT INFORMATION 1973 012614 3060 DCA BSSSW /CLEAR BSS0 SWITCH 1974 012615 4421 JMS I ICPLFS /PROCESS CURRENT LFS 1975 012616 1150 TAD S0 /-BLOCK CONSTANT 1976 012617 7041 CIA 1977 012620 3231 DCA TEM12 /TO INDEX LOCATION 1978 012621 1020 PBSS1, TAD K30 /PAR CONSTANT PT BIT STRUCTURE 1979 012622 1517 TAD I PTCPR /DONT LOSE LFS AND BSS 0 INFORMATION 1980 012623 3517 DCA I PTCPR 1981 012624 4672 JMS I ASMIF /DO THEM INDIVIDUALLY IF PASS 2 1982 012625 2231 ISZ TEM12 /MORE 1983 012626 5221 JMP PBSS1 /YES 1984 012627 5440 JMP I POPEXP /EXIT TO GET NEXT LINE 1985 012630 2435 PBSS2I, PBSS2 1986 012631 0000 TEM12, 0 /RESRV STORAGE CTR 1987 012632 6710 PBSS4I, PBSS4 1988 1989 / 1990 / CPAGE PSEUDO OPERATION 1991 / 1992 012633 4427 PIFF, JMS I GETSYM /GET NEXT INPUT ITEM 1993 012634 7000 NOP /NONE THERE 1994 012635 7410 SKP /SYMBOL 1995 012636 7610 SKP CLA /CONSTANT 1996 012637 5575 IERROR /LITERAL 1997 012640 4446 JMS I SKIPL 1998 012641 4671 JMS I WLNIF /LIST IF PASS 2 1999 012642 1150 TAD S0 /BINARY CONSTANT 2000 012643 4246 JMS IFFSUB /USE GLOBAL IFF SUBROUTINE 2001 012644 5433 JMP I DCIL1 /DIDNT HAVE TO ASSEMBLE PAGE 2002 012645 5673 JMP I RSTRTI /GO INITIALIZE 2003 / 2004 / IFF SUBROUTINE 2005 / CALL IS TAD PAGE INCREMENT 2006 / JMS IFFSUB 2007 / OK RETURN 2008 / HAD TO ASSEMBLE PAGE RETURN 2009 2010 /FUNCTION: TO SEE IF GIVEN NO. OF WORDS 2011 /WILL FIT ON CUR. PAGE; IF SO, RETURN 2012 /AT OK RET.; OTHERWISE ASSEMBLE PAGE WE 2013 /HAVE NOW & INIT A NEW PAGE & RET. AT 2014 /SECOND RET. LOC. 2015 /IFFSUB IS USED BY CPAGE,BLOCK & 2016 /SEVERAL OTHER P-OPS 2017 / 2018 / 2019 012646 0000 IFFSUB, 0 2020 012647 3123 DCA TEM1 /SAVE INCREMENT 2021 012650 4422 JMS I ICPGES /COMPUTE PAGE SIZE 2022 012651 1123 TAD TEM1 /ADD INCREMENT 2023 012652 1275 TAD M201 /IS TOTAL .GT. PAGE SIZE (1 EXTRA BECAUSE 2024 012653 7750 SPA SNA CLA /PTSZE INCREMENTED BEFORE PSUEDO-OP 2025 012654 5646 JMP I IFFSUB /NO ... RETURN 2026 012655 7240 CLA CMA /YES ... DECREMENT PAGE TABLE SIZE 2027 012656 1122 TAD PTSIZ 2028 012657 7450 SNA /WATCH FOR AN EMPTY PAGE 2029 012660 5264 JMP .+4 /LEAVE THINGS ALONE IF PAGE EMPTY 2030 012661 3122 DCA PTSIZ 2031 012662 4445 JMS I L55I /ASSEMBLE THE PAGE 2032 012663 4674 JMS I UPDATE 2033 012664 4676 JMS I FIXIL 2034 012665 2246 ISZ IFFSUB /INCREMENT FOR EXIT 2035 012666 5646 JMP I IFFSUB /RETURN 2036 012667 4200 IPSHIN, PUSHIN 2037 012670 4217 IPOPIN, POPIN 2038 012671 1773 WLNIF, WLNIF1 2039 012672 1551 ASMIF, ASMIF1 2040 012673 0205 RSTRTI, RSTRT 2041 012674 3172 UPDATE, UDPAGE 2042 ICPGES=CPGESI 2043 012675 7577 M201, -201 2044 012676 2215 FIXIL, FIXILC 2045 2046 2047 / ERROR ROUTINE 2048 / 2049 012677 6200 K6200, 6200 2050 012700 0000 FATAL, 0 2051 2052 012701 1277 ERRE, TAD K6200 /0500 2053 012702 2300 ERRS, ISZ FATAL /SET FATAL ERROR SWITCH 2054 012703 1027 TAD K600 /2300 2055 012704 5307 JMP .+3 2056 012705 1137 ERRM, TAD LFS 2057 012706 3770 DCA I LLFSI 2058 012707 1045 TAD K400 /1500 2059 012710 1027 ERRI, TAD K600 /1100 2060 012711 1164 ERRC, TAD K200 /0300 2061 012712 1162 ERRA, TAD K100 /0100 2062 012713 3131 DCA EFLG 2063 012714 1110 TAD PASS 2064 012715 7640 SZA CLA 2065 012716 5356 JMP ERREX /LISTING PASS 2066 012717 4424 JMS I CRLF /TYPE CRLF 2067 012720 1131 TAD EFLG /TYPE E# 2068 012721 4423 JMS I CTYPE 2069 012722 1371 TAD AT 2070 012723 4423 JMS I CTYPE 2071 012724 4423 JMS I CTYPE /TYPE 2 SPACES 2072 012725 1770 TAD I LLFSI 2073 012726 3151 DCA INDEX 2074 012727 6201 CDF 00 2075 012730 1551 TAD I INDEX 2076 012731 2151 ISZ INDEX 2077 012732 0016 AND K3 2078 2079 012733 7040 CMA 2080 012734 3152 DCA COUNT 2081 012735 1172 TAD M3 /SET 6 CHAR PRINT CTR 2082 012736 3153 DCA MSCTR 2083 012737 2152 ISZ COUNT 2084 012740 7410 SKP /NOT DONE YET WITH SYMBOL 2085 012741 5373 JMP ERR1 /DONE : SEE IF SPACES NEEDED 2086 012742 6201 CDF 00 2087 012743 1551 TAD I INDEX 2088 012744 6211 CDF 10 2089 012745 2151 ISZ INDEX 2090 012746 4423 JMS I CTYPE /TYPE THE LETTERS OR SPACES 2091 012747 2153 ISZ MSCTR 2092 012750 5337 JMP .-11 2093 012751 1372 ERR11, TAD SPPLUS /TYPE SPACE + 2094 012752 4454 JMS I TYPE 2095 012753 1067 TAD LINE /TYPE LINS FROM LAST LFS 2096 012754 4435 JMS I OTYPE 2097 012755 4424 JMS I CRLF 2098 012756 1300 ERREX, TAD FATAL /FATAL ERROR? 2099 012757 7650 SNA CLA 2100 012760 5363 JMP .+3 /NO 2101 012761 7402 HLT 2102 012762 5564 JMP I K200 /IF YES GO TO START AFTER HALT 2103 012763 1113 TAD PHASE /WHAT PHASE ARE WE IN 2104 012764 7640 SZA CLA 2105 012765 5767 JMP I ERR2 /ASSEMBLY 2106 012766 5434 JMP I NULLP /COLLECTION 2107 012767 5745 ERR2, ASM02R 2108 2109 012770 5364 LLFSI, LLFS 2110 INDEX=S1 2111 COUNT=S2 2112 MSCTR=S3 2113 012771 0124 AT, 0124 2114 012772 0253 SPPLUS, 253 2115 2116 012773 4423 ERR1, JMS I CTYPE /FILL OUT THE REST WITH SPACES 2117 012774 2153 ISZ MSCTR 2118 012775 5373 JMP .-2 2119 012776 5351 JMP ERR11 2120 2121 *3000 2122 2123 / 2124 /ASSEMBLY PHASE ROUTINE TO CHECK FOR A 2125 /LOC. TAG (LFS) & PROCESS IF FOUND. 2126 /FUNCTION: (ASMBLY PHASE 1 - ACTR=0) 2127 / (1) DEFINE TAG 2128 / (2) OUTPUT VALUE AT PAST OCCURANCES OF 2129 / FORWARD REF. TO THIS TAG 2130 / (3) CONDENSE OCC. TAB IF POSSIBLE. 2131 / 2132 / (ASMBLY PHASE 2 - ACTR=1 2133 / (THIS INCLUDES ALL OF PASS 2 AS 2134 / ACTR STAYS=1 IN PASS 2) 2135 / (1) OUTPUT EXT. SYM. DEFN. ON REL-TAPE 2136 / 2137 2138 013000 0000 LFSCK, 0 2139 013001 1517 TAD I PTCPR /PT CODE WORD 2140 013002 7010 RAR 2141 013003 7620 SNL CLA /IS THERE A LFS 2142 013004 5600 JMP I LFSCK /NO ... RETURN 2143 013005 7040 CMA 2144 013006 3147 DCA BANK /BANK UNKNOWN 2145 013007 1110 TAD PASS /MOVE BACK PTR IF IN LISTING PASS 2146 013010 7041 CIA 2147 013011 1066 TAD LFSPTR 2148 013012 3066 DCA LFSPTR 2149 013013 6201 CDF 00 2150 013014 1466 TAD I LFSPTR /ACTUAL LFS 2151 013015 6211 CDF 10 2152 013016 2066 ISZ LFSPTR 2153 013017 3137 LFSBSS, DCA LFS 2154 013020 4432 JMS I OBSYM /OBTAIN LFS FROM MST 2155 013021 0137 LFS 2156 013022 1057 TAD ACTR /WHICH TIME ARE WE ASSEMBLING THIS PAGE 2157 /ACTR REMAINS 1 DURING PASS2 2158 013023 7640 SZA CLA 2159 013024 5232 JMP L67 /SECOND TIME: NO TEST 2160 013025 1001 TAD USE /CK FOR MULTI DEF. 2161 013026 0045 AND K400 2162 013027 7640 SZA CLA 2163 013030 5763 MERROR /YES 2164 013031 5242 JMP LFSCK1 2165 013032 1001 L67, TAD USE /MST USE WORD 2166 013033 0164 AND K200 /(L67 HAS NO EFFECT IN PASS 2) 2167 013034 7650 SNA CLA /IS IT AN ENTRY 2168 013035 5242 JMP LFSCK1 /NO 2169 / 2170 / EXTERNAL SYMBOL DEFINITION 2171 / 2172 013036 4436 JMS I OUTBIN /OUTPUT BINARY DEFINITION 2173 013037 0065 ILC 2174 013040 0003 3 2175 013041 4760 JMS I L68I /PUNCH SYMBOL ON TAPE 2176 013042 1065 LFSCK1, TAD ILC /CUR ILC 2177 013043 3002 DCA VAL /PLACE ON MST AS DEFINITION 2178 013044 1001 TAD USE /SYMBOL TABLE USE WORD 2179 013045 0361 AND K7377 /MASK OUT DEFINED BIT 2180 013046 1045 TAD K400 /ADD IN DEFINED BIT 2181 013047 3001 DCA USE /SYMBOL IS NOW DEFINED IN MST 2182 / 2183 / NOW LETS SEARCH OCCURANCE TABLE TO SEE IF WE 2184 / CAN CLEAR OFF A FEW 2185 / 2186 013050 1006 TAD OTP /SIZE OF OCCURANCE TABLE 2187 013051 7040 CMA 2188 013052 1362 TAD TOPCOR 2189 013053 7450 SNA 2190 013054 5600 JMP I LFSCK /RETURN IF EMPTY 2191 013055 7041 CIA 2192 013056 3123 DCA TEM1 /PLACE - SIZE IN INDEX LOC 2193 013057 1006 TAD OTP /PLACE TABLE BASE IN TEM2 2194 013060 3124 DCA TEM2 /TEM2=PTR TO SYMBOL 2195 013061 6201 CDF 00 2196 013062 3372 L51, DCA L51FLG /CLR # SWITCH 2197 013063 2124 ISZ TEM2 2198 013064 7040 CMA /CK 1ST WORD FOR # FLAG 2199 013065 1524 TAD I TEM2 2200 013066 7640 SZA CLA 2201 013067 5273 JMP .+4 /NO 2202 013070 2372 ISZ L51FLG /YES, SET SWITCH 2203 013071 2124 ISZ TEM2 /MOVE PTR & CTR 2204 013072 2123 ISZ TEM1 /PAST EXTRA WORD 2205 013073 1524 TAD I TEM2 /- OCCURRING SYMBOL 2206 013074 7041 CIA 2207 013075 1003 TAD SYMBOL /+SYMBOL JUST DEFINED 2208 013076 7650 SNA CLA /ARE THEY EQUAL 2209 013077 5306 JMP .+7 2210 013100 2124 ISZ TEM2 2211 013101 2123 L51E, ISZ TEM1 /NO ... ARE THERE MORE 2212 013102 2123 ISZ TEM1 /(2 WORDS PER OCCURRANCE) 2213 013103 5262 JMP L51 /YES 2214 013104 6211 CDF 10 2215 013105 5600 JMP I LFSCK /NO ... RETURN 2216 / 2217 / AN OCCURANCE FOUND ... OUTPUT IT 2218 / 2219 013106 2124 ISZ TEM2 2220 013107 1524 TAD I TEM2 /ACTUAL ADDRESS 2221 013110 6211 CDF 10 2222 013111 3126 DCA TEM4 2223 013112 4425 JMS I DUMMY /OUTPUT ADDRESS AS ORIGIN 2224 013113 0126 TEM4 2225 013114 0004 4 2226 013115 1002 TAD VAL 2227 013116 1372 TAD L51FLG /ADD 1 IF # REF 2228 013117 3126 DCA TEM4 2229 013120 4425 JMS I DUMMY /OUTPUT SYMBOL VALUE AS RELOCATABLE DEF 2230 013121 0126 TEM4 2231 013122 0001 1 2232 013123 6201 CDF 00 2233 / 2234 / NOW MOVE OCCURANCE TABLE UP 2 2235 / 2236 013124 1006 L51G, TAD OTP 2237 013125 3126 DCA TEM4 /SAVE 2238 013126 1124 TAD TEM2 2239 013127 3006 DCA OTP /RESET 2240 013130 1372 TAD L51FLG 2241 013131 1014 TAD K2 2242 013132 7041 CIA 2243 013133 1124 TAD TEM2 2244 013134 7041 CIA 2245 013135 1126 TAD TEM4 2246 013136 7450 SNA 2247 013137 5301 JMP L51E /NOTHING TO MOVE 2248 013140 3125 DCA TEM3 /CTR FOR MOVE UP 2249 013141 1125 TAD TEM3 2250 013142 7041 CIA 2251 013143 1126 TAD TEM4 2252 013144 3126 DCA TEM4 /TO PTR 2253 013145 1526 L51J, TAD I TEM4 2254 013146 3406 DCA I OTP 2255 013147 7040 CMA 2256 013150 1126 TAD TEM4 2257 013151 3126 DCA TEM4 2258 013152 7040 CMA 2259 013153 1006 TAD OTP 2260 013154 3006 DCA OTP 2261 013155 2125 ISZ TEM3 2262 013156 5345 JMP L51J 2263 013157 5301 JMP L51E 2264 2265 2266 013160 2313 L68I, L68 2267 013161 7377 K7377, 7377 2268 013162 7600 TOPCOR, CORE1 2269 MERROR=JMP I . 2270 013163 2705 ERRM 2271 2272 / 2273 / PUNCH ROUTINE 2274 / 2275 013164 0000 L63, 0 2276 013165 6026 PLS /SELECT IT 2277 013166 6021 PSF /WAIT FOR PUNCH 2278 013167 5366 JMP .-1 2279 013170 7200 CLA /EXIT WITH CLEAR AC 2280 013171 5764 JMP I L63 2281 2282 2283 2284 2285 / 2286 /UPDATE "PAGE" TO NEXT CORE PAGE 2287 /I.E., PAGE =PAGE+200 2288 / 2289 013172 0000 UDPAGE, 0 2290 013173 7200 CLA 2291 013174 1077 TAD PAG /OLD PAGE SETTING 2292 013175 1164 TAD K200 /+SIZE OF ONE PAGE 2293 013176 3077 DCA PAG /FOR NEW PAGE SETTING 2294 013177 5772 JMP I UDPAGE /EXIT 2295 2296 L51FLG=UDPAGE 2297 *3200 2298 / 2299 / SUBROUTINE TO OUTPUT ASSEMBLY PHASE LITERAL 2300 / TABLE AND REMEMBER OCCURANCES 2301 / 2302 013200 0000 OAPLT, 0 2303 013201 1057 TAD ACTR /SKIP IT THE 1ST TIME 2304 013202 7650 SNA CLA 2305 013203 5600 JMP I OAPLT 2306 013204 4755 JMS I SAVLNI /PREVENT ANY LINE TYPEOUT 2307 013205 1070 TAD LITSIZ /SIZE OF TABLE 2308 013206 7450 SNA 2309 013207 5600 JMP I OAPLT /RETURN IF NONE 2310 013210 7041 CIA 2311 013211 3351 DCA ATEM1 /PLACE - SIZE IN LOC 2312 013212 7240 CLA CMA 2313 013213 1045 TAD LITBSE /BASE - 1 2314 013214 3012 DCA X2 /TO AUTO 12 2315 013215 1102 TAD APMSW /ARE WE IN AUTO PAGING MODE 2316 013216 7640 SZA CLA 2317 013217 5222 JMP .+3 /NO ... OK 2318 013220 1111 TAD PGEESC /YES ... SUBRTACT SIZE OF PAGE ESCAPE 2319 013221 7110 RAR CLL /DIVIDED BY 2 2320 013222 1070 TAD LITSIZ /& SUBTR. LITSIZ 2321 013223 7041 CIA 2322 013224 3356 DCA LITPTR /TEM SAVE 2323 013225 1356 TAD LITPTR 2324 013226 1077 TAD PAG /INITIALIZE PAGE ADDRESS 2325 013227 1164 TAD K200 2326 013230 3065 DCA ILC 2327 013231 1070 TAD LITSIZ /INIT LIT TBL PTR 2328 013232 7104 CLL RAL /(MULT BY 2) 2329 013233 1045 TAD LITBSE 2330 013234 3356 DCA LITPTR 2331 013235 7001 IAC 2332 013236 7410 SKP 2333 / 2334 013237 2065 L52, ISZ ILC /INC PAGE LOC 2335 013240 1172 TAD M3 /DECREMENT LIT TBL PTR 2336 013241 1356 TAD LITPTR 2337 013242 3356 DCA LITPTR 2338 013243 6201 CDF 00 2339 013244 1756 TAD I LITPTR /CODE 2340 013245 3352 DCA ATEM2 2341 013246 2356 ISZ LITPTR 2342 013247 1756 TAD I LITPTR /SYMBOL OR LITERAL 2343 013250 3353 DCA ATEM3 2344 013251 6211 CDF 10 2345 013252 7240 CLA CMA 2346 013253 1352 TAD ATEM2 /IS CODE 1 ... LITERAL 2347 013254 7640 SZA CLA 2348 013255 5267 JMP L53 /NO ... SYMBOL 2349 013256 4774 JMS I ILC4P /YES ... OUTPUT PAGE ADDRESS AS ORIGIN 2350 013257 4456 JMS I WRITEP 2351 013260 4436 JMS I OUTBIN /OUTPUT LITERAL WITH NO RELOCATION 2352 013261 3353 ATEM3 2353 013262 0000 0 2354 013263 2351 L52A, ISZ ATEM1 /MORE 2355 013264 5237 JMP L52 /YES 2356 013265 2065 ISZ ILC /SET FOR ESCAPE 2357 013266 5600 JMP I OAPLT /NO ... RETURN 2358 013267 4432 L53, JMS I OBSYM /OBTAIN SYMBOL FROM MST 2359 013270 3353 ATEM3 2360 013271 1001 TAD USE /MST USE WORD 2361 013272 0045 AND K400 /IS SYMBOL DEFINED 2362 013273 7650 SNA CLA 2363 013274 5311 JMP L53A /NO ... OCCURANCE 2364 013275 4774 JMS I ILC4P /YES ... OUTPUT ORIGIN 2365 013276 1352 TAD ATEM2 2366 013277 0015 AND K4 2367 013300 7640 SZA CLA 2368 013301 7001 IAC /ITS A # 2369 013302 1002 TAD VAL /ACTUAL VALUE 2370 013303 3353 DCA ATEM3 /TO DIRRECTLY ADDRESSABLE LOC 2371 013304 4456 JMS I WRITEP 2372 013305 4436 JMS I OUTBIN /OUTPUT VALUE 2373 013306 3353 ATEM3 2374 013307 0001 1 /RELOCATABLE 2375 013310 5263 JMP L52A /TRY MORE 2376 013311 1065 L53A, TAD ILC 2377 013312 3354 DCA ATEM4 2378 013313 4315 JMS L53B /PLACE ON OCCURANCE TALBE 2379 013314 5263 JMP L52A /TRY MORE 2380 / 2381 / SUBROUTINE TO CREATE AN OCCURANCE IN OCCURANCE TABLE 2382 / 2383 013315 0000 L53B, 0 2384 013316 1006 TAD OTP 2385 013317 7141 CIA CLL 2386 013320 7001 IAC /ALLOW FOR # FLAG 2387 013321 1007 TAD STT /+TOP OF MST 2388 013322 7630 SZL CLA /OVERFLOW? 2389 013323 5577 SERROR /YES ... OUT OF CORE 2390 013324 1171 TAD M2 2391 013325 1006 TAD OTP /OT SIZE - 2 2392 013326 3006 DCA OTP /GIVES ADDRESS ON OCCUR TABLE 2393 013327 1006 TAD OTP 2394 013330 3011 DCA X1 2395 013331 6201 CDF 00 2396 013332 1353 TAD ATEM3 /SYMBOL 2397 013333 3411 DCA I X1 /TO OCCUR TABLE 2398 013334 1354 TAD ATEM4 /PAGE ADDRESS 2399 013335 3411 DCA I X1 /TO OCCUR TABLE 2400 013336 1352 TAD ATEM2 /CK FOR # 2401 013337 0015 AND K4 2402 013340 7650 SNA CLA 2403 013341 5347 JMP .+6 /NO 2404 013342 7001 IAC /SET FLAG WORD 2405 013343 3406 DCA I OTP 2406 013344 7040 CMA /MOVE DOWN PTR 2407 013345 1006 TAD OTP /PAST EXTRA WORD 2408 013346 3006 DCA OTP 2409 013347 6211 CDF 10 2410 013350 5715 JMP I L53B /TRY MORE 2411 / 2412 013351 0000 ATEM1, 0 2413 013352 0000 ATEM2, 0 2414 013353 0000 ATEM3, 0 2415 013354 0000 ATEM4, 0 2416 013355 4743 SAVLNI, SAVLIN 2417 013356 0000 LITPTR, 0 2418 2419 013357 2106 PFORT, ISZ FORFLG /SET TO 1 FOR 1ST PASS THRU FORTRAN CODE 2420 013360 7000 NOP /END PSUEDO SETS IT TO -1 TO NULLIFY 2421 013361 4446 JMS I SKIPL /SO BACK TO 0 FOR 2ND PASS 2422 013362 5434 JMP I NULLP 2423 2424 / 2425 /DO SOME WORK FOR L61A 2426 / 2427 013363 3124 L61C, DCA TEM2 /SAVE 6-BIT CODE 2428 013364 1124 TAD TEM2 2429 013365 0160 AND K40 2430 013366 7650 SNA CLA 2431 013367 1162 TAD K100 /ADD CORRECT LEADING BITS 2432 013370 1164 TAD K200 2433 013371 1124 TAD TEM2 /ADD CHAR BITS 2434 013372 5773 JMP I L61DP 2435 013373 1342 L61DP, L61D 2436 013374 6363 ILC4P, ILC4 2437 2438 *3400 2439 / 2440 / ROUTINE TO PUNCH WORD AND RELOCATION BITS ON TAPE 2441 / CALL IS 2442 / JMS OUTBN 2443 / ADDRESS OF WORD 2444 / BITS 2445 / 2446 013400 0000 OUTBN, 0 2447 013401 7300 CLA CLL 2448 013402 1600 TAD I OUTBN /ADDRESS OF WORD 2449 013403 3141 DCA OUT1 2450 013404 2200 ISZ OUTBN 2451 013405 1600 TAD I OUTBN /RELOCATION BITS 2452 013406 7006 RTL /SHIFT LEFT 4 2453 013407 7006 RTL 2454 013410 3127 DCA OUT2 /SAVE 2455 013411 1110 TAD PASS 2456 013412 7640 SZA CLA 2457 013413 5232 JMP OUTEX 2458 013414 1541 TAD I OUT1 /ACTUAL WORD 2459 013415 3141 DCA OUT1 /MUST DO THIS SINCE WE DO A JMS OUTBN;CSUM;10 2460 013416 1141 TAD OUT1 /AT LOC. PCSM, AND OTHERWISE CSUM WOULD CHANGE AFTER CALL TO SUM. 2461 013417 7006 RTL /ROTATE HIGH 4 BITS TO LOW 2462 013420 7006 RTL 2463 013421 7004 RAL 2464 013422 0244 AND K17 /MASK 2465 013423 1127 TAD OUT2 /ADD REL BITS 2466 013424 4234 JMS SUM /ADD TO CHECK SUM 2467 013425 4442 JMS I PUNCH /PUNCH IT 2468 013426 1141 TAD OUT1 /REMAINDER OF WORD 2469 013427 0243 AND K377 /MASK TO 8 BITS 2470 013430 4234 JMS SUM /ADD TO CHECK SUM 2471 013431 4442 JMS I PUNCH /PUNCH IT 2472 013432 2200 OUTEX, ISZ OUTBN /INDEX FOR EXIT 2473 013433 5600 JMP I OUTBN /RETURN 2474 013434 0000 SUM, 0 2475 013435 3144 DCA TSUM 2476 013436 1062 TAD CSUM 2477 013437 1144 TAD TSUM 2478 013440 3062 DCA CSUM 2479 013441 1144 TAD TSUM 2480 013442 5634 JMP I SUM 2481 TSUM=NSGN 2482 OUT1=IB 2483 OUT2=TEM5 2484 013443 0377 K377, 377 2485 013444 0017 K17, 17 2486 / 2487 / ROUTINE TO SEARCH ASSEMBLY PHASE LITERAL TABLE 2488 / FOR 2 WORD ENTRY IN S0-S1 2489 / PLACES ON TABLE IF NOT THERE 2490 / RETURNS PAGE ADDRESS IN AC 2491 / 2492 013445 0000 SRALT, 0 2493 013446 7200 CLA 2494 013447 3124 DCA TEM2 /ZERO SEARCH COUNTER 2495 013450 6201 CDF 00 2496 013451 1070 TAD LITSIZ /NO OF ENTRYS 2497 013452 7440 SZA 2498 013453 5304 JMP L40 /NON ZERO ... SEARCH 2499 013454 1070 L39, TAD LITSIZ /NO OF ENTRYS - 1 2500 013455 7104 RAL CLL /MULTIPLY BY 2 2501 013456 1045 TAD LITBSE /ADD BASE OF TABLE 2502 013457 3123 DCA TEM1 /GIVES ADDRESS OF NEW ENTRY 2503 013460 2070 ISZ LITSIZ /INCREMENT COUNT 2504 013461 1150 TAD S0 /FIRST WORD 2505 013462 3523 DCA I TEM1 /TO TABLE 2506 013463 2123 ISZ TEM1 /INCREMENT ADDRESS 2507 013464 1151 TAD S1 /SECOND WORD 2508 013465 3523 DCA I TEM1 /TO TABLE 2509 013466 1070 TAD LITSIZ /ENTRY NO 2510 2511 / COMPUTE PAGE ADDRESS FROM DISPLACEMENT IN TABLE 2512 / AND STATUS OF AUTOMATIC PAGING MODE SWITCH AND SIZE OF PAGE 2513 / ESCAPE REQUIRED 2514 / 2515 013467 3123 L40A, DCA TEM1 /SAVE LOCATION IN TABLE 2516 013470 1110 TAD PASS 2517 013471 7640 SZA CLA 2518 013472 5332 JMP L40C /LISTING 2519 013473 1102 TAD APMSW /ARE WE IN AUTOMATIC PAGING MODE? 2520 013474 7650 SNA CLA 2521 013475 1111 TAD PGEESC /YES - COUNT ESCAPE WORDS 2522 013476 7110 L40DR, CLL RAR /(OVER 2) 2523 013477 1123 L40D, TAD TEM1 /NO ... COMPUTE PAGE ADDRESS 2524 013500 7041 CIA /BY STRAIGNT COMPLEMENTATION METHOD 2525 013501 0243 AND K377 /MASK 2526 013502 6211 CDF 10 2527 013503 5645 JMP I SRALT /EXIT 2528 /FOR AUTO PAGING MODE 2529 2530 013504 7041 L40, CIA 2531 013505 3123 DCA TEM1 /- NO OF ENTRYS TO LOC 2532 013506 7240 CLA CMA 2533 013507 1045 TAD LITBSE /BASE OF TABLE - 1 2534 013510 3011 DCA X1 /TO AUTO 10 2535 013511 2124 L41, ISZ TEM2 /INCREMENT SEARCH COUNTER 2536 013512 1411 TAD I X1 /- FIRST WORD FROM TABLE 2537 013513 7041 CIA 2538 013514 1150 TAD S0 /+FIRST COMP WORD 2539 013515 7640 SZA CLA 2540 013516 5326 JMP L40B /NO MATCH 2541 013517 1411 TAD I X1 /-SECOND TABLE WORD 2542 013520 7041 CIA 2543 013521 1151 TAD S1 2544 013522 7640 SZA CLA 2545 013523 5327 JMP .+4 /NO MATCH 2546 013524 1124 TAD TEM2 /MATCH ... CTR TO AC 2547 013525 5267 JMP L40A /RETURN 2548 013526 2011 L40B, ISZ X1 /INCREMENT FOR NO SECOND COMPARISON 2549 013527 2123 ISZ TEM1 /OVER 2550 013530 5311 JMP L41 /NO ... TRY MORE 2551 013531 5254 JMP L39 /YES ... PLACE ON TABLE 2552 013532 6211 L40C, CDF 10 2553 013533 1735 TAD I REDUCP /GET PAGE ESC COMPUTED BY A1 2554 013534 5276 JMP L40DR 2555 013535 5515 REDUCP, REDUCE 2556 2557 / 2558 / HAS COMMON BEEN PUNCHED YET SUBROUTINE 2559 2560 /IF IT HAS ALREADY BEEN PUNCHED, EXIT 2561 /IF NOT, PUNCH IT & SET FLAG 2562 /THIS ROUTINE IS CALLED ONLY ONCE PER PROGRAM 2563 /BUT IT COULD BE CALLED FROM ANY OF SEVERAL PLACES 2564 / 2565 013536 0000 HCBPS, 0 2566 013537 1104 TAD CPSW /COMMON PUNCHED SWITCH 2567 013540 7650 SNA CLA /HAS IT BEEN PUNCHED 2568 013541 5736 JMP I HCBPS /YES ... RETURN 2569 013542 3104 DCA CPSW /NO ... CLEAR SWITCH 2570 013543 4436 JMS I OUTBIN /AND PUNCH HIGHEST COMMON ASSIGNED 2571 013544 0076 HICOM 2572 013545 0012 12 2573 013546 5736 JMP I HCBPS /EXIT 2574 2575 013547 4067 DUMSUB, JMS DUMS 2576 2577 2578 / 2579 /INCREMENT PAGE TABLE PTRS 2580 /TO PREPARE FOR NEXT INSTRUCTION (OR PARAMETER) 2581 / 2582 013550 0000 INCPT, 0 2583 013551 2122 ISZ PTSZE /INCREMENT PAGE TABLE SIZE 2584 013552 4766 JMS I ISZPT2 2585 013553 3101 DCA EQVBIT /CLR 2586 013554 3517 DCA I PTCPR /INITIALIZE PAGE TABLE CODE WORD 2587 013555 3521 DCA I PTSPR /INITIALIZE PAGE TABLE SYMBOL WORD 2588 013556 6201 CDF 00 2589 013557 3520 DCA I PTOPR /INITIALIZE PT OP CODE POINTER 2590 013560 6211 CDF 10 2591 013561 1146 TAD CURSKP /MOVE CURRENT SKIP INSTRUCTION INDICATOR 2592 013562 3072 DCA LSTSKP /TO LAST INSTRUCTION SKIP INDICATOR 2593 013563 1147 TAD BANK /MOVE CURRENT BANK 2594 013564 3073 DCA LSTBNK /TO LAST BANK 2595 013565 5750 JMP I INCPT /RETURN 2596 013566 6701 ISZPT2, ISZPT 2597 // 2598 //FOLLOWING CODE MOVED HERE TO MAKE ROOM FOR V03 IN ASME3 2599 013567 4437 ASMEXT, JMS I OUTSKP /YES, OUTPUT SKP 2600 013570 1065 TAD ILC /GET PG.LOC.PTR. 2601 013571 0163 AND K177 2602 013572 1376 TAD K5204 /OUTPUT JMP .+4 2603 013573 3123 DCA TEM1 2604 013574 5775 JMP I .+1 2605 013575 6016 REEASM 2606 013576 5204 K5204, 5204 2607 2608 2609 *3600 2610 2611 / ABSYM PSEUDO OPERATOR 2612 / 2613 013600 1045 PABSYM, TAD K400 2614 013601 4242 JMS DEFSUB 2615 013602 7200 CLA 2616 013603 5226 JMP DEF1 2617 2618 /SKPDF & OPDEF PSUEDO-OPS 2619 2620 2621 013604 1157 SKPDEX, TAD K20 /PUT IN SKIP BIT 2622 013605 1241 OPDEX, TAD K3010 /STANDARD OP BITS 2623 013606 4242 JMS DEFSUB 2624 013607 7100 CLL 2625 013610 0247 AND K7000 /CK TYPE OF INST 2626 013611 1043 TAD K2000 2627 013612 7650 SNA CLA 2628 013613 5226 JMP DEF1 /IOT 2629 013614 7420 SNL 2630 013615 5236 JMP DEF3 /MRI 2631 013616 1150 TAD S0 /OPR, BUT WHICH GRP? 2632 013617 0240 AND K401 2633 013620 7110 CLL RAR 2634 013621 7650 SNA CLA 2635 013622 5234 JMP DEF2 /GRP1 2636 013623 7430 SZL 2637 013624 1162 TAD K100 /GRP3 2638 013625 1164 TAD K200 /GRP2 2639 013626 1127 DEF1, TAD TEM5 2640 013627 3001 DCA USE 2641 013630 1150 TAD S0 2642 013631 3002 DCA VAL 2643 013632 1002 TAD VAL 2644 013633 5434 JMP I NULLP 2645 013634 1162 DEF2, TAD K100 2646 013635 5226 JMP DEF1 2647 013636 1045 DEF3, TAD K400 2648 013637 5226 JMP DEF1 2649 013640 0401 K401, 401 2650 013641 3010 K3010, 3010 2651 2652 2653 / 2654 /UTILITY FOR PABSYM & OPDEX 2655 /CALL WITH MST CODE WORD EXCEPT BITS 10-11 2656 /IN AC. EXITS WITH SYMBOL VALUE 2657 /AS DEF. BY SOURCE TAPE IN S0 & IN AC. 2658 / 2659 013642 0000 DEFSUB, 0 2660 013643 3127 DCA TEM5 2661 013644 4427 JMS I GETSYM /GET THE SYMBOL NAME 2662 013645 5260 JMP DEFERR /NULL 2663 013646 5251 JMP .+3 /SYMBOL 2664 013647 7000 K7000, NOP 2665 013650 5260 JMP DEFERR /CONST. OR LIT. 2666 013651 1150 TAD S0 /ADD IN SYM LENGTH 2667 013652 1127 TAD TEM5 2668 013653 3127 DCA TEM5 2669 013654 4427 JMS I GETSYM /GET VALUE 2670 013655 7000 NOP /NULL 2671 013656 7410 SKP /SYMBOL 2672 013657 7410 K7410, SKP /CONST 2673 013660 5575 DEFERR, IERROR /LIT. 2674 013661 4446 JMS I SKIPL 2675 013662 1150 TAD S0 /VALUE 2676 013663 5642 JMP I DEFSUB 2677 2678 / 2679 /OCTAL TYPEOUT 2680 /CALLING SEQUENCE: TAD (OCTAL#) 2681 / JMS L62 2682 / RET. AC=0 2683 / 2684 2685 013664 0000 L62, 0 2686 013665 7104 CLL RAL /PUSH THRU LINK 2687 013666 3123 DCA TEM1 2688 013667 1304 TAD M4 /SET CTR 2689 013670 3124 DCA TEM2 2690 013671 1123 L62A, TAD TEM1 2691 013672 7006 RTL 2692 013673 7004 RAL 2693 013674 3123 DCA TEM1 2694 013675 1123 TAD TEM1 2695 013676 0155 AND K7 2696 013677 1305 TAD K260 2697 013700 4454 JMS I TYPE 2698 013701 2124 ISZ TEM2 2699 013702 5271 JMP L62A 2700 013703 5664 JMP I L62 2701 013704 7774 M4, -4 2702 013705 0260 K260, 0260 2703 2704 / 2705 /DUMMY OUTPUT ROUTINE 2706 /REPLACES OUTBN DURING ASMBLY PHASE 1 2707 /CALLING SEQUENCE: JMS DUMMY 2708 / ADDR. OF ARG 2709 / RELOC. CONST. 2710 / RETURN 2711 /NOTE: SAME CALLING SEQ. AS OUTBN 2712 / 2713 013706 0000 DUM, 0 2714 013707 7300 CLA CLL 2715 013710 2306 ISZ DUM /INDEX FOR PROPER EXIT 2716 013711 2306 ISZ DUM /INDEX FOR PROPER EXIT 2717 013712 5706 JMP I DUM 2718 / 2719 / ROUTINE TO SEARCH EXTERNAL SYMBOL TABLE 2720 / FOR CUR SYMBOL - RETURNS EXTERNAL SYMBOL 2721 / NUMBER IN AC - PLACES SYMBOL ON TABLE 2722 / AND OUTPUTS BIN CODE FOR TV IF NOT ON TABLE 2723 / 2724 013713 0000 L66, 0 2725 013714 1100 TAD ESTSIZ /IS TABLE FULL? 2726 013715 1316 TAD M100 2727 013716 7700 M100, SMA CLA 2728 013717 5577 SERROR /YES 2729 013720 1100 TAD ESTSIZ /SIZE OF EST 2730 013721 7440 SZA /IS TABLE EMPTY 2731 013722 5341 JMP L66A1 /NO ... SEARCH IT 2732 013723 7240 L66A3, CLA CMA /YES ... PLACE SYMBOL ON IT 2733 013724 2100 ISZ ESTSIZ /INCREMENT TABLE SIZE 2734 013725 1162 TAD BSEEST /BASE 2735 013726 1100 TAD ESTSIZ /+SIZE 2736 013727 3123 DCA TEM1 /GIVES ADDRESS OF NEW ENTRY 2737 013730 1003 TAD SYMBOL /PHYSICALLY PLACE ON TABLE 2738 013731 6201 CDF 00 2739 013732 3523 DCA I TEM1 2740 013733 6211 CDF 10 2741 013734 1001 TAD USE /MST CODE WORD 2742 013735 0375 AND K403A /SAVE LENGTH AND DEFINITION BIT 2743 013736 1043 TAD K2000 /ADD EXTERNAL BITS 2744 013737 3001 DCA USE 2745 013740 5365 JMP L66A /GO TO PUNCH TV DEF 2746 013741 7041 L66A1, CIA 2747 013742 3124 DCA TEM2 /PLACE -SIZE IN INDEX LOC 2748 013743 3125 DCA TEM3 /ZERO COUNT 2749 013744 7240 CLA CMA 2750 013745 1162 TAD BSEEST /BASE OF EST - 1 2751 013746 3011 DCA X1 /TO AUTO X1 2752 013747 2125 L66A2, ISZ TEM3 /INCREMENT COUNT LOC 2753 013750 6201 CDF 00 2754 013751 1411 TAD I X1 /-TABLE SYMBOL 2755 013752 6211 CDF 10 2756 013753 7041 CIA 2757 013754 1003 TAD SYMBOL /+ CUR SYMBOL 2758 013755 7650 SNA CLA /COMPARE 2759 013756 5362 JMP .+4 /SAVE 2760 013757 2124 ISZ TEM2 /NOT SAME ... ANY MORE 2761 013760 5347 JMP L66A2 /YES ... KEEP TRYING 2762 013761 5323 JMP L66A3 /NO ... PLACE ON TABLE 2763 013762 1125 TAD TEM3 /PLACE COUNT IN AC 2764 013763 5713 JMP I L66 /RETURN 2765 / 2766 / OUTPUT BINARY EXTERNAL SYMBOL 2767 / 2768 013764 3536 HCBPS 2769 013765 4764 L66A, JMS I .-1 /CHECK TO SEE IF COMMON HAS BEEN PUNCHED 2770 013766 4436 JMS I OUTBIN /TV DEF FOR 1 SYMBOL 2771 013767 3776 K1 2772 013770 0017 17 2773 013771 4774 JMS I L62A1 /PUNCH ASCII CHARS 2774 013772 1100 TAD ESTSIZ /EST NO TO AC 2775 013773 5713 JMP I L66 /RETURN 2776 013774 2313 L62A1, L68 2777 013775 0403 K403A, 403 2778 013776 0001 K1, 1 2779 2780 *4000 2781 2782 2783 2784 / 2785 /SYMBOL TABLE LISTING ROUTINE 2786 /TYPES TABLE FROM "STTP" UP 2787 /WITH NAME-VALUE-FLAG 2788 /POSSIBLE FLAGS ARE: EXT, COM, UNDF, ABS, OP 2789 /FLAGS TYPED BY "STFT" 2790 /TABLE LISTED ALPHABETICALLY WITH NUMERIC 2791 /CHARACTERS .GT. ALPHABETIC 2792 / 2793 2794 014000 0000 PRSYM, 0 2795 014001 3125 DCA PFLG /CLR PRSYM-PASS FLAG 2796 014002 1777 TAD I LSTDEP 2797 014003 7650 SNA CLA 2798 014004 5207 JMP .+3 2799 014005 1042 TAD PUNCH /LIST ON H.S. PUNCH 2800 014006 3054 DCA TYPE 2801 014007 4424 JMS I CRLF 2802 014010 1375 PRS1, TAD PST /INIT SPTR AT TOP OF PERM. S.T. 2803 014011 3127 DCA SPTR 2804 014012 1172 TAD M3 /FILL S1,S2,S3 WITH 7777'S (MAX) 2805 014013 3150 DCA ALEN 2806 014014 1005 TAD APTR 2807 014015 3011 DCA X1 2808 014016 7040 CMA 2809 014017 3411 DCA I X1 2810 014020 2150 ISZ ALEN 2811 014021 5216 JMP .-3 2812 014022 1016 TAD K3 /AND LENGTH=3 2813 014023 3150 DCA ALEN 2814 014024 3126 DCA FOUND /CLR EXIT FLAG 2815 014025 1007 PRS2, TAD STT /HAS SEARCH HIT END OF TABLE? 2816 014026 7041 CIA 2817 014027 1127 TAD SPTR 2818 014030 7650 SNA CLA 2819 014031 5337 JMP PRS7 /YES, USE THE A-SYM WE HAVE 2820 014032 4432 JMS I OBSYM /NO, GET NEXT MST ENTRY 2821 014033 0127 SPTR 2822 014034 1001 TAD BCODE /EXTRACT LENGTH 2823 014035 0016 AND K3 2824 014036 3137 DCA BLEN 2825 014037 1003 TAD BPTR /INDEX NEW ENTRY 2826 014040 3012 DCA X2 2827 014041 1137 TAD BLEN /SET ENTRY CTR 2828 014042 7041 CIA 2829 014043 3140 DCA BCTR 2830 014044 1150 TAD ALEN /SET A-SYM CTR 2831 014045 7041 CIA 2832 014046 3141 DCA AACTR 2833 014047 1005 TAD APTR /INDEX A-SYM 2834 014050 3011 DCA X1 2835 014051 1125 TAD PFLG /IS THIS THE FIRST TIME THRU THE TABLE? 2836 014052 7640 SZA CLA 2837 014053 5257 JMP PRS3 /NO 2838 014054 1001 TAD BCODE /YES, CLR ENTRY BIT 0 2839 014055 0376 AND K3777 /(THE HAS-BEEN-PRINTED FLAG) 2840 014056 3001 DCA BCODE 2841 014057 1001 PRS3, TAD BCODE /HAS THIS SYMBOL BEEN PRINTED ALREADY? 2842 014060 7710 SPA CLA 2843 014061 5332 JMP PRS6 /YES, IGNORE IT 2844 014062 1411 PRS4, TAD I X1 /NO, COMRARE A-SYM WORD 2845 014063 7141 CIA CLL 2846 014064 6201 CDF 00 2847 014065 1412 TAD I X2 /WITH B-SYM WORD 2848 014066 6211 CDF 10 2849 014067 7450 SNA 2850 014070 5274 JMP .+4 /MATCH SO FAR 2851 014071 7620 SNL CLA 2852 014072 5301 JMP PRS5 /A-SYM WORD IS BIGGER-- USE B-SYM 2853 014073 5332 JMP PRS6 /VICE-VERSA 2854 014074 2141 ISZ AACTR /IS A-SYM DONE? 2855 014075 7410 SKP /NO 2856 014076 5332 JMP PRS6 /YES, STICK WITH A-SYM 2857 014077 2140 ISZ BCTR /IS B-SYM DONE 2858 014100 5262 JMP PRS4 /NO, TRY NEXT WORD 2859 014101 2126 PRS5, ISZ FOUND /YES, B-SYM IS NEW A-SYM 2860 /SET CONTINUE FLAG 2861 014102 1003 TAD BPTR /INDEX B-SYM 2862 014103 3012 DCA X2 2863 014104 1005 TAD APTR /CLR STORAGE FOR NEW A-SYM 2864 014105 3011 DCA X1 2865 014106 3411 DCA I X1 2866 014107 3411 DCA I X1 2867 014110 3411 DCA I X1 2868 014111 1005 TAD APTR /RESET A-SYM INDEX 2869 014112 3011 DCA X1 2870 014113 1137 TAD BLEN /CTR FOR TRANSFER 2871 014114 7041 CIA 2872 014115 3150 DCA ALEN 2873 014116 6201 CDF 00 2874 014117 1412 TAD I X2 /MOVE B-SYM TO A-SYM 2875 014120 6211 CDF 10 2876 014121 3411 DCA I X1 2877 014122 2150 ISZ ALEN 2878 014123 5316 JMP .-5 2879 014124 1137 TAD BLEN /NEW LENGTH 2880 014125 3150 DCA ALEN 2881 014126 1002 TAD BVAL /NEW VALUE 2882 014127 3142 DCA AVAL 2883 014130 1003 TAD BPTR /NEW PTR 2884 014131 3143 DCA ASAV 2885 014132 1003 PRS6, TAD BPTR /MOVE SPTR TO NEXT MST ENTRY 2886 014133 1137 TAD BLEN 2887 014134 1014 TAD K2 2888 014135 3127 DCA SPTR 2889 014136 5225 JMP PRS2 /CONTINUE SEARCH 2890 014137 1126 PRS7, TAD FOUND /HAS ANOTHER SYMBOL BEEN FOUND? 2891 014140 7650 SNA CLA 2892 014141 5371 JMP PRS8 /NO, EXIT 2893 014142 4432 JMS I OBSYM /YES 2894 014143 0143 ASAV 2895 014144 1001 TAD USE 2896 014145 1041 TAD K4000 2897 014146 3001 DCA USE /SET HAS-BEEN-PRINTED BIT 2898 014147 2125 ISZ PFLG /SET PASS FLAG 2899 014150 4424 JMS I CRLF /POSITION PRINT 2900 014151 1005 TAD APTR /INDEX SYMBOL 2901 014152 3011 DCA X1 2902 014153 1172 TAD M3 /SET CTR 2903 014154 3150 DCA ALEN 2904 014155 1411 TAD I X1 /PRINT SYMBOL 2905 014156 4423 JMS I CTYPE 2906 014157 2150 ISZ ALEN 2907 014160 5355 JMP .-3 2908 014161 4423 JMS I CTYPE /PRINT 2 SPACES 2909 014162 1142 TAD AVAL /PRINT VALUE 2910 014163 4435 JMS I OTYPE 2911 014164 1001 TAD USE /MOVE TYPE BITS TO LOW AC 2912 014165 7006 RTL /& DEF. BIT TO LINK 2913 014166 7006 RTL 2914 014167 4774 JMS I STFTI /TYPE FLAGS IF ANY 2915 014170 5210 JMP PRS1 /LOOK FOR ANOTHER SYMBOL TO PRINT 2916 2917 014171 4424 PRS8, JMS I CRLF 2918 014172 4424 JMS I CRLF 2919 014173 5600 JMP I PRSYM 2920 2921 2922 014174 6116 STFTI, STFT 2923 ASAV=UMIC 2924 PFLG=TEM3 2925 014175 2430 PST, STTP /TOP OF PERMANENT SYMBOL TABLE 2926 ALEN=S0 2927 APTR=AS0 2928 BPTR=SYMBOL 2929 BVAL=VAL 2930 BCODE=USE 2931 FOUND=TEM4 2932 SPTR=TEM5 2933 BLEN=LFS 2934 BCTR=OP 2935 AACTR=IB 2936 AVAL=AFS 2937 014176 3777 K3777, 3777 2938 014177 6532 LSTDEP, LSTDEV 2939 2940 2941 *4200 2942 2943 / 2944 /ROUTINE TO PUSH DOWN CUR.LINE FOR NEXT PAGE. 2945 /SAVES ENTIRE LIST OF VITAL INFO 2946 /(LFS, OP, IB,...,BANK, S0) IN TEMP.LOCS 2947 /(TLFS, TOP, TIB,..., TS0) 2948 /BOTH LISTS MUST BE KEPT IN SPECIFIED 2949 /ORDER. 2950 /IF THERE IS AN LFS ON LINE MUST MARK IT 2951 /NO-LONGER-DEFINED-ON-PAGE IN PST. 2952 / 2953 2954 014200 0000 PUSHIN, 0 2955 014201 1137 TAD LFS /IS THERE AN LFS 2956 014202 7650 SNA CLA 2957 014203 5213 JMP PSHIN2 /NO 2958 014204 4432 JMS I OBSYM 2959 014205 0137 LFS 2960 014206 4450 JMS I SPSTAB /GET ITS POINTERS TO THE PAGE SYMBOL TABLE 2961 014207 7000 NOP 2962 014210 1514 TAD I PSTCPR /KILL THE DEFINED BIT 2963 014211 0256 AND K3777A 2964 014212 3514 DCA I PSTCPR /SET PAGE SYMBOL TABLE CODE WORD OFF PAGE 2965 014213 4237 PSHIN2, JMS PUSHER 2966 014214 0136 LFS-1 2967 014215 4224 TLFS-1 2968 014216 5600 JMP I PUSHIN /RETURN 2969 / 2970 / ROUTINE TO POP UP A PUSHED DOWN INSTRUCTION 2971 / 2972 014217 0000 POPIN, 0 2973 014220 7200 CLA 2974 014221 4237 JMS PUSHER 2975 014222 4224 TLFS-1 2976 014223 0136 LFS-1 2977 014224 5617 JMP I POPIN /RETURN 2978 014225 0000 TLFS, 0 /KEEP THIS LIST ORDERED AS GIVEN 2979 014226 0000 TOP, 0 2980 014227 0000 TIB, 0 2981 014230 0000 TAFS, 0 2982 014231 0000 TUMIC, 0 2983 014232 0000 TNSGN, 0 2984 014233 0000 TEXP, 0 2985 014234 0000 TSKZ, 0 2986 014235 0000 TBANK, 0 2987 014236 0000 TS0, 0 2988 2989 2990 / 2991 /TRANSFER ANY LIST OF 10 (12 OCTAL) ITEMS 2992 /FROM ONE LIST TO ANOTHER 2993 /CALL SEQ.: JMS PUSHER 2994 / ADDR-1 OF FROM-LIST 2995 / ADDR-1 OF TO-LIST 2996 / RET. 2997 / 2998 2999 014237 0000 PUSHER, 0 3000 014240 1255 TAD M12A 3001 014241 3123 DCA TEM1 /CTR 3002 014242 1637 TAD I PUSHER 3003 014243 3011 DCA X1 /INDEX FROM LIST 3004 014244 2237 ISZ PUSHER 3005 014245 1637 TAD I PUSHER 3006 014246 3012 DCA X2 /INDEX TO LIST 3007 014247 1411 TAD I X1 3008 014250 3412 DCA I X2 3009 014251 2123 ISZ TEM1 3010 014252 5247 JMP .-3 3011 014253 2237 ISZ PUSHER 3012 014254 5637 JMP I PUSHER 3013 014255 7766 M12A, -12 3014 014256 3777 K3777A, 3777 3015 /RETRN PSUEDO-OP 3016 / 3017 014257 4427 PRTN, JMS I GETSYM /GET NEXT INPUT ITEM 3018 014260 7410 SKP /NOTHING 3019 014261 5264 JMP .+3 /SYMBOL 3020 014262 7000 NOP /CONSTANT 3021 014263 5575 IERROR /LITERAL 3022 014264 4446 JMS I SKIPL 3023 014265 4451 JMS I SREST /PLACE SYMBOL ON EXTERNAL SYMBOL TABLE 3024 014266 3313 DCA PRTN0 /SAVE SYMBOL ID 3025 014267 4200 JMS PUSHIN /PUSH LFS INFO IN CASE OF PAGE ASSEMBLY 3026 014270 1014 TAD K2 /SET AC TO 2 3027 014271 4714 JMS I PRTN1 /ARE THERE 2 LOCATIONS ON THIS PAGE 3028 014272 7610 SKP CLA /YES 3029 014273 4430 JMS I INI /NO ... HAD TO ASSEMBLE PAGE ... INITIALIZE PT 3030 014274 4217 JMS POPIN /POP LFS INFO FROM PAGE PUSH LIST 3031 014275 4421 JMS I ICPLFS /PROCESS ANY LFS 3032 014276 1517 TAD I PTCPR /PT CODE WORD WITH POSSIBLE LFS BIT 3033 014277 1020 TAD K30 /ADD SPECIAL RELOCATION BIT 3034 014300 3517 DCA I PTCPR /PLACE PROPER CODE WORD ON PT 3035 014301 1312 TAD DOTRTN 3036 014302 3521 DCA I PTSPR /PLACE JMS .RTN INSTRUCTION IN PT SYMBOL WORD 3037 014303 4715 JMS I PRTN3 /INCREMENT PT POINTERS 3038 014304 1017 TAD K130 /PROPER BIT PATTERN 3039 014305 3517 DCA I PTCPR /TO PT CODE WORD 3040 014306 1313 TAD PRTN0 /PLACE EXTERNAL SYMBOL NUMBER ON PT 3041 014307 3521 DCA I PTSPR /AS SYMBOL WORD 3042 014310 4715 JMS I PRTN3 /INCREMENT PT POINTERS 3043 014311 5440 JMP I POPEXP /EXIT FOR NEXT LINE 3044 014312 4040 DOTRTN, JMS RTN 3045 014313 0000 PRTN0, 0 3046 014314 2646 PRTN1, IFFSUB 3047 014315 1551 PRTN3, ASMIF1 3048 3049 / 3050 / @PAUSE@ PSEUDO OPERATION 3051 / 3052 014316 4726 PPAUSE, JMS I WLNIFI /LIST IF PASS 2 3053 014317 7602 CLA HLT /WAIT FOR OPERATOR ACTION 3054 014320 6014 RFC /SELECT READER 3055 014321 4772 JMS I INITRP 3056 014322 4446 JMS I SKIPL 3057 014323 7040 PPAUS1, CMA /WE REACH THIS ONLY IF FORFLG. LE. 0(ALSO COME FROM *PEND*) 3058 014324 3106 DCA FORFLG /SHUT OFF FORTR IN CASE GUY 3059 /HAS STARTED HIS TAPE IN 3060 /THE MIDDLE 3061 014325 5433 JMP I DCIL1 /RETURN FOR NEXT LINE 3062 3063 014326 1773 WLNIFI, WLNIF1 3064 3065 3066 / 3067 /OVERAL ASSEMBLY INITIALIZATION 3068 / 3069 014327 0000 INITA, 0 3070 014330 6211 CDF 10 3071 014331 3773 DCA I FATALP 3072 014332 4424 JMS I CRLF 3073 014333 4424 JMS I CRLF 3074 014334 1376 TAD PEB 3075 014335 3774 DCA I PEPTRP 3076 014336 4237 JMS PUSHER /INIT HICOM, PAGE, ESTSIZ, EQVBIT & APMSW ETC 3077 014337 4357 K777-1 3078 014340 0075 HICOM-1 3079 014341 4772 JMS I INITRP 3080 014342 1110 TAD PASS 3081 014343 7640 SZA CLA 3082 014344 5727 JMP I INITA 3083 014345 3003 DCA SYMBOL /PROTECT FROM RUSVL 3084 014346 4777 JMS I INITMP 3085 014347 3062 DCA CSUM 3086 014350 1156 TAD K10 /SET PUSH CTR=-2 3087 014351 4237 JMS PUSHER /INIT OTP & STP 3088 014352 4355 OTPR-1 3089 014353 0005 OTP-1 3090 014354 4775 JMS I LEADI 3091 014355 5727 JMP I INITA 3092 014356 7577 OTPR, CORE1-1 /KEEP STTR IMMEDIATELY AFTER OTPR 3093 014357 2430 STTR, STTP 3094 /***** KEEP ITEMS SO INCLOSED IN GIVEN ORDER 3095 014360 0177 K777, 177 3096 014361 0200 200 3097 014362 0000 0 3098 014363 0000 0 3099 014364 0000 0 3100 014365 0001 1 3101 014366 0001 1 3102 014367 0000 0 3103 014370 0000 0 3104 014371 0000 0 3105 /****************** 3106 014372 4574 INITRP, INITR 3107 014373 2700 FATALP, FATAL 3108 014374 5514 PEPTRP, PEPTR 3109 014375 4714 LEADI, LEADER 3110 014376 0700 PEB, PEBSE 3111 014377 2367 INITMP, INITMR 3112 *4400 3113 / 3114 / ROUTINE TO SEARCH SYMBOL TABLE FOR SYMBOL IN S0-S3 3115 / PLACES SYMBOL ON TABLE IF NOT THERE 3116 / CALL IS 3117 / JMS SRSYM 3118 / NOT FOUND EXIT 3119 / FOUND EXIT 3120 3121 /RETURNS WITH SYMBOL CODE BITS IN "USE" 3122 /SYMBOL VALUE (0 IF NOT DEFINED) 3123 /IN "VAL" 3124 /& PTR TO SYM.TAB. ENTRY IN "SYMBOL" 3125 /THE LATTER ADDRESS IS REFERRED TO HERE IN 3126 /AS THE SYMBOL "ID" 3127 /SRSYM CALL RUSVL TO STORE USE & VAL 3128 /OF LAST REFERENCED SYMBOL IN MST 3129 /IN CASE THEY HAVE BEEN CHANGED 3130 /IN THE MEANWHILE. 3131 3132 / 3133 014400 0000 SRSYM, 0 3134 014401 4335 JMS RUSVL 3135 014402 1043 TAD MST /START AT SYM. TAB. BASE 3136 014403 3003 SRS1, DCA SYMBOL /SET PTR. TO NEXT ENTRY 3137 014404 1007 TAD STT /COMPARE PTR. WITH SYM. TAB. TOP 3138 014405 7041 CIA 3139 014406 1003 TAD SYMBOL 3140 014407 7650 SNA CLA /CONTINUE SEARCH 3141 014410 5250 JMP SRS2 /NAME NOT IN TABLE ENTER IT 3142 014411 6201 CDF 00 3143 014412 1403 TAD I SYMBOL /GET ENTRY CODE WORD 3144 014413 6211 CDF 10 3145 014414 0016 AND K3 /EXTRACT SYMBOL LENGTH 3146 014415 3124 DCA TEM2 3147 014416 1124 TAD TEM2 3148 014417 7041 CIA /NEGATE FOR COMPARE & CTR. 3149 014420 3123 DCA TEM1 3150 014421 1123 TAD TEM1 /COMPARE ENTRY & LOOK-UP SYMBOL LENGTHS 3151 014422 1150 TAD S0 3152 014423 7640 SZA CLA /SAME LENGTH; COMPARE LETTERS 3153 014424 5244 JMP SRS5 /NOT SAME; GO TO NEXT ENTRY 3154 014425 1005 TAD AS0 /AUTO-INDEX LOOP-UP SYMBOL 3155 014426 3011 DCA X1 3156 014427 1003 TAD SYMBOL /AUTO-INDEX TABLE ENTRY 3157 014430 3012 DCA X2 3158 014431 6201 SRS3, CDF 00 3159 014432 1412 TAD I X2 /GET TABLE ENTRY CHAR. PAIR 3160 014433 7041 CIA 3161 014434 6211 CDF 10 3162 014435 1411 TAD I X1 /COMPARE LOOK-UP SYMBOL CHAR. PAIR 3163 014436 7640 SZA CLA /SAME 3164 014437 5244 JMP SRS5 /NO MATCH 3165 014440 2123 ISZ TEM1 /CK SYM. LEN. CTR. 3166 014441 5231 JMP SRS3 /NOT DONE, TRY NEXT CHAR. PAIR 3167 014442 4320 SRS4, JMS SUSVL /GET USE & VAL WORDS 3168 014443 5600 JMP I SRSYM 3169 3170 014444 1003 SRS5, TAD SYMBOL /PTR TO LAST ENTRY 3171 014445 1014 TAD K2 /+2 FOR USE & VAL WORDS 3172 014446 1124 TAD TEM2 /+ENTRY SYMBOL LENGTH 3173 014447 5203 JMP SRS1 /=PTR TO NEXT ENTRY 3174 / 3175 /CURRENT SYMBOL NOT ON TABLE ... PLACE IT THERE 3176 / 3177 3178 014450 1006 SRS2, TAD OTP /WILL NEW ENTRY FIT BELOW 3179 014451 7141 CIA CLL /OCCURANCE TABLE? 3180 014452 1003 TAD SYMBOL 3181 014453 1150 TAD S0 3182 014454 7630 SZL CLA /0 LINK=YES 3183 014455 5577 SERROR /NO, SYMBOL TABLE OVERFLOW 3184 014456 1150 TAD S0 /ENTRY CODE WORD = SYM. LEN. 3185 014457 1030 TAD K1000 /+REL BIT 3186 014460 6201 CDF 00 3187 014461 3407 DCA I STT /PUT CODE IN 1ST WORD OF NEW ENTRY 3188 014462 1007 TAD STT /AUTO-INDEX ENTRY 3189 014463 3012 DCA X2 3190 014464 1005 TAD AS0 /AUTO-INDEX SYMBOL TO BE STORED 3191 014465 3011 DCA X1 3192 014466 1150 TAD S0 /SET SYM. LEN. CTR. 3193 014467 7041 CIA 3194 014470 3123 DCA TEM1 3195 014471 6211 ERS1, CDF 10 3196 014472 1411 TAD I X1 /MOVE SYMBOL CHAR. PAIR TO TABLE 3197 014473 6201 CDF 00 3198 014474 3412 DCA I X2 3199 014475 2123 ISZ TEM1 /CK. CTR. 3200 014476 5271 JMP ERS1 /NOT DONE 3201 014477 3412 DCA I X2 /CLR VALUE WORD 3202 014500 1007 TAD STT /SAVE PTR TO NEW ENTRY 3203 014501 3003 DCA SYMBOL 3204 014502 1012 TAD X2 /RESET PTR. TO SYM. TAB. TOP 3205 014503 7001 IAC 3206 014504 3007 DCA STT 3207 014505 6211 CDF 10 3208 014506 5242 JMP SRS4 3209 3210 / 3211 /OBTAIN GIVEN SYMBOL'S VITAL INFO FROM MST 3212 /CALL SEQ: JMS OBNSYM 3213 / ADDRESS OF SYMBOL ID 3214 / RET. 3215 /OBNSYM LEAVES SYMBOL ID IN "SYMBOL", 3216 / SYMBOL CODE WORD IN USE, 3217 / SYMBOL VALUE IN VAL. 3218 /OBNSYM CALLS RUSVL BEFORE ACTION 3219 /FOR SAME REASON AS SRSYM DOES. 3220 / 3221 014507 0000 OBNSYM, 0 3222 014510 4335 JMS RUSVL 3223 014511 1707 TAD I OBNSYM /ADDRESS OF SYMBOL 3224 014512 3123 DCA TEM1 3225 014513 1523 TAD I TEM1 /ACTUAL SYMBOL 3226 014514 3003 DCA SYMBOL 3227 014515 2307 ISZ OBNSYM /INDEX FOR EXIT 3228 014516 4320 JMS SUSVL /SET UP USE AND VALUE WORDS 3229 014517 5707 JMP I OBNSYM /RETURN WHEN FOUND 3230 / 3231 / ROUTINE TO SET UP USE AND VALUE WORDS 3232 / 3233 014520 0000 SUSVL, 0 3234 014521 6201 CDF 00 /OFF TO BANK 1 3235 014522 1403 TAD I SYMBOL /MST USE WORD FROM BANK 1 3236 014523 3001 DCA USE /TO BANK 0 USE LOCATION 3237 014524 1001 TAD USE 3238 014525 0016 AND K3 3239 014526 7001 IAC 3240 014527 1003 TAD SYMBOL 3241 014530 3345 DCA VALPTR 3242 014531 1745 TAD I VALPTR /MST VALUE WORD FROM BANK 1 3243 014532 3002 DCA VAL /TO BANK 0 VALUE LOCATION 3244 014533 6211 CDF 10 /RESTORE DATA FIELD 3245 014534 5720 JMP I SUSVL /RETURN 3246 3247 014535 0000 RUSVL, 0 3248 014536 6201 CDF 00 3249 014537 1001 TAD USE 3250 014540 3403 DCA I SYMBOL 3251 014541 1002 TAD VAL 3252 014542 3745 DCA I VALPTR 3253 014543 6211 CDF 10 3254 014544 5735 JMP I RUSVL 3255 3256 014545 0000 VALPTR, 0 /PTR TO CURRENT VAL WORD IN MST 3257 / 3258 /READ A CHARACTER 3259 / IGNORES LF, FF, RO, LEADER 3260 / ALSO CHECKS CHAR AS TO TYPE 3261 /CALLING SEQ: JMS RCH 3262 / RETURN IF CHAR IS A DIGIT 3263 / RETURN IF CHAR IS ALPHABETIC 3264 / RETURN FOR ALL OTHER (PUNCT,ETC) 3265 /LEAVES AC==0 3266 / CHR=ASCII VALUE OF INPUT CHARACTER 3267 /CALLS SRT 3268 3269 014546 0000 RCH, 0 3270 014547 4426 JMS I GETCHR /GET 1 CHAR 3271 014550 7450 SNA 3272 014551 5365 JMP RCH3 /0=END OF LINE 3273 014552 1371 TAD M260 3274 014553 7510 SPA 3275 014554 5365 JMP RCH3 /TAKE PUNCT.EXIT (200-257) 3276 014555 1372 TAD M12 3277 014556 7510 SPA 3278 014557 5367 JMP RCH4 /TAKE DIGIT EXIT (260-271) 3279 014560 1004 TAD M7 3280 014561 7510 SPA 3281 014562 5365 JMP RCH3 /TAKE PUNCT, EXIT (272-300) 3282 014563 1373 TAD M37A 3283 3284 014564 7500 SMA 3285 3286 014565 2346 RCH3, ISZ RCH /PUNCT, EXIT (337-376) 3287 014566 2346 ISZ RCH /ALPHA EXIT (301-336) 3288 3289 014567 7200 RCH4, CLA /DIGIT EXIT 3290 014570 5746 JMP I RCH 3291 014571 7520 M260, -260 3292 014572 7766 M12, -12 3293 014573 7742 M37A, -36 3294 3295 3296 /FORCE BUFFER FILL ON FIRST READ 3297 3298 014574 0000 INITR, 0 3299 014575 1170 TAD MBE 3300 014576 3013 DCA X3 3301 014577 5774 JMP I INITR 3302 3303 MBE=LINAX /=LAST WORD OF DATA BUFFER 3304 *4600 3305 3306 /SUBR TO READ 1 LINE INTO LINE BUFFER 3307 3308 014600 0000 RLN, 0 3309 014601 3130 DCA LFLG /CLR NON-NULL LINE FLAG 3310 014602 1107 TAD SCOLON /IF LAST LINE ENDED WITH ; 3311 014603 7440 SZA /NO NEED TO READ ANOTHER 3312 014604 5234 JMP RLN4 3313 014605 1170 TAD LINAX /INIT STORAGE AUTO-INDEX 3314 014606 3012 DCA X2 3315 014607 4241 RLN2, JMS FETCH /GET A CHARACTER 3316 014610 4453 JMS I TEST /IS IT A CR,TAB,SP,FF,LF? 3317 014611 1756 SL7-1 /IF SO GO TO RLN15,3,3,2,2 3318 014612 6766 BL6-SL7 3319 014613 2130 ISZ LFLG /OTHERWISE A NON-NULL LINE 3320 014614 4637 RLN3, JMS I STOREP /OTHERWISE PUT IT IN THE BUFFER 3321 014615 1012 TAD X2 /IS BUFFER FULL? 3322 014616 1240 TAD LINEND 3323 014617 7640 SZA CLA 3324 014620 5207 JMP RLN2 /NO 3325 014621 7040 CMA 3326 014622 1012 TAD X2 3327 014623 3012 DCA X2 /IF SO MOVE BACK PTR 3328 014624 5207 JMP RLN2 3329 014625 3061 RLN15, DCA CHR /TERMINATE LINE WITH 0 3330 014626 4637 JMS I STOREP 3331 014627 3133 DCA AFLG 3332 014630 3131 DCA EFLG 3333 014631 3132 DCA VFLG 3334 014632 3134 DCA CODE 3335 014633 1170 TAD LINAX /INIT LINE INDEX 3336 014634 3010 RLN4, DCA X0 3337 014635 3107 DCA SCOLON /CLR 3338 014636 5600 JMP I RLN 3339 3340 3341 014637 5161 STOREP, STORE 3342 014640 6023 LINEND, -LINBUF-107 3343 3344 /SUBROUTINE TO READ 1 CHARACTER VIA INPUT DEVICE 3345 /IGNORES 200'S & 377'S 3346 3347 014641 0000 FETCH, 0 3348 014642 4256 JMS R 3349 014643 0163 AND K177 3350 014644 1164 TAD K200 /FORCE FULL 8BIT ASCII 3351 014645 3061 DCA CHR 3352 014646 1061 TAD CHR 3353 014647 1166 TAD M200 3354 014650 7440 SZA 3355 014651 1255 TAD M177 3356 014652 7650 SNA CLA 3357 014653 5242 JMP FETCH+1 3358 014654 5641 JMP I FETCH 3359 014655 7601 M177, -177 3360 3361 /SUBR TO GET NEXT CHAR FROM HSR BUFFER 3362 /REFILL BUFFER WHEN X3 REACHES END OF BUFFER 3363 3364 014656 0000 R, 0 3365 014657 6201 CDF 00 3366 014660 1013 TAD X3 3367 014661 1304 TAD BUFEND /CK FOR END OF BUFFER 3368 014662 7650 SNA CLA 3369 014663 5267 JMP RG /REFILL 3370 014664 1413 R1, TAD I X3 /GET NEXT CHAR 3371 014665 6211 CDF 10 3372 014666 5656 JMP I R 3373 014667 1303 RG, TAD BUF /INDEX THE BUFFER 3374 014670 3013 DCA X3 3375 014671 4702 RG1, JMS I INDEV 3376 014672 3413 DCA I X3 3377 014673 1013 TAD X3 /CK FOR FULL 3378 014674 1304 TAD BUFEND 3379 014675 7640 SZA CLA 3380 014676 5271 JMP RG1 /NOT FULL 3381 014677 1303 RG3, TAD BUF /RESET PTR 3382 014700 3013 DCA X3 3383 014701 5264 JMP R1 3384 3385 014702 6610 INDEV, HSR 3386 014703 1077 BUF, DATA-1 3387 3388 014704 6133 BUFEND, 1-LINBUF 3389 3390 /GET 1 CHAR FROM LINE BUFFER 3391 3392 014705 0000 L65, 0 3393 014706 6201 CDF 00 3394 014707 1410 TAD I X0 3395 014710 6211 CDF 10 3396 014711 3061 DCA CHR 3397 014712 1061 TAD CHR 3398 014713 5705 JMP I L65 3399 3400 / 3401 / ROUTINE TO PUNCH LEADER TRAILER CODE 3402 / 3403 014714 0000 LEADER, 0 3404 014715 1166 TAD K7600 3405 014716 3123 DCA TEM1 3406 014717 1164 TAD K200 3407 014720 4442 JMS I PUNCH 3408 014721 2123 ISZ TEM1 3409 014722 5317 JMP .-3 3410 014723 5714 JMP I LEADER 3411 3412 / 3413 / ROUTINE TO TYPE RETURN-LINE FEED 3414 / 3415 014724 0215 0215 3416 014725 0212 0212 3417 014726 0000 L73, 0 3418 014727 7200 CLA 3419 014730 1324 TAD L73-2 3420 014731 4454 JMS I TYPE 3421 014732 1325 TAD L73-1 3422 014733 4454 JMS I TYPE 3423 014734 5726 JMP I L73 3424 3425 3426 /DECIM & OCTAL PSUEDO-OPS 3427 3428 014735 4446 PDEC, JMS I SKIPL 3429 014736 7001 IAC /SET ARITHMETIC CONVERSION TO DECIMAL 3430 014737 7410 SKP 3431 014740 4446 POCT, JMS I SKIPL 3432 014741 3105 DCA DSW /SET ARITHMETIC CONVERSION TO OCTAL 3433 014742 5434 JMP I NULLP /GO GET NEXT INPUT LINE 3434 3435 3436 3437 / 3438 /ROUTINE TO STOP NEXT LINE FROM BEING LISTED 3439 /THO IT IS ALREADY IN THE BUFR. 3440 /E.G., STOP LISTING OF PUSHED DOWN LINE 3441 /WHILE ASSEMBLING LIT. POOL 3442 / 3443 014743 0000 SAVLIN, 0 3444 014744 6201 CDF 00 3445 014745 1763 TAD I LINEB2 /SAVE 1ST CHAR OF LINE 3446 014746 7450 SNA /IF ANY 3447 014747 5352 JMP .+3 /THERE ISNT ANY 3448 3449 014750 3362 DCA SAVEIT 3450 014751 3763 DCA I LINEB2 /CLR TO PREVENT TYPEOUT 3451 014752 6211 CDF 10 3452 014753 5743 JMP I SAVLIN 3453 3454 3455 / 3456 /REENABLE LISTING OF LINE WHICH SAVLIN 3457 /PREVENTED 3458 / 3459 3460 014754 0000 RELINE, 0 3461 014755 6201 CDF 00 3462 014756 1362 TAD SAVEIT /RESTORE 1ST CHAR OF LINE 3463 014757 3763 DCA I LINEB2 3464 014760 6211 CDF 10 3465 014761 5754 JMP I RELINE 3466 3467 014762 0000 SAVEIT, 0 3468 014763 1646 LINEB2, LINBUF 3469 3470 3471 /ROUTINE TO LIST NULL, COMMENT OR PSUEDO-OP LINE 3472 3473 014764 3136 NULL, DCA VALUE /IF ANY GIVEN 3474 014765 1136 TAD VALUE /SET TYPEOUT FLAG IF NON-0 3475 014766 3132 DCA VFLG 3476 014767 4771 JMS I WLIF /LIST IF PASS 2 3477 014770 5433 JMP I DCIL1 /GO BACK TO RDL1 FOR NEXT LINE 3478 014771 1773 WLIF, WLNIF1 3479 3480 / 3481 / TYPE ROUTINE 3482 / 3483 014772 0000 L64, 0 3484 014773 6046 TLS /SELECT IT 3485 014774 6041 TSF /WAIT FOR TTY 3486 014775 5374 JMP .-1 3487 014776 7200 CLA /EXIT WITH CLEAR AC 3488 014777 5772 JMP I L64 3489 *5000 3490 / 3491 / ROUTINE TO SET THE CORRECT COUNTERS FOR THE CURRENT 3492 / OP CODE AND ADDRESS FIELD SYMBOL 3493 / 3494 /THIS IS A MAJOR ROUTINE. IT IS CALLED ONCE 3495 /FOR EVERY NORMAL (MRI,OPR,IOT) INSTR. COLLECTED. 3496 /IT IS ALSO CALLED DURING PAGE 3497 /RECOUNTING, ONCE FOR EVERY ITEM ON THE 3498 /PAGE TABLE. 3499 /CALLING SEQ: AC=0,JMS,RET WITH AC=0 3500 /FUNCTION: DETERMINE THE TYPE OF LINE BEING 3501 /READ AND SET THE VARIOUS PAGE COUNTERS 3502 /AND FLAGS ACCORDINGLY. 3503 /A FLOW CHART OF TYPES & FLAG SETTINGS IS GIVEN BELOW. 3504 /CONSIDERABLE OVERLAPPING IS USED TO ACHIEVE 3505 /THE MIN. CORE USAGE. THIS IS SOMETIMES AT THE 3506 /EXPENSE OF LOGICAL CLARITY. 3507 /ALL POSSIBLE CONDITIONS EXIT VIA SETC00 3508 /SETC00:(1) IF LAST INSTR. WAS A SKIP & LAST BANK 3509 / IS NOT= CUR.BANK, BANK=-1. 3510 / (2) IF CUR. INSTR. IS A SKIP, PGEESC=4 3511 / OTHERWISE PGEESC=2. 3512 / (3) LASTSKIP CONDITION= CUR. SKIP CONDITION 3513 / (4) LAST BANK= CUR. BANK 3514 / 3515 /FLOW OF INSTR. TYPES 3516 /SETCT: IF (PARAMETER OR MICRO-INSTR.) SETC00 3517 / IF (LITERAL AFS) SETC02 3518 / IF(CONSTANT AFS) SETC01 3519 / CALL OBNSYM(AFS) 3520 / IF (INSTR. IS INDIRECT) SETC07 3521 / IF (AFS IS IN COMMON) SETCO4 3522 / IF (ABSOLUTE AFS) SETC05 3523 / CALL SPSTB (AFS) /SEARCH PST FOR AFS 3524 / CALL SETSUB 3525 / IF (AFS NOT BEFORE ON PST) SETC06 3526 / IF (AFS WAS IN PST BUT NOT DEF. ON PAGE)SETC12 3527 / IF (OP CODE=JMS) BANK=1 3528 / GO TO SETC00 /ON PAGE MR1 3529 /SETC01:IF (CONST.AFS ON PG.0)J2 3530 / IF (INSTR. IS INDIRECT) ERROR 3531 / CALL SLTAB(CONST. AFS) /PUT CONST. IN LIT.TAB. 3532 /J1: IF (BANK NOT=1) SETC13 3533 / GO TO SETC00 3534 / J2* IF( INSTR.INDIR.) J1 /PG.0 INDIRECT 3535 / GO TO SETC00 /PG.0 DIRECT 3536 /SETC04:IF(BANK NOT 0) CALL INCOBA /INC OBACTR 3537 / CALL NUMSGN 3538 / S0=RESULT+COMMON ADDR. 3539 /SETC02:CALL SLTAB(S0) /LIT.OR. COMMN. ADDR. TO LIT. TAB. 3540 / GO TO SETC00 3541 / IF (AFS NOT PREV. ON PST) SETC11 3542 / IF (AFS WAS ON PST BUT NOT DEF. ON PAGE) SETC11 3543 / GO TO J3 3544 /SETC10:CALL NUMSGN 3545 / IF (ABS.AFS ON PAGE 0) J3 3546 /SETC11:AC=1 /FORCE BANK=1 3547 /SETC09:AC=AC+1 /FORCE BANK=0 3548 /SETC08:AC=AC-2 /FORCE BANK=-1 3549 / CALL INCOBA /INC OBACTR 3550 / AC=BANK /(BANK OFFSET BY -1) 3551 / GO TO SETC13 /(TAKEN CARE OF AT SETC13) 3552 /SETC12:IF (NEW PST CODE BITS 10-11=OLD SAME (IN TEM 3)) J3 3553 /SETC06:INC OPSCTR /OFF PAGE SYMBOL 3554 /J3: IF (BANK=1) SETC00 3555 / INC AC 3556 / CALL INCOBA 3557 /J4: IF (THERE HAS NOT BEEN A PST SEARCH) SETC00 3558 / ADD CHANGE IN OBACTR (OBACTR-OLDOBA) TO PST CODE BITS 3-9 3559 / GO TO SETC00 3560 / 3561 /NOTE: CONDITION AT J4 IS TESTED BY SETSUB HEADER 3562 /WORD (OBFLG). THIS IS ALWAYS CLEARED 3563 /WHEN SETCT STARTS AND WILL NOT CHANGE 3564 /UNLESS THERE IS A CALL TO SPSTB BECAUSE 3565 /A CALL TO SETSUB ALWAYS FOLLOWS CALL TO 3566 /SPSTB IN SETCT. 3567 3568 3569 / 3570 015000 0000 SETCT, 0 3571 015001 4421 JMS I ICPLFS /CHECK FOR AND PROCESS ANY LFS 3572 015002 3331 DCA OBFLG /CLR 3573 /NEXT 2 LINES MOVED TO 3574 /SETCAL (AS OF V15) TO MAKE ROOM FOR FOLLOWING INSTR. & PTR 3575 / TAD EXP /IS IT PAR OR A MICRO INST? 3576 / TAD UMIC 3577 015003 4711 JMS I SETCAP 3578 015004 7640 SZA CLA 3579 015005 5700 JMP I SET00I /YES 3580 015006 7344 CLA CLL CMA RAL 3581 015007 1142 TAD AFS 3582 015010 7450 SNA /IS AFS A CONSTANT 3583 015011 5254 JMP SETC01 /YES 3584 015012 7001 IAC 3585 015013 7650 SNA CLA /IS AFS A LITERAL 3586 015014 5701 JMP I SET02I /YES 3587 015015 4432 JMS I OBSYM /NO ... GET POINTERS TO AFS 3588 015016 0142 AFS 3589 015017 1141 TAD IB /INDIRECT BIT 3590 015020 7640 SZA CLA /IS IT SET 3591 015021 5235 JMP SETC07 /YES 3592 015022 4312 JMS USETST /TEST FOR OFF BANK OR ABSOLUTE 3593 015023 5276 SETC04 /OFF BANK 3594 015024 5200 SETC05 /ABSOLUTE 3595 015025 4450 JMS I SPSTAB /IS AFS ON PST 3596 015026 7040 CMA /NOT FOUND 3597 015027 4331 JMS SETSUB 3598 015030 5704 JMP I SET06I /NO ... MUST BE OFF PAGE 3599 015031 1514 TAD I PSTCPR /YES ... PST CODE WORD 3600 015032 7700 SMA CLA /IS AFS ON PAGE 3601 015033 5707 JMP I SET12I /NO 3602 015034 5700 JMP I SET00I 3603 / 3604 / INDIRECT MEMORY REFERANCE INSTRUCTION 3605 3606 015035 1001 SETC07, TAD USE /AFS MST USE WORD 3607 015036 0157 AND K20 /IS AFS DUMMY 3608 015037 7640 SZA CLA 3609 015040 5705 JMP I SET08I /YES 3610 015041 4312 JMS USETST /TEST OFF BANK OR ABSOLUTE 3611 015042 5221 SETC09 /OFF BANK 3612 015043 5212 SETC10 /ABSOLUTE 3613 015044 4450 JMS I SPSTAB /IS AFS ON PST 3614 015045 7040 CMA /NOT FOUND 3615 015046 4331 JMS SETSUB 3616 015047 5706 JMP I SET11I /NO 3617 015050 1514 TAD I PSTCPR /YES ... PST CODE WORD 3618 015051 7700 SMA CLA /IS AFS ON PAGE 3619 015052 5706 JMP I SET11I /NO 3620 015053 5710 JMP I SET6P1 /YES 3621 / 3622 / CONSTANT FOR AN ADDRESS FIELD SYMBOL 3623 / 3624 015054 1150 SETC01, TAD S0 /ACTUAL BINARY CONSTANT 3625 015055 0166 AND K7600 /IS CONSTANT ON PAGE ZERO 3626 015056 7650 SNA CLA 3627 015057 5274 JMP SET01A /YES 3628 015060 1141 TAD IB /NO ... IS IT INDIRECT 3629 015061 7640 SZA CLA 3630 015062 5575 IERROR /YES ... ERROR 3631 015063 4447 JMS I SLITAB /IS CONSTANT ON LITERAL TABLE 3632 /IF NOT SUBROUTINE PUTS IT THERE 3633 015064 1140 TAD OP 3634 015065 7710 SPA CLA /IF OPCODE IS JMS OR JMP THEN BANK IS IRRELEVANT 3635 015066 5700 JMP I SET00I 3636 015067 7240 SET01B, CLA CMA 3637 015070 1147 TAD BANK /BANK SETTING 3638 015071 7650 SNA CLA /IS IT SET TO THE CURRENT BANK 3639 015072 5700 JMP I SET00I /YES ... NO PROBLEMS 3640 015073 5702 JMP I SET00J /EXIT TO; COMMON AREA 3641 / 3642 015074 1141 SET01A, TAD IB /IS INDIRECT BIT SET 3643 015075 7640 SZA CLA 3644 015076 5267 JMP SET01B /YES 3645 015077 5700 JMP I SET00I /NO 3646 015100 5253 SET00I, SETC00 3647 015101 5304 SET02I, SETC02 3648 015102 5240 SET00J, SETC13 3649 015103 5600 SET00B, JMP I SETCT /OFF PAGE RETURN 3650 015104 5231 SET06I, SETC06 3651 015105 5217 SET08I, SETC08 3652 015106 5220 SET11I, SETC11 3653 015107 5224 SET12I, SETC12 3654 015110 5235 SET6P1, SETC6A 3655 015111 1165 SETCAP, SETCAL 3656 3657 3658 /ROUTINE TO TEST MST USE WORD TO DETERMINE WHETHER A SYMBOL IS 3659 /OFF-BANK OR ABSOLUTE 3660 3661 015112 0000 USETST, 0 3662 015113 1001 TAD USE 3663 015114 0160 AND K40 3664 015115 7640 SZA CLA /IS IT OFF BANK? 3665 015116 5326 JMP USESUC /YES- RETURN INDIRECT THROUGH FIRST ARG 3666 015117 1001 TAD USE 3667 015120 0031 AND K3000 3668 015121 2312 ISZ USETST 3669 015122 7650 SNA CLA /IS IT ABSOLUTE? 3670 015123 5326 JMP USESUC /YES- RETURN INDIRECT THROUGH SECOND ARG 3671 015124 2312 ISZ USETST 3672 015125 5712 JMP I USETST /NEITHER - RETURN TO CALL+3 3673 015126 1712 USESUC, TAD I USETST 3674 015127 3312 DCA USETST 3675 015130 5712 JMP I USETST /TAKE PROPER BRANCH 3676 3677 / 3678 /SETSUB IS A UTILITY USED BY SETCT ONLY. 3679 /USED ONLY IMMEDIATELY AFTER A PST SEARCH. 3680 /CALLING SEQUENCE: JMS SPSTB 3681 / CMA /SPSTB MAY SKIP 3682 / JMS SETSUB 3683 / RETURN IF SPSTB SKIPPED OVER CMA 3684 / RETURN IF SPSTB DID NOT SKIP 3685 /HAS SEVERAL FUNCTIONS: 3686 /(1) SAVE COPY OF OLD VALUE OF OBACTR BEFORE 3687 /CHANGING STARTS- SO IT MAY BE USED AT SETC13. 3688 /(2) IF INSTR IS INDIRECT, THAT'S IT- EXIT 3689 /(3) OTHERWISE SAVE OLD VALUE OF PST CODE BITS 10-11 3690 /FOR LATER USE AT SETC12. WARNING: THIS 3691 /IS SAVED IN TEM3, SO TEM3 IS NOT 3692 /TEMPORARY FOR A FEW MINUTES. 3693 /(4) SET PST CODE BIT 10 IF THIS IS A #REF, 3694 /OR BIT 11 IF IT IS A NORMAL REF. 3695 /ALGORITHM IS A.OR.B=(.NOT.A.AND.B)+A 3696 / 3697 3698 015131 0000 SETSUB, 0 3699 015132 3123 DCA TEM1 /0=FOUND, -1=NOT 3700 015133 1074 TAD OBACTR /SAVE FOR SETC11,12,6,13 3701 015134 3760 DCA I OLDOBP 3702 015135 1141 TAD IB /OMIT CHANGING PST BITS IF INDIRECT 3703 015136 7640 SZA CLA 3704 015137 5355 JMP SETSX 3705 015140 1514 TAD I PSTCPR /SAVE OLD CODE 3706 015141 0016 AND K3 3707 015142 3125 DCA TEM3 3708 015143 1144 TAD NSGN 3709 015144 7640 SZA CLA 3710 015145 7001 IAC /# 3711 015146 7001 IAC 3712 015147 3124 DCA TEM2 3713 015150 1124 TAD TEM2 /OR INTO CODE 3714 015151 7040 CMA 3715 015152 0514 AND I PSTCPR 3716 015153 1124 TAD TEM2 3717 015154 3514 DCA I PSTCPR 3718 015155 2123 SETSX, ISZ TEM1 /FOUND? 3719 015156 2331 ISZ SETSUB /YES 3720 015157 5731 JMP I SETSUB 3721 3722 015160 5274 OLDOBP, OLDOBA 3723 OBFLG=SETSUB 3724 3725 3726 3727 /SUBR TO STORE CHARACTER IN LINE BUFFER 3728 /ASSUMES X1 SET 3729 /CHAR MAY BE IN AC OR IN CHR 3730 3731 015161 0000 STORE, 0 3732 015162 7450 SNA 3733 015163 1061 TAD CHR 3734 015164 6201 CDF 00 3735 015165 3412 DCA I X2 3736 015166 6211 CDF 10 3737 015167 5761 JMP I STORE 3738 3739 3740 / 3741 /ROUTINE TO CHECK NSGN FOR SETCT 3742 /USED ONLY BY SETCT ROUTINE. 3743 /CALLING SEQUENCE: AC=0 3744 / JMS NUMSGN 3745 / RETURN WITH AC=0 IF 3746 / NSGN=0,AC=1 IF NSGN 3747 / NOT=0. 3748 /NOTE:NSGN MAY BE NON-0 AND NOT=1. THIS 3749 /IS THE REASON FOR NUMSGN. 3750 / 3751 3752 015170 0000 NUMSGN, 0 3753 015171 1144 TAD NSGN 3754 015172 7640 SZA CLA 3755 015173 7001 IAC 3756 015174 5770 JMP I NUMSGN 3757 *5200 3758 / 3759 / AFS ABSOLUTE 3760 / 3761 015200 4762 SETC05, JMS I NUMSGP 3762 015201 1002 TAD VAL /ABSOLUTE SYMBOL VALUE 3763 015202 0166 AND K7600 /MASK OUT PAGE BITS 3764 015203 7650 SNA CLA /IS ABSOLUTE SYMBOL ON PAGE ZERO 3765 015204 5253 JMP SETC00 /YES ... EXIT 3766 015205 4762 JMS I NUMSGP 3767 015206 1002 TAD VAL /NO ... ABSOLUTE SYMBOL VALUE 3768 015207 3150 DCA S0 /TO LITERAL TABLE SEARCH LOCATION 3769 015210 4447 JMS I SLITAB /SEARCH LITERAL TABLE FOR VALUE 3770 /IF NOT THERE ROUTINE PLACES IT THERE 3771 015211 5232 JMP SETC06+1 /EXIT 3772 / 3773 / INDIRECT ABSOLUTE 3774 / 3775 015212 4762 SETC10, JMS I NUMSGP 3776 015213 1002 TAD VAL /ACTUAL AFS VALUE 3777 015214 0166 AND K7600 3778 015215 7650 SNA CLA /IS ADDRESS FIELD SYMBOL ON PAGE ZERO 3779 015216 5235 JMP SETC6A /YES 3780 / 3781 / INDIRECT DUMMY ADDRESS FIELD SYMBOL 3782 / 3783 015217 1171 SETC08, TAD M2 /SET BANK UNKNOWN 3784 / 3785 / OFF PAGE INDIRECT 3786 / 3787 015220 7001 SETC11, IAC /SET BANK TO CURRENT 3788 / 3789 / OFF BANK INDIRECT - SET BANK TO 0 3790 / 3791 SETC09, 3792 015221 4365 JMS INCOBA /SET BANK & INCR. OBACTR 3793 015222 1147 TAD BANK 3794 015223 5241 JMP SETC13+1 /EXIT TO COMMON AREA 3795 / 3796 3797 3798 / ADDRESS FIELD SYMBOL NOT ON PAGE SYMBOL TABLE. 3799 / 3800 015224 1514 SETC12, TAD I PSTCPR /HAS NEW TYPE REF BEEN ADDED? 3801 015225 0016 AND K3 3802 015226 7041 CIA 3803 015227 1125 TAD TEM3 3804 015230 7640 SZA CLA /YES 3805 015231 2075 SETC06, ISZ OPSCTR /INCREMENT OFF PAGE SYMBOL COUNTER 3806 015232 1140 TAD OP 3807 015233 7710 SPA CLA /DON'T WORRY ABOUT BANK FOR JMS'S AND JMP'S 3808 015234 5253 JMP SETC00 /WHICH ARE NOT EXPLICITLY INDIRECT 3809 015235 1147 SETC6A, TAD BANK 3810 015236 7740 SMA SZA CLA 3811 015237 5253 JMP SETC00 /YES ... EXIT TO COMMON AREA 3812 015240 7001 SETC13, IAC 3813 015241 4365 JMS INCOBA /SET BANK TO CUR. & INC OBACTR 3814 015242 1675 TAD I OBFLGP /WAS THERE A PST SEARCH? 3815 015243 7650 SNA CLA 3816 015244 5253 JMP SETC00 /NO 3817 015245 1274 TAD OLDOBA /YES GET CHANGE IN OBACTR 3818 015246 7041 CIA 3819 015247 1074 TAD OBACTR 3820 015250 7106 CLL RTL /IN BITS 1-9 3821 015251 1514 TAD I PSTCPR /ADD TO PST CODE 3822 015252 3514 DCA I PSTCPR 3823 / 3824 / COMMON AREA 3825 / 3826 015253 4264 SETC00, JMS CMNSET /SET BANK=1 AFTER JMS 3827 015254 4663 JMS I SETCMN /UPDATE BANK AND LSTSKP 3828 015255 7640 SZA CLA /IS CURRENT INSTRUCTION A SKIP? 3829 015256 1014 TAD K2 /YES ... PAGE ESCAPE = 4 3830 015257 1014 TAD K2 /NO ... PAGE ESCAPE = 2 3831 015260 3111 DCA PGEESC 3832 015261 5662 JMP I .+1 /RETURN 3833 015262 5103 SET00B 3834 015263 5755 SETCMN, ASMCMN 3835 3836 /ROUTINE TO SET BANK TO CURRENT AFTER A JMS 3837 015264 0000 CMNSET, 0 3838 015265 1140 TAD OP 3839 015266 1041 TAD K4000 3840 015267 7640 SZA CLA /WAS OP A JMS? 3841 015270 5664 JMP I CMNSET /NO 3842 015271 7001 IAC 3843 015272 3147 DCA BANK 3844 015273 5664 JMP I CMNSET 3845 3846 015274 0000 OLDOBA, 0 3847 015275 5131 OBFLGP, OBFLG 3848 / 3849 / DIRECT OFF BANK REFERANCE 3850 / 3851 015276 1147 SETC04, TAD BANK /BANK INDICATOR 3852 015277 7640 SZA CLA /IS BANK SET TO OFF 3853 015300 4365 JMS INCOBA /NO, SET BANK TO COMMN & INC OBACTR 3854 015301 4762 JMS I NUMSGP 3855 015302 1002 TAD VAL /YES ... ACTUAL BANK 0 ADDRESS 3856 015303 3150 DCA S0 /TO CONSTANT - LITERAL LOCATION 3857 / 3858 / LITERAL FOR AN AFS 3859 / 3860 015304 4447 SETC02, JMS I SLITAB /PLACE LITERAL ON LITERAL TABLE 3861 015305 5774 JMP I SET1AP 3862 / 3863 / COLLECTION ROUTINE TO CHECK FOR AND PROCESS AN LFS 3864 / 3865 /CALLING SEQUENCE: AC=0 3866 / JMS CPLFS 3867 / RETURN WITH AC=0 3868 /FUNCTION: USED DURING COLLECTION PHASE 3869 / EXCEPT WHEN RECOUNTING A PAGE. 3870 / IF TAG OCCURS ON CURRENT LINE, CPLFS 3871 / LOCATES (OR ENTERS) IT IN PAGE SYM.TAB. 3872 / AND SETS THE DEFINED-ON-PAGE BIT IN 3873 / THE PST CODE WORD. 3874 / ALSO SETS BANK CONDITION TO UNKNOWN 3875 / SINCE USER CODE CAN JUMP TO TAG 3876 / FROM ANYWHERE. ALSO SAVE 3877 / TAG IN LLFS & RESET LINE COUNT 3878 / IN CASE WE GET A MULT.DEF. ERROR 3879 / IN PASS1 WE MUST ALSO DO THE 3880 / FOLLOWING IF THE SYMBOL IS ALREADY 3881 / IN THE PST WHEN WE GO LOOK FOR 3882 / IT: (1) REDUCE THE OFF-PAGE SYM. 3883 / CTR. BECAUSE OFF-PAGE POINTER (FOR 3884 / EITHER NORMAL OR # REFERENCES) ARE 3885 / NO LONGER NEEDED. (2) REDUCE 3886 / OBACTR BY THE NO. OF EXTRA WORDS 3887 / OF CODE DUE TO THIS SYMBOL. 3888 /SUBRS. CALLED: OBNSYM(LFS),SPSTB,PSTDEF 3889 / 3890 015306 0000 CPLFS, 0 3891 015307 1444 TAD I RECTI /ARE WE RECOUNTING? 3892 015310 7640 SZA CLA 3893 015311 5706 JMP I CPLFS /YES ... RETURN 3894 015312 1137 TAD LFS 3895 015313 7450 SNA 3896 015314 5706 JMP I CPLFS /NONE THERE 3897 015315 6201 CDF 00 3898 015316 3466 DCA I LFSPTR /PLACE ON LFS TABLE 3899 015317 2066 ISZ LFSPTR /INCREMENT LFS TABLE POINTER 3900 015320 6211 CDF 10 3901 015321 2517 ISZ I PTCPR /SET LFS BIT ON PAGE TABLE 3902 015322 4432 JMS I OBSYM 3903 015323 0137 LFS 3904 015324 4450 JMS I SPSTAB /IS IT ON THE PAGE SYMBOL TABLE 3905 015325 5352 JMP CPLFS3 /NO ... SKIP DECREMENTING 3906 015326 3123 DCA TEM1 /CLR 3907 015327 1110 TAD PASS /SKIP DECREMENTING IF PASS 2 3908 015330 7650 SNA CLA 3909 015331 1514 TAD I PSTCPR /CK USE 3910 015332 0016 AND K3 3911 015333 7110 CLL RAR 3912 015334 7430 SZL 3913 015335 2123 ISZ TEM1 /NORMAL 3914 015336 7640 SZA CLA 3915 015337 2123 ISZ TEM1 /# 3916 015340 1123 TAD TEM1 /SUBTRACT 3917 015341 7041 CIA 3918 015342 1075 TAD OPSCTR 3919 015343 3075 DCA OPSCTR 3920 015344 1514 TAD I PSTCPR /EXTRACT SHARE OF OBACTR DUE 3921 015345 0361 AND C3774 /TO THIS SYMBOL 3922 015346 7112 CLL RTR /MOVE TO LOW ORDER 3923 015347 7041 CIA /SUB. FROM OBACTR 3924 015350 1074 TAD OBACTR 3925 015351 3074 DCA OBACTR 3926 015352 4763 CPLFS3, JMS I PSTDEP 3927 015353 7340 CLA CMA CLL /SET BANK UNKNOWN (THE CLL IS USED ELSEWHERE) 3928 015354 3147 DCA BANK 3929 015355 1137 TAD LFS /SAVE IN CASE OF ERROR 3930 015356 3364 DCA LLFS 3931 015357 3067 DCA LINE /ZERO LINE COUNT FROM LAST LFS 3932 015360 5706 JMP I CPLFS 3933 015361 3774 C3774, 3774 3934 015362 5170 NUMSGP, NUMSGN 3935 015363 5571 PSTDEP, PSTDEF 3936 015364 0000 LLFS, 0 3937 3938 3939 / 3940 /UTILITY FOR SETC04,SETC08,SETC13 3941 /NOT USED ELSEWHERE 3942 /CALLING SEQUENCE: DESIRED BANK SETTING IN AC 3943 / JMS INCOBA 3944 / RETURN WITH AC=0 3945 /FUNCTION:(1) SET BANK AS SPECIFIED 3946 / (2) INCREMENT OFF-BANK ADDITION CTR 3947 / BY 1 OR 2: 2 IF PREVIOUS INSTR. 3948 / WAS A SKIP-TYPE, 1 OTHERWISE. 3949 / 3950 015365 0000 INCOBA, 0 3951 015366 3147 DCA BANK 3952 015367 1072 TAD LSTSKP /LAST INSTRUCTION SKIP INDICATOR 3953 015370 7640 SZA CLA /WAS LAST INSTRUCTION A SKIP INSTRUCTION 3954 015371 2074 ISZ OBACTR /+ OLD VALUE OF OFF BANK ADDITION COUNTER 3955 015372 2074 ISZ OBACTR /FOR NEW VALUE OF OFF BANK ADDITION COUNTER 3956 015373 5765 JMP I INCOBA 3957 015374 5074 SET1AP, SET01A 3958 *5400 3959 / 3960 / ROUTINE TO ASSEMBLE THE PAGE HELD IN THE CURRENT SET OF TABLES 3961 3962 /THIS IS THE MAIN PASS1 ASSEMBLY ROUTINE 3963 /(NOT USED BY PASS2) 3964 /ASMBL GOES THRU ENTIRE PAGE TABLE 3965 /FLOW: (1) CALL A1 TO INIT. PAGE ASSEMBLY 3966 / (2) GET ITEM OFF P.T. 3967 / (3) CALL ASM02 TO ASSEMBLE ITEM 3968 / (4) LOOP BACK TO (2) TIL DONE WITH PAGE 3969 / (5) CALL A2 TO ASM. LITERALS 3970 /ASMBL IS CALLED TWICE BY L55 FOR 3971 /EACH PAGE OF CODE. 3972 / 3973 015400 0000 ASMBL, 0 3974 015401 4317 JMS A1 3975 015402 4705 JMS I ILC4PT /OUTPUT PAGE ORIGIN 3976 015403 4710 JMS I INIS /DO INITS. 3977 015404 1122 TAD PTSZE /PLACE - SIZE OF PAGE TABLE 3978 015405 7041 CIA 3979 015406 3307 DCA INDX1 /IN AN INDEX LOCATION 3980 015407 1027 TAD LFSBSE /SET UP LFS TABLE POINTER 3981 015410 3066 DCA LFSPTR 3982 015411 7240 CLA CMA 3983 015412 3113 DCA PHASE /SET PHASE SWITCH TO ASSEMBLY 3984 015413 4706 JMS I ASM02I /SKIP INCREMENTING POINTERS THE FIRST TIME 3985 015414 4621 JMS I ISSI /INCREMENT PAGE TABLE POINTERS 3986 015415 2307 ISZ INDX1 /OVER YET 3987 015416 5213 JMP .-3 3988 015417 4222 JMS A2 3989 015420 5600 JMP I ASMBL 3990 015421 6701 ISSI, ISZPT 3991 3992 3993 / 3994 /ASSEMBLY ROUTINE TO FINISH OFF A PAGE 3995 /(1) PUTS OUT PAGE ESCAPE 3996 /(2) LITERAL POOL (BY CALLING OAPLT) 3997 /(3) GET READY FOR NEXT PAGE 3998 / 3999 015422 0000 A2, 0 4000 015423 4712 JMS I SAVLNP /STOP NEXT LINE LISTING 4001 015424 1102 TAD APMSW /ARE WE IN AUTOMATIC PAGING MODE 4002 015425 7640 SZA CLA 4003 015426 5264 JMP A2NONA /NO ... DONT SEND PAGE ESCAPE 4004 015427 1111 TAD PGEESC /SIZE OF PAGE ESCAPE REQUIRED 4005 015430 7012 RTR /2 BIT TO LINK 4006 015431 7630 SZL CLA 4007 015432 5245 JMP ASM01A /2 INSTRUCTION PAGE ESCAPE 4008 /4 INSTRUCTION PAGE ESCAPE 4009 015433 4456 JMS I WRITEP 4010 015434 4436 JMS I OUTBIN /JMP NEXT TO LAST LOC ON THIS PAGE 4011 015435 6374 K5376 4012 015436 0000 0 4013 015437 2065 ISZ ILC /FOR BENEFIT OF "WRITE" 4014 015440 7240 CLA CMA 4015 015441 4267 JMS A2SUBR /OUTPUT JMP AND LITERAL TABLE 4016 015442 4437 JMS I OUTSKP /OUTPUT 2 SKIP INSTRUCTIONS 4017 015443 4437 JMS I OUTSKP 4018 015444 5252 JMP ASM01B /RETURN 4019 / 4020 015445 4267 ASM01A, JMS A2SUBR /OUTPUT JMP AND LITERAL TABLE 4021 015446 4456 JMS I WRITEP 4022 015447 4436 JMS I OUTBIN /PLACE A NOP IN THE LAST LOCATION 4023 015450 3647 K7000 4024 015451 0000 0 4025 015452 4713 ASM01B, JMS I RELNP /RESTORE NEXT LINE FOR LISTING 4026 015453 1057 TAD ACTR /REMAINS 1 DURING PASS 2 4027 015454 7640 SZA CLA 4028 015455 5622 JMP I A2 /EXIT IF LISTING OR 2ND ASSEMBLY 4029 015456 1112 TAD PUPGE /SAVE ESCAPE ON PUSH DOWN LIST 4030 015457 6201 CDF 00 4031 015460 3714 DCA I PEPTR 4032 015461 6211 CDF 10 4033 015462 2314 ISZ PEPTR /MOVE STACK PTR 4034 015463 5622 JMP I A2 /RETURN 4035 4036 015464 4711 A2NONA, JMS I OUAPLT 4037 015465 3112 DCA PUPGE /CLR 4038 015466 5252 JMP ASM01B 4039 4040 /SUBROUTINE TO ELIMINATE SOME COMMON CODE 4041 / 4042 015467 0000 A2SUBR, 0 4043 015470 1163 TAD K177 4044 015471 1077 TAD PAG 4045 015472 3304 DCA A2TEMP /SET ILC IN CASE NO LITERALS 4046 015473 4456 JMS I WRITEP 4047 015474 4436 JMS I OUTBIN 4048 015475 6303 K5377 4049 015476 0000 0 4050 015477 4711 JMS I OUAPLT /OUTPUT LITERAL TABLE 4051 015500 1304 TAD A2TEMP 4052 015501 3065 DCA ILC /SET ILC TO 176 OR 177 IN PAGE 4053 015502 4705 JMS I ILC4PT 4054 015503 5667 JMP I A2SUBR /RETURN 4055 015504 0000 A2TEMP, 0 4056 4057 4058 015505 6363 ILC4PT, ILC4 4059 015506 5650 ASM02I, ASM02 4060 015507 0000 INDX1, 0 4061 015510 1041 INIS, INISUB 4062 015511 3200 OUAPLT, OAPLT 4063 015512 4743 SAVLNP, SAVLIN 4064 015513 4754 RELNP, RELINE 4065 015514 0700 PEPTR, PEBSE 4066 015515 0000 REDUCE, 0 4067 015516 4045 CDFSKP, JMS CDFSK 4068 4069 4070 / 4071 /INITIALIZE A PAGE ASSEMBLY 4072 / 4073 015517 0000 A1, 0 4074 015520 1077 TAD PAG /MOVE PAGE TO ILC 4075 015521 3065 DCA ILC 4076 015522 3070 DCA LITSIZ /ZERO LITERAL TABLE SIZE 4077 015523 1110 TAD PASS 4078 015524 7650 SNA CLA 4079 015525 5717 JMP I A1 /EXIT IF PASS 1 4080 015526 6201 CDF 00 4081 015527 1714 TAD I PEPTR /GET NEXT PAGE ESC FROM STACK 4082 015530 6211 CDF 10 4083 015531 2314 ISZ PEPTR /MOVE PTR 4084 015532 3315 DCA REDUCE 4085 015533 5717 JMP I A1 4086 / 4087 / DUMMY PSEUDO OP 4088 / 4089 015534 4427 PDUMMY, JMS I GETSYM /GET NEXT INPUT ITEM 4090 015535 7410 SKP /NOTHING THERE 4091 015536 5341 JMP .+3 /SYMTOL 4092 015537 7000 NOP /CONSTANT 4093 015540 5575 IERROR /LITERAL 4094 015541 4446 JMS I SKIPL 4095 015542 1001 TAD USE /MST USE WORD 4096 015543 0347 AND K3403 /SAVE SYMBOL LENGTH, TYPE BITS, AND DEF BIT 4097 015544 1157 TAD K20 /ADD CORRECT MST BIT FOR DUMMY 4098 015545 3001 DCA USE /FOR CORRECT CODE WORD 4099 015546 5434 JMP I NULLP /EXIT TO GET NEXT LINE 4100 015547 3403 K3403, 3403 4101 4102 4103 / 4104 /COMPUTE CURRENT PAGE SIZE 4105 /ENTER WITH AC=0 4106 /EXIT WITH PAGE SIZE IN AC 4107 / 4108 015550 0000 CPGES, 0 4109 015551 1102 TAD APMSW /OMIT PGEESC IF NON-AUTO PAGING 4110 015552 7650 SNA CLA 4111 015553 1111 TAD PGEESC /+SIZE OF ESCAPE REQUIRED 4112 015554 1122 TAD PTSZE /SIZE OF PAGE TABLE 4113 015555 1071 TAD LTSZE /+SIZE OF LITERAL TABLE 4114 015556 1075 TAD OPSCTR /+OFF PAGE SYMBOL COUNTER 4115 015557 1074 TAD OBACTR /+OFF BANK ADDITION COUNTER 4116 015560 3371 DCA PSTDEF /STORE IN TEM. 4117 015561 1371 TAD PSTDEF /GET IT BACK 4118 015562 1077 TAD PAG /AND CHECK FOR 7600 PAGE OVERFLOW 4119 015563 0166 AND K7600 4120 015564 1164 TAD K200 4121 015565 7650 SNA CLA 4122 015566 5577 SERROR /OVERFLOW-ERROR S 4123 015567 1371 TAD PSTDEF /O.K. GET PAGE SIZE, WHICH 4124 015570 5750 JMP I CPGES /IS DESIRED RESULT 4125 4126 4127 /ROUTINE TO SET DEFINED BIT ON PST 4128 /USED BY CPLFS & ANUMCK 4129 4130 015571 0000 PSTDEF, 0 4131 015572 1514 TAD I PSTCPR /PROTECT CODES 4132 015573 7500 SMA 4133 015574 1041 TAD K4000 /SET DEFINED BIT ON PST 4134 015575 3514 DCA I PSTCPR 4135 015576 5771 JMP I PSTDEF 4136 *5600 4137 / 4138 / CONSTANT FOR AN ADDRESS FIELD SYMBOL 4139 / 4140 015600 1521 ASM05, TAD I PTSPR /ACTUAL BINARY CONSTANT 4141 015601 0166 AND K7600 /IS IT ON PAGE ZERO 4142 015602 7640 SZA CLA 4143 015603 5615 JMP I ASM5CI /NO 4144 015604 1521 TAD I PTSPR /ADD IN PAGE ZERO ADDRESS 4145 015605 3145 DCA TEMP6 4146 015606 1517 TAD I PTCPR /YES ... IS IT INDIRECT 4147 015607 0045 AND K400 4148 015610 7650 SNA CLA 4149 015611 5330 JMP ASM00 /EXIT TO COMMON AREA 4150 015612 1145 TAD TEMP6 4151 015613 5614 JMP I ASM5AI 4152 015614 6272 ASM5AI, ASM12E 4153 015615 6223 ASM5CI, ASM05C 4154 / 4155 / OFF BANK DIRECT (COMMON DIRECT) 4156 / 4157 015616 4647 ASM08, JMS I NSCHKP 4158 015617 1002 TAD VAL /ACTUAL ADDRESS IN BANK ZERO 4159 015620 3151 DCA S1 /TO 2 WORD LITERAL TABLE SEARCH LOCATION 4160 015621 7201 CLA IAC 4161 015622 3150 DCA S0 /ABSOLUTE SEARCH 4162 015623 4646 JMS I SERALP /GET A PAGE ADDRESS 4163 015624 1045 TAD K400 /ADD INDIRECT BIT 4164 015625 3145 DCA TEMP6 4165 015626 1147 TAD BANK /BANK INDICATOR 4166 015627 7650 SNA CLA /IS IT SET 4167 015630 5330 JMP ASM00 4168 015631 3640 DCA I ASMX5I 4169 015632 1242 TAD KCDF1A 4170 015633 3641 DCA I ASMX4I 4171 015634 1245 TAD CDZSKI 4172 015635 3643 DCA I ASMX6I 4173 015636 3103 DCA TEM7 4174 015637 5644 JMP I ASME7I 4175 015640 6065 ASMX5I, ASMX5 4176 015641 6064 ASMX4I, ASMX4 4177 015642 5661 KCDF1A, KCDF10 4178 015643 6072 ASMX6I, ASMX6 4179 015644 6057 ASME7I, ASME7 4180 015645 2577 CDZSKI, CDZSKP 4181 015646 3445 SERALP, SRALT 4182 015647 6324 NSCHKP, NSCHK 4183 4184 / 4185 /ASM02 IS THE HEART OF ASSEMBLY 4186 /IT IS CALLED ONCE FOR EACH ITEM ON 4187 /THE PAGE TABLE. 4188 /IT CONSISTS OF MANY PARTS, ONE FOR 4189 /EACH BASIC TYPE OF INSTR. TO BE 4190 /ASSEMBLED PLUS VARIOUS COMMON EXITS 4191 / 4192 015650 0000 ASM02, 0 4193 015651 3137 DCA LFS /ZERO LFS INDICATOR 4194 015652 1110 TAD PASS 4195 015653 7640 SZA CLA 4196 015654 4750 JMS I GETBAP /RESTORE BANK & LSTSKP IF PASS2 4197 015655 4431 JMS I LFSCHK /PROCESS LFS IF ANY 4198 015656 4726 JMS I ANCHK /PROCESS BSS 0 IF ANY 4199 015657 6201 KCDF00, CDF 00 4200 015660 1520 TAD I PTOPR 4201 015661 6211 KCDF10, CDF 10 4202 015662 3140 DCA OP 4203 015663 1517 TAD I PTCPR 4204 015664 0160 AND K40 /IS IT A SKIP INSTRUCTION 4205 015665 3146 DCA CURSKP /YES ... SET SKIP INDICATOR 4206 015666 1517 TAD I PTCPR 4207 015667 0156 AND K10 /IS IT A PSEUDO OP (PAR) 4208 015670 7640 SZA CLA 4209 015671 5723 JMP I ASM03I /YES ... EXIT 4210 015672 1517 TAD I PTCPR 4211 015673 0015 AND K4 /IS IT A MEMORY REFERANCE INSTRUCTION 4212 015674 7640 SZA CLA 4213 015675 5331 JMP ASME1 /NO 4214 015676 1517 TAD I PTCPR /PT CODE WORD 4215 015677 0157 AND K20 /IS AFS A CONSTANT 4216 015700 7640 SZA CLA 4217 015701 5200 JMP ASM05 /YES 4218 015702 1517 TAD I PTCPR /PT CODE WORD 4219 015703 0014 AND K2 /IS AFS A LITERAL 4220 015704 7640 SZA CLA 4221 015705 5724 JMP I ASM06I /YES 4222 015706 1521 TAD I PTSPR /AFS ID WORD FOR SYMBOL TABLE 4223 015707 3142 DCA AFS /TO DIRECTLY ADDRESSABLE LOCATION 4224 015710 4432 JMS I OBSYM /GET ITS POINTERS TO MST 4225 015711 0142 AFS 4226 015712 1517 TAD I PTCPR /PT CODE WORD 4227 015713 0045 AND K400 /IS OP INDIRECT 4228 015714 7640 SZA CLA 4229 015715 5722 JMP I ASM2AI /YES 4230 015716 4727 JMS I UZTST /TEST FOR OFF BANK OR ABSOLUTE 4231 015717 5616 ASM08 /OFF BANK 4232 015720 6234 ASM09 /ABSOLUTE 4233 015721 5725 JMP I ASM07I /NO 4234 015722 6036 ASM2AI, ASM02A 4235 015723 1200 ASM03I, PPAR1 4236 015724 6245 ASM06I, ASM06 4237 015725 6200 ASM07I, ASM07 4238 015726 2476 ANCHK, ANUMCK 4239 015727 5112 UZTST, USETST 4240 / 4241 / END OF LINE NECESSITIES 4242 / 4243 015730 1145 ASM00, TAD TEMP6 4244 015731 1140 ASME1, TAD OP 4245 015732 3123 ASME2, DCA TEM1 4246 015733 4456 JMS I WRITEP 4247 015734 4436 JMS I OUTBIN 4248 015735 0123 TEM1 4249 015736 0000 ASME1X, 0 4250 015737 4747 ASM01, JMS I CMNASM /SET BANK=1 AFTER A JMS 4251 015740 4355 JMS ASMCMN /SET BANK AND LSTSKP 4252 015741 3352 DCA SKPSAV /SAVE CURSKP IN SKPSAV 4253 015742 1147 TAD BANK /SAVE FOR PROTECTION DURING LISTING 4254 015743 3351 DCA BNKSAV 4255 015744 2065 ISZ ILC /INCREMENT ILC 4256 015745 5650 ASM02R, JMP I ASM02 /USED AS OFF-PAGE RETURN 4257 015746 5577 SERROR /ILC OVERFLOWED 7777 - PROGRAM TOO BIG 4258 015747 5264 CMNASM, CMNSET 4259 015750 6600 GETBAP, GETBAS 4260 015751 0000 BNKSAV, 0 4261 015752 0000 SKPSAV, 0 4262 015753 4062 OPISUB, JMS OPIS 4263 015754 4055 OBISUB, JMS OBIS 4264 4265 /SUBROUTINE TO UPDATE BANK,LSTSKP,LSTBNK 4266 / 4267 015755 0000 ASMCMN, 0 4268 015756 1072 TAD LSTSKP /IS LAST INSTRUCTION A SKIP INSTRUCTION 4269 015757 7650 SNA CLA 4270 015760 5370 JMP .+10 /NO 4271 015761 1073 TAD LSTBNK /YES ... LAST BANK 4272 015762 7041 CIA 4273 015763 1147 TAD BANK /+CURRENT BANK 4274 015764 7650 SNA CLA /ARE THEY THE SAME 4275 015765 5370 JMP .+3 /YES 4276 015766 7240 CLA CMA /NO ... SET BANK UNKNOWN 4277 015767 3147 DCA BANK 4278 015770 1146 TAD CURSKP /PLACE CUR SKIP INDICATOR 4279 015771 3072 DCA LSTSKP /AS LAST SKIP INDICATOR 4280 015772 1147 TAD BANK /PLACE CURRENT BANK 4281 015773 3073 DCA LSTBNK /IN LAST BANK INDICATOR 4282 015774 1072 TAD LSTSKP 4283 015775 5755 JMP I ASMCMN 4284 *6000 4285 / 4286 / 4287 / INDIRECT DUMMY ARGUMENT 4288 / 4289 016000 3547 DUMSUB 4290 016001 1600 ASM10, TAD I .-1 4291 016002 3145 DCA TEMP6 4292 016003 7240 CLA CMA /SET BANK UNKNOWN 4293 016004 5210 JMP ASME3 /EXIT FOR SKIP CHECK 4294 / 4295 / OFF BANK INDIRECT (INDIRECT COMMON) 4296 / 4297 016005 5754 OBISUB 4298 016006 1605 ASM11, TAD I .-1 4299 016007 3145 DCA TEMP6 4300 / 4301 4302 TEMP6=EXP 4303 016010 3147 ASME3, DCA BANK /SET C(AC) IN BANK 4304 016011 1072 TAD LSTSKP /WAS LAST A SKIP? 4305 016012 7650 SNA CLA 4306 016013 5223 JMP ASME4 /NO 4307 //FOLLOWING 6 LINES HAVE BEEN 4308 //MOVED TO 6600 TO MAKE ROOM FOR V03 4309 016014 5615 JMP I .+1 4310 016015 3567 ASMEXT 4311 // JMS I OUTSKP /YES, OUTPUT SKP 4312 // TAD ILC /GET PG.LOC.PTR. 4313 // TAD K4 /+4 4314 // AND K177 4315 // TAD K5200A /OUTPUT JMP .+4 4316 // DCA TEM1 4317 016016 4456 REEASM, JMS I WRITEP 4318 016017 4436 JMS I OUTBIN 4319 016020 0123 TEM1 4320 016021 0000 0 4321 016022 2065 ISZ ILC /INCREMENT PG.LOC.PTR. 4322 016023 4456 ASME4, JMS I WRITEP 4323 016024 4436 JMS I OUTBIN /OUTPUT JMS TO 4324 016025 0145 TEMP6 /OBISUB,OPISUB, OR DUMSUB 4325 016026 0000 0 4326 016027 2065 ISZ ILC 4327 016030 4646 JMS I ASM10B /PPAR3S 4328 016031 2065 ISZ ILC 4329 016032 1140 TAD OP 4330 016033 1250 TAD K407 4331 016034 5635 JMP I ASME2P 4332 016035 5732 ASME2P, ASME2 4333 016036 1001 ASM02A, TAD USE /AFS MST USE WORD 4334 016037 0157 AND K20 /IS AFS A DUMMY ARGUMENT 4335 016040 7640 SZA CLA 4336 016041 5201 JMP ASM10 /YES 4337 016042 4715 JMS I UZETST /TEST FOR OFF-BANK OR ABSOLUTE 4338 016043 6006 ASM11 /OFF-BANK 4339 016044 6264 ASM12 /ABSOLUTE 4340 016045 5647 JMP I ASM13I /NO 4341 016046 1253 ASM10B, PPAR3S 4342 016047 6304 ASM13I, ASM13 4343 016050 0407 K407, 0407 4344 016051 1140 ASME5A, TAD OP 4345 016052 7710 SPA CLA /BANK NEED NOT BE CURRENT FOR A JMP OR JMS 4346 016053 5300 JMP ASME6+2 /WHICH IS NOT EXPLICITLY INDIRECT 4347 016054 1147 ASME5, TAD BANK 4348 016055 7740 SMA SZA CLA 4349 016056 5300 JMP ASME6+2 4350 016057 1072 ASME7, TAD LSTSKP 4351 016060 7640 SZA CLA 4352 016061 5270 JMP .+7 4353 016062 4456 JMS I WRITEP 4354 016063 4436 JMS I OUTBIN 4355 016064 5657 ASMX4, KCDF00 4356 016065 0005 ASMX5, 5 4357 016066 2065 ISZ ILC 4358 016067 5276 JMP ASME6 4359 016070 4456 JMS I WRITEP 4360 016071 4436 JMS I OUTBIN 4361 016072 5516 ASMX6, CDFSKP 4362 016073 0000 0 4363 016074 2065 ISZ ILC 4364 016075 4437 JMS I OUTSKP 4365 016076 1103 ASME6, TAD TEM7 4366 016077 3147 DCA BANK 4367 016100 1154 TAD K5 4368 016101 3265 DCA ASMX5 4369 016102 1314 TAD KCDFA 4370 016103 3264 DCA ASMX4 4371 016104 1312 TAD CDFSKI 4372 016105 3272 DCA ASMX6 4373 016106 7001 IAC 4374 016107 3103 DCA TEM7 4375 016110 5711 JMP I .+1 4376 016111 5730 ASM00 4377 016112 5516 CDFSKI, CDFSKP 4378 016113 5731 ASME1I, ASME1 4379 016114 5657 KCDFA, KCDF00 4380 016115 5112 UZETST, USETST 4381 4382 / 4383 / SYMBOL TABLE TYPEOUT FLAG TYPEOUT ROUTINE 4384 4385 /CALL SEQ.: TAD USE /GET TYPE BITS 4386 / RTL 4387 / RTL 4388 / JMS STFT 4389 / RETURN 4390 /USED ONLY BY PRSYM 4391 / 4392 016116 0000 STFT, 0 4393 016117 0016 AND K3 /MASK OUT TYPE BITS 4394 016120 7450 SNA 4395 016121 5344 JMP STFT3 /ABSOLUTE SYM. 4396 016122 1172 TAD M3 /CK FOR NEW OPDEF 4397 016123 7450 SNA 4398 016124 5342 JMP STFT2 /YES 4399 016125 7001 IAC 4400 016126 7450 SNA 4401 016127 5367 JMP STFT5 /EXTERNAL 4402 016130 7630 SZL CLA 4403 016131 5336 JMP STFT1 /DEFINED 4404 016132 1364 TAD K2516 /"UN" 4405 016133 4423 JMS I CTYPE 4406 016134 1365 TAD K0406 /"DF" 4407 016135 4423 STFT0, JMS I CTYPE /TYPE FLAG 4408 016136 7200 STFT1, CLA /WE MUST HAVE A CLEAR AC 4409 016137 5716 JMP I STFT /RETURN 4410 016140 2560 K2560, 2560 4411 016141 1720 K1720, 1720 4412 4413 016142 1341 STFT2, TAD K1720 /TYPE "OP" 4414 016143 5335 JMP STFT0 4415 016144 1001 STFT3, TAD USE 4416 016145 0160 AND K40 4417 016146 7640 SZA CLA 4418 016147 5354 JMP STFT4 /COMMON 4419 016150 1360 TAD K0102 /"AB" 4420 016151 4423 JMS I CTYPE 4421 016152 1362 TAD K2300 /"S " 4422 016153 5335 JMP STFT0 4423 016154 1361 STFT4, TAD K0317 /"CO" 4424 016155 4423 JMS I CTYPE 4425 016156 1363 TAD K1500 /"M " 4426 016157 5335 JMP STFT0 4427 4428 016160 0102 K0102, 102 4429 016161 0317 K0317, 317 4430 016162 2300 K2300, 2300 4431 016163 1500 K1500, 1500 4432 016164 2516 K2516, 2516 4433 016165 0406 K0406, 406 4434 016166 0530 K0530, 530 4435 K2400=SLITAB 4436 4437 016167 1366 STFT5, TAD K0530 /"EX" 4438 016170 4423 JMS I CTYPE 4439 016171 1047 TAD K2400 4440 016172 5335 JMP STFT0 4441 *6200 4442 / 4443 / LOCAL DIRECT REFERANCE 4444 / 4445 016200 4450 ASM07, JMS I SPSTAB /IS AFS ON PST 4446 016201 5212 JMP ASM07A /NO ... ROUTINE PLACES IT THERE 4447 016202 1514 TAD I PSTCPR /PST CODE WORD 4448 016203 7700 SMA CLA /IS SYMBOL ON PAGE 4449 016204 5212 JMP ASM07A /NO 4450 016205 4324 JMS NSCHK 4451 016206 1002 TAD VAL /AFS MST VALUE 4452 016207 0163 AND K177 /SAVE PAGE ADDRESS 4453 016210 1164 TAD K200 /ADD PAGE BIT 4454 016211 5653 JMP I AS00I4 / 4455 016212 1521 ASM07A, TAD I PTSPR /ACTUAL SYMBOL 4456 016213 3151 DCA S1 /TO 2 WORD LITERAL TABLE SEARCH LOCATION 4457 016214 4324 JMS NSCHK 4458 016215 7106 CLL RTL 4459 016216 1014 TAD K2 /RELOCATABLE SEARCH 4460 016217 5226 JMP ASM05C+3 4461 016220 4324 ASM09B, JMS NSCHK 4462 016221 1002 TAD VAL /DIRECT NON-PAGE 0 ABSOLUTE 4463 016222 7410 SKP 4464 / 4465 / 4466 / NON PAGE ZERO CONSTANT ADDRESS 4467 / 4468 016223 1521 ASM05C, TAD I PTSPR /ACTUAL BINARY CONSTANT 4469 016224 3151 DCA S1 /TO 2 WORD LITERAL TABLE SEARCH LOCATION 4470 016225 7201 CLA IAC 4471 016226 3150 DCA S0 /ABSOLUTE SEARCH 4472 016227 4663 JMS I SERALT /GET A PAGE ADDRESS 4473 016230 1045 TAD K400 /ADD INDIRECT BIT 4474 016231 3145 DCA TEMP6 4475 016232 5633 JMP I .+1 4476 016233 6051 ASME5A /EXIT FOR SKIP CHECK IF OP IS NOT JMP OR JMS 4477 / 4478 / DIRECT ABSOLUTE OR EXTERNAL 4479 / 4480 016234 4324 ASM09, JMS NSCHK 4481 016235 1002 TAD VAL /ABSOLUTE SYMBOL VALUE 4482 016236 0166 AND K7600 /IS SYMBOL ON PAGE ZERO 4483 016237 7640 SZA CLA 4484 016240 5220 JMP ASM09B /NO 4485 016241 4324 JMS NSCHK 4486 016242 1002 TAD VAL /ADD IN PAGE ZERO ADDRESS 4487 016243 5653 JMP I AS00I4 / 4488 016244 6054 AS00II, ASME5 4489 / 4490 / LITERAL FOR AN ADDRESS FIELD SYMBOL 4491 / 4492 016245 1521 ASM06, TAD I PTSPR /ACTUAL LITERAL 4493 016246 3151 DCA S1 /TO 2 WORD LITERAL TABLE SEARCH LOCATION 4494 016247 7201 CLA IAC 4495 016250 3150 DCA S0 /ABSOLUTE SEARCH 4496 016251 4663 JMS I SERALT /GET A PAGE ADDRESS 4497 016252 5653 JMP I AS00I4 /EXIT FOR SKIP CHECK 4498 016253 5605 AS00I4, ASM05+5 4499 016254 0000 OUTSK, 0 4500 016255 4456 JMS I WRITEP 4501 016256 4436 JMS I OUTBIN 4502 016257 3657 K7410 4503 016260 0000 0 4504 016261 2065 ISZ ILC 4505 016262 5654 JMP I OUTSK 4506 016263 3445 SERALT, SRALT 4507 / 4508 / INDIRECT ABSOLUTE 4509 / 4510 016264 1002 ASM12, TAD VAL /AFS MST USE WORD 4511 016265 0166 AND K7600 /IS IT ON PAGE ZERO 4512 016266 7640 SZA CLA 4513 016267 5276 JMP ASM12F /NO 4514 / 4515 / INDIRECT PAGE ZERO ABSOLUTE SYMBOL 4516 / 4517 016270 4324 JMS NSCHK 4518 016271 1002 TAD VAL /SAVE PAGE ZERO ADDRESS 4519 016272 1045 ASM12E, TAD K400 /ADD INDIRECT BIT 4520 016273 3145 DCA TEMP6 4521 016274 5644 JMP I AS00II 4522 / 4523 / INDIRECT NON PAGE ZERO ABSOLUTE SYMBOL 4524 / 4525 016275 5753 OPISUB 4526 016276 1675 ASM12F, TAD I .-1 4527 016277 3145 DCA TEMP6 4528 016300 1147 TAD BANK 4529 016301 5702 JMP I AS00I3 /EXIT FOR SKIP CHECK 4530 016302 6010 AS00I3, ASME3 4531 016303 5377 K5377, 5377 4532 / 4533 / LOCAL INDIRECT REFERANCE 4534 / 4535 016304 4450 ASM13, JMS I SPSTAB /IS AFS ON PST 4536 016305 5320 JMP ASM14 /NO ... MUST BE OFF PAGE 4537 016306 1514 TAD I PSTCPR /YES ... PST CODE WORD 4538 016307 7700 SMA CLA /IS AFS ON PAGE 4539 016310 5320 JMP ASM14 /NO 4540 016311 4324 JMS NSCHK 4541 016312 1002 TAD VAL /AFS VALUE FROM MST 4542 016313 0163 AND K177 /SAVE PAGE DISPLACEMENT 4543 016314 1027 TAD K600 /ADD PAGE AND INDIRECT BIT 4544 016315 3145 DCA TEMP6 /SAVE 4545 016316 5644 JMP I AS00II /GO OUTPUT INSTRUCTION 4546 / 4547 / OFF PAGE INDIRECT 4548 / 4549 016317 5753 OPISUB 4550 016320 1717 ASM14, TAD I .-1 4551 016321 3145 DCA TEMP6 4552 016322 7201 CLA IAC /SET BANK TO CURRENT 4553 016323 5702 JMP I AS00I3 /EXIT FOR SKIP CHECK 4554 016324 0000 NSCHK, 0 4555 016325 1517 TAD I PTCPR 4556 016326 0043 AND K2000 4557 016327 7640 SZA CLA 4558 016330 7001 IAC /ITS A # 4559 016331 5724 JMP I NSCHK 4560 4561 4562 /"IF" - CONDITIONAL ASSEMBLY PSUEDO-OP 4563 4564 016332 4427 PIF, JMS I GETSYM 4565 016333 5350 JMP PIFERR /NOTHING THERE 4566 016334 5337 JMP .+3 /SYM 4567 016335 7000 NOP /CON 4568 016336 5350 JMP PIFERR /LIT 4569 016337 1061 TAD CHR /CK FOR COMMA 4570 016340 1167 TAD M254 4571 016341 7640 SZA CLA 4572 016342 5575 IERROR /NOT A COMMA 4573 016343 2010 ISZ X0 /PREVENT FLAGGING COMMA 4574 016344 4427 JMS I GETSYM /YES, SET CTR TO SKIP N LINES 4575 016345 7000 NOP 4576 016346 7410 SKP 4577 016347 7410 SKP /I WANT A NUMBER 4578 016350 5575 PIFERR, IERROR 4579 016351 1001 TAD USE /IS SYMBOL DEFINED? 4580 016352 0045 AND K400 4581 016353 7640 SZA CLA 4582 016354 3150 DCA S0 /YES, CONTINUE NORMAL ASSMBLY 4583 016355 4446 JMS I SKIPL 4584 016356 1150 TAD S0 /GET THE NUM. 4585 016357 7041 CIA 4586 016360 3362 DCA IFCTR 4587 016361 5434 JMP I NULLP 4588 4589 016362 0000 IFCTR, 0 4590 4591 016363 0000 ILC4, 0 4592 016364 4436 JMS I OUTBIN 4593 016365 0065 ILC 4594 016366 0004 4 4595 016367 5763 JMP I ILC4 4596 4597 4598 /LAP & EAP PSUEDO-OPS 4599 4600 *6372 /MUST BE AT 6372 OR AT PAGE BOUND. +172 FOR K5376 TO WORK AS SKIP 4601 016372 4446 PLAP, JMS I SKIPL 4602 016373 7001 IAC /LEAVE AUTO-PAGING MODE 4603 016374 5376 K5376, 5376 /THIS REPLACES A SKIP.*******DO NOT MOVE******** 4604 016375 4446 PEAP, JMS I SKIPL 4605 016376 3102 DCA APMSW /ENTER AUTO-PAGING MODE 4606 016377 5434 JMP I NULLP 4607 4608 *6400 4609 016400 1411 LISTON, 1411 4610 016401 2324 2324 4611 016402 1116 1116 4612 016403 0700 0700 4613 016404 1716 1716 4614 016405 0000 0000 4615 016406 1011 HISP, 1011 4616 016407 0710 0710 4617 016410 0023 0023 4618 016411 2005 2005 4619 016412 0504 0504 4620 016413 0020 0020 4621 016414 2516 2516 4622 016415 0310 0310 4623 016416 7700 7700 4624 016417 0022 RDER, 0022 4625 016420 0501 0501 4626 016421 0405 0405 4627 016422 2277 2277 4628 016423 0000 0000 4629 / PART OF MAIN PROGRAM 4630 / RECOUNT ROUTINE 4631 /FOLLOWING CODE CLEANS UP PST CODES BEFORE RECOUNTING 4632 016424 7041 CLNPST, CIA 4633 016425 3257 DCA IOINIT /SET COUNTER 4634 016426 1173 TAD PSTBSE 4635 016427 7001 IAC 4636 016430 3114 DCA PSTCPR /CODE POINTER 4637 016431 1514 TAD I PSTCPR /LOOP 4638 016432 0242 AND K4003K /KILL OBAC DUE TO THIS SYM. 4639 016433 3514 DCA I PSTCPR 4640 016434 2114 ISZ PSTCPR /MOVE PTR 4641 016435 2114 ISZ PSTCPR 4642 016436 2257 ISZ IOINIT 4643 016437 5231 JMP .-6 /NOT DONE 4644 016440 5641 JMP I .+1 4645 016441 0446 RECRET 4646 016442 4003 K4003K, 4003 4647 / 4648 / 4649 /COMMON EXIT FOR DATA-GENERATING PSUEDO-OPS 4650 / 4651 016443 3060 POPEX, DCA BSSSW 4652 016444 1137 TAD LFS /CK FOR TAG 4653 016445 7650 SNA CLA 4654 016446 5433 JMP I DCIL1 /NO TAG 4655 016447 7040 CMA /DECREMENT PTSZE 4656 016450 1122 TAD PTSZE 4657 016451 3122 DCA PTSZE 4658 016452 4444 JMS I RECTI /YES RECOUNT THE PAGE 4659 016453 2122 ISZ PTSZE /RESTORE PTSZE 4660 016454 4656 JMS I ISZPTX /RESTORE PT PTRS 4661 016455 5433 JMP I DCIL1 /RETURN FOR NEXT LINE 4662 016456 6701 ISZPTX, ISZPT 4663 4664 4665 4666 /ROUTINE T0 INITIALIZE I/O DEVICES 4667 4668 C2=JMS I CTYPE 4669 4670 016457 0000 IOINIT, 0 4671 016460 6211 CDF 10 4672 016461 1366 TAD JL64 4673 016462 3054 DCA TYPE 4674 016463 5772 VN, JMP I VERSI 4675 016464 4424 IOI, JMS I CRLF 4676 016465 1367 TAD JHISP 4677 016466 3011 DCA X1 4678 016467 1373 TAD M5 4679 016470 4332 JMS QUERY 4680 016471 5277 JMP RGO 4681 016472 1371 TAD JRDER 4682 016473 3011 DCA X1 4683 016474 1373 TAD M5 4684 016475 4332 JMS QUERY 4685 016476 5277 JMP RGO 4686 016477 4345 RGO, JMS KSR 4687 016500 1362 TAD JHSR 4688 016501 1363 TAD JASR 4689 016502 3764 DCA I INDEVP 4690 016503 4424 JMS I CRLF 4691 016504 1367 TAD JHISP 4692 016505 3011 DCA X1 4693 016506 1374 TAD M11 4694 016507 4332 JMS QUERY 4695 016510 7000 NOP 4696 016511 4345 JMS KSR 4697 016512 5316 JMP .+4 4698 016513 1054 TAD TYPE 4699 016514 3042 DCA PUNCH 4700 016515 5330 JMP IOX 4701 016516 1365 TAD JL63 4702 016517 3042 DCA PUNCH 4703 016520 4424 JMS I CRLF 4704 016521 1370 TAD JLIST 4705 016522 3011 DCA X1 4706 016523 1375 TAD M17 4707 016524 4332 JMS QUERY 4708 016525 7000 NOP 4709 016526 4345 JMS KSR 4710 016527 7001 IAC /1 = PUNCH, 0 = TYPE 4711 016530 3332 IOX, DCA LSTDEV 4712 016531 5657 JMP I IOINIT 4713 4714 4715 4716 016532 0000 QUERY, 0 4717 016533 3125 DCA JCOUNT 4718 016534 1411 TAD I X1 4719 016535 4423 C2 4720 016536 6031 KSF 4721 016537 7410 SKP 4722 016540 5732 JMP I QUERY 4723 016541 2125 ISZ JCOUNT 4724 016542 5334 JMP .-6 4725 016543 2332 ISZ QUERY 4726 016544 5732 JMP I QUERY 4727 016545 0000 KSR, 0 4728 016546 6031 KSF 4729 016547 5346 JMP .-1 4730 016550 6036 KRB 4731 016551 3123 DCA TEM1 4732 016552 1123 TAD TEM1 4733 016553 4454 JMS I TYPE 4734 016554 1123 TAD TEM1 4735 016555 1361 TAD M331 4736 016556 7640 SZA CLA /0="YES" 4737 016557 2345 ISZ KSR /NOT "YES" 4738 016560 5745 JMP I KSR 4739 LSTDEV=QUERY 4740 016561 7447 M331, -331 4741 016562 7751 JHSR, HSR-ASR 4742 016563 6637 JASR, ASR 4743 016564 4702 INDEVP, INDEV 4744 016565 3164 JL63, L63 4745 016566 4772 JL64, L64 4746 JCOUNT=TEM3 4747 016567 6405 JHISP, HISP-1 4748 016570 6377 JLIST, LISTON-1 4749 016571 6416 JRDER, RDER-1 4750 016572 7000 VERSI, VERNUM 4751 016573 7773 M5, -5 4752 016574 7767 M11, -11 4753 016575 7761 M17, -17 4754 4755 *6600 4756 // 4757 //PART OF MAIN PROGRAM MOVED FOR V03 4758 // 4759 /ROUTINE TO RESTORE BANK AND LSTSKP FOR PASS2 4760 /WILL NOT FIT INTO ASM02 WHERE IT BELONGS 4761 4762 016600 0000 GETBAS, 0 4763 016601 1606 TAD I BNKSAP 4764 016602 3147 DCA BANK 4765 016603 1607 TAD I SKPSAP 4766 016604 3072 DCA LSTSKP 4767 016605 5600 JMP I GETBAS 4768 4769 016606 5751 BNKSAP, BNKSAV 4770 016607 5752 SKPSAP, SKPSAV 4771 4772 /INPUT ROUTINES 4773 4774 016610 0000 HSR, 0 4775 016611 3255 DCA TEM10 /CLR TIMER 4776 016612 6014 RFC 4777 016613 6011 HSR1, RSF 4778 016614 5217 JMP HSR2 4779 016615 6012 RRB 4780 016616 5610 JMP I HSR 4781 016617 3237 HSR2, DCA ASR /WASTE SOME TIME 4782 016620 2255 ISZ TEM10 /CK TIMER 4783 016621 5213 JMP HSR1 /KEEP TRYING 4784 016622 1013 REXIT, TAD X3 /CK FOR EMPTY BUFFER 4785 016623 1257 TAD BUFBEG 4786 016624 7640 SZA CLA 4787 016625 5231 JMP .+4 /NO, WE HAVE A PARTIAL BUFFER 4788 016626 6211 CDF 10 4789 016627 5630 JMP I .+1 /YES TAPE HAS ENDED WITH NO END STATMT 4790 016630 2701 ERRE 4791 016631 3413 DCA I X3 /FILL END OF BUFFER WITH 0'S 4792 016632 1013 TAD X3 4793 016633 1261 TAD BUFEN 4794 016634 7640 SZA CLA 4795 016635 5231 JMP .-4 4796 016636 5660 JMP I RG3P /NOW RET. FOR PROCESSING 4797 4798 016637 0000 ASR, 0 4799 016640 1254 TAD M50 4800 016641 3256 DCA TEM11 4801 016642 3255 DCA TEM10 4802 016643 6031 ASR1, KSF 4803 016644 5247 JMP ASR2 4804 016645 6036 KRB 4805 016646 5637 JMP I ASR 4806 016647 2255 ASR2, ISZ TEM10 4807 016650 5243 JMP ASR1 4808 016651 2256 ISZ TEM11 4809 016652 5242 JMP ASR1-1 4810 016653 5222 JMP REXIT 4811 4812 4813 016654 7730 M50, -50 4814 016655 0000 TEM10, 0 4815 016656 0000 TEM11, 0 4816 016657 6701 BUFBEG, 1-DATA 4817 016660 4677 RG3P, RG3 4818 016661 6133 BUFEN, 1-LINBUF 4819 / 4820 / ENTRY PSEUDO OPERATION 4821 / 4822 016662 4427 PENTRY, JMS I GETSYM /GET NEXT INPUT ITEM 4823 016663 7410 SKP /NOTHING THERE 4824 016664 5267 JMP .+3 /SYMBOL 4825 016665 7000 NOP /CONSTANT 4826 016666 5575 IERROR /LITERAL 4827 016667 4446 JMS I SKIPL 4828 016670 4451 JMS I SREST /PLACE SYMBOL ON EXTERNAL SYMBOL TABLE 4829 016671 7200 CLA 4830 016672 1001 TAD USE /AFS MST USE WORD 4831 016673 0300 AND K403 /SAVE SYMBOL LENGTH (& DEF. BIT FOR PASS 2) 4832 016674 1277 TAD K2220 /ADD IN PROPER BITS 4833 016675 3001 DCA USE /FOR NEW MST USE WORD 4834 016676 5434 JMP I NULLP /EXIT FOR NEXT LINE 4835 016677 2220 K2220, 2220 4836 016700 0403 K403, 403 4837 / 4838 / 4839 / 4840 /INCREMENT PAGE TABLE POINTERS 4841 / 4842 016701 0000 ISZPT, 0 4843 016702 2117 ISZ PTCPR /INCREMENT PAGE TABLE CODE POINTER BY 2 4844 016703 2117 ISZ PTCPR 4845 016704 2121 ISZ PTSPR /INCREMENT PAGE TABLE SYMBOL POINTER BY 2 4846 016705 2121 ISZ PTSPR 4847 016706 2120 ISZ PTOPR /INCREMENT PT OP CODE POINTER 4848 016707 5701 JMP I ISZPT 4849 / 4850 /CK CONSTANT FOR BLOCK PSEUDO-OP 4851 / 4852 016710 1102 PBSS4, TAD APMSW /AUTOMATIC PAGING? 4853 016711 7650 SNA CLA 4854 016712 1014 TAD K2 /YES, 176 IS MAXIMUM 4855 016713 1166 TAD M200 /NO, 200 IS MAX 4856 016714 1150 TAD S0 /CHECK CONSTANT 4857 016715 7740 SMA SZA CLA 4858 016716 5575 IERROR /TOO BIG 4859 016717 1150 TAD S0 /IS CONSTANT 0? 4860 016720 7450 SNA 4861 016721 5723 JMP I PBSS2J /YES, EQUIVALENCE TAG 4862 016722 5724 JMP I PBSS5I /NO, CREATE BLOCK OF THIS SIZE 4863 016723 2435 PBSS2J, PBSS2 4864 016724 2610 PBSS5I, PBSS5 4865 4866 / 4867 /PATCH TO DELETE DEFINED BIT IN PST FOR A TAG 4868 /EQUIVALENCED TO A LINE THAT OVERFLOWED THE PAGE 4869 / 4870 016725 1101 EQVFIX, TAD EQVBIT /WAS THERE SUCH A TAG? 4871 016726 7650 SNA CLA 4872 016727 5736 JMP I L55CP /NO 4873 016730 1501 TAD I EQVBIT /YES, GET PST CODE FOR THIS TAG 4874 016731 1041 TAD K4000 /CANCEL DEFINED BIT 4875 016732 3501 DCA I EQVBIT 4876 016733 1164 TAD K200 /SET EQUIVALENCE BIT FOR NEXT LINE 4877 016734 3101 DCA EQVBIT /WHEN NEXT PAGE GETS GOING 4878 016735 5736 JMP I L55CP /RETURN TO ASSEMBLE THE PAGE WE HAVE 4879 016736 0402 L55CP, L55C 4880 4881 4882 / 4883 /CK FOR TYPE OF SYMBOL 4884 /CALL SEQ: JMS WHATYP 4885 / RET. IF USER SYMBOL 4886 / RET. IF OP SYMBOL 4887 / 4888 016737 0000 WHATYP, 0 4889 016740 1001 TAD USE 4890 016741 0031 AND K3000 4891 016742 1052 TAD M3000 4892 016743 7650 SNA CLA 4893 016744 2337 ISZ WHATYP 4894 016745 5737 JMP I WHATYP 4895 4896 4897 / 4898 /EXECUTE ISZ GTSYM (MOVE RETURN POINTER) ONLY IF IFCTR .GE. 0 4899 /OTHERWISE MOVE LINE PTR TO NEXT SLASH, SEMI-COLON OR CAR.RET. 4900 /& ISZ IFCTR & TREAT AS A NULL LINE. 4901 / 4902 016746 0000 CKIF, 0 4903 016747 1775 TAD I IFCT /IS CONDITIONAL NON-ASM IN EFFECT? 4904 016750 7710 SPA CLA 4905 016751 5354 JMP .+3 /YES: DO NOT ASMBL LINE 4906 016752 2427 ISZ I GETSYM /NO, MOVE RETRN PTR & CONT. AS USUAL 4907 016753 5746 JMP I CKIF 4908 016754 2775 ISZ I IFCT /COUNT IGNORED LINE 4909 016755 7000 NOP 4910 016756 1061 TAD CHR /MOVE LINE PTR TO END OF LINE 4911 016757 7450 CKIF2, SNA 4912 016760 5371 JMP CKIF3 /FOUND A CR 4913 016761 1373 TAD M257 4914 016762 7450 SNA 4915 016763 5371 JMP CKIF3 /SLASH 4916 016764 1374 TAD M14 4917 016765 7650 SNA CLA 4918 016766 5371 JMP CKIF3 /SEMI-COLON 4919 016767 4426 JMS I GETCHR /TRY NEXT 4920 016770 5357 JMP CKIF2 4921 016771 5772 CKIF3, JMP I .+1 4922 016772 0751 ITM15 4923 016773 7521 M257, -257 4924 016774 7764 M14, -14 4925 016775 6362 IFCT, IFCTR 4926 *6776 4927 4928 /PAGE SYMBOL TABLE (200 WORDS) 4929 /DOUBLE WORD ENTRIES 4930 /REBUILT FOR EACH CORE PAGE OF CODE 4931 /EVERY SYMBOL DEFINED OR REFERENCED ON 4932 /GIVEN PAGE IS ENTERED 4933 /TYPICAL ENTRY*: WD1=SYMBOL ID 4934 / WD2=CODE BITS 4935 /SYMBOL ID=ADDRESS OF SYMBOL ENTRY IN MAIN SYM. TAB 4936 /CODE: BIT0=1 IF SYM. DEF. ON CUR. PAGE 4937 / BIT11=1 IF SYM REFERENCED NORMALLY BY A MR1 ON THE PG. 4938 / BIT10=1 IF SYM. REF'D. WITH A # 4939 / BITS 1-9 USED FOR COUNTING AMOUNT OF OBACTR 4940 / WHICH IS DUE TO THIS SYMBOL 4941 /SYMBOLS ARE ENTERED ON PST IN ORDER OF APPEARENCE 4942 /IN SOURCE 4943 /NO MORE THAN 64 (DEC) SYMBOLS MAY BE REF'D. 4944 /ON ANY PAGE. 4945 /NOTE: THE SIZE OF THIS TABLE SHOULD NOT BE 4946 /INCREASED UNLESS LFS TABLE IS ALSO INCREASED. 4947 4948 4949 *7176 4950 4951 /PAGE TABLE (402 WORDS) 4952 /DOUBLE WORD ENTRIES 4953 /ONE ENTRY FOR EACH INSTRUCTION TO BE ASSEMBLED 4954 /ROOM FOR 1 EXTRA ENTRY TO COVER PAGE OVERFLOW 4955 /A NEW TABLE FOR EACH PAGE OF CODE 4956 /TYPICAL ENTRY: WD1=CODE BITS 4957 / WD2=SYMBOL WORD 4958 /CODE: BIT1=1 IF # REF 4959 / BIT2=1 IF CDF TO CUR BANK 4960 / BIT3=1 IF INDIRECT 4961 / BIT4=1 IF BLOCK 0 (FOR EQUIVALENCED TAGS) 4962 / BIT5=1 IF SPECIAL CALL CONST 4963 / BIT6=1 IF SKIP INST. 4964 / BIT7=1 IF AFS IS CONST 4965 / BIT8=1 IF PARAMETER 4966 / BIT9=1 IF OPR OR IOT INST. 4967 / BIT10=1 IF AFS IS LITERAL 4968 / BIT11=1 IF LFS OCCURS 4969 / BIT0 UNUSED 4970 /THE SYMBOL WORD=0 IF CODE BIT9=1 4971 / =THE ACTUAL CONST OR LITERAL IF BITS2,5,7 OR 10=1 4972 / =THE SYMBOL ID (MST ENTRY ADDR.) FOR AN ADDR. PARAMETER 4973 / OR FOR THE AFS OF AN MRI 4974 4975 4976 / 4977 /TYPE VERSION NUMBER 4978 /(THIS IS ONCE ONLY CODE) 4979 /(OVERWRITTEN BY P.S.T.) 4980 / 4981 *7000 4982 / 4983 017000 4424 VERNUM, JMS I CRLF 4984 017001 1212 TAD JVERS 4985 017002 3011 DCA X1 4986 017003 1214 TAD M26 4987 017004 4613 JMS I MTYPE 4988 017005 7000 NOP 4989 017006 1216 TAD K7000X 4990 017007 3615 DCA I VNOP 4991 017010 5611 JMP I .+1 4992 017011 6464 IOI 4993 017012 7016 JVERS, VERSN-1 4994 017013 6532 MTYPE, QUERY 4995 017014 7763 M26, -15 4996 017015 6463 VNOP, VN 4997 017016 7000 K7000X, NOP 4998 017017 2004 VERSN, 2004 /PDP-8 SABR DEC-08-A2C2-V# 4999 017020 2055 2055 5000 017021 7040 7040 5001 017022 2301 2301 5002 017023 0222 0222 5003 017024 4004 4004 5004 017025 0503 0503 5005 017026 5560 5560 5006 017027 7055 7055 5007 017030 0162 0162 5008 017031 0462 0462 5009 017032 5561 5561 /- VERSION # (1ST DIGIT) 5010 017033 7001 7001 /2ND DIGIT AND PATCH LEVEL 5011 5012 5013 5014 /SABR BANK 1 SECTION 5015 5016 /TABLES 5017 5018 FIELD 0 5019 5020 5021 5022 *0 5023 000000 0000 EQUTB, 0 /EQUIVALENCE TABLE 5024 /100 WORDS 5025 /TABLE IS REINITIALIZED BEFORE EACH PAGE BEGINS 5026 /COLLECTION, IF NO EQUIV. IS LEFT FROM PREVIOUS PAGE 5027 /MULTIPLE WORD ENTRIES 5028 /ONE ENTRY IS MADE FOR 5029 /EACH LOC. TAG WHICH HAS 5030 /EQUIVALENTS 5031 /1ST WORD OF EACH ENTRY 5032 /CONTAINS NO. OF OTHER WORDS 5033 /IN THE ENTRY 5034 /OTHER WORDS ARE SYMBOL ID'S 5035 /(MST ADDRESSES) OF SYMBOLS 5036 /EQUIVALENT TO THE PARTICULAR 5037 /LOCATION TAG 5038 5039 5040 *100 5041 5042 /BSEEST, 0 /EXTERNAL SYMBOL TABLE 5043 /100 WORDS 5044 /SINGLE WORD ENTRIES 5045 /CONSISTING OF THE SYMBOL ID (MST ADDRESS) 5046 /EACH EXT. SYM. IS ENTRED IN 5047 /THE TABLE WHEN IT FIRST 5048 /OCCURS IN THE SOURCE AND 5049 /ASSIGNED A LOCAL EXT. NUMBER 5050 /ACCORDING TO ITS PLACE IN THE 5051 /TABLE. 5052 5053 5054 *200 5055 5056 /PTOPTB, 0 /PAGE OP CODE TABLE 5057 /200 WORDS 5058 /SINGLE WORD ENTRIES 5059 /ONE FOR EACH ENTRY IN PAGE TABLE 5060 /ENTRY=ACTUAL OP CODE FOR 5061 /ALL MRI, OPR OR IOT'S 5062 /OR 0 FOR ALL PARAMETERS 5063 /NEW TABLE FOR EACH PAGE OF CODE 5064 /NOTE: THIS TABLE MAY OVERFLOW BY 1 WORD DURING COLLECTION 5065 /OVERFLOW CAUSED BY PUTTING INFO ON TABLE BEFORE CK FOR OVERFLOW 5066 /NO HARM IF ASSEM. PHASE LIT. TAB FOLLOWS 5067 5068 000200 6213 CDF CIF 10 /CODE FOR START AT 200 5069 000201 5602 JMP I .+1 5070 000202 0200 START 5071 5072 *400 5073 5074 /LITBSE, 0 /ASSEMBLY PHASE LITERAL TABLE 5075 /200 WORDS 5076 /DOUBLE WORD ENTRIES 5077 /MUST BE SEPARATE FROM COLL. 5078 /PHASE LIT. TAB. BECAUSE BOTH 5079 /GOING AT ONCE IN PASS 2. 5080 /THIS TABLE CONTAINS NOT 5081 /ONLY LITERALS BUT ALSO 5082 /OFF PAGE POINTERS 5083 /1ST WORD OF ENTRY = 1 OR 2 OR 6 5084 /1 MEANS LITERAL & 5085 /2ND WORD CONTAINS ACTUAL VALUE 5086 /2 MEANS OFF PAGE SYMBOL PTR 5087 /& 2ND WORD CONTAINS SYMBOL ID. 5088 /6 MEANS OFF PAGE SYM. PTR 5089 /WHERE SYMBOL REFERENCED BY A # 5090 /2ND WORD AS FOR 2 5091 /TABLE BUILT ANEW FOR EACH 5092 /PAGE OF CODE. 5093 5094 5095 *600 5096 5097 /LFSBSE, 0 /LOC FIELD SYMBOL TABLE 5098 /100 WORDS 5099 /SINGLE WORD ENTRIES 5100 /EACH=SYMBOL ID (MST ADDRESS) 5101 /OF THE GIVEN LFS 5102 /LFS'S ARE ENTERED IN ORDER 5103 /OF THEIR APPEARENCE IN SOURCE 5104 /TABLE REBUILT FOR EACH PAGE OF CODE 5105 /NOTE: THIS TABLE MUST BE AT LEAST AS LONG 5106 /AS THE PST TO PREVENT LFS OVERFLOW 5107 5108 5109 5110 *700 5111 5112 000700 0000 PEBSE, 0 /PAGE ESCAPE PUSH DOWN LIST 5113 /40 WORDS 5114 /SINGLE WORD ENTRIES 5115 /EACH ENTRY IS 0,2, OR 4 5116 /BEING THE VALUE OF THE 5117 /PAGE ESCAPE (0,2,OR 4 WORDS) 5118 /OF EACH PAGE ASSEMBLED 5119 /THESE NOS. ARE SAVED DURING 5120 /PASS 1 & USED DURING 5121 /PASS 2 5122 *740 5123 /SORT LISTS 5124 5125 /SORT LIST FOR INITIAL CHAR. OF LITERAL 5126 000740 0242 SL3, 242 /QUOTE 5127 000741 0255 255 /MINUS 5128 000742 0304 304 /D 5129 000743 0313 313 /K 5130 000744 7777 -1 /SORT LIST MUST BE FOLLOWED BY A NEGATIVE 5131 5132 5133 5134 /BRANCH LISTS 5135 000745 4625 BL6, RLN15 5136 000746 4607 RLN2 5137 000747 4607 RLN2 5138 000750 4614 RLN3 5139 000751 4614 RLN3 5140 5141 /SORT LIST FOR BEGINNING OF INPUT ITEM 5142 000752 0255 SL2, 255 /MINUS 5143 000753 0250 250 /LEFT PARIN 5144 000754 0242 242 /QUOTE 5145 000755 0273 SL6, 273 /SEMI-COLON 5146 000756 0257 257 /SLASH 5147 000757 0240 SL1, 240 /SPACE 5148 000760 0211 211 /TAB 5149 000761 0000 000 /CR 5150 000762 7777 -1 /SORT LIST MUST BE FOLLOWED BY A NEGATIVE 5151 /BRANCH LIST FOR BEGINNING OF INPUT ITEM 5152 000763 0607 BL2, ITM4 /NEGATIVE 5153 000764 0732 ITM8 /LITERAL 5154 000765 0722 ITM7 /ALPHA CONSTANT 5155 000766 0751 ITM15 /NULL ITEM 5156 000767 0751 ITM15 /NULL ITEM 5157 000770 0610 ITM2 /IGNORE SPACE 5158 000771 0610 ITM2 /IGNORE TAB 5159 000772 0751 ITM15 /NULL ITEM 5160 /BRANCH LIST FOR INITIAL CHAR. OF LITERL 5161 000773 0722 BL3, ITM7 /GET ASCII VALUE FOR LITERAL 5162 000774 0742 ITM10 /SET NEG. SW. 5163 000775 0744 ITM11 /SET MODE TO DECIMAL 5164 000776 0745 ITM12 /SET MODE TO OCTAL 5165 5166 5167 5168 5169 5170 5171 *1000 5172 5173 /LTBSE, 0 /COLLECTION PHASE LITERAL TABLE 5174 /100 WORDS 5175 /SINGLE WORD ENTRIES 5176 /CONTAINING ACTUAL VALUES 5177 /TABLE CONTAINS NOT ONLY 5178 /LITERALS BUT ALSO 5179 /POINTERS TO CONSTANT 5180 /AND ABSOLUTE ADDRESSES. 5181 /TABLE BUILT ANEW FOR 5182 /EACH PAGE OF CODE. 5183 5184 /INPUT DATA BUFFER 5185 /546 (OCTAL) WORDS 5186 /ALL DATA CHARACTERS READ DIRECTLY INTO THIS BUFFER 5187 /1 CHAR. PER WORD 5188 /THE ACTUAL SIZE OF THE BUFFER IS ARBITRARY. 5189 5190 *1100 5191 5192 001100 0000 DATA, 0 5193 5194 5195 5196 /LINE BUFFER (73 WORDS) 5197 /CONTAINS ASCII CHARACTERS, 1 PER WORD 5198 /NULLS & RUBOUTS DONT MAKE IT 5199 /END OF LINE MARKED BY A 0000 5200 /CR,LF,FF DON'T GO INTO THE BUFFER 5201 5202 /BUFFER IS LAID OUT AS FOLLOWS: 5203 5204 *1646 5205 001646 0000 LINBUF, 0 /110(OCTAL) WORDS FOR LINE CHARACTERS 5206 5207 *1756 5208 /LINEND, 0 /1 EXTRA WORD TO PREVENT OVERFLOW 5209 /(GETS THE 0 WHEN LINE IS TOO LONG) 5210 *1757 5211 001757 0215 SL7, 215 5212 001760 0214 214 5213 001761 0212 212 5214 001762 0240 240 5215 001763 0211 211 /SORT LIST MUST BE FOLLOWED BY A NEGATIVE 5216 001764 7777 -1 5217 001765 1657 BL1, PTEXT /SPACE 5218 001766 1657 PTEXT /TAB 5219 001767 1676 TEXERR /000 5220 001770 2207 BL7, L72S 5221 001771 2211 L72X 5222 001772 2202 L72+2 5223 001773 2202 L72+2 5224 001774 2211 L72X 5225 5226 5227 5228 /MAIN SYMBOL TABLE 5229 5230 *2000 5231 5232 5233 /ENTRIES ARE COMPOSED OF THE FOLLOWING: 5234 / FIRST A 1 WORD HEADER CODE 5235 / THEN THE SYMBOL ITSELF IN PACKED 6BIT ASCII (1-3 WORDS) 5236 / FINALLY THE 1 WORD BINARY VALUE OF THE SYMBOL 5237 5238 /THE HEADER CODE IS LAID OUT AS FOLLOWS: 5239 /(A) FOR OP CODE SYMBOLS: 5240 / BIT0=1 AFTER THE SYMBOL HAS BEEN PRINTED BY PRSYM 5241 / BITS1&2=3 (THESE ARE THE SYMBOL TYPE BITS) 5242 / BIT3=1 FOR MEMORY REFERENCE INSTRUCTIONS 5243 / BITS4&5=THE MICRO-GROUP FOR OPR INSTRUCTIONS (0 FOR MRI AND IOT INSTS.) 5244 / (NOTE: MICRO-GROUP IS SET TO 0 FOR CLA) 5245 / BIT6=1 IF THE SYMBOL IS A PSUEDO-OP 5246 / BIT7=1 IF THE INST. IS A SKIP TYPE INST. 5247 / BIT8=1 5248 / BIT9=0 5249 / BITS10&11=THE NUMBER OF PACKED ASCII SYMBOL WORDS IN THE ENTRY 5250 5251 /(B) FOR OTHER SYMBOL TYPES: 5252 / BIT0 AS ABOVE 5253 / BITS1&2=0 FOR ABSOLUTE AND COMMON SYMBOLS 5254 / =1 FOR RELOCATABLE SYMBOLS 5255 / =2 FOR EXTERNAL SYMBOLS 5256 / BIT3=1 AFTER THE SYMBOL HAS BEEN DEFINED 5257 / BIT4=1 FOR ENTRY SYMBOLS 5258 / BIT5=1 IF THE SYMBOL IS EVER REFERENCED BY A # 5259 / BIT6=1 IF THE SYMBOL IS IN COMMON 5260 / BIT7=1 IF THE SYMBOL IS A DUMMY SYMBOL 5261 / BITS8-11 AS ABOVE 5262 /MST=. 5263 002000 3053 3053 /ABSYM 5264 002001 0102 0102 5265 002002 2331 2331 5266 002003 1500 1500 5267 002004 3600 PABSYM 5268 002005 3052 3052 /ARG 5269 002006 0122 0122 5270 002007 0700 0700 5271 002010 1464 PARG 5272 002011 3412 3412 /AND 5273 002012 0116 0116 5274 002013 0400 0400 5275 002014 0000 AND 0 5276 002015 3053 3053 /BLOCK 5277 002016 0214 0214 5278 002017 1703 1703 5279 002020 1300 1300 5280 002021 2600 PBSS 5281 002022 3052 3052 /CALL 5282 002023 0301 0301 5283 002024 1414 1414 5284 002025 1400 PCALL 5285 002026 3053 3053 /COMMN 5286 002027 0317 0317 5287 002030 1515 1515 5288 002031 1600 1600 5289 002032 1600 PCOMMN 5290 002033 3112 3112 /CIA 5291 002034 0311 0311 5292 002035 0100 0100 5293 002036 7041 CIA 5294 002037 3012 3012 /CLA 5295 002040 0314 0314 5296 002041 0100 0100 5297 002042 7200 CLA 5298 002043 3112 3112 /CLL 5299 002044 0314 0314 5300 002045 1400 1400 5301 002046 7100 CLL 5302 002047 3112 3112 /CMA 5303 002050 0315 0315 5304 002051 0100 0100 5305 002052 7040 CMA 5306 002053 3112 3112 /CML 5307 002054 0315 0315 5308 002055 1400 1400 5309 002056 7020 CML 5310 002057 3053 3053 /DECIM 5311 002060 0405 0405 5312 002061 0311 0311 5313 002062 1500 1500 5314 002063 4735 PDEC 5315 002064 3053 3053 /DUMMY 5316 002065 0425 0425 5317 002066 1515 1515 5318 002067 3100 3100 5319 002070 5534 PDUMMY 5320 002071 3412 3412 /DCA 5321 002072 0403 0403 5322 002073 0100 0100 5323 002074 3000 DCA 0 5324 002075 3052 3052 /EAP 5325 002076 0501 0501 5326 002077 2000 2000 5327 002100 6375 PEAP 5328 002101 3052 3052 /END 5329 002102 0516 0516 5330 002103 0400 0400 5331 002104 0534 PEND 5332 002105 3053 3053 /ENTRY 5333 002106 0516 0516 5334 002107 2422 2422 5335 002110 3100 3100 5336 002111 6662 PENTRY 5337 002112 3053 3053 /FORTR 5338 002113 0617 0617 5339 002114 2224 2224 5340 002115 2200 2200 5341 002116 3357 PFORT 5342 002117 3212 3212 /HLT 5343 002120 1014 1014 5344 002121 2400 2400 5345 002122 7402 HLT 5346 002123 3051 3051 /IF 5347 002124 1106 1106 5348 002125 6332 PIF 5349 002126 3053 3053 /CPAGE 5350 002127 0320 0320 5351 002130 0107 0107 5352 002131 0500 0500 5353 002132 2633 PIFF 5354 002133 3432 3432 /ISZ 5355 002134 1123 1123 5356 002135 3200 3200 5357 002136 2000 ISZ 0 5358 002137 3412 3412 /INC (NON-SKIP ISZ) 5359 002140 1116 1116 5360 002141 0300 0300 5361 002142 2000 ISZ 0 5362 002143 3112 3112 /IAC 5363 002144 1101 1101 5364 002145 0300 0300 5365 002146 7001 IAC 5366 002147 3012 3012 /IOF 5367 002150 1117 1117 5368 002151 0600 0600 5369 002152 6002 IOF 5370 002153 3012 3012 /ION 5371 002154 1117 1117 5372 002155 1600 1600 5373 002156 6001 ION 5374 002157 3412 3412 /JMP 5375 002160 1215 1215 5376 002161 2000 2000 5377 002162 5000 JMP 0 5378 002163 3412 3412 /JMS 5379 002164 1215 1215 5380 002165 2300 2300 5381 002166 4000 JMS 0 5382 002167 3012 3012 /KRB 5383 002170 1322 1322 5384 002171 0200 0200 5385 002172 6036 KRB 5386 002173 3032 3032 /KSF 5387 002174 1323 1323 5388 002175 0600 0600 5389 002176 6031 KSF 5390 002177 3052 3052 /LAP 5391 002200 1401 1401 5392 002201 2000 2000 5393 002202 6372 PLAP 5394 002203 3112 3112 /NOP 5395 002204 1617 1617 5396 002205 2000 2000 5397 002206 7000 NOP 5398 002207 3053 3053 /OCTAL 5399 002210 1703 1703 5400 002211 2401 2401 5401 002212 1400 1400 5402 002213 4740 POCT 5403 002214 3053 3053 /OPDEF 5404 002215 1720 1720 5405 002216 0405 0405 5406 002217 0600 0600 5407 002220 3605 OPDEX 5408 002221 3212 3212 /OSR 5409 002222 1723 1723 5410 002223 2200 2200 5411 002224 7404 OSR 5412 002225 3052 3052 /PAGE 5413 002226 2001 2001 5414 002227 0705 0705 5415 002230 0334 PPAGE 5416 002231 3053 3053 /PAUSE 5417 002232 2001 2001 5418 002233 2523 2523 5419 002234 0500 0500 5420 002235 4316 PPAUSE 5421 002236 3012 3012 /PLS 5422 002237 2014 2014 5423 002240 2300 2300 5424 002241 6026 PLS 5425 002242 3032 3032 /PSF 5426 002243 2023 2023 5427 002244 0600 0600 5428 002245 6021 PSF 5429 002246 3053 3053 /REORG 5430 002247 2205 2205 5431 002250 1722 1722 5432 002251 0700 0700 5433 002252 0345 PRORG 5434 002253 3053 3053 /RETRN 5435 002254 2205 2205 5436 002255 2422 2422 5437 002256 1600 1600 5438 002257 4257 PRTN 5439 002260 3112 3112 /RAL 5440 002261 2201 2201 5441 002262 1400 1400 5442 002263 7004 RAL 5443 002264 3112 3112 /RAR 5444 002265 2201 2201 5445 002266 2200 2200 5446 002267 7010 RAR 5447 002270 3012 3012 /RFC 5448 002271 2206 2206 5449 002272 0300 0300 5450 002273 6014 RFC 5451 002274 3012 3012 /RRB 5452 002275 2222 2222 5453 002276 0200 0200 5454 002277 6012 RRB 5455 002300 3032 3032 /RSF 5456 002301 2223 2223 5457 002302 0600 0600 5458 002303 6011 RSF 5459 002304 3112 3112 /RTL 5460 002305 2224 2224 5461 002306 1400 1400 5462 002307 7006 RTL 5463 002310 3112 3112 /RTR 5464 002311 2224 2224 5465 002312 2200 2200 5466 002313 7012 RTR 5467 002314 3232 3232 /SKP 5468 002315 2313 2313 5469 002316 2000 2000 5470 002317 7410 SKP 5471 002320 3053 3053 /SKPDF 5472 002321 2313 2313 5473 002322 2004 2004 5474 002323 0600 0600 5475 002324 3604 SKPDEX 5476 002325 3232 3232 /SMA 5477 002326 2315 2315 5478 002327 0100 0100 5479 002330 7500 SMA 5480 002331 3232 3232 /SNA 5481 002332 2316 2316 5482 002333 0100 0100 5483 002334 7450 SNA 5484 002335 3232 3232 /SNL 5485 002336 2316 2316 5486 002337 1400 1400 5487 002340 7420 SNL 5488 002341 3232 3232 /SPA 5489 002342 2320 2320 5490 002343 0100 0100 5491 002344 7510 SPA 5492 002345 3112 3112 /STA 5493 002346 2324 2324 5494 002347 0100 0100 5495 002350 7240 STA 5496 002351 3112 3112 /STL 5497 002352 2324 2324 5498 002353 1400 1400 5499 002354 7120 STL 5500 002355 3232 3232 /SZA 5501 002356 2332 2332 5502 002357 0100 0100 5503 002360 7440 SZA 5504 002361 3232 3232 /SZL 5505 002362 2332 2332 5506 002363 1400 1400 5507 002364 7430 SZL 5508 002365 3232 3232 /SPC=SPA+CLA (USED BY COMPILER) 5509 002366 2320 2320 5510 002367 0300 0300 5511 002370 7710 SPA CLA 5512 002371 3412 3412 /TAD 5513 002372 2401 2401 5514 002373 0400 0400 5515 002374 1000 TAD 0 5516 002375 3052 3052 /TEXT 5517 002376 2405 2405 5518 002377 3024 3024 5519 002400 1657 PTEXT 5520 002401 3012 3012 /TLS 5521 002402 2414 2414 5522 002403 2300 2300 5523 002404 6046 TLS 5524 002405 3032 3032 /TSF 5525 002406 2423 2423 5526 002407 0600 0600 5527 002410 6041 TSF 5528 5529 5530 ACH=20 5531 ACM=21 5532 ACL=22 5533 5534 002411 0452 0452 /ACH 5535 002412 0103 0103 5536 002413 1000 1000 5537 002414 0020 ACH 5538 002415 0452 0452 /ACM 5539 002416 0103 0103 5540 002417 1500 1500 5541 002420 0021 ACM 5542 002421 0452 0452 /ACL 5543 002422 0103 0103 5544 002423 1400 1400 5545 002424 0022 ACL 5546 5547 002425 0451 II, 0451 /I 5548 002426 1100 1100 5549 002427 0400 0400 5550 5551 STTP=. 5552 CORE1=7600 5553 *CORE1-1 5554 5555 /THE OCCURRENCE TABLE EXTENDS DOWNWARD FROM HERE 5556 /TOWARD THE MAIN SYMBOL TABLE 5557 /& SHARING THE SAME SPACE WITH IT. 5558 /THIS TABLE IS VARIABLE, BEING COLLAPSED 5559 /AS MUCH AS POSIBLE DURING USE. THE ONLY 5560 /THING LEFT ON IT AT THE END ARE UNDEFINED 5561 /SYMBOLS. 5562 /THE OCC. TAB. CONTAINS AN ENTRY FOR EVERY 5563 /REF. TO AN AS YET UNDF. SYMBOL. EACH 5564 /TIME A SYMBOL IS DEFINED THE TABLE IS SEARCHED 5565 /TO SEE IF FORWARD REFERENCES TO IT EXIST. 5566 /IF SO THEY ARE OUTPUT & THE TABLE 5567 /CONDENSED. 5568 /ENTRIES CONSIST OF 2 OR 3 WORDS 5569 /STRUCTURED AS BELOW: 5570 /HIGH WORD: LOCATION OF REFERENCE 5571 /LOW WORD: SYMBOL I.D. 5572 /OPTIONAL WORD: # FLAG 5573 /THE LOC. WORD CONTAINS THE PROG. ADDR. WHERE 5574 /THE VALUE OF THE SYM. MUST BE ASSEMBLED 5575 /THE # FLAG=1 IF IT EXISTS. IT WILL 5576 /EXIST ONLY FOR THOSE ENTRIES WHERE THE 5577 /SYM. WAS REF'D. BY A #. 5578 /THE TABLE IS ALWAYS SEARCHED IN REVERSE 5579 /FROM LOW CORE UPWARD 5580 /THE O.T. PTR (OTP) ALWAYS PTS. TO THE NEXT FREE 5581 /LOCATION BELOW THE TABLE 5582 /THE TABLE HAS NO IMPORTANCE DURING PASS 2. 5583 5584 5585 /MEMORY IS NOT USED 5586 5587 5588 $ A1 5517 A1P 0441 A2 5422 A2NONA 5464 A2P 0440 A2SUBR 5467 A2TEMP 5504 AACTR 0141 AANUM7 2523 ACH 0020 ACL 0022 ACM 0021 ACTR 0057 ADDRES 0135 AERROR 5760 AFLG 0133 AFS 0142 ALEN 0150 ANCHK 5726 ANUM7 2514 ANUMCK 2476 APMSW 0102 APTR 0005 ARGCT 1561 ARGPP0 1526 ARGPP2 1543 ARGPP4 1534 ARGPP5 1530 AS0 0005 AS00I3 6302 AS00I4 6253 AS00II 6244 ASAV 0143 ASIF 1767 ASM00 5730 ASM01 5737 ASM01A 5445 ASM01B 5452 ASM02 5650 ASM02A 6036 ASM02I 5506 ASM02R 5745 ASM02S 1557 ASM03I 5723 ASM05 5600 ASM05C 6223 ASM06 6245 ASM06I 5724 ASM07 6200 ASM07A 6212 ASM07I 5725 ASM08 5616 ASM09 6234 ASM09B 6220 ASM10 6001 ASM10B 6046 ASM11 6006 ASM12 6264 ASM12E 6272 ASM12F 6276 ASM13 6304 ASM13I 6047 ASM14 6320 ASM2AI 5722 ASM5AI 5614 ASM5CI 5615 ASMBL 5400 ASMCMN 5755 ASME1 5731 ASME1I 6113 unreferenced ASME1X 5736 unreferenced ASME2 5732 ASME2P 6035 ASME3 6010 ASME4 6023 ASME5 6054 ASME5A 6051 ASME6 6076 ASME7 6057 ASME7I 5644 ASMEXT 3567 ASMIF 2672 ASMIF1 1551 ASMX4 6064 ASMX4I 5641 ASMX5 6065 ASMX5I 5640 ASMX6 6072 ASMX6I 5643 ASR 6637 ASR1 6643 ASR2 6647 ASSMBL 0431 AT 2771 ATEM1 3351 ATEM2 3352 ATEM3 3353 ATEM4 3354 AVAL 0142 BANK 0147 BCODE 0001 BCTR 0140 BL1 1765 BL2 0763 BL3 0773 BL6 0745 BL7 1770 BLEN 0137 BNKSAP 6606 BNKSAV 5751 BNKSV 1036 BPTR 0003 BSEEST 0162 BSSSW 0060 BUF 4703 BUFBEG 6657 BUFEN 6661 BUFEND 4704 BVAL 0002 BYTE 1771 C2 4423 C3774 5361 CALERR 1416 CALLFS 0041 CALLSP 0761 CALLSW 1562 CDFCHG 1567 CDFSK 0045 CDFSKI 6112 CDFSKP 5516 CDZSK 0051 CDZSKI 5645 CDZSKP 2577 CERROR 5576 CHARCT 0127 CHR 0061 CKCLS 0771 CKCLSP 1564 CKCSW 0762 CKCSWP 0333 CKIF 6746 CKIF2 6757 CKIF3 6771 CKIFP 0757 CLENUP 0530 CLNPST 6424 CMNASM 5747 CMNSET 5264 CODE 0134 COMMN0 1637 COMMN1 1641 COMMN2 1645 COMP 0270 COMPGO 0264 CORE1 7600 COUNT 0152 CPGES 5550 CPGESI 0022 CPLFS 5306 CPLFS3 5352 CPSW 0104 CRLF 0024 CSUM 0062 CTPTR 2473 CTYPE 0023 CURSKP 0146 DATA 1100 DCIL 2000 DCIL1 0033 DEF1 3626 DEF2 3634 DEF3 3636 DEFERR 3660 DEFSUB 3642 DELIN 1771 DISPL 0010 DOTRTN 4312 DSW 0105 DUM 3706 DUMMY 0025 DUMS 0067 DUMSUB 3547 EFLG 0131 ENDEND 0567 EQSAV 1022 EQUTB 0000 EQVBIT 0101 EQVFIX 6725 EQVIPR 0064 EQVOPR 0063 ERR1 2773 ERR11 2751 ERR2 2767 ERRA 2712 ERRC 2711 ERRE 2701 ERREX 2756 ERRI 2710 ERRM 2705 ERRS 2702 ERS1 4471 ESTSIZ 0100 EXP 0145 FATAL 2700 FATALP 4373 FETCH 4641 FIXI 0332 FIXIL 2676 FIXILC 2215 FORFLG 0106 FOUND 0126 GETBAP 5750 GETBAS 6600 GETCHR 0026 GETSYM 0027 GNEQ 2524 GTSYM 0600 HCBPS 3536 HICOM 0076 HISP 6406 HSR 6610 HSR1 6613 HSR2 6617 IB 0141 IBTI 2163 ICALSW 0326 ICPGES 0022 ICPLFS 0021 IERROR 5575 IFCT 6775 IFCTP 0756 IFCTR 6362 IFFS 1770 IFFSUB 2646 II 2425 ILC 0065 ILC4 6363 ILC4P 3374 ILC4PT 5505 INC 1560 INCOBA 5365 INCPT 3550 INCPTI 0327 INDEV 4702 INDEVP 6564 INDEX 0151 INDX1 5507 INI 0030 INILPT 1000 INIS 5510 INISS 0527 INISUB 1041 INITA 4327 INITAI 0573 INITAP 0325 INITIO 0377 INITMP 4377 INITMR 2367 INITR 4574 INITRP 4372 IOI 6464 IOINIT 6457 IOX 6530 IPOPIN 2670 IPSHIN 2667 ISSI 5421 ISZPT 6701 ISZPT1 0532 ISZPT2 3566 ISZPTX 6456 ITM10 0742 ITM11 0744 ITM12 0745 ITM13 0747 ITM14 0750 ITM15 0751 ITM2 0610 ITM3 0617 ITM4 0607 ITM5 0664 ITM6 0714 ITM7 0722 ITM8 0732 ITM9 0733 JASR 6563 JCOUNT 0125 JHISP 6567 JHSR 6562 JL63 6565 JL64 6566 JLIST 6570 JRDER 6571 JVERS 7012 K0102 6160 K0317 6161 K0406 6165 K0530 6166 K1 3776 K10 0156 K100 0162 K1000 0030 K130 0017 K1500 6163 K17 3444 K1720 6141 K177 0163 K2 0014 K20 0157 K200 0164 K2000 0043 K201 0531 K2220 6677 K2300 6162 K240 0165 K2400 0047 K2516 6164 K2560 6140 unreferenced K260 3705 K3 0016 K30 0020 K300 2167 K3000 0031 K3010 3641 K3403 5547 K377 3443 K3777 4176 K3777A 4256 K4 0015 K40 0160 K400 0045 K4000 0041 K4003K 6442 K401 3640 K403 6700 K403A 3775 K407 6050 K440 1656 K4440 2166 K5 0154 K5204 3576 K5376 6374 K5377 6303 K60 2576 K600 0027 K6200 2677 K6201 1550 K7 0155 K7000 3647 K7000X 7016 K7377 3161 K7410 3657 K7577X 2475 K7600 0166 K77 0161 K777 4360 KCDF00 5657 KCDF10 5661 KCDF1A 5642 KCDFA 6114 KSR 6545 L31 2265 L31A 2303 L31B 2271 L32 2230 L32A 2263 L39 3454 L40 3504 L40A 3467 L40B 3526 L40C 3532 L40D 3477 unreferenced L40DR 3476 L41 3511 L51 3062 L51E 3101 L51FLG 3172 L51G 3124 unreferenced L51J 3145 L52 3237 L52A 3263 L53 3267 L53A 3311 L53B 3315 L55 0400 L55A 0432 L55B 0433 L55C 0402 L55CP 6736 L55I 0045 L55L 0435 L56 0427 L61 1323 L61A 1335 L61B 1344 L61C 3363 L61CP 1346 L61D 1342 L61DP 3373 L62 3664 L62A 3671 L62A1 3774 L63 3164 L64 4772 L65 4705 L66 3713 L66A 3765 L66A1 3741 L66A2 3747 L66A3 3723 L66B 2365 L66D 2366 L66E 2355 L67 3032 L68 2313 L68I 3160 L72 2200 L72S 2207 L72X 2211 L73 4726 LASMP 0324 LEAD 0574 LEADER 4714 LEADI 4375 LFLG 0130 LFS 0137 LFSBSE 0027 LFSBSI 2474 LFSBSS 3017 LFSCHK 0031 LFSCK 3000 LFSCK1 3042 LFSPTR 0066 LINAX 0170 LINBUF 1646 LINE 0067 LINEB 1164 LINEB2 4763 LINEND 4640 LINK 0033 LISTON 6400 LITBSE 0045 LITPTR 3356 LITSIZ 0070 LITSZE 0070 LLFS 5364 LLFSI 2770 LLFSP 2375 LSTBNK 0073 LSTDEP 4177 LSTDEV 6532 LSTSKK 1037 LSTSKP 0072 LTBSE 0030 LTSZE 0071 M10 1566 M100 3716 M11 6574 M12 4572 M12A 4255 M14 6774 M17 6575 M177 4655 M2 0171 M200 0166 M201 2675 M211 1040 M243 2171 M254 0167 M257 6773 M26 7014 M260 4571 M260A 0752 M3 0172 M3000 0052 M331 6561 M37A 4573 M4 3704 M5 6573 M50 6654 M7 0004 M7600 0164 MBE 0170 MERROR 5763 MGRP 0143 MSCTR 0153 MST 0043 MTYPE 7013 MUL1 0702 NSCHK 6324 NSCHKI 1322 NSCHKP 5647 NSGN 0144 NULL 4764 NULLP 0034 NUMSGN 5170 NUMSGP 5362 OAPLT 3200 OBACTR 0074 OBFLG 5131 OBFLGP 5275 OBIS 0055 OBISUB 5754 OBNSYM 4507 OBSYM 0032 OLDOBA 5274 OLDOBP 5160 OP 0140 OPDEX 3605 OPICTR 2532 OPIS 0062 OPISUB 5753 OPSCTR 0075 OTP 0006 OTPR 4356 OTYPE 0035 OUAPLT 5511 OUT1 0141 OUT2 0127 OUTBIN 0036 OUTBN 3400 OUTEX 3432 OUTSK 6254 OUTSKP 0037 PABSYM 3600 PAG 0077 PARG 1464 PARG2 1563 PARG5 1551 PARG6 1565 PARGCN 1473 PARGSM 1475 PARLIT 1241 PASS 0110 PAUS1 0533 PB0 2165 PBSS 2600 PBSS1 2621 PBSS2 2435 PBSS2I 2630 PBSS2J 6723 PBSS4 6710 PBSS4I 2632 PBSS5 2610 PBSS5I 6724 PCALL 1400 PCALL1 1567 PCOMMN 1600 PCSM 0552 PDEC 4735 PDUMMY 5534 PEAP 6375 PEB 4376 PEBSE 0700 PEND 0534 PENTRY 6662 PEPTR 5514 PEPTRP 4374 PFLG 0125 PFORT 3357 PGEESC 0111 PHASE 0113 PIF 6332 PIFERR 6350 PIFF 2633 PLAP 6372 POCT 4740 POP 1766 POPEX 6443 POPEXP 0040 POPIN 4217 POPINI 0330 PPAGE 0334 PPAR1 1200 PPAR3 1236 PPAR3S 1253 PPAR4 1304 PPAR5 1316 PPAR6 1276 PPARX 1302 PPARY 1234 PPAUS1 4323 PPAUSE 4316 PRORG 0345 PRS1 4010 PRS2 4025 PRS3 4057 PRS4 4062 PRS5 4101 PRS6 4132 PRS7 4137 PRS8 4171 PRSYM 4000 PRSYMP 0041 PRTN 4257 PRTN0 4313 PRTN1 4314 PRTN3 4315 PSHIN2 4213 PSHINI 0331 PST 4175 PSTB 6776 PSTBSE 0173 PSTCPR 0114 PSTD 2522 PSTDEF 5571 PSTDEP 5363 PSTMAX 2312 PSTSPR 0115 PSTSZE 0116 PTB 7176 PTBSE 0174 PTCPR 0117 PTEXT 1657 PTOPR 0120 PTOPTB 0164 PTSIZ 0122 PTSPR 0121 PTSZE 0122 PUNCH 0042 PUPGE 0112 PUSH 1765 PUSHER 4237 PUSHIN 4200 QUERY 6532 R 4656 R1 4664 RC 0754 RCH 4546 RCH3 4565 RCH4 4567 RDER 6417 RDIL 0043 RDL1 2001 RDL10 2066 RDL11 2172 RDL12 2075 RDL13 2117 RDL14 2125 RDL15 2141 RDL16 2143 RDL17 2161 RDL18 2174 RDL1X 1035 RDL2 2022 RDL3 2020 RDL4 2105 RDL5 2024 RDL7 2027 RDL9 2046 RDS1 0665 RECRET 0446 RECT 0442 RECT1 0400 RECT2 0453 RECT3 0513 unreferenced RECTI 0044 REDUCE 5515 REDUCP 3535 REE 0572 REEASM 6016 RELINE 4754 RELNP 5513 REXIT 6622 RG 4667 RG1 4671 RG3 4677 RG3P 6660 RGO 6477 RLN 4600 RLN15 4625 RLN2 4607 RLN3 4614 RLN4 4634 RLNP 2164 RORG1 0374 RORGX 0370 RSM1 0651 RSM2 0626 RSM3 0642 RSTRT 0205 RSTRT1 0207 RSTRT2 0252 RSTRT4 0245 RSTRT5 0242 RSTRT6 0316 RSTRTI 2673 RSTRTX 0375 RTN 0040 RUSVL 4535 S0 0150 S1 0151 S2 0152 S3 0153 SAVEIT 4762 SAVLIN 4743 SAVLNI 3355 SAVLNP 5512 SCOLON 0107 SERALI 1240 SERALP 5646 SERALT 6263 SERROR 5577 SET00B 5103 SET00I 5100 SET00J 5102 SET01A 5074 SET01B 5067 SET02I 5101 SET06I 5104 SET08I 5105 SET11I 5106 SET12I 5107 SET1AP 5374 SET6P1 5110 SETC00 5253 SETC01 5054 SETC02 5304 SETC04 5276 SETC05 5200 SETC06 5231 SETC07 5035 SETC08 5217 SETC09 5221 SETC10 5212 SETC11 5220 SETC12 5224 SETC13 5240 SETC6A 5235 SETCAL 1165 SETCAP 5111 SETCMN 5263 SETCT 5000 SETSUB 5131 SETSX 5155 SIGN 0755 SK 0146 SKIPL 0046 SKPDEX 3604 SKPSAP 6607 SKPSAV 5752 SL1 0757 SL2 0752 SL3 0740 SL6 0755 SL7 1757 SLITAB 0047 SLITB1 2416 SLITB2 2423 SLTAB 2400 SPPLUS 2772 SPSTAB 0050 SPSTB 2224 SPTR 0127 SRALT 3445 SREST 0051 SRS 0753 SRS1 4403 SRS2 4450 SRS3 4431 SRS4 4442 SRS5 4444 SRSYM 4400 START 0200 STCE 0052 STFT 6116 STFT0 6135 STFT1 6136 STFT2 6142 STFT3 6144 STFT4 6154 STFT5 6167 STFTI 4174 STORE 5161 STOREP 4637 STT 0007 STTP 2430 STTR 4357 unreferenced SUM 3434 SUSVL 4520 SYMBOL 0003 T8 2224 TAFS 4230 unreferenced TBANK 4235 unreferenced TEM1 0123 TEM10 6655 TEM11 6656 TEM12 2631 TEM2 0124 TEM3 0125 TEM4 0126 TEM5 0127 TEM55 0434 TEM7 0103 TEMP6 0145 TEST 0053 TEX1 1674 TEX2 1704 TEX4 1742 TEX5 1726 TEXCTR 1772 TEXERR 1676 TEXP 4233 unreferenced TEXSUB 1751 TIB 4227 unreferenced TLFS 4225 TNSGN 4232 unreferenced TOP 4226 unreferenced TOPCOR 3162 TS0 4236 unreferenced TSCHR 1347 TSCHR2 1355 TSCHR3 1374 TSKZ 4234 unreferenced TSUM 0144 TUMIC 4231 unreferenced TXSV 0153 TYPE 0054 UDPAGE 3172 UDPG 0376 UMIC 0143 UPDATE 2674 USE 0001 USESUC 5126 USETST 5112 UZETST 6115 UZTST 5727 VAL 0002 VALPTP 2374 VALPTR 4545 VALUE 0136 VERNUM 7000 VERSI 6572 VERSN 7017 VFLG 0132 VN 6463 VNOP 7015 WHATPP 2170 WHATYP 6737 WLIF 4771 WLN 1060 WLN1 1125 WLN2 1143 WLN3 1153 WLNIF 2671 WLNIF1 1773 WLNIFI 4326 WLNP 0055 WRITE 2532 WRITE2 2567 WRITEP 0056 X0 0010 X1 0011 X2 0012 X3 0013