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