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