1 /2 PAL8 ASSEMBLER FOR OS/8 MONITOR VERSION 10 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 /COPYRIGHT (C) 1970,1971,1972,1973,1974,1975 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 /1-OCT-75 MB/MB/SM/MB/RL/JR/SR 46 47 DECIMAL 48 49 VERSION= 10 50 SUBVERSION= "A 51 52 OCTAL 53 54 /PAL8 IS AN 8K THREE PASS ASSEMBLER DESIGNED 55 /TO BE COMPATIBLE WITH THE OS/8 SYSTEM. 56 57 /PASS 1 READS THE INPUT (SOURCE) FILE AND CONSTRUCTS 58 /THE SYMBOL TABLE. 59 60 /PASS 2 GENERATES THE BINARY (OBJECT) FILE, WHICH 61 /MAY BE LOADED WITH THE ABSOLUTE (BINARY) LOADER. 62 63 /PASS 3 GENERATES THE OCTAL SYMBOLIC ASSEMBLY 64 /LISTING. 65 66 /PAL8 IS COMPATIBLE IN MOST RESPECTS WITH PAL III, MACRO-8 67 /4K PAL-D, AND 8K PAL-D, AS WELL AS THE CROSS-ASSEMBLER PAL10. 68 69 IFNDEF HASH /DEFINE FOR HASH SYMBOL TABLE 70 /SET HASH=0 TO GET OLD PAL8 WAY OF HANDLING SYMBOL TABLE 71 72 /MAINTENANCE RELEASE CHANGES: 73 74 /1. INCLUDED JIM ROTH'S HASH TABLE MODIFICATIONS 75 /2. ALLOWED /B TO WORK PROPERLY [SEQ #2 PATCH FROM AUG '74 DSN] 76 /3. PUT CREFLS.TM ON SYS: NOT DSK: [PATCH SEQ #3, SEP '74 DSN] 77 /4. FIXED 7TH LEVEL CHECKSUM BIT [PATCH SEQ #7, MARCH '75 DSN] 78 /5. ALLOWED PAL8 TO RESTART BEFORE CD EXECUTED [DSN APR '75, SEQ #8] 79 /6. FIXED /F SO IT WORKS [PATCH SEQ #9, DSN APRIL 1975] 80 /7. FIXED /W SO IT DOESN'T REMEMBER TOP OF PAGE [DSN OCT '75] 81 /8. FIXED BUG RE MULTIPLE NON-RES INPUT HANDLERS 82 /9. CHANGED VERSION # TO V10, EDIT 1, 1975 COPYRIGHT 83 /10. ADDED DOCUMENTATION ON LOCATION OF HANDLERS AND BUFFERS 84 /11. CORE ALLOCATION: 85 / WITHOUT /K, ALL CORE BUT 10000-11777 USED FOR SYMBOLS 86 / WITH /K, USES ALL CORE (AND SWAPS USR BETWEEN PASSES) 87 / UNDER BATCH, N5000-N7777 IS RESERVED FOR BATCH RESIDENT AS WELL 88 /12. /7 WITH HASH FEATURES PRINTS 7 COLUMN SYMBOL TABLE 89 /13. 14-DEC-75 JR: FIXED TYPO IN /W CODE IN LITERAL DUMP ROUTINE 90 91 /JR 14-APR-77 ADDED STANDARD DATE FORMAT TO HEADING 92 /COMMAND DECODER RULES: 93 94 /*BINARY(.BN),LISTING(.LS),CREF(.LS) 242 000016 1211 IFNZRO HASH 243 LAST4, IFZERO HASH 244 000017 1253 IFNZRO HASH 245 246 *20 247 000020 0000 TAG1, 0 /TAG STORAGE 248 000021 0000 TAG2, 0 249 000022 0000 TAG3, 0 250 251 000023 0200 LITPTR, 200 /LITERAL POINTER 252 253 000024 0000 RADIX, 0 /7777 IF DECIMAL MODE 254 000025 0000 PUNCHX, 0 /NON-ZERO IF NO PUNCHING 255 000026 0000 XLISTX, 0 /NON-ZERO IF NO LISTING 256 /*NOTE* PUNCHX AND XLISTX MUST BE TOGETHER 257 /AND IN THIS ORDER 258 259 000027 0200 LOC, 200 /CURRENT LOCATION 260 000030 0000 OFFSET, 0 /LOCATION COUNTER OFFSET FROM "LOC" 261 000031 0000 OFSBUF, 0 /LOCATION COUNTER OFFSET BUFFER 262 000032 0000 STARSW, 0 /-1 IF NEXT ORIGIN SHOULD BE INHIBITED 263 264 000033 0000 OP, 0 /LAST OPERATOR CODE (0-6) 265 000034 0000 VALUE, 0 /EXPRESSION VALUE 266 000035 0000 VALUE2, 0 /EXPRESSION OPERAND 267 268 000036 0000 TXTSWT, 0 /SPACE SWITCH 269 000037 1740 TXTPTR, LINBUF+120 /TEXT POINTER 270 000040 0000 CHAR, 0 /CURRENT CHARACTER 271 272 000041 0000 THISPG, 0 /OVERFLOW PAGE 273 000042 0000 EDITPG, 0 /EDITOR PAGE 274 000043 0000 TEMP, 0 /TEMPORARY REGISTERS 275 000044 0000 TEMP1, 0 276 000045 0000 TEMP2, 0 277 000046 0000 TEMP3, 0 278 279 000047 2401 OCHAR, OUTPUT /OUTPUT ROUTINE 280 000050 2323 OERROR, OTYPEO /PASS 1=OTYPEO; 2=OTYPEO; 3=LISOUT 281 000051 7776 PASS, -2 /-1 IF PASS 1, 0 IF PASS 2, 1 IF PASS 3 282 000052 0200 IOMON, 200 /USER SERVICE ROUTINES 283 000053 0000 CONDSW, 0 /NUMBER OF NESTED CONDITIONALS 284 000054 0000 EXPIND, 0 /0 IF MRI OK HERE 285 /NOT 0 IF MRI NOT OK HERE 286 000055 0000 CHKSUM, 0 /BINARY CHECK SUM 287 000056 0000 IZIND, 0 /"I" AND "Z" INDICATOR 288 /IF I, LEFT 6 BITS ARE NON-ZERO 289 /IF Z, RIGHT 6 BITS ARE NON-ZERO 290 000057 0000 THISTG, 0 /ASSIGNED NUMBER OF CURRENT TAG 291 000060 0140 HIGHTG, SYME-SYMS%4-1 /ASSIGNED NUMBER OF LAST TAG 292 000061 0000 LINCNT, 0 /LINE COUNT 293 000062 0000 ALPHAI, 0 /UNDEFINED TAG INDICATOR 294 /-1 IF UNDEFINED 295 000063 0000 GETCI, 0 /NOT=0 IF ONLY CARRIAGE RETURN ENDS LINE 296 /OTHERWISE /,;, OR CARRIAGE RETURN ENDS 297 000064 0000 LSTCNT, 0 /TAB COUNTER 298 000065 0000 UNDFSW, 0 /UNDEFINED SWITCH 299 000066 0601 INCTL, 601 /CONTROL WORD - FOR OS/8 I/O 300 000067 0000 LINKSW, 0 /OFF-PAGE LINK SWITCH 301 /0 IF NO LINK GENERATED, 0700 IF LINK 302 000070 0000 LININD, 0 /BACK-UP FOR LINKSW 303 000071 5561 PERROR, PERRO1 /DUMMY ERROR ROUTINE TO SUPPRESS CERTAIN 304 /MESSAGES DURING PASS 1 305 000072 0260 FLDIND, "0 /CURRENT FIELD IN ASCII DIGIT FORM 306 000073 0000 BINSRT, 0 /BINARY OR LISTING STARTING 307 000074 0000 ERCNT, 0 /ERROR COUNTER 308 000075 0000 LINK, 0 /LINK COUNTER 309 IFNZRO HASH< 310 000076 0000 TAGMAX, 0 /SET TO PRIME # EQ TO MAX # SYMS 311 > 312 PAGE 313 /STARTING ADDRESS OF PAL8 (0200) 314 /CHAINING ADDRESS (0201) 315 316 000200 5602 NAME1, JMP I NAME3 /NAME1-NAME3 USED LATER 317 000201 5603 NAME2, JMP I GETTA2 /TO STORE TAGS AS THEY ARE BUILT 318 000202 1600 NAME3, BEGIN /V3C 319 000203 1604 GETTA2, NOCD /BUILDING SWITCH AND OVERFLOW PROTECT 320 321 322 /HANDLERS FOR NOPUNCH AND ENPUNCH PSEUDO-OPS 323 324 000204 7201 NOPUNX, CLA IAC /NON-ZERO FOR NO PUNCHING 325 000205 3025 ENPUNX, DCA PUNCHX /ZERO FOR PUNCHING 326 000206 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 327 328 329 /HANDLERS FOR DECIMAL AND OCTAL PSEUDO-OPS 330 331 000207 7240 DECIMX, STA /7777 FOR DECIMAL RADIX 332 000210 3024 OCTALX, DCA RADIX /ZERO FOR OCTAL RADIX 333 000211 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 334 /GET A TAG ROUTINE 335 /PICKS UP A TAG AND SEARCHES FOR IT 336 /"THISTG" HAS NUMBER OF TAG 337 /"VALUE2" HAS VALUE 338 /AC=7777 ON RETURN IF TAG NOT FOUND, 0 IF FOUND 339 340 000212 0000 GETTAG, 0 341 000213 3200 DCA NAME1 /CLEAR BUILD AREA 342 000214 3201 DCA NAME2 343 000215 3202 DCA NAME3 344 000216 1176 TAD [NAME1 345 000217 3351 DCA GETTA4 /SET POINTER FOR BUILDING 346 000220 3203 DCA GETTA2 /ZERO SWITCH 347 000221 1040 GETTG1, TAD CHAR /GET THE CHARACTER 348 000222 0175 AND [77 /MAKE IT 01-32 OR 60-71 349 000223 1377 TAD (-32 /WAS IT A TO Z? 350 000224 7540 SMA SZA 351 000225 1376 TAD (-25 /NO - MAKE 60-71 INTO 33-44 352 000226 1375 TAD (32 /YES - IT IS NOW 01-32 OR 33-44 353 000227 2203 ISZ GETTA2 /LEFT SIDE? 354 000230 5333 JMP GETTA3 /YES 355 000231 1751 TAD I GETTA4 /NO - RIGHT SIDE 356 000232 3751 DCA I GETTA4 /BUILD THE WORD 357 000233 2351 ISZ GETTA4 /BUMP TO NEXT WORD 358 000234 4574 GETTA1, JMS I [GETC /GET NEXT CHARACTER 359 000235 4573 JMS I [TSTALN /IS IT ALPHANUMERIC? 360 000236 5221 JMP GETTG1 /YES - KEEP BUILDING 361 IFZERO HASH< 362 TAD HIGHTG /NO - GET NUMBER OF HIGHEST TAG 363 CLL RAR /DIVIDE BY 2 364 DCA TEMP2 /SAVE DIFFERENCE 365 DCA THISTG /START AT TAG ZERO 366 CLL CML /LINK MUST BE ON INITIALLY 367 DCA TEMP1 368 369 370 /GETTA4 IS POINTER TO NAME1-NAME3 371 /FOR DEPOSITING TAG AS IT IS BUILT 372 373 /TEMP2 IS # OF TAGS TO SKIP BETWEEN CHECKS FOR MATCH 374 /DURING BINARY SEARCHING 375 GETTG2, SZL /IS THISTG HIGHER THAN TAG? 376 JMP GETTG3 /NO-LOWER 377 GETTG4, DCA TEMP1 /CLEAR LAST TIME SWITCH 378 SNL 379 ISZ TEMP1 /SET LAST TIME SWITCH TO 1 380 TAD TEMP2 /GET # OF TAGS TO SKIP 381 SNL 382 CIA 383 TAD THISTG /INCREASE OR DECREASE TAG NUMBER 384 DCA THISTG 385 TAD TEMP2 /GET NUMBER 386 CLL RAR /DIVIDE BY 2 387 SNA /IS RESULT 0? 388 ISZ TEMP1 /YES-BUMP LAST TIME SWITCH 389 SNA 390 IAC /IF RESULT WAS 1, MAKE IT 2 391 DCA TEMP2 /SAVE IT FOR NEXT TIME 392 JMS I [FINDTG /GET THE TAG 393 TAD [1777 /MASK 394 AND TAG1 /GET WORD 1 395 CLL CIA 396 TAD NAME1 /DOES IT MATCH? 397 SZA CLA 398 JMP GETTG2 /NO - TRY NEXT TAG 399 AC3777 400 AND TAG2 /YES - GET WORD 2 401 CLL CIA 402 TAD NAME2 /DOES IT MATCH? 403 SZA CLA 404 JMP GETTG2 /NO - TRY NEXT TAG 405 AC3777 406 AND TAG3 /YES - DOES IT MATCH? 407 CLL CIA 408 TAD NAME3 409 SZA CLA 410 JMP GETTG2 /NO - TRY NEXT TAG 411 JMP I GETTAG /YES--RETURN-- 412 GETTG3, AC7776 413 TAD TEMP1 /LAST TIME SWITCH = 2? 414 SZA CLA 415 JMP GETTG4 /NO-KEEP TRYING 416 ISZ THISTG /YES-QUIT SEARCHING 417 DCA VALUE2 418 DCA TAG1 419 DCA TAG2 420 DCA TAG3 /TAG NOT FOUND 421 STA /AC=7777 MEANS NOT FOUND 422 JMP I GETTAG /--RETURN-- 423 > 424 IFNZRO HASH< 425 PRIME=TAGMAX 426 427 GETTGH,/JMS I [TLYREF /HACK ONLY 428 000237 1200 TAD NAME1 /HASH OUR NAME 429 000240 7106 CLL RTL 430 000241 1201 TAD NAME2 431 000242 7006 RTL 432 000243 1202 TAD NAME3 433 000244 7006 RTL 434 000245 1200 TAD NAME1 435 000246 4272 JMS PROBE /NOW PROBE THE TABLE 436 000247 1200 TAD NAME1 /RE HASH THE NAME FOR A STEPSIZE 437 000250 7104 CLL RAL 438 000251 7006 RTL 439 000252 1201 TAD NAME2 440 000253 7100 CLL /CALC MODULO PRIME INLINE 441 000254 1332 TAD MPRIME 442 000255 7430 SZL 443 000256 5253 JMP .-3 444 000257 1076 TAD PRIME 445 000260 7450 SNA 446 000261 7001 IAC /STEPSIZE MUST BE NON ZERO! 447 000262 3331 DCA CRPDEL 448 000263 7100 PRBLUP, CLL 449 000264 1057 TAD THISTG /BUMP THE POINTER RANDOMLY 450 000265 1331 TAD CRPDEL 451 000266 7430 SZL /PROTECT AGAINST WRAP AROUND 452 000267 1332 TAD MPRIME /PROBABLY UNOPTIMAL SOLUTION 453 000270 4272 JMS PROBE 454 000271 5263 JMP PRBLUP 455 456 000272 0000 PROBE, 0 457 000273 7100 CLL 458 000274 1332 TAD MPRIME 459 000275 7430 SZL 460 000276 5273 JMP .-3 461 000277 1076 TAD PRIME 462 000300 3057 DCA THISTG /THISTG MODULO PRIME 463 / JMS I [TLYPRB /HACK ONLY 464 000301 4572 JMS I [FINDTG /GO GET IT 465 000302 1171 TAD [1777 /MASK THE TYPE BITS OUT 466 000303 0020 AND TAG1 /IS THERE ONE? 467 000304 7450 SNA 468 000305 5327 JMP NOTFND /NO EXIT POINTING AT IT 469 000306 7041 CIA /YES, DO A COMPARE 470 000307 1200 TAD NAME1 471 000310 7640 SZA CLA 472 000311 5672 JMP I PROBE 473 000312 7350 AC3777 474 000313 0021 AND TAG2 475 000314 7041 CIA 476 000315 1201 TAD NAME2 477 000316 7640 SZA CLA 478 000317 5672 JMP I PROBE 479 000320 7350 AC3777 480 000321 0022 AND TAG3 481 000322 7041 CIA 482 000323 1202 TAD NAME3 483 000324 7640 SZA CLA 484 000325 5672 JMP I PROBE /FOUND EXIT WITH AC CLEAR 485 000326 5612 JMP I GETTAG 486 000327 7240 NOTFND, STA /NOT FOUND EXIT WITH AC SET 487 000330 5612 JMP I GETTAG 488 489 000331 0000 CRPDEL, 0 490 000332 0000 MPRIME, 0 /INITIALIZED BY ONCE ONLY CODE FOR MACHINE AT HAND 491 > 492 493 494 000333 3203 GETTA3, DCA GETTA2 /SAVE CHAR 495 000334 1203 TAD GETTA2 496 000335 7106 CLL RTL /*4 497 000336 7004 RAL /*10 498 000337 1203 TAD GETTA2 /*11 499 000340 7006 RTL /*44 500 000341 1203 TAD GETTA2 /*45 501 000342 3751 DCA I GETTA4 /SET LEFT SIDE 502 000343 1351 TAD GETTA4 503 000344 1374 TAD (-GETTA2 504 000345 7640 SZA CLA /IS THIS AN OVERFLOW (>6) CHAR? 505 000346 7240 STA /NO - SET SWITCH TO RIGHT HALF 506 000347 3203 DCA GETTA2 /YES - LEAVE SWITCH AT LEFT HALF 507 000350 5234 JMP GETTA1 508 509 000351 0200 GETTA4, NAME1 510 /IGNORE SPACES ROUTINE 511 512 000352 0000 SPNOR, 0 513 000353 1040 TAD CHAR /GET THE CHARACTER 514 000354 1170 TAD [-240 /IS IT A SPACE? 515 000355 7640 SZA CLA 516 000356 5752 JMP I SPNOR /NO --RETURN-- 517 000357 4574 JMS I [GETC /YES - GET NEXT CHARACTER 518 000360 5353 JMP SPNOR+1 /LOOP 519 520 521 /HANDLER FOR PAUSE PSEUDO-OP 522 /END-OF-TAPE OR END-OF-FILE 523 524 000361 7330 PAUSEX, AC4000 525 000362 3040 DCA CHAR /SET END-OF-LINE CHARACTER 526 000363 1167 TAD [LINBUF+120 /REINITIALIZE TEXT POINTER 527 000364 3037 DCA TXTPTR 528 000365 7240 CLA CMA 529 000366 3773 DCA I (INCHCT /INDICATE EMPTY BUFFER 530 000367 2772 ISZ I (INEOF /SET END-OF-FILE 531 000370 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 532 000372 5275 PAGE 000373 5274 000374 7575 000375 0032 000376 7753 000377 7746 533 /OUTPUT 2 CHARACTER ERROR CODE 534 535 000400 0000 ERROR1, 0 536 000401 3001 DCA ERROR5 537 000402 1001 TAD ERROR5 538 000403 4566 JMS I [RTL6 539 000404 7004 RAL 540 000405 0175 AND [77 541 000406 1165 TAD [240 /CONVERT SIXBIT TO ASCII 542 000407 4450 JMS I OERROR /OUTPUT FIRST CHAR 543 000410 1001 TAD ERROR5 544 000411 0175 AND [77 545 000412 1165 TAD [240 546 000413 4450 JMS I OERROR /OUTPUT SECOND CHAR 547 000414 5600 JMP I ERROR1 /--RETURN-- 548 549 /HANDLER FOR FIELD PSEUDO-OP 550 551 000415 4564 FIELDX, JMS I [SPNOR /IGNORE SPACES 552 000416 4563 JMS I [DUMPS /DUMP CURRENT PAGE LITERALS 553 000417 4562 JMS I [DUMPZ /DUMP PAGE ZERO LITERALS 554 000420 4561 JMS I [EXP /GET EXPRESSION 555 000421 1034 TAD VALUE /TRIM TO RIGHT 3 BITS 556 000422 0160 AND [7 557 000423 3072 DCA FLDIND /STORE FOR LISTING 558 000424 1051 TAD PASS /IS THIS PASS 2? 559 000425 7640 SZA CLA 560 000426 5234 JMP FIELDY /NO - PREPARE TO EXIT 561 000427 1072 TAD FLDIND /YES - GET FIELD NUMBER 562 000430 7106 CLL RTL 563 000431 7004 RAL /AND CHANNELS 7 AND 8 564 000432 1157 TAD [7700 565 000433 4447 JMS I OCHAR /OUTPUT FIELD SETTING 566 000434 4556 FIELDY, JMS I [CLEAN /CLEAN UP THINGS 567 000435 1176 TAD [200 /RESET ORIGIN TO 200 568 000436 5254 JMP STAR1 569 570 /CHANGE LAST 2 LOCATIONS TO: 571 / CLA 572 / JMP STAR1+1 573 /FOR INDAC GROUP TO OMIT RE-ORIGIN 574 /HANDLER FOR PAGE PSEUDO-OP 575 576 000437 4563 PAGEX, JMS I [DUMPS /DUMP SAME PAGE LITERALS 577 000440 4777 JMS I (XLISTZ /ANY EXPRESSION? 578 000441 5247 JMP PAGEY /NO 579 000442 4561 JMS I [EXP /YES - GET EXPRESSION 580 000443 1034 TAD VALUE 581 000444 4566 JMS I [RTL6 582 000445 7004 RAL /GET PAGE NUMBER 583 000446 5251 JMP STAR3-1 584 585 000447 1027 PAGEY, TAD LOC /NO ARGUMENT - FIND NEXT PAGE 586 000450 1155 TAD [177 587 000451 0154 AND [7600 588 000452 3034 STAR3, DCA VALUE 589 000453 1034 TAD VALUE /GET START OF PAGE 590 000454 4553 STAR1, JMS I [PUNORG /PUNCH ORIGIN 591 000455 4552 JMS I [FINDSP 592 000456 1151 TAD [LITBUF /RESET POINTERS 593 000457 3043 DCA TEMP 594 000460 1443 TAD I TEMP 595 000461 3023 DCA LITPTR /INITIALIZE LITERAL POINTER FOR NEW PAGE 596 000462 3014 DCA LAST1 597 000463 5550 JMP I [PUNVAL /SEE ABOUT DUMPING SOURCE CODE 598 599 /HANDLER FOR FIXMRI PSEUDO-OP 600 601 000464 4564 FIXMRX, JMS I [SPNOR /IGNORE SPACES 602 000465 4547 JMS I [TSTALP /IS CHARACTER ALPHABETIC? 603 000466 5271 JMP FIXMR1 /YES-CONTINUE 604 000467 4546 JMS I [ICMESG /NO - GENERATE IC MESSAGE, GET NEXT CHAR 605 000470 5265 JMP FIXMRX+1 /KEEP LOOKING FOR ALPHABETIC CH. OR END OF LINE 606 000471 4545 FIXMR1, JMS I [GETTAG /PICK UP TAG 607 000472 3062 DCA ALPHAI /STORE UNDEFINED SWITCH 608 000473 7410 SKP 609 000474 4546 FIXMR2, JMS I [ICMESG 610 000475 4564 JMS I [SPNOR /IGNORE SPACES 611 000476 1040 TAD CHAR /WAS CHARACTER = ? 612 000477 1376 TAD (-"= 613 000500 7640 SZA CLA 614 000501 5274 JMP FIXMR2 /NO - PRINT IC MESSAGE AND KEEP LOOKING 615 /FALL INTO EQUALS PROCESSOR 616 /HANDLER FOR = 617 618 000502 7330 AC4000 /FALL INTO HERE FROM FIXMRI 619 000503 4544 EQUAL, JMS I [PUSHA /PUSH FIXMRI FLAG 620 000504 4574 JMS I [GETC /GET NEXT CHARACTER 621 000505 1775 TAD I (NAME1 /STORE THE SYMBOL NAME 622 000506 4544 JMS I [PUSHA /ON THE PUSH DOWN LIST 623 000507 1774 TAD I (NAME2 624 000510 4544 JMS I [PUSHA 625 000511 1773 TAD I (NAME3 626 000512 4544 JMS I [PUSHA 627 000513 1057 TAD THISTG /AND ITS PRESENT (OR FUTURE) 628 000514 4544 JMS I [PUSHA /POSITION IN THE SYMTAB 629 000515 1062 TAD ALPHAI 630 000516 4544 JMS I [PUSHA /STORE UNDEFINED INDICATOR 631 000517 4564 JMS I [SPNOR /IGNORE SPACES 632 000520 4561 JMS I [EXP /GET EXPRESSION TO RIGHT OF = 633 000521 1410 TAD I PDLXR 634 000522 3062 DCA ALPHAI /RESTORE UNDEFINED INDICATOR 635 000523 1410 TAD I PDLXR 636 000524 3057 DCA THISTG /RESTORE SYMBOL TABLE POSITION 637 000525 1410 TAD I PDLXR /RESTORE TAG NAME 638 000526 3773 DCA I (NAME3 639 000527 1410 TAD I PDLXR 640 000530 3774 DCA I (NAME2 641 000531 1410 TAD I PDLXR 642 000532 3775 DCA I (NAME1 643 000533 2065 ISZ UNDFSW /WAS ANY PART OF DEFINITION UNDEFINED? 644 000534 5341 JMP EQUAL3 /NO 645 000535 4471 JMS I PERROR /YES - GENERATE IE ERROR MESSAGE 646 000536 5145 IE 647 000537 2010 ISZ PDLXR /CLEAR EXTRA WORD FROM PDL 648 000540 5550 JMP I [PUNVAL /FORGET ABOUT DEFINING TAG 649 /MORE = PROCESSING 650 651 000541 2062 EQUAL3, ISZ ALPHAI /WAS TAG DEFINED BEFORE? 652 000542 5345 JMP .+3 /YES - CHECK FOR ILLEGAL REDEFINITION 653 000543 4543 JMS I [INSRTG /NO - INSERT TAG INTO SYMBOL TABLE 654 000544 5357 JMP EQUAL2 /AND BYPASS ILLEGAL REDEF CHECK 655 000545 4572 JMS I [FINDTG /PUT TAG IN TAG1-TAGE AND VALUE2 656 000546 1034 TAD VALUE 657 000547 7041 CIA 658 000550 1035 TAD VALUE2 659 000551 7640 SZA CLA /WERE DEFINITIONS THE SAME? 660 000552 1020 TAD TAG1 /NO - IS IT A PERMANENT SYMBOL? 661 000553 7700 SMA CLA 662 000554 5357 JMP EQUAL2 /NO - OK TO REDEFINE 663 000555 4542 JMS I [ERROR /YES - GENERATE RD ERROR MESSAGE FIRST 664 000556 6244 RD 665 000557 1034 EQUAL2, TAD VALUE /DEFINE OR REDEFINE 666 000560 3035 DCA VALUE2 667 000561 7350 AC3777 668 000562 0021 AND TAG2 /CLEAR OLD FIXMRI BIT 669 000563 1410 TAD I PDLXR /INSERT NEW ONE 670 000564 3021 DCA TAG2 671 000565 4541 JMS I [PUTTAG /STORE TAG 672 000566 5550 JMP I [PUNVAL /SEE ABOUT DUMPING SOURCE CODE 673 000573 0202 PAGE 000574 0201 000575 0200 000576 7503 000577 5547 674 /ROTATE AC 6 LEFT 675 676 000600 0000 RTL6, 0 677 000601 7106 CLL RTL 678 000602 7006 RTL 679 000603 7006 RTL 680 000604 5600 JMP I RTL6 /--RETURN-- 681 682 683 /GET NEXT CHARACTER ROUTINE 684 /READS FROM THE INPUT FILES AND PASSES THE MODIFIED CHARACTERS 685 /TO THE PROGRAM 686 /IT ALSO PRINTS THE LATEST LINE IF IT HAS NOT BEEN PRINTED 687 688 000605 0000 GETC, 0 689 000606 2037 ISZ TXTPTR /POINT TO NEXT CHARACTER 690 000607 1437 GETC7, TAD I TXTPTR /GET NEXT CHARACTER 691 000610 7440 SZA /IS IT 0? 692 000611 5257 JMP GETC8 /NO - MORE ARE IN THIS LINE 693 000612 1051 TAD PASS /IS THIS PASS 3? 694 000613 7750 SPA SNA CLA 695 000614 5232 JMP GETC1 /NO 696 000615 1140 TAD [LINBUF /YES 697 000616 3037 DCA TXTPTR /RESET POINTER TO BEGINNING 698 000617 1437 TAD I TXTPTR /GET 1ST CHARACTER 699 000620 7450 SNA /IS IT 0? 700 000621 5232 JMP GETC1 /YES - LINE HAS BEEN PRINTED 701 000622 1137 TAD [-215 /IS IT 215? 702 000623 7650 SNA CLA 703 000624 5231 JMP GETC2 /YES - DO NOT PRINT THE SPACES 704 000625 1136 TAD [211 /NO-OUTPUT 2 TABS 705 000626 4450 JMS I OERROR 706 000627 1136 TAD [211 707 000630 4450 JMS I OERROR 708 000631 4335 GETC2, JMS LINPRT /NOW PRINT THE LINE 709 000632 1377 GETC1, TAD (-121 710 000633 3036 DCA TXTSWT 711 000634 1376 TAD (LINBUF-1 712 000635 3037 DCA TXTPTR /RESET POINTER 713 000636 2037 ISZ TXTPTR 714 000637 4775 GETC6, JMS I (INPUT /GET NEXT CHARACTER 715 000640 5247 JMP GETC4 /215 716 000641 3437 DCA I TXTPTR /STORE THE CHARACTER 717 000642 2036 ISZ TXTSWT /TOO MANY? 718 000643 5236 JMP GETC6-1 /NO 719 000644 7240 CLA CMA /YES 720 000645 3036 DCA TXTSWT 721 000646 5237 JMP GETC6 722 000647 3437 GETC4, DCA I TXTPTR /SET END 723 000650 2037 ISZ TXTPTR 724 000651 3437 DCA I TXTPTR /SET END OF LINE 725 000652 1140 TAD [LINBUF 726 000653 3037 DCA TXTPTR /RESET POINTER 727 000654 7240 CLA CMA 728 000655 3036 DCA TXTSWT /RESET SWITCH 729 000656 5207 JMP GETC7 /GET THAT CHARACTER 730 731 000657 1137 GETC8, TAD [-215 /IS IT A CARRIAGE RETURN? 732 000660 7450 SNA 733 000661 5307 JMP GETC12 /YES-END OF LINE 734 000662 1063 TAD GETCI /NO- 735 000663 1374 TAD (215-"/ /IS IT A /? 736 000664 7450 SNA /YES- 737 000665 5315 JMP GETC13 /"/" IS END 738 000666 1373 TAD ("/-"; /IS IT A ;? 739 000667 7450 SNA /YES- 740 000670 5307 JMP GETC12 /";" IS END 741 000671 1372 TAD (";-211 /IS IT A TAB? 742 000672 7440 SZA 743 000673 1371 TAD (211-240 /OR A SPACE? 744 000674 7640 SZA CLA 745 000675 5310 JMP GETC9 /NO-NOT ANYTHING SPECIAL 746 000676 2036 ISZ TXTSWT /YES-2ND OCCURANCE? 747 000677 5206 JMP GETC+1 /YES - IGNORE 748 000700 1165 TAD [240 749 000701 3040 DCA CHAR /NO - GIVE A SPACE 750 000702 5605 JMP I GETC /--RETURN-- 751 752 000703 2053 GETC16, ISZ CONDSW /DECREMENT CONDITIONAL COUNTER 753 000704 5321 JMP GETC15 754 000705 1167 GETC17, TAD [LINBUF+120 755 000706 3037 DCA TXTPTR 756 000707 7330 GETC12, AC4000 757 000710 1437 GETC9, TAD I TXTPTR 758 000711 3040 DCA CHAR /STORE CHARACTER 759 000712 7240 CLA CMA 760 000713 3036 DCA TXTSWT /SET THE SWITCH 761 000714 5605 JMP I GETC /--RETURN-- 762 000715 1053 GETC13, TAD CONDSW /CURRENTLY IN CONDITIONALS? 763 000716 7450 SNA 764 000717 5305 JMP GETC17 /NO 765 000720 3053 DCA CONDSW /STORE UPDATED CONDITIONAL LEVEL 766 000721 2037 GETC15, ISZ TXTPTR /YES-SCAN LINE FOR < AND > 767 000722 1437 TAD I TXTPTR 768 000723 1137 TAD [-215 /IS CHARACTER A CARRIAGE RETURN? 769 000724 7450 SNA 770 000725 5305 JMP GETC17 /YES 771 000726 1370 TAD (215-"> /NO IS IT A >? 772 000727 7450 SNA 773 000730 5303 JMP GETC16 /YES 774 000731 1367 TAD (">-"< /NO-IS IT 1088 IFNZRO HASH< 1089 1090 001200 0000 SYMPRT, 0 1091 001201 2042 ISZ EDITPG 1092 001202 3041 DCA THISPG 1093 001203 4535 JMS I [FORMFD /OUTPUT A HEADING 1094 001204 4701 JMS I SYMHND /NOW READ THE SYMBOL TABLE SORT OVERLAY 1095 001205 0200 0200 /2 PAGES 1096 001206 6600 SYMSRT, OUDEVH+400 /TO HERE 1097 001207 0041 ASWAP+1 /FROM HERE 1098 001210 5700 JMP I SYMERR /UGH 1099 001211 4606 JMS I SYMSRT /SORT THEM AND SET LINK 1100 001212 3067 SYMNWP, DCA SYMTAG /POINT TO SYMBOL 1101 001213 7430 SZL /LINK OFF IF ANY SYMBOLS TO LIST 1102 001214 5600 JMP I SYMPRT /NONE --RETURN-- 1103 001215 1277 TAD SMIN67 /SET LINE/PAGE COUNT 1104 001216 3065 DCA SYMLCT 1105 001217 1060 SYMPAG, TAD HIGHTG 1106 001220 7141 CLL CIA 1107 001221 1067 TAD SYMTAG 1108 001222 7630 SZL CLA 1109 001223 5600 JMP I SYMPRT /NO MORE IF AT HIGHTAG NOW 1110 001224 1067 TAD SYMTAG 1111 001225 3057 DCA THISTG /PREPARE TO PRINT LEFTMOST SYMBOL 1112 001226 1303 TAD SYMNCL /4 PER LINE (DEFAULT) 1113 001227 3062 DCA SYMCCT /TO COLLUMS/LINE CNTR 1114 001230 5241 JMP SYMGO 1115 001231 4527 SYMLIN, JMS I [ERROR1 1116 001232 4527 JMS I [ERROR1 1117 001233 4527 JMS I [ERROR1 1118 001234 1060 TAD HIGHTG 1119 001235 7141 CLL CIA 1120 001236 1057 TAD THISTG 1121 001237 7630 SZL CLA 1122 001240 5264 JMP SYMNXL /SKIP TO NEXT LINE IF OFF TABLE 1123 001241 4572 SYMGO, JMS I [FINDTG /OK, GET IT 1124 001242 1020 TAD TAG1 1125 001243 4676 JMS I SDIV45 1126 001244 1021 TAD TAG2 1127 001245 4676 JMS I SDIV45 1128 001246 1022 TAD TAG3 1129 001247 4676 JMS I SDIV45 1130 001250 1165 TAD [240 1131 001251 4450 JMS I OERROR 1132 001252 1035 TAD VALUE2 /PRINT VALUE NOW 1133 001253 4310 JMS OCTPRT 1134 001254 1277 SYMDDT, TAD SMIN67 1135 001255 7141 CLL CIA 1136 001256 1057 TAD THISTG 1137 001257 3057 DCA THISTG 1138 001260 7430 SZL 1139 001261 5264 JMP SYMNXL /SKIP IF WRAP AROUND 1140 001262 2062 ISZ SYMCCT /ELSE DO NEXT COLUMN 1141 001263 5231 JMP SYMLIN 1142 001264 1134 SYMNXL, TAD [215 1143 001265 4450 JMS I OERROR /CR/LF 1144 001266 2067 ISZ SYMTAG /POINT TO NEXT SYMBOL 1145 001267 2065 ISZ SYMLCT 1146 001270 5217 JMP SYMPAG 1147 001271 4535 HSWIT2, JMS I [FORMFD 1148 001272 1067 TAD SYMTAG 1149 001273 7100 CLL 1150 001274 1302 TAD SYMOFS /OFFSET TO NEXT SYMBOL 1151 001275 5212 JMP SYMNWP /DO THE NEXT PAGE 1152 1153 001276 4217 SDIV45, DIV45 1154 001277 7711 SMIN67, -67 1155 001300 2761 SYMERR, SYSERR 1156 001301 7607 SYMHND, 7607 1157 001302 0245 SYMOFS, 245 /DEFAULT 1158 001303 7774 SYMNCL, -4 1159 SYMTAG= LINKSW 1160 SYMLCT= UNDFSW 1161 SYMCCT= ALPHAI 1162 001304 0000 ZBLOCK 4 /WASTE SOME SPACE 001305 0000 001306 0000 001307 0000 1163 > 1164 1165 1166 /END OF AREA WHICH MAY BE SWAPPED OUT 1167 /DURING PASSES 1 AND 2 1168 /********************************************************************** 1169 1170 ENDOVL= . 1171 /OCTAL PRINT ROUTINE 1172 /ENTER WITH # TO BE OUTPUT IN AC 1173 /** DO NOT USE TEMPS BELOW THIS LOC! 1174 1175 001310 0000 OCTPRT, 0 1176 001311 3330 DCA OCTPR1 1177 001312 1133 TAD [-4 1178 001313 3331 DCA OCTPR3 1179 001314 1330 OCTPR2, TAD OCTPR1 /GET EACH DIGIT SEPARATELY 1180 001315 7106 CLL RTL 1181 001316 7004 RAL 1182 001317 3330 DCA OCTPR1 1183 001320 1330 TAD OCTPR1 1184 001321 7004 RAL 1185 001322 0160 AND [7 1186 001323 1130 TAD ["0 /MAKE IT INTO AN ASCII CHARACTER 1187 001324 4450 JMS I OERROR /OUTPUT IT 1188 001325 2331 ISZ OCTPR3 1189 001326 5314 JMP OCTPR2 1190 001327 5710 JMP I OCTPRT /--RETURN-- 1191 1192 001330 0000 OCTPR1, 0 1193 001331 0000 OCTPR3, 0 1194 /OUTPUT ONE REGISTER 1195 1196 001332 0000 PUNONE, 0 1197 001333 1051 TAD PASS /WHICH PASS IS THIS? 1198 001334 7450 SNA 1199 001335 5371 JMP PUNON2 /PASS 2--OUTPUT BINARY 1200 001336 7710 SPA CLA 1201 001337 5367 JMP PUNON3 /PASS 1--EXIT 1202 001340 1072 TAD FLDIND /GET FIELD NUMBER 1203 001341 1130 TAD ["0 /CONVERT TO ASCII 1204 001342 4450 JMS I OERROR /PRINT IT 1205 001343 1027 TAD LOC /GET LOW ORDER 4 DIGITS (LOC CTR) 1206 001344 4310 JMS OCTPRT /PRINT IT TOO 1207 001345 1030 TAD OFFSET /IF THIS CODE IS IN A RELOC SECTION, 1208 001346 7640 SZA CLA / 1209 001347 1377 TAD (1200 /FLAG THE LOCATION COUNTER WITH A * 1210 001350 4527 DTORG1, JMS I [ERROR1 /OUTPUT 2 SPACES 1211 001351 1034 TAD VALUE 1212 001352 4310 JMS OCTPRT /OUTPUT CONTENTS 1213 001353 1540 TAD I [LINBUF /IS THERE SOURCE CODE TO DUMP? 1214 001354 7650 SNA CLA 1215 001355 5362 JMP PUNON1 /NO-OUTPUT CARRIAGE RETURN 1216 001356 1067 TAD LINKSW /YES-DUMP LINK SWITCH (' ) OR ( ) 1217 001357 4527 JMS I [ERROR1 1218 001360 4526 JMS I [LINPRT /DUMP SOURCE CODE 1219 001361 5367 JMP PUNON3 /AND EXIT 1220 1221 001362 1067 PUNON1, TAD LINKSW /NO LINE - OUTPUT LINK SWITCH ANYWAY 1222 001363 7440 SZA /IF THERE IS ONE 1223 001364 4527 JMS I [ERROR1 1224 001365 1134 TAD [215 /OUTPUT CARRIAGE RETURN 1225 001366 4450 JMS I OERROR 1226 001367 3067 PUNON3, DCA LINKSW /CLEAR LINK SWITCH 1227 001370 5732 JMP I PUNONE /--RETURN-- 1228 1229 /PASS 2-OUTPUT ONE REGISTER 1230 1231 001371 1034 PUNON2, TAD VALUE /GET CONTENTS 1232 001372 7100 CLL 1233 001373 4525 JMS I [PUNOUT /OUTPUT AS 2 FRAMES 1234 001374 5367 JMP PUNON3 /AND EXIT 1235 001377 1200 PAGE 1236 /**CURRENT PAGE LITERALS ON THIS PAGE WILL BE LOST** 1237 /***WHEN OVERLAYED BY PUSHDOWN LIST** 1238 1239 /ARRANGE TO OUTPUT ONE REGISTER 1240 1241 001400 0000 PUNBIN, 0 1242 001401 3034 DCA VALUE 1243 001402 4552 JMS I [FINDSP /FIND CURRENT PAGE NUMBER 1244 001403 1151 TAD [LITBUF 1245 001404 3045 DCA TEMP2 /POINT TO NUMBER OR LITERALS 1246 001405 1027 TAD LOC 1247 001406 0155 AND [177 1248 001407 3043 DCA TEMP 1249 001410 1445 TAD I TEMP2 /IS PAGE FULL? 1250 001411 7041 CIA 1251 001412 1043 TAD TEMP 1252 001413 2043 ISZ TEMP 1253 001414 7710 SPA CLA 1254 001415 5222 JMP ONEOK /NO-OK TO ADD ONE MORE REGISTER 1255 001416 1043 TAD TEMP /YES- 1256 001417 3445 DCA I TEMP2 1257 001420 4552 JMS I [FINDSP /FIND CURRENT PAGE NUMBER 1258 001421 4650 JMS I PPEZE /GENERATE PE OR ZE ERROR 1259 001422 4552 ONEOK, JMS I [FINDSP /FIND CURRENT PAGE NUMBER 1260 001423 1124 TAD [TPINST 1261 001424 3045 DCA TEMP2 1262 001425 1043 TAD TEMP /IS THIS ADDRESS HIGHER THAN PREVIOUS 1263 001426 7041 CIA /HIGH INSTRUCTION PAGE? 1264 001427 1445 TAD I TEMP2 1265 001430 7700 SMA CLA 1266 001431 5234 JMP PUNMOD /NO 1267 001432 1043 TAD TEMP /YES-THIS IS NEW HIGH INSTRUCTION 1268 001433 3445 DCA I TEMP2 1269 1270 001434 4523 PUNMOD, JMS I [PUNONE /OUTPUT THIS REGISTER 1271 001435 2027 ISZ LOC /GET NEXT LOCATION 1272 001436 1027 TAD LOC /IF THE "ISZ" SKIPS IT IS O.K. (A 0) 1273 001437 0155 AND [177 /IS THIS FIRST INSTRUCTION ON NEXT PAGE? 1274 001440 7640 SZA CLA 1275 001441 5600 JMP I PUNBIN /NO--RETURN-- 1276 001442 4552 JMS I [FINDSP /YES-FIND CURRENT PAGE NUMBER 1277 001443 1151 TAD [LITBUF /RESET POINTERS 1278 001444 3045 DCA TEMP2 1279 001445 1445 TAD I TEMP2 1280 001446 3023 DCA LITPTR 1281 001447 5600 JMP I PUNBIN /--RETURN-- 1282 1283 001450 4641 PPEZE, PEZE 1284 001451 0323 HEADER, "S;"Y;"M;"B;"O;"L;"S 001452 0331 001453 0315 001454 0302 001455 0317 001456 0314 001457 0323 1285 001460 0211 211;211;211;211;211 /FOR /N HEADER 001461 0211 001462 0211 001463 0211 001464 0211 1286 1287 /************************************************************ 1288 /CODE OVERLAYED ON PASS 3 1289 /BY USER HEADER BUFFER 1290 1291 /CONTINUATION OF EXPUNGE HANDLER 1292 /ENTER ON PASS 1 ONLY 1293 1294 EXPUNW, IFZERO HASH< 1295 DCA TEMP1 1296 DCA EXPUN2 /CLEAR NEW HIGH TAG COUNTER 1297 TAD HIGHTG 1298 CMA 1299 DCA TEMP3 /SAVE NUMBER OF SYM TBL ENTRIES 1300 EXPUNY, TAD TEMP1 1301 DCA THISTG 1302 JMS I [FINDTG /GET A SYMBOL 1303 TAD TAG1 /ONLY SAVE THE SYMBOL IF 1304 RTL 1305 CLA /IT WAS A PSEUDO-OP, OR 1306 TAD TAG3 /THE SYMBOLS I OR Z 1307 SNL SMA CLA 1308 JMP EXPUA4 /NO-FORGET TAG 1309 TAD EXPUN2 /YES-RETURN TAG TO SYMBOL TABLE 1310 DCA THISTG 1311 JMS I [PUTTAG 1312 ISZ EXPUN2 1313 EXPUA4, ISZ TEMP1 1314 ISZ TEMP3 /DONE YET? 1315 JMP EXPUNY /NO- TRY NEXT TAG 1316 CLA CMA /YES 1317 TAD EXPUN2 /RESET HIGH TAG 1318 DCA HIGHTG 1319 JMP I [LOOKEX /--EXIT TO MAIN-- 1320 1321 EXPUN2, 0 1322 > 1323 IFNZRO HASH< 1324 /HASH TABLE EXPUNGE - DEPENDS ON PSEUDO OPS 1325 /BEING HASHED FIRST. SCANS WHOLE TABLE (SLOW AS HELL!) 1326 1327 001465 3057 DCA THISTG /POINT TO FIRST ENTRY 1328 001466 1076 TAD TAGMAX /SET THE COUNT 1329 001467 7041 CIA 1330 001470 3044 DCA TEMP1 1331 001471 4572 EXPUNL, JMS I [FINDTG /GO GET ONE 1332 001472 1020 TAD TAG1 1333 001473 7006 RTL 1334 001474 7200 CLA 1335 001475 1022 TAD TAG3 1336 001476 7730 SPA SZL CLA /PSEUDO OP? 1337 001477 5307 JMP EXPUNS /YES, SKIP DELETION 1338 001500 3020 DCA TAG1 /NO, WIPE IT 1339 001501 3021 DCA TAG2 1340 001502 3022 DCA TAG3 1341 001503 4541 JMS I [PUTTAG /AND PUT IT BACK 1342 001504 7240 STA 1343 001505 1060 TAD HIGHTG 1344 001506 3060 DCA HIGHTG /DECREMENT SYMBOL COUNT 1345 001507 2057 EXPUNS, ISZ THISTG /POINT TO NEXT ENTRY 1346 001510 2044 ISZ TEMP1 /TALLY COUNT 1347 001511 5271 JMP EXPUNL /GET ANOTHER 1348 001512 5577 JMP I [LOOKEX /DONE --RETURN-- 1349 > 1350 1351 /*************************************************************** 1352 /ASSEMBLER HEADER BUFFER 1353 1354 001513 0000 ZBLOCK HEADER+HEDLEN-. 001514 0000 001515 0000 001516 0000 001517 0000 001520 0000 1355 1356 001521 0240 " ;" ;"P;"A;"L;"8;"- 001522 0240 001523 0320 001524 0301 001525 0314 001526 0270 001527 0255 1357 001530 0326 "V;"1;VERSION-12+"0;SUBVERSION 001531 0261 001532 0260 001533 0301 1358 001534 0240 " 1359 001535 0316 DATE, "N;"O;" ;"D;"A;"T;"E;" /GETS SET TO DD-MMM-YY IF DATE PRESENT 001536 0317 001537 0240 001540 0304 001541 0301 001542 0324 001543 0305 001544 0240 1360 001545 0240 " ;" ;"P;"A;"G;"E;" ;0 001546 0240 001547 0320 001550 0301 001551 0307 001552 0305 001553 0240 001554 0000 1361 /PUSHDOWN LIST 1362 /OCCUPIES NEXT 43(8) LOCATIONS 1363 PDLND=. 1364 1365 1366 1367 /********************************************************* 1368 /ONCE ONLY CODE FOR /D OPTION 1369 /PUT INTO SYMLST FOR DDT COMPATIBLE SYMBOL TABLE 1370 /OVERLAYED DURING ASSEMBLY BY PUSHDOWN LIST 1371 1372 DSWIT1, IFZERO HASH< 1373 RELOC SYMPRT+4 1374 1375 DCA I SYMPRF 1376 JMS SYMPRC 1377 TAD [377 1378 JMS I OERROR 1379 CLA CMA 1380 DCA THISTG 1381 SYMPRE, TAD [215 1382 JMS I OERROR 1383 JMS SYMPPP 1384 JMP SYMPRD 1385 JMP SYMPR1 1386 SYMPRF, HSWIT1 1387 SYM204, 204 1388 RELOC 1389 1390 > 1391 IFNZRO HASH< 1392 RELOC SYMNWP 1393 001212* 3057 DCA THISTG 1394 001213* 3627 DCA I SYMHSW 1395 001214* 4265 JMS DDTLDR 1396 001215* 1122 TAD [377 1397 001216* 4450 JMS I OERROR 1398 001217* 1134 SYMLUP, TAD [215 1399 001220* 4450 JMS I OERROR 1400 001221* 1060 TAD HIGHTG 1401 001222* 7141 CLL CIA 1402 001223* 1057 TAD THISTG 1403 001224* 7630 SZL CLA 1404 001225* 5256 JMP SYMXIT 1405 001226* 5241 JMP SYMGO 1406 001227* 1013 SYMHSW, HSWIT1 1407 RELOC 1408 > 1409 DSWITA= . 1410 1411 /********************************************************** 1412 PAGE 1413 /************************************************************* 1414 1415 /PAL8 TABLES - LOAD OVER INITIALIZATION CODE 1416 1417 PDLST= PDLND+42 /PUSHDOWN LIST 43(8) LOCS LONG 1418 1419 1420 LINBUF= PDLST+1 /LINE BUFFER OCCUPIES 122(8) LOCATIONS 1421 1422 LITBUF= LINBUF+122 /LITERAL TABLE IS 40(8) LOCATIONS (ONE PER PAGE) 1423 / SHOWING LOWEST PAGE ADDRESS USED FOR LITERALS 1424 1425 TPINST= LITBUF+40 /TOP INSTRUCTION TABLE IS 40(8) LOCTIONS 1426 / SHOWING HIGHEST PAGE ADDRESS USED FOR INSTRUCTIONS 1427 1428 LITBF2= TPINST+40-17 /LITERAL BUFFER 2 CONTAINS UP TO 160(8) 1429 /PAGE 0 LITERALS, SUBSCRIPTS 20-177 1430 1431 LITBF1= LITBF2+200-100 /LITERAL BUFFER 1 CONTAINS UP TO 100(8) 1432 /CURRENT PAGE LITERALS, SUBSCRIPTS 100-177 1433 1434 /************************************************************* 1435 /ONCE ONLY CODE FOR ASSEMBLER START UP 1436 /OVERLAYED BY BUFFERS 1437 1438 /HANDLES SWITCH OPTIONS 1439 1440 001600 6212 BEGIN, CIF 10 1441 001601 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 1442 001602 0005 5 /*COMMAND DECODER* 1443 001603 2001 2001 /DEFAULT INPUT EXTENSION IS .PA 1444 001604 6211 NOCD, CDF 10 /RETURN 1445 001605 1777 TAD I (7604 /IS THERE A BINARY FILE EXTENSION? 1446 001606 7450 SNA 1447 001607 1376 TAD (216 /NO - DEFAULT EXTENSION IS .BN 1448 001610 3777 DCA I (7604 /YES 1449 001611 1775 TAD I (7611 /IS THERE A LISTING FILE EXTENSION? 1450 001612 7450 SNA 1451 001613 1374 TAD (1423 /NO - DEFAULT EXTENSION IS .LS 1452 001614 3775 DCA I (7611 1453 001615 1773 TAD I (MPARAM+1 /WAS THE /T OPTION SELECTED? 1454 001616 6201 CDF 1455 001617 0372 AND (20 1456 001620 7650 ZT7640, SNA CLA 1457 001621 5224 JMP BEGINA /NO 1458 001622 3771 BEGIAA, DCA I (HSWITC /YES - GENERATE CR/LF IN PLACE OF F/F 1459 001623 5232 JMP BEGIN2 1460 1461 001624 1121 BEGINA, TAD [7605 /WAS TTY THE PASS 3 DEVICE? 1462 001625 4770 JMS I (OTYPE 1463 001626 0367 AND (770 1464 001627 7650 SNA CLA 1465 001630 5222 JMP BEGIAA /YES - GENERATE CR/LF IN PLACE OF F/F 1466 001631 3766 DCA I (BEGIAB /NOT /T OR TTY: 1467 1468 001632 6211 BEGIN2, CDF 10 1469 001633 1773 TAD I (MPARAM+1 /WAS THE /S OPTION SELECTED? 1470 001634 6201 CDF 1471 001635 0365 AND (40 1472 001636 7640 SZA CLA 1473 001637 3764 DCA I (SSWITC /YES -OMIT SYMBOL TABLE 1474 001640 6211 CDF 10 1475 001641 7332 AC2000 1476 001642 0773 AND I (MPARAM+1 1477 001643 6201 CDF 1478 001644 7650 SNA CLA /WAS THE /N OPTION SELECTED? 1479 001645 5250 JMP BEGIN4 /NO 1480 001646 1261 TAD BEGSKP /SET SWITCH 1481 001647 3763 DCA I (NSWITC /YES -SYMBOL TABLE BUT NO LISTING 1482 001650 6211 BEGIN4, CDF 10 1483 001651 1762 TAD I (MPARAM /WAS THE /H OPTION SELECTED? 1484 001652 6201 CDF 1485 001653 0372 AND (20 1486 001654 7650 ZH7640, SNA CLA 1487 001655 5262 JMP BEGINB /NO 1488 001656 1761 BEGHSW, TAD I (FORM21 /YES -SUPPRESS LISTING PAGE FORMAT 1489 001657 3771 DCA I (HSWITC 1490 001660 3760 DCA I (HSWIT1 1491 001661 7610 BEGSKP, CLA SKP 1492 001662 3757 BEGINB, DCA I (HSWIT2 1493 001663 6211 CDF 10 1494 001664 1762 TAD I (MPARAM /WAS THE /D OPTION SELECTED? 1495 001665 6201 CDF 1496 001666 0127 AND [400 1497 001667 7650 ZD7640, SNA CLA 1498 001670 5301 JMP BEGIN1 /NO 1499 001671 1412 TAD I XREG1 /YES -DDT COMPATIBLE SYMBOL TABLE 1500 001672 3416 DCA I LAST3 /SUBSTITUTE ALTERNATE CODE 1501 001673 2310 ISZ DSWIT3 /INTO SYMBOL TABLE OUTPUT ROUTINE 1502 001674 5271 JMP .-3 1503 001675 1413 TAD I XREG2 1504 001676 3417 DCA I LAST4 1505 001677 2311 ISZ DSWIT4 1506 001700 5275 JMP .-3 1507 1508 001701 1756 BEGIN1, TAD I (JSBITS /RESET JOB STATUS WORD TO 1509 001702 0355 AND (6777 /INDICATE PAL8 NOT RESTARTABLE 1510 001703 1354 TAD (1000 1511 001704 3756 DCA I (JSBITS 1512 001705 6213 CIF CDF 10 1513 001706 4753 JMS I (FMTDAT /CALL ROUTINE IN FIELD 1 TO SETUP DATE 1514 001707 5752 JMP I (BEGINZ /CONTINUE ON 1515 1516 001710 7762 DSWIT3, DSWIT1-DSWITA 1517 001711 7756 DSWIT4, DSWIT2-DSWITB 1518 001752 2000 PAGE 001753 7200 001754 1000 001755 6777 001756 7746 001757 1271 001760 1013 001761 1113 001762 7643 001763 4526 001764 4445 001765 0040 001766 1012 001767 0770 001770 5600 001771 1042 001772 0020 001773 7644 001774 1423 001775 7611 001776 0216 001777 7604 1519 /ONCE ONLY CODE CONTINUED 1520 /ASSEMBLER INITIALIZATION PROCEDURES 1521 1522 1523 002000 1154 BEGINZ, TAD [7600 /WHAT DEVICE FOR BINARY OUTPUT? 1524 002001 4777 JMS I (OTYPE 1525 002002 7700 SMA CLA 1526 002003 1376 TAD (-70 /STAND-ALONE 1527 002004 1375 TAD (-10 /DIRECTORY 1528 002005 3774 DCA I (SWAPR2+LEADER /SET AMOUNT OF LEADER TRAILER 1529 002006 3014 DCA LAST1 /NO DEFINED TAG 1530 BEGIN5, IFZERO HASH< 1531 CDF 1532 TAD I BLK1 /MOVE SYMBOL TABLE TO FIELD 1 1533 CDF 10 1534 DCA I BLK2 1535 ISZ BLK1 1536 ISZ BLK2 1537 ISZ BLK3 1538 JMP BEGIN5 1539 > 1540 002007 6201 CDF 1541 002010 3567 DCA I [LINBUF+120 /SET BUFFER POINTERS 1542 002011 3773 DCA I (LINBUF+121 1543 002012 1154 TAD [7600 /IS PTP BINARY OUTPUT DEVICE? 1544 002013 4777 JMS I (OTYPE 1545 002014 3330 DCA BLK1 1546 002015 1330 TAD BLK1 1547 002016 0372 AND (770 1548 002017 1371 TAD (-20 1549 002020 7650 SNA CLA 1550 002021 3770 DCA I (PTPSW /YES - SET PTP SWITCH 1551 002022 1330 TAD BLK1 /NO - IS IT A DIRECTORY DEVICE? 1552 002023 7710 SPA CLA 1553 002024 5227 JMP .+3 /NO 1554 002025 1367 TAD (TAD [77 /YES - SET DIRECTORY SWITCH 1555 002026 3766 DCA I (DIRSW 1556 002027 1121 TAD [7605 /IS PTP GETTING LISTING OUTPUT? 1557 002030 4777 JMS I (OTYPE 1558 002031 0372 AND (770 1559 002032 1371 TAD (-20 1560 002033 7650 SNA CLA 1561 002034 3765 DCA I (SWAPR2+PTPSW1 /YES - SET PASS 3 PTP SWITCH 1562 002035 1121 TAD [7605 /NO - IS DIRECTORY DEVICE GETTING 1563 002036 4777 JMS I (OTYPE /LISTING OUTPUT? 1564 002037 7710 SPA CLA 1565 002040 5243 JMP .+3 /NO 1566 002041 1367 TAD (TAD [77 /YES - SET PASS 3 DIRECTORY SWITCH 1567 002042 3764 DCA I (SWAPR2+DIRSW1 1568 002043 5763 JMP I (BEGINF 1569 002044 1201 MONLST, TEXT /JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC/ 002045 1606 002046 0502 002047 1501 002050 2201 002051 2022 002052 1501 002053 3112 002054 2516 002055 1225 002056 1401 002057 2507 002060 2305 002061 2017 002062 0324 002063 1617 002064 2604 002065 0503 002066 0000 1570 *.-1 1571 1572 /CONTINUED CHECK OF COMMAND DECODER OPTIONS 1573 1574 002066 6211 BEGINH, CDF 10 1575 002067 1762 TAD I (MPARAM /WAS THE /G OR /L OPTION CHOSEN? 1576 002070 6201 CDF 1577 002071 0361 AND (41 1578 002072 7650 SNA CLA 1579 002073 5760 JMP I (BEGISW /NO 1580 002074 6211 CDF 10 /YES 1581 002075 1554 TAD I [7600 1582 002076 7640 SZA CLA /WAS THERE A BINARY OUTPUT FILE? 1583 002077 5311 JMP YESBIN /YES 1584 002100 1334 BINLOP, TAD PALBIN /NO - CREATE FILE PAL8BN.TM 1585 002101 3733 DCA I PALBIX /ON SYSTEM DEVICE 1586 002102 2300 ISZ BINLOP 1587 002103 2333 ISZ PALBIX 1588 002104 2317 ISZ BINCNT 1589 002105 5300 JMP BINLOP 1590 002106 6201 CDF 1591 002107 1375 TAD (-10 /SET AMOUNT OF LEADER TRAILER 1592 002110 3774 DCA I (SWAPR2+LEADER 1593 /SET UP FOR LOAD OR LOAD AND GO 1594 1595 002111 6201 YESBIN, CDF 1596 002112 6212 CIF 10 1597 002113 7201 CLA IAC 1598 002114 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 1599 002115 0002 2 /* LOOKUP PERMANENT FILE * 1600 002116 2273 LOAD, PLOAD /FILENAME ABSLDR.SV 1601 002117 7773 BINCNT, -5 /FILE LENGTH 1602 002120 5325 JMP NOLOAD /ABSLDR.SV NOT FOUND 1603 002121 1316 TAD LOAD /NORMAL RETURN 1604 002122 3757 DCA I (CHAIN /SET STARTING BLOCK NUMBER 1605 002123 3756 DCA I (LSWITC /FOR CHAIN CALL 1606 002124 5760 JMP I (BEGISW 1607 1608 002125 4542 NOLOAD, JMS I [ERROR /GENERATE LD ERROR MESSAGE 1609 002126 5444 LD 1610 002127 5760 JMP I (BEGISW /ASSEMBLE BUT DO NOT CHAIN TO LOADER 1611 1612 002130 6200 BLK1, SYMS 1613 002131 6774 BLK2, 7600+SYMS-SYME 1614 002132 7174 BLK3, SYMS-SYME 1615 1616 002133 7600 PALBIX, 7600 1617 002134 0001 PALBIN, 1 1618 002135 2001 FILENAME PAL8BN.TM 002136 1470 002137 0216 002140 2415 1619 002156 4457 PAGE 002157 4501 002160 2204 002161 0041 002162 7643 002163 5612 002164 7277 002165 7300 002166 2703 002167 1175 002170 2677 002171 7760 002172 0770 002173 1741 002174 7237 002175 7770 002176 7710 002177 5600 1620 002200 1654 CCC, TAD I CC231 /FINAL PIECE OF STARTUP ONCE-ONLY CODE 1621 002201 7450 SNA 1622 002202 1255 TAD CC23 1623 002203 3654 DCA I CC231 /"HSWITC"=JMP FORMF1 IF WAS 0 1624 002204 6211 BEGISW, CDF 10 1625 002205 1665 TAD I CCJWD 1626 002206 6201 CDF 0 1627 002207 0266 AND CCJBIT 1628 002210 7650 ZJ7640, SNA CLA /WAS /J OPTION SPECIFIED? 1629 002211 3667 DCA I CCJLOC /NO - PRINT UNASSEMBLED CONDITIONAL CODE 1630 002212 6211 CDF 10 1631 002213 1670 TAD I CCWWD 1632 002214 6201 CDF 0 1633 002215 0271 AND CCWBIT 1634 002216 7650 ZW7640, SNA CLA /WAS /W OPTION SPECIFIED? 1635 002217 5247 JMP D4 /V3C 1636 002220 1654 D5, TAD I CC231 1637 002221 7041 CIA 1638 002222 1255 TAD CC23 1639 002223 7640 SZA CLA /ARE WE OUTPUTTING FF'S IN LISTING? 1640 002224 5233 JMP BEGIS3 /NO 1641 002225 1256 TAD CC24 /YES - SUBSTITUTE SOME CODE 1642 002226 3657 DCA I CC25 1643 002227 1260 TAD CC26 1644 002230 3661 DCA I CC27 1645 002231 1256 TAD CC24 1646 002232 3662 DCA I CC28 1647 002233 4652 BEGIS3, JMS I OVLL7 /CALL SYSTEM DEVICE 1648 002234 4200 4200 /WRITE 2 PAGES 1649 002235 1000 SWAP1 /FORM SWAP1 1650 002236 0040 ASWAP /INTO TEMP AREA 1651 002237 5653 JMP I OVLL8 /ERROR?! 1652 002240 1415 TAD I LAST2 /MOVE PASS 1&2 ONLY CODE 1653 002241 3411 DCA I TAGXR /OVER PASS3 SWAPPED OUT CODE 1654 002242 2263 ISZ CC29 1655 002243 5240 JMP .-3 1656 IFNZRO HASH< 1657 002244 4664 JMS I CCHSH /FINALLY HASH OUT THE TABLE 1658 > 1659 1660 002245 5646 JMP I .+1 1661 002246 4400 START2-1 /OK - NOW GO DO SOME ASSEMBLING! 1662 002247 3672 D4, DCA I CCWLOC /NO - DON'T WIPE LITERALS AS YOU DUMP THEM 1663 002250 3777 DCA I (D3 1664 002251 5220 JMP D5 /V3C 1665 002252 7607 OVLL7, 7607 1666 002253 2757 OVLL8, SYSER3 1667 1668 002254 1042 CC231, HSWITC 1669 002255 5256 CC23, FORMF1&177+5200 1670 002256 7240 CC24, STA 1671 002257 1056 CC25, FORMF1 1672 002260 3061 CC26, DCA LINCNT 1673 002261 1057 CC27, FORMF1+1 1674 002262 1060 CC28, FORMF1+2 1675 002263 7470 CC29, SWAPB2-SWAPE2 1676 1677 IFNZRO HASH< 1678 002264 7400 CCHSH, HSHSMS 1679 > 1680 002265 7643 CCJWD, MPARAM 1681 002266 0004 CCJBIT, 4 1682 002267 5045 CCJLOC, IFTST4 1683 002270 7644 CCWWD, MPARAM+1 1684 002271 0002 CCWBIT, 2 1685 002272 4116 CCWLOC, LITHAK 1686 002273 0102 PLOAD, FILENAME ABSLDR.SV 002274 2314 002275 0422 002276 2326 1687 1688 002277 1714 CKBAT, TAD I CC7777 /GET BATCH FLAG WORD 1689 002300 7106 CLL RTL 1690 002301 7620 SNL CLA /BATCH RUNNING? 1691 002302 5715 JMP I CCOPTM /NO, GO WITH LINK OFF 1692 002303 1714 TAD I CC7777 1693 002304 0316 AND CC0070 /GET BATCH FIELD 1694 002305 1317 TAD CCCIF0 /FORM CIF TO BATCH FIELD 1695 002306 3332 DCA OTYPB1 /MODIFY TTY OUTPUT ROUTINE TO GO TO BATCH 1696 002307 1320 TAD CCJMSB /LOG INSTEAD 1697 002310 3333 DCA OTYPB2 1698 002311 1331 TAD OTYPTD 1699 002312 3334 DCA OTYPB3 1700 002313 5715 JMP I CCOPTM /RETURN TO CORE DETERMINER, LINK SET 1701 1702 002314 7777 CC7777, 7777 1703 002315 5665 CCOPTM, OPTIM4 1704 002316 0070 CC0070, 70 1705 002317 6202 CCCIF0, CIF 0 1706 002320 4520 CCJMSB, JMS I [BATOUT 1707 /THIS CODE SITS AFTER THE END OF THE LITERAL TABLE 1708 1709 IFNZRO .-LITBF1-200&4000 <*LITBF1+200> 1710 1711 002323 0000 OTYPEO, 0 /TYPE A CHARACTER, CHECKING FOR ^O AND ^C 1712 002324 3342 DCA OTYPEC /SAVE CHAR 1713 002325 4343 JMS CTCCHK /CHECK FOR ^C - RETURN CHAR-203 IN AC 1714 002326 1376 TAD (-14 1715 002327 7650 SNA CLA /^O? 1716 002330 5723 JMP I OTYPEO /YES 1717 002331 1342 OTYPTD, TAD OTYPEC 1718 002332 6046 OTYPB1, TLS 1719 002333 6041 OTYPB2, TSF 1720 002334 5333 OTYPB3, JMP .-1 /WAIT FOR TTY 1721 002335 1137 TAD [-215 1722 002336 7640 OTYPCR, SZA CLA /SET TO CLA DURING "ERRORS DETECTED" STUFF 1723 002337 5723 JMP I OTYPEO 1724 002340 1145 TAD [212 /IF CHAR WAS CR, TYPE LF 1725 002341 5324 JMP OTYPEO+1 1726 002342 0000 OTYPEC, 0 1727 1728 002343 0000 CTCCHK, 0 /CHECK FOR ^C 1729 002344 1176 TAD [200 1730 002345 6034 KRS /OR IN KEYBOARD CHAR 1731 002346 1375 TAD (-203 1732 002347 7450 SNA 1733 002350 6031 KSF /3B BUT WAS CHAR REALLY THERE? 1734 002351 5743 JMP I CTCCHK /NO ^C - RETURN 1735 002352 5554 JMP I [7600 /RETURN TO OS/8 1736 1737 002353 4562 TTLMSG, "E-240^100+"R-240 /ERRORS DETECTED: 1738 002354 6257 "R-240^100+"O-240 1739 002355 6263 "R-240^100+"S-240 1740 002356 0044 "D-240 1741 002357 4564 "E-240^100+"T-240 1742 002360 4543 "E-240^100+"C-240 1743 002361 6445 "T-240^100+"E-240 1744 002362 4432 "D-240^100+":-240 1745 002363 0000 0 1746 1747 002364 5451 "L-240^100+"I-240 /LINKS GENERATED: 1748 002365 5653 "N-240^100+"K-240 1749 002366 6300 "S-240^100 1750 002367 4745 "G-240^100+"E-240 1751 002370 5645 "N-240^100+"E-240 1752 002371 6241 "R-240^100+"A-240 1753 002372 6445 "T-240^100+"E-240 1754 002373 4432 "D-240^100+":-240 1755 002374 0000 0 1756 002375 7575 PAGE 002376 7764 002377 4126 1757 /OUTPUT A CHARACTER TO OUTPUT DEVICE 1758 /CALLED BY JMS I OCHAR 1759 /WITH CHARACTER IN 8-BIT ASCII IN AC 1760 1761 002400 0025 OUTPT1, PUNCHX /PASS 2=PUNCHX; 3=XLISTX 1762 1763 002401 0000 OUTPUT, 0 1764 002402 0122 AND [377 /MASK OUT LEFT 4 BITS 1765 002403 3316 DCA OUTPT2 /STORE 1766 002404 1600 TAD I OUTPT1 /IS THIS PASS 3 AND 1767 002405 7450 SNA 1768 002406 1310 TAD OUTINH /IS THIS COVERED BY XLIST? 1769 002407 7640 SZA CLA 1770 002410 5601 JMP I OUTPUT /YES--RETURN-- 1771 002411 1316 TAD OUTPT2 /NO - GET CHARACTER 1772 002412 0176 AND [200 1773 002413 7650 SNA CLA 1774 002414 1316 TAD OUTPT2 /IF LESS THAN 200, THEN 1775 002415 1055 TAD CHKSUM /ADD IT TO CHECKSUM 1776 002416 3055 DCA CHKSUM 1777 002417 1316 TAD OUTPT2 /GET CHARACTER 1778 002420 1377 TAD (-211 /IS IT A TAB? 1779 002421 7650 SNA CLA 1780 002422 5233 JMP OUTPT3 /YES - OUTPUT SPACES 1781 002423 4243 JMS OUTPUX /NO - OUTPUT CHARACTER 1782 002424 1316 TAD OUTPT2 /IS IT LINE FEED? 1783 002425 1376 TAD (-212 1784 002426 7640 SZA CLA 1785 002427 5601 JMP I OUTPUT /NO--RETURN-- 1786 002430 1117 TAD [7773 /YES - RESET LSTCNT 1787 002431 3064 DCA LSTCNT 1788 002432 5601 JMP I OUTPUT /--RETURN-- 1789 1790 /OUTPUT SPACES INSTEAD OF TAB 1791 1792 002433 1165 OUTPT3, TAD [240 1793 002434 3316 DCA OUTPT2 1794 002435 4243 JMS OUTPUX /OUTPUT SPACE 1795 002436 1064 TAD LSTCNT /TAB STOPS ARE EVERY 8 SPACES 1796 002437 0160 AND [7 1797 002440 7640 SZA CLA 1798 002441 5235 JMP .-4 1799 002442 5601 JMP I OUTPUT /--RETURN-- 1800 1801 /OUTPUT THE CHARACTER 1802 /PACKS CHARACTERS IN STANDARD OS/8 FORMAT 1803 1804 002443 0000 OUTPUX, 0 1805 002444 2245 ISZ OUJMP /BUMP 3-WAY SWITCH 1806 002445 7402 OUJMP, HLT /WILL BE CHANGED - SHOULD NEVER HALT 1807 002446 5301 JMP OCHAR1 /CHARACTER #1 1808 002447 5276 JMP OCHAR2 /CHARACTER #2 1809 002450 1316 OCHAR3, TAD OUTPT2 /CHARACTER #3 1810 002451 7106 CLL RTL 1811 002452 7006 RTL 1812 002453 0120 AND [7400 1813 002454 1712 TAD I OUPOLD /ADD 4 BITS TO WORD 1 1814 002455 3712 DCA I OUPOLD 1815 002456 1316 TAD OUTPT2 1816 002457 7112 CLL RTR 1817 002460 7012 RTR 1818 002461 7010 RAR 1819 002462 0120 AND [7400 1820 002463 1713 TAD I OUPTR /ADD 4 BITS TO WORD 2 1821 002464 3713 DCA I OUPTR 1822 002465 1314 TAD OUJMPE 1823 002466 3245 DCA OUJMP /RESET SWITCH 1824 002467 2313 ISZ OUPTR 1825 002470 2315 ISZ OUDWCT /BUFFER FULL? 1826 002471 5303 JMP OUCHLV /NO 1827 002472 1176 TAD [200 /YES 1828 002473 4775 JMS I (OUTDMP /DUMP BUFFER 1829 002474 4317 JMS OUSETP /RESET POINTERS 1830 002475 5303 JMP OUCHLV 1831 1832 002476 1313 OCHAR2, TAD OUPTR /SAVE POINTER 1833 002477 3312 DCA OUPOLD 1834 002500 2313 ISZ OUPTR 1835 002501 1316 OCHAR1, TAD OUTPT2 1836 002502 3713 DCA I OUPTR /SET 8 BIT WORD 1837 002503 1316 OUCHLV, TAD OUTPT2 1838 002504 1116 TAD [40 1839 002505 0115 AND [100 /CHECK FOR PRINTABLE CHAR 1840 002506 7640 SZA CLA /IF IT IS, 1841 002507 2064 ISZ LSTCNT /BUMP TAB COUNT 1842 002510 0000 OUTINH, 0 /ALWAYS 0 OR 1! 1843 002511 5643 JMP I OUTPUX /--RETURN-- 1844 1845 002512 0000 OUPOLD, 0 1846 002513 0000 OUPTR, 0 1847 002514 5245 OUJMPE, JMP OUJMP 1848 002515 0000 OUDWCT, 0 1849 002516 0000 OUTPT2, 0 1850 1851 002517 0000 OUSETP, 0 1852 002520 1154 TAD [7600 /SET OUTPUT WORD COUNT 1853 002521 3315 DCA OUDWCT /TO 200 1854 002522 1374 TAD (OUBUF 1855 002523 3313 DCA OUPTR /RESET POINTER 1856 002524 1314 TAD OUJMPE 1857 002525 3245 DCA OUJMP /RESET SWITCH 1858 002526 7100 CLL /MUST CLEAR LINK!! 1859 002527 5717 JMP I OUSETP /--RETURN-- 1860 /HANDLER FOR DEVICE PSEUDO-OP 1861 1862 002530 4564 DEVICX, JMS I [SPNOR /IGNORE TRAILING SPACES 1863 002531 1117 TAD [-5 1864 002532 5343 JMP DEVIC1 /PACK 4 CHARACTERS 1865 1866 1867 /HANDLER FOR FILENAME PSEUDO-OP 1868 1869 002533 4564 FILENX, JMS I [SPNOR /IGNORE TRAILING SPACES 1870 002534 1373 TAD (-7 1871 002535 4345 JMS FILE1 /PACK 6 CHARACTERS 1872 002536 1040 TAD CHAR 1873 002537 1114 TAD [-". /WAS CHARACTER . ? 1874 002540 7650 SNA CLA 1875 002541 4574 JMS I [GETC /YES-SKIP TO EXTENSION 1876 002542 7346 AC7775 1877 002543 4345 DEVIC1, JMS FILE1 /PACK 2 CHARACTERS 1878 002544 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 1879 1880 /PACK CHARACTERS 1881 /NEGATIVE OF # OF CHARACTERS TO BE PACKED IN AC ON ENTRY 1882 1883 002545 0000 FILE1, 0 1884 002546 3370 DCA FILE6 /SAVE # OF CHARACTERS TO PACK 1885 002547 3772 DCA I (TEXT6 /RESET PACK SWITCH 1886 002550 4573 FILE4, JMS I [TSTALN /IS CHARACTER IN CHAR ALPHANUMERIC? 1887 002551 7410 SKP 1888 002552 5365 JMP FILE5 /NO-DONE PACKING 1889 002553 2370 ISZ FILE6 /YES-TOO MANY CHARACTERS? 1890 002554 5360 JMP FILE3 /NO-O.K. 1891 002555 7240 CLA CMA /YES 1892 002556 3370 DCA FILE6 /RESET # OF CHARACTERS AND IGNORE 1893 002557 5362 JMP FILE2 1894 1895 002560 1040 FILE3, TAD CHAR 1896 002561 4771 JMS I (TEXT2 /PACK A CHARACTER 1897 002562 4574 FILE2, JMS I [GETC /GET A CHARACTER 1898 002563 5350 JMP FILE4 /TEST IT 1899 1900 002564 4771 JMS I (TEXT2 /PACK A ZERO CHAR 1901 002565 2370 FILE5, ISZ FILE6 /ARE WE DONE? 1902 002566 5364 JMP .-2 /NO - PAD WITH ZEROES 1903 002567 5745 JMP I FILE1 /YES--RETURN-- 1904 002570 0000 FILE6, 0 1905 002571 2651 PAGE 002572 2665 002573 7771 002574 5600 002575 2730 002576 7566 002577 7567 1906 /HANDLER FOR TEXT PSEUDO-OP 1907 /SPACES ARE IGNORED TO DELIMITER 1908 /DELIMITER IS FIRST PRINTING CHARACTER 1909 /OTHER THAN SPACE 1910 /NON-PRINTING CHARACTERS ARE ILLEGAL 1911 /A PRINTING CHARACTER HAS EITHER BIT 5 1912 /OR BIT 6 SET, BUT NOT BOTH 1913 1914 002600 4574 TEXT8, JMS I [GETC /GET NEXT CHARACTER 1915 002601 7330 TEXTX, CLL CLA CML RAR /AC=4000 1916 002602 3063 DCA GETCI /; AND / ARE NOT END OF LINE 1917 002603 4236 JMS TEXT1A /CHECK FOR PRINTING CHARACTER 1918 002604 5200 JMP TEXT8 /NON PRINTING - IGNORE 1919 002605 1170 TAD [-240 /IGNORE SPACES UNTIL DELIMITER 1920 002606 7450 SNA /HAS BEEN FOUND 1921 002607 5200 JMP TEXT8 1922 002610 1165 TAD [240 /RESTORE CHARACTER 1923 002611 7041 CIA 1924 002612 3035 DCA VALUE2 /STORE NEGATIVE DELIMITER 1925 002613 3265 DCA TEXT6 /SET PACKING SWITCH 1926 002614 4574 TEXT3, JMS I [GETC /GET NEXT CHARACTER 1927 002615 4236 JMS TEXT1A /IS IT A PRINTING CHARACTER? 1928 002616 5233 JMP TEXT9 /NO - IC 1929 002617 1035 TAD VALUE2 /YES - IS IT DELIMITER? 1930 002620 7650 SNA CLA 1931 002621 5225 JMP TEXT4 /YES - TERMINATE 1932 002622 1040 TAD CHAR /NO - PACK AND OUTPUT 1933 002623 4251 JMS TEXT2 /PACK IT 1934 002624 5214 JMP TEXT3 1935 1936 002625 3063 TEXT4, DCA GETCI /RESET GETCI TO CALL ; AND / END OF LINE 1937 002626 4574 JMS I [GETC /SKIP DELIMITER 1938 002627 4251 TEXT4X, JMS TEXT2 /OUTPUT 0 TO FILE 1939 002630 4251 JMS TEXT2 1940 /CHANGE TEXT4X TO: 1941 / NOP 1942 /FOR NO EXTRA WORD OF ZEROS 1943 002631 3063 DCA GETCI /RESET GETCI IN CASE WE HIT CR 1944 002632 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 1945 002633 4542 TEXT9, JMS I [ERROR /GENERATE IC ERROR MESSAGE 1946 002634 5143 IC 1947 002635 5214 JMP TEXT3 1948 1949 /SKIP ON PRINTING CHARACTER 1950 1951 002636 0000 TEXT1A, 0 1952 002637 1040 TAD CHAR 1953 002640 7750 SPA SNA CLA /IS CHARACTER - 1954 002641 5227 JMP TEXT4X /YES 1955 002642 1040 TAD CHAR 1956 002643 1116 TAD [40 1957 002644 0115 AND [100 1958 002645 7640 SZA CLA /IS THE CHAR PRINTING? 1959 002646 2236 ISZ TEXT1A /YES - INCREMENT RETURN 1960 002647 1040 TAD CHAR /WITH CHARACTER IN AC 1961 002650 5636 JMP I TEXT1A /--RETURN-- 1962 1963 /OUTPUT 2 TEXT CHARACTERS (ONE REGISTER) 1964 /ENTER WITH CHARACTERS IN AC 1965 1966 002651 0000 TEXT2, 0 1967 002652 0175 AND [77 /GET RIGHT 6 BITS 1968 002653 2265 ISZ TEXT6 /WHICH HALF OF WORD? 1969 002654 5260 JMP TEXT5 /LEFT 1970 002655 1266 TAD TEXT7 /RIGHT--ADD IN LEFT HALF 1971 002656 4513 JMS I [PUNBIN /OUTPUT IT 1972 002657 5651 JMP I TEXT2 /--RETURN-- 1973 1974 002660 4566 TEXT5, JMS I [RTL6 /GET LEFT HALF OF WORD 1975 002661 3266 DCA TEXT7 /SAVE IT 1976 002662 7240 CLA CMA /SET SWITCH FOR RIGHT HALF 1977 002663 3265 DCA TEXT6 1978 002664 5651 JMP I TEXT2 /--RETURN-- 1979 1980 002665 0000 TEXT6, 0 1981 002666 0000 TEXT7, 0 1982 /HANDLER FOR EXPUNGE PSEUDO-OP 1983 1984 002667 1051 EXPUNX, TAD PASS /IS THIS PASS 1 1985 002670 7700 SMA CLA 1986 002671 5577 JMP I [LOOKEX /NO--EXIT TO MAIN-- 1987 002672 5777 JMP I (EXPUNW /YES-CONTINUE AT EXPUNW 1988 1989 1990 1991 /CLOSE OUTPUT FILE 1992 1993 002673 0000 OCLOSE, 0 1994 002674 1776 TAD I (OUTINH /OUTPUT INHIBITED? 1995 002675 7640 SZA CLA 1996 002676 5673 JMP I OCLOSE /YES--RETURN-- 1997 002677 1112 PTPSW, TAD [232 /NO-0 IF PTP: - OUTPUT ^Z 1998 002700 4447 JMS I OCHAR 1999 002701 4447 JMS I OCHAR /AND ZEROS 2000 002702 4447 FILLLP, JMS I OCHAR 2001 002703 1155 DIRSW, TAD [177 /TAD [77 IF NOT DIRECTORY 2002 002704 0775 AND I (OUDWCT /FILL OUT BUFFER OR HALF BUFFER 2003 002705 7640 SZA CLA /WITH ZEROS 2004 002706 5302 JMP FILLLP 2005 002707 1775 TAD I (OUDWCT /IS THERE OUTPUT TO BE DUMPED? 2006 002710 1176 TAD [200 2007 002711 7440 SZA 2008 002712 4330 JMS OUTDMP /YES - DUMP IT 2009 002713 1323 TAD OUFILE /GET DEVICE NUMBER IN AC 2010 002714 6212 CIF 10 2011 002715 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 2012 002716 0004 4 /*CLOSE OUTPUT FILE* 2013 002717 0000 OUCNAM, 0 /POINTER TO FILENAME TO BE DELETED 2014 002720 0000 OUCCNT, 0 /LENGTH OF NEW PERMANENT FILE 2015 002721 5357 JMP SYSER3 /DE**FATAL ERROR** 2016 002722 5673 JMP I OCLOSE /--RETURN-- 2017 2018 002723 0000 OUFILE, ZBLOCK 5 002724 0000 002725 0000 002726 0000 002727 0000 2019 /OUTPUT DUMP 2020 /AC CONTAINS CONTROL WORD FOR DUMP 2021 2022 002730 0000 OUTDMP, 0 2023 002731 1142 TAD [4000 /BE SURE CONTROL WORD IS 2024 002732 3354 DCA OUCTLW /A WRITE OPERATION 2025 002733 1364 TAD OUBLK /GET STARTING BLOCK NUMBER 2026 002734 1320 TAD OUCCNT /ADD IN COUNT 2027 002735 3356 DCA OUREC /SET THIS BLOCK NUMBER 2028 002736 1354 TAD OUCTLW 2029 002737 1115 TAD [100 /ROUND HALF-BLOCK, IF ANY 2030 002740 7106 CLL RTL 2031 002741 7006 RTL 2032 002742 7006 RTL 2033 002743 0111 AND [17 /GET THIS COUNT 2034 002744 1320 TAD OUCCNT 2035 002745 3320 DCA OUCCNT /ADD TO TOTAL COUNT 2036 002746 1320 TAD OUCCNT /IS OUTPUT DEVICE FULL? 2037 002747 7120 CLL CML 2038 002750 1365 TAD OUELEN /CHECK AGAINST MAXIMUM LENGTH 2039 002751 7660 SNL SZA CLA 2040 002752 5366 JMP SYSER2 /DF**FATAL ERROR** 2041 002753 4763 JMS I OUHNDL /CALL OUTPUT DEVICE HANDLER 2042 002754 0000 OUCTLW, 0 /CONTROL WORD 2043 002755 5600 OUBUF /BEGINNING OF OUTPUT BUFFER 2044 002756 0000 OUREC, 0 /STARTING BLOCK NUMBER 2045 002757 7610 SYSER3, CLA SKP /ERROR RETURN 2046 002760 5730 JMP I OUTDMP /--RETURN-- 2047 002761 1374 SYSERR, TAD (DE /DE **FATAL ERROR** 2048 002762 5510 JMP I [MONERR 2049 2050 002763 0000 OUHNDL, 0 2051 002764 0000 OUBLK, 0 2052 002765 0000 OUELEN, 0 2053 2054 002766 1373 SYSER2, TAD (DF /GENERATE DF ERROR MESSAGE 2055 002767 5510 JMP I [MONERR /**FATAL ERROR** 2056 002773 4446 PAGE 002774 4445 002775 2515 002776 2510 002777 1465 2057 /MAINLINE CODE 2058 2059 003000 0000 LOOKE2, 0 /WAS THIS END OF LINE 2060 003001 1040 TAD CHAR / OR END OF CONDITIONAL? 2061 003002 1107 TAD [-"> 2062 003003 7450 SNA 2063 003004 5240 JMP CONEND /END OF CONDITIONAL 2064 003005 1377 TAD ("> 2065 003006 7700 SMA CLA 2066 003007 5600 JMP I LOOKE2 /NOT END OF LINE--RETURN-- 2067 003010 4574 LOOKE1, JMS I [GETC /GET A CHARACTER 2068 003011 4776 MAIN, JMS I (CTCCHK /CHECK FOR ^C 2069 003012 7200 CLA /** CTCCHK RETURNS AC NON-ZERO! 2070 003013 4564 JMS I [SPNOR /IGNORE SPACES 2071 003014 1040 TAD CHAR 2072 003015 1375 TAD (-"$ /WAS IT $ ? 2073 003016 7450 SNA /YES-- 2074 003017 5774 JMP I (ENDPAS /NO-END THIS PASS 2075 003020 1373 TAD ("$-"* 2076 003021 7650 SNA CLA /WAS IT * ? 2077 003022 5247 JMP STAR /YES-HANDLE * 2078 003023 4547 JMS I [TSTALP /NO-WAS IT ALPHABETIC? 2079 003024 5303 JMP ALPHA /YES 2080 003025 4200 JMS LOOKE2 /NO 2081 003026 4561 TOEXP, JMS I [EXP /GET REST OF EXPRESSION 2082 003027 1070 TAD LININD 2083 003030 3067 DCA LINKSW /STORE LINK SWITCH 2084 003031 1034 TAD VALUE 2085 003032 4513 JMS I [PUNBIN /OUTPUT THE REGISTER 2086 003033 4564 LOOKEX, JMS I [SPNOR /IGNORE TRAILING SPACES 2087 003034 4200 JMS LOOKE2 /IS LINE ENDED? 2088 003035 4542 ILCHAR, JMS I [ERROR /NO-GENERATE IC ERROR MESSAGE 2089 003036 5143 IC 2090 003037 5245 JMP CONEN1 2091 2092 003040 1053 CONEND, TAD CONDSW /ARE WE INTO CONDITIONALS? 2093 003041 7450 SNA 2094 003042 5235 JMP ILCHAR /NO - > IS ILLEGAL 2095 003043 7001 IAC /ONE LESS CONDITIONAL 2096 003044 3053 DCA CONDSW 2097 003045 4574 CONEN1, JMS I [GETC /GET NEXT CHARACTER 2098 003046 5233 JMP LOOKEX /AND TRY FOR END AGAIN 2099 /HANDLER FOR * 2100 2101 003047 4574 STAR, JMS I [GETC /GET NEXT CHARACTER AFTER * 2102 003050 4564 JMS I [SPNOR /IGNORE SPACES 2103 003051 4561 JMS I [EXP /GET REST OF EXPRESSION 2104 003052 3032 STAR0, DCA STARSW /ENTER HERE FROM RELOC WITH AC = -1 2105 003053 2065 ISZ UNDFSW /WAS ANYTHING UNDEFINED? 2106 003054 5257 JMP .+3 2107 003055 4542 JMS I [ERROR /YES-GENERATE UO ERROR MESSAGE 2108 003056 6557 UO 2109 003057 1034 TAD VALUE /NO 2110 003060 3033 DCA OP 2111 003061 1027 TAD LOC /IS THIS THE SAME PAGE AS 2112 003062 0154 AND [7600 /THE PREVIOUS CODE? 2113 003063 7041 CIA 2114 003064 1033 TAD OP 2115 003065 0154 AND [7600 2116 003066 7650 SNA CLA 2117 003067 5275 JMP STAR2 /YES-PUNCH ORIGIN 2118 003070 4563 JMS I [DUMPS /NO-DUMP LITERALS 2119 003071 1031 TAD OFSBUF /SET OFFSET TO NEW VALUE 2120 003072 3030 DCA OFFSET /AFTER LITERALS ARE DUMPED. 2121 003073 1033 TAD OP /PUNCH NEW ORIGIN, SET "VALUE" 2122 003074 5772 JMP I (STAR3 /FOR LISTING, AND SET UP IN NEW PAGE 2123 2124 003075 1031 STAR2, TAD OFSBUF /SET OFFSET TO NEW VALUE 2125 003076 3030 DCA OFFSET / 2126 003077 1033 TAD OP 2127 003100 4553 JMS I [PUNORG /PUNCH ORIGIN 2128 003101 3014 DCA LAST1 /CLEAR LAST DEFINED SYMBOL 2129 003102 5550 JMP I [PUNVAL 2130 2131 003103 4545 ALPHA, JMS I [GETTAG /PICK UP TAG-IS IT IN TABLE? 2132 003104 3062 DCA ALPHAI /STORE UNDEFINED TAG SWITCH 2133 003105 1022 TAD TAG3 /IS IT A PSEUDO-OP? 2134 003106 7710 SPA CLA 2135 003107 5435 JMP I VALUE2 /YES-GO TO ITS HANDLER 2136 003110 1040 TAD CHAR /NO 2137 003111 1371 TAD (-", /WAS IT TERMINATED BY , ? 2138 003112 7450 SNA 2139 003113 5321 JMP COMMA /YES-DEFINE THE SYMBOL 2140 003114 1370 TAD (",-"= /NO-WAS IT TERMINATED BY = ? 2141 003115 7650 SNA CLA 2142 003116 5767 JMP I (EQUAL /YES-EQUATE THE SYMBOL 2143 003117 7330 AC4000 /NO 2144 003120 5226 JMP TOEXP /TREAT AS AN EXPRESSION 2145 /HANDLER FOR , 2146 2147 003121 4574 COMMA, JMS I [GETC /GET NEXT CHARACTER 2148 003122 2062 ISZ ALPHAI /WAS TAG DEFINED PREVIOUSLY? 2149 003123 5340 JMP COMMA2 /YES 2150 003124 1027 TAD LOC /NO-STORE CURRENT ADDRESS FOR DEFINITION 2151 003125 3035 DCA VALUE2 2152 003126 4543 JMS I [INSRTG /PUT TAG IN SYMBOL TABLE 2153 003127 1020 COMMA1, TAD TAG1 /STORE FOR ERROR MESSAGE OUTPUT 2154 003130 3014 DCA LAST1 2155 003131 1021 TAD TAG2 2156 003132 3015 DCA LAST2 2157 003133 1022 TAD TAG3 2158 003134 3016 DCA LAST3 2159 003135 1035 TAD VALUE2 2160 003136 3017 DCA LAST4 2161 003137 5211 JMP MAIN /--EXIT TO MAIN-- 2162 2163 003140 1027 COMMA2, TAD LOC /DO NEW AND OLD DEFINITIONS AGREE? 2164 003141 7041 CIA 2165 003142 1035 TAD VALUE2 2166 003143 7650 SNA CLA 2167 003144 5327 JMP COMMA1 /YES-ALLOW REDEFINITION 2168 003145 4542 JMS I [ERROR /NO-GENERATE ID ERROR MESSAGE 2169 003146 5144 ID 2170 003147 5211 JMP MAIN /--EXIT TO MAIN-- 2171 003150 3600 OPTABL, OP0 /+ 2172 003151 3656 OP1 /- 2173 003152 5435 OP6 /% 2174 003153 3644 OP2 /& 2175 003154 3665 OP5 /(SPACE) 2176 003155 3665 OPEXPL, OP5 /! - CHANGED TO OP3 IF /B ON 2177 003156 3647 OP4 /^ 2178 003167 0503 PAGE 003170 7757 003171 7524 003172 0452 003173 7772 003174 4424 003175 7534 003176 2343 003177 0276 2179 /EXPRESSION PROCESSOR 2180 /POSSIBLE RECURSIVE ENTRY 2181 /ENTER WITH CHARACTER IN CHAR 2182 2183 003200 0000 EXP, 0 2184 003201 3054 DCA EXPIND /SET INDICATOR (NOT 0 IF NO MRI FOUND) 2185 003202 3070 DCA LININD /CLEAR LINK GENERATED SWITCH (' ) 2186 003203 3034 DCA VALUE /START WITH "VALUE" = 0 2187 003204 3065 DCA UNDFSW /CLEAR UNDIFINED SWITCH 2188 003205 1200 TAD EXP 2189 003206 4544 JMS I [PUSHA /SAVE RETURN ADDRESS 2190 003207 3033 DCA OP /OP=0; ADD 2191 003210 1054 TAD EXPIND 2192 003211 7710 SPA CLA 2193 003212 5777 JMP I (EXPINT 2194 003213 1040 TAD CHAR /IS CHARACTER A + ? 2195 003214 1106 TAD [-"+ 2196 003215 7112 CLL RTR /PUT THE 2 BIT IN THE LINK 2197 003216 7640 SZA CLA /WAS CHAR 53(+) OR 55(-)? 2198 003217 5224 JMP EXP1A /NO 2199 003220 7004 RAL /YES - OP IS 0 OR 1, DEPENDING 2200 003221 3033 EXP1, DCA OP 2201 003222 4574 JMS I [GETC /GET NEXT CHARACTER 2202 003223 2054 ISZ EXPIND /MRI NO LONGER LEGAL ON THIS LINE 2203 003224 1040 EXP1A, TAD CHAR /IS CHARACTER A . ? 2204 003225 1114 TAD [-". 2205 003226 7450 SNA 2206 003227 5337 JMP PERIOD /YES-GO TO . HANDLER 2207 003230 1376 TAD (".-"" /NO-IS IT " ? 2208 003231 7450 SNA 2209 003232 5342 JMP QUOTE /YES-GO TO " HANDLER 2210 003233 1375 TAD (""-"[ /NO-IS IT [ ? 2211 003234 7100 CLL 2212 003235 7440 SZA 2213 003236 1374 TAD ("[-"( /OR (? 2214 003237 7650 SNA CLA 2215 003240 5773 JMP I (LIT /YES - LITERAL - LINK HOLDS WHICH KIND 2216 003241 4547 JMS I [TSTALP /NO-IS IT ALPHABETIC? 2217 003242 5772 JMP I (ALPHA1 /YES-HANDLE SYMBOL 2218 003243 4505 JMS I [TSTNUM /NO-IS IT NUMERIC? 2219 003244 5300 JMP NUMBER /YES-HANDLE NUMBER 2220 2221 003245 4256 EXP2, JMS ENDCHK /NO-CHECK FOR END 2222 003246 5224 JMP EXP1A /NOGO - TRY AGAIN 2223 003247 1033 TAD OP 2224 003250 1133 TAD [-4 /IS OP SPACE (4) 2225 003251 7650 SNA CLA 2226 003252 5771 JMP I (EXPXIT /YES-EXIT 2227 003253 4542 JMS I [ERROR 2228 003254 5143 IC /GIVE IC MESSAGE ON ILLEGAL OPERATOR 2229 003255 5777 JMP I (EXPINT /EXIT ANYWAY 2230 /END OF EXPRESSION CHECK 2231 /SKIP IF OK 2232 2233 003256 0000 ENDCHK, 0 2234 003257 1040 TAD CHAR 2235 003260 1370 TAD (-"] /IS CHARACTER A ] ? 2236 003261 7440 SZA /YES-SKIP A EXIT 2237 003262 1367 TAD ("]-") /IS CHARACTER A ) ? 2238 003263 7440 SZA /YES-SKIP A EXIT 2239 003264 1366 TAD (")-"> /IS CHARACTER A > ? 2240 003265 7440 SZA /YES-SKIP AND EXIT 2241 003266 1365 TAD (">-"< /IS CHARACTER A < ? 2242 003267 7450 SNA 2243 003270 5276 JMP ENDCH1 /YES-SKIP AND EXIT 2244 003271 1364 TAD ("< 2245 003272 7710 SPA CLA /IS IT END-OF-LINE? 2246 003273 5276 JMP ENDCH1 /YES-SKIP AND EXIT 2247 003274 4546 JMS I [ICMESG /NO - GENERATE IC MESSAGE AND GET NEXT CHAR 2248 003275 5656 JMP I ENDCHK /--RETURN-- 2249 2250 003276 2256 ENDCH1, ISZ ENDCHK /INCREMENT RETURN ADDRESS 2251 003277 5656 JMP I ENDCHK /--RETURN-- 2252 2253 003300 3043 NUMBER, DCA TEMP 2254 003301 1024 NUMBE2, TAD RADIX /IS THE CURRENT RADIX OCTAL? 2255 003302 7650 SNA CLA 2256 003303 1040 TAD CHAR /YES-IS THE DIGIT GREATER THAN 7? 2257 003304 1363 TAD (-"8 2258 003305 7700 SMA CLA 2259 003306 5335 JMP NUMBE3 /YES-ILLEGAL CHARACTER 2260 003307 1043 TAD TEMP /NO-ADD IT TO THE PREVIOUS 2261 003310 7104 CLL RAL /ACCUMULATED VALUE 2262 003311 7104 CLL RAL 2263 003312 3045 DCA TEMP2 2264 003313 1024 TAD RADIX /IS RADIX OCTAL? 2265 003314 0043 AND TEMP /NO 2266 003315 1045 TAD TEMP2 /YES 2267 003316 7104 CLL RAL 2268 003317 1040 TAD CHAR 2269 003320 1362 TAD (-"0 2270 003321 3043 DCA TEMP 2271 003322 4574 JMS I [GETC /GET NEXT CHARACTER 2272 003323 4505 NUMBE4, JMS I [TSTNUM /IS IT NUMERIC? 2273 003324 5301 JMP NUMBE2 /YES-CONTINUE ACCUMULATING NUMBER 2274 003325 1043 TAD TEMP /NO-STORE NUMBER 2275 003326 3035 NUMBE1, DCA VALUE2 2276 003327 1033 NUMBE5, TAD OP /GO COMBINE IT VIA LAST OPERATION 2277 003330 1361 TAD (OPTABL 2278 003331 3043 DCA TEMP /FIND THE OPERATOR HANDLER 2279 003332 1443 TAD I TEMP 2280 003333 3043 DCA TEMP 2281 003334 5443 JMP I TEMP /GO TO THE HANDLER 2282 /8 OR 9 FOUND DURING OCTAL RADIX 2283 2284 003335 4546 NUMBE3, JMS I [ICMESG /GENERATE IC ERROR MESSAGE AND 2285 003336 5323 JMP NUMBE4 /IGNORE CHARACTER 2286 2287 2288 /HANDLER FOR . 2289 2290 003337 4574 PERIOD, JMS I [GETC /GET NEXT CHARACTER 2291 003340 1027 TAD LOC /MAKE CURRENT LOCATION 2292 003341 5326 JMP NUMBE1 /INTO VALUE OF NUMBER 2293 2294 /HANDLER FOR " 2295 2296 003342 2037 QUOTE, ISZ TXTPTR 2297 003343 1437 TAD I TXTPTR /GET CHARACTER FROM TEXT BUFFER 2298 003344 1137 TAD [-215 /WAS IT CARRIAGE RETURN? 2299 003345 7650 SNA CLA 2300 003346 5353 JMP QUOTE1 /YES-IT IS IC-IGNORE " 2301 003347 1437 TAD I TXTPTR /NO-PUT ASCII CODE INTO 2302 003350 3035 DCA VALUE2 /VALUE WORD 2303 003351 4574 JMS I [GETC /GET NEXT CHARACTER 2304 003352 5327 JMP NUMBE5 /RETURN TO EXPRESSION PROCESSOR 2305 2306 /CARRIAGE RETURN FOUND IN SINGLE CHARACTER TEXT 2307 2308 003353 4542 QUOTE1, JMS I [ERROR /GENERATE IC ERROR MESSAGE 2309 003354 5143 IC 2310 003355 7240 CLA CMA 2311 003356 3040 DCA CHAR 2312 003357 5771 JMP I (EXPXIT 2313 003361 3150 PAGE 003362 7520 003363 7510 003364 0274 003365 0002 003366 7753 003367 0064 003370 7443 003371 3630 003372 3400 003373 4600 003374 0063 003375 7707 003376 0014 003377 3461 2314 /COME HERE IF FIRST THING IN EXPRESSION IS ALPHA CHARACTER 2315 2316 003400 4545 ALPHA1, JMS I [GETTAG /PICK UP TAG 2317 003401 3062 DCA ALPHAI /STORE UNDEFINED INDICATOR 2318 003402 1022 ALPHA3, TAD TAG3 /IS IT A PSEUDO-OP? 2319 003403 7700 SMA CLA 2320 003404 5207 JMP .+3 2321 003405 4542 JMS I [ERROR /YES-GENERATE IP ERROR MESSAGE 2322 003406 5160 IP 2323 003407 2062 ISZ ALPHAI /NO-WAS IT UNDEFINED? 2324 003410 5217 JMP ALPHA0 2325 003411 2065 ISZ UNDFSW /YES-SET UNDEFINED SWITCH 2326 003412 1051 TAD PASS /IS THIS PASS 1? 2327 003413 7710 SPA CLA 2328 003414 5217 JMP ALPHA0 /YES-SUPPRESS ERROR MAESSAGE 2329 003415 4542 JMS I [ERROR /NO-GENERATE US ERROR MESSAGE 2330 003416 6563 US 2331 003417 1021 ALPHA0, TAD TAG2 /NO-WAS IT A MEMORY REFERENCE INSTRUCTION? 2332 003420 7710 SPA CLA 2333 003421 1040 TAD CHAR /YES-GET TERMINATING CHARACTER 2334 003422 1170 TAD [-240 /WAS IT SPACE? 2335 003423 7640 SZA CLA 2336 003424 5777 JMP I (NUMBE5 /NOT MEMREF FOLLOWED BY SPACE 2337 003425 4564 JMS I [SPNOR /YES-IGNORE SPACES 2338 003426 1040 TAD CHAR 2339 003427 7710 SPA CLA 2340 003430 5777 JMP I (NUMBE5 2341 003431 1054 TAD EXPIND /IS MEMORY REFERENCE INSTRUCTION OK? 2342 003432 7640 SZA CLA 2343 003433 5777 JMP I (NUMBE5 /NO- 2344 003434 3056 DCA IZIND /YES-CLEAR I AND Z INDICATOR 2345 003435 1035 TAD VALUE2 /STORE MRI ON PUSHDOWN LIST 2346 003436 4544 JMS I [PUSHA 2347 003437 1056 ALPHA6, TAD IZIND 2348 003440 4544 JMS I [PUSHA /PUSH THE I AND Z INDICATOR 2349 003441 4547 JMS I [TSTALP /WAS TERMINATING CHARACTER ALPHABETIC? 2350 003442 7410 SKP 2351 003443 5266 JMP ALPHA4 /NO- 2352 003444 4545 JMS I [GETTAG /YES-PICK UP TAG 2353 003445 3062 DCA ALPHAI /STORE UNDEFINED INDICATOR 2354 003446 7332 AC2000 2355 003447 0020 AND TAG1 /WAS IT AN I OR Z? 2356 003450 7650 SNA CLA 2357 003451 5265 JMP ALPHA5 /NO 2358 003452 1035 TAD VALUE2 /YES-WAS IT I? 2359 003453 7450 SNA 2360 003454 7001 IAC /NO - SET LOW ORDER 2361 003455 1410 TAD I PDLXR /GET OLD IZIND FROM PDL 2362 003456 3056 DCA IZIND /SET NEW IZIND 2363 003457 4564 JMS I [SPNOR /IGNORE SPACES 2364 003460 5237 JMP ALPHA6 2365 2366 003461 1054 EXPINT, TAD EXPIND 2367 003462 1142 TAD [4000 2368 003463 3054 DCA EXPIND 2369 003464 5202 JMP ALPHA3 2370 2371 003465 7330 ALPHA5, AC4000 2372 003466 7001 ALPHA4, IAC 2373 003467 4561 JMS I [EXP /GET REST OF EXPRESSION 2374 003470 1410 TAD I PDLXR /RETRIEVE MRI 2375 003471 3056 DCA IZIND 2376 003472 1410 TAD I PDLXR 2377 003473 3035 DCA VALUE2 2378 /FALL INTO NEXT PAGE 2379 /COMBINE ADDRESS WITH MEMORY REFERENCE INSTRUCTION 2380 2381 003474 1034 TAD VALUE /GET ADDRESS 2382 003475 0154 AND [7600 2383 003476 7450 SNA /IS IT PAGE 0? 2384 003477 5330 JMP FIX4 /YES 2385 003500 7041 CIA /NO-IS IT ON CURRENT PAGE? 2386 003501 1027 TAD LOC 2387 003502 0154 AND [7600 2388 003503 7650 SNA CLA 2389 003504 5317 JMP FIX2 /YES 2390 003505 1034 TAD VALUE /NO-SET UP LINK 2391 003506 4776 JMS I (FINDS 2392 003507 3034 DCA VALUE 2393 003510 1313 TAD FIXMD0 /SET ' IN LISTING 2394 003511 3070 DCA LININD 2395 003512 2075 ISZ LINK /BUMP NUMBER OF LINKS GENERATED 2396 003513 0700 FIXMD0, 0700 /PROTECTION FOR ISZ 2397 003514 7410 LGERR, SKP /JMS I PERROR IF /E SPECIFIED 2398 003515 5447 LG 2399 003516 4343 JMS ADDIND /SET INDIRECT BIT IN INSTRUCTION 2400 003517 1176 FIX2, TAD [200 /SET CURRENT PAGE BIT 2401 003520 1035 TAD VALUE2 2402 003521 3035 DCA VALUE2 2403 003522 1056 TAD IZIND 2404 003523 0175 AND [77 /WAS Z SPECIFIED? 2405 003524 7650 SNA CLA 2406 003525 5330 JMP FIX4 /NO 2407 003526 4542 JMS I [ERROR /YES - ILLEGAL REFERENCE 2408 003527 5172 IZ /TO PAGE 0 2409 003530 1056 FIX4, TAD IZIND /WAS THERE AN I? 2410 003531 0157 AND [7700 2411 003532 7640 SZA CLA 2412 003533 4343 JMS ADDIND /YES - ADD INDIRECT BIT TO INSTRUCTION 2413 003534 1034 TAD VALUE /GET ADDRESS 2414 003535 0155 AND [177 2415 003536 1035 TAD VALUE2 /GET OP CODE 2416 003537 3034 DCA VALUE /STORE 2417 003540 1410 POPJ, TAD I PDLXR 2418 003541 3043 DCA TEMP /POP A WORD OFF THE STACK 2419 003542 5443 JMP I TEMP /JUMP THROUGH IT. 2420 003543 0000 ADDIND, 0 /ROUTINE TO ADD INDIRECT BIT TO AN INSTR 2421 003544 1035 TAD VALUE2 2422 003545 7040 CMA 2423 003546 0127 AND [400 2424 003547 7440 SZA /WAS THERE ONE ALREADY? 2425 003550 5353 JMP .+3 /NO 2426 003551 4542 JMS I [ERROR /YES - ILLEGAL INDIRECT 2427 003552 5151 II 2428 003553 1035 TAD VALUE2 2429 003554 3035 DCA VALUE2 2430 003555 5743 JMP I ADDIND 2431 2432 / ALLOWS MULTIPLE NON-RESIDENT INPUT HANDLERS TO NOT BOMB 2433 2434 003556 0000 PTCH, 0 /RUNS IN DF 10 2435 003557 1375 TAD (7647 /POINT TO DEVICE 2436 003560 3002 DCA PTR /HANDLER RESIDENCY TABLE 2437 003561 1104 TAD [-17 /IT HAS 15 ENTRIES 2438 003562 3003 DCA KNTR /V3C 2439 003563 1402 KLOOP, TAD I PTR /GET HANDLER ENTRY POINT 2440 003564 0154 AND [7600 /LOOK AT PAGE IT'S ON 2441 003565 1166 TAD [-INDEVH /IS IT ON THE PAGE WE PUT BUFFER OVER? 2442 003566 7650 SNA CLA /WELL? 2443 003567 3402 DCA I PTR /YES IT IS, WIPE IT FROM RESIDENCY 2444 003570 2002 ISZ PTR /LOOK AT NEXT ENTRY 2445 003571 2003 ISZ KNTR /ANY MORE ENTRIES? 2446 003572 5363 JMP KLOOP /YES, MIGHT HAVE TO WIPE SEVERAL GUYS 2447 003573 1176 TAD [200 /INCREASE INPUT BUFFER SIZE 2448 003574 5756 JMP I PTCH /V3C 2449 003575 7647 PAGE 003576 4652 003577 3327 2450 /COMBINE CURRENT VALUE WITH PREVIOUS VALUE 2451 /ACCORDING TO LAST OPERATOR 2452 2453 003600 1035 OP0, TAD VALUE2 /HANDLER FOR + 2454 003601 1034 TAD VALUE /** OP0+1 AND OP0+2 JUMPED TO ** 2455 003602 3034 DCA VALUE 2456 003603 1040 EXP3, TAD CHAR /GET LAST OPERATOR 2457 003604 1106 TAD [-"+ /WAS IT A + OR - ? 2458 003605 7112 CLL RTR 2459 003606 7450 SNA 2460 003607 5242 JMP PLSMIN /YES - LINK=0 FOR +, 1 FOR - 2461 003610 7006 RTL 2462 003611 1377 TAD ("+-"% 2463 003612 7110 CLL RAR 2464 003613 7450 SNA /IS THE CHAR % OR &? 2465 003614 5241 JMP DIVAND /YES - LINK=0 FOR %, 1 FOR & 2466 003615 7004 RAL 2467 003616 1376 TAD ("%-240 2468 003617 7110 CLL RAR 2469 003620 7450 SNA /IS THE CHAR SPACE OR !? 2470 003621 5240 JMP BLKEXP /YES - LINK=0 FOR SPACE, 1 FOR ! 2471 003622 7004 RAL 2472 003623 1375 TAD (240-"^ 2473 003624 7650 SNA CLA /IS THE CHAR ^? 2474 003625 5237 JMP MUL /YES - LINK IRRELEVANT 2475 003626 4774 JMS I (ENDCHK /NO-SEE IF END OF LINE FOUND 2476 003627 5203 JMP EXP3 /NO-TRY AGAIN 2477 003630 1065 EXPXIT, TAD UNDFSW /EXIT FROM EXP 2478 003631 7650 SNA CLA /RESTORE EXIT POINT 2479 003632 5773 JMP I (POPJ /--EXIT VIA POPJ-- 2480 003633 7240 CLA CMA 2481 003634 3065 DCA UNDFSW /SET UNDEFINED SWITCH 2482 003635 3034 DCA VALUE /RESULT IS 0 2483 003636 5773 JMP I (POPJ /--EXIT VIA POPJ-- 2484 003637 7101 MUL, CLL IAC /LINK DOESN'T COUNT FOR ^ 2485 003640 7001 BLKEXP, IAC /** BLANK ASSUMED TO BE 4 ELSEWHERE ** 2486 003641 7001 DIVAND, IAC 2487 003642 7004 PLSMIN, RAL 2488 003643 5772 JMP I (EXP1 /GET REST OF EXPRESSION 2489 2490 /HANDLER FOR & 2491 2492 003644 1034 OP2, TAD VALUE 2493 003645 0035 AND VALUE2 2494 003646 5202 JMP OP0+2 2495 2496 2497 /HANDLER FOR ^ 2498 /MULTIPLY BY REPEATED ADDITION 2499 2500 003647 1034 OP4, TAD VALUE 2501 003650 7041 CIA 2502 003651 3043 DCA TEMP 2503 003652 1035 TAD VALUE2 2504 003653 2043 ISZ TEMP 2505 003654 5252 JMP .-2 2506 003655 5202 JMP OP0+2 2507 2508 003656 1035 OP1, TAD VALUE2 /- OPERATOR 2509 003657 7041 CIA 2510 003660 5771 JMP I (OP0+1 /JUMP INTO ADD OPERATOR 2511 2512 /OPTIONAL HANDLER FOR ! AS 6 BIT LEFT SHIFT AND THEN OR: 2513 2514 003661 1034 OP3, TAD VALUE 2515 003662 4566 JMS I [RTL6 2516 003663 0157 AND [7700 /ISOLATE 6 BITS AND FALL INTO "OR" 2517 003664 3034 DCA VALUE /V3C 2518 2519 /HANDLER FOR ! AND SPACE AS INCLUSIVE OR 2520 2521 003665 1034 OP5, TAD VALUE 2522 003666 7040 CMA 2523 003667 0035 AND VALUE2 2524 003670 5771 JMP I (OP0+1 2525 /CHARACTER INPUT CHECK 2526 /ENTER WITH CHARACTER IN AC 2527 2528 003671 7440 LSTCH9, SZA /IGNORE NULL (0) 2529 003672 1370 TAD (-177 2530 003673 7440 SZA /IGNORE RUBOUT (377) 2531 003674 1367 TAD (177-13 2532 003675 7440 SZA /IGNORE VERTICAL TAB (213) 2533 003676 7001 IAC 2534 003677 7450 SNA 2535 003700 5766 JMP I (INPUT+1 /IGNORE LINE FEED (212) 2536 003701 1103 TAD [12-32 /WAS IT ^Z (END-OF-FILE=232)? 2537 003702 7450 SNA 2538 003703 5765 JMP I (ENDCHR /YES - GET NEXT FILE 2539 003704 1364 TAD (32-15 /NO - WAS IT CARRIAGE RETURN? 2540 003705 7450 SNA 2541 003706 5337 JMP LSTCHR /YES - LAST CHARACTER OF LINE 2542 003707 7001 IAC /NO 2543 003710 7450 SNA /WAS IT FORM FEED (214)? 2544 003711 5353 JMP FORCHR /YES - HANDLER FORM FEED 2545 003712 2763 ISZ I (INPUT 2546 003713 1362 TAD (14+200 2547 003714 3334 DCA LSTCH5 /STORE CHARACTER 2548 003715 1051 TAD PASS /IS THIS PASS 3? 2549 003716 7750 SPA SNA CLA 2550 003717 5324 JMP LSTCH4 /NO - 2551 003720 2335 ISZ LSTCH6 /YES - FILLING HEADER AREA? 2552 003721 5330 JMP LSTCH3 /YES 2553 003722 7240 CLA CMA /NO - RESET SWITCH 2554 003723 3335 DCA LSTCH6 2555 003724 1763 LSTCH4, TAD I (INPUT 2556 003725 3043 DCA TEMP 2557 003726 1334 TAD LSTCH5 /GET CHARACTER IN AC 2558 003727 5443 JMP I TEMP /-EXIT FROM INPUT- 2559 2560 003730 2336 LSTCH3, ISZ LSTCH7 /FILLING HEADER 2561 003731 1334 TAD LSTCH5 /STORE CHARACTER IN HEADER AREA 2562 003732 3736 DCA I LSTCH7 2563 003733 5324 JMP LSTCH4 2564 2565 003734 0000 LSTCH5, 0 2566 003735 7730 LSTCH6, -HEDLEN 2567 003736 1450 LSTCH7, HEADER-1 2568 003737 1355 LSTCHR, TAD FORMSW /CARRIAGE RETURN WAS FOUND 2569 003740 7650 SNA CLA /HAS THERE BEEN A FORM FEED? 2570 003741 5350 JMP LSTCH1 /NO - 2571 003742 3355 DCA FORMSW /YES - CLEAR FORM FEED SWITCH 2572 003743 2042 ISZ EDITPG /GO TO NEXT EDITOR PAGE 2573 003744 3041 DCA THISPG /CLEAR OVERFLOW PAGE 2574 003745 1051 TAD PASS /IS THIS PASS 3? 2575 003746 7740 SMA SZA CLA 2576 003747 4535 JMS I [FORMFD /YES - GENERATE FORM FEED 2577 003750 1134 LSTCH1, TAD [215 /NO - CARRIAGE RETURN IS CHARACTER 2578 003751 3334 DCA LSTCH5 2579 003752 5322 JMP LSTCH4-2 /EXIT 2580 2581 003753 2355 FORCHR, ISZ FORMSW /SET FORM FEED SWITCH 2582 003754 5766 JMP I (INPUT+1 /GET ANOTHER CHARACTER 2583 2584 003755 0001 FORMSW, 1 2585 003762 0214 PAGE 003763 5200 003764 0015 003765 5302 003766 5201 003767 0164 003770 7601 003771 3601 003772 3221 003773 3540 003774 3256 003775 7702 003776 0005 003777 0006 2586 /ERROR MESSAGE OUTPUT 2587 2588 DUMPS1, 2589 004000 0000 ERROR, 0 2590 004001 7200 CLA 2591 004002 2074 ISZ ERCNT /COUNT THE ERRORS 2592 004003 0253 ERPLUS, "+ /PROTECTION 2593 004004 1600 TAD I ERROR /GET ERROR MESSAGE 2594 004005 2200 ISZ ERROR /INCREMENT RETURN ADDRESS 2595 004006 4527 JMS I [ERROR1 /OUTPUT 2 CHARACTER ERROR MESSAGE 2596 004007 1377 TAD (JMP I [7600 /PUT EXIT TO MONITOR 2597 004010 3776 CSWIT1, DCA I (LSWITC /IN SWITCH - "CLA" IF /C 2598 004011 1051 TAD PASS /IS THIS PASS 3? 2599 004012 7740 SMA SZA CLA 2600 004013 5241 JMP ERROR4 /YES - CARRIAGE RETURN/LINE FEED 2601 004014 4527 JMS I [ERROR1 /NO - OUTPUT 2 SPACES 2602 004015 1171 TAD [1777 /IS THERE A TAG SAVED? 2603 004016 0014 AND LAST1 2604 004017 7450 SNA 2605 004020 5237 JMP ERROR3 /NO 2606 004021 4775 JMS I (DIV45 /YES - OUTPUT FIRST 2 CHARACTERS 2607 004022 1015 TAD LAST2 /OUTPUT SECOND 2 CHARACTERS 2608 004023 4775 JMS I (DIV45 2609 004024 1016 TAD LAST3 2610 004025 4775 JMS I (DIV45 /OUTPUT THIRD 2 CHARACTERS 2611 004026 1017 TAD LAST4 /IS ERROR LOCATION SAME AS LAST TAG? 2612 004027 7041 CIA 2613 004030 1027 TAD LOC 2614 004031 7650 SNA CLA 2615 004032 5241 JMP ERROR4 /YES - CARRIAGE RETURN 2616 004033 1203 TAD ERPLUS 2617 004034 4450 JMS I OERROR 2618 004035 1017 TAD LAST4 2619 004036 7041 CIA 2620 004037 1027 ERROR3, TAD LOC /OUTPUT 4 DIGIT ADDRESS OR INCREMENT 2621 004040 4774 JMS I (OCTPRT 2622 004041 1134 ERROR4, TAD [215 /OUTPUT CARRIAGE RETURN/LINE FEED 2623 004042 4450 JMS I OERROR 2624 004043 5600 JMP I ERROR /--RETURN-- 2625 /RESET LITERAL TABLES AND POINTERS 2626 2627 DUMPS5, 2628 004044 0000 CLEAN, 0 2629 004045 1373 TAD (LITBUF-1 2630 004046 3012 DCA XREG1 /SET LITERAL TABLE POINTER 2631 004047 1372 TAD (TPINST-1 2632 004050 3013 DCA XREG2 /SET TOP INST. TABLE POINTER 2633 004051 1371 TAD (-40 2634 004052 3043 DCA TEMP 2635 004053 1176 TAD [200 2636 004054 3412 DCA I XREG1 /SET LITERAL TABLE ENTRIES TO 200 2637 004055 3413 DCA I XREG2 /SET TOP INST. TABLE ENTRIES TO 0 2638 004056 2043 ISZ TEMP 2639 004057 5253 JMP .-4 2640 004060 3014 DCA LAST1 /CLEAR LAST DEFINED TAG 2641 004061 5644 JMP I CLEAN /--RETURN-- 2642 2643 /DUMP CURRENT PAGE LITERALS 2644 2645 004062 0000 DUMPS, 0 2646 004063 4552 JMS I [FINDSP 2647 004064 7450 SNA /IF THIS IS PAGE 0, 2648 004065 5662 JMP I DUMPS /--RETURN-- 2649 004066 1151 TAD [LITBUF 2650 004067 3200 DCA DUMPS1 2651 004070 1023 TAD LITPTR 2652 004071 7141 CIA CLL 2653 004072 1600 TAD I DUMPS1 2654 004073 3347 DCA DUMPS2 /STORE NUMBER OF LITERALS ON THIS PAGE 2655 004074 7430 SZL /ARE THERE ANY? 2656 004075 5323 JMP D2 /V3C 2657 004076 3032 DCA STARSW /FORCE ORIGIN PUNCH IF RELOC JUST INVOKED 2658 004077 1027 TAD LOC 2659 004100 0154 AND [7600 2660 004101 1600 TAD I DUMPS1 2661 004102 4553 JMS I [PUNORG /OUTPUT ORIGIN 2662 004103 1600 TAD I DUMPS1 2663 004104 1102 TAD [LITBF1 2664 004105 3244 DUMPS3, DCA DUMPS5 2665 004106 1540 TAD I [LINBUF /SAVE LINBUF 2666 004107 4544 JMS I [PUSHA 2667 004110 3540 DCA I [LINBUF 2668 004111 1644 DUMPS6, TAD I DUMPS5 2669 004112 3034 DCA VALUE 2670 004113 4523 JMSPUN, JMS I [PUNONE /OUTPUT ONE REGISTER 2671 004114 2027 ISZ LOC 2672 004115 2244 ISZ DUMPS5 2673 004116 2600 LITHAK, ISZ I DUMPS1 /DESTROY RECORD OF CURRENT PAGE LITERALS - 2674 /ZEROED IF NO /W OPTION SPECIFIED 2675 004117 2347 ISZ DUMPS2 2676 004120 5311 JMP DUMPS6 2677 004121 1410 TAD I PDLXR 2678 004122 3540 DCA I [LINBUF /RESTORE LINBUF 2679 004123 1200 D2, TAD DUMPS1 /WIPE REMEMBRANCE OF TOP OF PAGE (JR) 2680 004124 1370 TAD (40 /V3C 2681 004125 3244 DCA DUMPS5 2682 004126 3644 D3, DCA I DUMPS5 2683 004127 5662 JMP I DUMPS /--RETURN-- 2684 /HANDLER FOR ZBLOCK PSEUDO-OP 2685 /RESERVES AS MANY WORDS OF ZERO 2686 /AS VALUE OF EXPRESSION 2687 2688 004130 4564 ZBLOCX, JMS I [SPNOR /IGNORE SPACES 2689 004131 4561 JMS I [EXP /GET THE EXPRESSION 2690 004132 1034 TAD VALUE 2691 004133 7040 CMA /PROTECT AGAINST ZERO CASE 2692 004134 3046 DCA TEMP3 /STORE NEGATIVE AS COUNTER 2693 004135 5342 JMP ZBLOCZ /JUMP INTO LOOP 2694 004136 4513 ZBLOCY, JMS I [PUNBIN /OUTPUT ONE WORD OF ZERO 2695 004137 1051 TAD PASS /IS THIS PASS 3? 2696 004140 7740 SMA SZA CLA 2697 004141 3767 DCA I (PUNMOD /YES - PREVENT OUTPUT 2698 004142 2046 ZBLOCZ, ISZ TEMP3 /NO - DONE YET? 2699 004143 5336 JMP ZBLOCY /NO - CONTINUE 2700 004144 1313 TAD JMSPUN /YES - RESTORE PUNMOD 2701 004145 3767 DCA I (PUNMOD 2702 004146 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 2703 2704 /DUMP PAGE 0 LITERALS 2705 2706 DUMPS2, 2707 004147 0000 DUMPZ, 0 2708 004150 1347 TAD DUMPZ /RESET EXIT FROM DUMPS 2709 004151 3262 DCA DUMPS 2710 004152 1176 TAD [200 2711 004153 7141 CIA CLL 2712 004154 1551 TAD I [LITBUF /STORE THE NUMBER OF LITERALS ON PAGE 0 2713 004155 3347 DCA DUMPS2 2714 004156 7430 SZL /ARE THERE ANY? 2715 004157 5662 JMP I DUMPS /NO - ** DUMPZ IS DESTROYED ** 2716 004160 1551 TAD I [LITBUF 2717 004161 4553 JMS I [PUNORG /OUTPUT ORIGIN 2718 004162 1551 TAD I [LITBUF /SET VALUES FOR DUMPS 2719 004163 1366 TAD (LITBF2 2720 004164 5305 JMP DUMPS3 2721 004166 2023 PAGE 004167 1434 004170 0040 004171 7740 004172 2001 004173 1741 004174 1310 004175 4217 004176 4457 004177 5554 2722 /ENTER A TAG INTO SYMBOL TABLE 2723 2724 IFZERO HASH< 2725 INSRTG, 0 2726 TAD VALUE2 /SAVE VALUE 2 2727 JMS I [PUSHA 2728 ISZ HIGHTG /COUNT IN THIS TAG 2729 TAD TAGMAX 2730 CLL CIA /GET LIMIT OF SYMBOL STORAGE 2731 TAD HIGHTG /IS THERE ROOM FOR ONE MORE? 2732 SZL 2733 JMP I (SYMOFL /NO - SE**FATAL ERROR** 2734 TAD TAGMAX /YES - IS USR IN CORE? 2735 TAD (-1340 2736 SZL CLA 2737 JMP GETTG5 /YES 2738 TAD [7700 /NO - RESET ADDRESS TO 2739 DCA IOMON /USR NON-RESIDENT 2740 AC7776 2741 AND I (JSBITS /RESET JOB STATUS WORD TO 2742 DCA I (JSBITS /SAVE CORE WHEN USR CALLED 2743 GETTG5, TAD THISTG /SEARCH SYMBOL TABLE 2744 DCA TEMP2 2745 TAD HIGHTG 2746 IAC 2747 DCA THISTG 2748 GETTG8, AC7776 2749 TAD THISTG 2750 DCA THISTG 2751 JMS I [FINDTG /GET NEXT TAG FROM SYMBOL TABLE 2752 ISZ THISTG 2753 TAD THISTG 2754 CIA 2755 TAD TEMP2 /DOES NEW TAG GO WHERE PREVIOUS TAG WAS? 2756 SNA CLA 2757 JMP GETTG9 /YES-PUT IT THERE AND EXIT 2758 JMS I [PUTTAG /NO-REPLACE RETRIEVED TAG WHERE PREVIOUS TAG WAS 2759 JMP GETTG8 2760 2761 /THE ABOVE CODE WILL BE OPTIMIZED AT INITIALIZATION 2762 /IF THE ASSEMBLER IS TO BE RESTRICTED TO 8K OF CORE 2763 2764 GETTG9, TAD I (NAME1 /GET CURRENT TAG 2765 DCA TAG1 /PUT IT IN TAG1-TAG3 2766 TAD I (NAME2 2767 DCA TAG2 2768 TAD I (NAME3 2769 DCA TAG3 2770 TAD I PDLXR /RESTORE VALUE 2 2771 DCA VALUE2 2772 JMS I [PUTTAG /PUT TAG1 - TAG3 INTO SYMBOL TABLE 2773 JMP I INSRTG /--RETURN-- 2774 2775 TAGMAX, 1740 /12K=3740, ... 2776 > 2777 2778 / IFNZRO HASH< /***HACK ONLY*** 2779 /TLYREF, 0 /TALLY REFS TO SYMBOL TABLE 2780 / ISZ NREFL 2781 / JMP I TLYREF 2782 / ISZ NREFH 2783 / JMP I TLYREF 2784 / JMP I TLYREF 2785 /TLYPRB, 0 /TALLY PROBES INTO TABLE 2786 / JMS I [FINDTG /FUDGE, OUT OF ROOM 2787 / ISZ NPROBL 2788 / JMP I TLYPRB 2789 / ISZ NPROBH 2790 / JMP I TLYPRB 2791 / JMP I TLYPRB 2792 /NREFH, 0 2793 /NREFL, 0 2794 /NPROBH, 0 2795 /NPROBL, 0 2796 / > /***HACK ONLY*** 2797 IFNZRO HASH< 2798 2799 /INSERT A TAG INTO THE HASH TABLE 2800 2801 004200 0000 INSRTG, 0 2802 004201 2060 ISZ HIGHTG /BUMP SYM NUM (SKIPS ON 0) 2803 004202 1060 TAD HIGHTG 2804 004203 7160 STL CMA 2805 004204 1076 TAD TAGMAX 2806 004205 7670 SNA SZL CLA /STILL ROOM FOR AT LEAST 2 MORE? 2807 004206 5777 JMP I (SYMOFL /NO SE** FATAL ERROR** 2808 004207 1776 TAD I (NAME1 2809 004210 3020 DCA TAG1 2810 004211 1775 TAD I (NAME2 2811 004212 3021 DCA TAG2 2812 004213 1774 TAD I (NAME3 2813 004214 3022 DCA TAG3 2814 004215 4541 JMS I [PUTTAG /NOW ACTUALLY INSERT IT 2815 004216 5600 JMP I INSRTG 2816 > 2817 /OUTPUT 2 CHARACTER WORD 2818 /FROM SYMBOL TABLE FORMAT 2819 /DIVIDE BY 45(8) 2820 2821 004217 0000 DIV45, 0 2822 004220 7004 RAL 2823 004221 7110 CLL RAR /CLEAR SIGN BIT 2824 004222 2242 DIV45A, ISZ DIV45C 2825 004223 1373 TAD (-45 2826 004224 7500 SMA 2827 004225 5222 JMP DIV45A 2828 004226 1372 TAD (45 2829 004227 4243 JMS DIV45E 2830 004230 3241 DCA DIV45B 2831 004231 7240 STA 2832 004232 1242 TAD DIV45C 2833 004233 4243 JMS DIV45E 2834 004234 4566 JMS I [RTL6 2835 004235 1241 TAD DIV45B 2836 004236 4527 JMS I [ERROR1 /OUTPUT 2 CHARACTERS 2837 004237 3242 DCA DIV45C /CLEAR DIV45C FOR NEXT GO-ROUND 2838 004240 5617 JMP I DIV45 /--RETURN-- 2839 2840 004241 0000 DIV45B, 0 2841 004242 0000 DIV45C, 0 /** MUST BE 0 WHEN DIV45 IS ENTERED ** 2842 2843 004243 0000 DIV45E, 0 2844 004244 7450 SNA 2845 004245 5643 JMP I DIV45E 2846 004246 1371 TAD (-33 2847 004247 7500 SMA 2848 004250 1370 TAD (20-40-33 2849 004251 1367 TAD (33+40 2850 004252 5643 JMP I DIV45E /--RETURN-- 2851 /HANDLER FOR FIXTAB PSEUDO-OP 2852 2853 004253 1051 FIXTBX, TAD PASS /IS THIS PASS 1? 2854 004254 7700 SMA CLA 2855 004255 5577 JMP I [LOOKEX /NO--EXIT TO MAIN-- 2856 004256 5766 JMP I (FIXTAY /YES--DO FIXTAB 2857 2858 /SET FIELD 2859 2860 004257 0000 SETFLD, 0 2861 004260 7300 CLA CLL /SETFLD CALLED WITH AC RANDOM 2862 004261 3301 DCA SETFL1 /INITIALIZE FIELD 2863 IFNZRO HASH< 2864 004262 1303 TAD USROFS /FUDGE FOR KEEPING USR AROUND 2865 > 2866 004263 1057 TAD THISTG 2867 004264 2301 SETFLP, ISZ SETFL1 2868 004265 7020 CML 2869 004266 1365 TAD (-1740 /PUT 1740 SYMBOLS IN EACH FIELD 2870 004267 7420 SNL /IS THE DIVIDE THROUGH? 2871 004270 5264 JMP SETFLP /NO - CONTINUE 2872 IFZERO HASH< 2873 CLL CMA RTL /AC CONTAINED REM-1740; THIS MAKES IT INTO 2874 TAD (-1 /7573-4*REM WHICH IS THE ADDRESS WE WANT 2875 > 2876 IFNZRO HASH< 2877 004271 7106 CLL RTL /AC GETS 0201 TO 7775 2878 004272 1364 TAD (-202 /AC GETS 7777 TO 7573 FOR TAGXR 2879 > 2880 004273 3011 DCA TAGXR /TO STICK INTO AN AUTO-XR 2881 004274 1301 TAD SETFL1 2882 004275 7106 CLL RTL 2883 004276 7004 RAL 2884 004277 1317 TAD SETFL2 2885 004300 3301 DCA SETFL1 2886 004301 7402 SETFL1, HLT 2887 004302 5657 JMP I SETFLD /--RETURN-- 2888 IFNZRO HASH< 2889 004303 0000 USROFS, 0 /GETS 400 IF KEEPING USR 2890 > 2891 /FIND TAG 2892 /GET TAG FROM SYMBOL TABLE 2893 /PUT IT INTO TAG1-TAG3 2894 /WITH ITS VALUE IN VALUE2 2895 2896 004304 0000 FINDTG, 0 2897 004305 1057 TAD THISTG 2898 004306 4257 JMS SETFLD 2899 004307 1411 TAD I TAGXR 2900 004310 3020 DCA TAG1 2901 004311 1411 TAD I TAGXR 2902 004312 3021 DCA TAG2 2903 004313 1411 TAD I TAGXR 2904 004314 3022 DCA TAG3 2905 004315 1411 TAD I TAGXR 2906 004316 3035 DCA VALUE2 2907 004317 6201 SETFL2, CDF 2908 004320 5704 JMP I FINDTG /--RETURN-- 2909 2910 /OPTIMIZATION MAY CHANGE SETFLD TO 2911 /REMOVE CLA ON ENTRY 2912 004364 7576 PAGE 004365 6040 004366 1125 004367 0073 004370 7725 004371 7745 004372 0045 004373 7733 004374 0202 004375 0201 004376 0200 004377 0746 2913 /BEGINNING OF PASS CODE 2914 2915 004400 4777 JMS I (IOPEN /SET INPUT ROUTINE TO OPEN FILE 2916 004401 2051 START2, ISZ PASS /SET UP COUNTERS AND POINTERS 2917 004402 3026 DCA XLISTX /CLEAR XLIST SWITCH 2918 004403 3072 DCA FLDIND /SET FIELD TO 0 2919 004404 3053 DCA CONDSW 2920 004405 3042 DCA EDITPG 2921 004406 3075 DCA LINK 2922 004407 3024 DCA RADIX 2923 004410 3074 DCA ERCNT 2924 004411 3063 DCA GETCI 2925 004412 3025 DCA PUNCHX 2926 004413 3540 DCA I [LINBUF 2927 004414 1376 TAD (PDLST 2928 004415 3010 DCA PDLXR 2929 004416 4556 JMS I [CLEAN 2930 004417 1176 TAD [200 2931 004420 3023 DCA LITPTR 2932 004421 1176 TAD [200 2933 004422 4553 JMS I [PUNORG 2934 004423 5775 JMP I (LOOKE1 /--EXIT TO MAIN-- 2935 2936 /HANDLER FOR $ 2937 2938 004424 4563 ENDPAS, JMS I [DUMPS /DUMP CURRENT PAGE LITERALS 2939 004425 3031 DCA OFSBUF /CLEAR OFFSET FOR NEXT PASS 2940 004426 1051 TAD PASS /WHAT PASS IS ENDING? 2941 004427 7450 SNA 2942 004430 5774 JMP I (ENDPA2 /PASS 2 2943 004431 7710 SPA CLA 2944 004432 5773 JMP I (START1 /PASS 1 2945 004433 1540 TAD I [LINBUF /PASS 3 2946 004434 7650 SNA CLA /ANYTHING TO PRINT? 2947 004435 5243 JMP ENDPA1-1 /NO 2948 004436 1136 TAD [211 /YES - TAB OVER TWICE 2949 004437 4450 JMS I OERROR 2950 004440 1136 TAD [211 2951 004441 4450 JMS I OERROR 2952 004442 4526 JMS I [LINPRT /PRINT LINE 2953 004443 4562 JMS I [DUMPZ /DUMP PAGE 0 LITERALS 2954 004444 3026 ENDPA1, DCA XLISTX 2955 /OUTPUT SYMBOL TABLE 2956 004445 4773 SSWITC, JMS I (SYMPRT /(0 IF /S) 2957 004446 1772 TAD I (FORM21 2958 004447 3771 DCA I (FORM22 2959 004450 4535 JMS I [FORMFD /OUTPUT FORM FEED 2960 004451 1074 ERMSGS, TAD ERCNT 2961 004452 4302 JMS OUTTTL /PRINT "ERRORS DETECTED: N" 2962 004453 1075 TAD LINK 2963 004454 4302 JMS OUTTTL /PRINT "LINKS GENERATED: N" 2964 004455 4535 FINLFF, JMS I [FORMFD /PRINT FINAL FF (ZEROED IF NO PASS 3) 2965 004456 4770 JMS I (OCLOSE /AND CLOSE THE OUTPUT FILE 2966 /CREF AND LOAD-AND-GO OPTIONS 2967 /****FINAL EXIT TO MONITOR**** 2968 004457 5521 LSWITC, JMP I [7605 /0 IF /L OR /G OR /C 2969 004460 1367 TAD (7616 2970 004461 3012 DCA XREG1 2971 004462 6211 CDF 10 2972 004463 1554 CSWITC, TAD I [7600 /"TAD I [7605" IF /C 2973 004464 0111 AND [17 2974 004465 3412 DCA I XREG1 /SET BINARY DEVICE 2975 004466 1073 TAD BINSRT 2976 2977 /EXIT FROM PAL8 BY CHAINING 2978 /TO NEXT PROGRAM 2979 /SHOULD BE ABSLDR OR CREF 2980 2981 004467 3412 DCA I XREG1 /SET STARTING BLOCK 2982 004470 3412 DCA I XREG1 /SET 0 TERMINATOR 2983 004471 6201 CDF 2984 004472 1766 TAD I (JSBITS /SET BIT 11 OF JOB STATUS WORD 2985 004473 7010 RAR /SO 10000-11777 IS NOT SAVED 2986 004474 7124 CLL CML RAL 2987 004475 3766 DCA I (JSBITS 2988 004476 6212 CIF 10 2989 004477 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 2990 004500 0006 6 /*CHAIN TO NEXT PROGRAM* 2991 004501 0000 CHAIN, 0 /STARTING BLOCK OF NEXT PROGRAM 2992 2993 004502 0000 OUTTTL, 0 2994 004503 3014 DCA LAST1 /SAVE NUMBER TO BE PRINTED 2995 004504 1720 OUTTLL, TAD I TTLPTR /GET A WORD OF MESSAGE 2996 004505 2320 ISZ TTLPTR 2997 004506 7450 SNA /END? 2998 004507 5312 JMP PRTTTL /YES 2999 004510 4527 JMS I [ERROR1 /NO - PRINT IT 3000 004511 5304 JMP OUTTLL /AND LOOP 3001 004512 1165 PRTTTL, TAD [240 /PRINT A SPACE 3002 004513 4447 JMS I OCHAR 3003 004514 1014 TAD LAST1 3004 004515 4765 JMS I (FORMF4 /PRINT NUMBER IN DECIMAL 3005 004516 4777 JMS I (CRLF /PRINT CR AND 2 LF'S (1 IF PASS 3) 3006 004517 5702 JMP I OUTTTL /AND RETURN 3007 3008 004520 2353 TTLPTR, TTLMSG 3009 /COME HERE TO LOAD THE PASS 3 OVERLAY AT THE END OF PASS 2 3010 3011 004521 4764 LOADOV, JMS I (7607 /CALL SYSTEM DEVICE HANDLER 3012 004522 0200 0200 /SWAP IN CODE UNIQUE TO PASS 3 3013 004523 1000 SWAP1 /BUFFER ADDRESS 3014 004524 0040 ASWAP /STARTING BLOCK NUMBER 3015 004525 5763 JMP I (SYSER3 /DE**FATAL ERROR** 3016 004526 5201 NSWITC, JMP START2 /(0 IF NO LIST FILE, SKP IF /N) START PASS3 3017 004527 5331 JMP ERMSG1 3018 004530 5244 JMP ENDPA1 3019 3020 004531 1362 ERMSG1, TAD (OTYPEO /COME HERE IF NO PASS 3 OUTPUT FILE 3021 004532 3047 DCA OCHAR 3022 004533 1362 TAD (OTYPEO 3023 004534 3050 DCA OERROR 3024 004535 1154 TAD [7600 3025 004536 3761 DCA I (OTYPCR /INHIBIT AUTO-LF ON CARRIAGE RETURN 3026 004537 3255 DCA FINLFF /KILL LAST FORM FEED 3027 004540 5251 JMP ERMSGS 3028 3029 /ADD BITS TO PUNCH ORIGIN 3030 3031 004541 0000 PUNORG, 0 3032 004542 3027 DCA LOC 3033 004543 1051 TAD PASS /IS THIS PASS 2? 3034 004544 7640 SZA CLA 3035 004545 5741 JMP I PUNORG /NO--RETURN-- 3036 004546 1027 TAD LOC /YES - OUTPUT ORIGIN SETTING 3037 004547 1030 TAD OFFSET /"LOC" MAY BE FICTITIOUS - MAKE IT REAL 3038 004550 7120 CLL CML 3039 004551 2032 ISZ STARSW /INHIBIT PUNCHING ORIGIN IF NECESSARY 3040 004552 4525 JMS I [PUNOUT 3041 004553 7200 CLA 3042 004554 3032 DCA STARSW /RESET SWITCH 3043 004555 5741 JMP I PUNORG /--RETURN-- 3044 004561 2336 PAGE 004562 2323 004563 2757 004564 7607 004565 1123 004566 7746 004567 7616 004570 2673 004571 1067 004572 1113 004573 1200 004574 1234 004575 3010 004576 1617 004577 1160 3045 /EVALUATE LITERAL 3046 3047 004600 7244 LIT, STA RAL /-2 IF PAGE 0 LITERAL, -1 IF CUR PAGE 3048 004601 3366 DCA FINDS1 /SAVE FLAG 3049 004602 4574 JMS I [GETC /GET NEXT CHARACTER 3050 004603 4564 JMS I [SPNOR /IGNORE SPACES 3051 004604 1054 TAD EXPIND /STORE IMPORTANT VALUES PRIOR TO 3052 004605 4544 JMS I [PUSHA /ENTRANCE INTO EXP 3053 004606 1033 TAD OP 3054 004607 4544 JMS I [PUSHA 3055 004610 1034 TAD VALUE 3056 004611 4544 JMS I [PUSHA 3057 004612 1366 TAD FINDS1 3058 004613 4544 JMS I [PUSHA 3059 004614 4561 JMS I [EXP /GET EXPRESSION 3060 004615 1034 TAD VALUE /FIND LITERAL IN TABLE 3061 004616 2410 ISZ I PDLXR /PAGE 0? 3062 004617 5222 JMP .+3 3063 004620 4252 JMS FINDS /NO 3064 004621 7410 SKP 3065 004622 4353 JMS FIND0 /YES 3066 004623 3035 DCA VALUE2 /STORE ADDRESS 3067 004624 1410 TAD I PDLXR 3068 004625 3034 DCA VALUE 3069 004626 1410 TAD I PDLXR /RESTORE SAVED VALUES 3070 004627 3033 DCA OP 3071 004630 1410 TAD I PDLXR 3072 004631 3054 DCA EXPIND 3073 004632 1040 TAD CHAR /IGNORE ) OR ] 3074 004633 1377 TAD (-") 3075 004634 7440 SZA 3076 004635 1376 TAD (")-"] 3077 004636 7650 SNA CLA 3078 004637 4574 JMS I [GETC /GET NEXT CHARACTER 3079 004640 5775 JMP I (NUMBE5 /RETURN TO EXPRESSION PROCESSOR 3080 3081 3082 004641 0000 PEZE, 0 /SUBR TO ISSUE PE OR ZE MESSAGE 3083 004642 7650 SNA CLA /WHICH ONE? 3084 004643 5247 JMP .+4 /PAGE 0 3085 004644 4471 JMS I PERROR 3086 004645 6045 PE 3087 004646 5641 JMP I PEZE 3088 004647 4471 JMS I PERROR 3089 004650 7245 ZE 3090 004651 5641 JMP I PEZE 3091 /FIND LITERAL ON CURRENT PAGE 3092 3093 004652 0000 FINDS, 0 3094 004653 3366 DCA FINDS1 3095 004654 1027 TAD LOC 3096 004655 0154 AND [7600 3097 004656 7450 SNA /IS THIS PAGE 0? 3098 004657 5357 JMP FIND01 /YES 3099 004660 3367 DCA FINDS2 /NO - SAVE PAGE NUMBER 3100 004661 1102 TAD [LITBF1 3101 004662 3353 DCA FIND0 3102 004663 1157 TAD [7700 /ALLOW 100(8) CURRENT PAGE LITERALS 3103 004664 3000 DCA FORMF6 3104 004665 1023 TAD LITPTR /GET PG ADDR OF 1ST LITERAL IN BUFFER 3105 004666 3370 FIND02, DCA FINDS3 3106 004667 1367 TAD FINDS2 3107 004670 4566 JMS I [RTL6 3108 004671 1151 TAD [LITBUF 3109 004672 3043 DCA TEMP 3110 004673 1353 TAD FIND0 /COMPUTE ACTUAL CORE ADDRESS OF LITERAL 3111 004674 1443 TAD I TEMP 3112 004675 3045 DCA TEMP2 3113 004676 1370 TAD FINDS3 /COMPUTE THE NUMBER OF ENTRIES 3114 004677 7041 CIA 3115 004700 1443 TAD I TEMP /IN THE LITERAL BUFFER 3116 004701 7450 SNA 3117 004702 5314 JMP FINDS6 /NONE 3118 004703 3370 DCA FINDS3 3119 004704 1445 FINDS4, TAD I TEMP2 /GET LITERAL FROM TABLE 3120 004705 7041 CIA 3121 004706 1366 TAD FINDS1 /AND CURRENT LITERAL 3122 004707 7650 SNA CLA /DO THEY MATCH? 3123 004710 5346 JMP FINDS5 /YES 3124 004711 2045 ISZ TEMP2 /NO - BUMP COUNTERS 3125 004712 2370 ISZ FINDS3 3126 004713 5304 JMP FINDS4 /TRY AGAIN 3127 004714 1367 FINDS6, TAD FINDS2 3128 004715 4566 JMS I [RTL6 3129 004716 1124 TAD [TPINST 3130 004717 3370 DCA FINDS3 3131 004720 1443 TAD I TEMP /DOES THIS OVERFLOW PAGE? 3132 004721 7041 CIA 3133 004722 1770 TAD I FINDS3 3134 004723 7710 SPA CLA 3135 004724 5331 JMP FINDS7 /NO 3136 3137 004725 1367 FIND03, TAD FINDS2 /PAGE FULL - WHICH PAGE? 3138 004726 4241 JMS PEZE /GENERATE PE OR ZE MESSAGE 3139 004727 7240 CLA CMA 3140 004730 5341 JMP FINDS9 3141 004731 7240 FINDS7, CLA CMA 3142 004732 1443 TAD I TEMP /IS PAGE FULL? 3143 004733 0000 AND FORMF6 3144 004734 7650 SNA CLA 3145 004735 5325 JMP FIND03 /YES - OUTPUT ERROR MESSAGE 3146 004736 7240 CLA CMA 3147 004737 1443 TAD I TEMP /NO 3148 004740 3443 DCA I TEMP 3149 004741 1443 FINDS9, TAD I TEMP 3150 004742 1353 TAD FIND0 3151 004743 3045 DCA TEMP2 3152 004744 1366 TAD FINDS1 3153 004745 3445 DCA I TEMP2 3154 004746 1353 FINDS5, TAD FIND0 /GET ADDRESS OF LITERAL 3155 004747 7041 CIA 3156 004750 1045 TAD TEMP2 3157 004751 1367 TAD FINDS2 3158 004752 5652 JMP I FINDS /--RETURN-- 3159 3160 3161 /FIND LITERAL ON PAGE 0 3162 3163 004753 0000 FIND0, 0 3164 004754 3366 DCA FINDS1 3165 004755 1353 TAD FIND0 /RESET EXIT FROM FINDS 3166 004756 3252 DCA FINDS 3167 004757 3367 FIND01, DCA FINDS2 /SET POINTERS 3168 004760 1374 TAD (LITBF2 3169 004761 3353 DCA FIND0 3170 004762 1103 TAD [7760 /ALLOW 160(8) PAGE 0 LITERALS 3171 004763 3000 DCA FORMF6 3172 004764 1176 TAD [200 3173 004765 5266 JMP FIND02 3174 3175 004766 0000 FINDS1, 0 3176 004767 0000 FINDS2, 0 3177 004770 0000 FINDS3, 0 3178 004774 2023 PAGE 004775 3327 004776 7714 004777 7527 3179 /HANDLER FOR IFZERO PSEUDO-OP 3180 3181 005000 1377 IF0, TAD (10 /IFTST1, SNA CLA 3182 3183 /HANDLER FOR IFNZERO PSEUDO-OP 3184 3185 005001 1237 IFN0, TAD IFSZA /IFTST1, SZA CLA 3186 005002 3224 DCA IFTST1 3187 005003 4564 JMS I [SPNOR /IGNORE SPACES 3188 005004 4561 JMS I [EXP /GET EXPRESSION 3189 005005 1040 IFTST3, TAD CHAR /GET LAST CHARACTER 3190 005006 1376 TAD (-"< 3191 005007 7650 SNA CLA /IS IT /NO - IS IT >? 3216 005037 7640 IFSZA, SZA CLA 3217 005040 5245 JMP IFTST4 /NO - FINISH THIS CONDITIONAL 3218 005041 7344 AC7776 3219 005042 7040 IFTST6, CMA 3220 005043 1053 TAD CONDSW 3221 005044 3053 DCA CONDSW 3222 005045 3540 IFTST4, DCA I [LINBUF /INHIBIT LISTING OF UNASSEMBLED CODE - 3223 /ZEROED IF /J OPTION NOT SPECIFIED 3224 005046 4574 JMS I [GETC /GET NEXT CHARACTER 3225 005047 5226 JMP IFTST5 3226 /HANDLER FOR IFDEF PSEUDO-OP 3227 3228 005050 1377 IFD, TAD (10 /IFTST1, SNA CLA 3229 3230 /HANDLER FOR IFNDEF PSEUDO-OP 3231 3232 005051 1237 IFND, TAD IFSZA /IFTST1, SZA CLA 3233 005052 3224 DCA IFTST1 3234 005053 4564 IFTST7, JMS I [SPNOR /IGNORE SPACES 3235 005054 4547 JMS I [TSTALP /IS NEXT CHARACTER ALPHABETIC 3236 005055 5260 JMP IFTST8 /YES 3237 005056 4270 JMS ICMESG /PRINT IC MESSAGE AND GET NEXT CHAR 3238 005057 5253 JMP IFTST7 /KEEP TRYING 3239 3240 005060 4545 IFTST8, JMS I [GETTAG /PICK UP TAG 3241 005061 3034 DCA VALUE /STORE UNDEFINED INDICATOR 3242 005062 1022 TAD TAG3 /WAS IT A PSEUDO-OP? 3243 005063 7700 SMA CLA 3244 005064 5212 JMP IFTST9 /NO 3245 005065 4542 JMS I [ERROR /YES - GENERATE IP ERROR MESSAGE 3246 005066 5160 IP 3247 005067 5212 JMP IFTST9 3248 3249 005070 0000 ICMESG, 0 3250 005071 4542 JMS I [ERROR 3251 005072 5143 IC /IC COMES OUT ON ALL PASSES 3252 005073 1040 TAD CHAR 3253 005074 7710 SPA CLA 3254 005075 5577 JMP I [LOOKEX /END OF LINE - GO AWAY 3255 005076 4574 JMS I [GETC /GET NEXT CHAR 3256 005077 5670 JMP I ICMESG 3257 CONDTM, 3258 3259 /PUT TAG IN SYMBOL TABLE 3260 3261 005100 0000 PUTTAG, 0 3262 005101 1057 TAD THISTG 3263 005102 4773 JMS I (SETFLD /SET FIELD 3264 005103 1020 TAD TAG1 3265 005104 3411 DCA I TAGXR 3266 005105 1021 TAD TAG2 3267 005106 3411 DCA I TAGXR 3268 005107 1022 TAD TAG3 3269 005110 3411 DCA I TAGXR 3270 005111 1035 TAD VALUE2 3271 005112 3411 DCA I TAGXR 3272 005113 6201 CDF 3273 005114 5700 JMP I PUTTAG /--RETURN-- 3274 3275 3276 /PUSHDOWN ROUTINE 3277 /PUT NEW ENTRY ON PUSHDOWN STACK 3278 3279 005115 0000 PUSHA, 0 3280 005116 3043 DCA TEMP 3281 005117 7240 CLA CMA 3282 005120 1010 TAD PDLXR 3283 005121 3010 DCA PDLXR 3284 005122 1010 TAD PDLXR 3285 005123 1372 TAD (-PDLND 3286 005124 7710 SPA CLA /IS LIST TOO FULL? 3287 005125 5334 JMP PUSHA1 /BE**FATAL ERROR** 3288 005126 1043 TAD TEMP /NO - MAKE ENTRY 3289 005127 3410 DCA I PDLXR 3290 005130 7240 CLA CMA 3291 005131 1010 TAD PDLXR 3292 005132 3010 DCA PDLXR 3293 005133 5715 JMP I PUSHA /--RETURN-- 3294 3295 005134 1371 PUSHA1, TAD (BE 3296 005135 5510 JMP I [MONERR /PUSHDOWN OVERFLOW IS FATAL ERROR 3297 /TEST NUMERIC ROUTINE 3298 /CALL WITH CHARACTER TO TEST IN "CHAR" 3299 /SKIPS IF THE CHARACTER IS NOT NUMERIC 3300 3301 005136 0000 TSTNUM, 0 3302 005137 1040 TAD CHAR /GET THE CHARACTER 3303 005140 1370 TAD (-"9-1 3304 005141 7100 CLL 3305 005142 1367 TAD ("9-"0+1 3306 005143 7620 SNL CLA /CHECK FOR RANGE 0-9 3307 005144 2336 ISZ TSTNUM /OUT OF RANGE 3308 005145 5736 JMP I TSTNUM /--RETURN-- 3309 3310 /TEST ALPHANUMERIC ROUTINE 3311 /CALL WITH CHARACTER IN "CHAR" 3312 /SKIPS IF CHARACTER IS NOT ALPHANUMERIC 3313 3314 005146 0000 TSTALN, 0 3315 005147 4505 JMS I [TSTNUM /IS IT NUMERIC 3316 005150 5746 JMP I TSTALN /YES--RETURN-- 3317 005151 4547 JMS I [TSTALP /IS IT ALPHABETIC 3318 005152 5746 JMP I TSTALN /YES--RETURN-- 3319 005153 2346 ISZ TSTALN /NEITHER 3320 005154 5746 JMP I TSTALN /--RETURN-- 3321 3322 /TEST ALPHABETIC ROUTINE 3323 /CALL WITH CHARACTER IN "CHAR" 3324 /SKIPS IF NOT ALPHABETIC 3325 3326 005155 0000 TSTALP, 0 3327 005156 1040 TAD CHAR 3328 005157 1366 TAD (-"Z-1 3329 005160 7100 CLL 3330 005161 1365 TAD ("Z-"A+1 3331 005162 7620 SNL CLA /CHECK FOR RANGE A-Z 3332 005163 2355 ISZ TSTALP /OUT OF RANGE 3333 005164 5755 JMP I TSTALP /--RETURN-- 3334 005165 0032 PAGE 005166 7445 005167 0012 005170 7506 005171 4245 005172 6223 005173 4257 005174 7776 005175 3011 005176 7504 005177 0010 3335 /INPUT ROUTINE 3336 /UNPACKS CHARACTERS FROM BUFFER 3337 3338 005200 0000 INPUT, 0 3339 005201 2274 ISZ INCHCT /ARE THERE CHARACTERS LEFT IN BUFFER? 3340 005202 5763 JMP I CHARLV /YES - FETCH ONE 3341 005203 1275 TAD INEOF /NO - WAS OLD FILE ENDED? 3342 005204 7640 SZA CLA 3343 005205 5302 JMP ENDCHR /YES - START NEW FILE 3344 005206 1300 INGBUF, TAD INCTLA /NO 3345 005207 0154 AND [7600 3346 005210 4566 JMS I [RTL6 3347 005211 1277 TAD INCTR 3348 005212 7420 SNL 3349 005213 3277 DCA INCTR 3350 005214 7430 SZL 3351 005215 2275 ISZ INEOF 3352 005216 7172 CLL CML CMA RTR /SET CONTROL WORD 3353 005217 7012 RTR 3354 005220 7012 RTR 3355 005221 1300 TAD INCTLA 3356 005222 3224 DCA INCTLW 3357 005223 4726 JMS I INHNDL /CALL INPUT DEVICE HANDLER 3358 005224 0000 INCTLW, 0 /CONTROL WORD 3359 005225 5600 INBUFP, INBUF /INPUT BUFFER ADDRESS 3360 005226 0000 INREC, 0 /STARTING BLOCK NUMBER 3361 005227 5270 JMP INERRX /ERROR RETURN 3362 005230 1300 INBREC, TAD INCTLA /NORMAL RETURN 3363 005231 0154 AND [7600 3364 005232 4566 JMS I [RTL6 3365 005233 1226 TAD INREC 3366 005234 3226 DCA INREC /RESET STARTING BLOCK NUMBER 3367 005235 1224 TAD INCTLW 3368 005236 0154 AND [7600 3369 005237 7104 CLL RAL 3370 005240 1224 TAD INCTLW 3371 005241 0154 AND [7600 3372 005242 7041 CIA 3373 005243 3274 DCA INCHCT /SET CHARACTER COUNT 3374 005244 1225 TAD INBUFP 3375 005245 3276 DCA INPTR /SET BUFFER POINTER 3376 /CHARACTERS ARE FOUND IN BUFFER 3377 /IN STANDARD OS/8 PACKING 3378 /WORD 1: AAA A11 111 111 3379 /WORD 2: BBB B22 222 222 3380 /WHICH REPRESENTS 3 CHARACTERS 3381 /CHARACTER 1: 11 111 111 3382 /CHARACTER 2: 22 222 222 3383 /CHARACTER 3: AA AAB BBB 3384 3385 3386 005246 1676 ICHAR1, TAD I INPTR /PICK UP CHARACTER WORD 1 3387 005247 4363 JMS CHARLV /CHECK RIGHT 8 BITS 3388 005250 1676 ICHAR2, TAD I INPTR /PICK UP WORD 1 3389 005251 2276 ISZ INPTR /(INCREMENT POINTER TO WORD 2) 3390 005252 0120 AND [7400 /WITH WORD 1 IN AC 3391 005253 3224 DCA INCTLW /RETRIEVE LEFT 4 BITS AND SAVE 3392 005254 1676 TAD I INPTR /PICK UP WORD 2 3393 005255 4363 JMS CHARLV /CHECK RIGHT 8 BITS 3394 005256 1676 ICHAR3, TAD I INPTR /PICK UP WORD 2 3395 005257 2276 ISZ INPTR /(POINT TO NEXT WORD 1) 3396 005260 0120 AND [7400 /WITH WORD 2 IN AC 3397 005261 7112 CLL RTR /RETRIEVE LEFT 4 BITS 3398 005262 7012 RTR 3399 005263 1224 TAD INCTLW /PUT BOTH SETS OF 4 BITS TOGETHER 3400 005264 7012 RTR 3401 005265 7012 RTR 3402 005266 4363 JMS CHARLV /CHECK CHARACTER 3403 005267 5246 JMP ICHAR1 /TRY NEXT SET OF 2 WORDS 3404 3405 005270 2275 INERRX, ISZ INEOF 3406 005271 7700 SMA CLA /EOF OR FATAL ERROR? 3407 005272 5230 JMP INBREC /EOF - UNPACK THIS BUFFER 3408 005273 5777 JMP I (SYSERR /FATAL - GENERATE DE ERROR MESSAGE 3409 3410 005274 7777 INCHCT, -1 3411 005275 0001 INEOF, 1 3412 005276 0000 INPTR, 0 3413 005277 0000 INCTR, 0 3414 005300 0000 INCTLA, 0 3415 005301 7617 INFPTR, 7617 3416 /START NEW FILE 3417 3418 005302 2776 ENDCHR, ISZ I (FORMSW /^Z OR EOF SIMULATES FORM FEED 3419 005303 1051 TAD PASS /IS THIS PASS 3? 3420 005304 7750 SPA SNA CLA 3421 005305 5314 JMP NXTFLE /NO 3422 005306 4775 JMS I (HEDCLR /YES - CLEAR HEADING BUFFER 3423 005307 1131 TAD [-HEDLEN 3424 005310 3774 DCA I (LSTCH6 3425 005311 1132 TAD [HEADER-1 3426 005312 3773 DCA I (LSTCH7 3427 005313 3064 DCA LSTCNT 3428 005314 1372 NXTFLE, TAD (INDEVH+1 /SET ADDRESS OF DEVICE HANDLER 3429 005315 3326 DCA INHNDL 3430 005316 6211 CDF 10 3431 005317 1701 TAD I INFPTR 3432 005320 6201 CDF 3433 005321 7450 SNA 3434 005322 5356 JMP FAKDLR /END OF FILE - FAKE A $ 3435 005323 6212 CIF 10 3436 005324 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 3437 005325 0001 1 /*FETCH HANDLER* 3438 005326 0000 INHNDL, 0 /LOADING ADDRESS OF HANDLER 3439 005327 7402 HLT /ERROR RETURN 3440 005330 6211 CDF 10 /V3C 3441 005331 1326 TAD INHNDL /NORMAL RETURN - HANDLER IN CORE 3442 005332 0154 AND [7600 3443 005333 1166 TAD [-INDEVH /SEE IF INPUT HANDLER IS IN 7200 3444 005334 7640 SZA CLA 3445 005335 4771 JMS I (PTCH /IT IS - INCREASE SIZE OF BUFFER 3446 /AND REMOVE FROM RESIDENCY ANY HANDLERS THERE 3447 005336 1066 TAD INCTL 3448 005337 3300 DCA INCTLA /DF=10 3449 005340 1701 TAD I INFPTR 3450 005341 0103 AND [7760 3451 005342 7440 SZA 3452 005343 1111 TAD [17 3453 005344 7132 CLL CML RTR 3454 005345 7012 RTR 3455 005346 3277 DCA INCTR 3456 005347 2301 ISZ INFPTR 3457 005350 1701 TAD I INFPTR 3458 005351 3226 DCA INREC /RESET STARTING BLOCK NUMBER 3459 005352 2301 ISZ INFPTR 3460 005353 3275 DCA INEOF 3461 005354 6201 CDF 3462 005355 5206 JMP INGBUF 3463 005356 1370 FAKDLR, TAD (244 3464 005357 4363 JMS CHARLV /CALL THE COROUTINE 3465 005360 1134 TAD [215 /WITH $ AND CR 3466 005361 4363 JMS CHARLV /TO END THE ASSEMBLY. 3467 005362 5767 JMP I (PHASE /** DIDN'T WORK - MUST BE IN CONDITIONAL - FATAL 3468 3469 005363 0000 CHARLV, 0 /CHARACTER IN AC 3470 005364 0155 AND [177 /AND OFF LEFT 5 BITS 3471 005365 5766 JMP I (LSTCH9 /RETURN TO LSTCH9 3472 005366 3671 PAGE 005367 0751 005370 0244 005371 3556 005372 7201 005373 3736 005374 3735 005375 1166 005376 3755 005377 2761 3473 /HANDLER FOR DTORG PSEUDO-OP (TYPESETTING) 3474 /PUNCHES 4 DIGIT BLOCK NUMBER IN 2 FRAMES 3475 /FIRST FRAME HAS CHANNELS 7 AND 8 PUNCHED 3476 /ADDED TO CHECKSUM 3477 3478 005400 4564 DTORGX, JMS I [SPNOR /IGNORE SPACES 3479 005401 4561 JMS I [EXP /GET EXPRESSION 3480 005402 1051 TAD PASS /IS THIS PASS 2? 3481 005403 7450 SNA 3482 005404 5216 JMP DTORG2 /YES 3483 005405 7750 PUNVA1, SPA SNA CLA /NO - IS THIS PASS 3? 3484 005406 5577 JMP I [LOOKEX /NO--EXIT TO MAIN-- 3485 005407 1070 TAD LININD /GET LINK SWITCH FROM "EXP" 3486 005410 3067 DCA LINKSW /YES 3487 005411 1177 TAD [LOOKEX /FIX PUNONE TO EXIT TO MAIN 3488 005412 3777 DCA I (PUNONE 3489 005413 1136 TAD [211 /OUTPUT TAB 3490 005414 4450 JMS I OERROR 3491 005415 5776 JMP I (DTORG1 3492 3493 005416 1034 DTORG2, TAD VALUE /PASS 2 - GET BLOCK NUMBER 3494 005417 4566 JMS I [RTL6 3495 005420 7004 RAL 3496 005421 0175 AND [77 3497 005422 1375 TAD (300 /PICK UP CHANNELS 7 AND 8 3498 005423 3043 DCA TEMP 3499 005424 1043 TAD TEMP 3500 005425 1055 TAD CHKSUM /ADD VALUE TO CHECKSUM 3501 005426 3055 DCA CHKSUM 3502 005427 1043 TAD TEMP 3503 005430 4447 JMS I OCHAR /OUTPUT BLOCK NUMBER - FIRST FRAME 3504 005431 1034 TAD VALUE 3505 005432 0175 AND [77 3506 005433 4447 JMS I OCHAR /OUTPUT SECOND FRAME 3507 005434 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 3508 3509 /HANDLER FOR % 3510 /DIVIDE BY REPEATED SUBTRACTION 3511 3512 005435 3043 OP6, DCA TEMP 3513 005436 1035 TAD VALUE2 3514 005437 7041 CIA 3515 005440 3035 DCA VALUE2 3516 005441 1034 TAD VALUE 3517 005442 7100 OP6A, CLL 3518 005443 1035 TAD VALUE2 /SUBTRACT DIVISOR FROM DIVIDEND 3519 005444 7420 SNL /DONE YET? 3520 005445 5250 JMP OP6B /YES - EXIT 3521 005446 2043 ISZ TEMP /NO - COUNT ONE MORE SUBTRACTION 3522 005447 5242 JMP OP6A /SUBTRACT AGAIN 3523 005450 7200 OP6B, CLA 3524 005451 1043 TAD TEMP /RESULT IS # OF SUBTRACTIONS 3525 005452 5774 JMP I (OP0+2 3526 /HANDLER FOR XLIST PSEUDO-OP 3527 3528 005453 4347 XLISTY, JMS XLISTZ /ANY EXPRESSION? 3529 005454 5262 JMP XLIST1 /NO 3530 005455 4561 JMS I [EXP /GET EXPRESSION 3531 005456 1034 TAD VALUE /USE THE VALUE 3532 005457 3026 XLIST2, DCA XLISTX /SET SWITCH 3533 005460 3540 DCA I [LINBUF /XLIST NEVER LISTS! 3534 005461 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 3535 3536 005462 1026 XLIST1, TAD XLISTX 3537 005463 7650 SNA CLA 3538 005464 7001 IAC /FLIP IT 3539 005465 5257 JMP XLIST2 3540 3541 005466 4347 RELOCY, JMS XLISTZ /RELOCATE PSEUDO-OP - EXPRESSION? 3542 005467 5300 JMP RELOC1 /NO 3543 005470 4561 JMS I [EXP /GET IT 3544 005471 1034 TAD VALUE 3545 005472 7041 CIA /COMPUTE OFFSET OF REL LOC CTR 3546 005473 1027 TAD LOC /FROM FAKE LOC CTR 3547 005474 1030 TAD OFFSET /OFFSET IS CUMULATIVE! 3548 005475 3031 RELOC2, DCA OFSBUF /SET NEW OFFSET - THIS TAKES EFFECT AFTER 3549 005476 7240 STA /THE LITERALS (IF ANY) ARE DUMPED. 3550 005477 5773 JMP I (STAR0 /FAKE ORIGIN TO NEW LOC, 3551 /ACTUALLY A NO-OP BECAUSE OF OFFSET 3552 005500 1030 RELOC1, TAD OFFSET /SET OFSBUF=0, LOC=LOC+OFFSET - 3553 005501 1027 TAD LOC /THIS CANCELS ALL RELOCATION STUFF. 3554 005502 3034 DCA VALUE 3555 005503 3065 DCA UNDFSW /JUST IN CASE - "STAR0" CHECKS THIS 3556 005504 5275 JMP RELOC2 /STILL MUST OUTPUT *. TO GET IN SYNCH 3557 /HANDLER FOR EJECT PSEUDO-OP 3558 3559 005505 2041 EJECTX, ISZ THISPG 3560 005506 1051 TAD PASS /IS THIS PASS 3? 3561 005507 7740 SMA SZA CLA 3562 005510 5316 JMP EJECT2 /YES 3563 005511 1040 EJECT1, TAD CHAR /NO - LOOK FOR NEXT NEGATIVE CHARACTER 3564 005512 7710 SPA CLA 3565 005513 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 3566 005514 4574 JMS I [GETC /GET NEXT CHARACTER 3567 005515 5311 JMP EJECT1 3568 3569 005516 4347 EJECT2, JMS XLISTZ /PASS 3 - IS THERE AN EXPRESSION? 3570 005517 5343 JMP EJECT3 /NO - EXIT 3571 005520 4772 JMS I (HEDCLR /YES - CLEAR HEADING BUFFER 3572 005521 1131 TAD [-HEDLEN 3573 005522 3347 DCA EJECT7 /SET UP FOR 40 NEW CHARACTERS 3574 005523 1132 TAD [HEADER-1 3575 005524 3012 DCA XREG1 /SET HEADER BUFFER POINTER 3576 005525 5333 JMP EJECT4 3577 3578 005526 2347 EJECT6, ISZ EJECT7 /FILLED 40 CHARACTERS YET? 3579 005527 5333 JMP EJECT4 /NO - KEEP FILLING 3580 005530 7240 CLA CMA /YES - SKIP CHARACTERS TO 3581 005531 3347 DCA EJECT7 /END OF LINE 3582 005532 5335 JMP EJECT5 3583 3584 005533 1040 EJECT4, TAD CHAR /FILL HEADING BUFFER 3585 005534 3412 DCA I XREG1 3586 005535 7240 EJECT5, CLA CMA 3587 005536 3036 DCA TXTSWT 3588 005537 4574 JMS I [GETC /GET NEXT CHARACTER 3589 005540 1040 TAD CHAR /END OF LINE? 3590 005541 7700 SMA CLA 3591 005542 5326 JMP EJECT6 /NO - KEEP FILLING 3592 005543 4535 EJECT3, JMS I [FORMFD /GENERATE FORM FEED 3593 005544 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 3594 005545 1051 PUNVAL, TAD PASS /IS THIS PASS 3? 3595 005546 5205 JMP PUNVA1 /IF SO, LIST STUFF 3596 3597 3598 /SEE IF EXPRESSION FOLLOWS XLIST 3599 /SKIP ON EXPRESSION 3600 3601 EJECT7, 3602 005547 0000 XLISTZ, 0 3603 005550 4564 JMS I [SPNOR /IGNORE TRAILING SPACES 3604 005551 1040 TAD CHAR 3605 005552 1107 TAD [-"> /IS THERE AN EXPRESSION? 3606 005553 7650 SNA CLA 3607 005554 5747 JMP I XLISTZ /NO--RETURN-- 3608 005555 1040 TAD CHAR 3609 005556 7700 SMA CLA 3610 005557 2347 ISZ XLISTZ /YES - INCREMENT RETURN ADDRESS 3611 005560 5747 JMP I XLISTZ /--RETURN-- 3612 3613 3614 /DUMMY ERROR ROUTINE 3615 /TO SUPPRESS CERTAIN ERROR MESSAGES 3616 /ON PASS 1 3617 3618 005561 0000 PERRO1, 0 3619 005562 2361 ISZ PERRO1 /SKIP ERROR MESSAGE POINTER 3620 005563 5761 JMP I PERRO1 /--RETURN-- 3621 3622 3623 /CONSTANTS FOR DECIMAL PRINT 3624 3625 DECIMAL 3626 005564 6030 FORMF8, -1000 3627 005565 7634 -100 3628 005566 7766 -10 3629 005567 0000 0 3630 OCTAL 3631 005572 1166 PAGE 005573 3052 005574 3602 005575 0300 005576 1350 005577 1332 3632 /********************************************************************* 3633 3634 INBUF=. /INPUT BUFFER 3635 3636 OUBUF=. /OUTPUT BUFFER 3637 3638 OUDEVH=.+400 /OUTPUT DEVICE HANDLER 3639 3640 INDEVH=7200 /INPUT DEVICE HANDLER 3641 3642 /********************************************************************** 3643 3644 / EXPLANATION OF PAL8'S BUFFER ALLOCATION ALGORITHM 3645 3646 /PASS1: 3647 3648 / THE INPUT BUFFER STARTS AT 5600 AND ENDS AT 7200 3649 / THE INPUT HANDLER GOES IN 7200-7600. 3650 / THERE IS NO OUTPUT HANDLER. 3651 / HOWEVER, IF THE CURRENT INPUT HANDLER DOES NOT 3652 / LOAD INTO 7200, THEN THE BUFFER SIZE IS INCREASED 3653 / SO THAT THE INPUT BUFFER IS 5600-7600 3654 3655 /PASS2 AND PASS3: 3656 3657 / THE OUTPUT BUFFER IS ALWAYS 1 BLOCK LONG, LOCATED 3658 / AT 5600-6200. 3659 / THE OUTPUT HANDLER RESIDES IN 6200-6600. 3660 / THE INPUT HANDLER RESIDES IN 7200-7600. 3661 / THE INPUT BUFFER NORMALLY RESIDES IN 6600-7200 3662 / BUT MAY GROW OVER EITHER THE INPUT HANDLER AREA OR 3663 / THE OUTPUT HANDLER AREA, IF EITHER OR BOTH OF THESE 3664 / DON'T EXIST. 3665 3666 /WHENEVER A BUFFER GROWS OVER A HANDLER AREA, THE MONITOR 3667 /HANDLER RESIDENCY TABLE IS SEARCHED TO SEE IF THERE 3668 /WERE ANY HANDLERS THERE. IF ANY HANDLERS WERE THERE IN THE PAST, 3669 /THEY ARE NOW MARKED AS BEING NON-RESIDENT. 3670 /MORE ONCE ONLY CODE 3671 3672 005600 0000 OTYPE, 0 3673 005601 3043 DCA TEMP 3674 005602 6211 CDF 10 3675 005603 1443 TAD I TEMP 3676 005604 0111 AND [17 /GET DEVICE NUMBER 3677 005605 1377 TAD (DCB-1 3678 005606 3043 DCA TEMP 3679 005607 1443 TAD I TEMP /GET DCB ENTRY 3680 005610 6201 CDF 3681 005611 5600 JMP I OTYPE /--RETURN-- 3682 3683 /CHECK TO SEE HOW MUCH CORE EXISTS 3684 /AND STORE SYMBOL TABLE ACCORDINGLY 3685 3686 IFZERO HASH< 3687 BEGINF, CDF 10 /WAS THE /K OPTION SELECTED TO 3688 TAD I (MPARAM /CHECK FOR MORE THAN 8K? 3689 CDF 0 3690 RTR 3691 ZK7630, SNL CLA /YES 3692 JMP I (CKBAT /NO - CHECK FOR BATCH, USE 8K ONLY 3693 CDF 50 3694 JMS FLD2 /WHAT IS HIGHEST FIELD? 3695 JMP FLD1-1 /5 3696 CDF 40 3697 JMS FLD2 3698 JMP FLD1 /4 3699 CDF 30 3700 JMS FLD2 3701 JMP FLD1+1 /3 3702 CDF 20 3703 JMS FLD2 3704 JMP FLD1+2 /2 3705 JMP OPTIM4 /1 3706 TAD [177 /IF FIELD 5, ALLOW 4095 SYMBOLS 3707 FLD1, TAD (1740 /OTHERWISE ALLOW 1740*(NR OF FIELDS) 3708 TAD (1740 3709 TAD (1740 3710 OPTIM0, TAD (1740 3711 DCA I (TAGMAX /SET HIGHEST ADDRESS FOR TAGS 3712 JMP I (BEGING 3713 3714 OPTIM4, TAD I OPTIM1 /OPTIMIZE SEARCH PATTERN 3715 ISZ OPTIM1 /BY SUBSTITUTING CODE IN SEARCH 3716 DCA I OPTIM2 /ROUTINE 3717 ISZ OPTIM2 3718 ISZ OPTIM3 3719 JMP OPTIM4 3720 OPTIM8, TAD I OPTIM5 3721 ISZ OPTIM5 3722 DCA I OPTIM6 3723 ISZ OPTIM6 3724 ISZ OPTIM7 3725 JMP OPTIM8 3726 JMP OPTIM0 3727 > 3728 3729 IFNZRO HASH< 3730 /SIZE CHECK OUR MACHINE 3731 3732 005612 6211 BEGINF, CDF 10 3733 005613 1776 TAD I (MPARAM 3734 005614 6201 CDF 3735 005615 7012 RTR /K TO LINK 3736 005616 7620 ZK7630, SNL CLA /ALTER FOR COMPLEMENT OF K 3737 005617 1127 TAD [400 /TAD TO KEEP USR 3738 005620 3775 DCA I (USROFS 3739 005621 6251 CDF 50 3740 005622 4273 JMS FLD2 3741 005623 2272 ISZ HIFLD 3742 005624 6241 CDF 40 3743 005625 4273 JMS FLD2 3744 005626 2272 ISZ HIFLD 3745 005627 6231 CDF 30 3746 005630 4273 JMS FLD2 3747 005631 2272 ISZ HIFLD 3748 005632 6221 CDF 20 3749 005633 4273 JMS FLD2 3750 005634 2272 ISZ HIFLD 3751 005635 1774 TAD I (7777 /CHECK SOFT CORE SIZE 3752 005636 0373 AND (70 3753 005637 7450 SNA 3754 005640 5252 JMP CKSEV /NOT THERE 3755 005641 7112 CLL RTR 3756 005642 7010 RAR 3757 005643 3272 DCA HIFLD /THERE, SET HIFLD WITH IT 3758 005644 1272 TAD HIFLD /TAKE MIN(HIFLD,5) 3759 005645 1372 TAD (7772 3760 005646 7700 SMA CLA /SMA TO USE HIFLD 3761 005647 1371 TAD (5 /ELSE USE 5 3762 005650 7440 SZA 3763 005651 3272 DCA HIFLD /STORE 5 IF NECESSARY 3764 005652 6211 CKSEV, CDF 10 3765 005653 1770 TAD I (MPARAM+2 /LOOK AT /7 3766 005654 6201 CDF 3767 005655 0367 AND (4 3768 005656 7650 SNA CLA /SNA IF THERE 3769 005657 5766 JMP I (CKBAT /ELSE CHECK FOR BATCH 3770 005660 1365 TAD (-7 /SET TO PRINT 7 COLUMNS OF STAB 3771 005661 3764 DCA I (SYMNCL 3772 005662 1363 TAD (67^6 /SET OFFSET TO FIRST SYMBOL ON NEXT PAGE 3773 005663 3762 DCA I (SYMOFS 3774 005664 5766 JMP I (CKBAT /OK, CHECK FOR BATCH NOW 3775 005665 7420 OPTIM4, SNL /SNL IF BATCH RUNNING 3776 005666 5761 JMP I (BEGING /ELSE TAKE DEFAULT TABLE SIZE 3777 005667 1360 TAD (BPRIME/SET ALTERNATE TABLE SIZE 3778 005670 3757 DCA I (PRIMES /INTO THE ONCE ONLY CODE 3779 005671 5761 JMP I (BEGING /NOW HIFLD=# OF HIGHEST USABLE FIELD 3780 005672 0001 HIFLD, 1 /8K MINIMUM 3781 > 3782 3783 /SKIP IF CURRENT DATA FIELD DOES NOT EXIST 3784 005673 0000 FLD2, 0 3785 005674 1356 TAD (FLD3 3786 005675 3755 DCA I (FLD4 3787 005676 7200 FLD3, CLA 3788 005677 1755 TAD I (FLD4 3789 005700 7000 NOP 3790 005701 6201 CDF 3791 005702 1354 TAD (-FLD3 3792 005703 7640 SZA CLA 3793 005704 5313 JMP FLD5 3794 005705 1052 TAD IOMON 3795 005706 1154 TAD [-200 3796 005707 7650 SNA CLA /IS FIELD THERE? 3797 005710 5673 JMP I FLD2 /YES--RETURN-- 3798 005711 1176 TAD [200 3799 005712 3052 DCA IOMON 3800 005713 2273 FLD5, ISZ FLD2 /NO-INCREMENT RETURN ADDRESS 3801 005714 5673 JMP I FLD2 /--RETURN-- 3802 3803 005715 0052 FLD4, IOMON 3804 /OVERLAY CODE FOR OPTIMAL SYMBOL TABLE SEARCH 3805 /IN 8K 3806 IFZERO HASH< 3807 3808 OPTIM1, OPTIMA 3809 OPTIM2, SETFLD+1 3810 OPTIM3, -7 3811 3812 OPTIM5, OPTIMB 3813 OPTIM6, GETTG5 3814 OPTIM7, -21 3815 3816 OPTIMA, RELOC SETFLD+1 3817 3818 CLL CMA RTL 3819 TAD STM202 3820 DCA TAGXR 3821 CDF 10 3822 JMP I SETFLD 3823 STM202, -202 3824 SETFL4, 4 3825 RELOC 3826 3827 OPTIMB, RELOC GETTG5 3828 3829 TAD HIGHTG 3830 JMS SETFLD 3831 TAD TAGXR 3832 DCA XREG1 3833 TAD XREG1 3834 TAD SETFL4 3835 DCA XREG2 3836 TAD THISTG 3837 JMS SETFLD 3838 OPTIML, TAD I XREG2 3839 DCA I XREG1 3840 TAD XREG1 3841 CIA 3842 TAD TAGXR 3843 SZA CLA 3844 JMP OPTIML 3845 CDF 3846 RELOC 3847 > 3848 /OVERLAY CODE FOR DDT SYMBOL TABLE PRINT 3849 3850 DSWIT2, IFZERO HASH< 3851 RELOC SYMPR9-2 3852 JMP SYMPRE 3853 SYMPRD, TAD SYM204 3854 JMS I OERROR 3855 TAD [377 3856 JMS I OERROR 3857 JMS SYMPRC 3858 DCA LINCNT 3859 JMP I SYMPRT 3860 SYMPRC, 0 3861 TAD [-200 3862 DCA SYMPR2 3863 TAD [200 3864 JMS I OERROR 3865 ISZ SYMPR2 3866 JMP .-3 3867 JMP I SYMPRC 3868 RELOC 3869 > 3870 IFNZRO HASH< 3871 RELOC SYMDDT 3872 001254* 2057 ISZ THISTG 3873 001255* 5217 JMP SYMLUP 3874 001256* 1275 SYMXIT, TAD SYM204 3875 001257* 4450 JMS I OERROR 3876 001260* 1122 TAD [377 3877 001261* 4450 JMS I OERROR 3878 001262* 4265 JMS DDTLDR 3879 001263* 3061 DCA LINCNT 3880 001264* 5600 JMP I SYMPRT 3881 001265* 0000 DDTLDR, 0 3882 001266* 1154 TAD [7600 3883 001267* 3062 DCA SYMCCT 3884 001270* 1176 TAD [200 3885 001271* 4450 JMS I OERROR 3886 001272* 2062 ISZ SYMCCT 3887 001273* 5270 JMP .-3 3888 001274* 5665 JMP I DDTLDR 3889 001275* 0204 SYM204, 204 3890 RELOC 3891 > 3892 DSWITB= . 3893 005754 2102 PAGE 005755 5715 005756 5676 005757 7524 005760 7531 005761 6000 005762 1302 005763 0512 005764 1303 005765 7771 005766 2277 005767 0004 005770 7645 005771 0005 005772 7772 005773 0070 005774 7777 005775 4303 005776 7643 005777 7757 3894 006000 6212 BEGING, CIF 10 3895 006001 4452 JMS I IOMON /CALL THE USR 3896 006002 0012 12 /TO FIND OUT DSK: 3897 006003 0423 BEGINJ, TEXT /DSK/ 006004 1300 3898 006005 7201 7201 /DUMMY 3899 006006 7402 HLT /NEVER! 3900 /V3C TAD BEGINJ+1 /GET DEVICE NUMBER OF DSK: 3901 /V3C DCA CC7 /AND SET IT 3902 006007 1204 TAD BEGINJ+1 3903 006010 3772 DCA I BEGINL /AND SET IT INTO "PALBIN" 3904 006011 6211 CDF 10 3905 006012 1740 TAD I CC1 /GET PARAMETER WORD 1 3906 006013 6201 CDF 3907 006014 7106 CLL RTL /OPTION /B INTO LINK 3908 006015 0127 AND [400 /IS IT /F? 3909 006016 7640 ZF7650, SZA CLA 3910 006017 3744 DCA I CCX1 /YES: /F => NO 0 FILL 3911 006020 7420 ZB7430, SNL /IS IT /B? 3912 006021 5224 JMP .+3 3913 006022 1345 TAD CCX2 3914 006023 3746 DCA I CCX3 /YES: /B => ! IS SHIFT 3915 006024 6211 CDF 10 3916 006025 1740 TAD I CC1 /GET WORD 1 AGAIN 3917 006026 6201 CDF 3918 006027 0176 AND [200 /IS IT /E? 3919 006030 7650 ZE7640, SNA CLA 3920 006031 5234 JMP .+3 3921 006032 1353 TAD CCX8 3922 006033 3747 DCA I CCX4 /YES: /E => SET 'LG' ERROR 3923 006034 6211 CDF 10 3924 006035 1750 TAD I CCX5 /GET WORD 2 THIS TIME 3925 006036 6201 CDF 3926 006037 7006 RTL 3927 006040 7700 ZO7710, SMA CLA /IS IT /O? 3928 006041 5244 JMP .+3 3929 006042 3751 DCA I CCX6 /YES: /O => NO 200 ORG 3930 006043 2752 ISZ I CCX7 3931 006044 6211 CDF 10 3932 006045 1740 TAD I CC1 /GET WORD 1 AGAIN 3933 006046 0341 AND CC2 /IS IT /C? 3934 006047 7650 SNA CLA 3935 006050 5742 JMP I CC3 /NO: TRY FOR /L OR /G 3936 006051 1743 TAD I CC4 /CREF FILE SPECIFIED? 3937 006052 7640 SZA CLA 3938 006053 5262 JMP CC5 /YES 3939 006054 1354 CC6, TAD CC7 /NO: GIVE "CREFLS.TM" 3940 006055 3743 DCA I CC4 3941 006056 2254 ISZ CC6 3942 006057 2343 ISZ CC4 3943 006060 2270 ISZ CC8 3944 006061 5254 JMP CC6 3945 006062 6201 CC5, CDF 3946 006063 6212 CIF 10 3947 006064 7201 CLA IAC 3948 006065 4452 JMS I IOMON /LOOKUP "CREF.SV" 3949 006066 0002 2 3950 006067 6161 CC13, CC9 /POINT TO NAME - BACK WITH START 3951 006070 7773 CC8, -5 /LENGTH GOES HERE 3952 006071 5321 JMP CC16 /NOT FOUND! 3953 006072 1336 TAD CC30 3954 006073 4737 JMS I CC31 /CHECK TYPE FILE 3955 006074 7700 SMA CLA 3956 006075 5321 JMP CC16 /NOT DIRECTORY IS ERROR 3957 006076 1330 TAD CC12 3958 006077 3727 DCA I CC121 /CSWITC=TAD I [7605 3959 006100 1332 TAD CC11 3960 006101 3731 DCA I CC111 /CSWIT1=CLA 3961 006102 1334 TAD CC10 3962 006103 3733 DCA I CC101 /CSWIT2=DCA BINSRT 3963 006104 3724 DCA I CC171 /CMOVE=0 3964 006105 1267 TAD CC13 3965 006106 3726 DCA I CC131 /CHAIN="CREF.SV" 3966 006107 3725 DCA I CC141 /LSWITC=0 3967 006110 1336 TAD CC30 3968 006111 3735 DCA I CC301 /NOPA22=7612 3969 006112 3765 DCA I CC20 /"BEGIAB"=0 3970 006113 1366 TAD CC21 3971 006114 3767 DCA I CC211 /"DIRSW1"=TAD [177 3972 006115 1370 TAD CC22 3973 006116 3771 DCA I CC221 /"PTPSW1"=TAD [232 3974 006117 5720 JMP I .+1 3975 006120 2200 CCC /KEEP GOING (SIGH) 3976 3977 006121 4542 CC16, JMS I [ERROR 3978 006122 4346 CF /OPTION /C ERROR 3979 006123 5742 JMP I CC3 /TRY FOR /L OR /G 3980 006124 7252 CC171, SWAPR2+CMOVE 3981 006125 4457 CC141, LSWITC 3982 006126 4501 CC131, CHAIN 3983 006127 4463 CC121, CSWITC 3984 006130 1521 CC12, TAD I [7605 3985 006131 4010 CC111, CSWIT1 3986 006132 7200 CC11, CLA 3987 006133 7266 CC101, SWAPR2+CSWIT2 3988 006134 3073 CC10, DCA BINSRT 3989 006135 7226 CC301, SWAPR2+NOPA22 3990 006136 7612 CC30, 7612 3991 006137 5600 CC31, OTYPE 3992 006140 7643 CC1, MPARAM 3993 006141 1000 CC2, 1000 3994 006142 2066 CC3, BEGINH 3995 006143 7612 CC4, 7612 3996 3997 006144 2627 CCX1, TEXT4X /V3C 3998 006145 3661 CCX2, OP3 3999 006146 3155 CCX3, OPEXPL 4000 006147 3514 CCX4, LGERR 4001 006150 7644 CCX5, MPARAM+1 4002 006151 0435 CCX6, FIELDY+1 4003 006152 0436 CCX7, FIELDY+2 4004 006153 4471 CCX8, JMS I PERROR 4005 4006 006154 0001 CC7, 1 4007 006155 0322 FILENAME CREFLS.TM 006156 0506 006157 1423 006160 2415 4008 006161 0322 CC9, FILENAME CREF.SV 006162 0506 006163 0000 006164 2326 4009 4010 006165 1012 CC20, BEGIAB 4011 006166 1155 CC21, TAD [177 4012 006167 7277 CC211, SWAPR2+DIRSW1 4013 006170 1112 CC22, TAD [232 4014 006171 7300 CC221, SWAPR2+PTPSW1 4015 4016 006172 2134 BEGINL, PALBIN 4017 PAGE 4018 /*********************************************************************** 4019 /SYMBOL TABLE 4020 /MOVED BY ASSEMBLER TO FIELD 1 4021 /MUST REMAIN IN ALPHABETICAL ORDER 4022 /*********************************************************************** 4023 4024 006200 5777 SYMS, 5777 /TERMINATOR 4025 006201 3777 3777 /IMPOSSIBLE (LIMITING) SYMBOL 4026 006202 5777 5777 4027 006203 0000 0000 4028 IFNZRO HASH< /PSEUDO OPS MUST GO FIRST FOR EXPUNGE 4029 006204 6515 "I-300^45+4000+2000 /I 4030 006205 0000 0 4031 006206 0000 0 4032 006207 0400 0400 4033 4034 006210 5121 "P-300^45+"A-300+4000 /PAUSE 4035 006211 1434 "U-300^45+"S-300 4036 006212 4271 "E-300^45+4000 4037 006213 0361 PAUSEX 4038 4039 006214 5121 "P-300^45+"A-300+4000 /PAGE 4040 006215 0410 "G-300^45+"E-300 4041 006216 4000 4000 4042 006217 0437 PAGEX 4043 4044 006220 5351 "T-300^45+"E-300+4000 /TEXT 4045 006221 1614 "X-300^45+"T-300 4046 006222 4000 4000 4047 006223 2601 TEXTX 4048 4049 006224 5237 "R-300^45+"E-300+4000 /RELOC 4050 006225 0713 "L-300^45+"O-300 4051 006226 4157 "C-300^45+4000 4052 006227 5466 RELOCY 4053 4054 006230 5056 "O-300^45+"C-300+4000 /OCTAL 4055 006231 1345 "T-300^45+"A-300 4056 006232 4674 "L-300^45+4000 4057 006233 0210 OCTALX 4058 4059 006234 5025 "N-300^45+"O-300+4000 /NOPUNCH 4060 006235 1145 "P-300^45+"U-300 4061 006236 5011 "N-300^45+"C-300+4000 4062 006237 0204 NOPUNX 4063 4064 4065 006240 4523 "I-300^45+"F-300+4000 /IFZERO 4066 006241 1707 "Z-300^45+"E-300 4067 006242 5251 "R-300^45+"O-300+4000 4068 006243 5000 IF0 4069 006244 4523 "I-300^45+"F-300+4000 /IFNZRO 4070 006245 1040 "N-300^45+"Z-300 4071 006246 5251 "R-300^45+"O-300+4000 4072 006247 5001 IFN0 4073 4074 006250 4523 "I-300^45+"F-300+4000 /IFNDEF 4075 006251 1012 "N-300^45+"D-300 4076 006252 4277 "E-300^45+"F-300+4000 4077 006253 5051 IFND 4078 4079 006254 4523 "I-300^45+"F-300+4000 /IFDEF 4080 006255 0231 "D-300^45+"E-300 4081 006256 4336 "F-300^45+4000 4082 006257 5050 IFD 4083 4084 006260 4347 "F-300^45+"I-300+4000 /FIXTAB 4085 006261 1614 "X-300^45+"T-300 4086 006262 4047 "A-300^45+"B-300+4000 4087 006263 4253 FIXTBX 4088 4089 006264 4347 "F-300^45+"I-300+4000 /FIXMRI 4090 006265 1605 "X-300^45+"M-300 4091 006266 5243 "R-300^45+"I-300+4000 4092 006267 0464 FIXMRX 4093 4094 006270 4347 "F-300^45+"I-300+4000 /FILENAME 4095 006271 0701 "L-300^45+"E-300 4096 006272 5007 "N-300^45+"A-300+4000 4097 006273 2533 FILENX 4098 4099 006274 4347 "F-300^45+"I-300+4000 /FIELD 4100 006275 0305 "E-300^45+"L-300 4101 006276 4224 "D-300^45+4000 4102 006277 0415 FIELDX 4103 4104 006300 4321 "E-300^45+"X-300+4000 /EXPUNGE 4105 006301 1145 "P-300^45+"U-300 4106 006302 5015 "N-300^45+"G-300+4000 4107 006303 2667 EXPUNX 4108 4109 006304 4307 "E-300^45+"N-300+4000 /ENPUNCH 4110 006305 1145 "P-300^45+"U-300 4111 006306 5011 "N-300^45+"C-300+4000 4112 006307 0205 ENPUNX 4113 4114 006310 4303 "E-300^45+"J-300+4000 /EJECT 4115 006311 0274 "E-300^45+"C-300 4116 006312 5344 "T-300^45+4000 4117 006313 5505 EJECTX 4118 006314 4250 "D-300^45+"T-300+4000 /DTORG 4119 006315 1075 "O-300^45+"R-300 4120 006316 4403 "G-300^45+4000 4121 006317 5400 DTORGX 4122 4123 006320 4231 "D-300^45+"E-300+4000 /DEVICE 4124 006321 1467 "V-300^45+"I-300 4125 006322 4164 "C-300^45+"E-300+4000 4126 006323 2530 DEVICX 4127 4128 006324 4231 "D-300^45+"E-300+4000 /DECIMAL 4129 006325 0170 "C-300^45+"I-300 4130 006326 4742 "M-300^45+"A-300+4000 4131 006327 0207 DECIMX 4132 > 4133 006330 5704 "Z-300^45+"B-300+4000 /ZBLOCK 4134 006331 0713 "L-300^45+"O-300 4135 006332 4172 "C-300^45+"K-300+4000 4136 006333 4130 ZBLOCX 4137 4138 006334 7702 "Z-300^45+4000+2000 /Z 4139 006335 0000 0 4140 006336 0000 0 4141 006337 0000 0000 4142 4143 006340 5604 "X-300^45+"L-300+4000 /XLIST 4144 006341 0540 "I-300^45+"S-300 4145 006342 5344 "T-300^45+4000 4146 006343 5453 XLISTY 4147 4148 006344 5367 "T-300^45+"S-300+4000 /TSK 4149 006345 0627 "K-300^45 4150 006346 0000 0 4151 006347 6045 6045 4152 4153 006350 5367 "T-300^45+"S-300+4000 /TSF 4154 006351 0336 "F-300^45 4155 006352 0000 0 4156 006353 6041 TSF 4157 4158 006354 5364 "T-300^45+"P-300+4000 /TPC 4159 006355 0157 "C-300^45 4160 006356 0000 0 4161 006357 6044 TPC 4162 4163 006360 5360 "T-300^45+"L-300+4000 /TLS 4164 006361 1277 "S-300^45 4165 006362 0000 0 4166 006363 6046 TLS 4167 4168 006364 5352 "T-300^45+"F-300+4000 /TFL 4169 006365 0674 "L-300^45 4170 006366 0000 0 4171 006367 6040 6040 4172 IFZERO HASH< 4173 "T-300^45+"E-300+4000 /TEXT 4174 "X-300^45+"T-300 4175 4000 4176 TEXTX 4177 > 4178 006370 5347 "T-300^45+"C-300+4000 /TCF 4179 006371 0336 "F-300^45 4180 006372 0000 0 4181 006373 6042 TCF 4182 4183 006374 5345 "T-300^45+"A-300+4000 /TAD 4184 006375 4224 "D-300^45+4000 4185 006376 0000 0 4186 006377 1000 TAD 0 4187 4188 006400 5331 "S-300^45+"Z-300+4000 /SZL 4189 006401 0674 "L-300^45 4190 006402 0000 0 4191 006403 7430 SZL 4192 4193 006404 5331 "S-300^45+"Z-300+4000 /SZA 4194 006405 0045 "A-300^45 4195 006406 0000 0 4196 006407 7440 SZA 4197 4198 006410 5326 "S-300^45+"W-300+4000 /SWP 4199 006411 1120 "P-300^45 4200 006412 0000 0 4201 006413 7521 7521 4202 4203 006414 5323 "S-300^45+"T-300+4000 /STL 4204 006415 0674 "L-300^45 4205 006416 0000 0 4206 006417 7120 STL 4207 4208 006420 5323 "S-300^45+"T-300+4000 /STA 4209 006421 0045 "A-300^45 4210 006422 0000 0 4211 006423 7240 STA 4212 4213 006424 5321 "S-300^45+"R-300+4000 /SRQ 4214 006425 1165 "Q-300^45 4215 006426 0000 0 4216 006427 6003 6003 4217 4218 006430 5317 "S-300^45+"P-300+4000 /SPA 4219 006431 0045 "A-300^45 4220 006432 0000 0 4221 006433 7510 SPA 4222 006434 5315 "S-300^45+"N-300+4000 /SNL 4223 006435 0674 "L-300^45 4224 006436 0000 0 4225 006437 7420 SNL 4226 4227 006440 5315 "S-300^45+"N-300+4000 /SNA 4228 006441 0045 "A-300^45 4229 006442 0000 0 4230 006443 7450 SNA 4231 4232 006444 5314 "S-300^45+"M-300+4000 /SMA 4233 006445 0045 "A-300^45 4234 006446 0000 0 4235 006447 7500 SMA 4236 4237 006450 5312 "S-300^45+"K-300+4000 /SKP 4238 006451 1120 "P-300^45 4239 006452 0000 0 4240 006453 7410 SKP 4241 4242 006454 5312 "S-300^45+"K-300+4000 /SKON 4243 006455 1071 "O-300^45+"N-300 4244 006456 0000 0 4245 006457 6000 6000 4246 4247 006460 5306 "S-300^45+"G-300+4000 /SGT 4248 006461 1344 "T-300^45 4249 006462 0000 0 4250 006463 6006 6006 4251 4252 006464 5256 "R-300^45+"T-300+4000 /RTR 4253 006465 1232 "R-300^45 4254 006466 0000 0 4255 006467 7012 RTR 4256 4257 006470 5256 "R-300^45+"T-300+4000 /RTL 4258 006471 0674 "L-300^45 4259 006472 0000 0 4260 006473 7006 RTL 4261 4262 006474 5256 "R-300^45+"T-300+4000 /RTF 4263 006475 0336 "F-300^45 4264 006476 0000 0 4265 006477 6005 6005 4266 4267 006500 5255 "R-300^45+"S-300+4000 /RSF 4268 006501 0336 "F-300^45 4269 006502 0000 0 4270 006503 6011 RSF 4271 006504 5254 "R-300^45+"R-300+4000 /RRB 4272 006505 0112 "B-300^45 4273 006506 0000 0 4274 006507 6012 RRB 4275 4276 006510 5252 "R-300^45+"P-300+4000 /RPE 4277 006511 0271 "E-300^45 4278 006512 0000 0 4279 006513 6010 6010 4280 4281 006514 5247 "R-300^45+"M-300+4000 /RMF 4282 006515 0336 "F-300^45 4283 006516 0000 0 4284 006517 6244 RMF 4285 4286 006520 5243 "R-300^45+"I-300+4000 /RIF 4287 006521 0336 "F-300^45 4288 006522 0000 0 4289 006523 6224 RIF 4290 4291 006524 5243 "R-300^45+"I-300+4000 /RIB 4292 006525 0112 "B-300^45 4293 006526 0000 0 4294 006527 6234 RIB 4295 4296 006530 5240 "R-300^45+"F-300+4000 /RFC 4297 006531 0157 "C-300^45 4298 006532 0000 0 4299 006533 6014 RFC 4300 IFZERO HASH< 4301 "R-300^45+"E-300+4000 /RELOC 4302 "L-300^45+"O-300 4303 "C-300^45+4000 4304 RELOCY 4305 > 4306 006534 5236 "R-300^45+"D-300+4000 /RDF 4307 006535 0336 "F-300^45 4308 006536 0000 0 4309 006537 6214 RDF 4310 4311 006540 5233 "R-300^45+"A-300+4000 /RAR 4312 006541 1232 "R-300^45 4313 006542 0000 0 4314 006543 7010 RAR 4315 4316 006544 5233 "R-300^45+"A-300+4000 /RAL 4317 006545 0674 "L-300^45 4318 006546 0000 0 4319 006547 7004 RAL 4320 006550 5143 "P-300^45+"S-300+4000 /PSF 4321 006551 0336 "F-300^45 4322 006552 0000 0 4323 006553 6021 PSF 4324 4325 006554 5140 "P-300^45+"P-300+4000 /PPC 4326 006555 0157 "C-300^45 4327 006556 0000 0 4328 006557 6024 PPC 4329 4330 006560 5134 "P-300^45+"L-300+4000 /PLS 4331 006561 1277 "S-300^45 4332 006562 0000 0 4333 006563 6026 PLS 4334 4335 006564 5123 "P-300^45+"C-300+4000 /PCF 4336 006565 0336 "F-300^45 4337 006566 0000 0 4338 006567 6022 PCF 4339 4340 006570 5123 "P-300^45+"C-300+4000 /PCE 4341 006571 0271 "E-300^45 4342 006572 0000 0 4343 006573 6020 6020 4344 IFZERO HASH< 4345 "P-300^45+"A-300+4000 /PAUSE 4346 "U-300^45+"S-300 4347 "E-300^45+4000 4348 PAUSEX 4349 4350 "P-300^45+"A-300+4000 /PAGE 4351 "G-300^45+"E-300 4352 4000 4353 PAGEX 4354 > 4355 006574 5076 "O-300^45+"S-300+4000 /OSR 4356 006575 1232 "R-300^45 4357 006576 0000 0 4358 006577 7404 OSR 4359 4360 006600 5073 "O-300^45+"P-300+4000 /OPR 4361 006601 1232 "R-300^45 4362 006602 0000 0 4363 006603 7000 OPR 4364 IFZERO HASH< 4365 "O-300^45+"C-300+4000 /OCTAL 4366 "T-300^45+"A-300 4367 "L-300^45+4000 4368 OCTALX 4369 > 4370 IFZERO HASH< 4371 "N-300^45+"O-300+4000 /NOPUNCH 4372 "P-300^45+"U-300 4373 "N-300^45+"C-300+4000 4374 NOPUNX 4375 > 4376 006604 5025 "N-300^45+"O-300+4000 /NOP 4377 006605 1120 "P-300^45 4378 006606 0000 0 4379 006607 7000 NOP 4380 4381 006610 4762 "M-300^45+"Q-300+4000 /MQL 4382 006611 0674 "L-300^45 4383 006612 0000 0 4384 006613 7421 7421 4385 4386 006614 4762 "M-300^45+"Q-300+4000 /MQA 4387 006615 0045 "A-300^45 4388 006616 0000 0 4389 006617 7501 7501 4390 4391 006620 4675 "L-300^45+"A-300+4000 /LAS 4392 006621 1277 "S-300^45 4393 006622 0000 0 4394 006623 7604 LAS 4395 4396 006624 4652 "K-300^45+"S-300+4000 /KSF 4397 006625 0336 "F-300^45 4398 006626 0000 0 4399 006627 6031 KSF 4400 4401 006630 4651 "K-300^45+"R-300+4000 /KRS 4402 006631 1277 "S-300^45 4403 006632 0000 0 4404 006633 6034 KRS 4405 4406 006634 4651 "K-300^45+"R-300+4000 /KRB 4407 006635 0112 "B-300^45 4408 006636 0000 0 4409 006637 6036 KRB 4410 4411 006640 4640 "K-300^45+"I-300+4000 /KIE 4412 006641 0271 "E-300^45 4413 006642 0000 0 4414 006643 6035 6035 4415 4416 006644 4632 "K-300^45+"C-300+4000 /KCF 4417 006645 0336 "F-300^45 4418 006646 0000 0 4419 006647 6030 6030 4420 006650 4632 "K-300^45+"C-300+4000 /KCC 4421 006651 0157 "C-300^45 4422 006652 0000 0 4423 006653 6032 KCC 4424 4425 006654 4577 "J-300^45+"M-300+4000 /JMS 4426 006655 5277 "S-300^45+4000 4427 006656 0000 0 4428 006657 4000 JMS 0 4429 4430 006660 4577 "J-300^45+"M-300+4000 /JMP 4431 006661 5120 "P-300^45+4000 4432 006662 0000 0 4433 006663 5000 JMP 0 4434 4435 006664 4540 "I-300^45+"S-300+4000 /ISZ 4436 006665 5702 "Z-300^45+4000 4437 006666 0000 0 4438 006667 2000 ISZ 0 4439 4440 006670 4534 "I-300^45+"O-300+4000 /IOT 4441 006671 1344 "T-300^45 4442 006672 0000 0 4443 006673 6000 IOT 4444 4445 006674 4534 "I-300^45+"O-300+4000 /ION 4446 006675 1006 "N-300^45 4447 006676 0000 0 4448 006677 6001 ION 4449 4450 006700 4534 "I-300^45+"O-300+4000 /IOF 4451 006701 0336 "F-300^45 4452 006702 0000 0 4453 006703 6002 IOF 4454 IFZERO HASH< 4455 "I-300^45+"F-300+4000 /IFZERO 4456 "Z-300^45+"E-300 4457 "R-300^45+"O-300+4000 4458 IF0 4459 4460 "I-300^45+"F-300+4000 /IFNZRO 4461 "N-300^45+"Z-300 4462 "R-300^45+"O-300+4000 4463 IFN0 4464 4465 "I-300^45+"F-300+4000 /IFNDEF 4466 "N-300^45+"D-300 4467 "E-300^45+"F-300+4000 4468 IFND 4469 > 4470 IFZERO HASH< 4471 "I-300^45+"F-300+4000 /IFDEF 4472 "D-300^45+"E-300 4473 "F-300^45+4000 4474 IFD 4475 > 4476 006704 4516 "I-300^45+"A-300+4000 /IAC 4477 006705 0157 "C-300^45 4478 006706 0000 0 4479 006707 7001 IAC 4480 IFZERO HASH< 4481 "I-300^45+4000+2000 /I 4482 0 4483 0 4484 0400 4485 > 4486 006710 4464 "H-300^45+"L-300+4000 /HLT 4487 006711 1344 "T-300^45 4488 006712 0000 0 4489 006713 7402 HLT 4490 4491 006714 4427 "G-300^45+"T-300+4000 /GTF 4492 006715 0336 "F-300^45 4493 006716 0000 0 4494 006717 6004 6004 4495 4496 006720 4417 "G-300^45+"L-300+4000 /GLK 4497 006721 0627 "K-300^45 4498 006722 0000 0 4499 006723 7204 GLK 4500 IFZERO HASH< 4501 "F-300^45+"I-300+4000 /FIXTAB 4502 "X-300^45+"T-300 4503 "A-300^45+"B-300+4000 4504 FIXTBX 4505 4506 "F-300^45+"I-300+4000 /FIXMRI 4507 "X-300^45+"M-300 4508 "R-300^45+"I-300+4000 4509 FIXMRX 4510 4511 "F-300^45+"I-300+4000 /FILENAME 4512 "L-300^45+"E-300 4513 "N-300^45+"A-300+4000 4514 FILENX 4515 4516 "F-300^45+"I-300+4000 /FIELD 4517 "E-300^45+"L-300 4518 "D-300^45+4000 4519 FIELDX 4520 > 4521 IFZERO HASH< 4522 "E-300^45+"X-300+4000 /EXPUNGE 4523 "P-300^45+"U-300 4524 "N-300^45+"G-300+4000 4525 EXPUNX 4526 4527 "E-300^45+"N-300+4000 /ENPUNCH 4528 "P-300^45+"U-300 4529 "N-300^45+"C-300+4000 4530 ENPUNX 4531 4532 "E-300^45+"J-300+4000 /EJECT 4533 "E-300^45+"C-300 4534 "T-300^45+4000 4535 EJECTX 4536 4537 "D-300^45+"T-300+4000 /DTORG 4538 "O-300^45+"R-300 4539 "G-300^45+4000 4540 DTORGX 4541 4542 "D-300^45+"E-300+4000 /DEVICE 4543 "V-300^45+"I-300 4544 "C-300^45+"E-300+4000 4545 DEVICX 4546 4547 "D-300^45+"E-300+4000 /DECIMAL 4548 "C-300^45+"I-300 4549 "M-300^45+"A-300+4000 4550 DECIMX 4551 > 4552 006724 4227 "D-300^45+"C-300+4000 /DCA 4553 006725 4045 "A-300^45+4000 4554 006726 0000 0 4555 006727 3000 DCA 0 4556 4557 006730 4174 "C-300^45+"M-300+4000 /CML 4558 006731 0674 "L-300^45 4559 006732 0000 0 4560 006733 7020 CML 4561 4562 006734 4174 "C-300^45+"M-300+4000 /CMA 4563 006735 0045 "A-300^45 4564 006736 0000 0 4565 006737 7040 CMA 4566 4567 006740 4173 "C-300^45+"L-300+4000 /CLL 4568 006741 0674 "L-300^45 4569 006742 0000 0 4570 006743 7100 CLL 4571 006744 4173 "C-300^45+"L-300+4000 /CLA 4572 006745 0045 "A-300^45 4573 006746 0000 0 4574 006747 7200 CLA 4575 4576 006750 4170 "C-300^45+"I-300+4000 /CIF 4577 006751 0336 "F-300^45 4578 006752 0000 0 4579 006753 6202 CIF 4580 4581 006754 4170 "C-300^45+"I-300+4000 /CIA 4582 006755 0045 "A-300^45 4583 006756 0000 0 4584 006757 7041 CIA 4585 4586 006760 4163 "C-300^45+"D-300+4000 /CDF 4587 006761 0336 "F-300^45 4588 006762 0000 0 4589 006763 6201 CDF 4590 4591 006764 4160 "C-300^45+"A-300+4000 /CAF 4592 006765 0336 "F-300^45 4593 006766 0000 0 4594 006767 6007 6007 4595 4596 006770 4135 "B-300^45+"S-300+4000 /BSW 4597 006771 1523 "W-300^45 4598 006772 0000 0 4599 006773 7002 7002 4600 4601 006774 4063 "A-300^45+"N-300+4000 /AND 4602 006775 4224 "D-300^45+4000 4603 006776 0000 0 4604 006777 0000 AND 0 4605 4606 007000 4001 4001 /TERMINATOR 4607 007001 0000 0000 /IMPOSSIBLE (LIMITING) SYMBOL 4608 007002 4000 4000 4609 007003 0000 0000 4610 4611 SYME=. 4612 4613 /********************************************************************** 4614 /TOP OF SYMBOL TABLE 4615 /********************************************************************** 4616 SWAP2=. 4617 4618 /********************************************************************** 4619 /CODE UNIQUE TO PASSES 1 AND 2 4620 /SWAPPED IN FOR PASSES 1 AND 2 4621 /OVERLAYED DURING PASS 3 *** NO LITERALS *** 4622 4623 RELOC 1000 /ASSEMBLED INTO 1000-1247 4624 4625 SWAPB2= . 4626 SWAPR2= SWAP2-SWAPB2 /RELOCATION FACTOR FOR THIS CODE 4627 4628 001000* 0000 OOPEN, 0 4629 001001* 1310 TAD OPEN01 /OPEN BINARY AND LISTING FILES 4630 001002* 3237 DCA XOUHND /SET ADDRESS OF DEVICE HANDLER 4631 001003* 1311 TAD OPEN02 4632 001004* 3245 DCA XOUBLK 4633 001005* 1117 TAD [-5 4634 001006* 3246 DCA XOUELE /SET NEW OUTPUT FILE LENGTH 4635 001007* 6211 CDF 10 4636 001010* 1707 TAD I OUFPTR 4637 001011* 6201 CDF 4638 001012* 3645 DCA I XOUBLK 4639 001013* 2245 ISZ XOUBLK 4640 001014* 2307 ISZ OUFPTR 4641 001015* 2246 ISZ XOUELE /INCREMENT OUTPUT FILE LENGTH 4642 001016* 5207 JMP .-7 4643 001017* 1311 TAD OPEN02 4644 001020* 7001 IAC 4645 001021* 3245 DCA XOUBLK /SET POINTER TO NEW FILENAME 4646 001022* 1245 TAD XOUBLK 4647 001023* 3712 DCA I OPEN04 4648 001024* 6212 CIF 10 4649 001025* 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 4650 001026* 0013 13 /*RESET SYSTEM TABLES* 4651 001027* 3713 DCA I OPEN05 /DELETE UNCLOSED FILES AND 4652 001030* 1711 TAD I OPEN02 /DELETE HANDLERS 4653 001031* 0111 AND [17 /GET NEW DEVICE HANDLER # 4654 001032* 7450 SNA /OUTPUT INHIBIT? 4655 001033* 5305 JMP ONOFIL /YES 4656 001034* 6212 CIF 10 /NO 4657 001035* 4452 JMS I IOMON /CALL USER SERVICE ROUTINE 4658 001036* 0001 1 /*FETCH DEVICE HANDLER* 4659 001037* 0000 XOUHND, 0 /LOADING ADDRESS 4660 001040* 7402 HLT /HANDLER NOT AVAILABLE 4661 001041* 1711 OUENTR, TAD I OPEN02 /NORMAL RETURN - GET OUTPUT 4662 001042* 6212 CIF 10 /DEVICE NUMBER AND FILE LENGTH 4663 001043* 4452 JMS I IOMON /CALL NEW SERVICE ROUTINES 4664 001044* 0003 3 /*ENTER OUTUT FILE 4665 001045* 0000 XOUBLK, 0 /POINTER TO FILENAME 4666 001046* 0000 XOUELE, 0 /FILE LENGTH 4667 001047* 5275 JMP OEFAIL /ERROR RETURN 4668 001050* 3714 DCA I OPEN06 /NORMAL RETURN 4669 001051* 4715 JMS I OPEN07 4670 001052* 1237 TAD XOUHND 4671 001053* 1176 TAD [200 /LINK IS CLEAR!! 4672 001054* 7620 SNL CLA 4673 001055* 1127 TAD [400 4674 001056* 1323 TAD OUFDEV 4675 001057* 3724 DCA I OUFINP 4676 001060* 1724 TAD I OUFINP 4677 001061* 7110 CLL RAR 4678 001062* 7041 CIA 4679 001063* 1322 TAD OU3501 4680 001064* 3066 DCA INCTL 4681 001065* 2200 ISZ OOPEN 4682 001066* 1237 TAD XOUHND 4683 001067* 3716 DCA I OPEN09 4684 001070* 1245 TAD XOUBLK 4685 001071* 3717 DCA I OPEN10 4686 001072* 1246 TAD XOUELE 4687 001073* 3720 DCA I OPEN11 4688 001074* 5600 JMP I OOPEN /--RETURN-- 4689 4690 001075* 1711 OEFAIL, TAD I OPEN02 4691 001076* 0103 AND [7760 4692 001077* 7650 SNA CLA 4693 001100* 5721 JMP I OPEN12 /DE**FATAL ERROR** 4694 001101* 1711 TAD I OPEN02 4695 001102* 0111 AND [17 4696 001103* 3711 DCA I OPEN02 4697 001104* 5241 JMP OUENTR 4698 4699 001105* 2713 ONOFIL, ISZ I OPEN05 /SET OUTPUT INHIBIT SWITCH 4700 001106* 5600 JMP I OOPEN /--RETURN-- 4701 4702 001107* 7600 OUFPTR, 7600 4703 4704 001110* 6201 OPEN01, OUDEVH+1 4705 001111* 2723 OPEN02, OUFILE 4706 001112* 2717 OPEN04, OUCNAM 4707 001113* 2510 OPEN05, OUTINH 4708 001114* 2720 OPEN06, OUCCNT 4709 001115* 2517 OPEN07, OUSETP 4710 001116* 2763 OPEN09, OUHNDL 4711 001117* 2764 OPEN10, OUBLK 4712 001120* 2765 OPEN11, OUELEN 4713 001121* 2761 OPEN12, SYSERR 4714 001122* 3501 OU3501, 3501 4715 001123* 6200 OUFDEV, OUDEVH 4716 001124* 5225 OUFINP, INBUFP 4717 /CONTINUATION OF FIXTAB HANDLER 4718 4719 FIXTAY, IFZERO HASH< 4720 TAD HIGHTG /SET POINTERS TO TABLE 4721 CMA 4722 > 4723 IFNZRO HASH< 4724 001125* 1076 TAD TAGMAX 4725 001126* 7041 CIA 4726 > 4727 001127* 3046 DCA TEMP3 4728 001130* 3057 DCA THISTG 4729 001131* 4572 FIXTAX, JMS I [FINDTG /GET A TAG 4730 001132* 7350 AC3777 4731 001133* 0020 AND TAG1 4732 IFNZRO HASH< 4733 001134* 7440 SZA 4734 > 4735 001135* 1142 TAD [4000 /SET BIT 0 OF FIRST WORD TO 1 4736 001136* 3020 DCA TAG1 /RETURN IT TO TABLE 4737 001137* 4541 JMS I [PUTTAG 4738 001140* 2057 ISZ THISTG 4739 001141* 2046 ISZ TEMP3 /DONE WITH TABLE YET? 4740 001142* 5331 JMP FIXTAX /NO 4741 001143* 5577 JMP I [LOOKEX /YES--EXIT TO MAIN-- 4742 4743 /OUTPUT ONE REGISTER - BINARY 4744 /ENTER WITH CONTENTS IN AC 4745 4746 001144* 0000 PUNOUT, 0 4747 001145* 3360 DCA PUNOU1 4748 001146* 1360 TAD PUNOU1 4749 001147* 7012 RTR 4750 001150* 7012 RTR 4751 001151* 7012 RTR 4752 001152* 0155 AND [177 4753 001153* 4447 JMS I OCHAR /OUTPUT FIRST FRAME 4754 001154* 1360 TAD PUNOU1 4755 001155* 0175 AND [77 4756 001156* 4447 JMS I OCHAR /OUTPUT SECOND FRAME 4757 001157* 5744 JMP I PUNOUT /--RETURN-- 4758 4759 PUNOU1, 4760 001160* 0000 IOPEN, 0 /SET UP INPUT ROUTINE 4761 001161* 7240 CLA CMA /TO OPEN FILE 4762 001162* 3772 DCA I IOPEN1 4763 001163* 2773 ISZ I IOPEN2 4764 001164* 1374 TAD IOPEN3 4765 001165* 3775 DCA I IOPEN4 4766 001166* 2776 ISZ I IOPEN5 4767 001167* 1167 TAD [LINBUF+120 4768 001170* 3037 DCA TXTPTR 4769 001171* 5760 JMP I IOPEN /--RETURN-- 4770 4771 001172* 5274 IOPEN1, INCHCT 4772 001173* 5275 IOPEN2, INEOF 4773 001174* 7617 IOPEN3, 7617 4774 001175* 5301 IOPEN4, INFPTR 4775 001176* 3755 IOPEN5, FORMSW 4776 PAGE 4777 /START PASS 2 *** NO LITERALS HERE EITHER *** 4778 4779 001200* 1142 START1, TAD [ERROR 4780 001201* 3071 DCA PERROR /RESET PREUDO-ERROR ROUTINE 4781 001202* 4706 JMS I ST1OPN /OPEN PASS 2 OUTPUT FILE 4782 001203* 5212 JMP NOPA21 /NO PASS 2 IF PASS 3 4783 001204* 1707 NOPA23, TAD I ST1OBL 4784 001205* 3073 DCA BINSRT 4785 001206* 3025 DCA PUNCHX /CLEAR PUNCH INHIBIT 4786 001207* 4223 JMS START3 4787 001210* 5611 JMP I .+1 4788 001211* 4400 START2-1 4789 4790 001212* 6211 NOPA21, CDF 10 4791 001213* 1622 TAD I NOPA22 /IS THERE A PASS 3? 4792 001214* 6201 CDF 4793 001215* 7650 SNA CLA 4794 001216* 5204 JMP NOPA23 /NO - DO PASS 2 4795 001217* 2051 ISZ PASS /SKIP PASS 2 4796 001220* 7000 NOP 4797 001221* 5243 JMP NOPAS2 /CONTINUE TO PASS 3 4798 4799 001222* 7605 NOPA22, 7605 4800 4801 001223* 0000 START3, 0 /GENERATE LEADER/TRAILER 4802 001224* 1233 TAD LEADER 4803 001225* 3037 DCA TXTPTR 4804 001226* 1176 TAD [200 4805 001227* 4447 JMS I OCHAR 4806 001230* 2037 ISZ TXTPTR 4807 001231* 5226 JMP .-3 4808 001232* 5623 JMP I START3 /--RETURN-- 4809 4810 001233* 7770 LEADER, -10 4811 /END PASS 2 4812 4813 001234* 4562 ENDPA2, JMS I [DUMPZ /DUMP PAGE 0 LITERALS 4814 001235* 3025 DCA PUNCHX 4815 001236* 7100 CLL /V3C 4816 001237* 1055 TAD CHKSUM /OUTPUT CHECKSUM 4817 001240* 4525 JMS I [PUNOUT /PUNCH THE CHECKSUM 4818 001241* 4223 JMS START3 /GENERATE LEADER/TRAILER 4819 001242* 4701 JMS I EN2CLS /CLOSE PASS 2 OUTPUT FILE 4820 001243* 1302 NOPAS2, TAD EN2LSO 4821 001244* 3050 DCA OERROR /SET NEW OUTPUT TO BE LISTING 4822 001245* 2703 ISZ I EN2OU1 4823 001246* 5256 CMOVE, JMP CMOVA /ZEROED IF /C 4824 001247* 6211 CDF 10 /MOVE CODE FOR /C OPTION 4825 001250* 1675 CMOVB, TAD I CMOV1 4826 001251* 3676 DCA I CMOV2 /MOVE OUTPUT FILE STORAGE 4827 001252* 2275 ISZ CMOV1 4828 001253* 2276 ISZ CMOV2 4829 001254* 2277 ISZ CMOV3 4830 001255* 5250 JMP CMOVB /LOOP 4831 001256* 6201 CMOVA, CDF 4832 001257* 4706 JMS I ST1OPN /OPEN 3RD PASS FILE 4833 001260* 3700 DCA I CMOV4 /NO 3RD PASS 4834 001261* 1707 TAD I ST1OBL /GET FILE START 4835 001262* 7200 CSWIT2, CLA /"DCA BINSRT" IF /C 4836 001263* 1274 TAD PTPSW1 4837 001264* 3704 DCA I EN2PTP /RESET PAPERTAPE SWITCH 4838 001265* 1273 TAD DIRSW1 4839 001266* 3705 DCA I EN2DIR /RESET DIRECTORY SWITCH 4840 001267* 4672 JMS I PIOPEN 4841 001270* 5671 JMP I .+1 4842 001271* 4521 LOADOV /OVERLAY THIS AREA WITH PASS3 CODE 4843 4844 001272* 1160 PIOPEN, IOPEN 4845 001273* 1155 DIRSW1, TAD [177 4846 001274* 1112 PTPSW1, TAD [232 4847 4848 001275* 7605 CMOV1, 7605 4849 001276* 7600 CMOV2, 7600 4850 001277* 7766 CMOV3, -12 4851 001300* 4526 CMOV4, NSWITC 4852 001301* 2673 EN2CLS, OCLOSE 4853 001302* 1000 EN2LSO, LISOUT 4854 001303* 2400 EN2OU1, OUTPT1 4855 001304* 2677 EN2PTP, PTPSW 4856 001305* 2703 EN2DIR, DIRSW 4857 001306* 1000 ST1OPN, OOPEN 4858 001307* 2764 ST1OBL, OUBLK 4859 SWAPE2, RELOC 4860 IFNZRO ENDOVL-SWAPE2&4000 4861 PAGE 4862 IFNZRO HASH< 4863 4864 /ONCE ONLY CODE TO HASH OUT THE PERMANENT SYMBOLS 4865 4866 007400 0000 HSHSMS, 0 4867 007401 4777 JMS I (7607 /WRITE THE SYMBOL TABLE SORT OVERLAY 4868 007402 4210 4210 /2 PAGES FROM FIELD 1 4869 007403 6600 OUDEVH+400 /FROM HERE 4870 007404 0041 ASWAP+1 /TO HERE 4871 007405 5776 JMP I (SYSERR/WONDERFUL. 4872 007406 1775 TAD I (USROFS 4873 007407 7640 SZA CLA /SZA IF KICKING OUT USR 4874 007410 1374 TAD (12 /ELSE FUDGE POINTER 4875 007411 1773 TAD I (HIFLD /FIRST SET HASH TABLE SIZE 4876 007412 1324 TAD PRIMES /ACCORDING TO CORE SIZE 4877 007413 3076 DCA PRIME 4878 007414 1476 TAD I PRIME 4879 007415 3076 DCA PRIME 4880 007416 1076 TAD PRIME 4881 007417 7041 CIA 4882 007420 3772 DCA I (MPRIME 4883 007421 1775 TAD I (USROFS 4884 007422 7640 SZA CLA 4885 007423 5232 JMP KPUSR /JMP IF KEEPING USR 4886 007424 6211 CDF 10 /SERVE NOTICE WE'RE OCCUPYING FIELD 1 4887 007425 7344 AC7776 4888 007426 0771 AND I (JSBITS 4889 007427 3771 DCA I (JSBITS 4890 007430 1157 TAD [7700 4891 007431 3052 DCA IOMON /AND POINT AT PROPER MONITOR E.P. 4892 007432 6201 KPUSR, CDF 4893 007433 1772 TAD I (MPRIME /HOW MANY SLOTS TO WIPE 4894 007434 3016 DCA LAST3 /TO COUNTER 4895 007435 1775 TAD I (USROFS 4896 007436 7106 CLL RTL 4897 007437 1370 TAD (7777 /FUDGE THE INITIAL AUTO XR 4898 007440 5251 JMP CLRGO /INTO THE LOOP NOW 4899 007441 1014 CLRLUP, TAD LAST1 4900 007442 1367 TAD (-7577 4901 007443 7640 SZA CLA /SZA IF NEED TO DO NEXT FIELD 4902 007444 5253 JMP CLCDF0+1/ELSE CLEAR ANOTHER 4903 007445 1366 TAD (10 4904 007446 1252 TAD CLCDF0 4905 007447 3252 DCA CLCDF0 /CDF INSTR GETS BUMPED 4906 007450 7240 STA 4907 007451 3014 CLRGO, DCA LAST1 /XRGETS SET 4908 007452 6211 CLCDF0, CDF 10 /INITIALLY CDF 10 4909 007453 3414 DCA I LAST1 4910 007454 3414 DCA I LAST1 4911 007455 3414 DCA I LAST1 4912 007456 3414 DCA I LAST1 4913 007457 2016 ISZ LAST3 /SKP IF NO MORE 4914 007460 5241 JMP CLRLUP /ELSE DO ANOTHER 4915 007461 6201 CDF /THE TABLE IS CLEAN 4916 007462 1365 TAD (HSHRTN 4917 007463 3545 DCA I [GETTAG 4918 007464 7240 STA 4919 007465 3060 DCA HIGHTG /HIGHTG=CURRENT SYMBOL INDEX 4920 007466 1364 TAD (SYMS+3 /USE THESE AUTO XR'S NOW 4921 007467 3014 DCA LAST1 4922 007470 1014 TAD LAST1 4923 007471 3015 DCA LAST2 4924 007472 1414 HSHLP, TAD I LAST1 4925 007473 0171 AND [1777 /FIRST, STRIP THE TYPE BITS 4926 007474 3763 DCA I (NAME1 4927 007475 7350 AC3777 4928 007476 0414 AND I LAST1 4929 007477 3767 DCA I (NAME2 4930 007500 7350 AC3777 4931 007501 0414 AND I LAST1 4932 007502 3762 DCA I (NAME3 4933 007503 2014 ISZ LAST1 /SKIP THE VALUE 4934 007504 5761 JMP I (GETTGH /GO FIND IT'S PLACE 4935 007505 7300 HSHRTN, CLA CLL 4936 007506 1415 TAD I LAST2 4937 007507 3763 DCA I (NAME1 4938 007510 1415 TAD I LAST2 4939 007511 3767 DCA I (NAME2 4940 007512 1415 TAD I LAST2 4941 007513 3762 DCA I (NAME3 4942 007514 1415 TAD I LAST2 4943 007515 3035 DCA VALUE2 4944 007516 4760 JMS I (INSRTG /AND STORE IT 4945 007517 1014 TAD LAST1 4946 007520 1357 TAD (1-SYME+4 4947 007521 7640 SZA CLA 4948 007522 5272 JMP HSHLP /LOOP IF MORE TO GO 4949 007523 5600 JMP I HSHSMS /--RETURN-- 4950 4951 007524 7524 PRIMES, . 4952 007525 1737 1737 /1 FIELD 4953 007526 3673 3673 /2 FIELDS 4954 007527 5633 5633 /3 FIELDS 4955 007530 7577 7577 /4 FIELDS 4956 007531 7775 7775 /5 FIELDS (THE LAST MOSTELY WASTE) 4957 BPRIMES=.-1 /ALTERNATE TABLE SIZE FOR BATCH COMPATABILITY 4958 007532 1737 1737 /1 FIELD (MEANS NO BATCH) 4959 007533 3133 3133 /2 FIELDS 4960 007534 5075 5075 /3 FIELDS 4961 007535 7035 7035 /4 FIELDS 4962 007536 7775 7775 /5 FIELDS (SOME OF WASTE FOR BATCH) 4963 4964 007537 1335 1335 /STILL ANOTHER ALTERNATE SET IF KEEPING USR 4965 007540 3273 3273 4966 007541 5237 5237 4967 007542 7175 7175 4968 007543 7775 7775 4969 4970 007544 0000 0 4971 007545 2535 2535 4972 007546 4465 4465 4973 007547 6437 6437 4974 007550 7775 7775 4975 4976 007557 1001 PAGE 007560 4200 007561 0237 007562 0202 007563 0200 007564 6203 007565 7505 007566 0010 007567 0201 007570 7777 007571 7746 007572 0332 007573 5672 007574 0012 007575 4303 007576 2761 007577 7607 4977 > 4978 /************************************************************** 4979 /PAGE 0 LITERALS 4980 /************************************************************** 4981 IFNZRO HASH< 4982 4983 /SYMBOL TABLE SORT OVERLAY 4984 /ONLY SWAPPED IF TABLE WILL BE LISTED 4985 4986 /FIRST, SOME EQUATES 4987 4988 PPUTTAG= [PUTTAG 4989 PFINDTG= [FINDTG 4990 O1777= [1777 4991 O7774= [7774 4992 4993 SXR= XREG1 4994 TXR= XREG2 4995 SXR2= LAST1 4996 TXR2= LAST2 4997 UXR= LAST3 4998 DXR= LAST4 4999 5000 BEG= LOC 5001 END= OFFSET 5002 LO= OFSBUF 5003 HI= STARSW 5004 MED= OP 5005 5006 000102 2123 FIELD 1 /SET THE FIELD NOW 000103 7760 000104 7761 000105 5136 000106 7525 000107 7502 000110 0750 000111 0017 000112 0232 000113 1400 000114 7522 000115 0100 000116 0040 000117 7773 000120 7400 000121 7605 000122 0377 000123 1332 000124 2002 000125 1144 000126 0735 000127 0400 000130 0260 000131 7730 000132 1450 000133 7774 000134 0215 000135 1032 000136 0211 000137 7563 000140 1620 000141 5100 000142 4000 000143 4200 000144 5115 000145 0212 000146 5070 000147 5155 000150 5545 000151 1742 000152 0756 000153 4541 000154 7600 000155 0177 000156 4044 000157 7700 000160 0007 000161 3200 000162 4147 000163 4062 000164 0352 000165 0240 000166 0600 000167 1740 000170 7540 000171 1777 000172 4304 000173 5146 000174 0605 000175 0077 000176 0200 000177 3033 5007 *OUDEVH+400 /IT GOES HERE 5008 5009 016600 0000 SORTAB, 0 /FIRST LOC IN PAGE 5010 016601 1076 TAD TAGMAX 5011 016602 7041 CIA 5012 016603 3043 DCA TEMP /TEMP=#CELLS TO SCAN 5013 5014 /DEFLATE TABLE PRIOR TO SORTING AND LISTING IT 5015 /OUT WITH EMPTIES AND PERMANENTS 5016 5017 016604 3060 DCA HIGHTG /TARGET POINTER 5018 016605 3045 DCA TEMP2 /SOURCE POINTER 5019 016606 1045 DEFLP, TAD TEMP2 5020 016607 3057 DCA THISTG 5021 016610 4572 JMS I PFINDTG /GET THE NEXT STAB CELL 5022 016611 1020 TAD TAG1 5023 016612 7104 CLL RAL 5024 016613 7670 SNA SZL CLA /AND THERE BUT NOT FIXED? 5025 016614 5232 JMP DEFNUL /NO, DON'T STORE IT 5026 016615 1171 TAD O1777 /YES,DISCARD THE TYPE BITS NOW 5027 016616 0020 AND TAG1 5028 016617 3020 DCA TAG1 5029 016620 7350 AC3777 5030 016621 0021 AND TAG2 5031 016622 3021 DCA TAG2 5032 016623 7350 AC3777 5033 016624 0022 AND TAG3 5034 016625 3022 DCA TAG3 5035 016626 1060 TAD HIGHTG 5036 016627 3057 DCA THISTG 5037 016630 4541 JMS I PPUTTAG 5038 016631 2060 ISZ HIGHTG 5039 016632 2045 DEFNUL, ISZ TEMP2 5040 016633 2043 ISZ TEMP /TRY AGAIN 5041 016634 5206 JMP DEFLP 5042 016635 4777 JMS I (SORT /NOW SORT THEM 5043 016636 5600 JMP I SORTAB /EXIT TO PRTSTAB 5044 /MOVE A SYMBOL THRU THE TABLE 5045 5046 016637 0000 SMOV, 0 5047 016640 1014 TAD SXR2 /GET SOURCE DF+XREG 5048 016641 4262 JMS GETFLD 5049 016642 3252 DCA SMVCD1 5050 016643 1013 TAD TXR 5051 016644 3012 DCA SXR 5052 016645 1015 TAD TXR2 5053 016646 4262 JMS GETFLD 5054 016647 3254 DCA SMVCD2 5055 016650 1133 TAD O7774 5056 016651 3305 DCA SSWT 5057 016652 0000 SMVCD1, 0 5058 016653 1412 TAD I SXR 5059 016654 0000 SMVCD2, 0 5060 016655 3413 DCA I TXR 5061 016656 2305 ISZ SSWT 5062 016657 5252 JMP SMVCD1 5063 016660 6201 SMVCD0, CDF 5064 016661 5637 JMP I SMOV 5065 5066 /AUXILLIARY FIELD+XREG SETTER 5067 5068 016662 0000 GETFLD, 0 5069 016663 7100 CLL 5070 016664 1776 TAD I (USROFS /IF KEEPING USR 5071 016665 3013 DCA TXR /AC=SYM NUM 5072 016666 3254 DCA SMVCD2 5073 016667 1013 TAD TXR 5074 016670 2254 ISZ SMVCD2 5075 016671 7020 CML 5076 016672 1375 TAD (-1740 5077 016673 7420 SNL 5078 016674 5270 JMP .-4 5079 016675 7106 CLL RTL 5080 016676 1374 TAD (-202 /SETS AS IN SETFLD... 5081 016677 3013 DCA TXR /TENTATIVELY SET TXR 5082 016700 1254 TAD SMVCD2 5083 016701 7106 CLL RTL 5084 016702 7004 RAL 5085 016703 1260 TAD SMVCD0 5086 016704 5662 JMP I GETFLD /EXIT WITH AC SET TO CDF INSTR 5087 /ROUTINE TO EXCHANGE SYMBOLS LO AND HI 5088 5089 016705 0000 SSWT, 0 5090 016706 1032 TAD HI 5091 016707 4262 JMS GETFLD 5092 016710 3326 DCA SWCDF1 5093 016711 1326 TAD SWCDF1 5094 016712 3336 DCA SWCDF3 5095 016713 1013 TAD TXR 5096 016714 3012 DCA SXR 5097 016715 1012 TAD SXR 5098 016716 3014 DCA SXR2 /SXR'S FOR HIGH SYMBOL 5099 016717 1031 TAD LO 5100 016720 4262 JMS GETFLD 5101 016721 3331 DCA SWCDF2 5102 016722 1013 TAD TXR 5103 016723 3015 DCA TXR2 /TXR'S FOR LOW SYMBOL 5104 016724 1133 TAD O7774 5105 016725 3237 DCA SMOV /COUNTER 5106 5107 016726 0000 SWCDF1, 0 5108 016727 1412 TAD I SXR /GET HI SYM WORD 5109 016730 3262 DCA GETFLD /HOLD IT 5110 016731 0000 SWCDF2, 0 5111 016732 1413 TAD I TXR /GET LO 5112 016733 3345 DCA SCOM /HOLD IT 5113 016734 1262 TAD GETFLD 5114 016735 3415 DCA I TXR2 /STORE HI IN LOW 5115 016736 0000 SWCDF3, 0 5116 016737 1345 TAD SCOM /NOW STORE LO 5117 016740 3414 DCA I SXR2 /IN HI 5118 016741 2237 ISZ SMOV 5119 016742 5327 JMP SWCDF1+1 5120 016743 6201 CDF 5121 016744 5705 JMP I SSWT 5122 /COMPARE SYMBOLS + SET LINK THEREBY 5123 5124 016745 0000 SCOM, 0 5125 016746 3057 DCA THISTG /AC=TAG # 5126 016747 4773 JMS I (SETFLD 5127 016750 1411 TAD I TAGXR 5128 016751 7141 CLL CIA 5129 016752 1020 TAD TAG1 5130 016753 7640 SZA CLA 5131 016754 5367 JMP SCOMRT 5132 016755 1411 TAD I TAGXR 5133 016756 7141 CLL CIA 5134 016757 1021 TAD TAG2 5135 016760 7640 SZA CLA 5136 016761 5367 JMP SCOMRT 5137 016762 1411 TAD I TAGXR 5138 016763 7141 CLL CIA 5139 016764 1022 TAD TAG3 5140 016765 7650 SNA CLA 5141 016766 7402 HLT /NEVER 5142 016767 6201 SCOMRT, CDF 5143 016770 5745 JMP I SCOM 5144 5145 016773 4257 PAGE 016774 7576 016775 6040 016776 4303 016777 7000 5146 5147 5148 5149 5150 5151 5152 5153 5154 /SORT ROUTINE HERE 5155 5156 017000 0000 SORT, 0 5157 017001 3027 DCA BEG /INITIALIZE PARTITION BOUNDS 5158 017002 7360 STA STL 5159 017003 1060 TAD HIGHTG 5160 017004 3030 DCA END /ARE THERE ANY SYMBOLS? 5161 017005 7430 SZL 5162 017006 5600 JMP I SORT /NO EXIT WITH LINK SET 5163 017007 1377 TAD (LITBF1-1+26 /OK, SET STACK NOW 5164 017010 3017 DCA DXR 5165 017011 1017 TAD DXR 5166 017012 3016 DCA UXR 5167 5168 017013 7240 SLOOP, STA 5169 017014 1371 TAD LEVEL 5170 017015 3371 DCA LEVEL 5171 017016 1027 SLOOP2, TAD BEG 5172 017017 7161 STL CIA 5173 017020 1030 TAD END 5174 017021 7470 SNA SZL 5175 017022 5361 JMP OKCOOL /END.LOS.BEG 5176 017023 7110 CLL RAR 5177 017024 1027 TAD BEG 5178 017025 3033 DCA MED /MED=BEG+(END-BEG)/2 5179 017026 1033 TAD MED 5180 017027 3057 DCA THISTG 5181 017030 4572 JMS I PFINDTG /T=A(MED) 5182 017031 1027 TAD BEG 5183 017032 3031 DCA LO /LO=BEG 5184 017033 1030 TAD END 5185 017034 3032 DCA HI /HI=END 5186 017035 1033 TAD MED 5187 017036 7041 CIA 5188 017037 1027 TAD BEG 5189 017040 7650 SNA CLA 5190 017041 5355 JMP JUSTWO /BEG.EQ.MED 5191 017042 1031 TAD LO 5192 017043 3014 DCA SXR2 5193 017044 1033 TAD MED 5194 017045 3015 DCA TXR2 5195 017046 4776 JMS I (SMOV /A(MED)=A(LO) 5196 017047 2031 BEGLP, ISZ LO 5197 017050 1031 TAD LO 5198 017051 7141 CLL CIA 5199 017052 1032 TAD HI 5200 017053 7620 SNL CLA 5201 017054 5304 JMP DONE /HI.LOS.LO 5202 017055 1031 TAD LO 5203 017056 4775 JMS I (SCOM /T.GT.A(LO) TO LINK 5204 017057 7630 SZL CLA 5205 017060 5247 JMP BEGLP /T.GT.A(LO) 5206 017061 5267 JMP ENDGO /T.LT.A(LO) 5207 017062 1031 ENDLP, TAD LO 5208 017063 7141 CLL CIA 5209 017064 1032 TAD HI 5210 017065 7620 SNL CLA 5211 017066 5304 JMP DONE /IF HI.LO.LO 5212 017067 1032 ENDGO, TAD HI 5213 017070 4775 JMS I (SCOM 5214 017071 7630 SZL CLA 5215 017072 5277 JMP SWITCH 5216 017073 7240 STA 5217 017074 1032 TAD HI 5218 017075 3032 DCA HI 5219 017076 5262 JMP ENDLP 5220 017077 4774 SWITCH, JMS I (SSWT 5221 017100 7240 STA 5222 017101 1032 TAD HI 5223 017102 3032 DCA HI 5224 017103 5247 JMP BEGLP 5225 017104 1032 DONE, TAD HI 5226 017105 3014 DCA SXR2 5227 017106 1027 TAD BEG 5228 017107 3015 DCA TXR2 5229 017110 4776 JMS I (SMOV /A(BEG)=A(HI) 5230 017111 1032 TAD HI 5231 017112 3057 DCA THISTG 5232 017113 4541 JMS I PPUTTAG /A(HI)=T 5233 017114 7344 AC7776 5234 017115 1016 TAD UXR 5235 017116 3016 DCA UXR 5236 017117 1016 TAD UXR 5237 017120 3017 DCA DXR 5238 017121 1032 TAD HI 5239 017122 7141 CLL CIA 5240 017123 1033 TAD MED 5241 017124 7630 SZL CLA 5242 017125 5337 JMP HIBIGR /DEFER HIGH FOR LATER 5243 017126 1027 TAD BEG 5244 017127 3417 DCA I DXR /DEFER LO FOR LATER 5245 017130 7240 STA 5246 017131 1032 TAD HI 5247 017132 3417 DCA I DXR 5248 017133 1032 TAD HI 5249 017134 7001 IAC 5250 017135 3027 DCA BEG 5251 017136 5213 JMP SLOOP 5252 017137 1032 HIBIGR, TAD HI 5253 017140 7001 IAC 5254 017141 3417 DCA I DXR 5255 017142 1030 TAD END 5256 017143 3417 DCA I DXR 5257 017144 7240 STA 5258 017145 1371 TAD LEVEL /CLUMSY 5259 017146 3371 DCA LEVEL 5260 017147 7340 CLL STA 5261 017150 1032 TAD HI 5262 017151 3030 DCA END 5263 017152 7420 SNL /PROTECT AGAINST WRAP AROUND 5264 017153 5361 JMP OKCOOL 5265 017154 5216 JMP SLOOP2 5266 5267 017155 1032 JUSTWO, TAD HI 5268 017156 4775 JMS I (SCOM 5269 017157 7630 SZL CLA 5270 017160 4774 JMS I (SSWT /SWITCH IF T.GT.A(HI) 5271 017161 7300 OKCOOL, CLA CLL /NOW CONSIDER PREV PARTITIONS 5272 017162 1416 TAD I UXR 5273 017163 3027 DCA BEG 5274 017164 1416 TAD I UXR 5275 017165 3030 DCA END 5276 017166 2371 ISZ LEVEL 5277 017167 5216 JMP SLOOP2 /REITERATE 5278 017170 5600 JMP I SORT /DONE, RETURN WITH A CLEAR LINK 5279 017171 0000 LEVEL, 0 5280 017174 6705 PAGE 017175 6745 017176 6637 017177 2150 5281 > 5282 /ROUTINE TO STORE THE DATE OF THE FORM DD-MMM-YY 5283 /IN THE HEADING 5284 5285 IFZERO HASH < 5286 FIELD 1 5287 *OUDEVH+400 5288 > 5289 5290 017200 0000 FMTDAT, 0 5291 017201 1777 TAD I (MDATE /PICK UP THE DATE WORD OF THE FORM MMM MDD DDD YYY 5292 017202 6201 CDF /RUN WITH DF = 0 5293 017203 7450 SNA 5294 017204 5277 JMP NODATE /EXIT IF NO DATE 5295 017205 3314 DCA DATWD /ELSE STORE DATE WORD 5296 017206 1376 TAD ("0-1 5297 017207 3713 DCA I DATPTR /SET FIRST DIGIT OF DAY 5298 017210 1314 TAD DATWD /NOW GET DAY BITS 5299 017211 7112 CLL RTR 5300 017212 7010 RAR 5301 017213 0375 AND (37 5302 017214 4301 JMS DIV10 /DO DAY DIGITS NOW 5303 017215 1374 TAD ("- 5304 017216 3713 DCA I DATPTR /STORE DASH 5305 017217 2313 ISZ DATPTR 5306 017220 1314 TAD DATWD /NOW GET MONTH BITS 5307 017221 1373 TAD (7400 /REDUCE TO ORIGIN 0 5308 017222 0373 AND (7400 5309 017223 7106 CLL RTL 5310 017224 7006 RTL 5311 017225 7004 RAL 5312 017226 3301 DCA DIV10 5313 017227 1301 TAD DIV10 5314 017230 7110 CLL RAR /GENERATE 1.5*MONTH INDEX 5315 017231 1301 TAD DIV10 5316 017232 1372 TAD (MONLST /INDEX MONTH LIST (SIXBIT) 5317 017233 3315 DCA MONPTR 5318 017234 1371 TAD (-3 5319 017235 3301 DCA DIV10 /SET 3 TIMES THRU LOOP 5320 017236 7430 SZL 5321 017237 5245 JMP MONGO /IF EVEN START AT RIGHT HALF 5322 017240 1715 MONLP, TAD I MONPTR 5323 017241 7112 CLL RTR 5324 017242 7012 RTR 5325 017243 7012 RTR 5326 017244 4251 JMS MONPUT /PUT LEFT CHAR 5327 017245 1715 MONGO, TAD I MONPTR 5328 017246 4251 JMS MONPUT /PUT RIGHT CHAR 5329 017247 2315 ISZ MONPTR 5330 017250 5240 JMP MONLP /LOOP FOR MORE 5331 017251 0000 MONPUT, 0 5332 017252 1370 TAD (40 5333 017253 0367 AND (77 5334 017254 1370 TAD (40 /CONVERT TO 7BIT 5335 017255 3713 DCA I DATPTR 5336 017256 2313 ISZ DATPTR 5337 017257 2301 ISZ DIV10 5338 017260 5651 JMP I MONPUT /RETURN TO UNPACK LOOP 5339 017261 1374 TAD ("- 5340 017262 3713 DCA I DATPTR /PUT ANOTHER DASH 5341 017263 2313 ISZ DATPTR 5342 017264 1366 TAD ("6 5343 017265 3713 DCA I DATPTR /SETUP YEAR TENS DIGIT FOR DIVIDE 5344 017266 1765 TAD I (BIPCCL 5345 017267 0364 AND (600 /GET YEAR EXTENSION FROM 600 BITS 5346 017270 7112 CLL RTR 5347 017271 7012 RTR 5348 017272 3301 DCA DIV10 5349 017273 1314 TAD DATWD /NOW GET YEAR 5350 017274 0363 AND (7 /ISOLATE IT 5351 017275 1301 TAD DIV10 /ADD EXTENSION 5352 017276 4301 JMS DIV10 /UNPACK IT 5353 017277 6203 NODATE, CIF CDF /NOW RETURN 5354 017300 5600 JMP I FMTDAT 5355 5356 017301 0000 DIV10, 0 5357 017302 2713 ISZ I DATPTR 5358 017303 1362 TAD (-12 5359 017304 7500 SMA 5360 017305 5302 JMP .-3 /REDUCE MON 10. 5361 017306 1361 TAD (12+"0 5362 017307 2313 ISZ DATPTR 5363 017310 3713 DCA I DATPTR /STORE LOW DIGIT 5364 017311 2313 ISZ DATPTR 5365 017312 5701 JMP I DIV10 /--RETURN-- 5366 5367 017313 1535 DATPTR, DATE 5368 017314 0000 DATWD, 0 5369 017315 0000 MONPTR, 0 5370 5371 017361 0272 PAGE 017362 7766 017363 0007 017364 0600 017365 7777 017366 0266 017367 0077 017370 0040 017371 7775 017372 2044 017373 7400 017374 0255 017375 0037 017376 0257 017377 7666 5372 5373 $$$$$ AC0002 7326 unreferenced AC2000 7332 AC3777 7350 AC4000 7330 AC7775 7346 AC7776 7344 ADDIND 3543 ALPHA 3103 ALPHA0 3417 ALPHA1 3400 ALPHA3 3402 ALPHA4 3466 ALPHA5 3465 ALPHA6 3437 ALPHAI 0062 ASWAP 0040 BATOUT 7400 BE 4245 BEG 0027 BEGHSW 1656 unreferenced BEGIAA 1622 BEGIAB 1012 BEGIN 1600 BEGIN1 1701 BEGIN2 1632 BEGIN4 1650 BEGIN5 2007 unreferenced BEGINA 1624 BEGINB 1662 BEGINF 5612 BEGING 6000 BEGINH 2066 BEGINJ 6003 BEGINL 6172 BEGINZ 2000 BEGIS3 2233 BEGISW 2204 BEGLP 7047 BEGSKP 1661 BINCNT 2117 BINLOP 2100 BINSRT 0073 BIPCCL 7777 BLK1 2130 BLK2 2131 unreferenced BLK3 2132 unreferenced BLKEXP 3640 BPRIME 7531 CC0070 2316 CC1 6140 CC10 6134 CC101 6133 CC11 6132 CC111 6131 CC12 6130 CC121 6127 CC13 6067 CC131 6126 CC141 6125 CC16 6121 CC171 6124 CC2 6141 CC20 6165 CC21 6166 CC211 6167 CC22 6170 CC221 6171 CC23 2255 CC231 2254 CC24 2256 CC25 2257 CC26 2260 CC27 2261 CC28 2262 CC29 2263 CC3 6142 CC30 6136 CC301 6135 CC31 6137 CC4 6143 CC5 6062 CC6 6054 CC7 6154 CC7777 2314 CC8 6070 CC9 6161 CCC 2200 CCCIF0 2317 CCHSH 2264 CCJBIT 2266 CCJLOC 2267 CCJMSB 2320 CCJWD 2265 CCOPTM 2315 CCWBIT 2271 CCWLOC 2272 CCWWD 2270 CCX1 6144 CCX2 6145 CCX3 6146 CCX4 6147 CCX5 6150 CCX6 6151 CCX7 6152 CCX8 6153 CF 4346 CHAIN 4501 CHAR 0040 CHARLV 5363 CHKSUM 0055 CKBAT 2277 CKSEV 5652 CLCDF0 7452 CLEAN 4044 CLRGO 7451 CLRLUP 7441 CMOV1 1275 CMOV2 1276 CMOV3 1277 CMOV4 1300 CMOVA 1256 CMOVB 1250 CMOVE 1246 COMMA 3121 COMMA1 3127 COMMA2 3140 CONDSW 0053 CONDTM 5100 CONEN1 3045 CONEND 3040 CRLF 1160 CRLF1 1163 CRPDEL 0331 CSWIT1 4010 CSWIT2 1262 CSWITC 4463 CTCCHK 2343 D2 4123 D3 4126 D4 2247 D5 2220 DATE 1535 DATPTR 7313 DATWD 7314 DCB 7760 DDTLDR 1265 DE 4445 DECIMX 0207 DEFLP 6606 DEFNUL 6632 DEVIC1 2543 DEVICX 2530 DF 4446 DIRSW 2703 DIRSW1 1273 DIV10 7301 DIV45 4217 DIV45A 4222 DIV45B 4241 DIV45C 4242 DIV45E 4243 DIVAND 3641 DONE 7104 DSWIT1 1555 DSWIT2 5716 DSWIT3 1710 DSWIT4 1711 DSWITA 1573 DSWITB 5740 DTORG1 1350 DTORG2 5416 DTORGX 5400 DUMPS 4062 DUMPS1 4000 DUMPS2 4147 DUMPS3 4105 DUMPS5 4044 DUMPS6 4111 DUMPZ 4147 DXR 0017 EDITPG 0042 EJECT1 5511 EJECT2 5516 EJECT3 5543 EJECT4 5533 EJECT5 5535 EJECT6 5526 EJECT7 5547 EJECTX 5505 EN2CLS 1301 EN2DIR 1305 EN2LSO 1302 EN2OU1 1303 EN2PTP 1304 END 0030 ENDCH1 3276 ENDCHK 3256 ENDCHR 5302 ENDGO 7067 ENDLP 7062 ENDOVL 1310 ENDPA1 4444 ENDPA2 1234 ENDPAS 4424 ENPUNX 0205 EQUAL 0503 EQUAL2 0557 EQUAL3 0541 ERCNT 0074 ERMSG1 4531 ERMSGS 4451 ERPLUS 4003 ERROR 4000 ERROR1 0400 ERROR3 4037 ERROR4 4041 ERROR5 0001 EXP 3200 EXP1 3221 EXP1A 3224 EXP2 3245 unreferenced EXP3 3603 EXPIND 0054 EXPINT 3461 EXPUNL 1471 EXPUNS 1507 EXPUNW 1465 EXPUNX 2667 EXPXIT 3630 FAKDLR 5356 FIELDX 0415 FIELDY 0434 FILE1 2545 FILE2 2562 FILE3 2560 FILE4 2550 FILE5 2565 FILE6 2570 FILENX 2533 FILLLP 2702 FIND0 4753 FIND01 4757 FIND02 4666 FIND03 4725 FINDS 4652 FINDS1 4766 FINDS2 4767 FINDS3 4770 FINDS4 4704 FINDS5 4746 FINDS6 4714 FINDS7 4731 FINDS9 4741 FINDSP 0756 FINDTG 4304 FINLFF 4455 FIX2 3517 FIX4 3530 FIXMD0 3513 FIXMR1 0471 FIXMR2 0474 FIXMRX 0464 FIXTAX 1131 FIXTAY 1125 FIXTBX 4253 FLD2 5673 FLD3 5676 FLD4 5715 FLD5 5713 FLDIND 0072 FMTDAT 7200 FORCHR 3753 FORM11 1152 FORM12 1127 FORM20 1107 FORM21 1113 FORM22 1067 FORM30 1072 FORM8F 1157 FORMF1 1056 FORMF3 1120 FORMF4 1123 FORMF5 1131 FORMF6 0000 FORMF7 1166 FORMF8 5564 FORMFD 1032 FORMHD 1105 FORMLN 1104 FORMM6 1156 FORMSW 3755 GETC 0605 GETC1 0632 GETC12 0707 GETC13 0715 GETC15 0721 GETC16 0703 GETC17 0705 GETC2 0631 GETC4 0647 GETC6 0637 GETC7 0607 GETC8 0657 GETC9 0710 GETCI 0063 GETFLD 6662 GETTA1 0234 GETTA2 0203 GETTA3 0333 GETTA4 0351 GETTAG 0212 GETTG1 0221 GETTGH 0237 HASH 0001 HEADER 1451 HEDCL2 1160 HEDCLR 1166 HEDLEN 0050 HI 0032 HIBIGR 7137 HIFLD 5672 HIGHTG 0060 HSHLP 7472 HSHRTN 7505 HSHSMS 7400 HSWIT1 1013 HSWIT2 1271 HSWITC 1042 IC 5143 ICHAR1 5246 ICHAR2 5250 unreferenced ICHAR3 5256 unreferenced ICMESG 5070 ID 5144 IE 5145 IF0 5000 IFD 5050 IFN0 5001 IFND 5051 IFSZA 5037 IFTST1 5024 IFTST2 5014 IFTST3 5005 IFTST4 5045 IFTST5 5026 IFTST6 5042 IFTST7 5053 IFTST8 5060 IFTST9 5012 II 5151 ILCHAR 3035 INBREC 5230 INBUF 5600 INBUFP 5225 INCHCT 5274 INCTL 0066 INCTLA 5300 INCTLW 5224 INCTR 5277 INDEVH 7200 INEOF 5275 INERRX 5270 INFPTR 5301 INGBUF 5206 INHNDL 5326 INPTR 5276 INPUT 5200 INREC 5226 INSRTG 4200 IOMON 0052 IOPEN 1160 IOPEN1 1172 IOPEN2 1173 IOPEN3 1174 IOPEN4 1175 IOPEN5 1176 IP 5160 IZ 5172 IZIND 0056 JMSPUN 4113 JSBITS 7746 JUSTWO 7155 KLOOP 3563 KNTR 0003 KPUSR 7432 LAST1 0014 LAST2 0015 LAST3 0016 LAST4 0017 LD 5444 LEADER 1233 LEVEL 7171 LG 5447 LGERR 3514 LINBUF 1620 LINCNT 0061 LININD 0070 LINK 0075 LINKSW 0067 LINPR1 0740 LINPRT 0735 LISCNT 1030 LISOU1 1015 LISOU2 1031 LISOU3 1024 LISOUT 1000 LIT 4600 LITBF1 2123 LITBF2 2023 LITBUF 1742 LITHAK 4116 LITPTR 0023 LNPRPG 0070 LO 0031 LOAD 2116 LOADOV 4521 LOC 0027 LOOKE1 3010 LOOKE2 3000 LOOKEX 3033 LSTCH1 3750 LSTCH3 3730 LSTCH4 3724 LSTCH5 3734 LSTCH6 3735 LSTCH7 3736 LSTCH9 3671 LSTCHR 3737 LSTCNT 0064 LSWITC 4457 MAIN 3011 MDATE 7666 MED 0033 MINUS 1106 MONER1 0754 MONERR 0750 MONGO 7245 MONLP 7240 MONLST 2044 MONPTR 7315 MONPUT 7251 MPARAM 7643 MPRIME 0332 MUL 3637 NAME1 0200 NAME2 0201 NAME3 0202 NOCD 1604 NODATE 7277 NOLOAD 2125 NOPA21 1212 NOPA22 1222 NOPA23 1204 NOPAS2 1243 NOPUNX 0204 NOTFND 0327 NSWITC 4526 NUMBE1 3326 NUMBE2 3301 NUMBE3 3335 NUMBE4 3323 NUMBE5 3327 NUMBER 3300 NXTFLE 5314 O1777 0171 O7774 0133 OCHAR 0047 OCHAR1 2501 OCHAR2 2476 OCHAR3 2450 unreferenced OCLOSE 2673 OCTALX 0210 OCTPR1 1330 OCTPR2 1314 OCTPR3 1331 OCTPRT 1310 OEFAIL 1075 OERROR 0050 OFFSET 0030 OFSBUF 0031 OKCOOL 7161 ONEOK 1422 ONOFIL 1105 OOPEN 1000 OP 0033 OP0 3600 OP1 3656 OP2 3644 OP3 3661 OP4 3647 OP5 3665 OP6 5435 OP6A 5442 OP6B 5450 OPEN01 1110 OPEN02 1111 OPEN04 1112 OPEN05 1113 OPEN06 1114 OPEN07 1115 OPEN09 1116 OPEN10 1117 OPEN11 1120 OPEN12 1121 OPEXPL 3155 OPTABL 3150 OPTIM4 5665 OTYPB1 2332 OTYPB2 2333 OTYPB3 2334 OTYPCR 2336 OTYPE 5600 OTYPEC 2342 OTYPEO 2323 OTYPTD 2331 OU3501 1122 OUBLK 2764 OUBUF 5600 OUCCNT 2720 OUCHLV 2503 OUCNAM 2717 OUCTLW 2754 OUDEVH 6200 OUDWCT 2515 OUELEN 2765 OUENTR 1041 OUFDEV 1123 OUFILE 2723 OUFINP 1124 OUFPTR 1107 OUHNDL 2763 OUJMP 2445 OUJMPE 2514 OUPOLD 2512 OUPTR 2513 OUREC 2756 OUSETP 2517 OUTDMP 2730 OUTINH 2510 OUTPT1 2400 OUTPT2 2516 OUTPT3 2433 OUTPUT 2401 OUTPUX 2443 OUTTLL 4504 OUTTTL 4502 OVLL7 2252 OVLL8 2253 PAGEX 0437 PAGEY 0447 PALBIN 2134 PALBIX 2133 PASS 0051 PAUSEX 0361 PDLND 1555 PDLST 1617 PDLXR 0010 PE 6045 PERIOD 3337 PERRO1 5561 PERROR 0071 PEZE 4641 PFINDT 0172 PH 6050 PHASE 0751 PIOPEN 1272 PLOAD 2273 PLSMIN 3642 POPJ 3540 PPEZE 1450 PPUTTA 0141 PRBLUP 0263 PRIME 0076 PRIMES 7524 PROBE 0272 PRTTTL 4512 PTCH 3556 PTPSW 2677 PTPSW1 1274 PTR 0002 PUNBIN 1400 PUNCHX 0025 PUNMOD 1434 PUNON1 1362 PUNON2 1371 PUNON3 1367 PUNONE 1332 PUNORG 4541 PUNOU1 1160 PUNOUT 1144 PUNVA1 5405 PUNVAL 5545 PUSHA 5115 PUSHA1 5134 PUTTAG 5100 QUOTE 3342 QUOTE1 3353 RADIX 0024 RD 6244 RELOC1 5500 RELOC2 5475 RELOCY 5466 RTL6 0600 SCOM 6745 SCOMRT 6767 SDIV45 1276 SE 6345 SETFL1 4301 SETFL2 4317 SETFLD 4257 SETFLP 4264 SLOOP 7013 SLOOP2 7016 SMIN67 1277 SMOV 6637 SMVCD0 6660 SMVCD1 6652 SMVCD2 6654 SORT 7000 SORTAB 6600 SPNOR 0352 SSWITC 4445 SSWT 6705 ST1OBL 1307 ST1OPN 1306 STAR 3047 STAR0 3052 STAR1 0454 STAR2 3075 STAR3 0452 STARSW 0032 START1 1200 START2 4401 START3 1223 SUBVER 0301 SWAP1 1000 SWAP2 7004 SWAPB2 1000 SWAPE2 1310 SWAPR2 6004 SWCDF1 6726 SWCDF2 6731 SWCDF3 6736 SWITCH 7077 SXR 0012 SXR2 0014 SYM204 1275 SYMCCT 0062 SYMDDT 1254 SYME 7004 SYMERR 1300 SYMGO 1241 SYMHND 1301 SYMHSW 1227 SYMLCT 0065 SYMLIN 1231 SYMLUP 1217 SYMNCL 1303 SYMNWP 1212 SYMNXL 1264 SYMOFL 0746 SYMOFS 1302 SYMPAG 1217 SYMPRT 1200 SYMS 6200 SYMSRT 1206 SYMTAG 0067 SYMXIT 1256 SYSER2 2766 SYSER3 2757 SYSERR 2761 TAG1 0020 TAG2 0021 TAG3 0022 TAGMAX 0076 TAGXR 0011 TEMP 0043 TEMP1 0044 TEMP2 0045 TEMP3 0046 TEXT1A 2636 TEXT2 2651 TEXT3 2614 TEXT4 2625 TEXT4X 2627 TEXT5 2660 TEXT6 2665 TEXT7 2666 TEXT8 2600 TEXT9 2633 TEXTX 2601 THISPG 0041 THISTG 0057 TOEXP 3026 TPINST 2002 TSTALN 5146 TSTALP 5155 TSTNUM 5136 TTLMSG 2353 TTLPTR 4520 TXR 0013 TXR2 0015 TXTPTR 0037 TXTSWT 0036 UNDFSW 0065 UO 6557 US 6563 USROFS 4303 UXR 0016 VALUE 0034 VALUE2 0035 VERSIO 0012 XLIST1 5462 XLIST2 5457 XLISTX 0026 XLISTY 5453 XLISTZ 5547 XOUBLK 1045 XOUELE 1046 XOUHND 1037 XREG1 0012 XREG2 0013 YESBIN 2111 ZB7430 6020 unreferenced ZBLOCX 4130 ZBLOCY 4136 ZBLOCZ 4142 ZD7640 1667 unreferenced ZE 7245 ZE7640 6030 unreferenced ZF7650 6016 unreferenced ZH7640 1654 unreferenced ZJ7640 2210 unreferenced ZK7630 5616 unreferenced ZO7710 6040 unreferenced ZT7640 1620 unreferenced ZW7640 2216 unreferenced