1 /2 PDP-8 OS/8 CROSS REFERENCE 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 /COPYRIGHT (C) 1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 24 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY 25 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. 26 / 27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 29 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. 31 / 32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE 33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY 34 /DIGITAL. 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 46 /CREF IS A CROSS REFERENCING PROGRAM FOR THE OS/8 ASSEMBLERS, 47 /PAL8 AND SABR. THE PURPOSE OF CREF IS: 48 49 / 1) PROVIDE A SEQUENCE NUMBERED (DECIMAL) OUTPUT LISTING 50 51 / 2) PROVIDE A LIST OF ALL USER DEFINED SYMBOLS AND LITERALS 52 / AND THE SEQUENCE NUMBER OF THE LINES IN WHICH THEY OCCUR 53 54 /FIXES FOR MAINTENANCE RELEASE: 55 56 /1. 1975 COPYRIGHT, VERSION 4, EDIT 1 57 /2. UNIFIED PAGE SIZE INTO ONE PLACE (& MADE IT WORK) 58 /3. OUTPUT EXTRA FORM FEED AT END 59 /4. MADE /A MEAN KEEP CREFLS.TM INSTEAD OF /E 60 61 /FIXES FOR V3D: 62 63 /INSTALLED ALL PUBLISHED PATCHES 64 65 /DETAILS OF CREF. 66 67 /CORE UTILIZED 68 /FIELD 0 69 70 /0-3377: MAINLINE CREF CODE 71 /4200-4577: INITIALIZATION CODE.EXECUTED ONCE AT BEGINNING 72 /5600-6177: LATER OVERWRITTEN 73 /DEVICE HANDLERS + BUFFERS ALLOCATED ACCORDING 74 /TO REQUIREMENTS OF DEVICES. 75 /USES 3400-5577 FOR INPUT HANDLER, OUTPUT HANDLER, + INPUT BUFFER 76 /7200-7577: OUTPUT BUFFER 77 /5600-7174: USED FOR REFERENCE STORAGE 78 79 /FIELD 1 80 81 /0-NSYM*4+10 NSYM=NO. OF SYMBOLS.(USER+PERMANENT+LITERALS). 82 /7424-7577 PSEUDO OP TABLE 83 /THE REMAINDER IS USED FOR REFERENCES DURING PASSES GREATER THAN ONE 84 85 /SYSTEM SCRATCH USED. 86 /IF CREF DECIDES THAT MORE THAN 2 PASSES ARE REQUIRED, THE SYMBOL 87 /TABLE IS SEGMENTED AT AN OPTIMUM POINT, AND PART IS SAVED 88 /IN SCRATCH BLOCKS 27-50 FOR A THIRD (OR LARGER) PASS. 89 90 91 /MAJOR ROUTINES AND CODE SECTIONS 92 93 /MAIN-START OF TEXT PROCESSING.CHECKS FOR VALID LINE.READS AND WRITES 94 /TEXT LINES 95 /CVTSEQ CONVERTS SEQUENCE NUMBERS FROM OCTAL TO DECIMAL AND 96 / WRITES THEM INTO THE OUTPUT BUFFER 97 98 /GETLIN- GET A LINE OF INPUT INTO LINE BUFFER 99 100 /WRTLIN- WRITE A LINE OF TEXT INTO OUTPUT BUFFER 101 102 /ANALYZ- LINE SCANNING BEGINS.ALL SYMBOLS COLLECTED HERE 103 104 /PACK- CHARACTER PACKING ROUTINE. THE SCHEME USED MAPS LETTERS 105 /A-Z AND [,],\,^ INTO 0-37. 0-9 INTO 40-51 106 / THE PACKING IS: CHAR1-300^52+CHAR2-300 107 108 /SYMCHK- BINARY SYMBOL TABLE SEARCH 109 110 /ENTRY- MAKES ENTRIES IN USER SYMBOL TABLE 111 112 /BUMP- BUMPS REFERENCE COUNTER OF SYMBOLS IN PASS 1 113 114 /ENDPAS- TERMINATES A PASS THROUGH INPUT 115 116 /PASSN2- FILLS IN REFERENCE STORAGE ARE DURING PASSES 117 / AFTER PASS ONE 118 119 /DUMP- DUMPS CREF TABLE TO OUT BUFFER 120 121 122 /SWITCHES IN CREF: 123 /Q=INPUT IS SABR CODE 124 /R=INPUT IS RALF CODE 125 /P=DISABLE LISTING OUTPUT. RE ENABLE FOR CREF TABLE 126 /X=DON'T CREF LITERALS 127 /M=MAMMOTH FILE(2 PASSES) 128 /E=DON'T ELIMINATE CREFLS.TM 129 /U=/P + NO SYMBOL TABLE 130 DECIMAL 131 132 PAGLEN=66 /V3C MOST PAPER HAS 66 LINES PER PAGE 133 134 OCTAL 135 136 PAGLEN=PAGLEN-6 /HEADINGS 137 138 139 VERSN="5 140 PATCHL="A 141 /PAGE ZERO FOR CREF 142 143 *10 144 /AUTO INDEX REGISTERS 145 146 000010 4577 XRLINE, SYMTAB-1 /USED TO MOVE UP SYMBOL TABLE 147 000011 7777 XRLIT, -1 /DITTO 148 000012 0000 XRSYM1, 0 149 000013 0000 XRSYM2, 0 /THESE ARE USED IN SEARCHING SYMBOLS 150 000014 7611 OUSAVX, 7611 /USED TO SAVE ARGS FOR /M 151 152 *20 153 000020 0242 TXTBEG, LINBUF+12 /TEXT STARTS HERE 154 000021 0227 MARGIN, LINBUF-1 /LINE BUFFER 155 000022 0000 COUNT, 0 /GENERAL COUNTER 156 000023 0000 CHAR, 0 /HOLDS CHARACTER TO EXAMINE 157 000024 0000 SEQNO, 0 /SEQUENCE NO. 158 000025 0000 SAVE, 0 159 000026 0000 TEMP, 0 160 000027 0000 TEMP1, 0 /THESE THREE ARE TEMPORARY STORAGE 161 000030 0000 DSWIT, 0 162 000031 0000 RSWIT, 0 /CD SWITCH WORDS 163 000032 7566 MLF, -212 /-LINE FEED 164 000033 7772 SYMCNT, -6 /ALLOW 6 CHARACTER SYMBOLS 165 000034 0036 ISYM, SYM1 /POINTER TO SYMBOL COLLECTOR 166 000035 0000 PSWCH, 0 /PACK SWITCH..LEFT OR RIGHT HALF 167 000036 0000 SYM1, 0 168 000037 0000 SYM2, 0 169 000040 0000 SYM3, 0 /COLLECT SYMBOLS HERE 170 000041 0000 USER, 0 /USER MUST FOLLOW SYM3! 171 000042 0110 110 /INITIAL SYMBOL TABLE ENTRIES 172 000043 0000 PSEUDO, 0 173 000044 0000 0 /THESE 2 GET FILLED IN AT INITIALIZATION 174 000045 1600 PASN2, PASSN2 /IF NOT PASS 1 GO HERE WITH A SYMBOL 175 000046 7777 PASSG1, -1 /=0 IF NOT PASS1 176 000047 0000 MAXFLD, 0 /-# OF FIRST NON-EXISTENT FIELD 177 000050 0000 CONST, 0 /EITHER 0 OR 96(10) 178 000051 0000 FLDPTR, 0 /POINTER TO CORE FIELD 179 000052 0200 USR, 200 /MONITOR IN CORE..CHANGED TO 7700 180 000053 5621 DOLLAR, DOLL1 181 000054 0002 SYMFLD, 2 /FIELDS WITH SYMBOLS: BITS 5-11 182 000055 0000 MASKF, 0 /MASK FOR ABOVE WORD 183 184 /THESE ARE THE DEFAULT PARAMETERS FOR THE I/O ROUTINES 185 /AJUSTED ACCORDING TO REQUIREMENTS OF DEVICES REQUESTED 186 187 OUCTL=4200 188 OUBUF=7200 189 OUDEVH=4000 /VARIABLE-MAY ALSO BE 3600 190 OUFLD=OUCTL&70 191 192 INCTL=0400 193 INBUF=4600 /ALSO 4200 194 INDEVH=3400 195 INRECS=2 /ALSO 3 196 INFLD=INCTL&70 197 /(SUBJECT TO CHANGE WITHOUT NOTICE!) 198 199 000056 0000 SYMADD, 0 /CONTAINS SYMBOL ADDRESS 200 000057 0000 SYMNUM, 0 /ABOVE MOD 4 201 K0=USER 202 000060 0000 BUFFER, 0 /POINTER FOR UNPACKING 203 R=52 204 RAD=52 /RADIX FOR CONVERTING SYMBOLS 205 206 000061 0000 ADDER, 0 207 000062 0000 SYSM, 0 208 000063 0000 BASE, 0 /THESE ARE USED TO END A PASS 209 000064 0000 SYMLIM, 0 /UPPER LIMIT FOR SYMBOL REF TABLE 210 000065 0000 FINI, 0 211 212 000066 0000 IOSR, 0 213 000067 4577 JMS I [7607 214 000070 4010 CNTROL, 4010 /THIS IS ON PAGE ZERO MAINLY 215 000071 0004 CTPTR, 4 /BECAUSE CTPTR IS USED A LOT 216 SCRATCH=27 217 000072 0027 SCRATCH /SYSTEM SCRATCH FOR OVERFLOW 218 000073 7410 SKP /ERROR ON SYS!!! 219 000074 5466 JMP I IOSR 220 000075 4576 HIOERR, JMS I [ERROR 221 000076 3000 HNDERR 222 000077 7704 LNPRPG, -PAGLEN /# LINES OF TEXT PER PAGE 223 000100 7704 LINES, -PAGLEN /V3C MASTER COPY 224 000101 6030 THOUS, 6030 /CONVERSION TABLE..OCTAL-DECIMAL 225 000102 7634 7634 226 000103 7766 7766 227 000104 7777 7777 228 229 000105 5615 FPUT, STORIT /INITIALLY POINTS TO DCA I XRLINE 230 231 M12=THOUS+2 232 M1=THOUS+3 233 234 000106 0000 DPAT, 0 235 000107 3575 DCA I [NOFIRM 236 000110 3574 DCA I [NOFORM 237 000111 5506 JMP I DPAT 238 239 *200 240 000200 5777 JMP I (ST1 /INITIALIZATION GETS DESTROYED 241 000201 5776 BREAK, JMP I (CHAIN /CHAIN ENTRY POINT 242 000202 0000 ZBLOCK 7 /BREAK TABLE. HOLDS SYMBOL 000203 0000 000204 0000 000205 0000 000206 0000 000207 0000 000210 0000 243 /NUMBERS DURING VARIOUS PASSES 244 /OF CREF. THE ENTRIES ARE THE NUMBER 245 /OF THE LARGEST SYMBOL 246 /WHOSE REFERENCES ARE IN A PARTICULAR 247 /FIELD. THE 0TH ENTRY CORRESPONDS TO 248 /FIELD 0. 249 000211 0000 ERROR, 0 250 000212 7200 CLA 251 000213 6201 CDF 0 252 000214 1611 TAD I ERROR 253 000215 3060 DCA BUFFER 254 000216 1173 TAD [-6 255 000217 3033 DCA SYMCNT /12 CHARACTER MESSAGES 256 000220 1227 TAD TTY /POINT TO TTY OUT ROUTINE 257 000221 3172 DCA [OCHAR 258 259 000222 1460 TAD I BUFFER 260 000223 4571 JMS I [DIVIDE /CONVERT AND PRINT MESSAGE 261 000224 2033 ISZ SYMCNT 262 000225 5222 JMP .-3 263 000226 5570 JMP I [7605 264 000227 2763 TTY, TTYPRT 265 266 267 /THE INPUT LINE IS STORED HERE. XRLINE POINTS TO VARIOUS 268 /PLACES THROUGHOUT THE SCAN, AND CHAR HOLDS THE CORRESPONDING 269 /CHARACTER WHILE WE EXAMINE IT. 270 271 LINBUF=. 272 LITBUF=.+6 273 VERTST=.+4 274 275 276 *251 277 000251 0000 FILEXT, 0 278 000252 6211 CDF 10 279 000253 1775 TAD I (7604 280 000254 6201 CDF 0 281 000255 7450 SNA 282 000256 1374 TAD (1423 283 000257 6211 CDF 10 284 000260 3775 DCA I (7604 285 000261 6201 CDF 0 286 000262 5651 JMP I FILEXT 287 000263 0000 P2ADJ, 0 288 000264 1773 TAD I (PASS2 289 000265 7450 SNA 290 000266 5663 JMP I P2ADJ 291 000267 3772 DCA I (OUBLK /LAST BLOCK WRITTEN TO 292 000270 6211 CDF 10 293 000271 1414 TAD I OUSAVX 294 000272 6201 CDF 0 295 000273 3771 DCA I (OUELEN /SIZE OF HOLE 296 000274 6211 CDF 10 297 000275 1414 TAD I OUSAVX 298 000276 3077 DCA LNPRPG /NO. LINES IN LAST BLK WRITTEN 299 000277 1414 TAD I OUSAVX /NO. BLKS WRITTEN SO FAR 300 000300 6201 CDF 0 301 000301 5770 JMP I (MP2 /NO ENTER 302 000302 0000 MORCOR, 0 303 000303 7301 CLA CLL IAC 304 000304 3047 DCA MAXFLD /IN CASE NOT DEFINED 305 000305 1767 TAD I (7777 306 000306 0366 AND (70 307 000307 7450 SNA 308 000310 5702 JMP I MORCOR /USE OLD WAY TO DETERMINE 309 000311 7112 CLL RTR 310 000312 7010 RAR /NEED IT HI 3 311 000313 3047 DCA MAXFLD 312 000314 5765 JMP I (DONCOR 313 314 000315 0000 OTYPE, 0 315 000316 6211 CDF 10 316 000317 1567 TAD I [7600 /DETERMINE WHAT TYPE OF DEVICE 317 000320 0166 AND [17 318 DCB=7760 319 000321 1364 TAD (DCB-1 320 000322 3326 DCA Q 321 000323 1726 TAD I Q /CHECK DEVICE CONTROL BLOCK 322 000324 6201 CDF 0 323 000325 5715 JMP I OTYPE 324 000326 0000 Q, 0 325 000364 7757 *400 000365 4552 000366 0070 000367 7777 000370 2321 000371 2317 000372 2316 000373 4352 000374 1423 000375 7604 000376 4205 000377 4200 326 327 /MAIN IS THE START OF CREF.(IF SABR, NXTLIN IS START). 328 /AT MAIN WE SCAN A LINE OF TEXT FOR BINARY DATA. IF NONE IS FOUND, 329 /THE LINE IS WRITTEN OUT AND A NEW LINE READ. IF BINARY IS FOUND, 330 /THE SEQUENCE NUMBER OF THE LINE IS PLACED IN THE OUTPUT 331 /BUFFER AND THE ANALYSIS BEGINS AT ANALYZ. 332 333 000400 4565 MAIN, JMS I [FORM /FORM FEED (CR/LF) 334 000401 4564 JMS I [HEADER /SKIP HEADER 335 000402 4777 JMS I (GETLIN /AND ONE CR/LF 336 000403 4352 NOTBIN, JMS WRTLIN 337 000404 4777 NXTLIN, JMS I (GETLIN 338 000405 1410 TAD I XRLINE 339 000406 3023 DCA CHAR 340 000407 4563 JMS I [CHECK /CHECK FOR ALPHA LINE 341 000410 0301 301 342 000411 7442 -336 343 000412 5217 JMP NOALPH 344 000413 2077 NOFIRM, ISZ LNPRPG /NEED A FORM FEED YET? 345 000414 5203 JMP NOTBIN /NOT YET 346 000415 4565 JMS I [FORM /NOW!!! 347 000416 5203 JMP NOTBIN 348 000417 1023 NOALPH, TAD CHAR 349 000420 1253 TAD MCTLD /IF RUB OUT, USED /D 350 000421 7450 SNA 351 000422 5562 JMP I [ENDPAS /CAN'T OUTPUT SYM TABLE 352 000423 1376 TAD (163 /CHECK FOR FORM FEED 353 000424 7450 SNA 354 000425 5200 JMP MAIN /YES.. 355 000426 1375 TAD (-41 /IF ------, HE USED /T(DUMMY!) 356 000427 7650 SNA CLA 357 000430 5200 JMP MAIN /GIVE HIM A FORM FEED 358 000431 2077 NOFORM, ISZ LNPRPG /=0 AFTER PASS1 NEW PAGE? 359 000432 7410 SKP /SKIP A FORM FEED 360 000433 4565 JMS I [FORM 361 000434 2024 ISZ SEQNO /BUMP SEQUENCE 362 000435 5240 JMP MAIN2 363 000436 1161 TAD [140 364 000437 3050 DCA CONST 365 000440 4560 MAIN2, JMS I [PASTST /STILL PASS ONE? 366 000441 5246 JMP MAIN3 367 000442 1024 TAD SEQNO 368 000443 4254 JMS CVTSEQ 369 000444 1157 TAD [-3 /3 SPACES 370 000445 4556 JMS I [SPACE 371 000446 1023 MAIN3, TAD CHAR 372 000447 1155 TAD [-215 373 000450 7650 SNA CLA 374 000451 5203 JMP NOTBIN 375 000452 5554 JMP I [ANALYZ 376 000453 7401 MCTLD, -377 /RUB OUT 377 378 /THIS ROUTINE CONVERTS SEQUENCE NUMBERS TO DECIMAL NUMBERS AND 379 /PUTS THEM INTO THE OUTPUT BUFFER. IT IS USED WHEN PRINTING 380 /THE CREF TABLE ALSO 381 /THE CALLING SEQUENCE IS: AC=OCTAL NUMBER TO BE CONVERTED. 382 /THE OUTPUT IS AUTOMATICALLY 4 DIGITS. 383 384 385 POSPT=TEMP1 386 DIGPT=MASKF 387 388 000454 0000 CVTSEQ, 0 389 000455 1050 TAD CONST 390 000456 3025 DCA SAVE /TEMP STORE 391 000457 1050 TAD CONST 392 000460 7640 SZA CLA 393 000461 1153 TAD [4 394 000462 3345 DCA DIGIT1 395 000463 3346 DCA DIGIT1+1 396 000464 3347 DCA DIGIT1+2 397 000465 3350 DCA DIGIT1+3 /ZERO CONVERSION AREA 398 000466 1152 TAD [-4 399 000467 3022 DCA COUNT 400 000470 1025 TAD SAVE 401 000471 7100 CLL /SEE IF SEQUENCE IS ABOVE 8000(10) 402 000472 1050 TAD CONST /EITHER 0 OR 140(8) 403 000473 7420 SNL 404 000474 5300 JMP CVT2 /O.K. 405 000475 3025 DCA SAVE /CORRECTED NUMBER 406 000476 1151 TAD [10 407 000477 3345 DCA DIGIT1 /PUT AN 8 INTO THERE FOR PRINTING 408 000500 7200 CVT2, CLA 409 000501 1374 TAD (DIGIT1 410 000502 3055 DCA DIGPT 411 000503 1373 TAD (THOUS 412 000504 3027 DCA POSPT 413 000505 1025 TAD SAVE 414 000506 7100 RPEAT, CLL 415 000507 1427 TAD I POSPT /POINTS TO -1000,-100,-10, OR -1 416 000510 7420 SNL /IF LINK ON,WE DID TOO MUCH 417 000511 5314 JMP ADDUP /COLLECT THE CONVERTED DIGIT 418 000512 2455 ISZ I DIGPT /BUMP THE COUNTER DIGIT1-DIGIT1+3 419 000513 5306 JMP RPEAT 420 421 000514 7041 ADDUP, CIA /RESTORE THE LAST ONE 422 000515 1427 TAD I POSPT 423 000516 7041 CIA 424 000517 2027 ISZ POSPT 425 000520 2055 ISZ DIGPT 426 000521 2022 ISZ COUNT /DONE ALL 4? 427 000522 5306 JMP RPEAT 428 000523 1152 TAD [-4 /YES..OUTPUT THE CONVERTED NUMBERS 429 000524 3022 DCA COUNT 430 000525 1374 TAD (DIGIT1 431 000526 3055 DCA DIGPT 432 000527 1455 SPCLUP, TAD I DIGPT 433 000530 1351 TAD ZSPRES /LEADING ZERO SUPPRESSION 434 000531 3351 DCA ZSPRES 435 000532 1351 TAD ZSPRES 436 000533 7650 SNA CLA /ZSPRES IS 0 UNTIL A VALID # IS FOUND 437 000534 1372 TAD (-20 438 000535 1455 TAD I DIGPT 439 000536 1150 TAD [260 440 000537 4572 JMS I [OCHAR 441 000540 2055 ISZ DIGPT 442 000541 2022 ISZ COUNT 443 000542 5327 JMP SPCLUP 444 000543 3351 DCA ZSPRES 445 000544 5654 JMP I CVTSEQ 446 447 000545 0000 DIGIT1, 0 448 000546 0000 0 449 000547 0000 0 450 000550 0000 0 451 000551 0000 ZSPRES, 0 452 /WRTLIN TRANSFERS INPUT LINE TO OUTPUT BUFFER 453 454 000552 0000 WRTLIN, 0 455 000553 1021 TAD MARGIN 456 000554 3010 DCA XRLINE /RESET MARGIN TO LEFT 457 000555 1410 OLINE, TAD I XRLINE /PICK UP TEXT CHARACTER 458 000556 3023 DCA CHAR 459 000557 1023 TAD CHAR 460 000560 7450 SNA /IF NULL,WAS PREMATURE TERMINATOR 461 000561 5370 JMP FLUSH /YES. READ AND WRITE THE REST 462 000562 4572 JMS I [OCHAR /OUTPUT THE CHARACTER 463 000563 1023 TAD CHAR 464 000564 1032 TAD MLF /WAS THIS END OF LINE? 465 000565 7640 SZA CLA 466 000566 5355 JMP OLINE /NO..LOOP AGAIN 467 000567 5752 JMP I WRTLIN 468 469 000570 4564 FLUSH, JMS I [HEADER 470 000571 5752 JMP I WRTLIN /OVERFLOW NOT IN BUFFER 471 472 000572 7760 *600 000573 0101 000574 0545 000575 7737 000576 0163 000577 3236 473 /ANALYZ IS A WORK HORSE. IN IT CHARACTERS ARE EXAMINED AND 474 /SYMBOLS ARE BUILT UP. IF A SYMBOL OR A REFERENCE TO A 475 /SYMBOL IS FOUND,THE APPROPRIATE ACTION IS TAKEN;I.E. 476 /EITHER ENTERING A NEW SYMBOL, BUMPING THE RFERENCE COUNTER, 477 /OR BOTH. 478 479 000600 1350 ANALYZ, TAD SEMISV /IF #0, LAST WAS SEMICOLON 480 000601 7450 SNA 481 000602 1020 TAD TXTBEG /IF=0, START NORMALLY 482 000603 3010 DCA XRLINE 483 484 000604 1410 SCAN, TAD I XRLINE 485 000605 3023 DCA CHAR 486 000606 4563 JMS I [CHECK /ALPHANUMERIC CHECK 487 000607 0301 301 488 000610 7446 -332 489 000611 7410 SKP /NONE..TEST FOR SPECIAL CHARS 490 000612 5336 JMP PAKIT /FOUND A LETTER PACK AWAY 491 000613 4563 JMS I [CHECK /TEST FOR 0-9 492 000614 0260 260 493 000615 7507 -271 494 000616 7410 SKP /NOPE..COULD BE SABR 495 000617 5333 JMP SCAN1 496 000620 5226 SCAN3, JMP TSTIT /IF SABR, THIS LOC IS AND 0 497 000621 4563 JMS I [CHECK /TEST FOR [,],\,AND ^ 498 000622 0333 333 499 000623 7442 -336 500 000624 7410 SKP 501 000625 5336 JMP PAKIT /VALID SABR CHARACTERS 502 503 000626 4341 TSTIT, JMS REPACK 504 000627 1023 TAD CHAR /IS THIS A ;? 505 000630 1377 TAD (-273 /IF SO, SAVE PLACE ON LINE 506 000631 7640 SZA CLA 507 000632 5235 JMP .+3 /IF ; SAVE PLACE ON LINE 508 000633 1010 TAD XRLINE 509 000634 3350 DCA SEMISV 510 000635 1036 TAD SYM1 /IS THERE A LEGAL SYMBOL? 511 000636 7650 SNA CLA 512 000637 5304 JMP TSTEND /NO..LOOK FOR A LINE FEED 513 000640 1023 TAD CHAR 514 000641 1376 TAD (-257 515 000642 7650 SNA CLA /A COMMENT? 516 000643 7001 IAC /YES..NEED SPECIAL RETURN 517 000644 3351 DCA SLSWIT 518 519 000645 4547 JMS I [SYMCHK /THIS IS EITHER A REFERENCE OR A 520 /DEFINITION OR A PERMANENT SYMBOL,PSEUDO 521 000646 0043 PSEUDO /CHECK PSEUDOS FIRST 522 000647 5265 HC1, JMP USSYM /NOT A PSEUDO-OP 523 /BECOMES JMP PATCH IF /M USED 524 000650 1056 TAD SYMADD 525 000651 1146 TAD [3 526 000652 3025 DCA SAVE /SYMCHK RETURNS ADDRESS OF SYMBOL IN SYMADD 527 000653 6211 CDF 10 528 000654 1425 TAD I SAVE 529 000655 3025 DCA SAVE 530 000656 6201 CDF 0 531 000657 4775 JMS I (CLEAR /WIPE OUT PSEUDO OP 532 000660 5425 JMP I SAVE /PERFORM THE NECESSARY OP FOR PSEUDO 533 000661 1036 PATCH, TAD SYM1 534 000662 7006 RTL 535 000663 7730 PATCH1, CLA SZL SPA /LG-LH SPLIT 536 000664 5277 JMP B 537 538 000665 4560 USSYM, JMS I [PASTST 539 000666 5445 JMP I PASN2 540 000667 4547 JMS I [SYMCHK 541 000670 0041 USER /CHECK PERMANENT AND USER SYMBOLS 542 000671 5275 JMP NTER /DIDN'T FIND IT; SO WE HAVE TO ENTER IT 543 000672 4774 JMS I (TSTPRM /FOUND;TEST FOR PERMANENT SYMBOL 544 000673 5277 JMP B /WAS A PERMANENT SYMBOL 545 000674 5276 JMP BMPIT /FOUND AND NOT PERMANENT;INCREASE THE 546 /REFERENCE COUNTER BY ONE 547 548 000675 4545 NTER, JMS I [ENTRY /ENTER THE SYMBOL BY PUSHING DOWN ALL 549 /THE ONES BELOW IT 550 000676 4544 BMPIT, JMS I [BUMP /AND INCREASE THE REFERENCE COUNT 551 000677 4775 B, JMS I (CLEAR /SETUP FOR NEXT 552 000700 1351 TAD SLSWIT /WAS LAST A /? 553 000701 7640 SZA CLA 554 000702 5773 JMP I (NOTBIN 555 000703 5352 JMP SCANER 556 557 000704 1023 TSTEND, TAD CHAR 558 000705 1032 TAD MLF /ARE WE DONE WITH THIS LINE? 559 000706 7640 SZA CLA 560 000707 5312 JMP .+3 /IF LF, CLEAR OUT SEMICOLON 561 000710 3350 CLRSEM, DCA SEMISV 562 000711 5773 JMP I (NOTBIN 563 000712 1023 TAD CHAR 564 000713 1376 TAD (-257 565 000714 7450 SNA /COMMENT LINE? 566 000715 5310 JMP CLRSEM 567 000716 1372 TAD (15 /A "? 568 000717 7450 SNA 569 000720 2010 ISZ XRLINE /YES..SKIP NEXT LETTER 570 000721 1143 TAD [-2 /A $? 571 000722 7450 SNA 572 000723 5453 JMP I DOLLAR 573 000724 1152 TAD [-4 574 000725 7450 SNA /TEST FOR ( 575 000726 5771 JMP I (LIT1 576 000727 1370 TAD (-63 577 000730 7640 SZA CLA /TEST FOR [ 578 000731 5352 JMP SCANER /NONE OF THEM KEEP GOING 579 000732 5767 JMP I (LIT2 580 581 000733 1036 SCAN1, TAD SYM1 /IF WE DON'T HAVE A SYMBOL 582 000734 7650 SNA CLA /DON'T PACK THIS CHARACTER 583 000735 5204 JMP SCAN 584 000736 1023 PAKIT, TAD CHAR 585 000737 4542 JMS I [PACK /PACK A CHARACTER 586 000740 5204 JMP SCAN 587 588 000741 0000 REPACK, 0 /RESET SYMBOL AREA 589 000742 1173 TAD [-6 590 000743 3033 DCA SYMCNT /SYMBOL COUNTER..6 CHARS 591 000744 1366 TAD (SYM1 592 000745 3034 DCA ISYM 593 000746 3035 DCA PSWCH 594 000747 5741 JMP I REPACK 595 596 000750 0000 SEMISV, 0 597 000751 0000 SLSWIT, 0 598 599 000752 1023 SCANER, TAD CHAR /IF LAST WAS ; READ IN OVERLAY 600 000753 1377 TAD (-273 601 000754 7650 SNA CLA 602 000755 5773 JMP I (NOTBIN 603 000756 5204 JMP SCAN 604 605 000757 0000 SUB3, 0 /SUBTRACTS 3 FROM CTPTR 606 000760 1157 TAD [-3 607 000761 1071 TAD CTPTR 608 000762 3071 DCA CTPTR 609 000763 5757 JMP I SUB3 610 000766 0036 *1000 000767 3060 000770 7715 000771 3066 000772 0015 000773 0403 000774 1702 000775 3350 000776 7521 000777 7505 611 612 613 /THE PACKING SCHEME IS THE SAME AS THAT USED IN PAL8. THAT IS 614 /IN EACH WORD WE HAVE 2 CHARS. CHAR1-300^45+CHAR2-300. 615 /PERMANENT SYMBOLS HAVE THE FIRST WORD SET TO A NEGATIVE. 616 617 001000 0000 PACK, 0 618 001001 3240 DCA BLAH 619 001002 1033 TAD SYMCNT 620 001003 7700 SMA CLA /OVERFLOW PROTECT 621 001004 5600 JMP I PACK 622 001005 1240 TAD BLAH 623 001006 0141 AND [77 /STRIP IT 624 001007 1377 TAD (-37 /INCLUDE VALID SABR CHARS 625 001010 7540 SMA SZA 626 001011 1376 TAD (-20 /NUMBERS GET MAPPED: 40-51 627 001012 1375 TAD (37 /LETTERS ARE MAPPED:01-37 628 001013 2035 ISZ PSWCH /WHICH HALF? 629 001014 5221 JMP LEFT 630 001015 1434 TAD I ISYM 631 001016 3434 DCA I ISYM 632 001017 2034 ISZ ISYM 633 001020 5235 JMP PCKOUT 634 001021 7104 LEFT, CLL RAL /*2 635 001022 3330 DCA TLOW 636 001023 1330 TAD TLOW 637 001024 7106 CLL RTL 638 001025 3025 DCA SAVE /*10 639 001026 1025 TAD SAVE 640 001027 7106 CLL RTL /*40 641 001030 1025 TAD SAVE 642 001031 1330 TAD TLOW /*52!! 643 001032 3434 DCA I ISYM 644 001033 7240 CLA CMA /RESET FLIP FLOP 645 001034 3035 DCA PSWCH 646 001035 2033 PCKOUT, ISZ SYMCNT 647 001036 7000 NOP 648 001037 5600 JMP I PACK 649 001040 0000 BLAH, 0 650 651 652 653 654 /SYMCHK IS THE BINARY SEARCH ROUTINE FOR CREF. SYMBOLS 655 /ARE A GROUP OF FOUR ENTRIES:THE FIRST THREE WORDS ARE 656 /THE STRIPPED-40 REPRESENTATION OF THE SYMBOL. THE LAST 657 /IS THE REFERENCE COUNTER (IN THE CASE OF A USER SYMBOL) OR 658 /A -1 (IN THE CASE OF A PERMANENT SYMBOL). IN PSEUDO OPS 659 /THE FOURTH WORD DESCRIBES THE DESTINATION OR ACTION 660 /TO BE PERFORMED BY THAT PSEUDO OP. 661 /THE TABLE USER,0 HAS ENTRIES WHICH ARE THE SYMBOL NUMBER 662 /AND NOT THE ABSOLUTE CORE LOCATION OF A SYMBOL. 663 664 /CALLING SYMCHK: 665 / JMS SYMCHK 666 / TABLE /FIRST WORD OF TWO WHICH GIVES THE LIMITS 667 /MOD 4 OF THE APPROPRIATE TABLE 668 /SYMCHK RETURNS WITH THE NUMBER OF THE SYMBOL IN SYMNUM 669 /AND THE CORE ADDRESS OF THE SYMBOL IN SYMADD. IF THE 670 /SYMBOL IS NOT FOUND, THESE WORDS CONTAIN THE PROPER LOCATION 671 /FOR THE SYMBOL. 672 673 001041 0000 SYMCHK, 0 674 001042 1641 TAD I SYMCHK 675 001043 3327 DCA THI 676 001044 3331 DCA LAST 677 001045 1727 TAD I THI /GET LIMITS OF TABLE 678 001046 3330 DCA TLOW /LOW LIMIT 679 001047 2327 ISZ THI 680 001050 1727 TAD I THI 681 001051 3327 DCA THI /HIGH LIMIT 682 683 001052 1330 COMP, TAD TLOW 684 001053 7041 CIA 685 001054 1327 TAD THI 686 001055 7110 CLL RAR /HALF DIFFERENCE BETWEEN THE LIMITS 687 001056 7450 SNA /IF THIS IS ZERO, WE'RE DONE 688 001057 2331 ISZ LAST /THIS WILL BE LAST TRY 689 001060 1330 TAD TLOW /FORM THE NUMBER OF THE ENTRY 690 001061 3057 DCA SYMNUM /WE ARE GOING TO TEST NOW 691 001062 4363 JMS SETXR /SET UP INDICES FOR TEST 692 001063 2022 ISZ COUNT /WE ONLY WANT -3 IN COUNT! 693 694 001064 7100 S1, CLL 695 001065 6211 CDF 10 696 001066 1413 TAD I XRSYM2 /SYMBOL TABLE ENTRY 697 001067 6201 CDF 0 698 001070 0140 AND [3777 /MASK PERMANENT SYMBOL BIT 699 001071 7040 CMA /USE ONE'S COMPLEMENT 700 001072 1412 TAD I XRSYM1 /OUR COLLECTED SYMBOL 701 001073 7040 CMA /0 AC IF EQUAL 702 001074 7640 SZA CLA /WATCH THE LINK!! 703 001075 5302 JMP COMPR /NOW TEST FOR HI OR LOW COMPARISON 704 001076 2022 ISZ COUNT 705 001077 5264 JMP S1 706 001100 2241 ISZ SYMCHK /TAKE FOUND ENTRY 707 001101 5316 JMP OUT1 708 709 710 001102 1331 COMPR, TAD LAST /LAST GASP? 711 001103 7640 SZA CLA 712 001104 5312 JMP OUT2 /YEP 713 001105 1057 TAD SYMNUM /LINK TELLS THE TALE! 714 001106 7420 SNL 715 001107 5251 JMP COMP-1 /ADJUST HIGH LIMIT 716 001110 3330 DCA TLOW 717 001111 5252 JMP COMP 718 719 720 001112 1057 OUT2, TAD SYMNUM 721 001113 7430 SZL 722 001114 7001 IAC 723 001115 3057 DCA SYMNUM 724 001116 1057 OUT1, TAD SYMNUM /ADDING THE FIRST ENTRY AFTER 725 001117 7440 SZA /AN EXPUNGE WILL CAUSE SYMNUM TO BE 0 726 /AUTOMATICALLY IT HAS TO BE 1 727 001120 5323 JMP .+3 728 001121 2057 ISZ SYMNUM 729 001122 5316 JMP OUT1 730 001123 7106 CLL RTL /FORM SYMADD FROM SYMNUM 731 001124 3056 DCA SYMADD /CORE ADDRESS OF THE SYMBOL 732 001125 2241 ISZ SYMCHK 733 001126 5641 JMP I SYMCHK 734 735 001127 0000 THI, 0 736 001130 0000 TLOW, 0 737 738 001131 0000 LAST, 0 739 740 741 742 /THESE TABLES DEFINE THE LIMITS OF CORE STORAGE IN CREF. 743 /BASTBL GIVES THE START LOC WHERE REFERENCES WILL BE STORED. 744 /LTTBL GIVES THE LO CORE LIMIT OF THOSE REFS. THERE IS ONE ENTRY FOR 745 /EACH FIELD 746 747 001132 7174 BASTBL, 7174 /THIS TABLE GIVES THE BASE 748 001133 7424 7424 /LOCATIONS INEACH FIELD WHERE THE 749 001134 7574 7574 /REFERENCES BEGIN 750 001135 7574 7574 /REFS START HERE AND BUILD TOWARD LOWER 751 001136 7574 7574 /CORE ADDRESSES 752 001137 7574 7574 753 001140 7574 7574 754 001141 7574 7574 755 001142 5621 LTTBL, DOLL1 /THIS TABLE GIVES THE LOW 756 001143 0010 10 /CORE ADDRESS OF THE REFS IN EACH FIELD 757 001144 0004 4 /NOTE:ENDPAS JUGGLES THESE AROUND 758 001145 0004 4 /TO OPTIMIZE CREF STORAGE 759 001146 0004 4 760 001147 0004 4 761 001150 0004 4 762 001151 0004 4 763 764 001152 0000 DIVE, 0 765 001153 7450 SNA /IF 0, PRODUCE A SPACE 766 001154 5361 JMP DIVSPC 767 001155 1377 TAD (-37 768 001156 7540 SMA SZA 769 001157 1137 TAD [-60 770 001160 1141 TAD [77 771 001161 1136 DIVSPC, TAD [240 772 001162 5752 JMP I DIVE 773 774 001163 0000 SETXR, 0 /SETUP INDEX REGS FOR SEARC,ENTRY 775 001164 1057 TAD SYMNUM /SETUP WHEN FOUND SYMBOL 776 001165 7106 CLL RTL /CORE ADDRESS OF SYMBOL 777 001166 1104 TAD M1 778 001167 3013 DCA XRSYM2 779 001170 1135 TAD [SYM1-1 780 001171 3012 DCA XRSYM1 781 001172 1152 TAD [-4 782 001173 3022 DCA COUNT 783 001174 5763 JMP I SETXR 784 785 001175 0037 *1200 001176 7760 001177 7741 786 /ENTRY IS SLOW! IT ENTERS A SYMBOL BY PUSHING DOWN WHAT IS 787 /BELOW THE PROPER ENTRY.ENTRY CAN ONLY BE USED IN MAKING 788 /ENTRIES IN THE PERMANENT (USER) SYMBOL TABLE. 789 /ENTRY CONDITIONS:AC SHOULD BE CLEAR! 790 / SYMNUM SHOULD HAVE THE SYMBOL NUMBER OF THE 791 / PROPOSED ENTRY. SYMCHK RETURNS THIS WHEN THE 792 / SEARCH IS UNSUCCESSFUL. 793 794 001200 0000 ENTRY, 0 795 001201 4777 JMS I (SETXR /SETUP INDEX REGISTERS 796 001202 1042 TAD USER+1 /CHECK FOR POSSIBLE OVERFLOW 797 001203 7040 CMA /WE DON'T WANT TO WIPE PSEUDO TABLE 798 001204 1043 TAD PSEUDO 799 001205 7750 SPA SNA CLA 800 001206 5250 JMP NMOR /BAD!OVERFLOW HAS OCCURRED 801 001207 2042 ISZ USER+1 /OK..BUMP SYMBOL COUNT 802 001210 1042 TAD USER+1 803 001211 7106 CLL RTL /CORE ADDRESS OF ENTRY 804 001212 3027 DCA TEMP1 805 001213 1027 TAD TEMP1 806 001214 1152 TAD [-4 /GIVES BOTTOM OF TABLE NOW 807 001215 3025 DCA SAVE 808 001216 1025 TAD SAVE /TEST FOR AN 'ADD-ON' ENTRY 809 001217 7040 CMA 810 001220 1056 TAD SYMADD 811 001221 3022 DCA COUNT /-# OF WORDS TO MOVE 812 813 001222 6211 CDF 10 814 001223 1425 NTR1, TAD I SAVE 815 001224 3427 DCA I TEMP1 /THE BAD LOOP! 816 001225 7040 CMA 817 001226 1025 TAD SAVE 818 001227 3025 DCA SAVE /I WISH WE HAD A DSZ!(DECREMENT &SKIP ON 0 819 001230 7040 CMA 820 001231 1027 TAD TEMP1 821 001232 3027 DCA TEMP1 822 001233 2022 ISZ COUNT /DONE? 823 001234 5223 JMP NTR1 /UNFORTUNATELY NOT 824 825 001235 6201 CDF 0 826 001236 7200 ENTER, CLA /NOW PUT IN OUR ENTRY 827 001237 1152 TAD [-4 828 001240 3022 DCA COUNT /THE 4TH IS A 0 WORD (USER FOLLOWS SYM3) 829 001241 1412 NTR2, TAD I XRSYM1 830 001242 6211 CDF 10 831 001243 3413 DCA I XRSYM2 832 001244 6201 CDF 0 833 001245 2022 ISZ COUNT 834 001246 5241 JMP NTR2 835 001247 5600 JMP I ENTRY 836 837 001250 4576 NMOR, JMS I [ERROR /SYMBOL OVERFLOW 838 001251 3006 SYMERR 839 840 841 001252 4272 TXT, JMS GETC 842 001253 1376 TAD (-240 /IGNORE SPACES 843 001254 7650 SNA CLA 844 001255 5252 JMP TXT 845 001256 1023 TAD CHAR 846 001257 7041 CIA /STRING DELIMITER 847 001260 3277 DCA DELMIT 848 001261 4272 TXT2, JMS GETC 849 001262 1277 TAD DELMIT /REACHED END OF STRING? 850 001263 7650 SNA CLA 851 001264 5534 JMP I [B /YES 852 001265 1023 TAD CHAR /NO..END OF LINE? 853 001266 1155 TAD [-215 854 001267 7650 SNA CLA 855 001270 5534 JMP I [B 856 001271 5261 JMP TXT2 857 858 001272 0000 GETC, 0 859 001273 1410 TAD I XRLINE 860 001274 3023 DCA CHAR 861 001275 1023 TAD CHAR 862 001276 5672 JMP I GETC /GET A CHAR;STORE IT, RETURN IN AC 863 001277 0000 DELMIT, 0 864 865 866 867 868 001300 0000 BUMP, 0 /ROUTINE TO BUMP REFERENCE COUNTERS 869 001301 1056 TAD SYMADD 870 001302 1146 TAD [3 871 001303 3025 DCA SAVE /ADDRESS OF REFERENCE COUNTER 872 001304 6211 CDF 10 873 001305 1425 TAD I SAVE 874 001306 7710 SPA CLA /IF 4000 BIT ON, AN EXTRA ENTRY HAS 875 /ALREADY BEEN MADE FOR THIS SYMBOL 876 001307 5317 JMP ONEISZ 877 001310 1050 TAD CONST 878 001311 7650 SNA CLA /IS SEQNO >4095? 879 001312 5317 JMP ONEISZ /NOT YET 880 001313 1133 TAD [4000 881 001314 1425 TAD I SAVE 882 001315 3425 DCA I SAVE /MARK IT AS BEING NOTED 883 001316 7040 CMA 884 001317 1104 ONEISZ, TAD M1 /EITHER -1 OR -2 885 001320 3022 DCA COUNT 886 001321 1140 BUMP2, TAD [3777 /THIS CODE PROTECTS AGAINST 887 001322 0425 AND I SAVE />2048 REFS. IF SIGN BIT EVER BECOMES 888 001323 2425 ISZ I SAVE /NEG. ON THE ISZ,KILL IT!! 889 001324 7000 NOP /USELESS PROTECTION 890 001325 1146 TAD [3 /IF AC GOES NEG. HE DIES!! 891 001326 7710 SPA CLA 892 001327 5334 JMP ERR7 893 001330 2022 ISZ COUNT 894 001331 5321 JMP BUMP2 895 001332 6201 CDF 0 896 001333 5700 JMP I BUMP 897 898 001334 6201 ERR7, CDF 0 899 001335 4576 JMS I [ERROR 900 001336 3052 REFERR 901 902 001337 0000 PTRSET, 0 /THIS ROUTINE TAKES 903 001340 1146 TAD [3 /THE SYMBOL TABLE THAT 904 001341 3060 DCA BUFFER /PRODUCED AND SETS UP EACH REFERENCE 905 001342 3057 DCA SYMNUM /AREA WITH A POINTER INTO THE AREA 906 001343 7240 CLA CMA 907 001344 1042 TAD USER+1 /AND A 0 LOCATION TO HOLD THE DEFINITION 908 001345 7041 CIA /SEQUENCE NO. 909 001346 3022 DCA COUNT 910 001347 1153 PTRST1, TAD [4 /START PICKING UP POINTERS 911 001350 1060 TAD BUFFER 912 001351 3060 DCA BUFFER 913 001352 2057 ISZ SYMNUM /CORRESPONDING SYMBOL NUMBER 914 001353 4775 JMS I (GETFLD /FORM CDF N FOR REFERENCE AREA 915 001354 3363 DCA CDTFLD 916 001355 6211 CDF 10 917 001356 1460 TAD I BUFFER /IF PERMANENT SYMBOL, THIS LOC=0 918 001357 7450 SNA /IF SO, SKIP IT 919 001360 5370 JMP PTRST2 920 001361 1104 TAD M1 921 001362 3025 DCA SAVE 922 001363 7402 CDTFLD, HLT 923 001364 3425 DCA I SAVE 924 001365 2025 ISZ SAVE /POINT TO INDEX WORD 925 001366 1132 TAD [2 926 001367 3425 DCA I SAVE 927 001370 6201 PTRST2, CDF 0 928 001371 2022 ISZ COUNT 929 001372 5347 JMP PTRST1 930 001373 5737 JMP I PTRSET 931 932 001375 1714 *1400 001376 7540 001377 1163 933 /ENDPAS IS ARRIVED AT WHEN A PASS THROUGH THE INPUT HAS BEEN 934 /COMPLETED.SOME COMPLICATED DIDDLING GOES ON HERE. 935 936 001400 2046 ENDPAS, ISZ PASSG1 937 001401 5777 JMP I (DUMP /DUMP WHAT WE HAVE 938 001402 4776 JMS I (ENDFIX 939 001403 7001 IAC /POINT TO END OF NEW TABLE 940 001404 3042 DCA USER+1 /YES..THAT BECOMES THE TOTAL NO. 941 /OF SYMBOLS IN OUR NEW TABLE 942 001405 1140 TAD [3777 /O.K...NOW READ IN A SEGMENT 943 001406 0070 AND CNTROL /NOW FORMING READ CONTROL 944 001407 3070 DCA CNTROL 945 001410 1153 TAD [4 /READ SYMBOLS INTO F1 AT LOC.4 946 001411 3071 DCA CTPTR 947 001412 4066 JMS IOSR /DO THE READ 948 001413 3051 NDPS1, DCA FLDPTR /INITIALLY AT FIELD 0 949 001414 1131 TAD [6034 950 001415 3530 DCA I [OUTSW 951 001416 3061 END2, DCA ADDER /ADDER HOLDS THE COUNT OF THE NUMBER 952 /OF REFERENCES TO THE SYMBOLS THUS FAR 953 /EXAMINED. THIS IS COMPARED TO THE AVAILABLE 954 /CORE IN A PARTICULAR FIELD. WHEN THAT OVER- 955 /FLOWS WE HAVE TO EITHER MOVE TO ANOTHER FIELD 956 /FOR THE REFERENCES OR WRITE PART OF THE SYMBOL 957 /TABLE ONTO SYS. 958 001417 1375 TAD (BASTBL 959 001420 1051 TAD FLDPTR 960 001421 3027 DCA TEMP1 /INITIAL BASE OF REFS 961 001422 1427 TAD I TEMP1 962 001423 3063 DCA BASE 963 001424 1051 TAD FLDPTR /NOW GET MASK FOR QUESTION.. 964 001425 7040 CMA /DOES THIS FIELD HAVE SYMBOLS? 965 001426 3022 DCA COUNT 966 001427 7120 CLL CML 967 001430 7004 RAL 968 001431 2022 ISZ COUNT 969 001432 5230 JMP .-2 970 001433 3055 DCA MASKF 971 001434 1051 TAD FLDPTR /GET ADDRESS OF UPPER LIMIT 972 001435 1374 TAD (LTTBL /FOR LATER 973 001436 3064 DCA SYMLIM 974 001437 1051 TAD FLDPTR /SET NEW LIMIT IN FIELD 1 975 001440 1127 TAD [BREAK 976 001441 3366 DCA NUSER /THE NEW LIMIT FOR REFS IS 977 001442 3766 DCA I NUSER /ZERO SYMBOL IN CURRENT FIELD LOC. 978 001443 1464 TAD I SYMLIM 979 001444 1071 FUJ1, TAD CTPTR /IF MORE THAN 2 FIELDS EXIST 980 /THIS BECOMES A NOP. THE LIMIT IN 981 /FIELD 1 IS AT THE BOTTOM OF THE 982 /SYMBOL TABLE 983 001445 3367 DCA LIMIT 984 001446 1071 NDPS2, TAD CTPTR /CTPTR HOLD THE CORE ADDRESS OF THE 985 /THE 4TH LOCATION OF A GIVEN SYMBOL. THIS 986 /IS ALSO THE REFERENCE COUNTER FOR THAT SYMBOL 987 001447 7112 CLL RTR /FORM SYMBOL NUMBER 988 001450 0126 AND [1777 989 001451 3022 DCA COUNT /SAVE FOR LATER 990 001452 1061 TAD ADDER 991 001453 7041 CIA 992 001454 1063 TAD BASE /NEXT REFERENCE AREA 993 001455 3025 DCA SAVE /IF IT FITS IN THIS AREA 994 /USED WHEN WE MAKE ACTUAL REF ENTRIES 995 001456 6211 CDF 10 996 001457 1471 TAD I CTPTR /# REFS FOR THIS SYMBOL 997 001460 3026 DCA TEMP 998 001461 1146 TAD [3 999 001462 1071 TAD CTPTR 1000 001463 3071 DCA CTPTR 1001 001464 1026 TAD TEMP 1002 001465 7710 SPA CLA /PERMANENT SYMBOL 1003 001466 5314 JMP PRMSYM /YES 1004 001467 1471 TAD I CTPTR 1005 001470 0140 AND [3777 /MASK GT 4095 BIT 1006 001471 1061 TAD ADDER 1007 001472 3061 DCA ADDER /SEE IF THIS SYMBOL WILL FIT IN THE 1008 /CURRENT FIELD HOLDING REFS 1009 001473 6211 CDF 10 /MUST ADD UP NEW REFS ALSO 1010 001474 1471 TAD I CTPTR 1011 001475 0140 AND [3777 1012 001476 6201 CDF 0 1013 001477 7100 CLL 1014 001500 1367 TAD LIMIT /IF LINK GOES ON, REFS WON'T FIT 1015 001501 7430 SZL 1016 001502 5336 JMP CUTSYM 1017 001503 7140 CMA CLL /WHEN UPPER MEETS LOWER,QUIT 1018 001504 1025 TAD SAVE 1019 001505 7620 SNL CLA 1020 001506 5336 JMP CUTSYM /OK..QUIT! 1021 001507 6211 CDF 10 1022 001510 1025 TAD SAVE /FITS..PUT IN BASE WHERE THIS SYMBOL'S 1023 /REFS BEGIN 1024 001511 3471 DCA I CTPTR 1025 001512 2061 ISZ ADDER 1026 001513 2061 ISZ ADDER /2 EXTRA FOR BOOKKEEPING 1027 001514 6201 PRMSYM, CDF 0 1028 001515 1022 TAD COUNT /SYMBOL NUMBER..REMEMBER? 1029 001516 3766 DCA I NUSER 1030 001517 1054 TAD SYMFLD /BUT..IF THIS FIELD HAS SYMBOLS, 1031 001520 0055 AND MASKF /LET'S REDUCE HIS AVAILABLE SPACE 1032 001521 7650 SNA CLA 1033 001522 5326 JMP .+4 /NO SYMBOLS 1034 001523 1153 TAD [4 1035 001524 1367 TAD LIMIT 1036 001525 3367 DCA LIMIT 1037 001526 1022 TAD COUNT /SEE IF WE ARE DONE 1038 001527 7040 CMA 1039 001530 1042 TAD USER+1 1040 001531 7450 SNA 1041 001532 5773 JMP I (DONE /YES!! PROBABLY FORGOT SOMETHING 1042 001533 3062 DCA SYSM /BECOMES # SYMBOLS TO WRITE OUT IN CASE 1043 /WE RUN OUT OF ROOM 1044 001534 2071 ISZ CTPTR 1045 001535 5246 JMP NDPS2 /CYCLE FOR NEXT SYMBOL 1046 1047 001536 7200 CUTSYM, CLA 1048 001537 2051 ISZ FLDPTR /GO TO ANOTHER FIELD 1049 001540 1051 TAD FLDPTR /DOES IT EXIST? 1050 001541 7100 CLL 1051 001542 1047 TAD MAXFLD 1052 001543 7620 SNL CLA 1053 001544 5364 JMP END3 /YES..GROOVY 1054 001545 1062 TAD SYSM /NOPE..HAVE TO WRITE REMAINDER OUT 1055 001546 7104 CLL RAL /CONVER TO PAGES 1056 001547 0372 AND (3700 /FORM CONTROL WORD FOR WRITE 1057 001550 1125 TAD [4110 1058 001551 3070 DCA CNTROL 1059 001552 4771 JMS I (SUB3 /RESET CTPTR 1060 001553 1766 TAD I NUSER 1061 001554 7001 IAC /FUDGE LAST ENTRY IN TABLE 1062 001555 3042 DCA USER+1 /NEW END OF TABLE 1063 001556 4066 JMS IOSR /WRITE THE SEGMENT 1064 001557 6211 CDF 10 /PUT A 7777 AT END OF CURRENT SEG. 1065 001560 7240 CLA CMA 1066 001561 3471 DCA I CTPTR 1067 001562 6201 CDF 0 1068 001563 5770 JMP I (DONE+1 /NOT DONE YET!! 1069 1070 001564 4771 END3, JMS I (SUB3 1071 001565 5216 JMP END2 /AND RESUME THY WORK!! 1072 001566 0000 NUSER, 0 1073 001567 0000 LIMIT, 0 1074 001570 1766 *1600 001571 0757 001572 3700 001573 1765 001574 1142 001575 1132 001576 3155 001577 2000 1075 1076 /PASSN2 IS ENTERED WHEN WE HAVE COLLECTED SOME SORT OF A 1077 /SYMBOL AND IT IS NOT PASS ONE. WE HAVE TO MAKE SURE IT 1078 /IS A USER SYMBOL OR LITERAL. IF IT IS, WE HAVE TO ENTER 1079 /THE SEQUENCE # IN THE AREA SET UP FOR REFERENCES TO THIS 1080 /SYMBOL. ALSO, IF THE REFERENCE IS A DEFINITION, THE SECOND 1081 /LOCATION IN THE REFERENCE AREA IS LOADED WITH THE SEQUENCE 1082 /NO. OF THE LINE WE ARE DOING. 1083 1084 001600 4547 PASSN2, JMS I [SYMCHK 1085 001601 0041 USER /IS IT KNOWN TO US? 1086 001602 5534 JMP I [B /NO..BUT IT MIGHT BE IN A SEGMENT EITHER 1087 /ALREADY DONE OR YET TO BE DONE!! 1088 001603 4302 JMS TSTPRM /TEST FOR A PERMANENT SYMBOL 1089 001604 5534 JMP I [B /PERMANENT SYMBOL 1090 /NOTE:SAVE IS SET UP IN TSTPRM TO CONTAIN THE ADDRESS OF THE 1091 /INDEX WORD. WE USE THIS LATER ON 1092 1093 001605 4314 JMS GETFLD 1094 001606 3267 DCA CDFN /DETERMINE WHAT FIELD THIS SYMBOL HAS ITS 1095 /REFS IN AND FORM A CDF N 1096 001607 1023 TAD CHAR 1097 001610 1264 TAD MCOMMA /IS THIS A DEFINITION? 1098 001611 7440 SZA 1099 001612 1263 TAD MEQ /AN= MAYBE? 1100 001613 7650 SNA CLA 1101 001614 7001 IAC /ONE OR OTHER..MARK AS DEFINITION 1102 001615 3262 DCA DEF 1103 001616 6211 CDF 10 1104 001617 1425 TAD I SAVE /PICK UP POINTER TO REFERENCE AREA 1105 001620 3025 DCA SAVE 1106 001621 1267 TAD CDFN 1107 001622 3223 DCA .+1 1108 001623 7402 HLT /I HATED TO DO THIS!!! 1109 001624 1425 TAD I SAVE 1110 001625 7710 SPA CLA /IF THIS IS NEGATIVE, IT MEANS THAT THE 1111 /SEQUENCE NUMBER HAS WRAPPED AROUND, BUT WE HAVE 1112 /ALREADY MADE A 0 ENTRY TO SHOW THAT 1113 001626 5241 JMP P2 1114 001627 1050 TAD CONST /HAS THE SEQUENCE # WRAPPED? 1115 001630 7650 SNA CLA 1116 001631 5241 JMP P2 /NOT YET 1117 001632 4265 JMS REFENT /YES..MAKE A 0 ENTRY 1118 001633 1267 TAD CDFN 1119 001634 3235 DCA .+1 1120 001635 7402 HLT 1121 001636 1425 TAD I SAVE /MARK AS HAVING A 0 ENTRY 1122 001637 1133 TAD [4000 1123 001640 3425 DCA I SAVE 1124 001641 6201 P2, CDF 0 1125 001642 1024 TAD SEQNO /NOW MAKE A REAL ENTRY 1126 001643 4265 JMS REFENT 1127 001644 1262 TAD DEF 1128 001645 7650 SNA CLA /SHOULD WE FILL IN THE DEFINITION LOC? 1129 001646 5534 JMP I [B /NO 1130 001647 7240 CLA CMA 1131 001650 1025 TAD SAVE /YES..POINT TO IT 1132 001651 3025 DCA SAVE 1133 001652 1267 TAD CDFN 1134 001653 3254 DCA .+1 1135 001654 7402 HLT /THIS IS SLOPPY, BUT SO AM I 1136 001655 1024 TAD SEQNO 1137 001656 7041 CIA 1138 001657 3425 DCA I SAVE 1139 001660 6201 CDFZ, CDF 0 1140 001661 5534 JMP I [B 1141 001662 0000 DEF, 0 1142 001663 7757 MEQ, -21 1143 001664 7524 MCOMMA, -254 1144 1145 /REFENT, MAKES REFERENCES IN THE SYMBOLS AREA AND BUMPS THE 1146 /FIRST LOCATION TO POINT TO THE NEXT LOC. 1147 1148 001665 0000 REFENT, 0 1149 001666 3027 DCA TEMP1 /SAVE SEQNO 1150 001667 7402 CDFN, HLT 1151 001670 1425 TAD I SAVE 1152 001671 0140 AND [3777 /MASK OFF WRAP AROUND BIT 1153 001672 7041 CIA 1154 001673 1025 TAD SAVE /FORM ADDRESS OF THIS REFERENCE 1155 001674 3026 DCA TEMP 1156 001675 1027 TAD TEMP1 1157 001676 3426 DCA I TEMP 1158 001677 2425 ISZ I SAVE /BUMP POINTER 1159 001700 6201 CDF 0 1160 001701 5665 JMP I REFENT 1161 1162 /TSTPRM TESTS THE SYMBOL WE HAVE FOUND FOR BEING A PERMANENT SYMBOL 1163 /PERMANENT SYMBOLS ARE DISTINGUISHED BY HAVING THE 4000 BIT ON. 1164 1165 001702 0000 TSTPRM, 0 1166 001703 1056 TAD SYMADD 1167 001704 1146 TAD [3 1168 001705 3025 DCA SAVE /WE USE THIS ON RETURN!! 1169 001706 6211 CDF 10 1170 001707 1456 TAD I SYMADD 1171 001710 6201 CDF 0 1172 001711 7700 SMA CLA /IS IT MINUS? 1173 001712 2302 ISZ TSTPRM 1174 001713 5702 JMP I TSTPRM 1175 1176 /GETFLD DETERMINES WHAT FIELD A PARTICULAR SYMBOL HAS ITS 1177 /REFS IN. IT DOES IT BY COMPARING THE CURRENT SYMBOLS NUMBER 1178 /WITH THE ENTRIES IN THE BREAK TABLE. 1179 1180 001714 0000 GETFLD, 0 1181 001715 3051 DCA FLDPTR 1182 001716 1127 GF1, TAD [BREAK 1183 001717 1051 TAD FLDPTR /GET BREAK TABLE ENTRY 1184 001720 3026 DCA TEMP 1185 001721 1426 TAD I TEMP 1186 001722 7041 CIA 1187 001723 1057 TAD SYMNUM /SYMNUM WAS SET UP WHEN WE FOUND THE SYMBOL 1188 001724 7750 SPA SNA CLA 1189 001725 5330 JMP GF2 /FIRST NEG. VALUE GIVE FLDPTR 1190 001726 2051 ISZ FLDPTR /TRY NEXT 1191 001727 5316 JMP GF1 1192 001730 4332 GF2, JMS CHDF /FORM THE CDF N 1193 001731 5714 JMP I GETFLD 1194 1195 001732 0000 CHDF, 0 1196 001733 1051 TAD FLDPTR 1197 001734 7106 CLL RTL 1198 001735 7004 RAL 1199 001736 1260 TAD CDFZ 1200 001737 5732 JMP I CHDF 1201 1202 001740 0000 SPACE, 0 /GENERATES AS MANY SPACES AS ARE IN AC 1203 001741 3332 DCA CHDF 1204 001742 1136 TAD [240 1205 001743 4572 JMS I [OCHAR 1206 001744 2332 ISZ CHDF 1207 001745 5342 JMP SPACE+2 1208 001746 5740 JMP I SPACE 1209 1210 001747 0000 CHECK, 0 1211 001750 1747 TAD I CHECK /SUBROUTINE TO TEST CHAR 1212 001751 7041 CIA /AGAINST PRESCRIBED LIMITS 1213 001752 1023 TAD CHAR 1214 001753 7100 CLL 1215 001754 1747 TAD I CHECK 1216 001755 2347 ISZ CHECK 1217 001756 1747 TAD I CHECK 1218 001757 2347 ISZ CHECK 1219 001760 7420 SNL 1220 001761 7610 SKP CLA /VERY UNESTHETIC..BUT IT WORKS! 1221 001762 7650 SNA CLA 1222 001763 2347 ISZ CHECK 1223 001764 5747 JMP I CHECK 1224 1225 001765 2065 DONE, ISZ FINI /SET COMPLETION FLAG 1226 001766 4777 JMS I (IOPEN /SET FOR REREAD 1227 001767 4776 JMS I (PTRSET /PREPARE REFERENCE AREAS 1228 001770 3024 DCA SEQNO /BACK TO BASICS 1229 001771 3050 DCA CONST 1230 001772 5775 JMP I (FIRST /READ FIRST RECORDS 1231 1232 001775 2160 *2000 001776 1337 001777 2600 1233 /DUMP DOES A LITTLE FORMATTING OF THE OUTPUT, AND DUMPS THE 1234 /CROSS REFERENCING TABLE ONTO THE OUTPUT DEVICE. 1235 /ANY FIDDLING WITH THE BUFFERS OR DEVICE HANDLERS WILL HAVE TO 1236 /BE DONE IN DUMP 1237 1238 1239 COUNTR=BASE 1240 REFBUF=IOSR 1241 SCHAR=ADDER 1242 1243 002000 7240 DUMP, CLA CMA 1244 002001 3046 DCA PASSG1 /FORCES ANOTHER PASS AT ENDPAS 1245 002002 7410 DMP7, SKP /V3C 1246 002003 5210 JMP DMP8 /SKIP FIRST-TIME STUFF 1247 002004 2100 ISZ LINES /V3C 1248 002005 2100 ISZ LINES /DIF NO. LINES PER PAGE NOW 1249 002006 4565 JMS I [FORM /FIRST TIME THRU GETS A FORM FEED 1250 002007 3202 DCA DMP7 /FUTURE PASSES DON'T 1251 002010 1042 DMP8, TAD USER+1 1252 002011 7041 CIA 1253 002012 3063 DCA COUNTR /# SYMBOLS TO PROCESS NOW 1254 002013 1146 TAD [3 1255 002014 3060 DCA BUFFER /FIRST SYMBOL IS HERE 1256 002015 5222 JMP DMP6 /GET NO. LINES RIGHT FIRST TIME 1257 002016 4524 DMP5, JMS I [CRLF /V3C 1258 002017 2077 DMP, ISZ LNPRPG /IS FORM FEED NEEDED? 1259 002020 7410 SKP /NOT YET 1260 002021 4565 JMS I [FORM 1261 002022 1157 DMP6, TAD [-3 1262 002023 3033 DCA SYMCNT /2 CHARACTERS PER PASS 1263 002024 3050 DCA CONST /RESET FOR <4096 1264 002025 1103 TAD M12 1265 002026 3364 DCA LINENO 1266 002027 2060 NXTDV, ISZ BUFFER 1267 002030 6211 CDF 10 1268 002031 1460 TAD I BUFFER /PICK UP PACKED WORD 1269 002032 6201 CDF 0 1270 002033 7510 SPA /PERMANENT SYMBOL? 1271 002034 5351 JMP DPERM /YES 1272 002035 4571 JMS I [DIVIDE /CONVERT 2 CHARS AND PRINT 1273 002036 2033 ISZ SYMCNT 1274 002037 5230 JMP NXTDV+1 1275 002040 1152 TAD [-4 1276 002041 4556 JMS I [SPACE /GENERATE(AC) SPACES 1277 002042 1060 TAD BUFFER 1278 002043 7112 CLL RTR /GET SYMBOL NUMBER 1279 002044 0126 AND [1777 1280 002045 3057 DCA SYMNUM 1281 002046 4777 JMS I (GETFLD 1282 002047 3253 DCA CDFNA /CDF N 1283 002050 6211 CDF 10 1284 002051 1460 TAD I BUFFER 1285 002052 3066 DCA REFBUF /BASE OF REFS FOR SYMBOL 1286 002053 7402 CDFNA, HLT 1287 002054 1466 TAD I REFBUF /IF THIS IS NEGATIVE, 1288 002055 7710 SPA CLA /WE LEFT A REF FOR A 0 ENTRY 1289 002056 1104 TAD M1 /IN THAT CASE,DON'T INCLUDE THAT ONE AS 1290 002057 1143 TAD [-2 /A REAL ENTRY. 1291 002060 3033 DCA SYMCNT 1292 002061 1466 TAD I REFBUF 1293 002062 0140 AND [3777 /NOW CALCULATE REAL NO. ENTRIES 1294 002063 1033 TAD SYMCNT 1295 002064 7041 CIA 1296 002065 3033 DCA SYMCNT 1297 002066 7240 CLA CMA 1298 002067 1066 TAD REFBUF 1299 002070 3066 DCA REFBUF 1300 002071 1466 TAD I REFBUF /SEQUENCE # OF DEF. 1301 002072 3363 DCA DEFSEQ 1302 002073 7240 DMP2, CLA CMA 1303 002074 1066 TAD REFBUF 1304 002075 3066 DCA REFBUF 1305 002076 1253 TAD CDFNA 1306 002077 3300 DCA .+1 1307 002100 7402 HLT 1308 002101 1466 TAD I REFBUF /PICK UP A REFERENCE 1309 002102 1363 TAD DEFSEQ /IS THIS THE DEF? 1310 002103 7640 SZA CLA 1311 002104 5307 JMP NODEF 1312 002105 3363 DCA DEFSEQ /ONLY 1 DEF PER LINE 1313 002106 1146 TAD [3 /YES..PRINT # AFTER SEQ # 1314 002107 1136 NODEF, TAD [240 /IF NO, PRINT 2 SPACES 1315 002110 3061 DCA SCHAR 1316 002111 1466 TAD I REFBUF 1317 002112 7640 SZA CLA /IF A 0, ALL FOLLOWING REFS ARE >4095 1318 002113 5317 JMP .+4 1319 002114 1161 TAD [140 1320 002115 3050 DCA CONST 1321 002116 5273 JMP DMP2 /IGNORE ZERO ENTRY!! 1322 002117 1466 TAD I REFBUF 1323 002120 6201 CDF 0 1324 002121 4776 JMS I (CVTSEQ /WRITE THE DECIMAL SEQUENCE # 1325 002122 1061 TAD SCHAR 1326 002123 4572 JMS I [OCHAR /EITHER # OR SPACE 1327 002124 7240 CLA CMA 1328 002125 4556 JMS I [SPACE 1329 002126 2033 ISZ SYMCNT /MORE TO DO? 1330 002127 5336 JMP DMP0 /NO, BUT IS CR/LF REQUIRED? 1331 002130 2063 GETMOR, ISZ COUNTR /EXHAUSTED ALL SYMBOLS? 1332 002131 5216 JMP DMP5 1333 002132 1065 TAD FINI /YES..ARE WE ALL DONE 1334 002133 7650 SNA CLA 1335 002134 5562 JMP I [ENDPAS /NO..READ IN NEXT SEGMENT 1336 002135 5775 JMP I (OCLOSE 1337 1338 002136 2364 DMP0, ISZ LINENO /A CR/LF NEEDED? 1339 002137 5273 JMP DMP2 1340 002140 1103 TAD M12 1341 002141 3364 DCA LINENO /RESET ENTRIES PER LINE 1342 002142 4524 JMS I [CRLF /V3C 1343 002143 2077 ISZ LNPRPG /FORM FEED? 1344 002144 7410 SKP 1345 002145 4565 JMS I [FORM 1346 002146 1103 TAD M12 /AND INDENT NEXT LINE 1347 002147 4556 JMS I [SPACE 1348 002150 5273 JMP DMP2 1349 1350 002151 7200 DPERM, CLA 1351 002152 1146 TAD [3 /PERMANENT SYMBOL 1352 002153 1060 TAD BUFFER 1353 002154 3060 DCA BUFFER /LOOK AT NEXT 1354 002155 2063 ISZ COUNTR 1355 002156 5227 JMP NXTDV 1356 002157 5332 JMP GETMOR+2 1357 1358 002160 4774 FIRST, JMS I (ASHDLR /RESET INPUT FOR READ 1359 002161 4773 JMS I (RDREC /AND READ SOME RECORDS 1360 002162 5772 JMP I (NXTLIN /START READING TEXT 1361 1362 1363 002163 0000 DEFSEQ, 0 1364 002164 7766 LINENO, -12 1365 002165 0000 PASTST, 0 /SR WHICH DETERMINE IF PASS > 1 1366 002166 1046 TAD PASSG1 1367 002167 7710 SPA CLA /IF >0=> PASS >1 1368 002170 2365 ISZ PASTST 1369 002171 5765 JMP I PASTST 1370 002172 0404 *2200 002173 2714 002174 2672 002175 2400 002176 0454 002177 1714 1371 1372 /I/O ROUTINES FOR OS/8 1373 1374 002200 0000 OUSETP, 0 1375 002201 1377 TAD (OUCTL&3700 1376 002202 7041 CIA 1377 002203 3270 DCA OUDWCT /SIZE OF BUFF IN DOUBLEWORDS 1378 002204 1354 TAD XOUBUF 1379 002205 3266 DCA OUPTR /INITIALIZE POINTER 1380 002206 1267 TAD OUJMPE 1381 002207 3225 DCA OUJMP /RESET 3 WAY SWITCH 1382 002210 5600 JMP I OUSETP 1383 1384 002211 0000 OCHAR, 0 1385 002212 0376 AND (377 /CALLED WITH CHARACTER IN AC 1386 002213 3264 DCA OUTEMP 1387 002214 4560 JMS I [PASTST 1388 002215 5611 JMP I OCHAR 1389 002216 6034 OUTSW, KRS /TEST FOR ^C WITH FLAG OR 1390 /JMP I OCHAR IF /P,/U OR PASS 2 /M 1391 002217 1375 TAD (-203 1392 002220 7650 SNA CLA 1393 002221 6031 KSF 1394 002222 5224 JMP .+2 1395 002223 5567 JMP I [7600 /SAVE CORE FOR SOME REASON 1396 002224 2225 ISZ OUJMP /BUMP 3 WAY SWITCH 1397 002225 7402 OUJMP, HLT 1398 002226 5261 JMP OCHAR1 1399 002227 5256 JMP OCHAR2 1400 002230 1264 OCHAR3, TAD OUTEMP /PICK UP CHARACTER 1401 002231 7106 CLL RTL 1402 002232 7006 RTL 1403 002233 0374 AND (7400 /3RD WORD MERGED INTO 2 BUFFER WORDS 1404 002234 1665 TAD I OUPOLD 1405 002235 3665 DCA I OUPOLD 1406 002236 1264 TAD OUTEMP 1407 002237 7112 CLL RTR 1408 002240 7012 RTR 1409 002241 7010 RAR 1410 002242 0374 AND (7400 1411 002243 1666 TAD I OUPTR 1412 002244 3666 DCA I OUPTR 1413 002245 1267 TAD OUJMPE 1414 002246 3225 DCA OUJMP /RESET FOR NEW SET OF 3 CHARS 1415 002247 2266 ISZ OUPTR /BUMP BUFFER POINTER 1416 1417 002250 2270 ISZ OUDWCT 1418 002251 5263 JMP OUCOMN 1419 002252 1271 TAD OUCT /YEP 1420 002253 4340 JMS OUTDMP /WRITE IT 1421 002254 4200 JMS OUSETP /RESET OUT BUFFER 1422 002255 5611 JMP I OCHAR 1423 002256 1266 OCHAR2, TAD OUPTR 1424 002257 3265 DCA OUPOLD /FOR LATER 1425 002260 2266 ISZ OUPTR /SECOND WORD GOES HERE 1426 002261 1264 OCHAR1, TAD OUTEMP 1427 002262 3666 DCA I OUPTR 1428 002263 5611 OUCOMN, JMP I OCHAR 1429 1430 1431 002264 0000 OUTEMP, 0 /TEMP STORE 1432 002265 0000 OUPOLD, 0 /HOLDS OLD POINTER 1433 002266 0000 OUPTR, 0 1434 002267 5225 OUJMPE, JMP OUJMP 1435 002270 0000 OUDWCT, 0 1436 002271 4200 OUCT, OUCTL 1437 1438 1439 002272 0000 OOPEN, 0 /OPEN AN OUTPUT FILE;FETCH HANDLER 1440 002273 1373 TAD (OFILE 1441 002274 3316 DCA OUBLK /POINT TO FILE NAME 1442 002275 1326 TAD XOUDEV 1443 002276 3305 DCA OUHNDL /LEAVE ROOM FOR 2 PAGE HANDLER 1444 002277 6211 CDF 10 1445 002300 1567 TAD I [7600 /OUTPUT DEVICE # 1446 002301 6201 CDF 0 1447 002302 6212 CIF 10 1448 002303 4452 JMS I USR /ASSIGN,FETCH HANDLER 1449 002304 0001 1 1450 002305 7402 OUHNDL, HLT /GETS ENTRY POINT OF HANDLER 1451 002306 5075 JMP HIOERR /HANDLER FAILURE 1452 002307 4772 OUENTR, JMS I (P2ADJ 1453 002310 6211 CDF 10 1454 002311 1567 TAD I [7600 1455 002312 6201 CDF 0 1456 002313 6212 CIF 10 1457 002314 4452 JMS I USR 1458 002315 0003 3 /ENTER OUTPUT FILE 1459 002316 2510 OUBLK, OFILE 1460 002317 0000 OUELEN, 0 /RETURNS WITH LENGTH OF HOLE 1461 002320 5327 JMP OEFAIL 1462 002321 3771 MP2, DCA I (OUCCNT 1463 002322 1316 TAD OUBLK /STARTING RECORD 1464 002323 3355 DCA OUREC 1465 002324 4200 JMS OUSETP /SETUP OUTPUT AREA 1466 002325 5672 JMP I OOPEN 1467 002326 4001 XOUDEV, 4001 /MAY BE ALTERED 1468 1469 002327 6211 OEFAIL, CDF 10 1470 002330 1567 TAD I [7600 1471 002331 0370 AND (7760 /GET LENGTH PART 1472 002332 7650 SNA CLA /WAS IT 0? 1473 002333 5365 JMP ERR3 /YEP..HE LOSES 1474 002334 1567 TAD I [7600 1475 002335 0166 AND [17 /TRY WITH INDETERMINATE LENGTH 1476 002336 3567 DCA I [7600 1477 002337 5307 JMP OUENTR 1478 1479 002340 0000 OUTDMP, 0 /WRITE ACTUAL OUTPUT 1480 002341 3353 DCA OUCTLW 1481 002342 4767 JMS I (OUNREC /FIGURE # RECS TO WRITE 1482 002343 1771 TAD I (OUCCNT 1483 002344 3771 DCA I (OUCCNT /UPDATE CLOSE LENGTH 1484 002345 1771 TAD I (OUCCNT 1485 002346 7120 CLL CML 1486 002347 1317 TAD OUELEN /ROOM FOR THIS WRITE? 1487 002350 7620 SNL CLA 1488 002351 5363 JMP ERR4 /HE LOSES 1489 002352 4705 JMS I OUHNDL /NJ WRITE IT 1490 002353 0000 OUCTLW, 0 1491 002354 7200 XOUBUF, OUBUF 1492 002355 0000 OUREC, 0 1493 002356 5075 JMP HIOERR /A HANDLER BADNESS 1494 002357 4767 JMS I (OUNREC 1495 002360 1355 TAD OUREC /UPDATE OUTPUT RECORD # 1496 002361 3355 DCA OUREC 1497 002362 5740 JMP I OUTDMP 1498 1499 002363 4576 ERR4, JMS I [ERROR 1500 002364 3030 FULERR 1501 002365 4576 ERR3, JMS I [ERROR 1502 002366 3022 ENTERR 1503 1504 002367 3200 *2400 002370 7760 002371 2465 002372 0263 002373 2510 002374 7400 002375 7575 002376 0377 002377 0200 1505 002400 1302 OCLOSE, TAD HCREF 1506 002401 7640 SZA CLA /IF NOT LAST PASS 1507 002402 5212 JMP NOVERS /NO NEED FOR VERSION NO. 1508 002403 4354 JMS CRLF 1509 002404 1377 TAD ("V-300^R+VERSN-"0+40 1510 002405 4571 JMS I [DIVIDE 1511 002406 1376 TAD (PATCHL /PATCH NO.-ON PAGE 1512 002407 4572 JMS I [OCHAR 1513 002410 4354 JMS CRLF 1514 002411 4314 JMS FORM /V3C 1515 NOVERS, 1516 002412 1302 TAD HCREF 1517 002413 7650 SNA CLA /IF /M PASS 1 1518 002414 1375 TAD (232 1519 002415 4572 JMS I [OCHAR /NO 232 1520 002416 4572 JMS I [OCHAR 1521 002417 4572 FILLIP, JMS I [OCHAR /FILL WITH 0'S 1522 002420 1374 TAD (177 1523 002421 0773 AND I (OUDWCT 1524 002422 7640 SZA CLA /TO BOUNDARY YET? 1525 002423 5217 JMP FILLIP /NO..KEEP FILLING 1526 002424 1773 TAD I (OUDWCT 1527 002425 1372 TAD (OUCTL&3700 1528 002426 7450 SNA /FULL WRITE LEFT? 1529 002427 5232 JMP NODUMP /YES..BUT ^Z IS OUT 1530 002430 1371 TAD (4000+OUFLD /FORM WRITE 1531 002431 4770 JMS I (OUTDMP 1532 002432 6212 NODUMP, CIF 10 1533 002433 4452 JMS I USR 1534 002434 0010 10 /LOCK IN MONITOR 1535 002435 1767 TAD I (OUREC 1536 002436 6211 CDF 10 1537 002437 3414 DCA I OUSAVX 1538 002440 6201 CDF 0 1539 002441 1766 TAD I (OUELEN 1540 002442 6211 CDF 10 1541 002443 3414 DCA I OUSAVX 1542 002444 1077 TAD LNPRPG 1543 002445 3414 DCA I OUSAVX 1544 002446 1265 TAD OUCCNT 1545 002447 3414 DCA I OUSAVX 1546 002450 1567 TAD I [7600 1547 002451 6201 CDF 0 1548 002452 2302 ISZ HCREF 1549 002453 5261 JMP NOD1 1550 002454 6212 CIF 10 1551 002455 4523 JMS I [200 1552 002456 0006 6 1553 002457 0000 BLK, 0 1554 002460 0000 0 1555 002461 6212 NOD1, CIF 10 1556 002462 4523 JMS I [200 1557 002463 0004 4 /CLOSE OUTPUT FILE 1558 002464 2510 OFILE /POINTER TO FILE NAME 1559 002465 0000 OUCCNT, 0 /CLOSING LENGTH 1560 002466 5304 JMP ERR5 /SORRY 1561 /FOR LONG FILES(/M), IT WILL CHAIN TO ITSELF ON FIRST PASS. 1562 /ON SECOND PASS,IT WILL DELETE FILE CREFTM.LS(IF NO E) 1563 002467 2303 ISZ SLSWH /DELETE TEMP FILE SWITCH 1564 002470 5301 JMP ALDONE 1565 002471 7201 CLA IAC /SYS 1566 002472 6201 CDF 0 1567 002473 6212 CIF 10 1568 002474 4523 JMS I [200 1569 002475 0004 4 /DELETE CREFLS.TM 1570 002476 3151 CHANNM 1571 002477 0000 0 1572 002500 7200 CLA 1573 002501 5570 ALDONE, JMP I [7605 1574 002502 0000 HCREF, 0 1575 002503 0000 SLSWH, 0 1576 1577 002504 4576 ERR5, JMS I [ERROR 1578 002505 3036 CLSERR 1579 002506 4576 ERR6, JMS I [ERROR 1580 002507 3044 INPERR 1581 1582 1583 002510 0000 OFILE, ZBLOCK 4 /OUTPUT FILE NAME GOES HERE 002511 0000 002512 0000 002513 0000 1584 1585 002514 0000 FORM, 0 /GENERATE 214 IF NOT TTY 1586 002515 4560 JMS I [PASTST /IF PASS>1, NO FORM FEED 1587 002516 5714 JMP I FORM 1588 002517 1362 TAD TTYSWT 1589 002520 7640 SZA CLA 1590 002521 5350 JMP FORM2 1591 002522 1077 TAD LNPRPG /FILL TO END OF PAGE 1592 002523 7450 SNA /IF 0, GENERATE 8 LINE FEEDS 1593 002524 1152 TAD [-4 1594 002525 3022 DCA COUNT 1595 002526 4354 JMS CRLF 1596 002527 2022 ISZ COUNT 1597 002530 5357 JMP CRLF1 /HA! GENERATE EXTRA LINE FEED!! 1598 002531 1173 TAD [-6 1599 002532 3022 DCA COUNT 1600 002533 1365 TAD ("- /GENERATE ------ 1601 002534 4572 JMS I [OCHAR 1602 002535 2022 ISZ COUNT 1603 002536 5333 JMP .-3 1604 002537 1152 TAD [-4 1605 002540 3022 DCA COUNT 1606 002541 4354 FORM3, JMS CRLF 1607 002542 2022 ISZ COUNT 1608 002543 5357 JMP CRLF1 1609 002544 1100 TAD LINES /V3C 1610 002545 7000 NOP 1611 002546 3077 DCA LNPRPG /RESET TO TOP OF PAGE 1612 002547 5714 JMP I FORM 1613 1614 002550 7240 FORM2, CLA CMA 1615 002551 3022 DCA COUNT 1616 002552 7040 CMA 1617 002553 5341 JMP FORM3 /USE [215 TO GENERATE A 214 1618 1619 002554 0000 CRLF, 0 /GENERATE CRRIAGE RET AND LINE FEED 1620 002555 1122 TAD [215 1621 002556 4572 JMS I [OCHAR 1622 002557 1121 CRLF1, TAD [212 1623 002560 4572 JMS I [OCHAR 1624 002561 5754 JMP I CRLF 1625 1626 002562 0000 TTYSWT, 0 1627 1628 1629 002565 0255 *2600 002566 2317 002567 2355 002570 2340 002571 4000 002572 0200 002573 2270 002574 0177 002575 0232 002576 0301 002577 1701 1630 002600 0000 IOPEN, 0 1631 002601 7240 CLA CMA 1632 002602 3265 DCA INCHCT /FORCE READ OF NEW FILE 1633 002603 2267 ISZ INEOF 1634 002604 1377 TAD (7617 1635 002605 3266 DCA INFPTR 1636 002606 5600 JMP I IOPEN 1637 1638 002607 4600 INPTR, INBUF 1639 1640 002610 0000 ICHAR, 0 1641 002611 2227 INCHAR, ISZ INJMP /PACKING SWITCH 1642 002612 2265 ISZ INCHCT /BUFFER EXHAUSTED? 1643 002613 5227 INJMPP, JMP INJMP /NOPE 1644 002614 1267 TAD INEOF /WAS LAST AN EOF? 1645 002615 7650 SNA CLA 1646 002616 5225 JMP INGBUF /NO..GET NEXT INPUT 1647 002617 6211 CDF 10 1648 002620 1666 TAD I INFPTR 1649 002621 6201 CDF 0 1650 002622 7650 SNA CLA /MORE INPUT? 1651 002623 5610 JMP I ICHAR /NO..EOF RETURN 1652 1653 002624 4272 JMS ASHDLR /SET UP STRT RECORD 1654 002625 4314 INGBUF, JMS RDREC /AND READ SOME RECORDS 1655 002626 5211 JMP INCHAR 1656 /THIS IS DONE TO OPTIMIZE THE DECTAPE 1657 /ROCKING. INITIALIZATION DOES THESE 1658 /THE FIRST TIME. 1659 1660 1661 002627 5227 INJMP, JMP . /3 WAY SWITCH 1662 002630 5251 JMP ICHAR1 1663 002631 5245 JMP ICHAR2 1664 002632 1213 ICHAR3, TAD INJMPP 1665 002633 3227 DCA INJMP 1666 002634 1607 TAD I INPTR 1667 002635 0376 AND (7400 /CONTENTS OF BUFFER 1668 002636 7112 CLL RTR 1669 002637 7012 RTR 1670 002640 1333 TAD INCTLW 1671 002641 7012 RTR 1672 002642 7012 RTR /GETS THIRD WORD FROM 1 AND 2 1673 002643 2207 ISZ INPTR /NEXT BUFFER LOC 1674 002644 5252 JMP INCOMN 1675 002645 1607 ICHAR2, TAD I INPTR 1676 002646 0376 AND (7400 1677 002647 3333 DCA INCTLW /TEMP SAVE 1678 002650 2207 ISZ INPTR 1679 002651 1607 ICHAR1, TAD I INPTR 1680 002652 0375 INCOMN, AND (177 /PARITY TEST 1681 002653 7450 SNA /IF 200 CODE..IGNORE IT 1682 002654 5211 JMP INCHAR 1683 002655 1123 TAD [200 1684 002656 1374 TAD (-232 /IS IT ^Z? 1685 002657 7450 SNA 1686 002660 5610 JMP I ICHAR /YES..NOMMORE!! 1687 002661 1373 TAD (232 1688 002662 2210 ISZ ICHAR /SKIP EOF RETURN 1689 002663 3023 DCA CHAR 1690 002664 5610 JMP I ICHAR 1691 002665 0000 INCHCT, 0 1692 002666 7617 INFPTR, 7617 1693 002667 0000 INEOF, 0 1694 002670 0000 INCTR, 0 1695 002671 0000 INHAND, 0 1696 1697 002672 0000 ASHDLR, 0 1698 1699 002673 6211 CDF 10 1700 002674 1666 TAD I INFPTR 1701 002675 0372 AND (7760 /LENGTH PART OF WORD 1702 002676 7440 SZA /0 IMPLIES .GTE. 256 1703 002677 1166 TAD [17 1704 002700 7132 CLL CML RTR 1705 002701 7012 RTR 1706 002702 3270 DCA INCTR 1707 002703 2266 ISZ INFPTR /BUMP TO NEXT 1708 002704 1666 TAD I INFPTR /GET STARTING RECORD 1709 002705 3335 DCA INREC 1710 002706 2266 ISZ INFPTR 1711 002707 3267 DCA INEOF 1712 002710 6201 CDF 0 1713 002711 5672 JMP I ASHDLR 1714 002712 0002 XINREC, 2 /DEFAULT CONDITIONS 1715 002713 0401 XINCL1, 401 1716 1717 002714 0000 RDREC, 0 1718 002715 1270 TAD INCTR 1719 002716 7100 CLL 1720 002717 1312 TAD XINRECS /LINK ON IF OVERFLOW AND LAST READ 1721 002720 7420 SNL 1722 002721 3270 DCA INCTR /UPDATE IF NO OVERFLOW 1723 002722 7430 SZL 1724 002723 2267 ISZ INEOF 1725 002724 7172 CLL CML CMA RTR /CONTROL WORD FROM OVERFLOW 1726 002725 7012 RTR 1727 002726 7012 RTR 1728 002727 1313 TAD XINCL1 1729 002730 3333 DCA INCTLW 1730 002731 6201 CDF 0 1731 002732 4671 JMS I INHAND 1732 002733 0000 INCTLW, 0 1733 002734 4600 INBUFP, INBUF 1734 002735 0000 INREC, 0 1735 002736 5356 JMP INERRX /FATAL OR EOF 1736 002737 1335 INBREC, TAD INREC 1737 002740 1312 TAD XINREC 1738 002741 3335 DCA INREC /UPDATE # READ 1739 002742 1333 TAD INCTLW 1740 002743 0167 AND [7600 1741 002744 7104 CLL RAL 1742 002745 1333 TAD INCTLW 1743 002746 0167 AND [7600 1744 002747 7040 CMA 1745 002750 3265 DCA INCHCT /NEW CHARACTER COUNT 1746 002751 1213 TAD INJMPP 1747 002752 3227 DCA INJMP 1748 002753 1334 TAD INBUFP 1749 002754 3207 DCA INPTR 1750 002755 5714 JMP I RDREC 1751 1752 002756 2267 INERRX, ISZ INEOF /FATAL OR EOF 1753 002757 7700 SMA CLA 1754 002760 5337 JMP INBREC /EOF..NEXT FILE 1755 002761 4576 JMS I [ERROR 1756 002762 3044 INPERR 1757 1758 002763 0000 TTYPRT, 0 /SIMPLE TTY OUTPUT ROUTINE 1759 002764 6046 TLS 1760 002765 6041 TSF 1761 002766 5365 JMP .-1 1762 002767 7200 CLA 1763 002770 5763 JMP I TTYPRT 1764 1765 1766 002772 7760 *3000 002773 0232 002774 7546 002775 0177 002776 7400 002777 7617 1767 003000 0521 HNDERR, "H-300^R+"A-300 /HANDLER FAIL 1768 003001 1120 "N-300^R+"D-300 1769 003002 0775 "L-300^R+"E-300 1770 003003 1364 "R-300^R 1771 003004 0375 "F-300^R+"A-300 1772 003005 0606 "I-300^R+"L-300 1773 1774 003006 1467 SYMERR, "S-300^R+"Y-300 1775 003007 1042 "M-300^R 1776 003010 1214 "O-300^R+"V-300 1777 003011 0344 "E-300^R+"R-300 1778 003012 0410 "F-300^R+"L-300 1779 003013 1215 "O-300^R+"W-300 1780 1781 003014 0255 LPTERR, "D-300^R+"E-300 /DEV LPT BAD 1782 003015 1634 "V-300^R 1783 003016 1010 "L-300^R+"P-300 1784 003017 1510 "T-300^R 1785 003020 0125 "B-300^R+"A-300 1786 003021 0250 "D-300^R 1787 1788 003022 0340 ENTERR, "E-300^R+"N-300 1789 003023 1515 "T-300^R+"E-300 1790 003024 1364 "R-300^R 1791 003025 0375 "F-300^R+"A-300 1792 003026 0606 "I-300^R+"L-300 1793 003027 0326 "E-300^R+"D-300 1794 1795 003030 1213 FULERR, "O-300^R+"U-300 1796 003031 1510 "T-300^R 1797 003032 0255 "D-300^R+"E-300 1798 003033 1634 "V-300^R 1799 003034 0421 "F-300^R+"U-300 1800 003035 1004 "L-300^R+"L-300 1801 1802 003036 0212 CLSERR, "C-300^R+"L-300 1803 003037 1211 "O-300^R+"S-300 1804 003040 0322 "E-300^R 1805 003041 0375 "F-300^R+"A-300 1806 003042 0606 "I-300^R+"L-300 1807 003043 0326 "E-300^R+"D-300 1808 1809 003044 0610 INPERR, "I-300^R+"N-300 1810 003045 1265 "P-300^R+"U-300 1811 003046 1510 "T-300^R 1812 003047 0344 "E-300^R+"R-300 1813 003050 1403 "R-300^R+"O-300 1814 003051 1364 "R-300^R 1815 1816 003052 2664 REFERR, 2664 /2045 REFS 1817 003053 3015 3015 1818 003054 0022 "R-300 1819 003055 0330 "E-300^R+"F-300 1820 003056 1436 "S-300^R 1821 003057 0000 0 1822 1823 /LITERAL PROCESSORS. LITERALS ARE HANDLED ACCORDING TO THEIR 1824 /BINARY DEFINITION. A CURRENT PAGE LITERAL AT,SAY, 0377 WILL 1825 /BE CALLED _L0377. A PAGE ZERO LITERAL AT LOCATION 0100 WILL 1826 /BE CALLED _L0100 1827 /IF ASSEMBLED WITH NEW PAL8, LITERAL INCLUDES FIELD 1828 /SO 00377 IS _00377, 10377 IS _10377 1829 1830 003060 1377 LIT2, TAD (2540 /PAGE 0..FIRST NUMBER ALWAYS 0 1831 003061 3037 DCA SYM2 /_L GOES IN SYM1 FOR BOTH 1832 003062 4323 JMS LCHK 1833 003063 2034 ISZ ISYM 1834 003064 2034 ISZ ISYM /POINT TO SYM3 FOR LAST 2 DIGITS 1835 003065 5275 JMP LIT3 /COMMON CODE 1836 003066 4323 LIT1, JMS LCHK 1837 003067 2034 ISZ ISYM /POINT TO SECOND WORD 1838 003070 1411 TAD I XRLIT /FIRST BINARY DIGIT 1839 003071 4542 JMS I [PACK 1840 003072 1411 TAD I XRLIT 1841 003073 0376 AND (266 /THIS KNOCKS OFF RELATIVE ADDRESS BIT 1842 003074 4542 JMS I [PACK /GOES INTO RIGHT HALF OF SYM2 1843 003075 1030 LIT3, TAD DSWIT /IF /D, DON'T CREF LITERALS 1844 003076 7640 SZA CLA 1845 003077 5320 JMP LITEX /DON'T DO ANYTHING BUT CLEAR COUNTERS 1846 003100 1375 TAD (LITBUF+1 /NOW PICK UP RELATIVE ADD BIT FROM INSTRUCT. 1847 003101 3011 DCA XRLIT 1848 003102 1411 TAD I XRLIT 1849 003103 0374 AND (1 1850 003104 1037 TAD SYM2 1851 003105 3037 DCA SYM2 /FORMING ADDRESS OF LITERAL! 1852 003106 1411 TAD I XRLIT 1853 003107 4542 JMS I [PACK 1854 003110 1411 TAD I XRLIT 1855 003111 4542 JMS I [PACK /LOAD UP SYM3 1856 003112 1355 TAD ENDFIX /WILL PRINT FIELD WITH LIT IF NEW PAL8 1857 003113 0373 AND (57 1858 003114 1120 TAD [2426 1859 003115 3036 DCA SYM1 /PUT IN _ (NEGATIVE!) 1860 003116 4772 JMS I (REPACK 1861 1862 003117 5722 JMP I XUSSYM /DO THE BOOKKEEPING 1863 003120 4772 LITEX, JMS I (REPACK 1864 003121 5534 JMP I [B 1865 003122 0665 XUSSYM, USSYM /WILL BE CHANGED TO PATCH IF /L 1866 003123 0000 LCHK, 0 1867 003124 1021 TAD MARGIN 1868 003125 3011 DCA XRLIT 1869 003126 1411 TAD I XRLIT 1870 003127 3355 DCA ENDFIX 1871 003130 1355 TAD ENDFIX 1872 003131 1371 TAD (-240 1873 003132 7650 SNA CLA 1874 003133 5320 JMP LITEX 1875 003134 5723 JMP I LCHK 1876 1877 003135 1350 GLIN5, TAD CRCNT 1878 003136 7650 SNA CLA 1879 003137 5343 JMP CROUT /NEED THIS CR 1880 003140 2350 ISZ CRCNT 1881 003141 5343 JMP CROUT /NEED CR AFTER HEADER 1882 003142 5770 JMP I (GETLIN 1883 003143 1121 CROUT, TAD [212 1884 003144 4505 JMS I FPUT 1885 003145 1021 TAD MARGIN 1886 003146 3010 DCA XRLINE 1887 003147 5767 JMP I (GLIN6 1888 003150 0000 CRCNT, 0 1889 003151 0322 CHANNM, FILENAME CREFLS.TM 003152 0506 003153 1423 003154 2415 1890 003155 0000 ENDFIX, 0 /TEMP ALSO 1891 003156 4766 JMS I (DOLOT2 1892 003157 3356 DCA .-1 /ONCE ONLY 1893 003160 1062 TAD SYSM 1894 003161 7450 SNA 1895 003162 5765 JMP I (NDPS1 1896 003163 5755 JMP I ENDFIX 1897 003165 1413 *3200 003166 5715 003167 3276 003170 3236 003171 7540 003172 0741 003173 0057 003174 0001 003175 0237 003176 0266 003177 2540 1898 003200 0000 OUNREC, 0 /ESTIMATE # RECS 1899 003201 1607 TAD I XOCTLW 1900 003202 7106 CLL RTL 1901 003203 7006 RTL 1902 003204 7006 RTL /ITS NOT AN ESTIMATE, BUT EXACT!! 1903 003205 0166 AND [17 1904 003206 5600 JMP I OUNREC 1905 003207 2353 XOCTLW, OUCTLW 1906 1907 003210 0000 DIVIDE, 0 1908 003211 3234 DCA DIV45B 1909 003212 3235 DCA DIV45C 1910 003213 5216 JMP DIV45D /START UP HERE 1911 1912 003214 2235 DIV45A, ISZ DIV45C /BUMP THE QUOTIENT 1913 003215 3234 DCA DIV45B /NEW DIVIDEND 1914 003216 1234 DIV45D, TAD DIV45B 1915 003217 1377 TAD (-52 /DIVIDE BY 52 1916 003220 7500 SMA 1917 003221 5214 JMP DIV45A /STILL +; KEEP LOOPING 1918 003222 1376 TAD (52 /REMAINDER IN AC AFTER ADD 1919 003223 4775 JMS I (DIVE /LETTER OR NUMBER? 1920 003224 3234 DCA DIV45B 1921 003225 1235 TAD DIV45C 1922 003226 4775 JMS I (DIVE 1923 003227 4572 JMS I [OCHAR 1924 003230 1234 TAD DIV45B 1925 003231 4572 JMS I [OCHAR 1926 003232 2060 ISZ BUFFER 1927 003233 5610 JMP I DIVIDE 1928 1929 1930 003234 0000 DIV45B, 0 1931 003235 0000 DIV45C, 0 1932 1933 003236 0000 GETLIN, 0 /GET A LINE OF INPUT AND STORE 1934 003237 1021 TAD MARGIN /IT AT LINBUF 1935 003240 3010 DCA XRLINE 1936 003241 4774 INLINE, JMS I (ICHAR 1937 003242 5355 JMP EN 1938 003243 1305 TAD RLSKIP /IF RALF HEADER,ELIM 2 LF 1939 003244 7650 SNA CLA 1940 003245 5252 JMP REGULR /NOT RALF 1941 003246 2305 ISZ RLSKIP /CATCH 2ND LINE 1942 003247 5241 JMP INLINE 1943 003250 1143 TAD [7776 /ELIM EXTRA CR AFTER HEADER 1944 003251 3773 DCA I (CRCNT 1945 003252 1023 REGULR, TAD CHAR /LINE FEED TERMINATES THIS ROUTINE 1946 003253 1032 TAD MLF 1947 003254 7450 SNA 1948 003255 5241 JMP INLINE /IGNORE LF'S ON INPUT 1949 003256 1157 TAD [212-215 /LF-CR 1950 003257 7650 SNA CLA 1951 003260 5273 JMP GLIN3 1952 003261 1010 TAD XRLINE 1953 003262 1372 TAD (-375 1954 003263 7700 SMA CLA 1955 003264 5267 JMP .+3 1956 003265 1023 TAD CHAR 1957 003266 4505 JMS I FPUT 1958 003267 1023 TAD CHAR 1959 003270 1117 TAD [-214 1960 003271 7640 SZA CLA 1961 003272 5241 JMP INLINE 1962 003273 1122 GLIN3, TAD [215 1963 003274 4505 JMS I FPUT 1964 003275 5771 GLIN4, JMP I (GLIN5 1965 003276 1123 GLIN6, TAD [200 /TEST FOR ^C 1966 003277 6034 KRS 1967 003300 1370 TAD (-203 1968 003301 7650 SNA CLA 1969 003302 6031 KSF 1970 003303 5636 JMP I GETLIN 1971 003304 5570 JMP I [7605 /FOUND ^C 1972 003305 0000 RLSKIP, 0 1973 1974 003306 0000 ALLOCT, 0 1975 003307 4767 JMS I (DEVCHK 1976 003310 7617 7617 /CHECK INPUT DEVICE 1977 003311 7710 SPA CLA 1978 003312 7001 IAC /2 PAGE HANDLER 1979 003313 3347 DCA BUFCNT 1980 003314 4767 JMS I (DEVCHK 1981 003315 7600 7600 /CHECK SIZE OF OUTPUT DEV HANDLER 1982 003316 7710 SPA CLA 1983 003317 1132 TAD [2 /2 PAGES 1984 003320 1347 TAD BUFCNT 1985 003321 3347 DCA BUFCNT 1986 003322 7100 CLL 1987 003323 1347 TAD BUFCNT 1988 003324 7010 RAR 1989 003325 7200 CLA 1990 003326 7530 SZL CLL /IF 1 OR 3,IN DEV IS 2 PGS 1991 003327 1123 TAD [200 1992 003330 1366 TAD (3601 1993 003331 3765 DCA I (XOUDEV 1994 003332 1143 TAD [-2 1995 003333 1347 TAD BUFCNT 1996 003334 7740 SMA SZA CLA 1997 003335 5706 JMP I ALLOCT /2 2PAGERS IS DEFAULT 1998 003336 1364 TAD (4200 /IF NOT 2 2PAGERS,INBUF AT 4200 1999 003337 3763 DCA I (INBUFP 2000 003340 1763 TAD I (INBUFP 2001 003341 3762 DCA I (INPTR 2002 003342 1146 TAD [3 2003 003343 3761 DCA I (XINREC 2004 003344 1360 TAD (601 2005 003345 3757 DCA I (XINCL1 2006 003346 5706 JMP I ALLOCT 2007 003347 0000 BUFCNT, 0 2008 003350 0000 CLEAR, 0 /ROUTINE TO CLEAN OUT OLD SYMBOL 2009 003351 3036 DCA SYM1 2010 003352 3037 DCA SYM2 2011 003353 3040 DCA SYM3 2012 003354 5750 JMP I CLEAR 2013 2014 003355 4106 EN, JMS DPAT /V3D 2015 003356 5562 JMP I [ENDPAS 2016 2017 2018 /THIS INITIALIZATION CODE IS DESTROYED WHEN DATA IS READ 2019 /INTO THE BUFFER. FOR THAT REASON, CREF IS NOT RESTARTABLE 2020 2021 003357 2713 *4200 003360 0601 003361 2712 003362 2607 003363 2734 003364 4200 003365 2326 003366 3601 003367 6074 003370 7575 003371 3135 003372 7403 003373 3150 003374 2610 003375 1152 003376 0052 003377 7726 2022 004200 6201 ST1, CDF 0 2023 004201 6212 KLUD, CIF 10 2024 004202 4452 JMS I USR 2025 004203 0005 5 2026 004204 1423 1423 /DEFAULT EXTENSION IS .LS 2027 004205 6211 CHAIN, CDF 10 2028 004206 1777 TAD I (7617 /IF NO INPUT, RESTART CD 2029 004207 7650 SNA CLA 2030 004210 5200 JMP ST1 2031 004211 1567 TAD I [7600 /IF NO OUTPUT, GIVE HIM LPT!! 2032 004212 7640 SZA CLA 2033 004213 5227 JMP ST2 2034 004214 6201 CDF 0 2035 004215 6212 CIF 10 2036 004216 4523 JMS I [200 2037 004217 0012 12 /ASSIGN-NO FETCH 2038 004220 1420 1420 2039 004221 2400 DEVS, 2400 2040 004222 0000 0 2041 004223 5335 JMP ERRTWO /DEFAULT DEVICE IS BAD 2042 004224 1221 TAD DEVS 2043 004225 6211 CDF 10 2044 004226 3567 DCA I [7600 2045 004227 6201 ST2, CDF 0 2046 004230 4776 JMS I (SWITCH 2047 004231 6211 CDF 10 2048 004232 1414 TAD I OUSAVX 2049 004233 6201 CDF 0 2050 004234 3352 DCA PASS2 2051 004235 1152 BLUE0, TAD [-4 2052 004236 3022 DCA COUNT 2053 004237 6211 BLUE, CDF 10 2054 004240 1751 TAD I XNAME 2055 004241 6201 CDF 0 2056 004242 3775 DCA I (OFILE 2057 004243 2351 ISZ XNAME 2058 004244 2375 ISZ (OFILE 2059 004245 2022 ISZ COUNT 2060 004246 5237 JMP BLUE 2061 004247 4774 JMS I (ALLOCT 2062 004250 4773 JMS I (OTYPE 2063 004251 0372 AND (770 /CHECK FOR TTY AS OUTPUT (CAN CLA IF DEBUGGING) 2064 004252 3771 DCA I (TTYSWT 2065 004253 1771 TAD I (TTYSWT /IF LPT IS OUTPUT, 2066 004254 7640 SZA CLA /NO INTERNAL FORM FEEDS GENERATED 2067 004255 3770 DCA I (NOFORM 2068 2069 2070 2071 /NOW WE MOVE UP THE PERMANENT AND PSEUDO-OP TABLES. 2072 /THE Y WERE ASSEMBLED IN FIELD 0 TO SAVE DECTAPE MOTION 2073 /WHEN LOADING. 2074 004256 4767 JMS I (FTEST /GET MACHINE SIZE 2075 004257 1047 TAD MAXFLD 2076 004260 7041 CIA 2077 004261 3047 DCA MAXFLD /- NO.FIELDS 2078 004262 6211 CDF 10 /ASSIGN THE INPUT HANDLER 2079 004263 1777 TAD I (7617 2080 004264 6201 CDF 0 2081 004265 6212 CIF 10 2082 004266 4452 JMS I USR 2083 004267 0001 1 2084 004270 3401 INHNDL, INDEVH+1 2085 004271 7402 HLT /YECH!!! 2086 004272 1270 TAD INHNDL 2087 004273 3766 DCA I (INHAND /SETUP ENTRY POINT 2088 004274 4765 JMS I (ASHDLR /SET UP FIRST READ 2089 004275 1364 TAD (7700 2090 004276 3052 DCA USR /SAVE SYMBOL TABLE 2091 004277 1763 TAD I (7746 2092 004300 0201 AND KLUD 2093 004301 1142 TAD [1000 /MARK NOT RESTARTABLE 2094 004302 3763 DCA I (7746 /SAVE CORE BIT 2095 004303 1410 TAD I XRLINE 2096 004304 3022 DCA COUNT /INITIAL LOAD PROVIDES PARAMETERS FOR 2097 /THE SYMBOL TABLE. THIS IS # WORDS TO MOVE 2098 004305 4325 JMS MOVEM 2099 004306 1031 TAD RSWIT 2100 004307 7650 SNA CLA /DETERMINE WHICH PSEUDO-OPS 2101 004310 1362 TAD (PPSEUD-SPSEUD 2102 004311 1361 TAD (SPSEUD-1 2103 004312 3010 DCA XRLINE 2104 004313 1410 TAD I XRLINE 2105 004314 3043 DCA PSEUDO /TABLES INITIALLY HAVE A SHORT HEADER 2106 /WHICH CONTAINS INFORMATION ABOUT THEM 2107 /PSEUDO CONTAINS STARTING # OF FIRST 2108 2109 2110 2111 004315 1410 TAD I XRLINE 2112 004316 3044 DCA PSEUDO+1 /LAST ENTRY # 2113 004317 1410 TAD I XRLINE 2114 004320 3022 DCA COUNT /# ENTRIES TO MOVE 2115 004321 1410 TAD I XRLINE 2116 004322 3011 DCA XRLIT /WHERE THEY GO IN FIELD 1 2117 004323 4325 JMS MOVEM 2118 004324 5760 JMP I (XFIRST /READ FIRST RECORDS 2119 2120 2121 004325 0000 MOVEM, 0 2122 004326 1410 TAD I XRLINE 2123 004327 6211 CDF 10 2124 004330 3411 DCA I XRLIT 2125 004331 6201 CDF 0 2126 004332 2022 ISZ COUNT 2127 004333 5326 JMP .-5 2128 004334 5725 JMP I MOVEM 2129 004335 4576 ERRTWO, JMS I [ERROR /THIS IS AN IMPOSSIBLE ERROR 2130 004336 3014 LPTERR 2131 004337 0000 CHANCK, 0 2132 004340 7106 CLL RTL /CHECK FOR /C+/E 2133 004341 7004 RAL 2134 004342 7420 SNL 2135 004343 5737 JMP I CHANCK //C IS MINIMUM CONDITION 2136 004344 7012 RTR /V3C USE /1 TO MEAN KEEP CREFLS.TM 2137 004345 7620 SNL CLA 2138 004346 7040 CMA /-1 IF NO E (I.E. DO ELIMINATE) 2139 004347 3757 DCA I (SLSWH 2140 004350 5737 JMP I CHANCK 2141 004351 7601 XNAME, 7601 2142 004352 0000 PASS2, 0 2143 2144 004353 1356 PATCHA, TAD (35 2145 004354 3042 DCA USER+1 2146 004355 5235 JMP BLUE0 2147 004356 0035 *4400 004357 2503 004360 5713 004361 5243 004362 0160 004363 7746 004364 7700 004365 2672 004366 2671 004367 4517 004370 0431 004371 2562 004372 0770 004373 0315 004374 3306 004375 2510 004376 4400 004377 7617 2148 004400 0000 SWITCH, 0 2149 004401 4777 JMS I (FILEXT 2150 004402 7201 CLA IAC 2151 004403 6211 CDF 10 2152 004404 0776 AND I (7644 /TEST FOR /X 2153 004405 3030 DCA DSWIT 2154 004406 1775 TAD I (7643 2155 004407 6201 CDF 0 2156 004410 4774 JMS I (CHANCK 2157 004411 6211 CDF 10 2158 004412 7300 CLA CLL 2159 004413 1776 TAD I (7644 2160 004414 0373 AND (410 /P OR /U USED? 2161 004415 7450 SNA 2162 004416 5227 JMP ST3 2163 004417 6201 CDF 0 2164 004420 0151 AND [10 2165 004421 7650 SNA CLA 2166 004422 5225 JMP TXONLY /JUST /P 2167 004423 1312 TAD XDOLL 2168 004424 3772 DCA I (DOLL12 /NO SYMBOL TABLE 2169 004425 1316 TXONLY, TAD KILOUT /YES..DISABLE PASS ONE OUTPUT 2170 004426 3530 DCA I [OUTSW 2171 004427 7200 ST3, CLA 2172 004430 6211 CDF 10 2173 004431 1776 TAD I (7644 2174 004432 6201 CDF 0 2175 004433 0371 AND (300 /IF SABR (Q), SET RSWIT AND DSWIT 2176 004434 7450 SNA 2177 004435 5244 JMP HCR1 /PAL8 2178 004436 0123 AND [200 /CHECK FOR RALF 2179 004437 7650 SNA CLA 2180 004440 5313 JMP RALFCD /Y 2181 004441 2031 ISZ RSWIT 2182 004442 2030 ISZ DSWIT 2183 004443 3770 DCA I (SCAN3 /ENABLE CHECK FOR SABR CHARS 2184 004444 7200 HCR1, CLA 2185 004445 6211 CDF 10 2186 004446 1776 TAD I (7644 /CHECK FOR M- MAMMOTH FILE(HCREF) 2187 004447 6201 CDF 0 2188 004450 7700 SMA CLA 2189 004451 5767 JMP I (BLUE0 /NOT LONG FILE 2190 /PUT IN NECESSARY PATCHES 2191 004452 7100 CLL 2192 004453 1310 TAD XPATCH 2193 004454 3766 DCA I (HC1 2194 004455 1311 TAD XPTCH1 2195 004456 3765 DCA I (XUSSYM 2196 004457 6211 CDF 10 2197 004460 1764 TAD I (7645 2198 004461 7010 RAR /CHECK IF PASS1 OR 2 FOR /M 2199 004462 7420 SNL 2200 004463 5301 JMP CHNPS1 /PASS 1 2201 004464 7104 RAL CLL /IT'S PASS 2 2202 004465 3764 DCA I (7645 /RESTORE TBL 2203 004466 6201 CDF 0 2204 004467 6212 CIF 10 2205 004470 4763 JMS I (7700 /RESTORE USR 2206 004471 0010 10 2207 004472 1316 TAD KILOUT 2208 004473 3530 DCA I [OUTSW /NO LIST 2209 004474 1312 TAD XDOLL 2210 004475 3772 DCA I (DOLL12 2211 004476 1137 TAD [7720 2212 004477 3762 DCA I (PATCH1 /ANOTHER PATCH 2213 004500 5600 JMP I SWITCH 2214 004501 7124 CHNPS1, CLL CML RAL 2215 004502 3764 DCA I (7645 /SET /9 SWITCH 2216 004503 6201 CDF 0 2217 004504 7240 CLA CMA 2218 004505 3761 DCA I (HCREF /7777 DURING PASS1 2219 004506 4760 JMS I (CHNSET /LOOKUP CREF.SV 2220 004507 5757 JMP I (PATCHA 2221 004510 5261 XPATCH, PATCH&177+5200 2222 004511 0661 XPTCH1, PATCH 2223 004512 5226 XDOLL, DOLL13&177+5200 2224 004513 1143 RALFCD, TAD [7776 /FOR 2 EXTRA LINE FEEDS 2225 004514 3756 DCA I (RLSKIP 2226 004515 5244 JMP HCR1 2227 004516 5611 KILOUT, OCHAR&177+5600 /JMP I OCHAR 2228 2229 2230 /SUBROUTINE TO DETERMINE CORE SIZE 2231 004517 0000 FTEST, 0 2232 004520 4755 JMS I (MORCOR 2233 004521 6201 COR0, CDF 0 2234 004522 1047 TAD MAXFLD /GET FIELD TO TEST 2235 004523 7006 RTL 2236 004524 7004 RAL 2237 004525 0336 AND COR70 2238 004526 1351 TAD COREX 2239 004527 3330 DCA .+1 2240 004530 6201 COR1, CDF /FIELD TO TEST 2241 004531 1753 TAD I CORLOC 2242 004532 7000 COR2, NOP 2243 004533 3330 DCA COR1 2244 004534 1332 TAD COR2 2245 004535 3753 DCA I CORLOC 2246 004536 0070 COR70, 70 2247 004537 1753 TAD I CORLOC 2248 004540 7400 CORX, 7400 2249 004541 1340 TAD CORX 2250 004542 1354 TAD CORV 2251 004543 7640 SZA CLA 2252 004544 5351 JMP COREX /NON-EXISTENT FIELD 2253 004545 1330 TAD COR1 2254 004546 3753 DCA I CORLOC 2255 004547 2047 ISZ MAXFLD 2256 004550 5321 JMP COR0 2257 004551 6201 COREX, CDF 0 2258 004552 5717 DONCOR, JMP I FTEST 2259 004553 4540 CORLOC, CORX 2260 004554 1400 CORV, 1400 2261 2262 004555 0302 FIELD 0 004556 3305 004557 4353 004560 5732 004561 2502 004562 0663 004563 7700 004564 7645 004565 3122 004566 0647 004567 4235 004570 0620 004571 0300 004572 5624 004573 0410 004574 4337 004575 7643 004576 7644 004577 0251 000117 7564 000120 2426 000121 0212 000122 0215 000123 0200 000124 2554 000125 4110 000126 1777 000127 0201 000130 2216 000131 6034 000132 0002 000133 4000 000134 0677 000135 0035 000136 0240 000137 7720 000140 3777 000141 0077 000142 1000 000143 7776 000144 1300 000145 1200 000146 0003 000147 1041 000150 0260 000151 0010 000152 7774 000153 0004 000154 0600 000155 7563 000156 1740 000157 7775 000160 2165 000161 0140 000162 1400 000163 1747 000164 5600 000165 2514 000166 0017 000167 7600 000170 7605 000171 3210 000172 2211 000173 7772 000174 0431 000175 0413 000176 0211 000177 7607 2263 /THESE ARE THE PERMANENT AND PSEUDO OP TABLES FOR CREF 2264 /RAD IS THE BASE USED TO PACK THE CHARACTERS. FOR SABR IT MAY 2265 /HAVE TO BE MOVED TO 51 RATHER THAN 45. 2266 2267 RAD=52 2268 2269 *4600 2270 2271 004600 7325 SYMTAB, -453 /INITIAL ENTRIES 2272 2273 NOPUNCH 2274 *0 2275 ENPUNCH 2276 000000 0000 ZBLOCK 4 /DUMMY ENTRY..SYMCHK NEEDS IT 000001 0000 000002 0000 000003 0000 2277 2278 2279 000004 4070 "A-300^RAD+"N-300+4000 /AND 2280 000005 0250 "D-300^RAD 2281 000006 0000 ZBLOCK 2 000007 0000 2282 2283 000010 4147 "B-300^RAD+"S-300+4000 /BSW 2284 000011 1706 "W-300^RAD 2285 000012 0000 ZBLOCK 2 000013 0000 2286 2287 000014 4177 "C-300^RAD+"A-300+4000 /CAF 2288 000015 0374 "F-300^RAD 2289 000016 0000 ZBLOCK 2 000017 0000 2290 2291 000020 4202 "C-300^RAD+"D-300+4000 /CDF 2292 000021 0374 "F-300^RAD 2293 000022 0000 ZBLOCK 2 000023 0000 2294 2295 000024 4207 "C-300^RAD+"I-300+4000 /CIA 2296 000025 0052 "A-300^RAD 2297 000026 0000 ZBLOCK 2 000027 0000 2298 2299 000030 4207 "C-300^RAD+"I-300+4000 /CIF 2300 000031 0374 "F-300^RAD 2301 000032 0000 ZBLOCK 2 000033 0000 2302 2303 000034 4212 "C-300^RAD+"L-300+4000 /CLA 2304 000035 0052 "A-300^RAD 2305 000036 0000 ZBLOCK 2 000037 0000 2306 2307 000040 4212 "C-300^RAD+"L-300+4000 /CLL 2308 000041 0770 "L-300^RAD 2309 000042 0000 ZBLOCK 2 000043 0000 2310 2311 000044 4213 "C-300^RAD+"M-300+4000 /CMA 2312 000045 0052 "A-300^RAD 2313 000046 0000 ZBLOCK 2 000047 0000 2314 2315 R=52 2316 2317 000050 4213 "C-300^R+"M-300+4000 /CML 2318 000051 0770 "L-300^R 2319 000052 0000 ZBLOCK 2 000053 0000 2320 2321 000054 4253 "D-300^R+"C-300+4000 /DCA 2322 000055 0052 "A-300^R 2323 000056 0000 ZBLOCK 2 000057 0000 2324 000060 4462 "G-300^R+"L-300+4000 /GLK 2325 000061 0716 "K-300^R 2326 000062 0000 ZBLOCK 2 000063 0000 2327 2328 000064 4472 "G-300^R+"T-300+4000 /GTF 2329 000065 0374 "F-300^R 2330 000066 0000 ZBLOCK 2 000067 0000 2331 2332 000070 4534 "H-300^R+"L-300+4000 /HLT 2333 000071 1510 "T-300^R 2334 000072 0000 ZBLOCK 2 000073 0000 2335 2336 000074 4573 "I-300^R+"A-300+4000 /IAC 2337 000075 0176 "C-300^R 2338 000076 0000 ZBLOCK 2 000077 0000 2339 2340 000100 4611 "I-300^R+"O-300+4000 /IOF 2341 000101 0374 "F-300^R 2342 000102 0000 ZBLOCK 2 000103 0000 2343 2344 000104 4611 "I-300^R+"O-300+4000 /ION 2345 000105 1114 "N-300^R 2346 000106 0000 ZBLOCK 2 000107 0000 2347 2348 000110 4611 "I-300^R+"O-300+4000 /IOT 2349 000111 1510 "T-300^R 2350 000112 0000 ZBLOCK 2 000113 0000 2351 2352 000114 4615 "I-300^R+"S-300+4000 /ISZ 2353 000115 2104 "Z-300^R 2354 000116 0000 ZBLOCK 2 000117 0000 2355 2356 000120 4661 "J-300^R+"M-300+4000 /JMP 2357 000121 1240 "P-300^R 2358 000122 0000 ZBLOCK 2 000123 0000 2359 2360 000124 4661 "J-300^R+"M-300+4000 /JMS 2361 000125 1436 "S-300^R 2362 000126 0000 ZBLOCK 2 000127 0000 2363 2364 000130 4721 "K-300^R+"C-300+4000 /KCC 2365 000131 0176 "C-300^R 2366 000132 0000 ZBLOCK 2 000133 0000 2367 2368 000134 4721 "K-300^R+"C-300+4000 /KCF 2369 000135 0374 "F-300^R 2370 000136 0000 ZBLOCK 2 000137 0000 2371 2372 000140 4727 "K-300^R+"I-300+4000 /KIE 2373 000141 0322 "E-300^R 2374 000142 0000 ZBLOCK 2 000143 0000 2375 2376 000144 4740 "K-300^R+"R-300+4000 /KRB 2377 000145 0124 "B-300^R 2378 000146 0000 ZBLOCK 2 000147 0000 2379 2380 000150 4740 "K-300^R+"R-300+4000 /KRS 2381 000151 1436 "S-300^R 2382 000152 0000 ZBLOCK 2 000153 0000 2383 2384 000154 4741 "K-300^R+"S-300+4000 /KSF 2385 000155 0374 "F-300^R 2386 000156 0000 ZBLOCK 2 000157 0000 2387 2388 000160 4771 "L-300^R+"A-300+4000 /LAS 2389 000161 1436 "S-300^R 2390 000162 0000 ZBLOCK 2 000163 0000 2391 2392 000164 5063 "M-300^R+"Q-300+4000 /MQA 2393 000165 0052 "A-300^R 2394 000166 0000 ZBLOCK 2 000167 0000 2395 2396 000170 5063 "M-300^R+"Q-300+4000 /MQL 2397 000171 0770 "L-300^R 2398 000172 0000 ZBLOCK 2 000173 0000 2399 2400 000174 5133 "N-300^R+"O-300+4000 /NOP 2401 000175 1240 "P-300^R 2402 000176 0000 ZBLOCK 2 000177 0000 2403 2404 000200 5206 "O-300^R+"P-300+4000 /OPR 2405 000201 1364 "R-300^R 2406 000202 0000 ZBLOCK 2 000203 0000 2407 2408 000204 5211 "O-300^R+"S-300+4000 /OSR 2409 000205 1364 "R-300^R 2410 000206 0000 ZBLOCK 2 000207 0000 2411 2412 000210 5243 "P-300^R+"C-300+4000 /PCE 2413 000211 0322 "E-300^R 2414 000212 0000 ZBLOCK 2 000213 0000 2415 2416 000214 5243 "P-300^R+"C-300+4000 /PCF 2417 000215 0374 "F-300^R 2418 000216 0000 ZBLOCK 2 000217 0000 2419 2420 000220 5254 "P-300^R+"L-300+4000 /PLS 2421 000221 1436 "S-300^R 2422 000222 0000 ZBLOCK 2 000223 0000 2423 2424 000224 5260 "P-300^R+"P-300+4000 /PPC 2425 000225 0176 "C-300^R 2426 000226 0000 ZBLOCK 2 000227 0000 2427 2428 000230 5263 "P-300^R+"S-300+4000 /PSF 2429 000231 0374 "F-300^R 2430 000232 0000 ZBLOCK 2 000233 0000 2431 2432 000234 5365 "R-300^R+"A-300+4000 /RAL 2433 000235 0770 "L-300^R 2434 000236 0000 ZBLOCK 2 000237 0000 2435 2436 000240 5365 "R-300^R+"A-300+4000 /RAR 2437 000241 1364 "R-300^R 2438 000242 0000 ZBLOCK 2 000243 0000 2439 2440 000244 5370 "R-300^R+"D-300+4000 /RDF 2441 000245 0374 "F-300^R 2442 000246 0000 ZBLOCK 2 000247 0000 2443 2444 000250 5372 "R-300^R+"F-300+4000 /RFC 2445 000251 0176 "C-300^R 2446 000252 0000 ZBLOCK 2 000253 0000 2447 2448 000254 5375 "R-300^R+"I-300+4000 /RIB 2449 000255 0124 "B-300^R 2450 000256 0000 ZBLOCK 2 000257 0000 2451 2452 000260 5375 "R-300^R+"I-300+4000 /RIF 2453 000261 0374 "F-300^R 2454 000262 0000 ZBLOCK 2 000263 0000 2455 2456 000264 5401 "R-300^R+"M-300+4000 /RMF 2457 000265 0374 "F-300^R 2458 000266 0000 ZBLOCK 2 000267 0000 2459 2460 000270 5404 "R-300^R+"P-300+4000 /RPE 2461 000271 0322 "E-300^R 2462 000272 0000 ZBLOCK 2 000273 0000 2463 2464 000274 5406 "R-300^R+"R-300+4000 /RRB 2465 000275 0124 "B-300^R 2466 000276 0000 ZBLOCK 2 000277 0000 2467 2468 000300 5407 "R-300^R+"S-300+4000 /RSF 2469 000301 0374 "F-300^R 2470 000302 0000 ZBLOCK 2 000303 0000 2471 2472 000304 5410 "R-300^R+"T-300+4000 /RTF 2473 000305 0374 "F-300^R 2474 000306 0000 ZBLOCK 2 000307 0000 2475 2476 000310 5410 "R-300^R+"T-300+4000 /RTL 2477 000311 0770 "L-300^R 2478 000312 0000 ZBLOCK 2 000313 0000 2479 2480 000314 5410 "R-300^R+"T-300+4000 /RTR 2481 000315 1364 "R-300^R 2482 000316 0000 ZBLOCK 2 000317 0000 2483 2484 000320 5445 "S-300^R+"G-300+4000 /SGT 2485 000321 1510 "T-300^R 2486 000322 0000 ZBLOCK 2 000323 0000 2487 2488 000324 5451 "S-300^R+"K-300+4000 /SKON 2489 000325 1204 "O-300^R+"N-300 2490 000326 0000 ZBLOCK 2 000327 0000 2491 2492 000330 5451 "S-300^R+"K-300+4000 /SKP 2493 000331 1240 "P-300^R 2494 000332 0000 ZBLOCK 2 000333 0000 2495 2496 000334 5453 "S-300^R+"M-300+4000 /SMA 2497 000335 0052 "A-300^R 2498 000336 0000 ZBLOCK 2 000337 0000 2499 2500 000340 5454 "S-300^R+"N-300+4000 /SNA 2501 000341 0052 "A-300^R 2502 000342 0000 ZBLOCK 2 000343 0000 2503 2504 000344 5454 "S-300^R+"N-300+4000 /SNL 2505 000345 0770 "L-300^R 2506 000346 0000 ZBLOCK 2 000347 0000 2507 2508 000350 5456 "S-300^R+"P-300+4000 /SPA 2509 000351 0052 "A-300^R 2510 000352 0000 ZBLOCK 2 000353 0000 2511 2512 000354 5460 "S-300^R+"R-300+4000 /SRQ 2513 000355 1312 "Q-300^R 2514 000356 0000 ZBLOCK 2 000357 0000 2515 2516 000360 5462 "S-300^R+"T-300+4000 /STA 2517 000361 0052 "A-300^R 2518 000362 0000 ZBLOCK 2 000363 0000 2519 2520 000364 5462 "S-300^R+"T-300+4000 /STL 2521 000365 0770 "L-300^R 2522 000366 0000 ZBLOCK 2 000367 0000 2523 2524 000370 5465 "S-300^R+"W-300+4000 /SWP 2525 000371 1240 "P-300^R 2526 000372 0000 ZBLOCK 2 000373 0000 2527 2528 000374 5470 "S-300^R+"Z-300+4000 /SZA 2529 000375 0052 "A-300^R 2530 000376 0000 ZBLOCK 2 000377 0000 2531 2532 000400 5470 "S-300^R+"Z-300+4000 /SZL 2533 000401 0770 "L-300^R 2534 000402 0000 ZBLOCK 2 000403 0000 2535 2536 000404 5511 "T-300^R+"A-300+4000 /TAD 2537 000405 0250 "D-300^R 2538 000406 0000 ZBLOCK 2 000407 0000 2539 2540 000410 5513 "T-300^R+"C-300+4000 /TCF 2541 000411 0374 "F-300^R 2542 000412 0000 ZBLOCK 2 000413 0000 2543 2544 000414 5516 "T-300^R+"F-300+4000 /TFL 2545 000415 0770 "L-300^R 2546 000416 0000 ZBLOCK 2 000417 0000 2547 2548 000420 5524 "T-300^R+"L-300+4000 /TLS 2549 000421 1436 "S-300^R 2550 000422 0000 ZBLOCK 2 000423 0000 2551 2552 000424 5530 "T-300^R+"P-300+4000 /TPC 2553 000425 0176 "C-300^R 2554 000426 0000 ZBLOCK 2 000427 0000 2555 2556 000430 5533 "T-300^R+"S-300+4000 /TSF 2557 000431 0374 "F-300^R 2558 000432 0000 ZBLOCK 2 000433 0000 2559 2560 000434 5533 "T-300^R+"S-300+4000 /TSK 2561 000435 0716 "K-300^R 2562 000436 0000 ZBLOCK 2 000437 0000 2563 000440 7777 -1 2564 000441 7777 -1 2565 000442 7777 -1 2566 000443 7777 -1 /DUMMY LOW ENTRY 2567 2568 2569 /PSEUDO OP TABLES. ENTRIES ARE SAME FORMAT AS PAL8 2570 /SYMBOLS. 2571 2572 *.+SYMTAB 2573 2574 005244 1706 SPSEUD, 1706 /SABR PSEUDOS. BEGINS AT 1706*4 2575 005245 1737 1737 /ENDS AT 1737*4 2576 005246 7630 -150 /150 LOCATIONS LONG 2577 005247 7427 7427 /STARTS LOADING AT 17430 2578 2579 NOPUNCH 2580 *7430 2581 ENPUNCH 2582 2583 007430 0000 ZBLOCK 4 007431 0000 007432 0000 007433 0000 2584 2585 2586 007434 0054 "A-300^R+"B-300 /ABSYM 2587 007435 1467 "S-300^R+"Y-300 2588 007436 1042 "M-300^R 2589 007437 0677 B /RETURN POINT 2590 2591 007440 0074 "A-300^R+"R-300 /ARG 2592 007441 0446 "G-300^R 2593 007442 0000 0 2594 007443 0677 B 2595 2596 007444 0140 "B-300^R+"L-300 /BLOCK 2597 007445 1171 "O-300^R+"C-300 2598 007446 0716 "K-300^R 2599 007447 0677 B 2600 2601 007450 0177 "C-300^R+"A-300 /CALL 2602 007451 1004 "L-300^R+"L-300 2603 007452 0000 0 2604 007453 0677 B 2605 2606 007454 0215 "C-300^R+"O-300 /COMMON 2607 007455 1057 "M-300^R+"M-300 2608 007456 1204 "O-300^R+"N-300 2609 007457 0677 B 2610 2611 007460 0216 "C-300^R+"P-300 /CPAGE 2612 007461 0061 "A-300^R+"G-300 2613 007462 0322 "E-300^R 2614 007463 0677 B 2615 2616 007464 0255 "D-300^R+"E-300 /DECIM 2617 007465 0207 "C-300^R+"I-300 2618 007466 1042 "M-300^R 2619 007467 0677 B 2620 2621 007470 0275 "D-300^R+"U-300 /DUMMY 2622 007471 1057 "M-300^R+"M-300 2623 007472 2032 "Y-300^R 2624 007473 0677 B 2625 2626 007474 0323 "E-300^R+"A-300 /EAP 2627 007475 1240 "P-300^R 2628 007476 0000 0 2629 007477 0677 B 2630 2631 007500 0340 "E-300^R+"N-300 /END 2632 007501 0250 "D-300^R 2633 007502 0000 0 2634 007503 5621 EPASS, DOLL1 /BECOMES ENDPAS 2635 2636 007504 0340 "E-300^R+"N-300 /ENTRY 2637 007505 1532 "T-300^R+"R-300 2638 007506 2032 "Y-300^R 2639 007507 0677 B 2640 2641 007510 0413 "F-300^R+"O-300 /FORTR 2642 007511 1410 "R-300^R+"T-300 2643 007512 1364 "R-300^R 2644 007513 0677 B 2645 2646 007514 0572 "I-300^R 2647 007515 0000 0 2648 007516 0000 0 2649 007517 0677 B /I 2650 2651 007520 0600 "I-300^R+"F-300 /IF 2652 007521 0000 0 2653 007522 0000 0 2654 007523 0677 B 2655 2656 007524 0610 "I-300^R+"N-300 /INC 2657 007525 0176 "C-300^R 2658 007526 0000 0 2659 007527 0677 B 2660 2661 007530 0771 "L-300^R+"A-300 /LAP 2662 007531 1240 "P-300^R 2663 007532 0000 0 2664 007533 0677 B 2665 2666 007534 1171 "O-300^R+"C-300 /OCTAL 2667 007535 1511 "T-300^R+"A-300 2668 007536 0770 "L-300^R 2669 007537 0677 B 2670 2671 007540 1206 "O-300^R+"P-300 /OPDEF 2672 007541 0255 "D-300^R+"E-300 2673 007542 0374 "F-300^R 2674 007543 6000 FXR2, FXMR 2675 2676 007544 1241 "P-300^R+"A-300 /PAGE 2677 007545 0453 "G-300^R+"E-300 2678 007546 0000 0 2679 007547 0677 B 2680 2681 007550 1241 "P-300^R+"A-300 /PAUSE 2682 007551 1605 "U-300^R+"S-300 2683 007552 0322 "E-300^R 2684 007553 0677 B 2685 2686 007554 1371 "R-300^R+"E-300 /REORG 2687 007555 1210 "O-300^R+"R-300 2688 007556 0446 "G-300^R 2689 007557 0677 B 2690 2691 007560 1371 "R-300^R+"E-300 /RETRN 2692 007561 1532 "T-300^R+"R-300 2693 007562 1114 "N-300^R 2694 007563 0677 B 2695 2696 007564 1451 "S-300^R+"K-300 /SKPDF 2697 007565 1244 "P-300^R+"D-300 2698 007566 0374 "F-300^R 2699 007567 6000 FXR3, FXMR 2700 2701 007570 1515 "T-300^R+"E-300 /TEXT 2702 007571 2004 "X-300^R+"T-300 2703 007572 0000 0 2704 007573 1252 TXT 2705 2706 007574 7777 -1 2707 007575 7777 -1 2708 007576 7777 -1 2709 007577 7777 -1 2710 2711 2712 2713 /PAL8 PSEUDOS. SAME FORMAT AS OTHERS 2714 2715 *5424 2716 ENPUNCH 2717 2718 005424 1706 PPSEUD, 1706 2719 005425 1737 1737 2720 005426 7630 -150 2721 005427 7427 7427 2722 2723 NOPUNCH 2724 *7430 2725 ENPUNCH 2726 2727 007430 0000 ZBLOCK 4 007431 0000 007432 0000 007433 0000 2728 2729 2730 007434 0255 "D-300^R+"E-300 /DECIMAL 2731 007435 0207 "C-300^R+"I-300 2732 007436 1043 "M-300^R+"A-300 2733 007437 0677 B 2734 2735 007440 0255 "D-300^R+"E-300 /DEVICE 2736 007441 1645 "V-300^R+"I-300 2737 007442 0203 "C-300^R+"E-300 2738 007443 0677 B 2739 2740 007444 0274 "D-300^R+"T-300 /DTORG 2741 007445 1210 "O-300^R+"R-300 2742 007446 0446 "G-300^R 2743 007447 0677 B 2744 2745 007450 0334 "E-300^R+"J-300 /EJECT 2746 007451 0325 "E-300^R+"C-300 2747 007452 1510 "T-300^R 2748 007453 0403 NOTBIN /SKIP ANY MORE TEXT 2749 2750 007454 0340 "E-300^R+"N-300 /ENPUNCH 2751 007455 1265 "P-300^R+"U-300 2752 007456 1117 "N-300^R+"C-300 2753 007457 0677 B 2754 2755 007460 0352 "E-300^R+"X-300 /EXPUNGE 2756 007461 1265 "P-300^R+"U-300 2757 007462 1123 "N-300^R+"G-300 2758 007463 5653 XPJ, XPUNJ 2759 2760 007464 0405 "F-300^R+"I-300 /FIELD 2761 007465 0336 "E-300^R+"L-300 2762 007466 0250 "D-300^R 2763 007467 0677 B 2764 2765 007470 0405 "F-300^R+"I-300 /FILENAME 2766 007471 0775 "L-300^R+"E-300 2767 007472 1115 "N-300^R+"A-300 2768 007473 0677 B 2769 2770 007474 0405 "F-300^R+"I-300 /FIXMRI 2771 007475 1775 "X-300^R+"M-300 2772 007476 1375 "R-300^R+"I-300 2773 007477 6000 FXR, FXMR 2774 2775 007500 0405 "F-300^R+"I-300 /FIXTAB 2776 007501 2004 "X-300^R+"T-300 2777 007502 0054 "A-300^R+"B-300 2778 007503 6042 FXT, FXTAB 2779 2780 007504 0572 "I-300^R /I 2781 007505 0000 ZBLOCK 2 007506 0000 2782 007507 0677 B 2783 2784 007510 0600 "I-300^R+"F-300 /IFDEF 2785 007511 0255 "D-300^R+"E-300 2786 007512 0374 "F-300^R 2787 007513 0677 B 2788 2789 007514 0600 "I-300^R+"F-300 /IFNDEF 2790 007515 1120 "N-300^R+"D-300 2791 007516 0330 "E-300^R+"F-300 2792 007517 0677 B 2793 2794 007520 0600 "I-300^R+"F-300 /IFNZRO 2795 007521 1146 "N-300^R+"Z-300 2796 007522 1403 "R-300^R+"O-300 2797 007523 0677 B 2798 2799 007524 0600 "I-300^R+"F-300 /IFZERO 2800 007525 2111 "Z-300^R+"E-300 2801 007526 1403 "R-300^R+"O-300 2802 007527 0677 B 2803 2804 007530 1133 "N-300^R+"O-300 /NOPUNCH 2805 007531 1265 "P-300^R+"U-300 2806 007532 1117 "N-300^R+"C-300 2807 007533 0677 B 2808 2809 007534 1171 "O-300^R+"C-300 /OCTAL 2810 007535 1511 "T-300^R+"A-300 2811 007536 0770 "L-300^R 2812 007537 0677 B 2813 2814 007540 1241 "P-300^R+"A-300 /PAGE 2815 007541 0453 "G-300^R+"E-300 2816 007542 0000 0 2817 007543 0677 B 2818 2819 007544 1241 "P-300^R+"A-300 /PAUSE 2820 007545 1605 "U-300^R+"S-300 2821 007546 0322 "E-300^R 2822 007547 0677 B 2823 2824 007550 1400 "R-300^R+"L-300 /RELOC 2825 007551 1007 "L-300^R+"O-300 2826 007552 0176 "C-300^R 2827 007553 0677 B 2828 2829 007554 1515 "T-300^R+"E-300 /TEXT 2830 007555 2004 "X-300^R+"T-300 2831 007556 0000 0 2832 007557 1252 TXT 2833 2834 007560 1774 "X-300^R+"L-300 /XLIST 2835 007561 0615 "I-300^R+"S-300 2836 007562 1510 "T-300^R 2837 007563 0677 B 2838 2839 007564 2104 "Z-300^R /Z 2840 007565 0000 ZBLOCK 2 007566 0000 2841 007567 0677 B 2842 2843 007570 2106 "Z-300^R+"B-300 /ZBLOCK 2844 007571 1007 "L-300^R+"O-300 2845 007572 0211 "C-300^R+"K-300 2846 007573 0677 B 2847 2848 007574 7777 -1 2849 007575 7777 -1 2850 007576 7777 -1 2851 007577 7777 -1 2852 2853 2854 2855 *5600 2856 /THIS CODE IS EXECUTED DURING PASS ONE ONLY. LATER PASSES 2857 /USE THIS AREA TO BUILD A REFERENCE TABLE. 2858 2859 2860 005600 0000 HEADER, 0 /HEADER SWITCHES FPUT TO JMS I [OCHAR 2861 005601 1207 TAD CPCHIT 2862 005602 3105 DCA FPUT /ADDRESS OF PUNCH ROUTINE 2863 005603 4610 JMS I CGTLIN /CALL GETLIN 2864 005604 1211 TAD CSTRIT /RESTORE FPUT 2865 005605 3105 DCA FPUT 2866 005606 5600 JMP I HEADER 2867 005607 5612 CPCHIT, PNCHIT 2868 005610 3236 CGTLIN, GETLIN 2869 005611 5615 CSTRIT, STORIT 2870 2871 005612 0000 PNCHIT, 0 2872 005613 4620 JMS I COCHAR 2873 005614 5612 JMP I PNCHIT 2874 2875 005615 0000 STORIT, 0 2876 005616 3410 DCA I XRLINE 2877 005617 5615 JMP I STORIT 2878 005620 2211 COCHAR, OCHAR 2879 2880 005621 1377 DOLL1, TAD (ENDPAS 2881 005622 3053 DCA DOLLAR 2882 005623 4106 JMS DPAT 2883 005624 1376 DOLL12, TAD (KRS /BECOMES JMP .+2 IF /M PASS 2 OR /U 2884 005625 3775 DCA I (OUTSW /RE ENABLE OUTPUT 2885 005626 6211 DOLL13, CDF 10 2886 005627 1031 TAD RSWIT 2887 005630 7650 SNA CLA 2888 005631 5241 JMP DOLL2 /PAL8 PSEUDOS 2889 005632 1374 TAD (B 2890 005633 3773 DCA I (FXR2 2891 005634 1374 TAD (B 2892 005635 3772 DCA I (FXR3 2893 005636 1377 TAD (ENDPAS 2894 005637 3771 DCA I (EPASS /END PSEUDO NOW TO ENDPAS 2895 005640 5247 JMP DOLOUT 2896 005641 1374 DOLL2, TAD (B 2897 005642 3770 DCA I (XPJ 2898 005643 1374 TAD (B 2899 005644 3767 DCA I (FXR 2900 005645 1374 TAD (B 2901 005646 3771 DCA I (FXT 2902 005647 6201 DOLOUT, CDF 0 2903 005650 4315 JMS DOLOT2 2904 005651 5766 JMP I (NOTBIN 2905 005652 7000 FUDGE, NOP 2906 2907 2908 005653 3022 XPUNJ, DCA COUNT 2909 005654 7240 CLA CMA 2910 005655 1042 TAD USER+1 /SKIP LAST ENTRY (7777) 2911 005656 7106 CLL RTL 2912 005657 3060 XPUNJ3, DCA BUFFER /POINTER INTO SYMBOLS 2913 005660 6211 CDF 10 2914 005661 1460 TAD I BUFFER 2915 005662 1365 TAD (5336 /IS THIS A LITERAL? 2916 005663 7650 SNA CLA 2917 005664 5307 JMP XPUNJ1 /YES..NEXT ENTRY 2918 005665 1022 TAD COUNT /NO..NOW PUSH ALL LITERALS UP 2919 005666 7106 CLL RTL /BUT IF COUNT =0, THERE ARE NONE 2920 005667 7040 CMA 2921 005670 3025 DCA SAVE 2922 005671 1364 TAD (3 2923 005672 1060 TAD BUFFER /SETTING UP TO DO TRANSFER. IF COUNT=0 2924 005673 3012 DCA XRSYM1 /ONLY THE 7777 GETS TRANSFERRED 2925 005674 1364 TAD (3 2926 005675 3013 DCA XRSYM2 2927 005676 1412 TAD I XRSYM1 2928 005677 3413 DCA I XRSYM2 2929 005700 2025 ISZ SAVE /ALL COMPLETED? 2930 005701 5276 JMP .-3 2931 005702 1022 TAD COUNT 2932 005703 7001 IAC /INCLUDE 7777 ENTRY! 2933 005704 3042 DCA USER+1 2934 005705 6201 CDF 0 2935 005706 5774 JMP I (B 2936 005707 1363 XPUNJ1, TAD (-4 2937 005710 1060 TAD BUFFER 2938 005711 2022 ISZ COUNT 2939 005712 5257 JMP XPUNJ3 2940 2941 005713 4762 XFIRST, JMS I (OOPEN 2942 005714 5761 JMP I (FIRST+1 2943 2944 005715 0000 DOLOT2, 0 2945 005716 7126 STL RTL /IF WE HAVE MORE THAN 2 FIELDS, 2946 005717 1047 TAD MAXFLD /WE SHALL LEAVE THE SYMBOL TABLE IN ONE 2947 /PIECE. THAT ALLOWS US TO USE THE UPPER 2948 005720 7630 SZL CLA /CORE PROFITABLY 2949 005721 5715 JMP I DOLOT2 2950 005722 1042 TAD USER+1 2951 005723 7106 CLL RTL 2952 005724 1360 TAD (4 /CLEARS SYMBOL TABLE 2953 005725 3757 DCA I (LTTBL+1 /FIX PERMANENT LIMIT IN FIELD 1 2954 005726 3054 DCA SYMFLD /AND FAKE THAT FLD 1 HAS NO SYMBOLS 2955 005727 1252 TAD FUDGE /DISABLE RESET OF FIELD 1 LIMIT 2956 005730 3756 DCA I (FUJ1 2957 005731 5715 JMP I DOLOT2 2958 2959 005732 0000 CHNSET, 0 2960 005733 7201 CLA IAC /SYS DEV ONLY 2961 005734 6212 CIF 10 2962 005735 4755 JMS I (200 2963 005736 0002 2 /LOOKUP 2964 005737 5745 STBLK, CREFNM /GET CREF STARTING BLK 2965 005740 0000 0 2966 005741 5754 JMP I (ERR6 2967 005742 1337 TAD STBLK 2968 005743 3753 DCA I (BLK 2969 005744 5732 JMP I CHNSET 2970 005745 0322 CREFNM, FILENAME CREF.SV 005746 0506 005747 0000 005750 2326 2971 005753 2457 PAGE 005754 2506 005755 0200 005756 1444 005757 1143 005760 0004 005761 2161 005762 2272 005763 7774 005764 0003 005765 5336 005766 0403 005767 7477 005770 7463 005771 7503 005772 7567 005773 7543 005774 0677 005775 2216 005776 6034 005777 1400 2972 2973 006000 1410 FXMR, TAD I XRLINE /SHOULD CONTAIN FIRST CHAR IN INSTR. 2974 006001 3023 DCA CHAR 2975 006002 4777 JMS I (CHECK /CHECK IT 2976 006003 0301 301 2977 006004 7446 -332 2978 006005 5211 JMP .+4 /NOPE;A NUMBER MAYBE? 2979 006006 1023 FX2, TAD CHAR 2980 006007 4776 JMS I (PACK 2981 006010 5200 JMP FXMR 2982 006011 4777 JMS I (CHECK 2983 006012 0260 260 2984 006013 7507 -271 /CHECK FOR DIGIT 0-9 2985 006014 7410 SKP /NOPE. IF THERE IS A SYMBOL, THIS IS TERMINATOR 2986 006015 5206 JMP FX2 2987 006016 4775 JMS I (REPACK 2988 006017 1036 TAD SYM1 2989 006020 7650 SNA CLA 2990 006021 5200 JMP FXMR 2991 006022 6211 CDF 10 2992 006023 1774 TAD I (7644 /M RULES FOR FIXMRI TOO 2993 006024 6201 CDF 0 2994 006025 7700 SMA CLA 2995 006026 5235 JMP FXNTR /NO M 2996 006027 1773 TAD I (PATCH1 2997 006030 3233 DCA PATCH2 /APPROPRIATE SWITCH 2998 006031 1036 TAD SYM1 2999 006032 7006 RTL 3000 006033 7402 PATCH2, HLT /SPA SZA OR SMA SNL + CLA 3001 006034 5772 JMP I (B 3002 006035 4771 FXNTR, JMS I (SYMCHK 3003 006036 0041 USER 3004 006037 4770 JMS I (ENTRY /ENTER AS USER SYMBOL 3005 006040 4767 JMS I (BUMP 3006 006041 5772 JMP I (B 3007 006042 7240 FXTAB, CLA CMA /DON'T INCLUDE 7777 ENTRY 3008 006043 1042 TAD USER+1 3009 006044 7041 CIA 3010 006045 3022 DCA COUNT /# ENTRIES TO EXAMINE 3011 006046 3025 DCA SAVE 3012 006047 1366 FXTB2, TAD (4 3013 006050 1025 TAD SAVE 3014 006051 3025 DCA SAVE 3015 006052 6211 FXTB9, CDF 10 3016 006053 1425 TAD I SAVE /STOP AS SOON AS LITERAL FOUND 3017 006054 1365 TAD (5336 3018 006055 7650 SNA CLA 3019 006056 5272 JMP FXTB3 3020 006057 1425 TAD I SAVE /IF ALREADY NEG. ITS A PERM SYMBOL 3021 006060 7500 SMA 3022 006061 1364 TAD (4000 /MAKE IT PERMANENT 3023 006062 3425 DCA I SAVE 3024 006063 2022 ISZ COUNT 3025 006064 1363 TAD (3 3026 006065 1025 TAD SAVE 3027 006066 3025 DCA SAVE 3028 006067 3425 DCA I SAVE 3029 006070 2025 ISZ SAVE 3030 006071 5252 JMP FXTB9 /LOOP FOR DURATION 3031 006072 6201 FXTB3, CDF 0 3032 006073 5772 JMP I (B 3033 3034 006074 0000 DEVCHK, 0 3035 006075 1674 TAD I DEVCHK 3036 006076 3313 DCA T2 /SAVE TBL START 3037 006077 2274 ISZ DEVCHK 3038 006100 6211 CDF 10 3039 006101 1713 TAD I T2 /HANDLER NUMBER 3040 006102 0362 AND (17 3041 006103 3313 DCA T2 3042 006104 7240 CLA CMA 3043 006105 1761 TAD I (37 /TBL LOCN IN 10037 3044 006106 1313 TAD T2 3045 006107 3313 DCA T2 3046 006110 1713 TAD I T2 3047 006111 6201 CDF 0 3048 006112 5674 JMP I DEVCHK 3049 006113 0000 T2, 0 3050 /THAT'S ALL FOLKS!! 3051 006161 0037 $$$$$$$$$$$$$$$$$$ 006162 0017 006163 0003 006164 4000 006165 5336 006166 0004 006167 1300 006170 1200 006171 1041 006172 0677 006173 0663 006174 7644 006175 0741 006176 1000 006177 1747 ADDER 0061 ADDUP 0514 ALDONE 2501 ALLOCT 3306 ANALYZ 0600 ASHDLR 2672 B 0677 BASE 0063 BASTBL 1132 BLAH 1040 BLK 2457 BLUE 4237 BLUE0 4235 BMPIT 0676 BREAK 0201 BUFCNT 3347 BUFFER 0060 BUMP 1300 BUMP2 1321 CDFN 1667 CDFNA 2053 CDFZ 1660 CDTFLD 1363 CGTLIN 5610 CHAIN 4205 CHANCK 4337 CHANNM 3151 CHAR 0023 CHDF 1732 CHECK 1747 CHNPS1 4501 CHNSET 5732 CLEAR 3350 CLRSEM 0710 CLSERR 3036 CNTROL 0070 COCHAR 5620 COMP 1052 COMPR 1102 CONST 0050 COR0 4521 COR1 4530 COR2 4532 COR70 4536 COREX 4551 CORLOC 4553 CORV 4554 CORX 4540 COUNT 0022 COUNTR 0063 CPCHIT 5607 CRCNT 3150 CREFNM 5745 CRLF 2554 CRLF1 2557 CROUT 3143 CSTRIT 5611 CTPTR 0071 CUTSYM 1536 CVT2 0500 CVTSEQ 0454 DCB 7760 DEF 1662 DEFSEQ 2163 DELMIT 1277 DEVCHK 6074 DEVS 4221 DIGIT1 0545 DIGPT 0055 DIV45A 3214 DIV45B 3234 DIV45C 3235 DIV45D 3216 DIVE 1152 DIVIDE 3210 DIVSPC 1161 DMP 2017 unreferenced DMP0 2136 DMP2 2073 DMP5 2016 DMP6 2022 DMP7 2002 DMP8 2010 DOLL1 5621 DOLL12 5624 DOLL13 5626 DOLL2 5641 DOLLAR 0053 DOLOT2 5715 DOLOUT 5647 DONCOR 4552 DONE 1765 DPAT 0106 DPERM 2151 DSWIT 0030 DUMP 2000 EN 3355 END2 1416 END3 1564 ENDFIX 3155 ENDPAS 1400 ENTER 1236 unreferenced ENTERR 3022 ENTRY 1200 EPASS 7503 ERR3 2365 ERR4 2363 ERR5 2504 ERR6 2506 ERR7 1334 ERROR 0211 ERRTWO 4335 FILEXT 0251 FILLIP 2417 FINI 0065 FIRST 2160 FLDPTR 0051 FLUSH 0570 FORM 2514 FORM2 2550 FORM3 2541 FPUT 0105 FTEST 4517 FUDGE 5652 FUJ1 1444 FULERR 3030 FX2 6006 FXMR 6000 FXNTR 6035 FXR 7477 FXR2 7543 FXR3 7567 FXT 7503 FXTAB 6042 FXTB2 6047 unreferenced FXTB3 6072 FXTB9 6052 GETC 1272 GETFLD 1714 GETLIN 3236 GETMOR 2130 GF1 1716 GF2 1730 GLIN3 3273 GLIN4 3275 unreferenced GLIN5 3135 GLIN6 3276 HC1 0647 HCR1 4444 HCREF 2502 HEADER 5600 HIOERR 0075 HNDERR 3000 ICHAR 2610 ICHAR1 2651 ICHAR2 2645 ICHAR3 2632 unreferenced INBREC 2737 INBUF 4600 INBUFP 2734 INCHAR 2611 INCHCT 2665 INCOMN 2652 INCTL 0400 INCTLW 2733 INCTR 2670 INDEVH 3400 INEOF 2667 INERRX 2756 INFLD 0000 unreferenced INFPTR 2666 INGBUF 2625 INHAND 2671 INHNDL 4270 INJMP 2627 INJMPP 2613 INLINE 3241 INPERR 3044 INPTR 2607 INREC 2735 INRECS 0002 unreferenced IOPEN 2600 IOSR 0066 ISYM 0034 K0 0041 unreferenced KILOUT 4516 KLUD 4201 LAST 1131 LCHK 3123 LEFT 1021 LIMIT 1567 LINBUF 0230 LINENO 2164 LINES 0100 LIT1 3066 LIT2 3060 LIT3 3075 LITBUF 0236 LITEX 3120 LNPRPG 0077 LPTERR 3014 LTTBL 1142 M1 0104 M12 0103 MAIN 0400 MAIN2 0440 MAIN3 0446 MARGIN 0021 MASKF 0055 MAXFLD 0047 MCOMMA 1664 MCTLD 0453 MEQ 1663 MLF 0032 MORCOR 0302 MOVEM 4325 MP2 2321 NDPS1 1413 NDPS2 1446 NMOR 1250 NOALPH 0417 NOD1 2461 NODEF 2107 NODUMP 2432 NOFIRM 0413 NOFORM 0431 NOTBIN 0403 NOVERS 2412 NTER 0675 NTR1 1223 NTR2 1241 NUSER 1566 NXTDV 2027 NXTLIN 0404 OCHAR 2211 OCHAR1 2261 OCHAR2 2256 OCHAR3 2230 unreferenced OCLOSE 2400 OEFAIL 2327 OFILE 2510 OLINE 0555 ONEISZ 1317 OOPEN 2272 OTYPE 0315 OUBLK 2316 OUBUF 7200 OUCCNT 2465 OUCOMN 2263 OUCT 2271 OUCTL 4200 OUCTLW 2353 OUDEVH 4000 unreferenced OUDWCT 2270 OUELEN 2317 OUENTR 2307 OUFLD 0000 OUHNDL 2305 OUJMP 2225 OUJMPE 2267 OUNREC 3200 OUPOLD 2265 OUPTR 2266 OUREC 2355 OUSAVX 0014 OUSETP 2200 OUT1 1116 OUT2 1112 OUTDMP 2340 OUTEMP 2264 OUTSW 2216 P2 1641 P2ADJ 0263 PACK 1000 PAGLEN 0074 PAKIT 0736 PASN2 0045 PASS2 4352 PASSG1 0046 PASSN2 1600 PASTST 2165 PATCH 0661 PATCH1 0663 PATCH2 6033 PATCHA 4353 PATCHL 0301 PCKOUT 1035 PNCHIT 5612 POSPT 0027 PPSEUD 5424 PRMSYM 1514 PSEUDO 0043 PSWCH 0035 PTRSET 1337 PTRST1 1347 PTRST2 1370 Q 0326 R 0052 RAD 0052 RALFCD 4513 RDREC 2714 REFBUF 0066 REFENT 1665 REFERR 3052 REGULR 3252 REPACK 0741 RLSKIP 3305 RPEAT 0506 RSWIT 0031 S1 1064 SAVE 0025 SCAN 0604 SCAN1 0733 SCAN3 0620 SCANER 0752 SCHAR 0061 SCRATC 0027 SEMISV 0750 SEQNO 0024 SETXR 1163 SLSWH 2503 SLSWIT 0751 SPACE 1740 SPCLUP 0527 SPSEUD 5244 ST1 4200 ST2 4227 ST3 4427 STBLK 5737 STORIT 5615 SUB3 0757 SWITCH 4400 SYM1 0036 SYM2 0037 SYM3 0040 SYMADD 0056 SYMCHK 1041 SYMCNT 0033 SYMERR 3006 SYMFLD 0054 SYMLIM 0064 SYMNUM 0057 SYMTAB 4600 SYSM 0062 T2 6113 TEMP 0026 TEMP1 0027 THI 1127 THOUS 0101 TLOW 1130 TSTEND 0704 TSTIT 0626 TSTPRM 1702 TTY 0227 TTYPRT 2763 TTYSWT 2562 TXONLY 4425 TXT 1252 TXT2 1261 TXTBEG 0020 USER 0041 USR 0052 USSYM 0665 VERSN 0265 VERTST 0234 unreferenced WRTLIN 0552 XDOLL 4512 XFIRST 5713 XINCL1 2713 XINREC 2712 XNAME 4351 XOCTLW 3207 XOUBUF 2354 XOUDEV 2326 XPATCH 4510 XPJ 7463 XPTCH1 4511 XPUNJ 5653 XPUNJ1 5707 XPUNJ3 5657 XRLINE 0010 XRLIT 0011 XRSYM1 0012 XRSYM2 0013 XUSSYM 3122 ZSPRES 0551