File: PAL850.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text)
/PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 1 /PAL8 V50A FOR OS/8 V50 / / / / / / / / / /COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION / AND 2015 BY W. VAN DER MARK (WVDMARK) / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 2 /1-OCT-75 MB/MB/SM/MB/RL/JR/SR DECIMAL 0062 VERSION= 50 0331 SUBVERSION= "Y OCTAL /PAL8 IS AN 8K THREE PASS ASSEMBLER DESIGNED /TO BE COMPATIBLE WITH THE OS/8 SYSTEM. /PASS 1 READS THE INPUT (SOURCE) FILE AND CONSTRUCTS /THE SYMBOL TABLE. /PASS 2 GENERATES THE BINARY (OBJECT) FILE, WHICH /MAY BE LOADED WITH THE ABSOLUTE (BINARY) LOADER. /PASS 3 GENERATES THE OCTAL SYMBOLIC ASSEMBLY /LISTING. /PAL8 IS COMPATIBLE IN MOST RESPECTS WITH PAL III, MACRO-8 /4K PAL-D, AND 8K PAL-D, AS WELL AS THE CROSS-ASSEMBLER PAL10. IFNDEF HASH<HASH=1> /DEFINE FOR HASH SYMBOL TABLE /SET HASH=0 TO GET OLD PAL8 WAY OF HANDLING SYMBOL TABLE /MAINTENANCE RELEASE CHANGES: /1. INCLUDED JIM ROTH'S HASH TABLE MODIFICATIONS /2. ALLOWED /B TO WORK PROPERLY [SEQ #2 PATCH FROM AUG '74 DSN] /3. PUT CREFLS.TM ON SYS: NOT DSK: [PATCH SEQ #3, SEP '74 DSN] /4. FIXED 7TH LEVEL CHECKSUM BIT [PATCH SEQ #7, MARCH '75 DSN] /5. ALLOWED PAL8 TO RESTART BEFORE CD EXECUTED [DSN APR '75, SEQ #8] /6. FIXED /F SO IT WORKS [PATCH SEQ #9, DSN APRIL 1975] /7. FIXED /W SO IT DOESN'T REMEMBER TOP OF PAGE [DSN OCT '75] /8. FIXED BUG RE MULTIPLE NON-RES INPUT HANDLERS /9. CHANGED VERSION # TO V10, EDIT 1, 1975 COPYRIGHT /10. ADDED DOCUMENTATION ON LOCATION OF HANDLERS AND BUFFERS /11. CORE ALLOCATION: / WITHOUT /K, ALL CORE BUT 10000-11777 USED FOR SYMBOLS / WITH /K, USES ALL CORE (AND SWAPS USR BETWEEN PASSES) / UNDER BATCH, N5000-N7777 IS RESERVED FOR BATCH RESIDENT AS WELL /12. /7 WITH HASH FEATURES PRINTS 7 COLUMN SYMBOL TABLE /13. 14-DEC-75 JR: FIXED TYPO IN /W CODE IN LITERAL DUMP ROUTINE /JR 14-APR-77 ADDED STANDARD DATE FORMAT TO HEADING /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 3 /COMMAND DECODER RULES: /*BINARY(.BN),LISTING(.LS),CREF(.LS)<SOURCE(.PA),.../OPTIONS /OPTIONS: /B BYTE SHIFT - ! IS 6 BIT SHIFT (!=^100+) /C CREF AFTER - "CREFLS.TM" CREATED IF NO CREF /D DDT TYPE SYMBOL - ONLY IF LISTING /E 'LG' ERROR - LINKS ARE ERRORS /F NO TEXT FILL - NO EXTRA 0 FILL IN 'TEXT' /G LOAD+GO AFTER - SAME AS /L, BUT /G PASSED TO ABSLDR /H NO PAGING - ONLY IF LISTING /J JUST WHAT LOADS - INHIBITS LISTING OF UNASSEMBLED CODE /K CHECK FOR MORE THAN 8K OF CORE (DEFAULT IS 8K) /L LOAD AFTER - "PAL8BN.TM" CREATED IF NO BINARY /N NO LISTING - ONLY IF LISTING /O NO 200 ORG - NO AUTOMATIC 200 ORIGIN AFTER 'FIELD' /S NO SYMBOL TABLE - ONLY IF LISTING /T CR-LF NOT FF - ONLY IF LISTING /W WIPE LITERALS - INHIBITS REMEMBERING OF LITERAL BOUNDS /PERMANENT PATCH LOCATIONS FOR THE ABOVE SWITCHES ARE SYMBOLS /OF THE FORM Z(SW)(PATCH) - E.G. ZT7640 IS THE LOC TO PATCH TO 7640 /TO REVERSE THE POLARITY OF THE "T" SWITCH. /PSEUDO-OPS: /DECIMAL RADIX TO BASE 10 /DEVICE 2 WORD DEVICE CODE /DTORG TYPESETTING TAPE ORIGIN /EJECT SKIPS TO A NEW PAGE, AND IF ANY TEXT FOLLOWS, / THAT TEXT BECOMES THE NEW HEADER LINE /ENPUNCH ENABLE PUNCHING /EXPUNGE REMOVE ALL SYMBOLS /FIELD SET FIELD /FILENAME 4 WORD FILE CODE /FIXMRI DEFINE MEMORY REFERENCE INSTRUCTION /FIXTAB MAKE ALL SYMBOLS PERMANENT /IFDEF CONDITIONAL ON DEFINITION /IFNDEF CONDITIONAL ON UNDEFINED /IFNZRO CONDITIONAL ON NON-ZERO /IFZERO CONDITIONAL ON ZERO /NOPUNCH DISABLE PUNCHING /OCTAL RADIX TO BASE 8 /PAGE RE-ORIGIN TO BEGINNING OF NEXT PAGE OR PAGE N /PAUSE ALTERNATE END-OF-FILE /RELOC ASSEMBLE FOLLOWING CODE AS IF LOC = ARG OF RELOC /TEXT 6 BIT TEXT /XLIST LISTING INHIBIT UNLESS THE XLIST IS / FOLLOWED BY AN EXPRESSION. THEN IF THE EXPRESSION / IS 0 START LISTING, OR NON-0 THEN INHIBIT LISTING /ZBLOCK RESERVE BLOCK OF ZEROS /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 4 /SYMBOL LAYOUT: / WORD 1 BIT 0=1 PERMANENT SYMBOL / BIT 1=1 "I" OR "Z" / BITS 3-11 CHARS 1 AND 2 / / WORD 2 BIT 0=1 MEMORY REFERENCE INSTRUCTION / BITS 2-11 CHARS 3 AND 4 / / WORD 3 BIT 0=1 PSEUDO-OP / BITS 2-11 CHARS 5 AND 6 / / WORD 4 BITS 0-11 OCTAL VALUE /CHARS ARE STORED AS: / A TO Z ARE 01 TO 32 / 0 TO 9 ARE 33 TO 44 / / CHAR1^45+CHAR2 /OPERATORS: /+ TWO'S COMPLEMENT ADD /- TWO'S COMPLEMENT SUBTRACT /& BOOLEAN AND /! BOOLEAN INCLUSIVE 'OR' OR BYTE SHIFT / (SPACE) DELIMITER OR INCLUSIVE OR /^ MULTIPLY (REPEATED ADDITION) /% DIVIDE (REPEATED SUBTRACTION) /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 5 /DEFINITIONS 0040 ASWAP= 40 /WATCH THIS SWAP AREA!! 7666 MDATE= 7666 /MONITOR DATE 7643 MPARAM= 7643 /COMMAND DECODER OPTION LIST 7760 DCB= 7760 /DEVICE CONTROL BLOCK 7746 JSBITS= 7746 /JOB STATUS WORD 7757 MREAD= 7757 /FOR KBM V40** 7776 SBLOCK= 7776 / " 7777 BIPCCL= 7777 /DATE EXTENSION AND BATCH IN PROG FLG IN FIELD 0 7400 BATOUT= 7400 /BATCH LOG OUTPUT ROUTINE IN BATCH RESIDENT 0070 LNPRPG= 70 /56 LINES PER PAGE 0050 HEDLEN= 50 /40 CHARACTERS IN PAGE TITLE /(MUST BE A MULTIPLE OF 8) 7344 AC7776= STA CLL RAL 7346 AC7775= STA CLL RTL 7330 AC4000= STL CLA RAR 7350 AC3777= STA CLL RAR 7332 AC2000= STL CLA RTR 7326 AC0002= STL CLA RTL /TABLE OF ERROR MESSAGE DEFINITIONS 5172 IZ= "I-240^100+"Z-240 /ILLEGAL PAGE ZERO REFERENCE 4346 CF= "C-240^100+"F-240 /CREF.SV NOT FOUND 6563 US= "U-240^100+"S-240 /UNDEFINED SYMBOL 5160 IP= "I-240^100+"P-240 /ILLEGAL PSEUDO-OP USAGE 6345 SE= "S-240^100+"E-240 /SYMBOL TABLE EXCEEDED 7245 ZE= "Z-240^100+"E-240 /PAGE ZERO EXCEEDED 6045 PE= "P-240^100+"E-240 /CURRENT PAGE EXCEEDED 5143 IC= "I-240^100+"C-240 /ILLEGAL CHARACTER 5144 ID= "I-240^100+"D-240 /ILLEGAL DEFINITION 4245 BE= "B-240^100+"E-240 /PUSH-DOWN OVERFLOW 4445 DE= "D-240^100+"E-240 /DEVICE ERROR 4446 DF= "D-240^100+"F-240 /DEVICE FULL 5444 LD= "L-240^100+"D-240 /ABSLDR.SV NOT FOUND 5145 IE= "I-240^100+"E-240 /ILLEGAL EQUATE 6050 PH= "P-240^100+"H-240 /PHASE ERROR 5151 II= "I-240^100+"I-240 /ILLEGAL INDIRECT 6244 RD= "R-240^100+"D-240 /REDEFINITION 6557 UO= "U-240^100+"O-240 /UNDEFINED ORIGIN 5447 LG= "L-240^100+"G-240 /LINK GENERATED /ABBREVIATIONS /CR/LF CARRIAGE RETURN/LINE FEED (215,212) /F/F FORM FEED (214) /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 6 /PAGE ZERO 0000 *0 000000 0015 INT, 15 000001 6232 CIF 30 /SYMBIONT CODE 000002 5001 JMP .-1 000003 0000 PTR, 0 /V3C USED BY 000004 0000 KNTR, 0 /INPUT ROUTINE 000005 0000 OCTPR1, 0 000006 0000 OCTPR3, 0 000007 0000 FORMF6, 0 /AUTOINDEX REGISTERS /PRESET FOR ONCE ONLY CODE 0010 *10 000010 1617 PDLXR, PDLST /PUSH-DOWN AUTO INDEX REGISTER 000011 0777 TAGXR, SWAP1-1 /TAG AUTO INDEX REGISTER 000012 1554 XREG1, DSWIT1-1 /GENERAL AUTO INDEX REGISTER 000013 5714 XREG2, DSWIT2-1 /GENERAL AUTO INDEX REGISTER /NOT USED AS AUTO INDEX REGISTERS /EXCEPT DURING ONCE ONLY CODE 000014 1534 LAST1, DATE-1 /LAST DEFINED SYMBOL 000015 7003 LAST2, SWAP2-1 LAST3, IFZERO HASH <SYMPRT+4-1> 000016 1211 IFNZRO HASH <SYMNWP-1> LAST4, IFZERO HASH <SYMPR9-2-1> 000017 1253 IFNZRO HASH <SYMDDT-1> 0020 *20 000020 0000 TAG1, 0 /TAG STORAGE 000021 0000 TAG2, 0 000022 0000 TAG3, 0 000023 0200 LITPTR, 200 /LITERAL POINTER 000024 0000 RADIX, 0 /7777 IF DECIMAL MODE 000025 0000 PUNCHX, 0 /NON-ZERO IF NO PUNCHING 000026 0000 XLISTX, 0 /NON-ZERO IF NO LISTING /*NOTE* PUNCHX AND XLISTX MUST BE TOGETHER /AND IN THIS ORDER 000027 0200 LOC, 200 /CURRENT LOCATION 000030 0000 OFFSET, 0 /LOCATION COUNTER OFFSET FROM "LOC" 000031 0000 OFSBUF, 0 /LOCATION COUNTER OFFSET BUFFER 000032 0000 STARSW, 0 /-1 IF NEXT ORIGIN SHOULD BE INHIBITED 000033 0000 OP, 0 /LAST OPERATOR CODE (0-6) 000034 0000 VALUE, 0 /EXPRESSION VALUE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 6-1 000035 0000 VALUE2, 0 /EXPRESSION OPERAND 000036 0000 TXTSWT, 0 /SPACE SWITCH 000037 1740 TXTPTR, LINBUF+120 /TEXT POINTER 000040 0000 CHAR, 0 /CURRENT CHARACTER 000041 0000 THISPG, 0 /OVERFLOW PAGE 000042 0000 EDITPG, 0 /EDITOR PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 7 000043 0000 TEMP, 0 /TEMPORARY REGISTERS 000044 0000 TEMP1, 0 000045 0000 TEMP2, 0 000046 0000 TEMP3, 0 000047 2401 OCHAR, OUTPUT /OUTPUT ROUTINE 000050 2323 OERROR, OTYPEO /PASS 1=OTYPEO; 2=OTYPEO; 3=LISOUT 000051 7776 PASS, -2 /-1 IF PASS 1, 0 IF PASS 2, 1 IF PASS 3 000052 0200 IOMON, 200 /USER SERVICE ROUTINES 000053 0000 CONDSW, 0 /NUMBER OF NESTED CONDITIONALS 000054 0000 EXPIND, 0 /0 IF MRI OK HERE /NOT 0 IF MRI NOT OK HERE 000055 0000 CHKSUM, 0 /BINARY CHECK SUM 000056 0000 IZIND, 0 /"I" AND "Z" INDICATOR /IF I, LEFT 6 BITS ARE NON-ZERO /IF Z, RIGHT 6 BITS ARE NON-ZERO 000057 0000 THISTG, 0 /ASSIGNED NUMBER OF CURRENT TAG 000060 0140 HIGHTG, SYME-SYMS%4-1 /ASSIGNED NUMBER OF LAST TAG 000061 0000 LINCNT, 0 /LINE COUNT 000062 0000 ALPHAI, 0 /UNDEFINED TAG INDICATOR /-1 IF UNDEFINED 000063 0000 GETCI, 0 /NOT=0 IF ONLY CARRIAGE RETURN ENDS LINE /OTHERWISE /,;, OR CARRIAGE RETURN ENDS 000064 0000 LSTCNT, 0 /TAB COUNTER 000065 0000 UNDFSW, 0 /UNDEFINED SWITCH 000066 0601 INCTL, 601 /CONTROL WORD - FOR OS/8 I/O 000067 0000 LINKSW, 0 /OFF-PAGE LINK SWITCH /0 IF NO LINK GENERATED, 0700 IF LINK 000070 0000 LININD, 0 /BACK-UP FOR LINKSW 000071 5561 PERROR, PERRO1 /DUMMY ERROR ROUTINE TO SUPPRESS CERTAIN /MESSAGES DURING PASS 1 000072 0260 FLDIND, "0 /CURRENT FIELD IN ASCII DIGIT FORM 000073 0000 VALUEX, 0 /XCODE 000074 0000 ERROR5, 0 /USED BY PACKED ASCII PRINT ROUTINE 000075 0000 BINSRT, 0 /BINARY OR LISTING STARTING 000076 0000 ERCNT, 0 /ERROR COUNTER 000077 0000 LINK, 0 /LINK COUNTER IFNZRO HASH< 000100 0000 TAGMAX, 0 /SET TO PRIME # EQ TO MAX # SYMS > 0200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 8 /STARTING ADDRESS OF PAL8 (0200) /CHAINING ADDRESS (0201) 000200 5602 NAME1, JMP I NAME3 /NAME1-NAME3 USED LATER 000201 5603 NAME2, JMP I GETTA2 /TO STORE TAGS AS THEY ARE BUILT 000202 1600 NAME3, BEGIN /V3C 000203 1604 GETTA2, NOCD /BUILDING SWITCH AND OVERFLOW PROTECT /HANDLERS FOR NOPUNCH AND ENPUNCH PSEUDO-OPS 000204 7201 NOPUNX, CLA IAC /NON-ZERO FOR NO PUNCHING 000205 3025 ENPUNX, DCA PUNCHX /ZERO FOR PUNCHING 000206 5577 JMP I [LOOKEX /--EXIT TO MAIN-- /HANDLERS FOR DECIMAL AND OCTAL PSEUDO-OPS 000207 7240 DECIMX, STA /7777 FOR DECIMAL RADIX 000210 3024 OCTALX, DCA RADIX /ZERO FOR OCTAL RADIX 000211 5577 JMP I [LOOKEX /--EXIT TO MAIN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 9 /GET A TAG ROUTINE /PICKS UP A TAG AND SEARCHES FOR IT /"THISTG" HAS NUMBER OF TAG /"VALUE2" HAS VALUE /AC=7777 ON RETURN IF TAG NOT FOUND, 0 IF FOUND 000212 0000 GETTAG, 0 000213 3200 DCA NAME1 /CLEAR BUILD AREA 000214 3201 DCA NAME2 000215 3202 DCA NAME3 000216 1176 TAD [NAME1 000217 3351 DCA GETTA4 /SET POINTER FOR BUILDING 000220 3203 DCA GETTA2 /ZERO SWITCH 000221 1040 GETTG1, TAD CHAR /GET THE CHARACTER 000222 0175 AND [77 /MAKE IT 01-32 OR 60-71 000223 1377 TAD (-32 /WAS IT A TO Z? 000224 7540 SMA SZA 000225 1376 TAD (-25 /NO - MAKE 60-71 INTO 33-44 000226 1375 TAD (32 /YES - IT IS NOW 01-32 OR 33-44 000227 2203 ISZ GETTA2 /LEFT SIDE? 000230 5333 JMP GETTA3 /YES 000231 1751 TAD I GETTA4 /NO - RIGHT SIDE 000232 3751 DCA I GETTA4 /BUILD THE WORD 000233 2351 ISZ GETTA4 /BUMP TO NEXT WORD 000234 4574 GETTA1, JMS I [GETC /GET NEXT CHARACTER 000235 4774 JMS I (TSTALN /IS IT ALPHANUMERIC? 000236 5221 JMP GETTG1 /YES - KEEP BUILDING IFZERO HASH< TAD HIGHTG /NO - GET NUMBER OF HIGHEST TAG CLL RAR /DIVIDE BY 2 DCA TEMP2 /SAVE DIFFERENCE DCA THISTG /START AT TAG ZERO CLL CML /LINK MUST BE ON INITIALLY DCA TEMP1 /GETTA4 IS POINTER TO NAME1-NAME3 /FOR DEPOSITING TAG AS IT IS BUILT /TEMP2 IS # OF TAGS TO SKIP BETWEEN CHECKS FOR MATCH /DURING BINARY SEARCHING /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 10 GETTG2, SZL /IS THISTG HIGHER THAN TAG? JMP GETTG3 /NO-LOWER GETTG4, DCA TEMP1 /CLEAR LAST TIME SWITCH SNL ISZ TEMP1 /SET LAST TIME SWITCH TO 1 TAD TEMP2 /GET # OF TAGS TO SKIP SNL CIA TAD THISTG /INCREASE OR DECREASE TAG NUMBER DCA THISTG TAD TEMP2 /GET NUMBER CLL RAR /DIVIDE BY 2 SNA /IS RESULT 0? ISZ TEMP1 /YES-BUMP LAST TIME SWITCH SNA IAC /IF RESULT WAS 1, MAKE IT 2 DCA TEMP2 /SAVE IT FOR NEXT TIME JMS I [FINDTG /GET THE TAG TAD [1777 /MASK AND TAG1 /GET WORD 1 CLL CIA TAD NAME1 /DOES IT MATCH? SZA CLA JMP GETTG2 /NO - TRY NEXT TAG AC3777 AND TAG2 /YES - GET WORD 2 CLL CIA TAD NAME2 /DOES IT MATCH? SZA CLA JMP GETTG2 /NO - TRY NEXT TAG AC3777 AND TAG3 /YES - DOES IT MATCH? CLL CIA TAD NAME3 SZA CLA JMP GETTG2 /NO - TRY NEXT TAG JMP I GETTAG /YES--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 11 GETTG3, AC7776 TAD TEMP1 /LAST TIME SWITCH = 2? SZA CLA JMP GETTG4 /NO-KEEP TRYING ISZ THISTG /YES-QUIT SEARCHING DCA VALUE2 DCA TAG1 DCA TAG2 DCA TAG3 /TAG NOT FOUND STA /AC=7777 MEANS NOT FOUND JMP I GETTAG /--RETURN-- > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 12 IFNZRO HASH< 0100 PRIME=TAGMAX GETTGH,/JMS I [TLYREF /HACK ONLY 000237 1200 TAD NAME1 /HASH OUR NAME 000240 7106 CLL RTL 000241 1201 TAD NAME2 000242 7006 RTL 000243 1202 TAD NAME3 000244 7006 RTL 000245 1200 TAD NAME1 000246 4272 JMS PROBE /NOW PROBE THE TABLE 000247 1200 TAD NAME1 /RE HASH THE NAME FOR A STEPSIZE 000250 7104 CLL RAL 000251 7006 RTL 000252 1201 TAD NAME2 000253 7100 CLL /CALC MODULO PRIME INLINE 000254 1332 TAD MPRIME 000255 7430 SZL 000256 5253 JMP .-3 000257 1100 TAD PRIME 000260 7450 SNA 000261 7001 IAC /STEPSIZE MUST BE NON ZERO! 000262 3331 DCA CRPDEL 000263 7100 PRBLUP, CLL 000264 1057 TAD THISTG /BUMP THE POINTER RANDOMLY 000265 1331 TAD CRPDEL 000266 7430 SZL /PROTECT AGAINST WRAP AROUND 000267 1332 TAD MPRIME /PROBABLY UNOPTIMAL SOLUTION 000270 4272 JMS PROBE 000271 5263 JMP PRBLUP 000272 0000 PROBE, 0 000273 7100 CLL 000274 1332 TAD MPRIME 000275 7430 SZL 000276 5273 JMP .-3 000277 1100 TAD PRIME 000300 3057 DCA THISTG /THISTG MODULO PRIME / JMS I [TLYPRB /HACK ONLY 000301 4573 JMS I [FINDTG /GO GET IT 000302 1172 TAD [1777 /MASK THE TYPE BITS OUT 000303 0020 AND TAG1 /IS THERE ONE? 000304 7450 SNA 000305 5327 JMP NOTFND /NO EXIT POINTING AT IT 000306 7041 CIA /YES, DO A COMPARE 000307 1200 TAD NAME1 000310 7640 SZA CLA 000311 5672 JMP I PROBE 000312 7350 AC3777 000313 0021 AND TAG2 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 12-1 000314 7041 CIA 000315 1201 TAD NAME2 000316 7640 SZA CLA 000317 5672 JMP I PROBE 000320 7350 AC3777 000321 0022 AND TAG3 000322 7041 CIA 000323 1202 TAD NAME3 000324 7640 SZA CLA 000325 5672 JMP I PROBE /FOUND EXIT WITH AC CLEAR 000326 5612 JMP I GETTAG 000327 7240 NOTFND, STA /NOT FOUND EXIT WITH AC SET 000330 5612 JMP I GETTAG 000331 0000 CRPDEL, 0 000332 0000 MPRIME, 0 /INITIALIZED BY ONCE ONLY CODE FOR MACHINE AT HAND > 000333 3203 GETTA3, DCA GETTA2 /SAVE CHAR 000334 1203 TAD GETTA2 000335 7106 CLL RTL /*4 000336 7004 RAL /*10 000337 1203 TAD GETTA2 /*11 000340 7006 RTL /*44 000341 1203 TAD GETTA2 /*45 000342 3751 DCA I GETTA4 /SET LEFT SIDE 000343 1351 TAD GETTA4 000344 1373 TAD (-GETTA2 000345 7640 SZA CLA /IS THIS AN OVERFLOW (>6) CHAR? 000346 7240 STA /NO - SET SWITCH TO RIGHT HALF 000347 3203 DCA GETTA2 /YES - LEAVE SWITCH AT LEFT HALF 000350 5234 JMP GETTA1 000351 0200 GETTA4, NAME1 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 13 /IGNORE SPACES ROUTINE 000352 0000 SPNOR, 0 000353 1040 TAD CHAR /GET THE CHARACTER 000354 1171 TAD [-240 /IS IT A SPACE? 000355 7640 SZA CLA 000356 5752 JMP I SPNOR /NO --RETURN-- 000357 4574 JMS I [GETC /YES - GET NEXT CHARACTER 000360 5353 JMP SPNOR+1 /LOOP /HANDLER FOR PAUSE PSEUDO-OP /END-OF-TAPE OR END-OF-FILE 000361 7330 PAUSEX, AC4000 000362 3040 DCA CHAR /SET END-OF-LINE CHARACTER 000363 1170 TAD [LINBUF+120 /REINITIALIZE TEXT POINTER 000364 3037 DCA TXTPTR 000365 7240 CLA CMA 000366 3772 DCA I (INCHCT /INDICATE EMPTY BUFFER 000367 2771 ISZ I (INEOF /SET END-OF-FILE 000370 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 000371 5275 000372 5274 000373 7575 000374 5146 000375 0032 000376 7753 000377 7746 0400 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 14 /OUTPUT 2 CHARACTER ERROR CODE 000400 0000 ERROR1, 0 000401 3074 DCA ERROR5 000402 1074 TAD ERROR5 000403 4567 JMS I [RTL6 000404 7004 RAL 000405 0175 AND [77 000406 1166 TAD [240 /CONVERT SIXBIT TO ASCII 000407 4450 JMS I OERROR /OUTPUT FIRST CHAR 000410 1074 TAD ERROR5 000411 0175 AND [77 000412 1166 TAD [240 000413 4450 JMS I OERROR /OUTPUT SECOND CHAR 000414 5600 JMP I ERROR1 /--RETURN-- /HANDLER FOR FIELD PSEUDO-OP 000415 4565 FIELDX, JMS I [SPNOR /IGNORE SPACES 000416 4564 JMS I [DUMPS /DUMP CURRENT PAGE LITERALS 000417 4563 JMS I [DUMPZ /DUMP PAGE ZERO LITERALS 000420 4562 JMS I [EXP /GET EXPRESSION 000421 1034 TAD VALUE /TRIM TO RIGHT 3 BITS 000422 0161 AND [7 000423 3072 DCA FLDIND /STORE FOR LISTING 000424 1034 TAD VALUE 000425 0160 AND [30 000426 3073 DCA VALUEX 000427 1051 TAD PASS /IS THIS PASS 2? 000430 7640 SZA CLA 000431 5240 JMP FIELDY /NO - PREPARE TO EXIT 000432 4557 JMS I [XCHANG /XCODE 000433 1072 TAD FLDIND /YES - GET FIELD NUMBER 000434 7106 CLL RTL 000435 7004 RAL /AND CHANNELS 7 AND 8 000436 1156 TAD [7700 000437 4447 JMS I OCHAR /OUTPUT FIELD SETTING 000440 4555 FIELDY, JMS I [CLEAN /CLEAN UP THINGS 000441 1176 TAD [200 /RESET ORIGIN TO 200 000442 5260 JMP STAR1 /CHANGE LAST 2 LOCATIONS TO: / CLA / JMP STAR1+1 /FOR INDAC GROUP TO OMIT RE-ORIGIN /HANDLER FOR PAGE PSEUDO-OP 000443 4564 PAGEX, JMS I [DUMPS /DUMP SAME PAGE LITERALS 000444 4777 JMS I (XLISTZ /ANY EXPRESSION? 000445 5253 JMP PAGEY /NO 000446 4562 JMS I [EXP /YES - GET EXPRESSION /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 14-1 000447 1034 TAD VALUE 000450 4567 JMS I [RTL6 000451 7004 RAL /GET PAGE NUMBER 000452 5255 JMP STAR3-1 000453 1027 PAGEY, TAD LOC /NO ARGUMENT - FIND NEXT PAGE 000454 1154 TAD [177 000455 0153 AND [7600 000456 3034 STAR3, DCA VALUE 000457 1034 TAD VALUE /GET START OF PAGE 000460 4552 STAR1, JMS I [PUNORG /PUNCH ORIGIN 000461 4551 JMS I [FINDSP 000462 1150 TAD [LITBUF /RESET POINTERS 000463 3043 DCA TEMP 000464 1443 TAD I TEMP 000465 3023 DCA LITPTR /INITIALIZE LITERAL POINTER FOR NEW PAGE 000466 3014 DCA LAST1 000467 3070 DCA LININD 000470 5547 JMP I [PUNVAL /SEE ABOUT DUMPING SOURCE CODE /HANDLER FOR FIXMRI PSEUDO-OP 000471 4565 FIXMRX, JMS I [SPNOR /IGNORE SPACES 000472 4546 JMS I [TSTALP /IS CHARACTER ALPHABETIC? 000473 5276 JMP FIXMR1 /YES-CONTINUE 000474 4545 JMS I [ICMESG /NO - GENERATE IC MESSAGE, GET NEXT CHAR 000475 5272 JMP FIXMRX+1 /KEEP LOOKING FOR ALPHABETIC CH. OR END OF LINE 000476 4544 FIXMR1, JMS I [GETTAG /PICK UP TAG 000477 3062 DCA ALPHAI /STORE UNDEFINED SWITCH 000500 7410 SKP 000501 4545 FIXMR2, JMS I [ICMESG 000502 4565 JMS I [SPNOR /IGNORE SPACES 000503 1040 TAD CHAR /WAS CHARACTER = ? 000504 1376 TAD (-"= 000505 7640 SZA CLA 000506 5301 JMP FIXMR2 /NO - PRINT IC MESSAGE AND KEEP LOOKING /FALL INTO EQUALS PROCESSOR /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 15 /HANDLER FOR = 000507 7330 AC4000 /FALL INTO HERE FROM FIXMRI 000510 4543 EQUAL, JMS I [PUSHA /PUSH FIXMRI FLAG 000511 4574 JMS I [GETC /GET NEXT CHARACTER 000512 1576 TAD I [NAME1 /STORE THE SYMBOL NAME 000513 4543 JMS I [PUSHA /ON THE PUSH DOWN LIST 000514 1775 TAD I (NAME2 000515 4543 JMS I [PUSHA 000516 1774 TAD I (NAME3 000517 4543 JMS I [PUSHA 000520 1057 TAD THISTG /AND ITS PRESENT (OR FUTURE) 000521 4543 JMS I [PUSHA /POSITION IN THE SYMTAB 000522 1062 TAD ALPHAI 000523 4543 JMS I [PUSHA /STORE UNDEFINED INDICATOR 000524 4565 JMS I [SPNOR /IGNORE SPACES 000525 4562 JMS I [EXP /GET EXPRESSION TO RIGHT OF = 000526 1410 TAD I PDLXR 000527 3062 DCA ALPHAI /RESTORE UNDEFINED INDICATOR 000530 1410 TAD I PDLXR 000531 3057 DCA THISTG /RESTORE SYMBOL TABLE POSITION 000532 1410 TAD I PDLXR /RESTORE TAG NAME 000533 3774 DCA I (NAME3 000534 1410 TAD I PDLXR 000535 3775 DCA I (NAME2 000536 1410 TAD I PDLXR 000537 3576 DCA I [NAME1 000540 2065 ISZ UNDFSW /WAS ANY PART OF DEFINITION UNDEFINED? 000541 5346 JMP EQUAL3 /NO 000542 4471 JMS I PERROR /YES - GENERATE IE ERROR MESSAGE 000543 5145 IE 000544 2010 ISZ PDLXR /CLEAR EXTRA WORD FROM PDL 000545 5547 JMP I [PUNVAL /FORGET ABOUT DEFINING TAG /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 16 /MORE = PROCESSING 000546 2062 EQUAL3, ISZ ALPHAI /WAS TAG DEFINED BEFORE? 000547 5352 JMP .+3 /YES - CHECK FOR ILLEGAL REDEFINITION 000550 4542 JMS I [INSRTG /NO - INSERT TAG INTO SYMBOL TABLE 000551 5364 JMP EQUAL2 /AND BYPASS ILLEGAL REDEF CHECK 000552 4573 JMS I [FINDTG /PUT TAG IN TAG1-TAGE AND VALUE2 000553 1034 TAD VALUE 000554 7041 CIA 000555 1035 TAD VALUE2 000556 7640 SZA CLA /WERE DEFINITIONS THE SAME? 000557 1020 TAD TAG1 /NO - IS IT A PERMANENT SYMBOL? 000560 7700 SMA CLA 000561 5364 JMP EQUAL2 /NO - OK TO REDEFINE 000562 4541 JMS I [ERROR /YES - GENERATE RD ERROR MESSAGE FIRST 000563 6244 RD 000564 1034 EQUAL2, TAD VALUE /DEFINE OR REDEFINE 000565 3035 DCA VALUE2 000566 7350 AC3777 000567 0021 AND TAG2 /CLEAR OLD FIXMRI BIT 000570 1410 TAD I PDLXR /INSERT NEW ONE 000571 3021 DCA TAG2 000572 4540 JMS I [PUTTAG /STORE TAG 000573 5547 JMP I [PUNVAL /SEE ABOUT DUMPING SOURCE CODE 000574 0202 000575 0201 000576 7503 000577 5547 0600 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 17 /ROTATE AC 6 LEFT 000600 0000 RTL6, 0 000601 7106 CLL RTL 000602 7006 RTL 000603 7006 RTL 000604 5600 JMP I RTL6 /--RETURN-- /GET NEXT CHARACTER ROUTINE /READS FROM THE INPUT FILES AND PASSES THE MODIFIED CHARACTERS /TO THE PROGRAM /IT ALSO PRINTS THE LATEST LINE IF IT HAS NOT BEEN PRINTED 000605 0000 GETC, 0 000606 2037 ISZ TXTPTR /POINT TO NEXT CHARACTER 000607 1437 GETC7, TAD I TXTPTR /GET NEXT CHARACTER 000610 7440 SZA /IS IT 0? 000611 5257 JMP GETC8 /NO - MORE ARE IN THIS LINE 000612 1051 TAD PASS /IS THIS PASS 3? 000613 7750 SPA SNA CLA 000614 5232 JMP GETC1 /NO 000615 1137 TAD [LINBUF /YES 000616 3037 DCA TXTPTR /RESET POINTER TO BEGINNING 000617 1437 TAD I TXTPTR /GET 1ST CHARACTER 000620 7450 SNA /IS IT 0? 000621 5232 JMP GETC1 /YES - LINE HAS BEEN PRINTED 000622 1136 TAD [-215 /IS IT 215? 000623 7650 SNA CLA 000624 5231 JMP GETC2 /YES - DO NOT PRINT THE SPACES 000625 1135 TAD [211 /NO-OUTPUT 2 TABS 000626 4450 JMS I OERROR 000627 1135 TAD [211 000630 4450 JMS I OERROR 000631 4335 GETC2, JMS LINPRT /NOW PRINT THE LINE 000632 1377 GETC1, TAD (-121 000633 3036 DCA TXTSWT 000634 1376 TAD (LINBUF-1 000635 3037 DCA TXTPTR /RESET POINTER 000636 2037 ISZ TXTPTR 000637 4775 GETC6, JMS I (INPUT /GET NEXT CHARACTER 000640 5247 JMP GETC4 /215 000641 3437 DCA I TXTPTR /STORE THE CHARACTER 000642 2036 ISZ TXTSWT /TOO MANY? 000643 5236 JMP GETC6-1 /NO 000644 7240 CLA CMA /YES 000645 3036 DCA TXTSWT 000646 5237 JMP GETC6 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 18 000647 3437 GETC4, DCA I TXTPTR /SET END 000650 2037 ISZ TXTPTR 000651 3437 DCA I TXTPTR /SET END OF LINE 000652 1137 TAD [LINBUF 000653 3037 DCA TXTPTR /RESET POINTER 000654 7240 CLA CMA 000655 3036 DCA TXTSWT /RESET SWITCH 000656 5207 JMP GETC7 /GET THAT CHARACTER 000657 1136 GETC8, TAD [-215 /IS IT A CARRIAGE RETURN? 000660 7450 SNA 000661 5307 JMP GETC12 /YES-END OF LINE 000662 1063 TAD GETCI /NO- 000663 1374 TAD (215-"/ /IS IT A /? 000664 7450 SNA /YES- 000665 5315 JMP GETC13 /"/" IS END 000666 1373 TAD ("/-"; /IS IT A ;? 000667 7450 SNA /YES- 000670 5307 JMP GETC12 /";" IS END 000671 1372 TAD (";-211 /IS IT A TAB? 000672 7440 SZA 000673 1371 TAD (211-240 /OR A SPACE? 000674 7640 SZA CLA 000675 5310 JMP GETC9 /NO-NOT ANYTHING SPECIAL 000676 2036 ISZ TXTSWT /YES-2ND OCCURANCE? 000677 5206 JMP GETC+1 /YES - IGNORE 000700 1166 TAD [240 000701 3040 DCA CHAR /NO - GIVE A SPACE 000702 5605 JMP I GETC /--RETURN-- 000703 2053 GETC16, ISZ CONDSW /DECREMENT CONDITIONAL COUNTER 000704 5321 JMP GETC15 000705 1170 GETC17, TAD [LINBUF+120 000706 3037 DCA TXTPTR 000707 7330 GETC12, AC4000 000710 1437 GETC9, TAD I TXTPTR 000711 3040 DCA CHAR /STORE CHARACTER 000712 7240 CLA CMA 000713 3036 DCA TXTSWT /SET THE SWITCH 000714 5605 JMP I GETC /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 19 000715 1053 GETC13, TAD CONDSW /CURRENTLY IN CONDITIONALS? 000716 7450 SNA 000717 5305 JMP GETC17 /NO 000720 3053 DCA CONDSW /STORE UPDATED CONDITIONAL LEVEL 000721 2037 GETC15, ISZ TXTPTR /YES-SCAN LINE FOR < AND > 000722 1437 TAD I TXTPTR 000723 1136 TAD [-215 /IS CHARACTER A CARRIAGE RETURN? 000724 7450 SNA 000725 5305 JMP GETC17 /YES 000726 1370 TAD (215-"> /NO IS IT A >? 000727 7450 SNA 000730 5303 JMP GETC16 /YES 000731 1367 TAD (">-"< /NO-IS IT <? 000732 7650 SNA CLA 000733 7240 STA /YES - INCREMENT CONDITIONAL COUNTER 000734 5315 JMP GETC13 /NO - KEEP LOOKING /CHAR IS NEGATIVE IF LOGICAL END OF LINE: / CARRIAGE RETURN / / / ; /CHAR MAY BE ZERO IF PHYSICAL END OF LINE: / CARRIAGE RETURN /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 20 /PRINT A LINE OF SOURCE CODE 000735 0000 LINPRT, 0 000736 1376 TAD (LINBUF-1 000737 3012 DCA XREG1 /SET POINTER TO LINE 000740 1412 LINPR1, TAD I XREG1 /GET CHARACTER 000741 7450 SNA /IS IT END OF LINE? 000742 5735 JMP I LINPRT /YES - END LINE 000743 4450 JMS I OERROR /NO - OUTPUT CHARACTER 000744 3537 DCA I [LINBUF /CLEAR OUT 1ST CHAR IN LINE AS "PRINTED" FLAG 000745 5340 JMP LINPR1 /HANDLE PHASE ERROR /AND ALL ERROR EXITS TO MONITOR 000746 7200 SYMOFL, CLA 000747 1366 TAD (SE /SYMBOL TABLE EXCEEDED MESSAGE 000750 3354 MONERR, DCA MONER1 /ERROR IS SERIOUS ENOUGH TO 000751 1365 PHASE, TAD (OTYPEO / CAUSE IMMEDIATE RETURN TO 000752 3050 DCA OERROR / MONITOR 000753 4541 JMS I [ERROR 000754 6050 MONER1, PH /STORE ERROR TYPE HERE 000755 5553 JMP I [7600 /***EXIT TO MONITOR*** /FIND CURRENT PAGE NUMBER /EXIT WITH NUMBER IN AC 000756 0000 FINDSP, 0 000757 1027 TAD LOC 000760 0153 AND [7600 000761 4567 JMS I [RTL6 000762 5756 JMP I FINDSP /--RETURN-- 000765 2323 000766 6345 000767 0002 000770 7717 000771 7751 000772 0062 000773 7764 000774 7736 000775 5200 000776 1617 000777 7657 1000 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 21 /********************************************************** /THIS AREA IS SWAPPED OUT DURING PASS 1 AND 2 /** NO LITERALS IN THIS PAGE, AS THERE IS A PAGE OVERLAYING IT ** 1000 SWAP1=. /PASS 3 LISTING OUTPUT 001000 0000 LISOUT, 0 001001 3231 DCA LISOU2 001002 1026 TAD XLISTX /IS THIS COVERED BY XLIST? 001003 7640 SZA CLA 001004 5600 JMP I LISOUT /YES--RETURN-- 001005 2230 ISZ LISCNT /NO-WAS PREVIOUS CHARACTER A 215? 001006 5215 JMP LISOU1 /NO 001007 2061 ISZ LINCNT /WAS IT END OF PAGE? 001010 5215 JMP LISOU1 /NO 001011 2041 ISZ THISPG /YES-START OVERFLOW PAGE 001012 4357 BEGIAB, JMS CRLF /OUTPUT CARRIAGE RETURN/LINE FEED 001013 4534 HSWIT1, JMS I [FORMFD /0 IF /H SWITCH OPTION TO SUPRESS PAGING 001014 2061 ISZ LINCNT 001015 1231 LISOU1, TAD LISOU2 /IS CHARACTER A CARRIAGE RETURN? 001016 1136 TAD [-215 001017 7450 SNA 001020 5224 JMP LISOU3 /YES - OUTPUT CR/LF 001021 1133 TAD [215 /NO - RESTORE CHARACTER 001022 4447 JMS I OCHAR /OUTPUT CHARACTER 001023 5600 JMP I LISOUT /--RETURN-- 001024 7240 LISOU3, CLA CMA 001025 3230 DCA LISCNT /REMEMBER THE 215 FOR NEXT TIME 001026 4357 JMS CRLF /OUTPUT CARRIAGE RETURN/LINE FEED 001027 5600 JMP I LISOUT /--RETURN-- 001030 7777 LISCNT, -1 001031 0000 LISOU2, 0 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 22 /FORM FEED OUTPUT ROUTINES 001032 0000 FORMFD, 0 001033 1061 TAD LINCNT /GET LINE COUNTER 001034 1303 TAD FORMLN 001035 7650 SNA CLA /ARE WE AT TOP OF PAGE? 001036 5632 JMP I FORMFD /YES - NO NEED FOR FORM FEED 001037 1026 TAD XLISTX /IS THIS COVERED BY XLIST? 001040 7640 SZA CLA 001041 5632 JMP I FORMFD /YES--RETURN-- 001042 5255 HSWITC, JMP FORMF1 /0 IF /T OR TTY:; JMP FORMF3 IF /H /OUTPUT IF TTY:OR /T OPTION / TAD LINCNT /V40 DON'T WASTE PAPER 001043 1132 TAD [-4 001044 3061 DCA LINCNT 001045 4357 JMS CRLF /OUTPUT CARRIAGE RETURN/LINE FEED 001046 2061 ISZ LINCNT 001047 5362 JMP CRLF1 /OUTPUT LINE FEED /CRLF1 WILL RETURN TO /JMP-1 UNTIL LINCNT HAS /BEEN BUMPED SUFFICIENTLY 001050 1355 TAD FORMM6 001051 3061 DCA LINCNT 001052 1305 TAD MINUS /OUTPUT ------ 001053 4447 JMS I OCHAR 001054 2061 ISZ LINCNT /* NEXT 3 LOCS CHANGED IF NO /T OR TTY: 001055 5252 FORMF1, JMP .-3 /* STA 001056 1132 TAD [-4 /* DCA LINCNT /GENERATE ONE FORM FEED 001057 3061 DCA LINCNT /* STA /TURN CR INTO FF 001060 4357 JMS CRLF /OUTPUT CR/LF OR FF/LF 001061 2061 ISZ LINCNT 001062 5362 JMP CRLF1 /OUTPUT LINE FEED 001063 1303 TAD FORMLN 001064 7041 CIA 001065 3061 DCA LINCNT 001066 1131 FORM22, TAD [HEADER-1 /OUTPUT HEADER 001067 3013 DCA XREG2 001070 3064 DCA LSTCNT 001071 1413 FORM30, TAD I XREG2 /GET NEXT CHARACTER OF HEADING 001072 7450 SNA /IS IT LAST + 1 001073 5306 JMP FORM20 /YES 001074 4447 JMS I OCHAR /NO-OUTPUT IT 001075 1064 TAD LSTCNT 001076 1130 TAD [-HEDLEN /DONE "HEDLEN" CHARACTERS YET? 001077 7640 SZA CLA 001100 5271 JMP FORM30 /NO-CONTINUE 001101 1304 TAD FORMHD /YES-START SYSTEM HEADER 001102 5266 JMP FORM22 /WHICH STARTS AT HEADER+HEDLEN 001103 0070 FORMLN, LNPRPG 001104 0050 FORMHD, HEDLEN /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 22-1 001105 0255 MINUS, "- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 23 /TTY: OR /T OUTPUTS FORM FEED AS /CARRIAGE RETURN, MULTIPLE LINE FEEDS TO END OF PAGE /------ /CARRIAGE RETURN, 5 LINE FEEDS /HEADER /NO OPTIONS TREATS F/F AS /F/F, LF, CR/LF /HEADER / /H OPTION TREATS F/F AS 2 CR/LF /USER HEADER IS "HEDLEN" CHARACTERS WIDE /ASSEMBLER HEADER ENDS WITH 0 /OUTPUT PAGE NUMBERS 001106 1042 FORM20, TAD EDITPG /OUTPUT EDITOR PAGE NUMBER 001107 4322 JMS FORMF4 001110 1041 TAD THISPG /IS THERE PAGE OVERFLOW? 001111 7650 SNA CLA 001112 5317 FORM21, JMP FORMF3 /NO 001113 1305 TAD MINUS /YES 001114 4447 JMS I OCHAR /OUTPUT - 001115 1041 TAD THISPG /OUTPUT NUMBER OF OVERFLOW PAGE 001116 4322 JMS FORMF4 /OUTPUT IF /H OPTION 001117 4357 FORMF3, JMS CRLF /OUTPUT 2 CR/LF 001120 4357 JMS CRLF 001121 5632 JMP I FORMFD /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 24 /DECIMAL PRINT ROUTINE 001122 0000 FORMF4, 0 001123 3007 DCA FORMF6 /SAVE NUMBER 001124 1356 TAD FORM8F 001125 3357 DCA CRLF /POINT TO DIVISION LIST 001126 3365 FORM12, DCA FORMF7 /START WITH 0 001127 5332 JMP .+3 001130 3007 FORMF5, DCA FORMF6 001131 2365 ISZ FORMF7 /ADD 1 TO DIGIT 001132 1757 TAD I CRLF /SUBTRACT 1000, 100, OR 10 001133 7450 SNA 001134 5351 JMP FORM11 /0 IS END OF TABLE - NO MORE DIGITS 001135 1007 TAD FORMF6 001136 7500 SMA /OVERFLOW 001137 5330 JMP FORMF5 /NO-KEEP SUBTRACTING 001140 7200 CLA /YES-DIGIT DONE 001141 2357 ISZ CRLF /BUMP LIST POINTER 001142 1365 TAD FORMF7 /WAS DIGIT A 0? 001143 7450 SNA 001144 5326 JMP FORM12 /YES 001145 1127 TAD ["0 /NO-MAKE IT ASCII 001146 4447 JMS I OCHAR /OUTPUT DIGIT 001147 7330 AC4000 001150 5326 JMP FORM12 /4000 IN AC FORCES SIGNIFICANCE 001151 1007 FORM11, TAD FORMF6 /GET LAST DIGIT (UNITS PLACE) 001152 1127 TAD ["0 001153 4447 JMS I OCHAR /OUTPUT DIGIT 001154 5722 JMP I FORMF4 /--RETURN-- 001155 7772 FORMM6, -6 001156 5564 FORM8F, FORMF8 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 25 /OUTPUT CARRIAGE RETURN/LINE FEED /ENTER WITH AC=-1 TO GENERATE F/F LF HEDCL2, 001157 0000 CRLF, 0 001160 1133 TAD [215 001161 4447 JMS I OCHAR 001162 1144 CRLF1, TAD [212 /RE-ENTRY FOR MULTIPLE LINE FEEDS 001163 4447 JMS I OCHAR 001164 5757 JMP I CRLF /--RETURN-- /CLEAR PAGE HEADING BUFFER FORMF7, 001165 0000 HEDCLR, 0 001166 1130 TAD [-HEDLEN /SET HEADING BUFFER 001167 3357 DCA HEDCL2 /TO TABS 001170 1131 TAD [HEADER-1 001171 3013 DCA XREG2 001172 1135 TAD [211 001173 3413 DCA I XREG2 001174 2357 ISZ HEDCL2 001175 5372 JMP .-3 001176 5765 JMP I HEDCLR /--RETURN-- 1200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 26 /SYMBOL TABLE OUTPUT (COLUMNAR) /*CODE TO GENERATE DDT COMPATIBLE* /**SYMBOL TABLE--SUBSTITUTED WITH* /**ONCE ONLY CODE IF NEEDED******* IFZERO HASH< SYMPRT, 0 ISZ EDITPG /NEW PAGE DCA THISPG JMS I [FORMFD TAD SMIN67 /DCA I SYMPR6-1 DCA SYMPR7 /JMS SYMPR9+6 SYMPR8, DCA SYMPR2 /TAD [377 //RUBOUT CLA CMA /JMS I OERROR DCA THISTG /CLA CMA TAD SYMPR2 /DCA THISTG CMA /TAD [215 //CARRIAGE RETURN DCA SYMPR3 /JMS I OERROR SYMPR5, ISZ SYMPR3 /JMS SYMPPP JMP SYMPR4 /JMP SYMPR9-1 TAD [-4 /JMP SYMPR6+2 DCA SYMPR3 /HSWIT1 SYMPR6, JMS SYMPPP /204 //EOT JMP SYMPRB SYMPR1, TAD [1777 AND TAG1 /OUTPUT TAG JMS I SDIV45 TAD TAG2 JMS I SDIV45 TAD TAG3 JMS I SDIV45 TAD [240 JMS I OERROR /OUTPUT SPACE TAD VALUE2 JMS OCTPRT /OUTPUT OCTAL VALUE ISZ SYMPR3 /JMP SYMPR5-2 JMP SYMPR0 /TAD SYMPR6 SYMPR9, TAD [215 /JMS I OERROR /CARRIAGE RETURN JMS I OERROR /TAD [377 //RUBOUT SYMPRB, ISZ SYMPR7 /JMS I OERROR JMP SYMPRA /JMS SYMPR9+6 HSWIT2, JMS I [FORMFD /DCA LINCNT /0 IF NOT /H TAD SMIN67 /JMP I SYMPRT //--RETURN-- DCA SYMPR7 /0 TAD SYMOFS /TAD [-200 SYMPRA, IAC /DCA SYMPR2 TAD SYMPR2 /TAD [200 //LEADER-TRAILER JMP SYMPR8 /JMS I OERROR SYMPR4, JMS SYMPPP /ISZ SYMPR2 JMP I SYMPRT /JMP SYMPR4-2 /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 26-1 JMP SYMPR5 /JMP I SYMPR9+6 SDIV45, DIV45 SMIN67, 1-LNPRPG /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 27 SYMPR0, TAD SMIN67 DCA SYMPPB JMS SYMPPP /SKIP 67(8) SYMBOLS JMP SYMPR9 ISZ SYMPPB JMP .-3 JMS I [ERROR1 JMS I [ERROR1 JMS I [ERROR1 JMP SYMPR1 /GO PRINT THE 67TH(8) SYMBOL SYMPR2= LINKSW SYMPR3= UNDFSW SYMPR7= ALPHAI SYMPPB= CHKSUM SYMPPP, 0 ISZ THISTG SYMOFS, 245 TAD THISTG CLL CIA TAD HIGHTG SNL CLA JMP I SYMPPP /--RETURN-- JMS I [FINDTG AC4000 AND TAG1 TAD TAG3 SPA SZL CLA JMP SYMPPP+1 ISZ SYMPPP JMP I SYMPPP /--RETURN-- /SYMNCL, -4 /DEFAULT IN LIU OF =N OPTION /SYMOFS, 245 /OFFSET TO FIRST SYM ON NEXT PAGE > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 28 IFNZRO HASH< 001200 0000 SYMPRT, 0 001201 2042 ISZ EDITPG 001202 3041 DCA THISPG 001203 4534 JMS I [FORMFD /OUTPUT A HEADING 001204 4701 JMS I SYMHND /NOW READ THE SYMBOL TABLE SORT OVERLAY 001205 0200 0200 /2 PAGES 001206 6600 SYMSRT, OUDEVH+400 /TO HERE 001207 0041 ASWAP+1 /FROM HERE 001210 5700 JMP I SYMERR /UGH 001211 4606 JMS I SYMSRT /SORT THEM AND SET LINK 001212 3067 SYMNWP, DCA SYMTAG /POINT TO SYMBOL 001213 7430 SZL /LINK OFF IF ANY SYMBOLS TO LIST 001214 5600 JMP I SYMPRT /NONE --RETURN-- 001215 1277 TAD SMIN67 /SET LINE/PAGE COUNT 001216 3065 DCA SYMLCT 001217 1060 SYMPAG, TAD HIGHTG 001220 7141 CLL CIA 001221 1067 TAD SYMTAG 001222 7630 SZL CLA 001223 5600 JMP I SYMPRT /NO MORE IF AT HIGHTAG NOW 001224 1067 TAD SYMTAG 001225 3057 DCA THISTG /PREPARE TO PRINT LEFTMOST SYMBOL 001226 1303 TAD SYMNCL /4 PER LINE (DEFAULT) 001227 3062 DCA SYMCCT /TO COLLUMS/LINE CNTR 001230 5241 JMP SYMGO 001231 4526 SYMLIN, JMS I [ERROR1 001232 4526 JMS I [ERROR1 001233 4526 JMS I [ERROR1 001234 1060 TAD HIGHTG 001235 7141 CLL CIA 001236 1057 TAD THISTG 001237 7630 SZL CLA 001240 5264 JMP SYMNXL /SKIP TO NEXT LINE IF OFF TABLE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 29 001241 4573 SYMGO, JMS I [FINDTG /OK, GET IT 001242 1020 TAD TAG1 001243 4676 JMS I SDIV45 001244 1021 TAD TAG2 001245 4676 JMS I SDIV45 001246 1022 TAD TAG3 001247 4676 JMS I SDIV45 001250 1166 TAD [240 001251 4450 JMS I OERROR 001252 1035 TAD VALUE2 /PRINT VALUE NOW 001253 4310 JMS OCTPRT 001254 1277 SYMDDT, TAD SMIN67 001255 7141 CLL CIA 001256 1057 TAD THISTG 001257 3057 DCA THISTG 001260 7430 SZL 001261 5264 JMP SYMNXL /SKIP IF WRAP AROUND 001262 2062 ISZ SYMCCT /ELSE DO NEXT COLUMN 001263 5231 JMP SYMLIN 001264 1133 SYMNXL, TAD [215 001265 4450 JMS I OERROR /CR/LF 001266 2067 ISZ SYMTAG /POINT TO NEXT SYMBOL 001267 2065 ISZ SYMLCT 001270 5217 JMP SYMPAG 001271 4534 HSWIT2, JMS I [FORMFD 001272 1067 TAD SYMTAG 001273 7100 CLL 001274 1302 TAD SYMOFS /OFFSET TO NEXT SYMBOL 001275 5212 JMP SYMNWP /DO THE NEXT PAGE 001276 4217 SDIV45, DIV45 001277 7711 SMIN67, -67 001300 2761 SYMERR, SYSERR 001301 7607 SYMHND, 7607 001302 0245 SYMOFS, 245 /DEFAULT 001303 7774 SYMNCL, -4 0067 SYMTAG= LINKSW 0065 SYMLCT= UNDFSW 0062 SYMCCT= ALPHAI 001304 0000 ZBLOCK 4 /WASTE SOME SPACE > /END OF AREA WHICH MAY BE SWAPPED OUT /DURING PASSES 1 AND 2 /********************************************************************** 1310 ENDOVL= . /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 30 /OCTAL PRINT ROUTINE /ENTER WITH # TO BE OUTPUT IN AC /** DO NOT USE TEMPS BELOW THIS LOC! 001310 0000 OCTPRT, 0 001311 3005 DCA OCTPR1 001312 1132 TAD [-4 001313 3006 DCA OCTPR3 001314 1005 OCTPR2, TAD OCTPR1 /GET EACH DIGIT SEPARATELY 001315 7106 CLL RTL 001316 7004 RAL 001317 3005 DCA OCTPR1 001320 1005 TAD OCTPR1 001321 7004 RAL 001322 0161 AND [7 001323 1127 TAD ["0 /MAKE IT INTO AN ASCII CHARACTER 001324 4450 JMS I OERROR /OUTPUT IT 001325 2006 ISZ OCTPR3 001326 5314 JMP OCTPR2 001327 5710 JMP I OCTPRT /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 31 /OUTPUT ONE REGISTER 001330 0000 PUNONE, 0 001331 1051 TAD PASS /WHICH PASS IS THIS? 001332 7450 SNA 001333 5374 JMP PUNON2 /PASS 2--OUTPUT BINARY 001334 7710 SPA CLA 001335 5372 JMP PUNON3 /PASS 1--EXIT 001336 1073 TAD VALUEX /THE BANK BIT IS 001337 7112 CLL RTR /ADJUSTED TO ASCII 001340 7010 RAR 001341 1127 TAD ["0 001342 4450 JMS I OERROR /THEN PRINTED 001343 1072 TAD FLDIND /GET FIELD NUMBER 001344 1127 TAD ["0 /CONVERT TO ASCII 001345 4450 JMS I OERROR /PRINT IT 001346 1027 TAD LOC /GET LOW ORDER 4 DIGITS (LOC CTR) 001347 4310 JMS OCTPRT /PRINT IT TOO 001350 1030 TAD OFFSET /IF THIS CODE IS IN A RELOC SECTION, 001351 7640 SZA CLA / 001352 1125 TAD [1200 /FLAG THE LOCATION COUNTER WITH A * 001353 4526 JMS I [ERROR1 /OUTPUT 2 SPACES 001354 1034 DTORG1, TAD VALUE 001355 4310 JMS OCTPRT /OUTPUT CONTENTS 001356 1067 TAD LINKSW /DUMP LINK SWITCH (' ) 001357 7440 SZA /IF THERE IS ONE 001360 4526 JMS I [ERROR1 001361 1537 TAD I [LINBUF /IS THERE SOURCE CODE TO DUMP? 001362 7650 SNA CLA 001363 5370 JMP PUNON1 /NO-OUTPUT CARRIAGE RETURN 001364 1135 TAD [211 /PRECEDE SOURCE WITH TAB 001365 4450 JMS I OERROR 001366 4524 JMS I [LINPRT /DUMP SOURCE CODE 001367 5372 JMP PUNON3 /AND EXIT 001370 1133 PUNON1, TAD [215 /OUTPUT CARRIAGE RETURN 001371 4450 JMS I OERROR 001372 3067 PUNON3, DCA LINKSW /CLEAR LINK SWITCH 001373 5730 JMP I PUNONE /--RETURN-- /PASS 2-OUTPUT ONE REGISTER 001374 1034 PUNON2, TAD VALUE /GET CONTENTS 001375 7100 CLL 001376 4523 JMS I [PUNOUT /OUTPUT AS 2 FRAMES 001377 5372 JMP PUNON3 /AND EXIT 1400 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 32 /**CURRENT PAGE LITERALS ON THIS PAGE WILL BE LOST** /***WHEN OVERLAYED BY PUSHDOWN LIST** /ARRANGE TO OUTPUT ONE REGISTER 001400 0000 PUNBIN, 0 001401 3034 DCA VALUE 001402 4551 JMS I [FINDSP /FIND CURRENT PAGE NUMBER 001403 1150 TAD [LITBUF 001404 3045 DCA TEMP2 /POINT TO NUMBER OR LITERALS 001405 1027 TAD LOC 001406 0154 AND [177 001407 3043 DCA TEMP 001410 1445 TAD I TEMP2 /IS PAGE FULL? 001411 7041 CIA 001412 1043 TAD TEMP 001413 2043 ISZ TEMP 001414 7710 SPA CLA 001415 5222 JMP ONEOK /NO-OK TO ADD ONE MORE REGISTER 001416 1043 TAD TEMP /YES- 001417 3445 DCA I TEMP2 001420 4551 JMS I [FINDSP /FIND CURRENT PAGE NUMBER 001421 4650 JMS I PPEZE /GENERATE PE OR ZE ERROR 001422 4551 ONEOK, JMS I [FINDSP /FIND CURRENT PAGE NUMBER 001423 1122 TAD [TPINST 001424 3045 DCA TEMP2 001425 1043 TAD TEMP /IS THIS ADDRESS HIGHER THAN PREVIOUS 001426 7041 CIA /HIGH INSTRUCTION PAGE? 001427 1445 TAD I TEMP2 001430 7700 SMA CLA 001431 5234 JMP PUNMOD /NO 001432 1043 TAD TEMP /YES-THIS IS NEW HIGH INSTRUCTION 001433 3445 DCA I TEMP2 001434 4521 PUNMOD, JMS I [PUNONE /OUTPUT THIS REGISTER 001435 2027 ISZ LOC /GET NEXT LOCATION 001436 1027 TAD LOC /IF THE "ISZ" SKIPS IT IS O.K. (A 0) 001437 0154 AND [177 /IS THIS FIRST INSTRUCTION ON NEXT PAGE? 001440 7640 SZA CLA 001441 5600 JMP I PUNBIN /NO--RETURN-- 001442 4551 JMS I [FINDSP /YES-FIND CURRENT PAGE NUMBER 001443 1150 TAD [LITBUF /RESET POINTERS 001444 3045 DCA TEMP2 001445 1445 TAD I TEMP2 001446 3023 DCA LITPTR 001447 5600 JMP I PUNBIN /--RETURN-- 001450 4641 PPEZE, PEZE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 33 001451 0323 HEADER, "S;"Y;"M;"B;"O;"L;"S 001452 0331 001453 0315 001454 0302 001455 0317 001456 0314 001457 0323 001460 0211 211;211;211;211;211 /FOR /N HEADER 001461 0211 001462 0211 001463 0211 001464 0211 /************************************************************ /CODE OVERLAYED ON PASS 3 /BY USER HEADER BUFFER /CONTINUATION OF EXPUNGE HANDLER /ENTER ON PASS 1 ONLY EXPUNW, IFZERO HASH< DCA TEMP1 DCA EXPUN2 /CLEAR NEW HIGH TAG COUNTER TAD HIGHTG CMA DCA TEMP3 /SAVE NUMBER OF SYM TBL ENTRIES EXPUNY, TAD TEMP1 DCA THISTG JMS I [FINDTG /GET A SYMBOL TAD TAG1 /ONLY SAVE THE SYMBOL IF RTL CLA /IT WAS A PSEUDO-OP, OR TAD TAG3 /THE SYMBOLS I OR Z SNL SMA CLA JMP EXPUA4 /NO-FORGET TAG TAD EXPUN2 /YES-RETURN TAG TO SYMBOL TABLE DCA THISTG JMS I [PUTTAG ISZ EXPUN2 EXPUA4, ISZ TEMP1 ISZ TEMP3 /DONE YET? JMP EXPUNY /NO- TRY NEXT TAG CLA CMA /YES TAD EXPUN2 /RESET HIGH TAG DCA HIGHTG JMP I [LOOKEX /--EXIT TO MAIN-- EXPUN2, 0 > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 34 IFNZRO HASH< /HASH TABLE EXPUNGE - DEPENDS ON PSEUDO OPS /BEING HASHED FIRST. SCANS WHOLE TABLE (SLOW AS HELL!) 001465 3057 DCA THISTG /POINT TO FIRST ENTRY 001466 1100 TAD TAGMAX /SET THE COUNT 001467 7041 CIA 001470 3044 DCA TEMP1 001471 4573 EXPUNL, JMS I [FINDTG /GO GET ONE 001472 1020 TAD TAG1 001473 7006 RTL 001474 7200 CLA 001475 1022 TAD TAG3 001476 7730 SPA SZL CLA /PSEUDO OP? 001477 5307 JMP EXPUNS /YES, SKIP DELETION 001500 3020 DCA TAG1 /NO, WIPE IT 001501 3021 DCA TAG2 001502 3022 DCA TAG3 001503 4540 JMS I [PUTTAG /AND PUT IT BACK 001504 7240 STA 001505 1060 TAD HIGHTG 001506 3060 DCA HIGHTG /DECREMENT SYMBOL COUNT 001507 2057 EXPUNS, ISZ THISTG /POINT TO NEXT ENTRY 001510 2044 ISZ TEMP1 /TALLY COUNT 001511 5271 JMP EXPUNL /GET ANOTHER 001512 5577 JMP I [LOOKEX /DONE --RETURN-- > /*************************************************************** /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 35 /ASSEMBLER HEADER BUFFER 0005 VV1=VERSION%12 0062 VV2=VV1^12 001513 0000 ZBLOCK HEADER+HEDLEN-. 001521 0240 " ;" ;"P;"A;"L;"8;"- 001522 0240 001523 0320 001524 0301 001525 0314 001526 0270 001527 0255 001530 0326 "V;"0+VV1;VERSION-VV2+"0;SUBVERSION 001531 0265 001532 0260 001533 0331 001534 0240 " 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 001545 0240 " ;" ;"P;"A;"G;"E;" ;0 001546 0240 001547 0320 001550 0301 001551 0307 001552 0305 001553 0240 001554 0000 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 36 /PUSHDOWN LIST /OCCUPIES NEXT 43(8) LOCATIONS 1555 PDLND=. /********************************************************* /ONCE ONLY CODE FOR /D OPTION /PUT INTO SYMLST FOR DDT COMPATIBLE SYMBOL TABLE /OVERLAYED DURING ASSEMBLY BY PUSHDOWN LIST DSWIT1, IFZERO HASH< RELOC SYMPRT+4 DCA I SYMPRF JMS SYMPRC TAD [377 JMS I OERROR CLA CMA DCA THISTG SYMPRE, TAD [215 JMS I OERROR JMS SYMPPP JMP SYMPRD JMP SYMPR1 SYMPRF, HSWIT1 SYM204, 204 RELOC > IFNZRO HASH< 1212 RELOC SYMNWP 001212* 3057 DCA THISTG 001213* 3627 DCA I SYMHSW 001214* 4265 JMS DDTLDR 001215* 1120 TAD [377 001216* 4450 JMS I OERROR 001217* 1133 SYMLUP, TAD [215 001220* 4450 JMS I OERROR 001221* 1060 TAD HIGHTG 001222* 7141 CLL CIA 001223* 1057 TAD THISTG 001224* 7630 SZL CLA 001225* 5256 JMP SYMXIT 001226* 5241 JMP SYMGO 001227* 1013 SYMHSW, HSWIT1 1573 RELOC > 1573 DSWITA= . /********************************************************** /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 36-1 1600 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 37 /************************************************************* /PAL8 TABLES - LOAD OVER INITIALIZATION CODE 1617 PDLST= PDLND+42 /PUSHDOWN LIST 43(8) LOCS LONG 1620 LINBUF= PDLST+1 /LINE BUFFER OCCUPIES 122(8) LOCATIONS 1742 LITBUF= LINBUF+122 /LITERAL TABLE IS 40(8) LOCATIONS (ONE PER PAGE) / SHOWING LOWEST PAGE ADDRESS USED FOR LITERALS 2002 TPINST= LITBUF+40 /TOP INSTRUCTION TABLE IS 40(8) LOCTIONS / SHOWING HIGHEST PAGE ADDRESS USED FOR INSTRUCTIONS 2023 LITBF2= TPINST+40-17 /LITERAL BUFFER 2 CONTAINS UP TO 160(8) /PAGE 0 LITERALS, SUBSCRIPTS 20-177 2123 LITBF1= LITBF2+200-100 /LITERAL BUFFER 1 CONTAINS UP TO 100(8) /CURRENT PAGE LITERALS, SUBSCRIPTS 100-177 /************************************************************* /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 38 /ONCE ONLY CODE FOR ASSEMBLER START UP /OVERLAYED BY BUFFERS /HANDLES SWITCH OPTIONS 001600 6212 BEGIN, CIF 10 001601 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 001602 0005 5 /*COMMAND DECODER* 001603 2001 2001 /DEFAULT INPUT EXTENSION IS .PA 001604 6211 NOCD, CDF 10 /RETURN 001605 1777 TAD I (7604 /IS THERE A BINARY FILE EXTENSION? 001606 7450 SNA 001607 1376 TAD (216 /NO - DEFAULT EXTENSION IS .BN 001610 3777 DCA I (7604 /YES 001611 1775 TAD I (7611 /IS THERE A LISTING FILE EXTENSION? 001612 7450 SNA 001613 1374 TAD (1423 /NO - DEFAULT EXTENSION IS .LS 001614 3775 DCA I (7611 001615 1773 TAD I (MPARAM+1 /WAS THE /T OPTION SELECTED? 001616 7012 RTR 001617 7012 RTR 001620 7010 RAR /T IN LINK (BIT 20) 001621 7200 CLA 001622 1117 TAD [7605 /WAS TTY THE PASS 3 DEVICE? 001623 4772 JMS I (OTYPE 001624 0371 AND (770 001625 7650 ZT7640, SNA CLA 001626 7020 CML /YES, COMPLEMENT MEANING OF /T 001627 7430 SZL /WAS /T,NO TTY: OR TTY:,NO /T? 001630 3770 DCA I (HSWITC /YES - GENERATE CR/LF IN PLACE OF F/F 001631 7420 SNL /WAS /T,TTY: OR NO /T,NO TTY:? 001632 3767 DCA I (BEGIAB /ELIMINATE EXTRA CRLF 001633 6211 CDF 10 001634 1773 TAD I (MPARAM+1 /WAS THE /S OPTION SELECTED? 001635 6201 CDF 001636 0366 AND (40 001637 7640 SZA CLA 001640 3765 DCA I (SSWITC /YES -OMIT SYMBOL TABLE 001641 6211 CDF 10 001642 7332 AC2000 001643 0773 AND I (MPARAM+1 001644 6201 CDF 001645 7650 SNA CLA /WAS THE /N OPTION SELECTED? 001646 5251 JMP BEGIN4 /NO 001647 1262 TAD BEGSKP /SET SWITCH 001650 3764 DCA I (NSWITC /YES -SYMBOL TABLE BUT NO LISTING /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 39 001651 6211 BEGIN4, CDF 10 001652 1763 TAD I (MPARAM /WAS THE /H OPTION SELECTED? 001653 6201 CDF 001654 0362 AND (20 001655 7650 ZH7640, SNA CLA 001656 5263 JMP BEGINB /NO 001657 1761 BEGHSW, TAD I (FORM21 /YES -SUPPRESS LISTING PAGE FORMAT 001660 3770 DCA I (HSWITC 001661 3760 DCA I (HSWIT1 001662 7610 BEGSKP, CLA SKP 001663 3757 BEGINB, DCA I (HSWIT2 001664 6211 CDF 10 001665 1763 TAD I (MPARAM /WAS THE /D OPTION SELECTED? 001666 6201 CDF 001667 0126 AND [400 001670 7650 ZD7640, SNA CLA 001671 5302 JMP BEGIN1 /NO 001672 1412 TAD I XREG1 /YES -DDT COMPATIBLE SYMBOL TABLE 001673 3416 DCA I LAST3 /SUBSTITUTE ALTERNATE CODE 001674 2311 ISZ DSWIT3 /INTO SYMBOL TABLE OUTPUT ROUTINE 001675 5272 JMP .-3 001676 1413 TAD I XREG2 001677 3417 DCA I LAST4 001700 2312 ISZ DSWIT4 001701 5276 JMP .-3 001702 1756 BEGIN1, TAD I (JSBITS /RESET JOB STATUS WORD TO 001703 0355 AND (6777 /INDICATE PAL8 NOT RESTARTABLE 001704 1354 TAD (1000 001705 3756 DCA I (JSBITS 001706 6213 CIF CDF 10 001707 4753 JMS I (FMTDAT /CALL ROUTINE IN FIELD 1 TO SETUP DATE 001710 5752 JMP I (BEGINZ /CONTINUE ON /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 40 001711 7762 DSWIT3, DSWIT1-DSWITA 001712 7756 DSWIT4, DSWIT2-DSWITB 001752 2000 001753 7200 001754 1000 001755 6777 001756 7746 001757 1271 001760 1013 001761 1112 001762 0020 001763 7643 001764 4530 001765 4446 001766 0040 001767 1012 001770 1042 001771 0770 001772 5600 001773 7644 001774 1423 001775 7611 001776 0216 001777 7604 2000 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 41 /ONCE ONLY CODE CONTINUED /ASSEMBLER INITIALIZATION PROCEDURES 002000 1153 BEGINZ, TAD [7600 /WHAT DEVICE FOR BINARY OUTPUT? 002001 4777 JMS I (OTYPE 002002 7700 SMA CLA 002003 1376 TAD (-70 /STAND-ALONE 002004 1375 TAD (-10 /DIRECTORY 002005 3774 DCA I (SWAPR2+LEADER /SET AMOUNT OF LEADER TRAILER 002006 3014 DCA LAST1 /NO DEFINED TAG BEGIN5, IFZERO HASH< CDF TAD I BLK1 /MOVE SYMBOL TABLE TO FIELD 1 CDF 10 DCA I BLK2 ISZ BLK1 ISZ BLK2 ISZ BLK3 JMP BEGIN5 > 002007 6201 CDF 002010 3570 DCA I [LINBUF+120 /SET BUFFER POINTERS 002011 3773 DCA I (LINBUF+121 002012 1153 TAD [7600 /IS PTP BINARY OUTPUT DEVICE? 002013 4777 JMS I (OTYPE 002014 3332 DCA BLK1 002015 1332 TAD BLK1 002016 0372 AND (770 002017 1371 TAD (-20 002020 7650 SNA CLA 002021 3770 DCA I (PTPSW /YES - SET PTP SWITCH 002022 1332 TAD BLK1 /NO - IS IT A DIRECTORY DEVICE? 002023 7710 SPA CLA 002024 5227 JMP .+3 /NO 002025 1367 TAD (TAD [77 /YES - SET DIRECTORY SWITCH 002026 3766 DCA I (DIRSW 002027 1117 TAD [7605 /IS PTP GETTING LISTING OUTPUT? 002030 4777 JMS I (OTYPE 002031 0372 AND (770 002032 1371 TAD (-20 002033 7650 SNA CLA 002034 3765 DCA I (SWAPR2+PTPSW1 /YES - SET PASS 3 PTP SWITCH 002035 1117 TAD [7605 /NO - IS DIRECTORY DEVICE GETTING 002036 4777 JMS I (OTYPE /LISTING OUTPUT? 002037 7710 SPA CLA 002040 5243 JMP .+3 /NO 002041 1367 TAD (TAD [77 /YES - SET PASS 3 DIRECTORY SWITCH 002042 3764 DCA I (SWAPR2+DIRSW1 002043 5763 JMP I (BEGINF /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 42 MONLST, 002044 1201 IFNDEF GERMAN < 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 IFDEF GERMAN < TEXT /JANFEBMARAPRMAIJUNJULAUGSEPOKTNOVDEZ/> 2066 *.-1 /CONTINUED CHECK OF COMMAND DECODER OPTIONS 002066 6211 BEGINH, CDF 10 002067 1762 TAD I (MPARAM /WAS THE /G OR /L OPTION CHOSEN? 002070 6201 CDF 002071 0361 AND (41 002072 7650 SNA CLA 002073 5760 JMP I (BEGISW /NO 002074 6211 CDF 10 /YES 002075 1553 TAD I [7600 002076 7640 SZA CLA /WAS THERE A BINARY OUTPUT FILE? 002077 5311 JMP YESBIN /YES 002100 1336 BINLOP, TAD PALBIN /NO - CREATE FILE PAL8BN.TM 002101 3735 DCA I PALBIX /ON SYSTEM DEVICE 002102 2300 ISZ BINLOP 002103 2335 ISZ PALBIX 002104 2321 ISZ BINCNT 002105 5300 JMP BINLOP 002106 6201 CDF 002107 1375 TAD (-10 /SET AMOUNT OF LEADER TRAILER 002110 3774 DCA I (SWAPR2+LEADER /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 43 /SET UP FOR LOAD OR LOAD AND GO 002111 6201 YESBIN, CDF 002112 1757 TAD I (SBLOCK /GET SYSTEM DEV # KBM V40** 002113 7450 SNA /YOU NEVER KNOW 002114 7201 CLA IAC 002115 6212 CIF 10 002116 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 002117 0002 2 /* LOOKUP PERMANENT FILE * 002120 2273 LOAD, PLOAD /FILENAME ABSLDR.SV 002121 7773 BINCNT, -5 /FILE LENGTH 002122 5327 JMP NOLOAD /ABSLDR.SV NOT FOUND 002123 1320 TAD LOAD /NORMAL RETURN 002124 3756 DCA I (CHAIN /SET STARTING BLOCK NUMBER 002125 3755 DCA I (LSWITC /FOR CHAIN CALL 002126 5760 JMP I (BEGISW 002127 4541 NOLOAD, JMS I [ERROR /GENERATE LD ERROR MESSAGE 002130 5444 LD 002131 5760 JMP I (BEGISW /ASSEMBLE BUT DO NOT CHAIN TO LOADER 002132 6200 BLK1, SYMS 002133 6774 BLK2, 7600+SYMS-SYME 002134 7174 BLK3, SYMS-SYME 002135 7600 PALBIX, 7600 002136 0001 PALBIN, 1 002137 2001 FILENAME PAL8BN.TM 002140 1470 002141 0216 002142 2415 002155 4460 002156 4503 002157 7776 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 2200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 44 002200 1654 CCC, TAD I CC231 /FINAL PIECE OF STARTUP ONCE-ONLY CODE 002201 7450 SNA 002202 1255 TAD CC23 002203 3654 DCA I CC231 /"HSWITC"=JMP FORMF1 IF WAS 0 002204 6211 BEGISW, CDF 10 002205 1665 TAD I CCJWD 002206 6201 CDF 0 002207 0266 AND CCJBIT 002210 7650 ZJ7640, SNA CLA /WAS /J OPTION SPECIFIED? 002211 3667 DCA I CCJLOC /NO - PRINT UNASSEMBLED CONDITIONAL CODE 002212 6211 CDF 10 002213 1670 TAD I CCWWD 002214 6201 CDF 0 002215 0271 AND CCWBIT 002216 7650 ZW7640, SNA CLA /WAS /W OPTION SPECIFIED? 002217 5247 JMP D4 /V3C 002220 1654 D5, TAD I CC231 002221 7041 CIA 002222 1255 TAD CC23 002223 7640 SZA CLA /ARE WE OUTPUTTING FF'S IN LISTING? 002224 5233 JMP BEGIS3 /NO 002225 1256 TAD CC24 /YES - SUBSTITUTE SOME CODE 002226 3657 DCA I CC25 002227 1260 TAD CC26 002230 3661 DCA I CC27 002231 1256 TAD CC24 002232 3662 DCA I CC28 002233 4652 BEGIS3, JMS I OVLL7 /CALL SYSTEM DEVICE 002234 4200 4200 /WRITE 2 PAGES 002235 1000 SWAP1 /FORM SWAP1 002236 0040 ASWAP /INTO TEMP AREA 002237 5653 JMP I OVLL8 /ERROR?! 002240 1415 TAD I LAST2 /MOVE PASS 1&2 ONLY CODE 002241 3411 DCA I TAGXR /OVER PASS3 SWAPPED OUT CODE 002242 2263 ISZ CC29 002243 5240 JMP .-3 IFNZRO HASH< 002244 4664 JMS I CCHSH /FINALLY HASH OUT THE TABLE > 002245 5646 JMP I .+1 002246 4400 START2-1 /OK - NOW GO DO SOME ASSEMBLING! 002247 3672 D4, DCA I CCWLOC /NO - DON'T WIPE LITERALS AS YOU DUMP THEM 002250 3777 DCA I (D3 002251 5220 JMP D5 /V3C /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 45 002252 7607 OVLL7, 7607 002253 2757 OVLL8, SYSER3 002254 1042 CC231, HSWITC 002255 5255 CC23, FORMF1&177+5200 002256 7240 CC24, STA 002257 1055 CC25, FORMF1 002260 3061 CC26, DCA LINCNT 002261 1056 CC27, FORMF1+1 002262 1057 CC28, FORMF1+2 002263 7470 CC29, SWAPB2-SWAPE2 IFNZRO HASH< 002264 7400 CCHSH, HSHSMS > 002265 7643 CCJWD, MPARAM 002266 0004 CCJBIT, 4 002267 5045 CCJLOC, IFTST4 002270 7644 CCWWD, MPARAM+1 002271 0002 CCWBIT, 2 002272 4116 CCWLOC, LITHAK 002273 0102 PLOAD, FILENAME ABSLDR.SV 002274 2314 002275 0422 002276 2326 002277 1714 CKBAT, TAD I CC7777 /GET BATCH FLAG WORD 002300 7106 CLL RTL 002301 7620 SNL CLA /BATCH RUNNING? 002302 5715 JMP I CCOPTM /NO, GO WITH LINK OFF 002303 1714 TAD I CC7777 002304 0316 AND CC0070 /GET BATCH FIELD 002305 1317 TAD CCCIF0 /FORM CIF TO BATCH FIELD 002306 3332 DCA OTYPB1 /MODIFY TTY OUTPUT ROUTINE TO GO TO BATCH 002307 1320 TAD CCJMSB /LOG INSTEAD 002310 3333 DCA OTYPB2 002311 1331 TAD OTYPTD 002312 3334 DCA OTYPB3 002313 5715 JMP I CCOPTM /RETURN TO CORE DETERMINER, LINK SET 002314 7777 CC7777, 7777 002315 5664 CCOPTM, OPTIM4 002316 0070 CC0070, 70 002317 6202 CCCIF0, CIF 0 002320 4516 CCJMSB, JMS I [BATOUT /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 46 /THIS CODE SITS AFTER THE END OF THE LITERAL TABLE 2323 IFNZRO .-LITBF1-200&4000 <*LITBF1+200> 002323 0000 OTYPEO, 0 /TYPE A CHARACTER, CHECKING FOR ^O AND ^C 002324 3342 DCA OTYPEC /SAVE CHAR 002325 4343 JMS CTCCHK /CHECK FOR ^C - RETURN CHAR-203 IN AC 002326 1376 TAD (-14 002327 7650 SNA CLA /^O? 002330 5723 JMP I OTYPEO /YES 002331 1342 OTYPTD, TAD OTYPEC 002332 6046 OTYPB1, TLS 002333 6041 OTYPB2, TSF 002334 5333 OTYPB3, JMP .-1 /WAIT FOR TTY 002335 1136 TAD [-215 002336 7640 OTYPCR, SZA CLA /SET TO CLA DURING "ERRORS DETECTED" STUFF 002337 5723 JMP I OTYPEO 002340 1144 TAD [212 /IF CHAR WAS CR, TYPE LF 002341 5324 JMP OTYPEO+1 002342 0000 OTYPEC, 0 002343 0000 CTCCHK, 0 /CHECK FOR ^C 002344 1176 TAD [200 002345 6034 KRS /OR IN KEYBOARD CHAR 002346 1375 TAD (-203 002347 7450 SNA 002350 6031 KSF /3B BUT WAS CHAR REALLY THERE? 002351 5743 JMP I CTCCHK /NO ^C - RETURN 002352 5553 JMP I [7600 /RETURN TO OS/8 002353 4562 TTLMSG, "E-240^100+"R-240 /ERRORS DETECTED: 002354 6257 "R-240^100+"O-240 002355 6263 "R-240^100+"S-240 002356 0044 "D-240 002357 4564 "E-240^100+"T-240 002360 4543 "E-240^100+"C-240 002361 6445 "T-240^100+"E-240 002362 4432 "D-240^100+":-240 002363 0000 0 002364 5451 "L-240^100+"I-240 /LINKS GENERATED: 002365 5653 "N-240^100+"K-240 002366 6300 "S-240^100 002367 4745 "G-240^100+"E-240 002370 5645 "N-240^100+"E-240 002371 6241 "R-240^100+"A-240 002372 6445 "T-240^100+"E-240 002373 4432 "D-240^100+":-240 002374 0000 0 002375 7575 002376 7764 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 46-1 002377 4126 2400 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 47 /OUTPUT A CHARACTER TO OUTPUT DEVICE /CALLED BY JMS I OCHAR /WITH CHARACTER IN 8-BIT ASCII IN AC 002400 0025 OUTPT1, PUNCHX /PASS 2=PUNCHX; 3=XLISTX 002401 0000 OUTPUT, 0 002402 0120 AND [377 /MASK OUT LEFT 4 BITS 002403 3311 DCA OUTPT2 /STORE 002404 1600 TAD I OUTPT1 /IS THIS PASS 3 AND 002405 7450 SNA 002406 1303 TAD OUTINH /IS THIS COVERED BY XLIST? 002407 7640 SZA CLA 002410 5601 JMP I OUTPUT /YES--RETURN-- 002411 1311 TAD OUTPT2 /NO - GET CHARACTER 002412 0176 AND [200 002413 7650 SNA CLA 002414 1311 TAD OUTPT2 /IF LESS THAN 200, THEN 002415 1055 TAD CHKSUM /ADD IT TO CHECKSUM 002416 3055 DCA CHKSUM 002417 1311 TAD OUTPT2 /GET CHARACTER 002420 1377 TAD (-211 /IS IT A TAB? 002421 7640 SZA CLA 002422 5230 JMP OUTPT3 /NO 002423 2064 ISZ LSTCNT /YES - COUNT IT 002424 1064 TAD LSTCNT 002425 0161 AND [7 002426 7640 SZA CLA 002427 5223 JMP .-4 002430 4237 OUTPT3, JMS OUTPUX /NO - OUTPUT CHARACTER 002431 1311 TAD OUTPT2 /IS IT LINE FEED? 002432 1376 TAD (-212 002433 7640 SZA CLA 002434 5601 JMP I OUTPUT /NO--RETURN-- 002435 3064 DCA LSTCNT /YES - RESET LSTCNT 002436 5601 JMP I OUTPUT /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 48 /OUTPUT THE CHARACTER /PACKS CHARACTERS IN STANDARD OS/8 FORMAT 002437 0000 OUTPUX, 0 002440 2241 ISZ OUJMP /BUMP 3-WAY SWITCH 002441 7402 OUJMP, HLT /WILL BE CHANGED - SHOULD NEVER HALT 002442 5275 JMP OCHAR1 /CHARACTER #1 002443 5272 JMP OCHAR2 /CHARACTER #2 002444 1311 OCHAR3, TAD OUTPT2 /CHARACTER #3 002445 7106 CLL RTL 002446 7006 RTL 002447 0116 AND [7400 002450 1705 TAD I OUPOLD /ADD 4 BITS TO WORD 1 002451 3705 DCA I OUPOLD 002452 1311 TAD OUTPT2 002453 7112 CLL RTR 002454 7012 RTR 002455 7010 RAR 002456 0116 AND [7400 002457 1706 TAD I OUPTR /ADD 4 BITS TO WORD 2 002460 3706 DCA I OUPTR 002461 1307 TAD OUJMPE 002462 3241 DCA OUJMP /RESET SWITCH 002463 2306 ISZ OUPTR 002464 2310 ISZ OUDWCT /BUFFER FULL? 002465 5277 JMP OUCHLV /NO 002466 1176 TAD [200 /YES 002467 4775 JMS I (OUTDMP /DUMP BUFFER 002470 4312 JMS OUSETP /RESET POINTERS 002471 5277 JMP OUCHLV /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 49 002472 1306 OCHAR2, TAD OUPTR /SAVE POINTER 002473 3305 DCA OUPOLD 002474 2306 ISZ OUPTR 002475 1311 OCHAR1, TAD OUTPT2 002476 3706 DCA I OUPTR /SET 8 BIT WORD 002477 1311 OUCHLV, TAD OUTPT2 / TAD [40 / AND [100 /CHECK FOR PRINTABLE CHAR / SZA CLA /IF IT IS, 002500 1171 TAD [-240 002501 7700 SMA CLA 002502 2064 ISZ LSTCNT /BUMP TAB COUNT 002503 0000 OUTINH, 0 /ALWAYS 0 OR 1! 002504 5637 JMP I OUTPUX /--RETURN-- 002505 0000 OUPOLD, 0 002506 0000 OUPTR, 0 002507 5241 OUJMPE, JMP OUJMP 002510 0000 OUDWCT, 0 002511 0000 OUTPT2, 0 002512 0000 OUSETP, 0 002513 1153 TAD [7600 /SET OUTPUT WORD COUNT 002514 3310 DCA OUDWCT /TO 200 002515 1374 TAD (OUBUF 002516 3306 DCA OUPTR /RESET POINTER 002517 1307 TAD OUJMPE 002520 3241 DCA OUJMP /RESET SWITCH 002521 7100 CLL /MUST CLEAR LINK!! 002522 5712 JMP I OUSETP /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 50 /HANDLER FOR DEVICE PSEUDO-OP 002523 4565 DEVICX, JMS I [SPNOR /IGNORE TRAILING SPACES 002524 1115 TAD [-5 002525 5336 JMP DEVIC1 /PACK 4 CHARACTERS /HANDLER FOR FILENAME PSEUDO-OP 002526 4565 FILENX, JMS I [SPNOR /IGNORE TRAILING SPACES 002527 1373 TAD (-7 002530 4340 JMS FILE1 /PACK 6 CHARACTERS 002531 1040 TAD CHAR 002532 1114 TAD [-". /WAS CHARACTER . ? 002533 7650 SNA CLA 002534 4574 JMS I [GETC /YES-SKIP TO EXTENSION 002535 7346 AC7775 002536 4340 DEVIC1, JMS FILE1 /PACK 2 CHARACTERS 002537 5577 JMP I [LOOKEX /--EXIT TO MAIN-- /PACK CHARACTERS /NEGATIVE OF # OF CHARACTERS TO BE PACKED IN AC ON ENTRY 002540 0000 FILE1, 0 002541 3363 DCA FILE6 /SAVE # OF CHARACTERS TO PACK 002542 3772 DCA I (TEXT6 /RESET PACK SWITCH 002543 4771 FILE4, JMS I (TSTALN /IS CHARACTER IN CHAR ALPHANUMERIC? 002544 7410 SKP 002545 5360 JMP FILE5 /NO-DONE PACKING 002546 2363 ISZ FILE6 /YES-TOO MANY CHARACTERS? 002547 5353 JMP FILE3 /NO-O.K. 002550 7240 CLA CMA /YES 002551 3363 DCA FILE6 /RESET # OF CHARACTERS AND IGNORE 002552 5355 JMP FILE2 002553 1040 FILE3, TAD CHAR 002554 4770 JMS I (TEXT2 /PACK A CHARACTER 002555 4574 FILE2, JMS I [GETC /GET A CHARACTER 002556 5343 JMP FILE4 /TEST IT 002557 4770 JMS I (TEXT2 /PACK A ZERO CHAR 002560 2363 FILE5, ISZ FILE6 /ARE WE DONE? 002561 5357 JMP .-2 /NO - PAD WITH ZEROES 002562 5740 JMP I FILE1 /YES--RETURN-- 002563 0000 FILE6, 0 002570 2651 002571 5146 002572 2665 002573 7771 002574 5600 002575 2730 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 50-1 002576 7566 002577 7567 2600 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 51 /HANDLER FOR TEXT PSEUDO-OP /SPACES ARE IGNORED TO DELIMITER /DELIMITER IS FIRST PRINTING CHARACTER /OTHER THAN SPACE /NON-PRINTING CHARACTERS ARE ILLEGAL /A PRINTING CHARACTER HAS EITHER BIT 5 /OR BIT 6 SET, BUT NOT BOTH 002600 4574 TEXT8, JMS I [GETC /GET NEXT CHARACTER 002601 7330 TEXTX, CLL CLA CML RAR /AC=4000 002602 3063 DCA GETCI /; AND / ARE NOT END OF LINE 002603 4236 JMS TEXT1A /CHECK FOR PRINTING CHARACTER 002604 5200 JMP TEXT8 /NON PRINTING - IGNORE 002605 1171 TAD [-240 /IGNORE SPACES UNTIL DELIMITER 002606 7450 SNA /HAS BEEN FOUND 002607 5200 JMP TEXT8 002610 1166 TAD [240 /RESTORE CHARACTER 002611 7041 CIA 002612 3035 DCA VALUE2 /STORE NEGATIVE DELIMITER 002613 3265 DCA TEXT6 /SET PACKING SWITCH 002614 4574 TEXT3, JMS I [GETC /GET NEXT CHARACTER 002615 4236 JMS TEXT1A /IS IT A PRINTING CHARACTER? 002616 5233 JMP TEXT9 /NO - IC 002617 1035 TAD VALUE2 /YES - IS IT DELIMITER? 002620 7650 SNA CLA 002621 5225 JMP TEXT4 /YES - TERMINATE 002622 1040 TAD CHAR /NO - PACK AND OUTPUT 002623 4251 JMS TEXT2 /PACK IT 002624 5214 JMP TEXT3 002625 3063 TEXT4, DCA GETCI /RESET GETCI TO CALL ; AND / END OF LINE 002626 4574 JMS I [GETC /SKIP DELIMITER 002627 4251 TEXT4X, JMS TEXT2 /OUTPUT 0 TO FILE 002630 4251 JMS TEXT2 /CHANGE TEXT4X TO: / NOP /FOR NO EXTRA WORD OF ZEROS 002631 3063 DCA GETCI /RESET GETCI IN CASE WE HIT CR 002632 5577 JMP I [LOOKEX /--EXIT TO MAIN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 52 002633 4541 TEXT9, JMS I [ERROR /GENERATE IC ERROR MESSAGE 002634 5143 IC 002635 5214 JMP TEXT3 /SKIP ON PRINTING CHARACTER 002636 0000 TEXT1A, 0 002637 1040 TAD CHAR 002640 7750 SPA SNA CLA /IS CHARACTER - 002641 5227 JMP TEXT4X /YES 002642 1040 TAD CHAR 002643 1113 TAD [40 002644 0112 AND [100 002645 7640 SZA CLA /IS THE CHAR PRINTING? 002646 2236 ISZ TEXT1A /YES - INCREMENT RETURN 002647 1040 TAD CHAR /WITH CHARACTER IN AC 002650 5636 JMP I TEXT1A /--RETURN-- /OUTPUT 2 TEXT CHARACTERS (ONE REGISTER) /ENTER WITH CHARACTERS IN AC 002651 0000 TEXT2, 0 002652 0175 AND [77 /GET RIGHT 6 BITS 002653 2265 ISZ TEXT6 /WHICH HALF OF WORD? 002654 5260 JMP TEXT5 /LEFT 002655 1266 TAD TEXT7 /RIGHT--ADD IN LEFT HALF 002656 4511 JMS I [PUNBIN /OUTPUT IT 002657 5651 JMP I TEXT2 /--RETURN-- 002660 4567 TEXT5, JMS I [RTL6 /GET LEFT HALF OF WORD 002661 3266 DCA TEXT7 /SAVE IT 002662 7240 CLA CMA /SET SWITCH FOR RIGHT HALF 002663 3265 DCA TEXT6 002664 5651 JMP I TEXT2 /--RETURN-- 002665 0000 TEXT6, 0 002666 0000 TEXT7, 0 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 53 /HANDLER FOR EXPUNGE PSEUDO-OP 002667 1051 EXPUNX, TAD PASS /IS THIS PASS 1 002670 7700 SMA CLA 002671 5577 JMP I [LOOKEX /NO--EXIT TO MAIN-- 002672 5777 JMP I (EXPUNW /YES-CONTINUE AT EXPUNW /CLOSE OUTPUT FILE 002673 0000 OCLOSE, 0 002674 1776 TAD I (OUTINH /OUTPUT INHIBITED? 002675 7640 SZA CLA 002676 5673 JMP I OCLOSE /YES--RETURN-- 002677 1110 PTPSW, TAD [232 /NO-0 IF PTP: - OUTPUT ^Z 002700 4447 JMS I OCHAR 002701 4447 JMS I OCHAR /AND ZEROS 002702 4447 FILLLP, JMS I OCHAR 002703 1154 DIRSW, TAD [177 /TAD [77 IF NOT DIRECTORY 002704 0775 AND I (OUDWCT /FILL OUT BUFFER OR HALF BUFFER 002705 7640 SZA CLA /WITH ZEROS 002706 5302 JMP FILLLP 002707 1775 TAD I (OUDWCT /IS THERE OUTPUT TO BE DUMPED? 002710 1176 TAD [200 002711 7440 SZA 002712 4330 JMS OUTDMP /YES - DUMP IT 002713 1323 TAD OUFILE /GET DEVICE NUMBER IN AC 002714 6212 CIF 10 002715 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 002716 0004 4 /*CLOSE OUTPUT FILE* 002717 0000 OUCNAM, 0 /POINTER TO FILENAME TO BE DELETED 002720 0000 OUCCNT, 0 /LENGTH OF NEW PERMANENT FILE 002721 5357 JMP SYSER3 /DE**FATAL ERROR** 002722 5673 JMP I OCLOSE /--RETURN-- 002723 0000 OUFILE, ZBLOCK 5 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 54 /OUTPUT DUMP /AC CONTAINS CONTROL WORD FOR DUMP 002730 0000 OUTDMP, 0 002731 1141 TAD [4000 /BE SURE CONTROL WORD IS 002732 3354 DCA OUCTLW /A WRITE OPERATION 002733 1364 TAD OUBLK /GET STARTING BLOCK NUMBER 002734 1320 TAD OUCCNT /ADD IN COUNT 002735 3356 DCA OUREC /SET THIS BLOCK NUMBER 002736 1354 TAD OUCTLW 002737 1112 TAD [100 /ROUND HALF-BLOCK, IF ANY 002740 7106 CLL RTL 002741 7006 RTL 002742 7006 RTL 002743 0107 AND [17 /GET THIS COUNT 002744 1320 TAD OUCCNT 002745 3320 DCA OUCCNT /ADD TO TOTAL COUNT 002746 1320 TAD OUCCNT /IS OUTPUT DEVICE FULL? 002747 7120 CLL CML 002750 1365 TAD OUELEN /CHECK AGAINST MAXIMUM LENGTH 002751 7660 SNL SZA CLA 002752 5366 JMP SYSER2 /DF**FATAL ERROR** 002753 4763 JMS I OUHNDL /CALL OUTPUT DEVICE HANDLER 002754 0000 OUCTLW, 0 /CONTROL WORD 002755 5600 OUBUF /BEGINNING OF OUTPUT BUFFER 002756 0000 OUREC, 0 /STARTING BLOCK NUMBER 002757 7610 SYSER3, CLA SKP /ERROR RETURN 002760 5730 JMP I OUTDMP /--RETURN-- 002761 1374 SYSERR, TAD (DE /DE **FATAL ERROR** 002762 5506 JMP I [MONERR 002763 0000 OUHNDL, 0 002764 0000 OUBLK, 0 002765 0000 OUELEN, 0 002766 1373 SYSER2, TAD (DF /GENERATE DF ERROR MESSAGE 002767 5506 JMP I [MONERR /**FATAL ERROR** 002773 4446 002774 4445 002775 2510 002776 2503 002777 1465 3000 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 55 /MAINLINE CODE 003000 0000 LOOKE2, 0 /WAS THIS END OF LINE 003001 1040 TAD CHAR / OR END OF CONDITIONAL? 003002 1105 TAD [-"> 003003 7450 SNA 003004 5240 JMP CONEND /END OF CONDITIONAL 003005 1377 TAD ("> 003006 7700 SMA CLA 003007 5600 JMP I LOOKE2 /NOT END OF LINE--RETURN-- 003010 4574 LOOKE1, JMS I [GETC /GET A CHARACTER 003011 4776 MAIN, JMS I (CTCCHK /CHECK FOR ^C 003012 7200 CLA /** CTCCHK RETURNS AC NON-ZERO! 003013 4565 JMS I [SPNOR /IGNORE SPACES 003014 1040 TAD CHAR 003015 1375 TAD (-"$ /WAS IT $ ? 003016 7450 SNA /YES-- 003017 5774 JMP I (ENDPAS /NO-END THIS PASS 003020 1373 TAD ("$-"* 003021 7650 SNA CLA /WAS IT * ? 003022 5247 JMP STAR /YES-HANDLE * 003023 4546 JMS I [TSTALP /NO-WAS IT ALPHABETIC? 003024 5303 JMP ALPHA /YES 003025 4200 JMS LOOKE2 /NO 003026 4562 TOEXP, JMS I [EXP /GET REST OF EXPRESSION 003027 1070 TAD LININD 003030 3067 DCA LINKSW /STORE LINK SWITCH 003031 1034 TAD VALUE 003032 4511 JMS I [PUNBIN /OUTPUT THE REGISTER 003033 4565 LOOKEX, JMS I [SPNOR /IGNORE TRAILING SPACES 003034 4200 JMS LOOKE2 /IS LINE ENDED? 003035 4541 ILCHAR, JMS I [ERROR /NO-GENERATE IC ERROR MESSAGE 003036 5143 IC 003037 5245 JMP CONEN1 003040 1053 CONEND, TAD CONDSW /ARE WE INTO CONDITIONALS? 003041 7450 SNA 003042 5235 JMP ILCHAR /NO - > IS ILLEGAL 003043 7001 IAC /ONE LESS CONDITIONAL 003044 3053 DCA CONDSW 003045 4574 CONEN1, JMS I [GETC /GET NEXT CHARACTER 003046 5233 JMP LOOKEX /AND TRY FOR END AGAIN /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 56 /HANDLER FOR * 003047 4574 STAR, JMS I [GETC /GET NEXT CHARACTER AFTER * 003050 4565 JMS I [SPNOR /IGNORE SPACES 003051 4562 JMS I [EXP /GET REST OF EXPRESSION 003052 3032 STAR0, DCA STARSW /ENTER HERE FROM RELOC WITH AC = -1 003053 2065 ISZ UNDFSW /WAS ANYTHING UNDEFINED? 003054 5257 JMP .+3 003055 4541 JMS I [ERROR /YES-GENERATE UO ERROR MESSAGE 003056 6557 UO 003057 1034 TAD VALUE /NO 003060 3033 DCA OP 003061 1027 TAD LOC /IS THIS THE SAME PAGE AS 003062 0153 AND [7600 /THE PREVIOUS CODE? 003063 7041 CIA 003064 1033 TAD OP 003065 0153 AND [7600 003066 7650 SNA CLA 003067 5275 JMP STAR2 /YES-PUNCH ORIGIN 003070 4564 JMS I [DUMPS /NO-DUMP LITERALS 003071 1031 TAD OFSBUF /SET OFFSET TO NEW VALUE 003072 3030 DCA OFFSET /AFTER LITERALS ARE DUMPED. 003073 1033 TAD OP /PUNCH NEW ORIGIN, SET "VALUE" 003074 5772 JMP I (STAR3 /FOR LISTING, AND SET UP IN NEW PAGE 003075 1031 STAR2, TAD OFSBUF /SET OFFSET TO NEW VALUE 003076 3030 DCA OFFSET / 003077 1033 TAD OP 003100 4552 JMS I [PUNORG /PUNCH ORIGIN 003101 3014 DCA LAST1 /CLEAR LAST DEFINED SYMBOL 003102 5547 JMP I [PUNVAL 003103 4544 ALPHA, JMS I [GETTAG /PICK UP TAG-IS IT IN TABLE? 003104 3062 DCA ALPHAI /STORE UNDEFINED TAG SWITCH 003105 1022 TAD TAG3 /IS IT A PSEUDO-OP? 003106 7710 SPA CLA 003107 5435 JMP I VALUE2 /YES-GO TO ITS HANDLER 003110 1040 TAD CHAR /NO 003111 1371 TAD (-", /WAS IT TERMINATED BY , ? 003112 7450 SNA 003113 5321 JMP COMMA /YES-DEFINE THE SYMBOL 003114 1370 TAD (",-"= /NO-WAS IT TERMINATED BY = ? 003115 7650 SNA CLA 003116 5767 JMP I (EQUAL /YES-EQUATE THE SYMBOL 003117 7330 AC4000 /NO 003120 5226 JMP TOEXP /TREAT AS AN EXPRESSION /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 57 /HANDLER FOR , 003121 4574 COMMA, JMS I [GETC /GET NEXT CHARACTER 003122 2062 ISZ ALPHAI /WAS TAG DEFINED PREVIOUSLY? 003123 5340 JMP COMMA2 /YES 003124 1027 TAD LOC /NO-STORE CURRENT ADDRESS FOR DEFINITION 003125 3035 DCA VALUE2 003126 4542 JMS I [INSRTG /PUT TAG IN SYMBOL TABLE 003127 1020 COMMA1, TAD TAG1 /STORE FOR ERROR MESSAGE OUTPUT 003130 3014 DCA LAST1 003131 1021 TAD TAG2 003132 3015 DCA LAST2 003133 1022 TAD TAG3 003134 3016 DCA LAST3 003135 1035 TAD VALUE2 003136 3017 DCA LAST4 003137 5211 JMP MAIN /--EXIT TO MAIN-- 003140 1027 COMMA2, TAD LOC /DO NEW AND OLD DEFINITIONS AGREE? 003141 7041 CIA 003142 1035 TAD VALUE2 003143 7650 SNA CLA 003144 5327 JMP COMMA1 /YES-ALLOW REDEFINITION 003145 4541 JMS I [ERROR /NO-GENERATE ID ERROR MESSAGE 003146 5144 ID 003147 5211 JMP MAIN /--EXIT TO MAIN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 58 003150 3600 OPTABL, OP0 /+ 003151 3656 OP1 /- 003152 5435 OP6 /% 003153 3644 OP2 /& 003154 3665 OP5 /(SPACE) 003155 3665 OPEXPL, OP5 /! - CHANGED TO OP3 IF /B ON 003156 3647 OP4 /^ 003157 0000 XCHANG, 0 003160 1034 TAD VALUE 003161 0160 AND [30 003162 7450 SNA 003163 5366 JMP .+3 003164 1156 TAD [7700 003165 4447 JMS I OCHAR 003166 5757 JMP I XCHANG 003167 0510 003170 7757 003171 7524 003172 0456 003173 7772 003174 4425 003175 7534 003176 2343 003177 0276 3200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 59 /EXPRESSION PROCESSOR /POSSIBLE RECURSIVE ENTRY /ENTER WITH CHARACTER IN CHAR 003200 0000 EXP, 0 003201 3054 DCA EXPIND /SET INDICATOR (NOT 0 IF NO MRI FOUND) 003202 3070 DCA LININD /CLEAR LINK GENERATED SWITCH (' ) 003203 3034 DCA VALUE /START WITH "VALUE" = 0 003204 3065 DCA UNDFSW /CLEAR UNDIFINED SWITCH 003205 1200 TAD EXP 003206 4543 JMS I [PUSHA /SAVE RETURN ADDRESS 003207 3033 DCA OP /OP=0; ADD 003210 1054 TAD EXPIND 003211 7710 SPA CLA 003212 5777 JMP I (EXPINT 003213 1040 TAD CHAR /IS CHARACTER A + ? 003214 1376 TAD (-"+ 003215 7112 CLL RTR /PUT THE 2 BIT IN THE LINK 003216 7640 SZA CLA /WAS CHAR 53(+) OR 55(-)? 003217 5224 JMP EXP1A /NO 003220 7004 RAL /YES - OP IS 0 OR 1, DEPENDING 003221 3033 EXP1, DCA OP 003222 4574 JMS I [GETC /GET NEXT CHARACTER 003223 2054 ISZ EXPIND /MRI NO LONGER LEGAL ON THIS LINE 003224 1040 EXP1A, TAD CHAR /IS CHARACTER A . ? 003225 1114 TAD [-". 003226 7450 SNA 003227 5337 JMP PERIOD /YES-GO TO . HANDLER 003230 1375 TAD (".-"" /NO-IS IT " ? 003231 7450 SNA 003232 5342 JMP QUOTE /YES-GO TO " HANDLER 003233 1374 TAD (""-"[ /NO-IS IT [ ? 003234 7100 CLL 003235 7440 SZA 003236 1373 TAD ("[-"( /OR (? 003237 7650 SNA CLA 003240 5772 JMP I (LIT /YES - LITERAL - LINK HOLDS WHICH KIND 003241 4546 JMS I [TSTALP /NO-IS IT ALPHABETIC? 003242 5771 JMP I (ALPHA1 /YES-HANDLE SYMBOL 003243 4504 JMS I [TSTNUM /NO-IS IT NUMERIC? 003244 5300 JMP NUMBER /YES-HANDLE NUMBER 003245 4256 EXP2, JMS ENDCHK /NO-CHECK FOR END 003246 5224 JMP EXP1A /NOGO - TRY AGAIN 003247 1033 TAD OP 003250 1132 TAD [-4 /IS OP SPACE (4) 003251 7650 SNA CLA 003252 5770 JMP I (EXPXIT /YES-EXIT 003253 4541 JMS I [ERROR 003254 5143 IC /GIVE IC MESSAGE ON ILLEGAL OPERATOR 003255 5777 JMP I (EXPINT /EXIT ANYWAY /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 60 /END OF EXPRESSION CHECK /SKIP IF OK 003256 0000 ENDCHK, 0 003257 1040 TAD CHAR 003260 1367 TAD (-"] /IS CHARACTER A ] ? 003261 7440 SZA /YES-SKIP A EXIT 003262 1366 TAD ("]-") /IS CHARACTER A ) ? 003263 7440 SZA /YES-SKIP A EXIT 003264 1365 TAD (")-"> /IS CHARACTER A > ? 003265 7440 SZA /YES-SKIP AND EXIT 003266 1364 TAD (">-"< /IS CHARACTER A < ? 003267 7450 SNA 003270 5276 JMP ENDCH1 /YES-SKIP AND EXIT 003271 1363 TAD ("< 003272 7710 SPA CLA /IS IT END-OF-LINE? 003273 5276 JMP ENDCH1 /YES-SKIP AND EXIT 003274 4545 JMS I [ICMESG /NO - GENERATE IC MESSAGE AND GET NEXT CHAR 003275 5656 JMP I ENDCHK /--RETURN-- 003276 2256 ENDCH1, ISZ ENDCHK /INCREMENT RETURN ADDRESS 003277 5656 JMP I ENDCHK /--RETURN-- 003300 3043 NUMBER, DCA TEMP 003301 1024 NUMBE2, TAD RADIX /IS THE CURRENT RADIX OCTAL? 003302 7650 SNA CLA 003303 1040 TAD CHAR /YES-IS THE DIGIT GREATER THAN 7? 003304 1362 TAD (-"8 003305 7700 SMA CLA 003306 5335 JMP NUMBE3 /YES-ILLEGAL CHARACTER 003307 1043 TAD TEMP /NO-ADD IT TO THE PREVIOUS 003310 7104 CLL RAL /ACCUMULATED VALUE 003311 7104 CLL RAL 003312 3045 DCA TEMP2 003313 1024 TAD RADIX /IS RADIX OCTAL? 003314 0043 AND TEMP /NO 003315 1045 TAD TEMP2 /YES 003316 7104 CLL RAL 003317 1040 TAD CHAR 003320 1361 TAD (-"0 003321 3043 DCA TEMP 003322 4574 JMS I [GETC /GET NEXT CHARACTER 003323 4504 NUMBE4, JMS I [TSTNUM /IS IT NUMERIC? 003324 5301 JMP NUMBE2 /YES-CONTINUE ACCUMULATING NUMBER 003325 1043 TAD TEMP /NO-STORE NUMBER 003326 3035 NUMBE1, DCA VALUE2 003327 1033 NUMBE5, TAD OP /GO COMBINE IT VIA LAST OPERATION 003330 1360 TAD (OPTABL 003331 3043 DCA TEMP /FIND THE OPERATOR HANDLER 003332 1443 TAD I TEMP 003333 3043 DCA TEMP /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 60-1 003334 5443 JMP I TEMP /GO TO THE HANDLER /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 61 /8 OR 9 FOUND DURING OCTAL RADIX 003335 4545 NUMBE3, JMS I [ICMESG /GENERATE IC ERROR MESSAGE AND 003336 5323 JMP NUMBE4 /IGNORE CHARACTER /HANDLER FOR . 003337 4574 PERIOD, JMS I [GETC /GET NEXT CHARACTER 003340 1027 TAD LOC /MAKE CURRENT LOCATION 003341 5326 JMP NUMBE1 /INTO VALUE OF NUMBER /HANDLER FOR " 003342 2037 QUOTE, ISZ TXTPTR 003343 1437 TAD I TXTPTR /GET CHARACTER FROM TEXT BUFFER 003344 1136 TAD [-215 /WAS IT CARRIAGE RETURN? 003345 7650 SNA CLA 003346 5353 JMP QUOTE1 /YES-IT IS IC-IGNORE " 003347 1437 TAD I TXTPTR /NO-PUT ASCII CODE INTO 003350 3035 DCA VALUE2 /VALUE WORD 003351 4574 JMS I [GETC /GET NEXT CHARACTER 003352 5327 JMP NUMBE5 /RETURN TO EXPRESSION PROCESSOR /CARRIAGE RETURN FOUND IN SINGLE CHARACTER TEXT 003353 4541 QUOTE1, JMS I [ERROR /GENERATE IC ERROR MESSAGE 003354 5143 IC 003355 7240 CLA CMA 003356 3040 DCA CHAR 003357 5770 JMP I (EXPXIT 003360 3150 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 3400 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 62 /COME HERE IF FIRST THING IN EXPRESSION IS ALPHA CHARACTER 003400 4544 ALPHA1, JMS I [GETTAG /PICK UP TAG 003401 3062 DCA ALPHAI /STORE UNDEFINED INDICATOR 003402 1022 ALPHA3, TAD TAG3 /IS IT A PSEUDO-OP? 003403 7700 SMA CLA 003404 5207 JMP .+3 003405 4541 JMS I [ERROR /YES-GENERATE IP ERROR MESSAGE 003406 5160 IP 003407 2062 ISZ ALPHAI /NO-WAS IT UNDEFINED? 003410 5217 JMP ALPHA0 003411 2065 ISZ UNDFSW /YES-SET UNDEFINED SWITCH 003412 1051 TAD PASS /IS THIS PASS 1? 003413 7710 SPA CLA 003414 5217 JMP ALPHA0 /YES-SUPPRESS ERROR MAESSAGE 003415 4541 JMS I [ERROR /NO-GENERATE US ERROR MESSAGE 003416 6563 US 003417 1021 ALPHA0, TAD TAG2 /NO-WAS IT A MEMORY REFERENCE INSTRUCTION? 003420 7710 SPA CLA 003421 1040 TAD CHAR /YES-GET TERMINATING CHARACTER 003422 1171 TAD [-240 /WAS IT SPACE? 003423 7640 SZA CLA 003424 5777 JMP I (NUMBE5 /NOT MEMREF FOLLOWED BY SPACE 003425 4565 JMS I [SPNOR /YES-IGNORE SPACES 003426 1040 TAD CHAR 003427 7710 SPA CLA 003430 5777 JMP I (NUMBE5 003431 1054 TAD EXPIND /IS MEMORY REFERENCE INSTRUCTION OK? 003432 7640 SZA CLA 003433 5777 JMP I (NUMBE5 /NO- 003434 3056 DCA IZIND /YES-CLEAR I AND Z INDICATOR 003435 1035 TAD VALUE2 /STORE MRI ON PUSHDOWN LIST 003436 4543 JMS I [PUSHA /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 63 003437 1056 ALPHA6, TAD IZIND 003440 4543 JMS I [PUSHA /PUSH THE I AND Z INDICATOR 003441 4546 JMS I [TSTALP /WAS TERMINATING CHARACTER ALPHABETIC? 003442 7410 SKP 003443 5266 JMP ALPHA4 /NO- 003444 4544 JMS I [GETTAG /YES-PICK UP TAG 003445 3062 DCA ALPHAI /STORE UNDEFINED INDICATOR 003446 7332 AC2000 003447 0020 AND TAG1 /WAS IT AN I OR Z? 003450 7650 SNA CLA 003451 5265 JMP ALPHA5 /NO 003452 1035 TAD VALUE2 /YES-WAS IT I? 003453 7450 SNA 003454 7001 IAC /NO - SET LOW ORDER 003455 1410 TAD I PDLXR /GET OLD IZIND FROM PDL 003456 3056 DCA IZIND /SET NEW IZIND 003457 4565 JMS I [SPNOR /IGNORE SPACES 003460 5237 JMP ALPHA6 003461 1054 EXPINT, TAD EXPIND 003462 1141 TAD [4000 003463 3054 DCA EXPIND 003464 5202 JMP ALPHA3 003465 7330 ALPHA5, AC4000 003466 7001 ALPHA4, IAC 003467 4562 JMS I [EXP /GET REST OF EXPRESSION 003470 1410 TAD I PDLXR /RETRIEVE MRI 003471 3056 DCA IZIND 003472 1410 TAD I PDLXR 003473 3035 DCA VALUE2 /FALL INTO NEXT PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 64 /COMBINE ADDRESS WITH MEMORY REFERENCE INSTRUCTION 003474 1034 TAD VALUE /GET ADDRESS 003475 0153 AND [7600 003476 7450 SNA /IS IT PAGE 0? 003477 5330 JMP FIX4 /YES 003500 7041 CIA /NO-IS IT ON CURRENT PAGE? 003501 1027 TAD LOC 003502 0153 AND [7600 003503 7650 SNA CLA 003504 5317 JMP FIX2 /YES 003505 1034 TAD VALUE /NO-SET UP LINK 003506 4776 JMS I (FINDS 003507 3034 DCA VALUE 003510 1313 TAD FIXMD0 /SET ' IN LISTING 003511 3070 DCA LININD 003512 2077 ISZ LINK /BUMP NUMBER OF LINKS GENERATED 003513 0700 FIXMD0, 0700 /PROTECTION FOR ISZ 003514 7410 LGERR, SKP /JMS I PERROR IF /E SPECIFIED 003515 5447 LG 003516 4343 JMS ADDIND /SET INDIRECT BIT IN INSTRUCTION 003517 1176 FIX2, TAD [200 /SET CURRENT PAGE BIT 003520 1035 TAD VALUE2 003521 3035 DCA VALUE2 003522 1056 TAD IZIND 003523 0175 AND [77 /WAS Z SPECIFIED? 003524 7650 SNA CLA 003525 5330 JMP FIX4 /NO 003526 4541 JMS I [ERROR /YES - ILLEGAL REFERENCE 003527 5172 IZ /TO PAGE 0 003530 1056 FIX4, TAD IZIND /WAS THERE AN I? 003531 0156 AND [7700 003532 7640 SZA CLA 003533 4343 JMS ADDIND /YES - ADD INDIRECT BIT TO INSTRUCTION 003534 1034 TAD VALUE /GET ADDRESS 003535 0154 AND [177 003536 1035 TAD VALUE2 /GET OP CODE 003537 3034 DCA VALUE /STORE 003540 1410 POPJ, TAD I PDLXR 003541 3043 DCA TEMP /POP A WORD OFF THE STACK 003542 5443 JMP I TEMP /JUMP THROUGH IT. /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 65 003543 0000 ADDIND, 0 /ROUTINE TO ADD INDIRECT BIT TO AN INSTR 003544 1035 TAD VALUE2 003545 7040 CMA 003546 0126 AND [400 003547 7440 SZA /WAS THERE ONE ALREADY? 003550 5353 JMP .+3 /NO 003551 4541 JMS I [ERROR /YES - ILLEGAL INDIRECT 003552 5151 II 003553 1035 TAD VALUE2 003554 3035 DCA VALUE2 003555 5743 JMP I ADDIND / ALLOWS MULTIPLE NON-RESIDENT INPUT HANDLERS TO NOT BOMB 003556 0000 PTCH, 0 /RUNS IN DF 10 003557 1375 TAD (7647 /POINT TO DEVICE 003560 3003 DCA PTR /HANDLER RESIDENCY TABLE 003561 1103 TAD [-17 /IT HAS 15 ENTRIES 003562 3004 DCA KNTR /V3C 003563 1403 KLOOP, TAD I PTR /GET HANDLER ENTRY POINT 003564 0153 AND [7600 /LOOK AT PAGE IT'S ON 003565 1167 TAD [-INDEVH /IS IT ON THE PAGE WE PUT BUFFER OVER? 003566 7650 SNA CLA /WELL? 003567 3403 DCA I PTR /YES IT IS, WIPE IT FROM RESIDENCY 003570 2003 ISZ PTR /LOOK AT NEXT ENTRY 003571 2004 ISZ KNTR /ANY MORE ENTRIES? 003572 5363 JMP KLOOP /YES, MIGHT HAVE TO WIPE SEVERAL GUYS 003573 1176 TAD [200 /INCREASE INPUT BUFFER SIZE 003574 5756 JMP I PTCH /V3C 003575 7647 003576 4652 003577 3327 3600 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 66 /COMBINE CURRENT VALUE WITH PREVIOUS VALUE /ACCORDING TO LAST OPERATOR 003600 1035 OP0, TAD VALUE2 /HANDLER FOR + 003601 1034 TAD VALUE /** OP0+1 AND OP0+2 JUMPED TO ** 003602 3034 DCA VALUE 003603 1040 EXP3, TAD CHAR /GET LAST OPERATOR 003604 1377 TAD (-"+ /WAS IT A + OR - ? 003605 7112 CLL RTR 003606 7450 SNA 003607 5242 JMP PLSMIN /YES - LINK=0 FOR +, 1 FOR - 003610 7006 RTL 003611 1376 TAD ("+-"% 003612 7110 CLL RAR 003613 7450 SNA /IS THE CHAR % OR &? 003614 5241 JMP DIVAND /YES - LINK=0 FOR %, 1 FOR & 003615 7004 RAL 003616 1375 TAD ("%-240 003617 7110 CLL RAR 003620 7450 SNA /IS THE CHAR SPACE OR !? 003621 5240 JMP BLKEXP /YES - LINK=0 FOR SPACE, 1 FOR ! 003622 7004 RAL 003623 1374 TAD (240-"^ 003624 7650 SNA CLA /IS THE CHAR ^? 003625 5237 JMP MUL /YES - LINK IRRELEVANT 003626 4773 JMS I (ENDCHK /NO-SEE IF END OF LINE FOUND 003627 5203 JMP EXP3 /NO-TRY AGAIN 003630 1065 EXPXIT, TAD UNDFSW /EXIT FROM EXP 003631 7650 SNA CLA /RESTORE EXIT POINT 003632 5772 JMP I (POPJ /--EXIT VIA POPJ-- 003633 7240 CLA CMA 003634 3065 DCA UNDFSW /SET UNDEFINED SWITCH 003635 3034 DCA VALUE /RESULT IS 0 003636 5772 JMP I (POPJ /--EXIT VIA POPJ-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 67 003637 7101 MUL, CLL IAC /LINK DOESN'T COUNT FOR ^ 003640 7001 BLKEXP, IAC /** BLANK ASSUMED TO BE 4 ELSEWHERE ** 003641 7001 DIVAND, IAC 003642 7004 PLSMIN, RAL 003643 5771 JMP I (EXP1 /GET REST OF EXPRESSION /HANDLER FOR & 003644 1034 OP2, TAD VALUE 003645 0035 AND VALUE2 003646 5202 JMP OP0+2 /HANDLER FOR ^ /MULTIPLY BY REPEATED ADDITION 003647 1034 OP4, TAD VALUE 003650 7041 CIA 003651 3043 DCA TEMP 003652 1035 TAD VALUE2 003653 2043 ISZ TEMP 003654 5252 JMP .-2 003655 5202 JMP OP0+2 003656 1035 OP1, TAD VALUE2 /- OPERATOR 003657 7041 CIA 003660 5770 JMP I (OP0+1 /JUMP INTO ADD OPERATOR /OPTIONAL HANDLER FOR ! AS 6 BIT LEFT SHIFT AND THEN OR: 003661 1034 OP3, TAD VALUE 003662 4567 JMS I [RTL6 003663 0156 AND [7700 /ISOLATE 6 BITS AND FALL INTO "OR" 003664 3034 DCA VALUE /V3C /HANDLER FOR ! AND SPACE AS INCLUSIVE OR 003665 1034 OP5, TAD VALUE 003666 7040 CMA 003667 0035 AND VALUE2 003670 5770 JMP I (OP0+1 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 68 /CHARACTER INPUT CHECK /ENTER WITH CHARACTER IN AC 003671 7440 LSTCH9, SZA /IGNORE NULL (0) 003672 1367 TAD (-177 003673 7440 SZA /IGNORE RUBOUT (377) 003674 1366 TAD (177-13 003675 7440 SZA /IGNORE VERTICAL TAB (213) 003676 7001 IAC 003677 7450 SNA 003700 5765 JMP I (INPUT+1 /IGNORE LINE FEED (212) 003701 1102 TAD [12-32 /WAS IT ^Z (END-OF-FILE=232)? 003702 7450 SNA 003703 5764 JMP I (ENDCHR /YES - GET NEXT FILE 003704 1363 TAD (32-15 /NO - WAS IT CARRIAGE RETURN? 003705 7450 SNA 003706 5337 JMP LSTCHR /YES - LAST CHARACTER OF LINE 003707 7001 IAC /NO 003710 7450 SNA /WAS IT FORM FEED (214)? 003711 5353 JMP FORCHR /YES - HANDLER FORM FEED 003712 2762 ISZ I (INPUT 003713 1361 TAD (14+200 003714 3334 DCA LSTCH5 /STORE CHARACTER 003715 1051 TAD PASS /IS THIS PASS 3? 003716 7750 SPA SNA CLA 003717 5324 JMP LSTCH4 /NO - 003720 2335 ISZ LSTCH6 /YES - FILLING HEADER AREA? 003721 5330 JMP LSTCH3 /YES 003722 7240 CLA CMA /NO - RESET SWITCH 003723 3335 DCA LSTCH6 003724 1762 LSTCH4, TAD I (INPUT 003725 3043 DCA TEMP 003726 1334 TAD LSTCH5 /GET CHARACTER IN AC 003727 5443 JMP I TEMP /-EXIT FROM INPUT- 003730 2336 LSTCH3, ISZ LSTCH7 /FILLING HEADER 003731 1334 TAD LSTCH5 /STORE CHARACTER IN HEADER AREA 003732 3736 DCA I LSTCH7 003733 5324 JMP LSTCH4 003734 0000 LSTCH5, 0 003735 7730 LSTCH6, -HEDLEN 003736 1450 LSTCH7, HEADER-1 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 69 003737 1355 LSTCHR, TAD FORMSW /CARRIAGE RETURN WAS FOUND 003740 7650 SNA CLA /HAS THERE BEEN A FORM FEED? 003741 5350 JMP LSTCH1 /NO - 003742 3355 DCA FORMSW /YES - CLEAR FORM FEED SWITCH 003743 2042 ISZ EDITPG /GO TO NEXT EDITOR PAGE 003744 3041 DCA THISPG /CLEAR OVERFLOW PAGE 003745 1051 TAD PASS /IS THIS PASS 3? 003746 7740 SMA SZA CLA 003747 4534 JMS I [FORMFD /YES - GENERATE FORM FEED 003750 1133 LSTCH1, TAD [215 /NO - CARRIAGE RETURN IS CHARACTER 003751 3334 DCA LSTCH5 003752 5322 JMP LSTCH4-2 /EXIT 003753 2355 FORCHR, ISZ FORMSW /SET FORM FEED SWITCH 003754 5765 JMP I (INPUT+1 /GET ANOTHER CHARACTER 003755 0001 FORMSW, 1 003761 0214 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 4000 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 70 /ERROR MESSAGE OUTPUT DUMPS1, 004000 0000 ERROR, 0 004001 7200 CLA 004002 2076 ISZ ERCNT /COUNT THE ERRORS 004003 0253 ERPLUS, "+ /PROTECTION 004004 1600 TAD I ERROR /GET ERROR MESSAGE 004005 2200 ISZ ERROR /INCREMENT RETURN ADDRESS 004006 4526 JMS I [ERROR1 /OUTPUT 2 CHARACTER ERROR MESSAGE 004007 1377 TAD (JMP I [7600 /PUT EXIT TO MONITOR 004010 3776 CSWIT1, DCA I (LSWITC /IN SWITCH - "CLA" IF /C 004011 1051 TAD PASS /IS THIS PASS 3? 004012 7740 SMA SZA CLA 004013 5241 JMP ERROR4 /YES - CARRIAGE RETURN/LINE FEED 004014 4526 JMS I [ERROR1 /NO - OUTPUT 2 SPACES 004015 1172 TAD [1777 /IS THERE A TAG SAVED? 004016 0014 AND LAST1 004017 7450 SNA 004020 5237 JMP ERROR3 /NO 004021 4775 JMS I (DIV45 /YES - OUTPUT FIRST 2 CHARACTERS 004022 1015 TAD LAST2 /OUTPUT SECOND 2 CHARACTERS 004023 4775 JMS I (DIV45 004024 1016 TAD LAST3 004025 4775 JMS I (DIV45 /OUTPUT THIRD 2 CHARACTERS 004026 1017 TAD LAST4 /IS ERROR LOCATION SAME AS LAST TAG? 004027 7041 CIA 004030 1027 TAD LOC 004031 7650 SNA CLA 004032 5241 JMP ERROR4 /YES - CARRIAGE RETURN 004033 1203 TAD ERPLUS 004034 4450 JMS I OERROR 004035 1017 TAD LAST4 004036 7041 CIA 004037 1027 ERROR3, TAD LOC /OUTPUT 4 DIGIT ADDRESS OR INCREMENT 004040 4774 JMS I (OCTPRT 004041 1133 ERROR4, TAD [215 /OUTPUT CARRIAGE RETURN/LINE FEED 004042 4450 JMS I OERROR 004043 5600 JMP I ERROR /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 71 /RESET LITERAL TABLES AND POINTERS DUMPS5, 004044 0000 CLEAN, 0 004045 1373 TAD (LITBUF-1 004046 3012 DCA XREG1 /SET LITERAL TABLE POINTER 004047 1372 TAD (TPINST-1 004050 3013 DCA XREG2 /SET TOP INST. TABLE POINTER 004051 1371 TAD (-40 004052 3043 DCA TEMP 004053 1176 TAD [200 004054 3412 DCA I XREG1 /SET LITERAL TABLE ENTRIES TO 200 004055 3413 DCA I XREG2 /SET TOP INST. TABLE ENTRIES TO 0 004056 2043 ISZ TEMP 004057 5253 JMP .-4 004060 3014 DCA LAST1 /CLEAR LAST DEFINED TAG 004061 5644 JMP I CLEAN /--RETURN-- /DUMP CURRENT PAGE LITERALS 004062 0000 DUMPS, 0 004063 4551 JMS I [FINDSP 004064 7450 SNA /IF THIS IS PAGE 0, 004065 5662 JMP I DUMPS /--RETURN-- 004066 1150 TAD [LITBUF 004067 3200 DCA DUMPS1 004070 1023 TAD LITPTR 004071 7141 CIA CLL 004072 1600 TAD I DUMPS1 004073 3347 DCA DUMPS2 /STORE NUMBER OF LITERALS ON THIS PAGE 004074 7430 SZL /ARE THERE ANY? 004075 5323 JMP D2 /V3C 004076 3032 DCA STARSW /FORCE ORIGIN PUNCH IF RELOC JUST INVOKED 004077 1027 TAD LOC 004100 0153 AND [7600 004101 1600 TAD I DUMPS1 004102 4552 JMS I [PUNORG /OUTPUT ORIGIN 004103 1600 TAD I DUMPS1 004104 1370 TAD (LITBF1 004105 3244 DUMPS3, DCA DUMPS5 004106 1537 TAD I [LINBUF /SAVE LINBUF 004107 4543 JMS I [PUSHA 004110 3537 DCA I [LINBUF 004111 1644 DUMPS6, TAD I DUMPS5 004112 3034 DCA VALUE 004113 4521 JMSPUN, JMS I [PUNONE /OUTPUT ONE REGISTER 004114 2027 ISZ LOC 004115 2244 ISZ DUMPS5 004116 2600 LITHAK, ISZ I DUMPS1 /DESTROY RECORD OF CURRENT PAGE LITERALS - /ZEROED IF NO /W OPTION SPECIFIED 004117 2347 ISZ DUMPS2 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 71-1 004120 5311 JMP DUMPS6 004121 1410 TAD I PDLXR 004122 3537 DCA I [LINBUF /RESTORE LINBUF 004123 1200 D2, TAD DUMPS1 /WIPE REMEMBRANCE OF TOP OF PAGE (JR) 004124 1367 TAD (40 /V3C 004125 3244 DCA DUMPS5 004126 3644 D3, DCA I DUMPS5 004127 5662 JMP I DUMPS /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 72 /HANDLER FOR ZBLOCK PSEUDO-OP /RESERVES AS MANY WORDS OF ZERO /AS VALUE OF EXPRESSION 004130 4565 ZBLOCX, JMS I [SPNOR /IGNORE SPACES 004131 4562 JMS I [EXP /GET THE EXPRESSION 004132 1034 TAD VALUE 004133 7040 CMA /PROTECT AGAINST ZERO CASE 004134 3046 DCA TEMP3 /STORE NEGATIVE AS COUNTER 004135 5342 JMP ZBLOCZ /JUMP INTO LOOP 004136 4511 ZBLOCY, JMS I [PUNBIN /OUTPUT ONE WORD OF ZERO 004137 1051 TAD PASS /IS THIS PASS 3? 004140 7740 SMA SZA CLA 004141 3766 DCA I (PUNMOD /YES - PREVENT OUTPUT 004142 2046 ZBLOCZ, ISZ TEMP3 /NO - DONE YET? 004143 5336 JMP ZBLOCY /NO - CONTINUE 004144 1313 TAD JMSPUN /YES - RESTORE PUNMOD 004145 3766 DCA I (PUNMOD 004146 5577 JMP I [LOOKEX /--EXIT TO MAIN-- /DUMP PAGE 0 LITERALS DUMPS2, 004147 0000 DUMPZ, 0 004150 1347 TAD DUMPZ /RESET EXIT FROM DUMPS 004151 3262 DCA DUMPS 004152 1176 TAD [200 004153 7141 CIA CLL 004154 1550 TAD I [LITBUF /STORE THE NUMBER OF LITERALS ON PAGE 0 004155 3347 DCA DUMPS2 004156 7430 SZL /ARE THERE ANY? 004157 5662 JMP I DUMPS /NO - ** DUMPZ IS DESTROYED ** 004160 1550 TAD I [LITBUF 004161 4552 JMS I [PUNORG /OUTPUT ORIGIN 004162 1550 TAD I [LITBUF /SET VALUES FOR DUMPS 004163 1365 TAD (LITBF2 004164 5305 JMP DUMPS3 004165 2023 004166 1434 004167 0040 004170 2123 004171 7740 004172 2001 004173 1741 004174 1310 004175 4217 004176 4460 004177 5553 4200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 73 /ENTER A TAG INTO SYMBOL TABLE IFZERO HASH< INSRTG, 0 TAD VALUE2 /SAVE VALUE 2 JMS I [PUSHA ISZ HIGHTG /COUNT IN THIS TAG TAD TAGMAX CLL CIA /GET LIMIT OF SYMBOL STORAGE TAD HIGHTG /IS THERE ROOM FOR ONE MORE? SZL JMP I (SYMOFL /NO - SE**FATAL ERROR** TAD TAGMAX /YES - IS USR IN CORE? TAD (-1340 SZL CLA JMP GETTG5 /YES TAD [7700 /NO - RESET ADDRESS TO DCA IOMON /USR NON-RESIDENT AC7776 AND I (JSBITS /RESET JOB STATUS WORD TO DCA I (JSBITS /SAVE CORE WHEN USR CALLED GETTG5, TAD THISTG /SEARCH SYMBOL TABLE DCA TEMP2 TAD HIGHTG IAC DCA THISTG GETTG8, AC7776 TAD THISTG DCA THISTG JMS I [FINDTG /GET NEXT TAG FROM SYMBOL TABLE ISZ THISTG TAD THISTG CIA TAD TEMP2 /DOES NEW TAG GO WHERE PREVIOUS TAG WAS? SNA CLA JMP GETTG9 /YES-PUT IT THERE AND EXIT JMS I [PUTTAG /NO-REPLACE RETRIEVED TAG WHERE PREVIOUS TAG WAS JMP GETTG8 /THE ABOVE CODE WILL BE OPTIMIZED AT INITIALIZATION /IF THE ASSEMBLER IS TO BE RESTRICTED TO 8K OF CORE GETTG9, TAD I (NAME1 /GET CURRENT TAG DCA TAG1 /PUT IT IN TAG1-TAG3 TAD I (NAME2 DCA TAG2 TAD I (NAME3 DCA TAG3 TAD I PDLXR /RESTORE VALUE 2 DCA VALUE2 JMS I [PUTTAG /PUT TAG1 - TAG3 INTO SYMBOL TABLE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 73-1 JMP I INSRTG /--RETURN-- TAGMAX, 1740 /12K=3740, ... > / IFNZRO HASH< /***HACK ONLY*** /TLYREF, 0 /TALLY REFS TO SYMBOL TABLE / ISZ NREFL / JMP I TLYREF / ISZ NREFH / JMP I TLYREF / JMP I TLYREF /TLYPRB, 0 /TALLY PROBES INTO TABLE / JMS I [FINDTG /FUDGE, OUT OF ROOM / ISZ NPROBL / JMP I TLYPRB / ISZ NPROBH / JMP I TLYPRB / JMP I TLYPRB /NREFH, 0 /NREFL, 0 /NPROBH, 0 /NPROBL, 0 / > /***HACK ONLY*** /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 74 IFNZRO HASH< /INSERT A TAG INTO THE HASH TABLE 004200 0000 INSRTG, 0 004201 2060 ISZ HIGHTG /BUMP SYM NUM (SKIPS ON 0) 004202 1060 TAD HIGHTG 004203 7160 STL CMA 004204 1100 TAD TAGMAX 004205 7670 SNA SZL CLA /STILL ROOM FOR AT LEAST 2 MORE? 004206 5777 JMP I (SYMOFL /NO SE** FATAL ERROR** 004207 1776 TAD I (NAME1 004210 3020 DCA TAG1 004211 1775 TAD I (NAME2 004212 3021 DCA TAG2 004213 1774 TAD I (NAME3 004214 3022 DCA TAG3 004215 4540 JMS I [PUTTAG /NOW ACTUALLY INSERT IT 004216 5600 JMP I INSRTG > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 75 /OUTPUT 2 CHARACTER WORD /FROM SYMBOL TABLE FORMAT /DIVIDE BY 45(8) 004217 0000 DIV45, 0 004220 7004 RAL 004221 7110 CLL RAR /CLEAR SIGN BIT 004222 2242 DIV45A, ISZ DIV45C 004223 1373 TAD (-45 004224 7500 SMA 004225 5222 JMP DIV45A 004226 1372 TAD (45 004227 4243 JMS DIV45E 004230 3241 DCA DIV45B 004231 7240 STA 004232 1242 TAD DIV45C 004233 4243 JMS DIV45E 004234 4567 JMS I [RTL6 004235 1241 TAD DIV45B 004236 4526 JMS I [ERROR1 /OUTPUT 2 CHARACTERS 004237 3242 DCA DIV45C /CLEAR DIV45C FOR NEXT GO-ROUND 004240 5617 JMP I DIV45 /--RETURN-- 004241 0000 DIV45B, 0 004242 0000 DIV45C, 0 /** MUST BE 0 WHEN DIV45 IS ENTERED ** 004243 0000 DIV45E, 0 004244 7450 SNA 004245 5643 JMP I DIV45E 004246 1371 TAD (-33 004247 7500 SMA 004250 1370 TAD (20-40-33 004251 1367 TAD (33+40 004252 5643 JMP I DIV45E /--RETURN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 76 /HANDLER FOR FIXTAB PSEUDO-OP 004253 1051 FIXTBX, TAD PASS /IS THIS PASS 1? 004254 7700 SMA CLA 004255 5577 JMP I [LOOKEX /NO--EXIT TO MAIN-- 004256 5766 JMP I (FIXTAY /YES--DO FIXTAB /SET FIELD 004257 0000 SETFLD, 0 004260 7300 CLA CLL /SETFLD CALLED WITH AC RANDOM 004261 3301 DCA SETFL1 /INITIALIZE FIELD IFNZRO HASH< 004262 1303 TAD USROFS /FUDGE FOR KEEPING USR AROUND > 004263 1057 TAD THISTG 004264 2301 SETFLP, ISZ SETFL1 004265 7020 CML 004266 1365 TAD (-1740 /PUT 1740 SYMBOLS IN EACH FIELD 004267 7420 SNL /IS THE DIVIDE THROUGH? 004270 5264 JMP SETFLP /NO - CONTINUE IFZERO HASH< CLL CMA RTL /AC CONTAINED REM-1740; THIS MAKES IT INTO TAD (-1 /7573-4*REM WHICH IS THE ADDRESS WE WANT > IFNZRO HASH< 004271 7106 CLL RTL /AC GETS 0201 TO 7775 004272 1364 TAD (-202 /AC GETS 7777 TO 7573 FOR TAGXR > 004273 3011 DCA TAGXR /TO STICK INTO AN AUTO-XR 004274 1301 TAD SETFL1 004275 7106 CLL RTL 004276 7004 RAL 004277 1317 TAD SETFL2 004300 3301 DCA SETFL1 004301 7402 SETFL1, HLT 004302 5657 JMP I SETFLD /--RETURN-- IFNZRO HASH< 004303 0000 USROFS, 0 /GETS 400 IF KEEPING USR > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 77 /FIND TAG /GET TAG FROM SYMBOL TABLE /PUT IT INTO TAG1-TAG3 /WITH ITS VALUE IN VALUE2 004304 0000 FINDTG, 0 004305 1057 TAD THISTG 004306 4257 JMS SETFLD 004307 1411 TAD I TAGXR 004310 3020 DCA TAG1 004311 1411 TAD I TAGXR 004312 3021 DCA TAG2 004313 1411 TAD I TAGXR 004314 3022 DCA TAG3 004315 1411 TAD I TAGXR 004316 3035 DCA VALUE2 004317 6201 SETFL2, CDF 004320 5704 JMP I FINDTG /--RETURN-- /OPTIMIZATION MAY CHANGE SETFLD TO /REMOVE CLA ON ENTRY 004364 7576 004365 6040 004366 1125 004367 0073 004370 7725 004371 7745 004372 0045 004373 7733 004374 0202 004375 0201 004376 0200 004377 0746 4400 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 78 /BEGINNING OF PASS CODE 004400 4777 JMS I (IOPEN /SET INPUT ROUTINE TO OPEN FILE 004401 2051 START2, ISZ PASS /SET UP COUNTERS AND POINTERS 004402 3026 DCA XLISTX /CLEAR XLIST SWITCH 004403 3072 DCA FLDIND /SET FIELD TO 0 004404 3073 DCA VALUEX /SET BANK TO ZERO(128K) 004405 3053 DCA CONDSW 004406 3042 DCA EDITPG 004407 3077 DCA LINK 004410 3024 DCA RADIX 004411 3076 DCA ERCNT 004412 3063 DCA GETCI 004413 3025 DCA PUNCHX 004414 3537 DCA I [LINBUF 004415 1376 TAD (PDLST 004416 3010 DCA PDLXR 004417 4555 JMS I [CLEAN 004420 1176 TAD [200 004421 3023 DCA LITPTR 004422 1176 TAD [200 004423 4552 JMS I [PUNORG 004424 5775 JMP I (LOOKE1 /--EXIT TO MAIN-- /HANDLER FOR $ 004425 4564 ENDPAS, JMS I [DUMPS /DUMP CURRENT PAGE LITERALS 004426 3031 DCA OFSBUF /CLEAR OFFSET FOR NEXT PASS 004427 1051 TAD PASS /WHAT PASS IS ENDING? 004430 7450 SNA 004431 5774 JMP I (ENDPA2 /PASS 2 004432 7710 SPA CLA 004433 5773 JMP I (START1 /PASS 1 004434 1537 TAD I [LINBUF /PASS 3 004435 7650 SNA CLA /ANYTHING TO PRINT? 004436 5244 JMP ENDPA1-1 /NO 004437 1135 TAD [211 /YES - TAB OVER TWICE 004440 4450 JMS I OERROR 004441 1135 TAD [211 004442 4450 JMS I OERROR 004443 4524 JMS I [LINPRT /PRINT LINE 004444 4563 JMS I [DUMPZ /DUMP PAGE 0 LITERALS 004445 3026 ENDPA1, DCA XLISTX /OUTPUT SYMBOL TABLE 004446 4773 SSWITC, JMS I (SYMPRT /(0 IF /S) 004447 1772 TAD I (FORM21 004450 3771 DCA I (FORM22 004451 4534 JMS I [FORMFD /OUTPUT FORM FEED 004452 1076 ERMSGS, TAD ERCNT 004453 4304 JMS OUTTTL /PRINT "ERRORS DETECTED: N" 004454 1077 TAD LINK /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 78-1 004455 4304 JMS OUTTTL /PRINT "LINKS GENERATED: N" 004456 4534 FINLFF, JMS I [FORMFD /PRINT FINAL FF (ZEROED IF NO PASS 3) 004457 4770 JMS I (OCLOSE /AND CLOSE THE OUTPUT FILE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 79 /CREF AND LOAD-AND-GO OPTIONS /****FINAL EXIT TO MONITOR**** 004460 5517 LSWITC, JMP I [7605 /0 IF /L OR /G OR /C 004461 1367 TAD (7616 004462 3012 DCA XREG1 004463 6211 CDF 10 004464 1553 CSWITC, TAD I [7600 /"TAD I [7605" IF /C 004465 0107 AND [17 004466 3412 DCA I XREG1 /SET BINARY DEVICE 004467 1075 TAD BINSRT /EXIT FROM PAL8 BY CHAINING /TO NEXT PROGRAM /SHOULD BE ABSLDR OR CREF 004470 3412 DCA I XREG1 /SET STARTING BLOCK 004471 3412 DCA I XREG1 /SET 0 TERMINATOR 004472 6201 CDF 004473 1766 TAD I (JSBITS /SET BIT 11 OF JOB STATUS WORD 004474 7010 RAR /SO 10000-11777 IS NOT SAVED 004475 7124 CLL CML RAL 004476 3766 DCA I (JSBITS 004477 1501 TAD I [MREAD-1 /GET OUR DEV: ENTRY KBMV40** 004500 6212 CIF 10 004501 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 004502 0006 6 /*CHAIN TO NEXT PROGRAM* 004503 0000 CHAIN, 0 /STARTING BLOCK OF NEXT PROGRAM 004504 0000 OUTTTL, 0 004505 3014 DCA LAST1 /SAVE NUMBER TO BE PRINTED 004506 1722 OUTTLL, TAD I TTLPTR /GET A WORD OF MESSAGE 004507 2322 ISZ TTLPTR 004510 7450 SNA /END? 004511 5314 JMP PRTTTL /YES 004512 4526 JMS I [ERROR1 /NO - PRINT IT 004513 5306 JMP OUTTLL /AND LOOP 004514 1166 PRTTTL, TAD [240 /PRINT A SPACE 004515 4447 JMS I OCHAR 004516 1014 TAD LAST1 004517 4765 JMS I (FORMF4 /PRINT NUMBER IN DECIMAL 004520 4764 JMS I (CRLF /PRINT CR AND 2 LF'S (1 IF PASS 3) 004521 5704 JMP I OUTTTL /AND RETURN 004522 2353 TTLPTR, TTLMSG /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 80 /COME HERE TO LOAD THE PASS 3 OVERLAY AT THE END OF PASS 2 004523 4763 LOADOV, JMS I (7607 /CALL SYSTEM DEVICE HANDLER 004524 0200 0200 /SWAP IN CODE UNIQUE TO PASS 3 004525 1000 SWAP1 /BUFFER ADDRESS 004526 0040 ASWAP /STARTING BLOCK NUMBER 004527 5762 JMP I (SYSER3 /DE**FATAL ERROR** 004530 5201 NSWITC, JMP START2 /(0 IF NO LIST FILE, SKP IF /N) START PASS3 004531 5333 JMP ERMSG1 004532 5245 JMP ENDPA1 004533 1361 ERMSG1, TAD (OTYPEO /COME HERE IF NO PASS 3 OUTPUT FILE 004534 3047 DCA OCHAR 004535 1361 TAD (OTYPEO 004536 3050 DCA OERROR 004537 1153 TAD [7600 004540 3760 DCA I (OTYPCR /INHIBIT AUTO-LF ON CARRIAGE RETURN 004541 3256 DCA FINLFF /KILL LAST FORM FEED 004542 5252 JMP ERMSGS /ADD BITS TO PUNCH ORIGIN 004543 0000 PUNORG, 0 004544 3027 DCA LOC 004545 1051 TAD PASS /IS THIS PASS 2? 004546 7640 SZA CLA 004547 5743 JMP I PUNORG /NO--RETURN-- 004550 1027 TAD LOC /YES - OUTPUT ORIGIN SETTING 004551 1030 TAD OFFSET /"LOC" MAY BE FICTITIOUS - MAKE IT REAL 004552 7120 CLL CML 004553 2032 ISZ STARSW /INHIBIT PUNCHING ORIGIN IF NECESSARY 004554 4523 JMS I [PUNOUT 004555 7200 CLA 004556 3032 DCA STARSW /RESET SWITCH 004557 5743 JMP I PUNORG /--RETURN-- 004560 2336 004561 2323 004562 2757 004563 7607 004564 1157 004565 1122 004566 7746 004567 7616 004570 2673 004571 1066 004572 1112 004573 1200 004574 1234 004575 3010 004576 1617 004577 1160 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 80-1 4600 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 81 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 82 /EVALUATE LITERAL 004600 7244 LIT, STA RAL /-2 IF PAGE 0 LITERAL, -1 IF CUR PAGE 004601 3366 DCA FINDS1 /SAVE FLAG 004602 4574 JMS I [GETC /GET NEXT CHARACTER 004603 4565 JMS I [SPNOR /IGNORE SPACES 004604 1054 TAD EXPIND /STORE IMPORTANT VALUES PRIOR TO 004605 4543 JMS I [PUSHA /ENTRANCE INTO EXP 004606 1033 TAD OP 004607 4543 JMS I [PUSHA 004610 1034 TAD VALUE 004611 4543 JMS I [PUSHA 004612 1366 TAD FINDS1 004613 4543 JMS I [PUSHA 004614 4562 JMS I [EXP /GET EXPRESSION 004615 1034 TAD VALUE /FIND LITERAL IN TABLE 004616 2410 ISZ I PDLXR /PAGE 0? 004617 5222 JMP .+3 004620 4252 JMS FINDS /NO 004621 7410 SKP 004622 4353 JMS FIND0 /YES 004623 3035 DCA VALUE2 /STORE ADDRESS 004624 1410 TAD I PDLXR 004625 3034 DCA VALUE 004626 1410 TAD I PDLXR /RESTORE SAVED VALUES 004627 3033 DCA OP 004630 1410 TAD I PDLXR 004631 3054 DCA EXPIND 004632 1040 TAD CHAR /IGNORE ) OR ] 004633 1377 TAD (-") 004634 7440 SZA 004635 1376 TAD (")-"] 004636 7650 SNA CLA 004637 4574 JMS I [GETC /GET NEXT CHARACTER 004640 5775 JMP I (NUMBE5 /RETURN TO EXPRESSION PROCESSOR 004641 0000 PEZE, 0 /SUBR TO ISSUE PE OR ZE MESSAGE 004642 7650 SNA CLA /WHICH ONE? 004643 5247 JMP .+4 /PAGE 0 004644 4471 JMS I PERROR 004645 6045 PE 004646 5641 JMP I PEZE 004647 4471 JMS I PERROR 004650 7245 ZE 004651 5641 JMP I PEZE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 83 /FIND LITERAL ON CURRENT PAGE 004652 0000 FINDS, 0 004653 3366 DCA FINDS1 004654 1027 TAD LOC 004655 0153 AND [7600 004656 7450 SNA /IS THIS PAGE 0? 004657 5357 JMP FIND01 /YES 004660 3367 DCA FINDS2 /NO - SAVE PAGE NUMBER 004661 1374 TAD (LITBF1 004662 3353 DCA FIND0 004663 1156 TAD [7700 /ALLOW 100(8) CURRENT PAGE LITERALS 004664 3007 DCA FORMF6 004665 1023 TAD LITPTR /GET PG ADDR OF 1ST LITERAL IN BUFFER 004666 3370 FIND02, DCA FINDS3 004667 1367 TAD FINDS2 004670 4567 JMS I [RTL6 004671 1150 TAD [LITBUF 004672 3043 DCA TEMP 004673 1353 TAD FIND0 /COMPUTE ACTUAL CORE ADDRESS OF LITERAL 004674 1443 TAD I TEMP 004675 3045 DCA TEMP2 004676 1370 TAD FINDS3 /COMPUTE THE NUMBER OF ENTRIES 004677 7041 CIA 004700 1443 TAD I TEMP /IN THE LITERAL BUFFER 004701 7450 SNA 004702 5314 JMP FINDS6 /NONE 004703 3370 DCA FINDS3 004704 1445 FINDS4, TAD I TEMP2 /GET LITERAL FROM TABLE 004705 7041 CIA 004706 1366 TAD FINDS1 /AND CURRENT LITERAL 004707 7650 SNA CLA /DO THEY MATCH? 004710 5346 JMP FINDS5 /YES 004711 2045 ISZ TEMP2 /NO - BUMP COUNTERS 004712 2370 ISZ FINDS3 004713 5304 JMP FINDS4 /TRY AGAIN 004714 1367 FINDS6, TAD FINDS2 004715 4567 JMS I [RTL6 004716 1122 TAD [TPINST 004717 3370 DCA FINDS3 004720 1443 TAD I TEMP /DOES THIS OVERFLOW PAGE? 004721 7041 CIA 004722 1770 TAD I FINDS3 004723 7710 SPA CLA 004724 5331 JMP FINDS7 /NO /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 84 004725 1367 FIND03, TAD FINDS2 /PAGE FULL - WHICH PAGE? 004726 4241 JMS PEZE /GENERATE PE OR ZE MESSAGE 004727 7240 CLA CMA 004730 5341 JMP FINDS9 004731 7240 FINDS7, CLA CMA 004732 1443 TAD I TEMP /IS PAGE FULL? 004733 0007 AND FORMF6 004734 7650 SNA CLA 004735 5325 JMP FIND03 /YES - OUTPUT ERROR MESSAGE 004736 7240 CLA CMA 004737 1443 TAD I TEMP /NO 004740 3443 DCA I TEMP 004741 1443 FINDS9, TAD I TEMP 004742 1353 TAD FIND0 004743 3045 DCA TEMP2 004744 1366 TAD FINDS1 004745 3445 DCA I TEMP2 004746 1353 FINDS5, TAD FIND0 /GET ADDRESS OF LITERAL 004747 7041 CIA 004750 1045 TAD TEMP2 004751 1367 TAD FINDS2 004752 5652 JMP I FINDS /--RETURN-- /FIND LITERAL ON PAGE 0 004753 0000 FIND0, 0 004754 3366 DCA FINDS1 004755 1353 TAD FIND0 /RESET EXIT FROM FINDS 004756 3252 DCA FINDS 004757 3367 FIND01, DCA FINDS2 /SET POINTERS 004760 1373 TAD (LITBF2 004761 3353 DCA FIND0 004762 1102 TAD [7760 /ALLOW 160(8) PAGE 0 LITERALS 004763 3007 DCA FORMF6 004764 1176 TAD [200 004765 5266 JMP FIND02 004766 0000 FINDS1, 0 004767 0000 FINDS2, 0 004770 0000 FINDS3, 0 004773 2023 004774 2123 004775 3327 004776 7714 004777 7527 5000 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 85 /HANDLER FOR IFZERO PSEUDO-OP 005000 1377 IF0, TAD (10 /IFTST1, SNA CLA /HANDLER FOR IFNZERO PSEUDO-OP 005001 1237 IFN0, TAD IFSZA /IFTST1, SZA CLA 005002 3224 DCA IFTST1 005003 4565 JMS I [SPNOR /IGNORE SPACES 005004 4562 JMS I [EXP /GET EXPRESSION 005005 1040 IFTST3, TAD CHAR /GET LAST CHARACTER 005006 1376 TAD (-"< 005007 7650 SNA CLA /IS IT <? 005010 5214 JMP IFTST2 /YES 005011 4270 JMS ICMESG /PRINT IC MESSAGE AND GET NEXT CHAR 005012 4565 IFTST9, JMS I [SPNOR /IGNORE SPACES 005013 5205 JMP IFTST3 /TRY AGAIN 005014 4574 IFTST2, JMS I [GETC /GET NEXT CHARACTER 005015 1053 TAD CONDSW 005016 7041 CIA 005017 3300 DCA CONDTM /SET NUMBER OF NESTED CONDITIONALS 005020 7240 CLA CMA /DECREMENT NUMBER OF NESTED CONDITIONALS 005021 1053 TAD CONDSW 005022 3053 DCA CONDSW 005023 1034 TAD VALUE 005024 7402 IFTST1, HLT /SZA CLA OR SNA CLA 005025 5775 JMP I (MAIN /--EXIT TO MAIN-- 005026 1053 IFTST5, TAD CONDSW /DONE WITH ALL CONDITIONALS IN NEST? 005027 1300 TAD CONDTM 005030 7700 SMA CLA 005031 5775 JMP I (MAIN /YES --EXIT TO MAIN-- 005032 1040 TAD CHAR 005033 1376 TAD (-"< /NO - GET NEXT CHARACTER 005034 7450 SNA /IS IT <? 005035 5242 JMP IFTST6 /YES - HANDLE NEXT CONDITIONAL 005036 1374 TAD ("<-"> /NO - IS IT >? 005037 7640 IFSZA, SZA CLA 005040 5245 JMP IFTST4 /NO - FINISH THIS CONDITIONAL 005041 7344 AC7776 005042 7040 IFTST6, CMA 005043 1053 TAD CONDSW 005044 3053 DCA CONDSW 005045 3537 IFTST4, DCA I [LINBUF /INHIBIT LISTING OF UNASSEMBLED CODE - /ZEROED IF /J OPTION NOT SPECIFIED 005046 4574 JMS I [GETC /GET NEXT CHARACTER 005047 5226 JMP IFTST5 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 86 /HANDLER FOR IFDEF PSEUDO-OP 005050 1377 IFD, TAD (10 /IFTST1, SNA CLA /HANDLER FOR IFNDEF PSEUDO-OP 005051 1237 IFND, TAD IFSZA /IFTST1, SZA CLA 005052 3224 DCA IFTST1 005053 4565 IFTST7, JMS I [SPNOR /IGNORE SPACES 005054 4546 JMS I [TSTALP /IS NEXT CHARACTER ALPHABETIC 005055 5260 JMP IFTST8 /YES 005056 4270 JMS ICMESG /PRINT IC MESSAGE AND GET NEXT CHAR 005057 5253 JMP IFTST7 /KEEP TRYING 005060 4544 IFTST8, JMS I [GETTAG /PICK UP TAG 005061 3034 DCA VALUE /STORE UNDEFINED INDICATOR 005062 1022 TAD TAG3 /WAS IT A PSEUDO-OP? 005063 7700 SMA CLA 005064 5212 JMP IFTST9 /NO 005065 4541 JMS I [ERROR /YES - GENERATE IP ERROR MESSAGE 005066 5160 IP 005067 5212 JMP IFTST9 005070 0000 ICMESG, 0 005071 4541 JMS I [ERROR 005072 5143 IC /IC COMES OUT ON ALL PASSES 005073 1040 TAD CHAR 005074 7710 SPA CLA 005075 5577 JMP I [LOOKEX /END OF LINE - GO AWAY 005076 4574 JMS I [GETC /GET NEXT CHAR 005077 5670 JMP I ICMESG /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 87 CONDTM, /PUT TAG IN SYMBOL TABLE 005100 0000 PUTTAG, 0 005101 1057 TAD THISTG 005102 4773 JMS I (SETFLD /SET FIELD 005103 1020 TAD TAG1 005104 3411 DCA I TAGXR 005105 1021 TAD TAG2 005106 3411 DCA I TAGXR 005107 1022 TAD TAG3 005110 3411 DCA I TAGXR 005111 1035 TAD VALUE2 005112 3411 DCA I TAGXR 005113 6201 CDF 005114 5700 JMP I PUTTAG /--RETURN-- /PUSHDOWN ROUTINE /PUT NEW ENTRY ON PUSHDOWN STACK 005115 0000 PUSHA, 0 005116 3043 DCA TEMP 005117 7240 CLA CMA 005120 1010 TAD PDLXR 005121 3010 DCA PDLXR 005122 1010 TAD PDLXR 005123 1372 TAD (-PDLND 005124 7710 SPA CLA /IS LIST TOO FULL? 005125 5334 JMP PUSHA1 /BE**FATAL ERROR** 005126 1043 TAD TEMP /NO - MAKE ENTRY 005127 3410 DCA I PDLXR 005130 7240 CLA CMA 005131 1010 TAD PDLXR 005132 3010 DCA PDLXR 005133 5715 JMP I PUSHA /--RETURN-- 005134 1371 PUSHA1, TAD (BE 005135 5506 JMP I [MONERR /PUSHDOWN OVERFLOW IS FATAL ERROR /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 88 /TEST NUMERIC ROUTINE /CALL WITH CHARACTER TO TEST IN "CHAR" /SKIPS IF THE CHARACTER IS NOT NUMERIC 005136 0000 TSTNUM, 0 005137 1040 TAD CHAR /GET THE CHARACTER 005140 1370 TAD (-"9-1 005141 7100 CLL 005142 1367 TAD ("9-"0+1 005143 7620 SNL CLA /CHECK FOR RANGE 0-9 005144 2336 ISZ TSTNUM /OUT OF RANGE 005145 5736 JMP I TSTNUM /--RETURN-- /TEST ALPHANUMERIC ROUTINE /CALL WITH CHARACTER IN "CHAR" /SKIPS IF CHARACTER IS NOT ALPHANUMERIC 005146 0000 TSTALN, 0 005147 4504 JMS I [TSTNUM /IS IT NUMERIC 005150 5746 JMP I TSTALN /YES--RETURN-- 005151 4546 JMS I [TSTALP /IS IT ALPHABETIC 005152 5746 JMP I TSTALN /YES--RETURN-- 005153 2346 ISZ TSTALN /NEITHER 005154 5746 JMP I TSTALN /--RETURN-- /TEST ALPHABETIC ROUTINE /CALL WITH CHARACTER IN "CHAR" /SKIPS IF NOT ALPHABETIC 005155 0000 TSTALP, 0 005156 1040 TAD CHAR 005157 1366 TAD (-"Z-1 005160 7100 CLL 005161 1365 TAD ("Z-"A+1 005162 7620 SNL CLA /CHECK FOR RANGE A-Z 005163 2355 ISZ TSTALP /OUT OF RANGE 005164 5755 JMP I TSTALP /--RETURN-- 005165 0032 005166 7445 005167 0012 005170 7506 005171 4245 005172 6223 005173 4257 005174 7776 005175 3011 005176 7504 005177 0010 5200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 89 /INPUT ROUTINE /UNPACKS CHARACTERS FROM BUFFER 005200 0000 INPUT, 0 005201 2274 ISZ INCHCT /ARE THERE CHARACTERS LEFT IN BUFFER? 005202 5763 JMP I CHARLV /YES - FETCH ONE 005203 1275 TAD INEOF /NO - WAS OLD FILE ENDED? 005204 7640 SZA CLA 005205 5302 JMP ENDCHR /YES - START NEW FILE 005206 1300 INGBUF, TAD INCTLA /NO 005207 0153 AND [7600 005210 4567 JMS I [RTL6 005211 1277 TAD INCTR 005212 7420 SNL 005213 3277 DCA INCTR 005214 7430 SZL 005215 2275 ISZ INEOF 005216 7172 CLL CML CMA RTR /SET CONTROL WORD 005217 7012 RTR 005220 7012 RTR 005221 1300 TAD INCTLA 005222 3224 DCA INCTLW 005223 4726 JMS I INHNDL /CALL INPUT DEVICE HANDLER 005224 0000 INCTLW, 0 /CONTROL WORD 005225 5600 INBUFP, INBUF /INPUT BUFFER ADDRESS 005226 0000 INREC, 0 /STARTING BLOCK NUMBER 005227 5270 JMP INERRX /ERROR RETURN 005230 1300 INBREC, TAD INCTLA /NORMAL RETURN 005231 0153 AND [7600 005232 4567 JMS I [RTL6 005233 1226 TAD INREC 005234 3226 DCA INREC /RESET STARTING BLOCK NUMBER 005235 1224 TAD INCTLW 005236 0153 AND [7600 005237 7104 CLL RAL 005240 1224 TAD INCTLW 005241 0153 AND [7600 005242 7041 CIA 005243 3274 DCA INCHCT /SET CHARACTER COUNT 005244 1225 TAD INBUFP 005245 3276 DCA INPTR /SET BUFFER POINTER /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 90 /CHARACTERS ARE FOUND IN BUFFER /IN STANDARD OS/8 PACKING /WORD 1: AAA A11 111 111 /WORD 2: BBB B22 222 222 /WHICH REPRESENTS 3 CHARACTERS /CHARACTER 1: 11 111 111 /CHARACTER 2: 22 222 222 /CHARACTER 3: AA AAB BBB 005246 1676 ICHAR1, TAD I INPTR /PICK UP CHARACTER WORD 1 005247 4363 JMS CHARLV /CHECK RIGHT 8 BITS 005250 1676 ICHAR2, TAD I INPTR /PICK UP WORD 1 005251 2276 ISZ INPTR /(INCREMENT POINTER TO WORD 2) 005252 0116 AND [7400 /WITH WORD 1 IN AC 005253 3224 DCA INCTLW /RETRIEVE LEFT 4 BITS AND SAVE 005254 1676 TAD I INPTR /PICK UP WORD 2 005255 4363 JMS CHARLV /CHECK RIGHT 8 BITS 005256 1676 ICHAR3, TAD I INPTR /PICK UP WORD 2 005257 2276 ISZ INPTR /(POINT TO NEXT WORD 1) 005260 0116 AND [7400 /WITH WORD 2 IN AC 005261 7112 CLL RTR /RETRIEVE LEFT 4 BITS 005262 7012 RTR 005263 1224 TAD INCTLW /PUT BOTH SETS OF 4 BITS TOGETHER 005264 7012 RTR 005265 7012 RTR 005266 4363 JMS CHARLV /CHECK CHARACTER 005267 5246 JMP ICHAR1 /TRY NEXT SET OF 2 WORDS 005270 2275 INERRX, ISZ INEOF 005271 7700 SMA CLA /EOF OR FATAL ERROR? 005272 5230 JMP INBREC /EOF - UNPACK THIS BUFFER 005273 5777 JMP I (SYSERR /FATAL - GENERATE DE ERROR MESSAGE 005274 7777 INCHCT, -1 005275 0001 INEOF, 1 005276 0000 INPTR, 0 005277 0000 INCTR, 0 005300 0000 INCTLA, 0 005301 7617 INFPTR, 7617 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 91 /START NEW FILE 005302 2776 ENDCHR, ISZ I (FORMSW /^Z OR EOF SIMULATES FORM FEED 005303 1051 TAD PASS /IS THIS PASS 3? 005304 7750 SPA SNA CLA 005305 5314 JMP NXTFLE /NO 005306 4775 JMS I (HEDCLR /YES - CLEAR HEADING BUFFER 005307 1130 TAD [-HEDLEN 005310 3774 DCA I (LSTCH6 005311 1131 TAD [HEADER-1 005312 3773 DCA I (LSTCH7 005313 3064 DCA LSTCNT 005314 1372 NXTFLE, TAD (INDEVH+1 /SET ADDRESS OF DEVICE HANDLER 005315 3326 DCA INHNDL 005316 6211 CDF 10 005317 1701 TAD I INFPTR 005320 6201 CDF 005321 7450 SNA 005322 5356 JMP FAKDLR /END OF FILE - FAKE A $ 005323 6212 CIF 10 005324 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 005325 0001 1 /*FETCH HANDLER* 005326 0000 INHNDL, 0 /LOADING ADDRESS OF HANDLER 005327 7402 HLT /ERROR RETURN 005330 6211 CDF 10 /V3C 005331 1326 TAD INHNDL /NORMAL RETURN - HANDLER IN CORE 005332 0153 AND [7600 005333 1167 TAD [-INDEVH /SEE IF INPUT HANDLER IS IN 7200 005334 7640 SZA CLA 005335 4771 JMS I (PTCH /IT IS - INCREASE SIZE OF BUFFER /AND REMOVE FROM RESIDENCY ANY HANDLERS THERE 005336 1066 TAD INCTL 005337 3300 DCA INCTLA /DF=10 005340 1701 TAD I INFPTR 005341 0102 AND [7760 005342 7440 SZA 005343 1107 TAD [17 005344 7132 CLL CML RTR 005345 7012 RTR 005346 3277 DCA INCTR 005347 2301 ISZ INFPTR 005350 1701 TAD I INFPTR 005351 3226 DCA INREC /RESET STARTING BLOCK NUMBER 005352 2301 ISZ INFPTR 005353 3275 DCA INEOF 005354 6201 CDF 005355 5206 JMP INGBUF /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 92 005356 1370 FAKDLR, TAD (244 005357 4363 JMS CHARLV /CALL THE COROUTINE 005360 1133 TAD [215 /WITH $ AND CR 005361 4363 JMS CHARLV /TO END THE ASSEMBLY. 005362 5767 JMP I (PHASE /** DIDN'T WORK - MUST BE IN CONDITIONAL - FATAL 005363 0000 CHARLV, 0 /CHARACTER IN AC 005364 0154 AND [177 /AND OFF LEFT 5 BITS 005365 5766 JMP I (LSTCH9 /RETURN TO LSTCH9 005366 3671 005367 0751 005370 0244 005371 3556 005372 7201 005373 3736 005374 3735 005375 1165 005376 3755 005377 2761 5400 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 93 /HANDLER FOR DTORG PSEUDO-OP (TYPESETTING) /PUNCHES 4 DIGIT BLOCK NUMBER IN 2 FRAMES /FIRST FRAME HAS CHANNELS 7 AND 8 PUNCHED /ADDED TO CHECKSUM 005400 4565 DTORGX, JMS I [SPNOR /IGNORE SPACES 005401 4562 JMS I [EXP /GET EXPRESSION 005402 1051 TAD PASS /IS THIS PASS 2? 005403 7450 SNA 005404 5216 JMP DTORG2 /YES 005405 7750 PUNVA1, SPA SNA CLA /NO - IS THIS PASS 3? 005406 5577 JMP I [LOOKEX /NO--EXIT TO MAIN-- 005407 1070 TAD LININD /GET LINK SWITCH FROM "EXP" 005410 3067 DCA LINKSW /YES 005411 1177 TAD [LOOKEX /FIX PUNONE TO EXIT TO MAIN 005412 3777 DCA I (PUNONE 005413 1135 TAD [211 /OUTPUT TAB 005414 4450 JMS I OERROR 005415 5776 JMP I (DTORG1 005416 1034 DTORG2, TAD VALUE /PASS 2 - GET BLOCK NUMBER 005417 4567 JMS I [RTL6 005420 7004 RAL 005421 0175 AND [77 005422 1375 TAD (300 /PICK UP CHANNELS 7 AND 8 005423 3043 DCA TEMP 005424 1043 TAD TEMP 005425 1055 TAD CHKSUM /ADD VALUE TO CHECKSUM 005426 3055 DCA CHKSUM 005427 1043 TAD TEMP 005430 4447 JMS I OCHAR /OUTPUT BLOCK NUMBER - FIRST FRAME 005431 1034 TAD VALUE 005432 0175 AND [77 005433 4447 JMS I OCHAR /OUTPUT SECOND FRAME 005434 5577 JMP I [LOOKEX /--EXIT TO MAIN-- /HANDLER FOR % /DIVIDE BY REPEATED SUBTRACTION 005435 3043 OP6, DCA TEMP 005436 1035 TAD VALUE2 005437 7041 CIA 005440 3035 DCA VALUE2 005441 1034 TAD VALUE 005442 7100 OP6A, CLL 005443 1035 TAD VALUE2 /SUBTRACT DIVISOR FROM DIVIDEND 005444 7420 SNL /DONE YET? 005445 5250 JMP OP6B /YES - EXIT 005446 2043 ISZ TEMP /NO - COUNT ONE MORE SUBTRACTION 005447 5242 JMP OP6A /SUBTRACT AGAIN 005450 7200 OP6B, CLA /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 93-1 005451 1043 TAD TEMP /RESULT IS # OF SUBTRACTIONS 005452 5774 JMP I (OP0+2 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 94 /HANDLER FOR XLIST PSEUDO-OP 005453 4347 XLISTY, JMS XLISTZ /ANY EXPRESSION? 005454 5262 JMP XLIST1 /NO 005455 4562 JMS I [EXP /GET EXPRESSION 005456 1034 TAD VALUE /USE THE VALUE 005457 3026 XLIST2, DCA XLISTX /SET SWITCH 005460 3537 DCA I [LINBUF /XLIST NEVER LISTS! 005461 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 005462 1026 XLIST1, TAD XLISTX 005463 7650 SNA CLA 005464 7001 IAC /FLIP IT 005465 5257 JMP XLIST2 005466 4347 RELOCY, JMS XLISTZ /RELOCATE PSEUDO-OP - EXPRESSION? 005467 5300 JMP RELOC1 /NO 005470 4562 JMS I [EXP /GET IT 005471 1034 TAD VALUE 005472 7041 CIA /COMPUTE OFFSET OF REL LOC CTR 005473 1027 TAD LOC /FROM FAKE LOC CTR 005474 1030 TAD OFFSET /OFFSET IS CUMULATIVE! 005475 3031 RELOC2, DCA OFSBUF /SET NEW OFFSET - THIS TAKES EFFECT AFTER 005476 7240 STA /THE LITERALS (IF ANY) ARE DUMPED. 005477 5773 JMP I (STAR0 /FAKE ORIGIN TO NEW LOC, /ACTUALLY A NO-OP BECAUSE OF OFFSET 005500 1030 RELOC1, TAD OFFSET /SET OFSBUF=0, LOC=LOC+OFFSET - 005501 1027 TAD LOC /THIS CANCELS ALL RELOCATION STUFF. 005502 3034 DCA VALUE 005503 3065 DCA UNDFSW /JUST IN CASE - "STAR0" CHECKS THIS 005504 5275 JMP RELOC2 /STILL MUST OUTPUT *. TO GET IN SYNCH /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 95 /HANDLER FOR EJECT PSEUDO-OP 005505 2041 EJECTX, ISZ THISPG 005506 1051 TAD PASS /IS THIS PASS 3? 005507 7740 SMA SZA CLA 005510 5316 JMP EJECT2 /YES 005511 1040 EJECT1, TAD CHAR /NO - LOOK FOR NEXT NEGATIVE CHARACTER 005512 7710 SPA CLA 005513 5577 JMP I [LOOKEX /--EXIT TO MAIN-- 005514 4574 JMS I [GETC /GET NEXT CHARACTER 005515 5311 JMP EJECT1 005516 4347 EJECT2, JMS XLISTZ /PASS 3 - IS THERE AN EXPRESSION? 005517 5343 JMP EJECT3 /NO - EXIT 005520 4772 JMS I (HEDCLR /YES - CLEAR HEADING BUFFER 005521 1130 TAD [-HEDLEN 005522 3347 DCA EJECT7 /SET UP FOR 40 NEW CHARACTERS 005523 1131 TAD [HEADER-1 005524 3012 DCA XREG1 /SET HEADER BUFFER POINTER 005525 5333 JMP EJECT4 005526 2347 EJECT6, ISZ EJECT7 /FILLED 40 CHARACTERS YET? 005527 5333 JMP EJECT4 /NO - KEEP FILLING 005530 7240 CLA CMA /YES - SKIP CHARACTERS TO 005531 3347 DCA EJECT7 /END OF LINE 005532 5335 JMP EJECT5 005533 1040 EJECT4, TAD CHAR /FILL HEADING BUFFER 005534 3412 DCA I XREG1 005535 7240 EJECT5, CLA CMA 005536 3036 DCA TXTSWT 005537 4574 JMS I [GETC /GET NEXT CHARACTER 005540 1040 TAD CHAR /END OF LINE? 005541 7700 SMA CLA 005542 5326 JMP EJECT6 /NO - KEEP FILLING 005543 4534 EJECT3, JMS I [FORMFD /GENERATE FORM FEED 005544 5577 JMP I [LOOKEX /--EXIT TO MAIN-- /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 96 005545 1051 PUNVAL, TAD PASS /IS THIS PASS 3? 005546 5205 JMP PUNVA1 /IF SO, LIST STUFF /SEE IF EXPRESSION FOLLOWS XLIST /SKIP ON EXPRESSION EJECT7, 005547 0000 XLISTZ, 0 005550 4565 JMS I [SPNOR /IGNORE TRAILING SPACES 005551 1040 TAD CHAR 005552 1105 TAD [-"> /IS THERE AN EXPRESSION? 005553 7650 SNA CLA 005554 5747 JMP I XLISTZ /NO--RETURN-- 005555 1040 TAD CHAR 005556 7700 SMA CLA 005557 2347 ISZ XLISTZ /YES - INCREMENT RETURN ADDRESS 005560 5747 JMP I XLISTZ /--RETURN-- /DUMMY ERROR ROUTINE /TO SUPPRESS CERTAIN ERROR MESSAGES /ON PASS 1 005561 0000 PERRO1, 0 005562 2361 ISZ PERRO1 /SKIP ERROR MESSAGE POINTER 005563 5761 JMP I PERRO1 /--RETURN-- /CONSTANTS FOR DECIMAL PRINT DECIMAL 005564 6030 FORMF8, -1000 005565 7634 -100 005566 7766 -10 005567 0000 0 OCTAL 005572 1165 005573 3052 005574 3602 005575 0300 005576 1354 005577 1330 5600 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 97 /********************************************************************* 5600 INBUF=. /INPUT BUFFER 5600 OUBUF=. /OUTPUT BUFFER 6200 OUDEVH=.+400 /OUTPUT DEVICE HANDLER 7200 INDEVH=7200 /INPUT DEVICE HANDLER /********************************************************************** / EXPLANATION OF PAL8'S BUFFER ALLOCATION ALGORITHM /PASS1: / THE INPUT BUFFER STARTS AT 5600 AND ENDS AT 7200 / THE INPUT HANDLER GOES IN 7200-7600. / THERE IS NO OUTPUT HANDLER. / HOWEVER, IF THE CURRENT INPUT HANDLER DOES NOT / LOAD INTO 7200, THEN THE BUFFER SIZE IS INCREASED / SO THAT THE INPUT BUFFER IS 5600-7600 /PASS2 AND PASS3: / THE OUTPUT BUFFER IS ALWAYS 1 BLOCK LONG, LOCATED / AT 5600-6200. / THE OUTPUT HANDLER RESIDES IN 6200-6600. / THE INPUT HANDLER RESIDES IN 7200-7600. / THE INPUT BUFFER NORMALLY RESIDES IN 6600-7200 / BUT MAY GROW OVER EITHER THE INPUT HANDLER AREA OR / THE OUTPUT HANDLER AREA, IF EITHER OR BOTH OF THESE / DON'T EXIST. /WHENEVER A BUFFER GROWS OVER A HANDLER AREA, THE MONITOR /HANDLER RESIDENCY TABLE IS SEARCHED TO SEE IF THERE /WERE ANY HANDLERS THERE. IF ANY HANDLERS WERE THERE IN THE PAST, /THEY ARE NOW MARKED AS BEING NON-RESIDENT. /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 98 /MORE ONCE ONLY CODE 005600 0000 OTYPE, 0 005601 3043 DCA TEMP 005602 6211 CDF 10 005603 1443 TAD I TEMP 005604 0107 AND [17 /GET DEVICE NUMBER 005605 1377 TAD (DCB-1 005606 3043 DCA TEMP 005607 1443 TAD I TEMP /GET DCB ENTRY 005610 6201 CDF 005611 5600 JMP I OTYPE /--RETURN-- /CHECK TO SEE HOW MUCH CORE EXISTS /AND STORE SYMBOL TABLE ACCORDINGLY IFZERO HASH< BEGINF, CDF 10 /WAS THE /K OPTION SELECTED TO TAD I (MPARAM /CHECK FOR MORE THAN 8K? CDF 0 RTR ZK7630, SNL CLA /YES JMP I (CKBAT /NO - CHECK FOR BATCH, USE 8K ONLY CDF 50 JMS FLD2 /WHAT IS HIGHEST FIELD? JMP FLD1-1 /5 CDF 40 JMS FLD2 JMP FLD1 /4 CDF 30 JMS FLD2 JMP FLD1+1 /3 CDF 20 JMS FLD2 JMP FLD1+2 /2 JMP OPTIM4 /1 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 99 TAD [177 /IF FIELD 5, ALLOW 4095 SYMBOLS FLD1, TAD (1740 /OTHERWISE ALLOW 1740*(NR OF FIELDS) TAD (1740 TAD (1740 OPTIM0, TAD (1740 DCA I (TAGMAX /SET HIGHEST ADDRESS FOR TAGS JMP I (BEGING OPTIM4, TAD I OPTIM1 /OPTIMIZE SEARCH PATTERN ISZ OPTIM1 /BY SUBSTITUTING CODE IN SEARCH DCA I OPTIM2 /ROUTINE ISZ OPTIM2 ISZ OPTIM3 JMP OPTIM4 OPTIM8, TAD I OPTIM5 ISZ OPTIM5 DCA I OPTIM6 ISZ OPTIM6 ISZ OPTIM7 JMP OPTIM8 JMP OPTIM0 > IFNZRO HASH< /SIZE CHECK OUR MACHINE 005612 6211 BEGINF, CDF 10 005613 1776 TAD I (MPARAM 005614 6201 CDF 005615 7012 RTR /K TO LINK 005616 7620 ZK7630, SNL CLA /ALTER FOR COMPLEMENT OF K 005617 1126 TAD [400 /TAD TO KEEP USR 005620 3775 DCA I (USROFS 005621 1774 TAD I (7777 /CHECK SOFT CORE SIZE 005622 0373 AND (70 005623 7112 CLL RTR 005624 7010 RAR 005625 7440 SZA 005626 5244 JMP SESOF /SET: DON'T CHECK 005627 6251 CDF 50 005630 4272 JMS FLD2 005631 2271 ISZ HIFLD 005632 6241 CDF 40 005633 4272 JMS FLD2 005634 2271 ISZ HIFLD 005635 6231 CDF 30 005636 4272 JMS FLD2 005637 2271 ISZ HIFLD 005640 6221 CDF 20 005641 4272 JMS FLD2 005642 2271 ISZ HIFLD /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 99-1 005643 1271 TAD HIFLD /TAKE MIN(HIFLD,5) 005644 1372 SESOF, TAD (-5 005645 7500 SMA /SMA TO USE HIFLD 005646 7200 CLA 005647 1371 TAD (5 /ELSE USE 5 005650 3271 DCA HIFLD /STORE 5 IF NECESSARY 005651 6211 CKSEV, CDF 10 005652 1770 TAD I (MPARAM+2 /LOOK AT /7 005653 6201 CDF 005654 0367 AND (4 005655 7650 SNA CLA /SNA IF THERE 005656 5766 JMP I (CKBAT /ELSE CHECK FOR BATCH 005657 1365 TAD (-7 /SET TO PRINT 7 COLUMNS OF STAB 005660 3764 DCA I (SYMNCL 005661 1363 TAD (67^6 /SET OFFSET TO FIRST SYMBOL ON NEXT PAGE 005662 3762 DCA I (SYMOFS 005663 5766 JMP I (CKBAT /OK, CHECK FOR BATCH NOW 005664 7420 OPTIM4, SNL /SNL IF BATCH RUNNING 005665 5761 JMP I (BEGING /ELSE TAKE DEFAULT TABLE SIZE 005666 1360 TAD (BPRIME/SET ALTERNATE TABLE SIZE 005667 3757 DCA I (PRIMES /INTO THE ONCE ONLY CODE 005670 5761 JMP I (BEGING /NOW HIFLD=# OF HIGHEST USABLE FIELD 005671 0001 HIFLD, 1 /8K MINIMUM > /SKIP IF CURRENT DATA FIELD DOES NOT EXIST 005672 0000 FLD2, 0 005673 1356 TAD (FLD3 005674 3714 DCA I FLD4 005675 7200 FLD3, CLA 005676 1714 TAD I FLD4 005677 7000 NOP 005700 6201 CDF 005701 1355 TAD (-FLD3 005702 7640 SZA CLA 005703 5312 JMP FLD5 005704 1052 TAD IOMON 005705 1153 TAD [-200 005706 7650 SNA CLA /IS FIELD THERE? 005707 5672 JMP I FLD2 /YES--RETURN-- 005710 1176 TAD [200 005711 3052 DCA IOMON 005712 2272 FLD5, ISZ FLD2 /NO-INCREMENT RETURN ADDRESS 005713 5672 JMP I FLD2 /--RETURN-- 005714 0052 FLD4, IOMON /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 100 /OVERLAY CODE FOR OPTIMAL SYMBOL TABLE SEARCH /IN 8K IFZERO HASH< OPTIM1, OPTIMA OPTIM2, SETFLD+1 OPTIM3, -7 OPTIM5, OPTIMB OPTIM6, GETTG5 OPTIM7, -21 OPTIMA, RELOC SETFLD+1 CLL CMA RTL TAD STM202 DCA TAGXR CDF 10 JMP I SETFLD STM202, -202 SETFL4, 4 RELOC OPTIMB, RELOC GETTG5 TAD HIGHTG JMS SETFLD TAD TAGXR DCA XREG1 TAD XREG1 TAD SETFL4 DCA XREG2 TAD THISTG JMS SETFLD OPTIML, TAD I XREG2 DCA I XREG1 TAD XREG1 CIA TAD TAGXR SZA CLA JMP OPTIML CDF RELOC > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 101 /OVERLAY CODE FOR DDT SYMBOL TABLE PRINT DSWIT2, IFZERO HASH< RELOC SYMPR9-2 JMP SYMPRE SYMPRD, TAD SYM204 JMS I OERROR TAD [377 JMS I OERROR JMS SYMPRC DCA LINCNT JMP I SYMPRT SYMPRC, 0 TAD [-200 DCA SYMPR2 TAD [200 JMS I OERROR ISZ SYMPR2 JMP .-3 JMP I SYMPRC RELOC > IFNZRO HASH< 005755 2103 005756 5675 005757 7524 005760 7531 005761 6000 005762 1302 005763 0512 005764 1303 005765 7771 005766 2277 005767 0004 005770 7645 005771 0005 005772 7773 005773 0070 005774 7777 005775 4303 005776 7643 005777 7757 1254 RELOC SYMDDT 001254* 2057 ISZ THISTG 001255* 5217 JMP SYMLUP 001256* 1275 SYMXIT, TAD SYM204 001257* 4450 JMS I OERROR 001260* 1120 TAD [377 001261* 4450 JMS I OERROR 001262* 4265 JMS DDTLDR 001263* 3061 DCA LINCNT /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 101-1 001264* 5600 JMP I SYMPRT 001265* 0000 DDTLDR, 0 001266* 1153 TAD [7600 001267* 3062 DCA SYMCCT 001270* 1176 TAD [200 001271* 4450 JMS I OERROR 001272* 2062 ISZ SYMCCT 001273* 5270 JMP .-3 001274* 5665 JMP I DDTLDR 001275* 0204 SYM204, 204 5737 RELOC > 5737 DSWITB= . 6000 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 102 006000 6212 BEGING, CIF 10 006001 4452 JMS I IOMON /CALL THE USR 006002 0012 12 /TO FIND OUT DSK: 006003 0423 BEGINJ, TEXT /DSK/ 006004 1300 006005 7201 7201 /DUMMY 006006 7402 HLT /NEVER! /V3C TAD BEGINJ+1 /GET DEVICE NUMBER OF DSK: /V3C DCA CC7 /AND SET IT 006007 1204 TAD BEGINJ+1 006010 3774 DCA I BEGINL /AND SET IT INTO "PALBIN" 006011 6211 CDF 10 006012 1742 TAD I CC1 /GET PARAMETER WORD 1 006013 6201 CDF 006014 7106 CLL RTL /OPTION /B INTO LINK 006015 0126 AND [400 /IS IT /F? 006016 7640 ZF7650, SZA CLA 006017 3746 DCA I CCX1 /YES: /F => NO 0 FILL 006020 7420 ZB7430, SNL /IS IT /B? 006021 5224 JMP .+3 006022 1347 TAD CCX2 006023 3750 DCA I CCX3 /YES: /B => ! IS SHIFT 006024 6211 CDF 10 006025 1742 TAD I CC1 /GET WORD 1 AGAIN 006026 6201 CDF 006027 0176 AND [200 /IS IT /E? 006030 7650 ZE7640, SNA CLA 006031 5234 JMP .+3 006032 1355 TAD CCX8 006033 3751 DCA I CCX4 /YES: /E => SET 'LG' ERROR 006034 6211 CDF 10 006035 1752 TAD I CCX5 /GET WORD 2 THIS TIME 006036 6201 CDF 006037 7006 RTL 006040 7700 ZO7710, SMA CLA /IS IT /O? 006041 5244 JMP .+3 006042 3753 DCA I CCX6 /YES: /O => NO 200 ORG 006043 2754 ISZ I CCX7 006044 6211 CDF 10 006045 1742 TAD I CC1 /GET WORD 1 AGAIN 006046 0343 AND CC2 /IS IT /C? 006047 7650 SNA CLA 006050 5744 JMP I CC3 /NO: TRY FOR /L OR /G 006051 1745 TAD I CC4 /CREF FILE SPECIFIED? 006052 7640 SZA CLA 006053 5262 JMP CC5 /YES 006054 1356 CC6, TAD CC7 /NO: GIVE "CREFLS.TM" 006055 3745 DCA I CC4 006056 2254 ISZ CC6 006057 2345 ISZ CC4 006060 2272 ISZ CC8 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 102-1 006061 5254 JMP CC6 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 103 006062 6201 CC5, CDF 006063 1777 TAD I (SBLOCK /GET OUR DEV: # KBMV40** 006064 7450 SNA 006065 7201 CLA IAC 006066 6212 CIF 10 006067 4452 JMS I IOMON /LOOKUP "CREF.SV" 006070 0002 2 006071 6163 CC13, CC9 /POINT TO NAME - BACK WITH START 006072 7773 CC8, -5 /LENGTH GOES HERE 006073 5323 JMP CC16 /NOT FOUND! 006074 1340 TAD CC30 006075 4741 JMS I CC31 /CHECK TYPE FILE 006076 7700 SMA CLA 006077 5323 JMP CC16 /NOT DIRECTORY IS ERROR 006100 1332 TAD CC12 006101 3731 DCA I CC121 /CSWITC=TAD I [7605 006102 1334 TAD CC11 006103 3733 DCA I CC111 /CSWIT1=CLA 006104 1336 TAD CC10 006105 3735 DCA I CC101 /CSWIT2=DCA BINSRT 006106 3726 DCA I CC171 /CMOVE=0 006107 1271 TAD CC13 006110 3730 DCA I CC131 /CHAIN="CREF.SV" 006111 3727 DCA I CC141 /LSWITC=0 006112 1340 TAD CC30 006113 3737 DCA I CC301 /NOPA22=7612 006114 3767 DCA I CC20 /"BEGIAB"=0 006115 1370 TAD CC21 006116 3771 DCA I CC211 /"DIRSW1"=TAD [177 006117 1372 TAD CC22 006120 3773 DCA I CC221 /"PTPSW1"=TAD [232 006121 5722 JMP I .+1 006122 2200 CCC /KEEP GOING (SIGH) 006123 4541 CC16, JMS I [ERROR 006124 4346 CF /OPTION /C ERROR 006125 5744 JMP I CC3 /TRY FOR /L OR /G /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 104 006126 7252 CC171, SWAPR2+CMOVE 006127 4460 CC141, LSWITC 006130 4503 CC131, CHAIN 006131 4464 CC121, CSWITC 006132 1517 CC12, TAD I [7605 006133 4010 CC111, CSWIT1 006134 7200 CC11, CLA 006135 7266 CC101, SWAPR2+CSWIT2 006136 3075 CC10, DCA BINSRT 006137 7226 CC301, SWAPR2+NOPA22 006140 7612 CC30, 7612 006141 5600 CC31, OTYPE 006142 7643 CC1, MPARAM 006143 1000 CC2, 1000 006144 2066 CC3, BEGINH 006145 7612 CC4, 7612 006146 2627 CCX1, TEXT4X /V3C 006147 3661 CCX2, OP3 006150 3155 CCX3, OPEXPL 006151 3514 CCX4, LGERR 006152 7644 CCX5, MPARAM+1 006153 0441 CCX6, FIELDY+1 006154 0442 CCX7, FIELDY+2 006155 4471 CCX8, JMS I PERROR 006156 0001 CC7, 1 006157 0322 FILENAME CREFLS.TM 006160 0506 006161 1423 006162 2415 006163 0322 CC9, FILENAME CREF.SV 006164 0506 006165 0000 006166 2326 006167 1012 CC20, BEGIAB 006170 1154 CC21, TAD [177 006171 7277 CC211, SWAPR2+DIRSW1 006172 1110 CC22, TAD [232 006173 7300 CC221, SWAPR2+PTPSW1 006174 2136 BEGINL, PALBIN 006177 7776 6200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 105 /*********************************************************************** /SYMBOL TABLE /MOVED BY ASSEMBLER TO FIELD 1 /MUST REMAIN IN ALPHABETICAL ORDER /*********************************************************************** 006200 5777 SYMS, 5777 /TERMINATOR 006201 3777 3777 /IMPOSSIBLE (LIMITING) SYMBOL 006202 5777 5777 006203 0000 0000 IFNZRO HASH< /PSEUDO OPS MUST GO FIRST FOR EXPUNGE 006204 6515 "I-300^45+4000+2000 /I 006205 0000 0 006206 0000 0 006207 0400 0400 006210 5121 "P-300^45+"A-300+4000 /PAUSE 006211 1434 "U-300^45+"S-300 006212 4271 "E-300^45+4000 006213 0361 PAUSEX 006214 5121 "P-300^45+"A-300+4000 /PAGE 006215 0410 "G-300^45+"E-300 006216 4000 4000 006217 0443 PAGEX 006220 5351 "T-300^45+"E-300+4000 /TEXT 006221 1614 "X-300^45+"T-300 006222 4000 4000 006223 2601 TEXTX 006224 5237 "R-300^45+"E-300+4000 /RELOC 006225 0713 "L-300^45+"O-300 006226 4157 "C-300^45+4000 006227 5466 RELOCY 006230 5056 "O-300^45+"C-300+4000 /OCTAL 006231 1345 "T-300^45+"A-300 006232 4674 "L-300^45+4000 006233 0210 OCTALX 006234 5025 "N-300^45+"O-300+4000 /NOPUNCH 006235 1145 "P-300^45+"U-300 006236 5011 "N-300^45+"C-300+4000 006237 0204 NOPUNX 006240 4523 "I-300^45+"F-300+4000 /IFZERO 006241 1707 "Z-300^45+"E-300 006242 5251 "R-300^45+"O-300+4000 006243 5000 IF0 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 106 006244 4523 "I-300^45+"F-300+4000 /IFNZRO 006245 1040 "N-300^45+"Z-300 006246 5251 "R-300^45+"O-300+4000 006247 5001 IFN0 006250 4523 "I-300^45+"F-300+4000 /IFNDEF 006251 1012 "N-300^45+"D-300 006252 4277 "E-300^45+"F-300+4000 006253 5051 IFND 006254 4523 "I-300^45+"F-300+4000 /IFDEF 006255 0231 "D-300^45+"E-300 006256 4336 "F-300^45+4000 006257 5050 IFD 006260 4347 "F-300^45+"I-300+4000 /FIXTAB 006261 1614 "X-300^45+"T-300 006262 4047 "A-300^45+"B-300+4000 006263 4253 FIXTBX 006264 4347 "F-300^45+"I-300+4000 /FIXMRI 006265 1605 "X-300^45+"M-300 006266 5243 "R-300^45+"I-300+4000 006267 0471 FIXMRX 006270 4347 "F-300^45+"I-300+4000 /FILENAME 006271 0701 "L-300^45+"E-300 006272 5007 "N-300^45+"A-300+4000 006273 2526 FILENX 006274 4347 "F-300^45+"I-300+4000 /FIELD 006275 0305 "E-300^45+"L-300 006276 4224 "D-300^45+4000 006277 0415 FIELDX 006300 4321 "E-300^45+"X-300+4000 /EXPUNGE 006301 1145 "P-300^45+"U-300 006302 5015 "N-300^45+"G-300+4000 006303 2667 EXPUNX 006304 4307 "E-300^45+"N-300+4000 /ENPUNCH 006305 1145 "P-300^45+"U-300 006306 5011 "N-300^45+"C-300+4000 006307 0205 ENPUNX 006310 4303 "E-300^45+"J-300+4000 /EJECT 006311 0274 "E-300^45+"C-300 006312 5344 "T-300^45+4000 006313 5505 EJECTX /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 107 006314 4250 "D-300^45+"T-300+4000 /DTORG 006315 1075 "O-300^45+"R-300 006316 4403 "G-300^45+4000 006317 5400 DTORGX 006320 4231 "D-300^45+"E-300+4000 /DEVICE 006321 1467 "V-300^45+"I-300 006322 4164 "C-300^45+"E-300+4000 006323 2523 DEVICX 006324 4231 "D-300^45+"E-300+4000 /DECIMAL 006325 0170 "C-300^45+"I-300 006326 4742 "M-300^45+"A-300+4000 006327 0207 DECIMX > 006330 5704 "Z-300^45+"B-300+4000 /ZBLOCK 006331 0713 "L-300^45+"O-300 006332 4172 "C-300^45+"K-300+4000 006333 4130 ZBLOCX 006334 7702 "Z-300^45+4000+2000 /Z 006335 0000 0 006336 0000 0 006337 0000 0000 006340 5604 "X-300^45+"L-300+4000 /XLIST 006341 0540 "I-300^45+"S-300 006342 5344 "T-300^45+4000 006343 5453 XLISTY 006344 5367 "T-300^45+"S-300+4000 /TSK 006345 0627 "K-300^45 006346 0000 0 006347 6045 6045 006350 5367 "T-300^45+"S-300+4000 /TSF 006351 0336 "F-300^45 006352 0000 0 006353 6041 TSF 006354 5364 "T-300^45+"P-300+4000 /TPC 006355 0157 "C-300^45 006356 0000 0 006357 6044 TPC 006360 5360 "T-300^45+"L-300+4000 /TLS 006361 1277 "S-300^45 006362 0000 0 006363 6046 TLS 006364 5352 "T-300^45+"F-300+4000 /TFL /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 107-1 006365 0674 "L-300^45 006366 0000 0 006367 6040 6040 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 108 IFZERO HASH< "T-300^45+"E-300+4000 /TEXT "X-300^45+"T-300 4000 TEXTX > 006370 5347 "T-300^45+"C-300+4000 /TCF 006371 0336 "F-300^45 006372 0000 0 006373 6042 TCF 006374 5345 "T-300^45+"A-300+4000 /TAD 006375 4224 "D-300^45+4000 006376 0000 0 006377 1000 TAD 0 006400 5331 "S-300^45+"Z-300+4000 /SZL 006401 0674 "L-300^45 006402 0000 0 006403 7430 SZL 006404 5331 "S-300^45+"Z-300+4000 /SZA 006405 0045 "A-300^45 006406 0000 0 006407 7440 SZA 006410 5326 "S-300^45+"W-300+4000 /SWP 006411 1120 "P-300^45 006412 0000 0 006413 7521 7521 006414 5323 "S-300^45+"T-300+4000 /STL 006415 0674 "L-300^45 006416 0000 0 006417 7120 STL 006420 5323 "S-300^45+"T-300+4000 /STA 006421 0045 "A-300^45 006422 0000 0 006423 7240 STA 006424 5321 "S-300^45+"R-300+4000 /SRQ 006425 1165 "Q-300^45 006426 0000 0 006427 6003 6003 006430 5317 "S-300^45+"P-300+4000 /SPA 006431 0045 "A-300^45 006432 0000 0 006433 7510 SPA /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 109 006434 5315 "S-300^45+"N-300+4000 /SNL 006435 0674 "L-300^45 006436 0000 0 006437 7420 SNL 006440 5315 "S-300^45+"N-300+4000 /SNA 006441 0045 "A-300^45 006442 0000 0 006443 7450 SNA 006444 5314 "S-300^45+"M-300+4000 /SMA 006445 0045 "A-300^45 006446 0000 0 006447 7500 SMA 006450 5312 "S-300^45+"K-300+4000 /SKP 006451 1120 "P-300^45 006452 0000 0 006453 7410 SKP 006454 5312 "S-300^45+"K-300+4000 /SKON 006455 1071 "O-300^45+"N-300 006456 0000 0 006457 6000 6000 006460 5306 "S-300^45+"G-300+4000 /SGT 006461 1344 "T-300^45 006462 0000 0 006463 6006 6006 006464 5256 "R-300^45+"T-300+4000 /RTR 006465 1232 "R-300^45 006466 0000 0 006467 7012 RTR 006470 5256 "R-300^45+"T-300+4000 /RTL 006471 0674 "L-300^45 006472 0000 0 006473 7006 RTL 006474 5256 "R-300^45+"T-300+4000 /RTF 006475 0336 "F-300^45 006476 0000 0 006477 6005 6005 006500 5255 "R-300^45+"S-300+4000 /RSF 006501 0336 "F-300^45 006502 0000 0 006503 6011 RSF /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 110 006504 5254 "R-300^45+"R-300+4000 /RRB 006505 0112 "B-300^45 006506 0000 0 006507 6012 RRB 006510 5252 "R-300^45+"P-300+4000 /RPE 006511 0271 "E-300^45 006512 0000 0 006513 6010 6010 006514 5247 "R-300^45+"M-300+4000 /RMF 006515 0336 "F-300^45 006516 0000 0 006517 6244 RMF 006520 5243 "R-300^45+"I-300+4000 /RIF 006521 0336 "F-300^45 006522 0000 0 006523 6224 RIF 006524 5243 "R-300^45+"I-300+4000 /RIB 006525 0112 "B-300^45 006526 0000 0 006527 6234 RIB 006530 5240 "R-300^45+"F-300+4000 /RFC 006531 0157 "C-300^45 006532 0000 0 006533 6014 RFC IFZERO HASH< "R-300^45+"E-300+4000 /RELOC "L-300^45+"O-300 "C-300^45+4000 RELOCY > 006534 5236 "R-300^45+"D-300+4000 /RDF 006535 0336 "F-300^45 006536 0000 0 006537 6214 RDF 006540 5233 "R-300^45+"A-300+4000 /RAR 006541 1232 "R-300^45 006542 0000 0 006543 7010 RAR 006544 5233 "R-300^45+"A-300+4000 /RAL 006545 0674 "L-300^45 006546 0000 0 006547 7004 RAL /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 111 006550 5143 "P-300^45+"S-300+4000 /PSF 006551 0336 "F-300^45 006552 0000 0 006553 6021 PSF 006554 5140 "P-300^45+"P-300+4000 /PPC 006555 0157 "C-300^45 006556 0000 0 006557 6024 PPC 006560 5134 "P-300^45+"L-300+4000 /PLS 006561 1277 "S-300^45 006562 0000 0 006563 6026 PLS 006564 5123 "P-300^45+"C-300+4000 /PCF 006565 0336 "F-300^45 006566 0000 0 006567 6022 PCF 006570 5123 "P-300^45+"C-300+4000 /PCE 006571 0271 "E-300^45 006572 0000 0 006573 6020 6020 IFZERO HASH< "P-300^45+"A-300+4000 /PAUSE "U-300^45+"S-300 "E-300^45+4000 PAUSEX "P-300^45+"A-300+4000 /PAGE "G-300^45+"E-300 4000 PAGEX > 006574 5076 "O-300^45+"S-300+4000 /OSR 006575 1232 "R-300^45 006576 0000 0 006577 7404 OSR 006600 5073 "O-300^45+"P-300+4000 /OPR 006601 1232 "R-300^45 006602 0000 0 006603 7000 OPR IFZERO HASH< "O-300^45+"C-300+4000 /OCTAL "T-300^45+"A-300 "L-300^45+4000 OCTALX > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 112 IFZERO HASH< "N-300^45+"O-300+4000 /NOPUNCH "P-300^45+"U-300 "N-300^45+"C-300+4000 NOPUNX > 006604 5025 "N-300^45+"O-300+4000 /NOP 006605 1120 "P-300^45 006606 0000 0 006607 7000 NOP 006610 4762 "M-300^45+"Q-300+4000 /MQL 006611 0674 "L-300^45 006612 0000 0 006613 7421 7421 006614 4762 "M-300^45+"Q-300+4000 /MQA 006615 0045 "A-300^45 006616 0000 0 006617 7501 7501 006620 4675 "L-300^45+"A-300+4000 /LAS 006621 1277 "S-300^45 006622 0000 0 006623 7604 LAS 006624 4652 "K-300^45+"S-300+4000 /KSF 006625 0336 "F-300^45 006626 0000 0 006627 6031 KSF 006630 4651 "K-300^45+"R-300+4000 /KRS 006631 1277 "S-300^45 006632 0000 0 006633 6034 KRS 006634 4651 "K-300^45+"R-300+4000 /KRB 006635 0112 "B-300^45 006636 0000 0 006637 6036 KRB 006640 4640 "K-300^45+"I-300+4000 /KIE 006641 0271 "E-300^45 006642 0000 0 006643 6035 6035 006644 4632 "K-300^45+"C-300+4000 /KCF 006645 0336 "F-300^45 006646 0000 0 006647 6030 6030 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 113 006650 4632 "K-300^45+"C-300+4000 /KCC 006651 0157 "C-300^45 006652 0000 0 006653 6032 KCC 006654 4577 "J-300^45+"M-300+4000 /JMS 006655 5277 "S-300^45+4000 006656 0000 0 006657 4000 JMS 0 006660 4577 "J-300^45+"M-300+4000 /JMP 006661 5120 "P-300^45+4000 006662 0000 0 006663 5000 JMP 0 006664 4540 "I-300^45+"S-300+4000 /ISZ 006665 5702 "Z-300^45+4000 006666 0000 0 006667 2000 ISZ 0 006670 4534 "I-300^45+"O-300+4000 /IOT 006671 1344 "T-300^45 006672 0000 0 006673 6000 IOT 006674 4534 "I-300^45+"O-300+4000 /ION 006675 1006 "N-300^45 006676 0000 0 006677 6001 ION 006700 4534 "I-300^45+"O-300+4000 /IOF 006701 0336 "F-300^45 006702 0000 0 006703 6002 IOF IFZERO HASH< "I-300^45+"F-300+4000 /IFZERO "Z-300^45+"E-300 "R-300^45+"O-300+4000 IF0 "I-300^45+"F-300+4000 /IFNZRO "N-300^45+"Z-300 "R-300^45+"O-300+4000 IFN0 "I-300^45+"F-300+4000 /IFNDEF "N-300^45+"D-300 "E-300^45+"F-300+4000 IFND > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 114 IFZERO HASH< "I-300^45+"F-300+4000 /IFDEF "D-300^45+"E-300 "F-300^45+4000 IFD > 006704 4516 "I-300^45+"A-300+4000 /IAC 006705 0157 "C-300^45 006706 0000 0 006707 7001 IAC IFZERO HASH< "I-300^45+4000+2000 /I 0 0 0400 > 006710 4464 "H-300^45+"L-300+4000 /HLT 006711 1344 "T-300^45 006712 0000 0 006713 7402 HLT 006714 4427 "G-300^45+"T-300+4000 /GTF 006715 0336 "F-300^45 006716 0000 0 006717 6004 6004 006720 4417 "G-300^45+"L-300+4000 /GLK 006721 0627 "K-300^45 006722 0000 0 006723 7204 GLK IFZERO HASH< "F-300^45+"I-300+4000 /FIXTAB "X-300^45+"T-300 "A-300^45+"B-300+4000 FIXTBX "F-300^45+"I-300+4000 /FIXMRI "X-300^45+"M-300 "R-300^45+"I-300+4000 FIXMRX "F-300^45+"I-300+4000 /FILENAME "L-300^45+"E-300 "N-300^45+"A-300+4000 FILENX "F-300^45+"I-300+4000 /FIELD "E-300^45+"L-300 "D-300^45+4000 FIELDX > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 115 IFZERO HASH< "E-300^45+"X-300+4000 /EXPUNGE "P-300^45+"U-300 "N-300^45+"G-300+4000 EXPUNX "E-300^45+"N-300+4000 /ENPUNCH "P-300^45+"U-300 "N-300^45+"C-300+4000 ENPUNX "E-300^45+"J-300+4000 /EJECT "E-300^45+"C-300 "T-300^45+4000 EJECTX "D-300^45+"T-300+4000 /DTORG "O-300^45+"R-300 "G-300^45+4000 DTORGX "D-300^45+"E-300+4000 /DEVICE "V-300^45+"I-300 "C-300^45+"E-300+4000 DEVICX "D-300^45+"E-300+4000 /DECIMAL "C-300^45+"I-300 "M-300^45+"A-300+4000 DECIMX > 006724 4227 "D-300^45+"C-300+4000 /DCA 006725 4045 "A-300^45+4000 006726 0000 0 006727 3000 DCA 0 006730 4174 "C-300^45+"M-300+4000 /CML 006731 0674 "L-300^45 006732 0000 0 006733 7020 CML 006734 4174 "C-300^45+"M-300+4000 /CMA 006735 0045 "A-300^45 006736 0000 0 006737 7040 CMA 006740 4173 "C-300^45+"L-300+4000 /CLL 006741 0674 "L-300^45 006742 0000 0 006743 7100 CLL /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 116 006744 4173 "C-300^45+"L-300+4000 /CLA 006745 0045 "A-300^45 006746 0000 0 006747 7200 CLA 006750 4170 "C-300^45+"I-300+4000 /CIF 006751 0336 "F-300^45 006752 0000 0 006753 6202 CIF 006754 4170 "C-300^45+"I-300+4000 /CIA 006755 0045 "A-300^45 006756 0000 0 006757 7041 CIA 006760 4163 "C-300^45+"D-300+4000 /CDF 006761 0336 "F-300^45 006762 0000 0 006763 6201 CDF 006764 4160 "C-300^45+"A-300+4000 /CAF 006765 0336 "F-300^45 006766 0000 0 006767 6007 6007 006770 4135 "B-300^45+"S-300+4000 /BSW 006771 1523 "W-300^45 006772 0000 0 006773 7002 7002 006774 4063 "A-300^45+"N-300+4000 /AND 006775 4224 "D-300^45+4000 006776 0000 0 006777 0000 AND 0 007000 4001 4001 /TERMINATOR 007001 0000 0000 /IMPOSSIBLE (LIMITING) SYMBOL 007002 4000 4000 007003 0000 0000 7004 SYME=. /********************************************************************** /TOP OF SYMBOL TABLE /********************************************************************** /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 117 7004 SWAP2=. /********************************************************************** /CODE UNIQUE TO PASSES 1 AND 2 /SWAPPED IN FOR PASSES 1 AND 2 /OVERLAYED DURING PASS 3 *** NO LITERALS *** 1000 RELOC 1000 /ASSEMBLED INTO 1000-1247 1000 SWAPB2= . 6004 SWAPR2= SWAP2-SWAPB2 /RELOCATION FACTOR FOR THIS CODE 001000* 0000 OOPEN, 0 001001* 1310 TAD OPEN01 /OPEN BINARY AND LISTING FILES 001002* 3237 DCA XOUHND /SET ADDRESS OF DEVICE HANDLER 001003* 1311 TAD OPEN02 001004* 3245 DCA XOUBLK 001005* 1115 TAD [-5 001006* 3246 DCA XOUELE /SET NEW OUTPUT FILE LENGTH 001007* 6211 CDF 10 001010* 1707 TAD I OUFPTR 001011* 6201 CDF 001012* 3645 DCA I XOUBLK 001013* 2245 ISZ XOUBLK 001014* 2307 ISZ OUFPTR 001015* 2246 ISZ XOUELE /INCREMENT OUTPUT FILE LENGTH 001016* 5207 JMP .-7 001017* 1311 TAD OPEN02 001020* 7001 IAC 001021* 3245 DCA XOUBLK /SET POINTER TO NEW FILENAME 001022* 1245 TAD XOUBLK 001023* 3712 DCA I OPEN04 001024* 6212 CIF 10 001025* 4452 JMS I IOMON /CALL USER SERVICE ROUTINES 001026* 0013 13 /*RESET SYSTEM TABLES* 001027* 3713 DCA I OPEN05 /DELETE UNCLOSED FILES AND 001030* 1711 TAD I OPEN02 /DELETE HANDLERS 001031* 0107 AND [17 /GET NEW DEVICE HANDLER # 001032* 7450 SNA /OUTPUT INHIBIT? 001033* 5305 JMP ONOFIL /YES 001034* 6212 CIF 10 /NO 001035* 4452 JMS I IOMON /CALL USER SERVICE ROUTINE 001036* 0001 1 /*FETCH DEVICE HANDLER* 001037* 0000 XOUHND, 0 /LOADING ADDRESS 001040* 7402 HLT /HANDLER NOT AVAILABLE 001041* 1711 OUENTR, TAD I OPEN02 /NORMAL RETURN - GET OUTPUT 001042* 6212 CIF 10 /DEVICE NUMBER AND FILE LENGTH /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 118 001043* 4452 JMS I IOMON /CALL NEW SERVICE ROUTINES 001044* 0003 3 /*ENTER OUTUT FILE 001045* 0000 XOUBLK, 0 /POINTER TO FILENAME 001046* 0000 XOUELE, 0 /FILE LENGTH 001047* 5275 JMP OEFAIL /ERROR RETURN 001050* 3714 DCA I OPEN06 /NORMAL RETURN 001051* 4715 JMS I OPEN07 001052* 1237 TAD XOUHND 001053* 1176 TAD [200 /LINK IS CLEAR!! 001054* 7620 SNL CLA 001055* 1126 TAD [400 001056* 1323 TAD OUFDEV 001057* 3724 DCA I OUFINP 001060* 1724 TAD I OUFINP 001061* 7110 CLL RAR 001062* 7041 CIA 001063* 1322 TAD OU3501 001064* 3066 DCA INCTL 001065* 2200 ISZ OOPEN 001066* 1237 TAD XOUHND 001067* 3716 DCA I OPEN09 001070* 1245 TAD XOUBLK 001071* 3717 DCA I OPEN10 001072* 1246 TAD XOUELE 001073* 3720 DCA I OPEN11 001074* 5600 JMP I OOPEN /--RETURN-- 001075* 1711 OEFAIL, TAD I OPEN02 001076* 0102 AND [7760 001077* 7650 SNA CLA 001100* 5721 JMP I OPEN12 /DE**FATAL ERROR** 001101* 1711 TAD I OPEN02 001102* 0107 AND [17 001103* 3711 DCA I OPEN02 001104* 5241 JMP OUENTR 001105* 2713 ONOFIL, ISZ I OPEN05 /SET OUTPUT INHIBIT SWITCH 001106* 5600 JMP I OOPEN /--RETURN-- 001107* 7600 OUFPTR, 7600 001110* 6201 OPEN01, OUDEVH+1 001111* 2723 OPEN02, OUFILE 001112* 2717 OPEN04, OUCNAM 001113* 2503 OPEN05, OUTINH 001114* 2720 OPEN06, OUCCNT 001115* 2512 OPEN07, OUSETP 001116* 2763 OPEN09, OUHNDL 001117* 2764 OPEN10, OUBLK 001120* 2765 OPEN11, OUELEN 001121* 2761 OPEN12, SYSERR /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 118-1 001122* 3501 OU3501, 3501 001123* 6200 OUFDEV, OUDEVH 001124* 5225 OUFINP, INBUFP /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 119 /CONTINUATION OF FIXTAB HANDLER FIXTAY, IFZERO HASH< TAD HIGHTG /SET POINTERS TO TABLE CMA > IFNZRO HASH< 001125* 1100 TAD TAGMAX 001126* 7041 CIA > 001127* 3046 DCA TEMP3 001130* 3057 DCA THISTG 001131* 4573 FIXTAX, JMS I [FINDTG /GET A TAG 001132* 7350 AC3777 001133* 0020 AND TAG1 IFNZRO HASH< 001134* 7440 SZA > 001135* 1141 TAD [4000 /SET BIT 0 OF FIRST WORD TO 1 001136* 3020 DCA TAG1 /RETURN IT TO TABLE 001137* 4540 JMS I [PUTTAG 001140* 2057 ISZ THISTG 001141* 2046 ISZ TEMP3 /DONE WITH TABLE YET? 001142* 5331 JMP FIXTAX /NO 001143* 5577 JMP I [LOOKEX /YES--EXIT TO MAIN-- /OUTPUT ONE REGISTER - BINARY /ENTER WITH CONTENTS IN AC 001144* 0000 PUNOUT, 0 001145* 3360 DCA PUNOU1 001146* 1360 TAD PUNOU1 001147* 7012 RTR 001150* 7012 RTR 001151* 7012 RTR 001152* 0154 AND [177 001153* 4447 JMS I OCHAR /OUTPUT FIRST FRAME 001154* 1360 TAD PUNOU1 001155* 0175 AND [77 001156* 4447 JMS I OCHAR /OUTPUT SECOND FRAME 001157* 5744 JMP I PUNOUT /--RETURN-- PUNOU1, 001160* 0000 IOPEN, 0 /SET UP INPUT ROUTINE 001161* 7240 CLA CMA /TO OPEN FILE 001162* 3772 DCA I IOPEN1 001163* 2773 ISZ I IOPEN2 001164* 1374 TAD IOPEN3 001165* 3775 DCA I IOPEN4 001166* 2776 ISZ I IOPEN5 001167* 1170 TAD [LINBUF+120 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 119-1 001170* 3037 DCA TXTPTR 001171* 5760 JMP I IOPEN /--RETURN-- 001172* 5274 IOPEN1, INCHCT 001173* 5275 IOPEN2, INEOF 001174* 7617 IOPEN3, 7617 001175* 5301 IOPEN4, INFPTR 001176* 3755 IOPEN5, FORMSW 1200 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 120 /START PASS 2 *** NO LITERALS HERE EITHER *** 001200* 1141 START1, TAD [ERROR 001201* 3071 DCA PERROR /RESET PREUDO-ERROR ROUTINE 001202* 4706 JMS I ST1OPN /OPEN PASS 2 OUTPUT FILE 001203* 5212 JMP NOPA21 /NO PASS 2 IF PASS 3 001204* 1707 NOPA23, TAD I ST1OBL 001205* 3075 DCA BINSRT 001206* 3025 DCA PUNCHX /CLEAR PUNCH INHIBIT 001207* 4223 JMS START3 001210* 5611 JMP I .+1 001211* 4400 START2-1 001212* 6211 NOPA21, CDF 10 001213* 1622 TAD I NOPA22 /IS THERE A PASS 3? 001214* 6201 CDF 001215* 7650 SNA CLA 001216* 5204 JMP NOPA23 /NO - DO PASS 2 001217* 2051 ISZ PASS /SKIP PASS 2 001220* 7000 NOP 001221* 5243 JMP NOPAS2 /CONTINUE TO PASS 3 001222* 7605 NOPA22, 7605 001223* 0000 START3, 0 /GENERATE LEADER/TRAILER 001224* 1233 TAD LEADER 001225* 3037 DCA TXTPTR 001226* 1176 TAD [200 001227* 4447 JMS I OCHAR 001230* 2037 ISZ TXTPTR 001231* 5226 JMP .-3 001232* 5623 JMP I START3 /--RETURN-- 001233* 7770 LEADER, -10 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 121 /END PASS 2 001234* 4563 ENDPA2, JMS I [DUMPZ /DUMP PAGE 0 LITERALS 001235* 3025 DCA PUNCHX 001236* 7100 CLL /V3C 001237* 1055 TAD CHKSUM /OUTPUT CHECKSUM 001240* 4523 JMS I [PUNOUT /PUNCH THE CHECKSUM 001241* 4223 JMS START3 /GENERATE LEADER/TRAILER 001242* 4701 JMS I EN2CLS /CLOSE PASS 2 OUTPUT FILE 001243* 1302 NOPAS2, TAD EN2LSO 001244* 3050 DCA OERROR /SET NEW OUTPUT TO BE LISTING 001245* 2703 ISZ I EN2OU1 001246* 5256 CMOVE, JMP CMOVA /ZEROED IF /C 001247* 6211 CDF 10 /MOVE CODE FOR /C OPTION 001250* 1675 CMOVB, TAD I CMOV1 001251* 3676 DCA I CMOV2 /MOVE OUTPUT FILE STORAGE 001252* 2275 ISZ CMOV1 001253* 2276 ISZ CMOV2 001254* 2277 ISZ CMOV3 001255* 5250 JMP CMOVB /LOOP 001256* 6201 CMOVA, CDF 001257* 4706 JMS I ST1OPN /OPEN 3RD PASS FILE 001260* 3700 DCA I CMOV4 /NO 3RD PASS 001261* 1707 TAD I ST1OBL /GET FILE START 001262* 7200 CSWIT2, CLA /"DCA BINSRT" IF /C 001263* 1274 TAD PTPSW1 001264* 3704 DCA I EN2PTP /RESET PAPERTAPE SWITCH 001265* 1273 TAD DIRSW1 001266* 3705 DCA I EN2DIR /RESET DIRECTORY SWITCH 001267* 4672 JMS I PIOPEN 001270* 5671 JMP I .+1 001271* 4523 LOADOV /OVERLAY THIS AREA WITH PASS3 CODE 001272* 1160 PIOPEN, IOPEN 001273* 1154 DIRSW1, TAD [177 001274* 1110 PTPSW1, TAD [232 001275* 7605 CMOV1, 7605 001276* 7600 CMOV2, 7600 001277* 7766 CMOV3, -12 001300* 4530 CMOV4, NSWITC 001301* 2673 EN2CLS, OCLOSE 001302* 1000 EN2LSO, LISOUT 001303* 2400 EN2OU1, OUTPT1 001304* 2677 EN2PTP, PTPSW 001305* 2703 EN2DIR, DIRSW 001306* 1000 ST1OPN, OOPEN 001307* 2764 ST1OBL, OUBLK 7314 SWAPE2, RELOC IFNZRO ENDOVL-SWAPE2&4000 <OVLERR,__ERROR__> 7400 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 122 IFNZRO HASH< /ONCE ONLY CODE TO HASH OUT THE PERMANENT SYMBOLS 007400 0000 HSHSMS, 0 007401 4777 JMS I (7607 /WRITE THE SYMBOL TABLE SORT OVERLAY 007402 4210 4210 /2 PAGES FROM FIELD 1 007403 6600 OUDEVH+400 /FROM HERE 007404 0041 ASWAP+1 /TO HERE 007405 5776 JMP I (SYSERR/WONDERFUL. 007406 1775 TAD I (USROFS 007407 7640 SZA CLA /SZA IF KICKING OUT USR 007410 1374 TAD (12 /ELSE FUDGE POINTER 007411 1773 TAD I (HIFLD /FIRST SET HASH TABLE SIZE 007412 1324 TAD PRIMES /ACCORDING TO CORE SIZE 007413 3100 DCA PRIME 007414 1500 TAD I PRIME 007415 3100 DCA PRIME 007416 1100 TAD PRIME 007417 7041 CIA 007420 3772 DCA I (MPRIME 007421 1775 TAD I (USROFS 007422 7640 SZA CLA 007423 5232 JMP KPUSR /JMP IF KEEPING USR 007424 6211 CDF 10 /SERVE NOTICE WE'RE OCCUPYING FIELD 1 007425 7344 AC7776 007426 0771 AND I (JSBITS 007427 3771 DCA I (JSBITS 007430 1156 TAD [7700 007431 3052 DCA IOMON /AND POINT AT PROPER MONITOR E.P. 007432 6201 KPUSR, CDF 007433 1772 TAD I (MPRIME /HOW MANY SLOTS TO WIPE 007434 3016 DCA LAST3 /TO COUNTER 007435 1775 TAD I (USROFS 007436 7106 CLL RTL 007437 1370 TAD (7777 /FUDGE THE INITIAL AUTO XR 007440 5251 JMP CLRGO /INTO THE LOOP NOW 007441 1014 CLRLUP, TAD LAST1 007442 1367 TAD (-7577 007443 7640 SZA CLA /SZA IF NEED TO DO NEXT FIELD 007444 5253 JMP CLCDF0+1/ELSE CLEAR ANOTHER 007445 1366 TAD (10 007446 1252 TAD CLCDF0 007447 3252 DCA CLCDF0 /CDF INSTR GETS BUMPED 007450 7240 STA 007451 3014 CLRGO, DCA LAST1 /XRGETS SET 007452 6211 CLCDF0, CDF 10 /INITIALLY CDF 10 007453 3414 DCA I LAST1 007454 3414 DCA I LAST1 007455 3414 DCA I LAST1 007456 3414 DCA I LAST1 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 122-1 007457 2016 ISZ LAST3 /SKP IF NO MORE 007460 5241 JMP CLRLUP /ELSE DO ANOTHER 007461 6201 CDF /THE TABLE IS CLEAN 007462 1365 TAD (HSHRTN 007463 3544 DCA I [GETTAG 007464 7240 STA 007465 3060 DCA HIGHTG /HIGHTG=CURRENT SYMBOL INDEX 007466 1364 TAD (SYMS+3 /USE THESE AUTO XR'S NOW 007467 3014 DCA LAST1 007470 1014 TAD LAST1 007471 3015 DCA LAST2 007472 1414 HSHLP, TAD I LAST1 007473 0172 AND [1777 /FIRST, STRIP THE TYPE BITS 007474 3763 DCA I (NAME1 007475 7350 AC3777 007476 0414 AND I LAST1 007477 3767 DCA I (NAME2 007500 7350 AC3777 007501 0414 AND I LAST1 007502 3762 DCA I (NAME3 007503 2014 ISZ LAST1 /SKIP THE VALUE 007504 5761 JMP I (GETTGH /GO FIND IT'S PLACE 007505 7300 HSHRTN, CLA CLL 007506 1415 TAD I LAST2 007507 3763 DCA I (NAME1 007510 1415 TAD I LAST2 007511 3767 DCA I (NAME2 007512 1415 TAD I LAST2 007513 3762 DCA I (NAME3 007514 1415 TAD I LAST2 007515 3035 DCA VALUE2 007516 4760 JMS I (INSRTG /AND STORE IT 007517 1014 TAD LAST1 007520 1357 TAD (1-SYME+4 007521 7640 SZA CLA 007522 5272 JMP HSHLP /LOOP IF MORE TO GO 007523 5600 JMP I HSHSMS /--RETURN-- 007524 7524 PRIMES, . 007525 1737 1737 /1 FIELD 007526 3673 3673 /2 FIELDS 007527 5633 5633 /3 FIELDS 007530 7577 7577 /4 FIELDS 007531 7775 7775 /5 FIELDS (THE LAST MOSTELY WASTE) 7531 BPRIMES=.-1 /ALTERNATE TABLE SIZE FOR BATCH COMPATABILITY 007532 1737 1737 /1 FIELD (MEANS NO BATCH) 007533 3133 3133 /2 FIELDS 007534 5075 5075 /3 FIELDS 007535 7035 7035 /4 FIELDS 007536 7775 7775 /5 FIELDS (SOME OF WASTE FOR BATCH) 007537 1335 1335 /STILL ANOTHER ALTERNATE SET IF KEEPING USR 007540 3273 3273 007541 5237 5237 007542 7175 7175 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 122-2 007543 7775 7775 007544 0000 0 007545 2535 2535 007546 4465 4465 007547 6437 6437 007550 7775 7775 007557 1001 007560 4200 007561 0237 007562 0202 007563 0200 007564 6203 007565 7505 007566 0010 007567 0201 007570 7777 007571 7746 007572 0332 007573 5671 007574 0012 007575 4303 007576 2761 007577 7607 7600 PAGE > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 123 /************************************************************** /PAGE 0 LITERALS /************************************************************** IFNZRO HASH< /SYMBOL TABLE SORT OVERLAY /ONLY SWAPPED IF TABLE WILL BE LISTED /FIRST, SOME EQUATES 0140 PPUTTAG= [PUTTAG 0173 PFINDTG= [FINDTG 0172 O1777= [1777 0132 O7774= [7774 0012 SXR= XREG1 0013 TXR= XREG2 0014 SXR2= LAST1 0015 TXR2= LAST2 0016 UXR= LAST3 0017 DXR= LAST4 0027 BEG= LOC 0030 END= OFFSET 0031 LO= OFSBUF 0032 HI= STARSW 0033 MED= OP 000101 7756 000102 7760 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 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 123-1 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 4543 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 0001 FIELD 1 /SET THE FIELD NOW /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 124 6600 *OUDEVH+400 /IT GOES HERE 016600 0000 SORTAB, 0 /FIRST LOC IN PAGE 016601 1100 TAD TAGMAX 016602 7041 CIA 016603 3043 DCA TEMP /TEMP=#CELLS TO SCAN /DEFLATE TABLE PRIOR TO SORTING AND LISTING IT /OUT WITH EMPTIES AND PERMANENTS 016604 3060 DCA HIGHTG /TARGET POINTER 016605 3045 DCA TEMP2 /SOURCE POINTER 016606 1045 DEFLP, TAD TEMP2 016607 3057 DCA THISTG 016610 4573 JMS I PFINDTG /GET THE NEXT STAB CELL 016611 1020 TAD TAG1 016612 7104 CLL RAL 016613 7670 SNA SZL CLA /AND THERE BUT NOT FIXED? 016614 5232 JMP DEFNUL /NO, DON'T STORE IT 016615 1172 TAD O1777 /YES,DISCARD THE TYPE BITS NOW 016616 0020 AND TAG1 016617 3020 DCA TAG1 016620 7350 AC3777 016621 0021 AND TAG2 016622 3021 DCA TAG2 016623 7350 AC3777 016624 0022 AND TAG3 016625 3022 DCA TAG3 016626 1060 TAD HIGHTG 016627 3057 DCA THISTG 016630 4540 JMS I PPUTTAG 016631 2060 ISZ HIGHTG 016632 2045 DEFNUL, ISZ TEMP2 016633 2043 ISZ TEMP /TRY AGAIN 016634 5206 JMP DEFLP 016635 4777 JMS I (SORT /NOW SORT THEM 016636 5600 JMP I SORTAB /EXIT TO PRTSTAB /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 125 /MOVE A SYMBOL THRU THE TABLE 016637 0000 SMOV, 0 016640 1014 TAD SXR2 /GET SOURCE DF+XREG 016641 4262 JMS GETFLD 016642 3252 DCA SMVCD1 016643 1013 TAD TXR 016644 3012 DCA SXR 016645 1015 TAD TXR2 016646 4262 JMS GETFLD 016647 3254 DCA SMVCD2 016650 1132 TAD O7774 016651 3305 DCA SSWT 016652 0000 SMVCD1, 0 016653 1412 TAD I SXR 016654 0000 SMVCD2, 0 016655 3413 DCA I TXR 016656 2305 ISZ SSWT 016657 5252 JMP SMVCD1 016660 6201 SMVCD0, CDF 016661 5637 JMP I SMOV /AUXILLIARY FIELD+XREG SETTER 016662 0000 GETFLD, 0 016663 7100 CLL 016664 1776 TAD I (USROFS /IF KEEPING USR 016665 3013 DCA TXR /AC=SYM NUM 016666 3254 DCA SMVCD2 016667 1013 TAD TXR 016670 2254 ISZ SMVCD2 016671 7020 CML 016672 1375 TAD (-1740 016673 7420 SNL 016674 5270 JMP .-4 016675 7106 CLL RTL 016676 1374 TAD (-202 /SETS AS IN SETFLD... 016677 3013 DCA TXR /TENTATIVELY SET TXR 016700 1254 TAD SMVCD2 016701 7106 CLL RTL 016702 7004 RAL 016703 1260 TAD SMVCD0 016704 5662 JMP I GETFLD /EXIT WITH AC SET TO CDF INSTR /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 126 /ROUTINE TO EXCHANGE SYMBOLS LO AND HI 016705 0000 SSWT, 0 016706 1032 TAD HI 016707 4262 JMS GETFLD 016710 3326 DCA SWCDF1 016711 1326 TAD SWCDF1 016712 3336 DCA SWCDF3 016713 1013 TAD TXR 016714 3012 DCA SXR 016715 1012 TAD SXR 016716 3014 DCA SXR2 /SXR'S FOR HIGH SYMBOL 016717 1031 TAD LO 016720 4262 JMS GETFLD 016721 3331 DCA SWCDF2 016722 1013 TAD TXR 016723 3015 DCA TXR2 /TXR'S FOR LOW SYMBOL 016724 1132 TAD O7774 016725 3237 DCA SMOV /COUNTER 016726 0000 SWCDF1, 0 016727 1412 TAD I SXR /GET HI SYM WORD 016730 3262 DCA GETFLD /HOLD IT 016731 0000 SWCDF2, 0 016732 1413 TAD I TXR /GET LO 016733 3345 DCA SCOM /HOLD IT 016734 1262 TAD GETFLD 016735 3415 DCA I TXR2 /STORE HI IN LOW 016736 0000 SWCDF3, 0 016737 1345 TAD SCOM /NOW STORE LO 016740 3414 DCA I SXR2 /IN HI 016741 2237 ISZ SMOV 016742 5327 JMP SWCDF1+1 016743 6201 CDF 016744 5705 JMP I SSWT /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 127 /COMPARE SYMBOLS + SET LINK THEREBY 016745 0000 SCOM, 0 016746 3057 DCA THISTG /AC=TAG # 016747 4773 JMS I (SETFLD 016750 1411 TAD I TAGXR 016751 7141 CLL CIA 016752 1020 TAD TAG1 016753 7640 SZA CLA 016754 5367 JMP SCOMRT 016755 1411 TAD I TAGXR 016756 7141 CLL CIA 016757 1021 TAD TAG2 016760 7640 SZA CLA 016761 5367 JMP SCOMRT 016762 1411 TAD I TAGXR 016763 7141 CLL CIA 016764 1022 TAD TAG3 016765 7650 SNA CLA 016766 7402 HLT /NEVER 016767 6201 SCOMRT, CDF 016770 5745 JMP I SCOM 016773 4257 016774 7576 016775 6040 016776 4303 016777 7000 7000 PAGE /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 128 /SORT ROUTINE HERE 017000 0000 SORT, 0 017001 3027 DCA BEG /INITIALIZE PARTITION BOUNDS 017002 7360 STA STL 017003 1060 TAD HIGHTG 017004 3030 DCA END /ARE THERE ANY SYMBOLS? 017005 7430 SZL 017006 5600 JMP I SORT /NO EXIT WITH LINK SET 017007 1377 TAD (LITBF1-1+26 /OK, SET STACK NOW 017010 3017 DCA DXR 017011 1017 TAD DXR 017012 3016 DCA UXR 017013 7240 SLOOP, STA 017014 1371 TAD LEVEL 017015 3371 DCA LEVEL 017016 1027 SLOOP2, TAD BEG 017017 7161 STL CIA 017020 1030 TAD END 017021 7470 SNA SZL 017022 5361 JMP OKCOOL /END.LOS.BEG 017023 7110 CLL RAR 017024 1027 TAD BEG 017025 3033 DCA MED /MED=BEG+(END-BEG)/2 017026 1033 TAD MED 017027 3057 DCA THISTG 017030 4573 JMS I PFINDTG /T=A(MED) 017031 1027 TAD BEG 017032 3031 DCA LO /LO=BEG 017033 1030 TAD END 017034 3032 DCA HI /HI=END 017035 1033 TAD MED 017036 7041 CIA 017037 1027 TAD BEG 017040 7650 SNA CLA 017041 5355 JMP JUSTWO /BEG.EQ.MED /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 129 017042 1031 TAD LO 017043 3014 DCA SXR2 017044 1033 TAD MED 017045 3015 DCA TXR2 017046 4776 JMS I (SMOV /A(MED)=A(LO) 017047 2031 BEGLP, ISZ LO 017050 1031 TAD LO 017051 7141 CLL CIA 017052 1032 TAD HI 017053 7620 SNL CLA 017054 5304 JMP DONE /HI.LOS.LO 017055 1031 TAD LO 017056 4775 JMS I (SCOM /T.GT.A(LO) TO LINK 017057 7630 SZL CLA 017060 5247 JMP BEGLP /T.GT.A(LO) 017061 5267 JMP ENDGO /T.LT.A(LO) 017062 1031 ENDLP, TAD LO 017063 7141 CLL CIA 017064 1032 TAD HI 017065 7620 SNL CLA 017066 5304 JMP DONE /IF HI.LO.LO 017067 1032 ENDGO, TAD HI 017070 4775 JMS I (SCOM 017071 7630 SZL CLA 017072 5277 JMP SWITCH 017073 7240 STA 017074 1032 TAD HI 017075 3032 DCA HI 017076 5262 JMP ENDLP 017077 4774 SWITCH, JMS I (SSWT 017100 7240 STA 017101 1032 TAD HI 017102 3032 DCA HI 017103 5247 JMP BEGLP /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 130 017104 1032 DONE, TAD HI 017105 3014 DCA SXR2 017106 1027 TAD BEG 017107 3015 DCA TXR2 017110 4776 JMS I (SMOV /A(BEG)=A(HI) 017111 1032 TAD HI 017112 3057 DCA THISTG 017113 4540 JMS I PPUTTAG /A(HI)=T 017114 7344 AC7776 017115 1016 TAD UXR 017116 3016 DCA UXR 017117 1016 TAD UXR 017120 3017 DCA DXR 017121 1032 TAD HI 017122 7141 CLL CIA 017123 1033 TAD MED 017124 7630 SZL CLA 017125 5337 JMP HIBIGR /DEFER HIGH FOR LATER 017126 1027 TAD BEG 017127 3417 DCA I DXR /DEFER LO FOR LATER 017130 7240 STA 017131 1032 TAD HI 017132 3417 DCA I DXR 017133 1032 TAD HI 017134 7001 IAC 017135 3027 DCA BEG 017136 5213 JMP SLOOP 017137 1032 HIBIGR, TAD HI 017140 7001 IAC 017141 3417 DCA I DXR 017142 1030 TAD END 017143 3417 DCA I DXR 017144 7240 STA 017145 1371 TAD LEVEL /CLUMSY 017146 3371 DCA LEVEL 017147 7340 CLL STA 017150 1032 TAD HI 017151 3030 DCA END 017152 7420 SNL /PROTECT AGAINST WRAP AROUND 017153 5361 JMP OKCOOL 017154 5216 JMP SLOOP2 017155 1032 JUSTWO, TAD HI 017156 4775 JMS I (SCOM 017157 7630 SZL CLA 017160 4774 JMS I (SSWT /SWITCH IF T.GT.A(HI) 017161 7300 OKCOOL, CLA CLL /NOW CONSIDER PREV PARTITIONS 017162 1416 TAD I UXR 017163 3027 DCA BEG 017164 1416 TAD I UXR 017165 3030 DCA END /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 130-1 017166 2371 ISZ LEVEL 017167 5216 JMP SLOOP2 /REITERATE 017170 5600 JMP I SORT /DONE, RETURN WITH A CLEAR LINK 017171 0000 LEVEL, 0 017174 6705 017175 6745 017176 6637 017177 2150 7200 PAGE > /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 131 /ROUTINE TO STORE THE DATE OF THE FORM DD-MMM-YY /IN THE HEADING IFZERO HASH < FIELD 1 *OUDEVH+400 > 017200 0000 FMTDAT, 0 017201 1777 TAD I (MDATE /PICK UP THE DATE WORD OF THE FORM MMM MDD DDD YYY 017202 6201 CDF /RUN WITH DF = 0 017203 7450 SNA 017204 5305 JMP NODATE /EXIT IF NO DATE 017205 3322 DCA DATWD /ELSE STORE DATE WORD 017206 1376 TAD ("0-1 017207 3721 DCA I DATPTR /SET FIRST DIGIT OF DAY 017210 1322 TAD DATWD /NOW GET DAY BITS 017211 7112 CLL RTR 017212 7010 RAR 017213 0375 AND (37 017214 4307 JMS DIV10 /DO DAY DIGITS NOW 017215 1374 TAD ("- 017216 3721 DCA I DATPTR /STORE DASH 017217 2321 ISZ DATPTR 017220 1322 TAD DATWD /NOW GET MONTH BITS 017221 1373 TAD (7400 /REDUCE TO ORIGIN 0 017222 0373 AND (7400 017223 7106 CLL RTL 017224 7006 RTL 017225 7004 RAL 017226 3307 DCA DIV10 017227 1307 TAD DIV10 017230 7110 CLL RAR /GENERATE 1.5*MONTH INDEX 017231 1307 TAD DIV10 017232 1372 TAD (MONLST /INDEX MONTH LIST (SIXBIT) 017233 3323 DCA MONPTR 017234 1371 TAD (-3 017235 3307 DCA DIV10 /SET 3 TIMES THRU LOOP 017236 7430 SZL 017237 5245 JMP MONGO /IF EVEN START AT RIGHT HALF 017240 1723 MONLP, TAD I MONPTR 017241 7112 CLL RTR 017242 7012 RTR 017243 7012 RTR 017244 4251 JMS MONPUT /PUT LEFT CHAR 017245 1723 MONGO, TAD I MONPTR 017246 4251 JMS MONPUT /PUT RIGHT CHAR 017247 2323 ISZ MONPTR 017250 5240 JMP MONLP /LOOP FOR MORE 017251 0000 MONPUT, 0 017252 1370 TAD (40 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 131-1 017253 0367 AND (77 017254 1370 TAD (40 /CONVERT TO 7BIT 017255 3721 DCA I DATPTR 017256 2321 ISZ DATPTR 017257 2307 ISZ DIV10 017260 5651 JMP I MONPUT /RETURN TO UNPACK LOOP 017261 1374 TAD ("- 017262 3721 DCA I DATPTR /PUT ANOTHER DASH 017263 2321 ISZ DATPTR 017264 1766 TAD I (BIPCCL 017265 0365 AND (1600 /GET YEAR EXTENSION FROM BIPCCL 017266 7112 CLL RTR 017267 7012 RTR 017270 3307 DCA DIV10 017271 1322 TAD DATWD /NOW GET YEAR 017272 0364 AND (7 /ISOLATE IT 017273 1307 TAD DIV10 017274 3307 DCA DIV10 017275 1307 TAD DIV10 017276 1363 TAD (-36 /100-70 017277 7700 SMA CLA 017300 1362 TAD (-12 017301 1361 TAD ("6 017302 3721 DCA I DATPTR /SETUP YEAR TENS DIGIT FOR DIVIDE 017303 1307 TAD DIV10 017304 4307 JMS DIV10 /UNPACK IT 017305 6203 NODATE, CIF CDF /NOW RETURN 017306 5600 JMP I FMTDAT 017307 0000 DIV10, 0 017310 2721 ISZ I DATPTR 017311 1362 TAD (-12 017312 7500 SMA 017313 5310 JMP .-3 /REDUCE MON 10. 017314 1360 TAD (12+"0 017315 2321 ISZ DATPTR 017316 3721 DCA I DATPTR /STORE LOW DIGIT 017317 2321 ISZ DATPTR 017320 5707 JMP I DIV10 /--RETURN-- 017321 1535 DATPTR, DATE 017322 0000 DATWD, 0 017323 0000 MONPTR, 0 017360 0272 017361 0266 017362 7766 017363 7742 017364 0007 017365 1600 017366 7777 017367 0077 017370 0040 017371 7775 017372 2044 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 131-2 017373 7400 017374 0255 017375 0037 017376 0257 017377 7666 7400 PAGE 0000 FIELD 0 0200 *200 $$$$$ /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 132 AC0002 7326 CCWWD 2270 CLEAN 4044 DUMPS 4062 AC2000 7332 CCX1 6146 CLRGO 7451 DUMPS1 4000 AC3777 7350 CCX2 6147 CLRLUP 7441 DUMPS2 4147 AC4000 7330 CCX3 6150 CMOVA 1256 DUMPS3 4105 AC7775 7346 CCX4 6151 CMOVB 1250 DUMPS5 4044 AC7776 7344 CCX5 6152 CMOVE 1246 DUMPS6 4111 ADDIND 3543 CCX6 6153 CMOV1 1275 DUMPZ 4147 ALPHA 3103 CCX7 6154 CMOV2 1276 DXR 0017 ALPHAI 0062 CCX8 6155 CMOV3 1277 D2 4123 ALPHA0 3417 CC0070 2316 CMOV4 1300 D3 4126 ALPHA1 3400 CC1 6142 COMMA 3121 D4 2247 ALPHA3 3402 CC10 6136 COMMA1 3127 D5 2220 ALPHA4 3466 CC101 6135 COMMA2 3140 EDITPG 0042 ALPHA5 3465 CC11 6134 CONDSW 0053 EJECTX 5505 ALPHA6 3437 CC111 6133 CONDTM 5100 EJECT1 5511 ASWAP 0040 CC12 6132 CONEND 3040 EJECT2 5516 BATOUT 7400 CC121 6131 CONEN1 3045 EJECT3 5543 BE 4245 CC13 6071 CRLF 1157 EJECT4 5533 BEG 0027 CC131 6130 CRLF1 1162 EJECT5 5535 BEGHSW 1657 CC141 6127 CRPDEL 0331 EJECT6 5526 BEGIAB 1012 CC16 6123 CSWITC 4464 EJECT7 5547 BEGIN 1600 CC171 6126 CSWIT1 4010 END 0030 BEGINB 1663 CC2 6143 CSWIT2 1262 ENDCHK 3256 BEGINF 5612 CC20 6167 CTCCHK 2343 ENDCHR 5302 BEGING 6000 CC21 6170 DATE 1535 ENDCH1 3276 BEGINH 2066 CC211 6171 DATPTR 7321 ENDGO 7067 BEGINJ 6003 CC22 6172 DATWD 7322 ENDLP 7062 BEGINL 6174 CC221 6173 DCB 7760 ENDOVL 1310 BEGINZ 2000 CC23 2255 DDTLDR 1265 ENDPAS 4425 BEGIN1 1702 CC231 2254 DE 4445 ENDPA1 4445 BEGIN4 1651 CC24 2256 DECIMX 0207 ENDPA2 1234 BEGIN5 2007 CC25 2257 DEFLP 6606 ENPUNX 0205 BEGISW 2204 CC26 2260 DEFNUL 6632 EN2CLS 1301 BEGIS3 2233 CC27 2261 DEVICX 2523 EN2DIR 1305 BEGLP 7047 CC28 2262 DEVIC1 2536 EN2LSO 1302 BEGSKP 1662 CC29 2263 DF 4446 EN2OU1 1303 BINCNT 2121 CC3 6144 DIRSW 2703 EN2PTP 1304 BINLOP 2100 CC30 6140 DIRSW1 1273 EQUAL 0510 BINSRT 0075 CC301 6137 DIVAND 3641 EQUAL2 0564 BIPCCL 7777 CC31 6141 DIV10 7307 EQUAL3 0546 BLKEXP 3640 CC4 6145 DIV45 4217 ERCNT 0076 BLK1 2132 CC5 6062 DIV45A 4222 ERMSGS 4452 BLK2 2133 CC6 6054 DIV45B 4241 ERMSG1 4533 BLK3 2134 CC7 6156 DIV45C 4242 ERPLUS 4003 BPRIME 7531 CC7777 2314 DIV45E 4243 ERROR 4000 CCC 2200 CC8 6072 DONE 7104 ERROR1 0400 CCCIF0 2317 CC9 6163 DSWITA 1573 ERROR3 4037 CCHSH 2264 CF 4346 DSWITB 5737 ERROR4 4041 CCJBIT 2266 CHAIN 4503 DSWIT1 1555 ERROR5 0074 CCJLOC 2267 CHAR 0040 DSWIT2 5715 EXP 3200 CCJMSB 2320 CHARLV 5363 DSWIT3 1711 EXPIND 0054 CCJWD 2265 CHKSUM 0055 DSWIT4 1712 EXPINT 3461 CCOPTM 2315 CKBAT 2277 DTORGX 5400 EXPUNL 1471 CCWBIT 2271 CKSEV 5651 DTORG1 1354 EXPUNS 1507 CCWLOC 2272 CLCDF0 7452 DTORG2 5416 EXPUNW 1465 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 132-1 EXPUNX 2667 FORMF7 1165 ID 5144 LAST3 0016 EXPXIT 3630 FORMF8 5564 IE 5145 LAST4 0017 EXP1 3221 FORMHD 1104 IFD 5050 LD 5444 EXP1A 3224 FORMLN 1103 IFND 5051 LEADER 1233 EXP2 3245 FORMM6 1155 IFN0 5001 LEVEL 7171 EXP3 3603 FORMSW 3755 IFSZA 5037 LG 5447 FAKDLR 5356 FORM11 1151 IFTST1 5024 LGERR 3514 FIELDX 0415 FORM12 1126 IFTST2 5014 LINBUF 1620 FIELDY 0440 FORM20 1106 IFTST3 5005 LINCNT 0061 FILENX 2526 FORM21 1112 IFTST4 5045 LININD 0070 FILE1 2540 FORM22 1066 IFTST5 5026 LINK 0077 FILE2 2555 FORM30 1071 IFTST6 5042 LINKSW 0067 FILE3 2553 FORM8F 1156 IFTST7 5053 LINPRT 0735 FILE4 2543 GETC 0605 IFTST8 5060 LINPR1 0740 FILE5 2560 GETCI 0063 IFTST9 5012 LISCNT 1030 FILE6 2563 GETC1 0632 IF0 5000 LISOUT 1000 FILLLP 2702 GETC12 0707 II 5151 LISOU1 1015 FINDS 4652 GETC13 0715 ILCHAR 3035 LISOU2 1031 FINDSP 0756 GETC15 0721 INBREC 5230 LISOU3 1024 FINDS1 4766 GETC16 0703 INBUF 5600 LIT 4600 FINDS2 4767 GETC17 0705 INBUFP 5225 LITBF1 2123 FINDS3 4770 GETC2 0631 INCHCT 5274 LITBF2 2023 FINDS4 4704 GETC4 0647 INCTL 0066 LITBUF 1742 FINDS5 4746 GETC6 0637 INCTLA 5300 LITHAK 4116 FINDS6 4714 GETC7 0607 INCTLW 5224 LITPTR 0023 FINDS7 4731 GETC8 0657 INCTR 5277 LNPRPG 0070 FINDS9 4741 GETC9 0710 INDEVH 7200 LO 0031 FINDTG 4304 GETFLD 6662 INEOF 5275 LOAD 2120 FIND0 4753 GETTAG 0212 INERRX 5270 LOADOV 4523 FIND01 4757 GETTA1 0234 INFPTR 5301 LOC 0027 FIND02 4666 GETTA2 0203 INGBUF 5206 LOOKEX 3033 FIND03 4725 GETTA3 0333 INHNDL 5326 LOOKE1 3010 FINLFF 4456 GETTA4 0351 INPTR 5276 LOOKE2 3000 FIXMD0 3513 GETTGH 0237 INPUT 5200 LSTCHR 3737 FIXMRX 0471 GETTG1 0221 INREC 5226 LSTCH1 3750 FIXMR1 0476 HASH 0001 INSRTG 4200 LSTCH3 3730 FIXMR2 0501 HEADER 1451 INT 0000 LSTCH4 3724 FIXTAX 1131 HEDCLR 1165 IOMON 0052 LSTCH5 3734 FIXTAY 1125 HEDCL2 1157 IOPEN 1160 LSTCH6 3735 FIXTBX 4253 HEDLEN 0050 IOPEN1 1172 LSTCH7 3736 FIX2 3517 HI 0032 IOPEN2 1173 LSTCH9 3671 FIX4 3530 HIBIGR 7137 IOPEN3 1174 LSTCNT 0064 FLDIND 0072 HIFLD 5671 IOPEN4 1175 LSWITC 4460 FLD2 5672 HIGHTG 0060 IOPEN5 1176 MAIN 3011 FLD3 5675 HSHLP 7472 IP 5160 MDATE 7666 FLD4 5714 HSHRTN 7505 IZ 5172 MED 0033 FLD5 5712 HSHSMS 7400 IZIND 0056 MINUS 1105 FMTDAT 7200 HSWITC 1042 JMSPUN 4113 MONERR 0750 FORCHR 3753 HSWIT1 1013 JSBITS 7746 MONER1 0754 FORMFD 1032 HSWIT2 1271 JUSTWO 7155 MONGO 7245 FORMF1 1055 IC 5143 KLOOP 3563 MONLP 7240 FORMF3 1117 ICHAR1 5246 KNTR 0004 MONLST 2044 FORMF4 1122 ICHAR2 5250 KPUSR 7432 MONPTR 7323 FORMF5 1130 ICHAR3 5256 LAST1 0014 MONPUT 7251 FORMF6 0007 ICMESG 5070 LAST2 0015 MPARAM 7643 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 132-2 MPRIME 0332 OP0 3600 PALBIX 2135 SDIV45 1276 MREAD 7757 OP1 3656 PASS 0051 SE 6345 MUL 3637 OP2 3644 PAUSEX 0361 SESOF 5644 NAME1 0200 OP3 3661 PDLND 1555 SETFLD 4257 NAME2 0201 OP4 3647 PDLST 1617 SETFLP 4264 NAME3 0202 OP5 3665 PDLXR 0010 SETFL1 4301 NOCD 1604 OP6 5435 PE 6045 SETFL2 4317 NODATE 7305 OP6A 5442 PERIOD 3337 SLOOP 7013 NOLOAD 2127 OP6B 5450 PERROR 0071 SLOOP2 7016 NOPAS2 1243 OTYPB1 2332 PERRO1 5561 SMIN67 1277 NOPA21 1212 OTYPB2 2333 PEZE 4641 SMOV 6637 NOPA22 1222 OTYPB3 2334 PFINDT 0173 SMVCD0 6660 NOPA23 1204 OTYPCR 2336 PH 6050 SMVCD1 6652 NOPUNX 0204 OTYPE 5600 PHASE 0751 SMVCD2 6654 NOTFND 0327 OTYPEC 2342 PIOPEN 1272 SORT 7000 NSWITC 4530 OTYPEO 2323 PLOAD 2273 SORTAB 6600 NUMBER 3300 OTYPTD 2331 PLSMIN 3642 SPNOR 0352 NUMBE1 3326 OUBLK 2764 POPJ 3540 SSWITC 4446 NUMBE2 3301 OUBUF 5600 PPEZE 1450 SSWT 6705 NUMBE3 3335 OUCCNT 2720 PPUTTA 0140 STAR 3047 NUMBE4 3323 OUCHLV 2477 PRBLUP 0263 STARSW 0032 NUMBE5 3327 OUCNAM 2717 PRIME 0100 START1 1200 NXTFLE 5314 OUCTLW 2754 PRIMES 7524 START2 4401 OCHAR 0047 OUDEVH 6200 PROBE 0272 START3 1223 OCHAR1 2475 OUDWCT 2510 PRTTTL 4514 STAR0 3052 OCHAR2 2472 OUELEN 2765 PTCH 3556 STAR1 0460 OCHAR3 2444 OUENTR 1041 PTPSW 2677 STAR2 3075 OCLOSE 2673 OUFDEV 1123 PTPSW1 1274 STAR3 0456 OCTALX 0210 OUFILE 2723 PTR 0003 ST1OBL 1307 OCTPRT 1310 OUFINP 1124 PUNBIN 1400 ST1OPN 1306 OCTPR1 0005 OUFPTR 1107 PUNCHX 0025 SUBVER 0331 OCTPR2 1314 OUHNDL 2763 PUNMOD 1434 SWAPB2 1000 OCTPR3 0006 OUJMP 2441 PUNONE 1330 SWAPE2 1310 OEFAIL 1075 OUJMPE 2507 PUNON1 1370 SWAPR2 6004 OERROR 0050 OUPOLD 2505 PUNON2 1374 SWAP1 1000 OFFSET 0030 OUPTR 2506 PUNON3 1372 SWAP2 7004 OFSBUF 0031 OUREC 2756 PUNORG 4543 SWCDF1 6726 OKCOOL 7161 OUSETP 2512 PUNOUT 1144 SWCDF2 6731 ONEOK 1422 OUTDMP 2730 PUNOU1 1160 SWCDF3 6736 ONOFIL 1105 OUTINH 2503 PUNVAL 5545 SWITCH 7077 OOPEN 1000 OUTPT1 2400 PUNVA1 5405 SXR 0012 OP 0033 OUTPT2 2511 PUSHA 5115 SXR2 0014 OPEN01 1110 OUTPT3 2430 PUSHA1 5134 SYMCCT 0062 OPEN02 1111 OUTPUT 2401 PUTTAG 5100 SYMDDT 1254 OPEN04 1112 OUTPUX 2437 QUOTE 3342 SYME 7004 OPEN05 1113 OUTTLL 4506 QUOTE1 3353 SYMERR 1300 OPEN06 1114 OUTTTL 4504 RADIX 0024 SYMGO 1241 OPEN07 1115 OU3501 1122 RD 6244 SYMHND 1301 OPEN09 1116 OVLL7 2252 RELOCY 5466 SYMHSW 1227 OPEN10 1117 OVLL8 2253 RELOC1 5500 SYMLCT 0065 OPEN11 1120 O1777 0172 RELOC2 5475 SYMLIN 1231 OPEN12 1121 O7774 0132 RTL6 0600 SYMLUP 1217 OPEXPL 3155 PAGEX 0443 SBLOCK 7776 SYMNCL 1303 OPTABL 3150 PAGEY 0453 SCOM 6745 SYMNWP 1212 OPTIM4 5664 PALBIN 2136 SCOMRT 6767 SYMNXL 1264 /PAL8 V50A FOR OS/8 V50 PAL8-V50X 15-JUL-20 PAGE 132-3 SYMOFL 0746 VV2 0062 SYMOFS 1302 XCHANG 3157 SYMPAG 1217 XLISTX 0026 SYMPRT 1200 XLISTY 5453 SYMS 6200 XLISTZ 5547 SYMSRT 1206 XLIST1 5462 SYMTAG 0067 XLIST2 5457 SYMXIT 1256 XOUBLK 1045 SYM204 1275 XOUELE 1046 SYSERR 2761 XOUHND 1037 SYSER2 2766 XREG1 0012 SYSER3 2757 XREG2 0013 TAGMAX 0100 YESBIN 2111 TAGXR 0011 ZBLOCX 4130 TAG1 0020 ZBLOCY 4136 TAG2 0021 ZBLOCZ 4142 TAG3 0022 ZB7430 6020 TEMP 0043 ZD7640 1670 TEMP1 0044 ZE 7245 TEMP2 0045 ZE7640 6030 TEMP3 0046 ZF7650 6016 TEXTX 2601 ZH7640 1655 TEXT1A 2636 ZJ7640 2210 TEXT2 2651 ZK7630 5616 TEXT3 2614 ZO7710 6040 TEXT4 2625 ZT7640 1625 TEXT4X 2627 ZW7640 2216 TEXT5 2660 TEXT6 2665 TEXT7 2666 TEXT8 2600 TEXT9 2633 THISPG 0041 THISTG 0057 TOEXP 3026 TPINST 2002 TSTALN 5146 TSTALP 5155 TSTNUM 5136 TTLMSG 2353 TTLPTR 4522 TXR 0013 TXR2 0015 TXTPTR 0037 TXTSWT 0036 UNDFSW 0065 UO 6557 US 6563 USROFS 4303 UXR 0016 VALUE 0034 VALUEX 0073 VALUE2 0035 VERSIO 0062 VV1 0005 ERRORS DETECTED: 0 LINKS GENERATED: 0