File SNO94.LS (listing file)

Directory of image this file is from
This file as a plain text file


/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 1 /SNOBOL 8.2 COMPILER. 31 AUGUST 76 PAL SOURCE / / / / THIS IS THE SOURCE FILE FOR THE SNOBOL-8.2 LANGUAGE COMPILER. THIS /PROGRAM IS DESIGNED TO RUN ON ANY STANDARD PDP-8 OS/8 SYSTEM WITH AT LEAST /8K. THE MACHINE READABLE USER DOCUMENTATION IS CONTAINED IN THE FILE /SNOUSER.DC ON THE NETWORK. ANY BUGS DISCOVERED SHOULD BE REFERRED TO THE /APPROPRIATE PERSON(S), WHO IS CURRENTLY FRED DALRYMPLE. / /FRED DALRYMPLE 0000 *0 DECIMAL 000000 0136 94 /VERSION NUMBER OCTAL
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 2 / PAGE USAGE (FIELD 0) ***OUT OF DATE / /200 SNOBOL-FRONT2 (26) 146 (4) * /400 FRONT4-MAIN0A (22) 145 (11) /600 MAIN01-MAIN18 (27) 150 (1) /1000 MAIN19-MAIN55 (24) 135 (17) /1200 MAIN56-MAIN63 (17) 150 (11) /1400 MAIN70-MAIN78 (16) 147 (13) /1600 MAIN79-END4 (27) 150 (1) /2000 END7-PUTOUT (23) 152 (3) /2200 SCANNR-SCAN08 (10) 160 (10) /2400 SCAN09-SCAN16 (7) 133 (36) /2600 SCAN20-SCAN2S (21) 135 (20) /3000 SCAN24-SCAN2C (12) 162 (4) /3200 SCAN2M-SCAN30 (25) 125 (26) /3400 CLOSE-CLOS10 (22) 125 (31) * /3600 CLOS11-CLOS23 (15) 135 (26) /4000 CLOS24-ERR17 (35) 121 (22) /4200 ERR18-ENDRD (17) 146 (13) /4400 RETRN-WRSPO (3) 174 (1) /4600 WROCTO-SERCH (5) 155 (16) /5000 MACH-RDPOL (4) 104 (70) /5200 WRPOL-WPSTR (3) 170 (5) /5400 RDCHR (12) 165 (1) /5600 WRCHR-PRN (13) 150 (15) 6000 INHAN=6000 /INPUT HANDLER /6200 6400 OUTHAN=6400 /OUTPUT HANDLER /6600 /7000 LITERALS AND STORAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 3 / PAGE USAGE (FIELD 1) / / /200 INPUT BUFFER /400 / /600 OUTPUT BUFFER /1000 /1200 /1400 / /1600 TEXT 0200 IBUF=200 /ADDRESS OF THE INPUT BUFFER 7200 NTOPIB=-600 /NEGATIVE TOP OF THE INPUT BUFFER 0600 OBUF=600 / OUTPUT BUFFER 6200 NTOPOB=-1600 /NEG. TOP OF OUTPUT BUFFER
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 4 / DEFINITIONS /STORAGE DELIMITERS 0000 STRDEL=0000 /BEGINNING OR END OF STRING 7777 FREE= 7777 /FREE WORD IN STORAGE 7776 LINK= 7776 /LINK CODE 7775 POLEND=7775 /END OF POOL /USR LOCATIONS 7600 OFLTAB=7600 /CD OUTPUT FILE TABLE (FIELD 1) 7617 IFLTAB=7617 /CD INPT FILE TABLE (FIELD 1) /PARSING DELIMITERS 0023 UPARR= 23 0022 COMMA= 22 0021 COLON= 21 0020 SPACE= 20 0017 SEMI= 17 0016 OR= 16 0015 EQUAL= 15 0014 LESS= 14 0012 BACK= 12 0011 END= 11 0010 EOL= 10 0006 LPAREN= 6 0004 RPAREN= 4 0003 STAR= 3 0002 SLASH= 2 0001 ADD= 1 0000 SUB= 0 /POINT COMMAND ARGUMENT DESCRIPTORS 0001 VARORLIT= 1 0002 NOARG= 2 0004 LABEL= 4 0010 JMPTR= 10 0020 VAR= 20 0023 ANY= 37-LABEL-JMPTR 0100 CPAL= 100 0200 CSNO= 200 0400 CEXIT= 400 1000 CEND= 1000 1700 CCONTR=1700 /ALL COMPILER CONTROL TYPES
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 5 / PAGE ZERO STORAGE 0010 *10 000010 0000 INDEX0, 0 /AUTO-INDEX REGISTERS 000011 0000 INDEX1, 0 000012 0000 INDEX2, 0 000013 0000 INDEX3, 0 000014 0000 LINEP, 0 /LINE IMAGE PTR 000015 0000 AGVPTR, 0 /ARITH GEN VAR POOL PTR 000016 0000 INDEX6, 0 000017 0000 INDEX7, 0 000020 0000 ACCNUM, 0 /NUMBER ACCUMULATION (SCAN) 000021 0000 LPOOL, 0 /WHICH LITERAL POOL TO REFERENCE 000022 0000 DEL, 0 /ATOM DELIMITER (SCAN) 000023 0000 LAST, 0 /LAST DELIMITER IN ARITHMETIC STATEMENT 000024 0000 T1, 0 /TEMPORARIES 000025 0000 T2, 0 / 000026 0000 T3, 0 / 000027 0000 T4, 0 000030 0000 TX, 0 /VERY TEMPORARIES 000031 0000 TXX, 0 000032 0000 TOP, 0 /LAST USED ADDRESS IN STORAGE PLUS 1 000033 0000 ARGCNT, 0 /ARGUMENT COUNT FOR POINT COMMAND 000034 0000 CLEN, 0 /LENGTH OF THIS SNOBOL INST IN PAL CODE 000035 0000 PAGLEN, 0 /CURRENT LENGTH OF OBJECT PAGE 000036 0000 TMODE, 0 /MODE FOR THIS INSTRUCTION 000037 0000 NXTSTR, 0 /BEGINNING OF NEW LITERAL 000040 0000 T1MAT, 0 /WRITE CURSOR FOR WRPOOL 000041 0000 SCURS, 0; 0 /HOLD CURSOR THROUGH EXTCUR-EXFCUR 000042 0000 000043 0000 OCURSR, 0; 0 /OUTPUT STREAM CURSOR 000044 0000 000045 0000 IMCNT, 0 /COUNT FOR LINE IMAGE 000046 0000 VALID, 0 /VALID TYPE TO BE FOUND BY SCAN 000047 0000 HPOOL, 0 /POOL HEAD (FOR WRPOOL) 000050 0000 AGVCNT, 0 /COUNT FOR ARITH GEN VAR POOL PTR 000051 0000 INFLPT, 0; 0 /PTR TO INPUT FILE LIST AND COUNT 000052 0000 000053 0000 IHAN, 0 /LOCATION OF INPUT HANDLER 000054 0000 OHAN, 0 /LOCATION OF OUTPUT HANDLER 000055 0000 FOUTBK, 0 /FIRST BLOCK NUMBER IN OUTPUT FILE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 6 000056 0000 OFLAG, 0 /FLAG OUTPUT FILE BEING USED 000057 0000 LITFND, 0 /FLAG LITERAL FOUND (SCAN) 000060 0000 EQLSEN, 0 /FLAG EQUAL SIGN SEEN 000061 0000 LABELF, 0 /FLAG LABEL BEING PARSED (SCAN) 000062 0000 TRASEN, 0 /FLAG TRANSFER SEEN 000063 0000 OUTF, 0 /FLAG OLINE PUT (PUTOUT) 000064 0000 ACMIND, 0 /FLAG ACCUM IS INDIRECT (SCAN) 000065 0000 PTATOM, 0 /FLAG .A ATOM SEEN (SCAN) 000066 0000 MODECH, 0 /FLAG MODE CHANGED 000067 0000 STRF, 0 /FLAG NOT INPUT FILE (FOR GETCHR) 0070 F0CLR=. /IMPURE AREA - VARIABLES BETWEEN HERE AND F0CLRL /ARE CLEARED AUTOMATICALLY AT INITIALIZATION 000070 0000 CHOLD, 0 /HOLD CHARACTER FOR GETCHR LOOK AHEAD 000071 0000 CURSOR, 0; 0 /POINTER TO INPUT STREAM 000072 0000 000073 0000 OCNT, 0 /TELETYPE COLUMN POSITION 000074 0000 TOCNT, 0 /HIGHEST OCNT VALUE 000075 0000 GENLIT, 0 /GENERATED LITERALS COUNT 000076 0000 PAGLIT, 0 /GEN LITS FOR PAGING PAL FILE 000077 0000 OVERF, 0 /FLAG OVERWRITING POOL (DELETE SUBSTRING) 000100 0000 LINDF, 0 /FLAG INDIRECT LABEL USAGE 000101 0000 VINDF, 0 /FLAG INDIRECT VARIABLE USAGE 000102 0000 COLINE, 0 /CURRENT POSITION POINTER FOR OLINE 000103 0000 CPOLIN, 0 /CURRENT POSITION POINTER FOR POLINE 0014 F0CLRL=.-F0CLR /THIS IS THE END OF THE AUTOMATIC CLEAR AREA 000104 0000 ONAME, ZBLOCK 4 /OUTPUT FILE NAME
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 7 / CONSTANTS 7300 ZERO= CLA CLL 7301 ONE= CLA CLL IAC 7305 TWO= CLA CLL IAC RAL 7325 THREE= CLA CLL CML IAC RAL 7307 FOUR= CLA CLL IAC RTL 7327 SIX= CLA CLL CML IAC RTL 000110 0005 C5, 5 000111 0007 C7, 7 000112 0010 C10, 10 000113 0012 C12, 12 000114 0240 C240, 240 000115 0260 C260, 260 000116 0377 C377, 377 000117 7400 C7400, 7400 000120 4000 SARG, 4000 /SUBSTITUTE ARG BIT 7340 NONE= CLA CLL CMA 7344 NTWO= CLA CLL CMA RAL 7346 NTHREE= CLA CLL CMA RTL 000121 7777 NC1, -1 000122 7776 NC2, -2 000123 7775 NC3, -3 000124 7774 NC4, -4 000125 7773 NC5, -5 000126 7772 NC6, -6 000127 7771 NC7, -7 000130 7770 NC10, -10 000131 7766 NC12, -12 000132 7566 NC212, -212 000133 7520 NC260, -260
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 8 / ROUTINES AND COMMON POINTERS 000134 2161 ACUM, ACCUM /POINT TO FIRST WORD OF ACCUM 000135 2160 ACUMM, ACCUM-1 / 000136 4451 CONVD, CVD /CONVERT THE AC TO DECIMAL 000137 4323 CTYPE, CTTYPE /TYPE CHARACTERS (CHAR/WORD); PTR IN AC 000140 4705 DELPOL, DPOOL /DELETE A POOL'S STORAGE (PTR IN AC) 000141 4431 ENDRD, ENDRED /READ FROM INPUT UNTIL EOL 000142 5400 GETCHR, RDCHR /RETURN NEXT CHAR FROM INPUT IN AC 000143 5413 GETCHS, RDCHRS /READ CHARACTER AND DON'T MODIFY 000144 4740 INTST, INTRPT /TEST FOR INTERRUPT 000145 0200 LUSR, 200 /ADDRESS OF USR (FIELD 1) WHEN LOCKED 000146 5066 MAKASC, CALASC /GENERATE CALL TO ASC WITH GEN'ED LIT 000147 5674 PRINT, PRN /TYPE A CHARACTER 000150 4414 PUTACR, PACCUR /PUT ACCUM ONTO OLINE WITH RETURN 000151 5600 PUTCHR, WRCHR /WRITE CHAR TO OUTPUT (CHAR IN AC) 000152 4332 PUTNAM, PTNAME /PUT NAME TO OUTPUT FROM POOL (PTR IN T1) 000153 5106 PUTOC, PUTOCT /PUT OCTAL NUMBER IN AC TO OUTPUT 000154 2200 PUTOUT, PTOUT /WRITE LINE AND GENERATED CODE TO OUTPUT 000155 5130 RDPOOL, RDPOL /READ CHAR FROM A POOL (PTR IN T1) 000156 4445 RETORN, RETRN /PUT CARRAIGE RETURN ON OLINE 000157 5000 RETTRN, TYRET /TYPE A CARRAIGE RETURN 000160 2402 SCAN, SCANNR /PARSE NEXT ATOM (ACCUM, DEL) 000161 5004 SEARCH, SERCH /SEARCH POOL (PTR IN T1) FOR (ACCUM) 000162 4400 SAVACM, SVACUM /STORE ACCUM IN SACCUM 000163 4754 SHACUM, SHFTAC /SHIFT ACCUM ONE CHAR LEFT 000164 4477 TYPE, TTYPE /TYPE PACKED STRING 000165 7700 USR, 7700 /USR LOCATION WHEN NOT LOCKED 000166 4657 WROCO, WROCTO /WRITE OCTAL NUMBER IN AC TO OLINE 000167 4547 WROLIN, WRITO /WRITE CHAR TO OLINE 000170 4626 WRPOLN, WRITPO /WRITE CHAR ON POLINE 000171 5147 WRPOOL, WRPOL /WRITE CHAR TO A POOL (PTR IN T1MAT) 000172 4600 WRPPSO, WRPPO /WRITE PACKED STRING TO POLINE 000173 4507 WRPSO, WRIPO /WRITE PACKED STRING TO OLINE 000174 5350 WRPS, WPSTR /WRITE PACKED STRING TO OUTPUT 000175 4641 WRSTPO, WRSPO /WRITE STRING TO POLINE (PTR IN AC) 000176 4540 WRSTR, WRSTRG /WRITE STRING (PTR IN AC) TO OUTPUT 000177 4610 WRSTRO, WRSTO /WRITE STRING (PTR IN AC) TO OLINE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 9 / THIS IS THE FRONT END OF THE COMPILER. INPUT AND OUTPUT FILES /ARE SETUP VIA THE COMMAND DECODER. 0200 *200 000200 7300 SNOBOL, ZERO 000201 6201 CDF 0 000202 6212 CIF 10 000203 4565 JMS I USR /CALL THE USR 000204 0010 10 /LOCK IT IN CORE 000205 6212 CIF 10 000206 4545 JMS I LUSR /CALL AGAIN 000207 0005 5 /FOR THE CD 000210 2316 2316 /"SN" - DEFAULT EXTENSION 000211 0000 0 /PRESERVE TENTATIVE FILES 000212 1377 TAD (IFLTAB 000213 3051 DCA INFLPT /POINTER TO INPUT FILE LIST 000214 1130 TAD NC10 000215 3052 DCA INFLPT+1 /AND COUNT 000216 1376 TAD (OUTHAN /WHERE TO PUT HANDLER 000217 7001 IAC /2 PAGE HANDLER IS OK 000220 3245 DCA OFHANL 000221 6211 CDF 10 000222 1775 TAD I (OFLTAB+1 /TRANSFER OUTPUT FILENAME TO PAGE ZERO 000223 3104 DCA ONAME 000224 1774 TAD I (OFLTAB+2 000225 3105 DCA ONAME+1 000226 1773 TAD I (OFLTAB+3 000227 3106 DCA ONAME+2 000230 1772 TAD I (OFLTAB+4 000231 3107 DCA ONAME+3 000232 1371 TAD (ONAME 000233 3253 DCA OFLNM /SAVE ADDRESS OF FILE NAME 000234 1770 TAD I (OFLTAB /GET OUTPUT FILE DEVICE # 000235 3056 DCA OFLAG 000236 1056 TAD OFLAG /FLAG WHETHER ITS SPECIFIED OR NOT 000237 7450 SNA /SPECIFIED? 000240 5300 JMP FRONT1 /NO
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 10 / GET THE OUTPUT HANDLER 000241 6201 CDF 0 /SET THE BASE FIELD 000242 6212 CIF 10 000243 4545 JMS I LUSR /CALL 000244 0001 1 /TO FETCH THE HANDLER 000245 0000 OFHANL, 0 /LOCATION OF HANDLER 000246 7402 HLT /NO 000247 1056 TAD OFLAG /GET DEVICE NUMBER 000250 6212 CIF 10 000251 4545 JMS I LUSR /CALL 000252 0003 3 /TO ENTER 000253 0104 OFLNM, ONAME /FILENAME 000254 0000 OFLEN, 0 000255 5767' JMP ERR24 /CANT ENTER 000256 6211 CDF 10 000257 1245 TAD OFHANL /GET LOCATION OF HANDLER 000260 3054 DCA OHAN /SAVE 000261 1253 TAD OFLNM /GET STARTING BLOCK 000262 3055 DCA FOUTBK 000263 1055 TAD FOUTBK 000264 3766 DCA I (OUTBLK 000265 1254 TAD OFLEN / 000266 7130 CLL CML RAR /CoNVERT TO TWO BLOCK SIZE 000267 3765 DCA I (OBCNT /SAVE NEGATIVE LENGTH 000270 1364 TAD (OBUF 000271 3043 DCA OCURSR /SETUP THE OUTPUT CURSOR 000272 7301 ONE 000273 3044 DCA OCURSR+1 000274 1363 TAD (TOPF1 000275 3762 DCA I (BASE /SETUP POINTERS TO THE BOTTOM OF FREE SPACE 000276 1363 TAD (TOPF1 000277 3032 DCA TOP 000300 6201 FRONT1, CDF 0 000301 6212 CIF 10 000302 4545 JMS I LUSR /CALL ONCE MORE 000303 0011 11 /TO BE DISMISSED 000304 1056 TAD OFLAG 000305 7650 SNA CLA /DOING OUTPUT? 000306 5761' JMP FRONT4
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 11 000307 6211 CDF 10 000310 1360 TAD (INITAL /INITIALIZATION MESSAGES 000311 4574 JMS I WRPS /WRITE IT 000312 1757 TAD I (7666 /GET SYSTEM DATE WORD 000313 7450 SNA /SPECIFIED? 000314 5345 JMP FRONT2 /NO 000315 3030 DCA TX 000316 1030 TAD TX 000317 0111 AND C7 /SAVE YEAR 000320 1115 TAD C260 000321 3756 DCA I (YEAR 000322 1030 TAD TX 000323 7012 RTR; RAR /SHIFT FOR DAY 000324 7010 000325 3030 DCA TX 000326 1355 TAD (DAY-1 000327 3011 DCA INDEX1 /WHERE TO PUT DAY 000330 1030 TAD TX 000331 0354 AND (37 /SAVE DAYS 000332 4536 JMS I CONVD /CONVERT TO DECIMAL 000333 1353 TAD (MONTH-1 000334 3011 DCA INDEX1 000335 1030 TAD TX 000336 7012 RTR; RTR; RAR 000337 7012 000340 7010 000341 0352 AND (17 /SAVE MONTH 000342 4536 JMS I CONVD /PUT IT 000343 1353 TAD (MONTH-1 /MESSAGE 000344 4576 JMS I WRSTR /PUT IT 000345 1351 FRONT2, TAD (INITA2 /INITIAL CODE 000346 4574 JMS I WRPS / 000347 5761 JMP I (.&7600+200 /*** PAGE BOUND 000351 2335 000352 0017 000353 2235 000354 0037 000355 2240 000356 2245 000357 7666 000360 2323 000361 0400 000362 2171 000363 3527 000364 0600 000365 2175 000366 2174 000367 4247 000370 7600 000371 0104 000372 7604 000373 7603 000374 7602
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 11-1 000375 7601 000376 6400 000377 7617 0400 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 12 / INITIALIZE COUNTERS, POOLS, ETC. 000400 6201 FRONT4, CDF 0 000401 1377 TAD (F0CLR-1 /CLEAR FIELD 0 IMPURE AREA 000402 3011 DCA INDEX1 000403 1376 TAD (-F0CLRL 000404 3030 DCA TX 000405 3411 DCA I INDEX1 000406 2030 ISZ TX 000407 5205 JMP .-2 000410 6211 CDF 10 000411 1375 TAD (F1CLR-1 /CLEAR FIELD 1 IMPURE AREA 000412 3011 DCA INDEX1 000413 1374 TAD (-F1CLRL 000414 3030 DCA TX 000415 3411 DCA I INDEX1 000416 2030 ISZ TX 000417 5215 JMP .-2 000420 1373 TAD (1-LINEL 000421 3045 DCA IMCNT /MAX LINE LENGTH 000422 1372 TAD (LINEIM-1 000423 3014 DCA LINEP /PTR TO LINE BUFFER 000424 1371 TAD (-NTOPIB 000425 3071 DCA CURSOR 000426 7301 ONE /INITIALIZE THE INPUT CURSOR 000427 3072 DCA CURSOR+1 000430 1110 TAD C5 000431 3035 DCA PAGLEN /LENGTH OF OBJECT PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 13 / THIS IS THE MAIN LOOP FOR ASSIGNING ANOTHER INPUT FILE FOR /COMPILATION. IF THERE ARE NO MORE, CLOSE IS CALLED. 000432 2052 NEXTIN, ISZ INFLPT+1 /ANY MORE? 000433 7410 SKP /YES 000434 5770' JMP CLOSE /NO - DONE 000435 1451 TAD I INFLPT /GET NEXT DEVICE NUMBER 000436 7450 SNA /ANY? 000437 5770' JMP CLOSE /NO - DONE 000440 7012 RTR; RTR /GET MINUS LENGTH 000441 7012 000442 0116 AND C377 000443 1367 TAD (7400-1 /EXTEND SIGN 000444 3766 DCA I (IBCNT /AND SAVE 000445 1365 TAD (INHAN /AREA FOR INPUT HANDLER 000446 7001 IAC /2-PAGER IS OK 000447 3255 DCA IFHANL 000450 1451 TAD I INFLPT /GET DEVICE # AGAIN 000451 6201 CDF 0 000452 6212 CIF 10 000453 4565 JMS I USR /CALL THE USR 000454 0001 1 /TO GET THE HANDLER 000455 0000 IFHANL, 0 000456 7402 HLT /SHOULDN'T 000457 1255 TAD IFHANL /LOCATION OF HANDLER 000460 3053 DCA IHAN /SAVE IT /FROM HERE ON, THE DATA FIELD IS ONE EXCEPT FOR USR AND HANDLER CALLS 000461 6211 CDF 10 000462 2051 ISZ INFLPT /POINT TO NEXT WD 000463 1451 TAD I INFLPT /GET STARTING BLOCK # 000464 3764 DCA I (INBLK /SAVE IT 000465 2051 ISZ INFLPT /AND BUMP
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 14 / THIS IS THE MAIN COMPILER LOOP. PARSING EACH NEW INPUT LINE /IS BEGUN HERE. 000466 7340 MAIN, NONE 000467 3062 DCA TRASEN /TRANSFER NOT SEEN YET 000470 3066 DCA MODECH /MODE NOT CHANGED 000471 3034 DCA CLEN /ZERO LENGTH 000472 3033 DCA ARGCNT /ZERO ARGUMENT LIST 000473 1763 TAD I (MODE 000474 3036 DCA TMODE /SETUP CURRENT MODE 000475 4544 JMS I INTST /TEST FOR INTERRUPT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 15 /SCAN FOR A LABEL OR STATEMENT 000476 1362 MAIN00, TAD (ANY 000477 3046 DCA VALID /VALID TYPE TO BE FOUND BY SCAN 000500 4560 JMS I SCAN /GET THE FIRST ATOM 000501 1020 TAD ACCNUM 000502 7640 SZA CLA /A NUMBER? 000503 5761' JMP ERR5 /YES 000504 1534 TAD I ACUM 000505 7640 SZA CLA /NO - A WORD? 000506 5771' JMP MAIN01 /YES 000507 7344 NTWO /(-SLASH) 000510 1022 TAD DEL /NO - GET THE DELIMITER 000511 7450 SNA /COMMENT? 000512 5760' JMP END6 /YES 000513 1126 TAD NC6 /(-EOL) 000514 7450 SNA /END OF LINE? 000515 5266 JMP MAIN /YES - GO AGAIN 000516 1121 TAD NC1 000517 7450 SNA /END OF FILE? 000520 5232 JMP NEXTIN /YES - GET ANOTHER FILE 000521 1130 TAD NC10 /(END-COLON) 000522 7450 SNA /COLON? 000523 5757' JMP END2 /YES 000524 1122 TAD NC2 /(COLON-UPARR) 000525 7640 SZA CLA /UPARROW? 000526 5756' JMP ERR10 /NO - SOURCE ERROR 000527 1066 TAD MODECH /GET THE MODE CHANGED FLAG 000530 7640 SZA CLA /HAS IT? 000531 5336 JMP MAIN0A /YES 000532 2066 ISZ MODECH /NO - SO NOW IT DOES 000533 1036 TAD TMODE 000534 7040 CMA /AND COMPLEMENT THE MODE FLAG 000535 3036 DCA TMODE 000536 1036 MAIN0A, TAD TMODE / 000537 7650 SNA CLA /SNOBOL MODE NOW? 000540 5276 JMP MAIN00 /YES - GO AGAIN 000541 2034 ISZ CLEN /NO - BUMP THE INST LENGTH 000542 1014 TAD LINEP 000543 3030 DCA TX /GET POINTER TO UPARROW IN SOURCE 000544 1114 TAD C240 000545 3430 DCA I TX /REPLACE BY A SPACE 000546 5276 JMP MAIN00 /GO AGAIN 000556 4215 000557 1641 000560 2015 000561 4205 000562 0023 000563 2235 000564 2172 000565 6000 000566 2173 000567 7377
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 15-1 000570 3502 000571 0600 000572 2037 000573 7661 000574 7741 000575 2176 000576 7764 000577 0067 0600 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 16 /HERE IF A NAME WAS FOUND FIRST ON THE LINE 000600 1022 MAIN01, TAD DEL /GET THE DELIMITER 000601 1377 TAD (-COMMA /WAS IT A COMMA? 000602 7640 SZA CLA 000603 5215 JMP MAIN02 /NO 000604 1057 TAD LITFND 000605 7650 SNA CLA /WAS IT A LITERAL? 000606 5776' JMP ERR5 /YES - ERROR 000607 3775 DCA I (ACCUM+6 /STRDEL 000610 1135 TAD ACUMM 000611 4575 JMS I WRSTPO /WRITE ON PRE-OLINE 000612 1374 TAD (254 / 000613 4570 JMS I WRPOLN /AND A COMMA 000614 5773' JMP MAIN00 /AND GET ANOTHER ATOM 000615 1036 MAIN02, TAD TMODE 000616 7640 SZA CLA /PAL MODE? 000617 5772' JMP PALEND /YES - HANDLE PAL END OF LINE / HERE WHEN WE HAVE A NAME NOT DELIMITED BY A COMMA IN SNOBOL MODE. /PRESUMABLY, IF IT BEGINS WITH A PERIOD, IT IS A STANDARD SNOBOL COMMAND /LINE, OTHERWISE IT IS PATTERN MATCHING OR ASSIGNMENT. 000620 1534 MAIN05, TAD I ACUM /GET FIRST CHAR OF NAME 000621 1371 TAD (-256 000622 7640 SZA CLA /PERIOD? 000623 5770' JMP MAIN50 /NO MUST BE ASSIGNMENT OR PATTERN MATCHING 000624 4563 JMS I SHACUM /SHIFT ACCUM ONE LEFT 000625 1367 TAD (CMDTAB /PTR TO COMMANDS TABLE 000626 3024 DCA T1 / 000627 7340 NONE /ONE INFORMATION WORD AFTER STRDEL 000630 3025 DCA T2 /IN THE COMMAND POOL 000631 1135 TAD ACUMM /POSITION OF ARGUMENT 000632 4561 JMS I SEARCH /MATCH FOUND? 000633 5766' JMP ERR15 /NO 000634 4555 JMS I RDPOOL /YES - GET VALID ARG TYPES 000635 7402 HLT 000636 3046 DCA VALID /SAVE 000637 1046 TAD VALID 000640 0365 AND (CCONTR /TEST FOR COMPILER CONTROL STA 000641 7640 SZA CLA /IS IT? 000642 5271 JMP MAIN15 /YES 000643 2034 ISZ CLEN /NO - BUMP OBJ LENGTH 000644 1364 TAD (LITJMS /"JMS I X" 000645 4573 JMS I WRPSO 000646 4550 JMS I PUTACR /PUT ACCUM TO OLINE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 17 / THIS CODE HANDLES ARGUMENTS TO THE POINT COMMANDS, THIS IS DIRECTED /BY THE 'VALID' CODES FOR EACH COMMAND. 000647 1046 TAD VALID 000650 7012 RTR /(NOARG=2) 000651 7630 SZL CLA /NO ARGUMENT FOR THIS COMMAND? 000652 5763' JMP END1 /NO - DO END OF LINE PARSE 000653 1022 TAD DEL /GET THE DELIMITER 000654 1362 TAD (-SPACE 000655 7640 SZA CLA /MUST BE SPACE 000656 5761' JMP ERR20 000657 4560 JMS I SCAN /GET NEXT ATOM 000660 1020 TAD ACCNUM 000661 7640 SZA CLA /NUMBER GIVEN? 000662 5776' JMP ERR5 /YES - BAD ARGUMENT TYPE 000663 1534 TAD I ACUM 000664 7650 SNA CLA /ANY WORD? 000665 5761' JMP ERR20 /NO - TOO FEW ARGUMENTS 000666 4550 JMS I PUTACR /YES - WRITE ACCUM AND RETURN 000667 2034 MAIN14, ISZ CLEN /ANOTHER WORD 000670 5763' JMP END1 /FINISH THE END OF LINE /HANDLE COMPILER CONTROL STATEMENTS 000671 1046 MAIN15, TAD VALID /GET WHICH INST 000672 0360 AND (CPAL 000673 7640 SZA CLA /.PAL STATEMENT? 000674 5305 JMP MAIN16 /YES 000675 1046 TAD VALID 000676 0357 AND (CSNO /NO CHECK .SNOBOL COMMAND 000677 7640 SZA CLA 000700 5756' JMP MAIN20 /YES 000701 1355 TAD (EXITCL /EXIT CALL 000702 4573 JMS I WRPSO /WRITE IT 000703 2034 ISZ CLEN 000704 5267 JMP MAIN14 /FINISH PARSE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 18 /.PAL COMMAND 000705 3020 MAIN16, DCA ACCNUM /ARG 000706 1022 TAD DEL 000707 7450 SNA /DELIMITER A MINUS? 000710 5315 JMP MAIN17 /NO 000711 1362 TAD (-SPACE 000712 7640 SZA CLA /DELIMITER A SPACE? 000713 5754' JMP ERR14 /NO - BAD ARGUMENT 000714 7340 NONE 000715 3027 MAIN17, DCA T4 /MINUS SEEN FLAG 000716 4542 MAIN18, JMS I GETCHR /GET NEXT CHAR 000717 5753' JMP ERR6 / 000720 1133 TAD NC260 000721 7510 SPA /OCTAL '0' OR ABOVE? 000722 5752' JMP MAI19A /NO 000723 1130 TAD NC10 000724 7500 SMA /RANGE 0 - 7? 000725 5751' JMP MAIN19 /NO 000726 1112 TAD C10 000727 3030 DCA TX 000730 1020 TAD ACCNUM /GET SUM 000731 7104 CLL RAL 000732 7104 CLL RAL 000733 7104 CLL RAL /SHIFT OVER 000734 1030 TAD TX /ADD IN CHAR 000735 3020 DCA ACCNUM /UPDATE 000736 5316 JMP MAIN18 /AND AGAIN 000751 1000 000752 1001 000753 4207 000754 4224 000755 2417 000756 1016 000757 0200 000760 0100 000761 4240 000762 7760 000763 1621 000764 2371 000765 1700 000766 4226 000767 1600 000770 1020 000771 7522 000772 2017 000773 0476 000774 0254 000775 2167 000776 4205 000777 7756 1000 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 19 /HERE WHEN LENGTH OF PAL CODE HAS BEEN ACCUMULATED 001000 1112 MAIN19, TAD C10 001001 1115 MAI19A, TAD C260 /RECONSTITUTE THE CHARACTER 001002 3070 DCA CHOLD /AND SAVE FOR EOL PARSE 001003 1020 TAD ACCNUM /GET VALUE 001004 1377 TAD (-200 001005 7700 SMA CLA /TOO BIG? 001006 5776' JMP ERR16 /YES 001007 1020 TAD ACCNUM /NO, GET IT AGAIN 001010 2027 ISZ T4 /MINUS? 001011 7041 CMA IAC /YES, DO IT 001012 3034 DCA CLEN /LENGTH OF THIS BLOCK 001013 7340 NONE 001014 3775 DCA I (MODE /CHANGE MODE 001015 5774' JMP ENDLIN /DO END OF LINE PARSE /.SNOBOL COMMAND 001016 3775 MAIN20, DCA I (MODE /SNOBOL MODE 001017 5773' JMP END1 /PARSE EOL
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 20 /ASSIGNMENT OR PATTERN MATCHING 001020 7301 MAIN50, ONE /(VARORLIT) ARGUMENT TYPES ALLOWED 001021 3046 DCA VALID 001022 3060 DCA EQLSEN /EQUAL NOT SEEN YET 001023 1022 TAD DEL /GET DELIMITER 001024 1372 TAD (-EQUAL 001025 7650 SNA CLA /ASSIGNMENT? 001026 5771' JMP MAIN70 /YES 001027 3033 DCA ARGCNT /CLEAR ARGUMENT COUNT 001030 1370 TAD (PATCAL /PATTERN MATCH INITIALIZATION 001031 4573 JMS I WRPSO /WRITE IT 001032 1120 TAD SARG 001033 4567 JMS I WROLIN /PUT ARGCNT SUBSTITUTE 001034 1022 TAD DEL 001035 1131 TAD NC12 /(-BACK) 001036 7640 SZA CLA /BACKARROW? (ANCHOR MODE) 001037 5243 JMP MAIN51 /NO 001040 1367 TAD (NCMDF /FLAG ANCHOR MODE 001041 4573 JMS I WRPSO / 001042 5244 JMP MAIN52 001043 4556 MAIN51, JMS I RETORN /PUT CARRAIGE RETURN 001044 4550 MAIN52, JMS I PUTACR /PUT ACCUM (BASE VARIABLE) 001045 7325 THREE 001046 1034 TAD CLEN 001047 3034 DCA CLEN /UPDATE LENGTH 001050 7346 NTHREE /(-STAR) 001051 1022 TAD DEL /TEST LEGAL DELIMITERS 001052 7450 SNA 001053 5766' JMP MAIN59 /DO FILLER 001054 1127 TAD NC7 /(STAR-BACK) 001055 7450 SNA /BACKARROW? 001056 5265 JMP MAIN53 /YES 001057 1365 TAD (BACK-EQUAL 001060 7450 SNA /AN EQUAL SIGN? 001061 5764' JMP MAIN5A /YES 001062 1365 TAD (EQUAL-SPACE 001063 7640 SZA CLA /SPACE? 001064 5763' JMP ERR14 /NO - SYNTAX ERROR
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 21 /MAIN PATTERN MATCHING PARSING LOOP 001065 7301 MAIN53, ONE /(VAROLIT) 001066 3046 DCA VALID 001067 4560 JMS I SCAN /GET NEXT ATOM 001070 1020 TAD ACCNUM 001071 7640 SZA CLA /ACCUMULATED NUMBER? 001072 5762' JMP ERR5 /YES - ERROR 001073 1534 MAIN5B, TAD I ACUM / 001074 7640 SZA CLA /ACCUMULATED ATOM? 001075 5761' JMP MAIN56 /YES 001076 5303 JMP MAIN55 /NO TEST DELIMITERS 001077 1022 MAIN54, TAD DEL 001100 1360 TAD (-OR /"!" 001101 7650 SNA CLA /? 001102 5757' JMP MAIN57 /YES 001103 7344 MAIN55, NTWO /(-SLASH) 001104 1022 TAD DEL 001105 7450 SNA /COMMENT? 001106 5756' JMP END6 001107 1121 TAD NC1 /(SLASH-STAR) 001110 7450 SNA /IS IT A FILLER? 001111 5766' JMP MAIN59 /YES 001112 1125 TAD NC5 /(-STAR-EOL) 001113 7450 SNA /END OF LINE? 001114 5554 JMP I PUTOUT /YES - FINISH UP 001115 1121 TAD NC1 /(EOL-END) 001116 7450 SNA /END OF FILE? 001117 5554 JMP I PUTOUT 001120 1365 TAD (END-LESS 001121 7450 SNA /FENCE (<) ? 001122 5755' JMP MAIN58 /YES 001123 1121 TAD NC1 /(LESS-EQUAL) 001124 7450 SNA /EQUAL SIGN? 001125 5764' JMP MAIN5A /YES 001126 1365 TAD (-3 /(EQUAL-SPACE) 001127 7450 SNA /SPACE? 001130 5265 JMP MAIN53 /YES, GO AGAIN 001131 1121 TAD NC1 /(SPACE-COLON) 001132 7650 SNA CLA /COLON? 001133 5754' JMP END2 /YES 001134 5763' JMP ERR14 /NO - BAD DELIMITER 001154 1641 001155 1223 001156 2015 001157 1204 001160 7762 001161 1200 001162 4205 001163 4224 001164 1231 001165 7775
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 21-1 001166 1243 001167 2407 001170 2565 001171 1403 001172 7763 001173 1621 001174 1616 001175 2235 001176 4230 001177 7600 1200 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 22 /HANDLE ACCUMULATED NAME 001200 2034 MAIN56, ISZ CLEN /INST LENGTH 001201 2033 ISZ ARGCNT /ARGUMENT COUNT 001202 4550 JMS I PUTACR /PUT ACCUM 001203 5777' JMP MAIN54 /AND CONTINUE /HANDLE OR 001204 2060 MAIN57, ISZ EQLSEN /EQUAL SIGN SEEN? 001205 7410 SKP /NO 001206 5776' JMP ERR17 /YES - ERROR 001207 1534 TAD I ACUM 001210 7650 SNA CLA /WAS THIS PRECEDED BY AN ARG? 001211 5775' JMP ERR18 /NO 001212 2034 ISZ CLEN 001213 2033 ISZ ARGCNT 001214 1374 TAD (ORCODE 001215 4573 JMS I WRPSO /WRITE AN OR CODE 001216 4560 JMS I SCAN /GET NEXT 001217 1534 TAD I ACUM 001220 7650 SNA CLA /AN ARG HERE TOO? 001221 5775' JMP ERR18 /NO - ERROR 001222 5200 JMP MAIN56 /YES DO IT /HANDLE THE FENCE 001223 2060 MAIN58, ISZ EQLSEN /EQUAL SIGN SEEN? 001224 7410 SKP 001225 5776' JMP ERR17 /YES 001226 1373 TAD (FCODE /FENCE CODE 001227 4573 JMS I WRPSO /PUT IT 001230 5240 JMP MAIN5R /DONE /HANDLE AN EQUAL SIGN 001231 2060 MAIN5A, ISZ EQLSEN /EQUAL ALREADY SEEN? 001232 7410 SKP 001233 5776' JMP ERR17 /YES 001234 1372 TAD (EQUALC /EQUAL CODE 001235 4573 JMS I WRPSO /PUT 001236 7340 NONE 001237 3060 DCA EQLSEN /SET FLAG 001240 2033 MAIN5R, ISZ ARGCNT 001241 2034 ISZ CLEN 001242 5771' JMP MAIN53 /GO
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 23 /HANDLE A FILLER 001243 2060 MAIN59, ISZ EQLSEN /EQUAL SEEN? 001244 7410 SKP 001245 5776' JMP ERR17 001246 2033 ISZ ARGCNT 001247 2033 ISZ ARGCNT /UPDATE THE ARGUMENT COUNT 001250 2034 ISZ CLEN 001251 2034 ISZ CLEN /AND THE INST LENGTH 001252 1370 TAD (VAR 001253 3046 DCA VALID /VALID TYPE TO BE FOUND BY SCAN 001254 4560 JMS I SCAN /GET THE FILLER VAR NAME 001255 1367 TAD (FILLER 001256 4573 JMS I WRPSO /GET THE BEGINNING FILLER CODE 001257 4562 JMS I SAVACM /SAVE ACCUM 001260 1022 TAD DEL 001261 1366 TAD (-STAR 001262 7450 SNA /ARBITRARY LENGTH FILLER? 001263 5321 JMP MAIN62 /YES 001264 7001 IAC 001265 7640 SZA CLA /SLASH? 001266 5765' JMP ERR14 /NO - ERROR 001267 7301 ONE /(VARORLIT) 001270 3046 DCA VALID /ARG TYPE 001271 4560 JMS I SCAN /GET LENGTH 001272 1022 TAD DEL 001273 1366 TAD (-STAR 001274 7640 SZA CLA /MUST BE MATCHING STAR 001275 5765' JMP ERR14 /NO 001276 1020 TAD ACCNUM 001277 7450 SNA /SPECIFIC NUMBER? 001300 5335 JMP MAIN63 /NO 001301 7106 CLL RTL; RAL /SHIFT ONE OCTAL DIGIT UP 001302 7004 001303 3024 DCA T1 001304 7346 NTHREE /COUNT 001305 3025 DCA T2
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 24 /DECODE FILLER LENGTH 001306 1024 MAIN61, TAD T1 001307 7006 RTL; RAL /SHIFT LEFT ONE DIGIT 001310 7004 001311 3024 DCA T1 /UPDATE T1 001312 1024 TAD T1 001313 7004 RAL /SHIFT LEFTMOST DIGIT AROUND 001314 0111 AND C7 001315 1115 TAD C260 /TURN DIGIT INTO CHAR 001316 4567 JMS I WROLIN /WRITE IT 001317 2025 ISZ T2 001320 5306 JMP MAIN61 /NOT YET 001321 1364 MAIN62, TAD (FILEND 001322 4573 JMS I WRPSO /WRITE FILLER END 001323 1064 MAIN64, TAD ACMIND 001324 7640 SZA CLA /INDIRECT? 001325 4556 JMS I RETORN /YES - PUT RETURN FIRST 001326 1763 TAD I (SACCUM /TEST FOR NULL NAME 001327 7650 SNA CLA 001330 5762' JMP MAIN65 001331 1361 TAD (SACCUM-1 /PUT THE VARAIBLE NAME 001332 4577 JMS I WRSTRO 001333 4556 MAIN66, JMS I RETORN /PUT A RETURN 001334 5240 JMP MAIN5R /UPDATE ARGCNT, CLEN AND GO AGAIN
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 25 /MAKE XASC CALL FOR VARIABLE FILLER LENGTH 001335 4546 MAIN63, JMS I MAKASC /MAKE ASC CALL 001336 1360 TAD (SHFT3 001337 4572 JMS I WRPPSO /WRITE A SHIFT 001340 1357 TAD (DCAGVC-1 001341 4575 JMS I WRSTPO /WRITE THE STORE 001342 4556 JMS I RETORN /PUT RETURN 001343 1756 TAD I (DCAGV /GET FINISHING LITERAL 001344 4567 JMS I WROLIN /PUT IT 001345 1355 TAD (STOR 001346 4573 JMS I WRPSO /PUT STORAGE FOR IT 001347 7307 FOUR 001350 1034 TAD CLEN 001351 3034 DCA CLEN /UPDATE THE LENGTH OF THE INST 001352 5323 JMP MAIN64 /GO 001355 2515 001356 2260 001357 2251 001360 2455 001361 2216 001362 1400 001363 2217 001364 2415 001365 4224 001366 7775 001367 2561 001370 0020 001371 1065 001372 2437 001373 2501 001374 2431 001375 4234 001376 4232 001377 1077 1400 PAGE 001400 1115 MAIN65, TAD C260 /NULL NAME - PUT A ZERO 001401 4567 JMS I WROLIN 001402 5777' JMP MAIN66
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 26 /HANDLE SIMPLE ASSIGNMENT STATEMENTS - EITHER PATTERN MATCHING /OR ARITHMETIC 001403 4562 MAIN70, JMS I SAVACM /SAVE ACCUM 001404 7301 ONE 001405 3023 DCA LAST /LAST DELIMITER SEEN (1 = ADD) 001406 4560 JMS I SCAN /GET NEXT ATOM 001407 1376 TAD (ARGENV-1 /ARITH GEN VAR TABLE 001410 3015 DCA AGVPTR /PTR 001411 1130 TAD NC10 001412 3050 DCA AGVCNT /COUNT 001413 1022 TAD DEL /GET THE DELIMITER 001414 7450 SNA /SUBTRACTION? 001415 5245 JMP MAIN74 /YES 001416 1121 TAD NC1 001417 7650 SNA CLA /ADDITION? 001420 5245 JMP MAIN74 /YES 001421 1020 TAD ACCNUM 001422 7640 SZA CLA /NO, ANY ACCUMULATED NUMBER? 001423 5775' JMP ERR5 /YES - ERROR 001424 1374 TAD (PATCAL 001425 4573 JMS I WRPSO /WRITE PATTERN HEADER 001426 1120 TAD SARG 001427 4567 JMS I WROLIN /ARGCNT SUBSTITUTE 001430 4556 JMS I RETORN /RETURN 001431 1373 TAD (SACCUM-1 001432 4577 JMS I WRSTRO /PUT BASE VARIABLE 001433 4556 JMS I RETORN 001434 1372 TAD (EQUALC 001435 4573 JMS I WRPSO /WRITE EQUAL CODE 001436 7301 ONE 001437 3033 DCA ARGCNT /SET THE ARG LENGTH COUNT 001440 7307 FOUR 001441 1034 TAD CLEN 001442 3034 DCA CLEN 001443 5771' JMP MAIN5B /HANDLE NAME
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 27 /HANDLE ARITHMETIC ASSIGNMENT STATEMENTS 001444 4560 MAIN73, JMS I SCAN /GET NEXT ATOM 001445 1020 MAIN74, TAD ACCNUM 001446 7640 SZA CLA /CONSTANT? 001447 5310 JMP MAIN77 /YES 001450 1534 TAD I ACUM 001451 7650 SNA CLA /VAR GIVEN? 001452 5277 JMP MAIN75 /NO 001453 4546 JMS I MAKASC /WRITE A CALL TO ASC 001454 1023 TAD LAST 001455 7640 SZA CLA /NEGATIVE OF THIS NAME? 001456 5262 JMP MAIN7A 001457 1370 TAD (COMPC 001460 4572 JMS I WRPPSO /YES - WRITE COMPLEMENT 001461 2034 ISZ CLEN 001462 1367 MAIN7A, TAD (DCAGVC-1 001463 4575 JMS I WRSTPO /WRITE A STORE 001464 2034 ISZ CLEN 001465 1766 TAD I (DCAGV /GET LIT 001466 2050 ISZ AGVCNT /LIT OVERFLOW? 001467 7410 SKP 001470 5765' JMP ERR25 /YES 001471 3415 DCA I AGVPTR /NO - PUT INTO LIST 001472 1766 TAD I (DCAGV /GET GEN'ED LIT 001473 3764 DCA I (TADGV 001474 1363 TAD (TADCON-1 /DO A TAD OF IT 001475 4577 JMS I WRSTRO / 001476 2034 ISZ CLEN
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 28 /HANDLE NEXT DELIMITER 001477 1022 MAIN75, TAD DEL 001500 7450 SNA /MINUS? 001501 5306 JMP MAIN76 /YES 001502 1121 TAD NC1 001503 7640 SZA CLA /NO, ADDITION? 001504 5330 JMP MAIN79 /NO, FINISH UP 001505 7301 ONE /YES 001506 3023 MAIN76, DCA LAST /UPDATE LAST DELIMITER 001507 5244 JMP MAIN73 /AND GO AGAIN /HANDLE CONSTANT 001510 3764 MAIN77, DCA I (TADGV /NO GENERATED LITERAL 001511 1363 TAD (TADCON-1 / 001512 4577 JMS I WRSTRO /WRITE TAD 001513 1362 TAD ("( 001514 4567 JMS I WROLIN /PUT CONSTANT 001515 2034 ISZ CLEN 001516 2034 ISZ CLEN /INST LENGTH 001517 1023 TAD LAST /GET LAST DELIM 001520 7640 SZA CLA /SUBTRACTION? 001521 5324 JMP MAIN78 /NO 001522 1361 TAD ("- /YES 001523 4567 JMS I WROLIN /PUT A MINUS 001524 1020 MAIN78, TAD ACCNUM /GET THE CONST 001525 4566 JMS I WROCO /WRITE IT 001526 4556 JMS I RETORN 001527 5277 JMP MAIN75 /GO
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 29 /FINISH UP AFTER ARITHMETIC ASSIGNMENT 001530 1360 MAIN79, TAD (LITJMS /INT CALL 001531 4573 JMS I WRPSO /WRITE IT 001532 1357 TAD (XINT 001533 4573 JMS I WRPSO 001534 1373 TAD (SACCUM-1 001535 4577 JMS I WRSTRO /WRITE THE BASE VAR 001536 4556 JMS I RETORN 001537 2034 ISZ CLEN 001540 2034 ISZ CLEN 001541 1112 TAD C10 001542 1050 TAD AGVCNT /ANY GENED LITS FOR THIS STA? 001543 7450 SNA 001544 5756' JMP END1 /NO - PROCEED 001545 7041 CMA IAC /YES 001546 3050 DCA AGVCNT /SAVE NEG COUNT 001547 1376 TAD (ARGENV-1 /PTR TO TABLE 001550 3015 DCA AGVPTR / 001551 1355 TAD (JMPCAL 001552 4573 JMS I WRPSO /JUMP AROUND LITS 001553 5754 JMP I (.&7600+200 /***PAGE BOUNDS 001554 1600 001555 2507 001556 1621 001557 2403 001560 2371 001561 0255 001562 0250 001563 2263 001564 2270 001565 4253 001566 2260 001567 2251 001570 2445 001571 1073 001572 2437 001573 2216 001574 2565 001575 4205 001576 2206 001577 1333 1600 PAGE 001600 1050 TAD AGVCNT 001601 7041 CMA IAC; IAC / 001602 7001 001603 4566 JMS I WROCO /DISTANCE 001604 4556 JMS I RETORN 001605 2034 ISZ CLEN 001606 1415 MAIN80, TAD I AGVPTR /GET NEXT 001607 4567 JMS I WROLIN /WRITE VAR 001610 1377 TAD (STOR
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 29-1 001611 4573 JMS I WRPSO /WRITE STORAGE 001612 2034 ISZ CLEN 001613 2050 ISZ AGVCNT /DONE? 001614 5206 JMP MAIN80 /NO 001615 5221 JMP END1 /YES
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 30 /THIS ROUTINE HANDLES THE END OF LINE PARSING. FROM THE INPUT /CURSOR ON TO THE END OF THE LINE SHOULD BE ONLY (AT THE /MOST) A TRANSFER SPECIFICATION, OR A COMMENT FIELD. 001616 7305 ENDLIN, TWO /(NOARG) 001617 3046 DCA VALID /AN ARGUMENT IS ILLEGAL 001620 4560 JMS I SCAN /GET THE NEXT ATOM 001621 7344 END1, NTWO /(-SLASH) 001622 1022 TAD DEL /GET THE DELIMITER 001623 7450 SNA /COMMENT? 001624 5776' JMP END6 /YES 001625 1126 TAD NC6 /(SLASH-EOL) 001626 7450 SNA /END OF LINE? 001627 5554 JMP I PUTOUT /YES - PUT OUTPUT LINE 001630 1121 TAD NC1 001631 7450 SNA /END OF FILE? 001632 5554 JMP I PUTOUT /YES 001633 1127 TAD NC7 /(END-SPACE) 001634 7450 SNA /SPACE? 001635 5216 JMP ENDLIN /YES - TRY AGAIN 001636 1121 TAD NC1 /(-COLON) 001637 7640 SZA CLA /COLON (TRANSFER)? 001640 5775' JMP ERR14 /NO 001641 2062 END2, ISZ TRASEN /TRANSFER ALREADY SEEN? 001642 5774' JMP ERR19 /YES - ERROR 001643 4542 JMS I GETCHR /GET THE NEXT CHAR 001644 5773' JMP ERR6 001645 3023 DCA LAST /SAVE IT 001646 1023 TAD LAST 001647 1372 TAD (-"( /OPEN PARENTHESIS? 001650 7450 SNA /I.E. UNCONDITIONAL TRANSFER? 001651 5277 JMP END4 /YES 001652 1371 TAD (-36 /(-"F) 001653 7450 SNA /FAIL CONDITION? 001654 5261 JMP END3 001655 1370 TAD (-15 /NO - -"S 001656 7640 SZA CLA /MUST BE SUCCESS CONDITION 001657 5767' JMP ERR10 001660 1366 TAD ("N-"Z
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 31 001661 1365 END3, TAD ("Z 001662 3764 DCA I (TESTQ /PUT CONDITION IN TEST 001663 7305 TWO /(NOARG) 001664 3046 DCA VALID /VALID TYPE 001665 4560 JMS I SCAN /GET THE NEXT 001666 1022 TAD DEL 001667 1126 TAD NC6 /(-LPAREN) 001670 7640 SZA CLA /NOW MUST BE OPEN PAREN 001671 5775' JMP ERR14 001672 1363 TAD (TESTSF-1 001673 4577 JMS I WRSTRO /WRITE TEST 001674 2034 ISZ CLEN 001675 2034 ISZ CLEN 001676 5300 JMP END4+1 /PARSE LABEL PART OF TRANSFER FIELD 001677 3023 END4, DCA LAST /UNCONDITIONAL 001700 1362 TAD (JMPTR+LABEL / 001701 3046 DCA VALID /FIND LABEL 001702 4560 JMS I SCAN /GET NAME 001703 1534 TAD I ACUM 001704 7650 SNA CLA /ANY? 001705 5761' JMP ERR20 /NO 001706 1022 TAD DEL 001707 1124 TAD NC4 /(-RPAREN) 001710 7640 SZA CLA /MUST BE CLOSE 001711 5775' JMP ERR14 001712 1360 TAD (JMPLAB 001713 4573 JMS I WRPSO /WRITE JMP 001714 4550 JMS I PUTACR /PUT ACCUM 001715 1064 TAD ACMIND 001716 7650 SNA CLA /IS ACCUM INDIRECT? 001717 5326 JMP END7 /NO 001720 1023 TAD LAST /GET TRANSFER CONDITION 001721 7640 SZA CLA /MUST BE UNCONDITIONAL 001722 5757' JMP ERR11 001723 1377 TAD (STOR /STORAGE DEFINITION 001724 4573 JMS I WRPSO /WRITE IT 001725 5326 JMP END7
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 32 001726 2034 END7, ISZ CLEN 001727 2034 ISZ CLEN /BUMP INST LENGTH CNT 001730 4542 JMS I GETCHR /GET NEXT 001731 5554 JMP I PUTOUT 001732 3024 DCA T1 001733 1024 TAD T1 001734 1356 TAD (-"F /FAIL NOW? 001735 7450 SNA 001736 5755' JMP END5 /YES 001737 1370 TAD (-15 001740 7650 SNA CLA /SUCCESS? 001741 5755' JMP END5 001742 1024 TAD T1 /NO - 001743 3070 DCA CHOLD /SAVE THE CHARACTER 001744 5216 JMP ENDLIN /AND PROCESS IT 001755 2000 001756 7472 001757 4220 001760 2525 001761 4240 001762 0014 001763 2273 001764 2312 001765 0332 001766 7764 001767 4215 001770 7763 001771 7742 001772 7530 001773 4207 001774 4236 001775 4224 001776 2015 001777 2515 2000 PAGE 002000 1023 END5, TAD LAST 002001 7450 SNA /UNCONDITIONAL BEFORE? 002002 5777' JMP ERR19 /YES 002003 7041 CMA IAC 002004 1024 TAD T1 /SAME CONDITION? 002005 7650 SNA CLA 002006 5776' JMP ERR22 /YES 002007 4542 JMS I GETCHR /GET THE PAREN 002010 5775' JMP ERR6 /NO 002011 1374 TAD (-"( 002012 7640 SZA CLA /MUST BE 002013 5773' JMP ERR14 /NOT 002014 5772' JMP END4 /DO THAT LABEL /COMMENT - SCAN UNTIL THE END OF THE LINE IS READ 002015 4541 END6, JMS I ENDRD /READ THROUGH END OF LINE 002016 5554 JMP I PUTOUT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 33 /tHIS ROUTINE HANDLES THE END OF LINE ACTION FOR PAL MODE STATEMENTS 002017 1066 PALEND, TAD MODECH 002020 7650 SNA CLA /DID THE MODE CHANGE? 002021 5235 JMP PALEN2 /NO 002022 1371 TAD ("/ 002023 4570 JMS I WRPOLN /YES - NOTE A COMMENT 002024 1034 TAD CLEN 002025 7041 CMA IAC 002026 3024 DCA T1 /SAVE THE CoUNT OF WORDS 002027 1370 PALEN1, TAD ("^ /WRITE ENOUGH UPARROWS 002030 4570 JMS I WRPOLN 002031 2024 ISZ T1 002032 5227 JMP PALEN1 002033 1367 TAD (RETURN-1 002034 4575 JMS I WRSTPO /PUT A RETURN AFTER THEM /NOW wRITE THE PAL LINE 002035 1135 PALEN2, TAD ACUMM 002036 4577 JMS I WRSTRO /PUT ACCUM TO OLINE 002037 1366 TAD (1-LINEIM 002040 1014 TAD LINEP 002041 7650 SNA CLA /IS THE LINE ALREADY FINISHED? 002042 5257 JMP PALEN4 /YES 002043 1114 TAD C240 /PUT AN EXTRA SPACE 002044 4567 JMS I WROLIN 002045 1765 TAD I (CDEL /GET DELIMITER 002046 4567 JMS I WROLIN /PUT IT AFTER ACCUM 002047 4542 PALEN3, JMS I GETCHR /GeT tHE NEXT CHARACTER 002050 5554 JMP I PUTOUT 002051 1132 TAD NC212 002052 7450 SNA /END OF LINE? 002053 5257 JMP PALEN4 002054 1364 TAD (212 /NO - RESTORE THE CHARACTER 002055 4567 JMS I WROLIN /AND WRITE IT 002056 5247 JMP PALEN3 002057 1367 PALEN4, TAD (RETURN-1 002060 4577 JMS I WRSTRO /PUT FINAL RETURN 002061 5554 JMP I PUTOUT 002164 0212 002165 2176 002166 5741 002167 2246 002170 0336 002171 0257 002172 1677 002173 4224 002174 7530
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 33-1 002175 4207 002176 4242 002177 4236 2200 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 34 /HERE TO WRITE OUT POLINE AND OLINE AND SETUP FOR THE NEXT STATEMENT. 002200 7300 PTOUT, ZERO 002201 1377 TAD (-176 002202 1035 TAD PAGLEN /WILL THIS INST FIT ON THIS PAGE? 002203 1034 TAD CLEN /GET SUM OF SIZES 002204 7710 SPA CLA /? 002205 5216 JMP PUT0 /YES - GO AHEAD 002206 1376 TAD (PAGJMP /JMP CODE 002207 4574 JMS I WRPS /WRITE DIRECTLY ONTO OUTPUT 002210 2076 ISZ PAGLIT 002211 1076 TAD PAGLIT /GET A NEW PAGE LITERAL 002212 4553 JMS I PUTOC /PUT THE NUMBER 002213 1375 TAD (PAGFIN /FINISH INFO 002214 4574 JMS I WRPS /PUT IT 002215 3035 DCA PAGLEN /ZERO NEW PAGE LENGTH 002216 1034 PUT0, TAD CLEN 002217 1035 TAD PAGLEN /GET NEW PAGE SIZE 002220 3035 DCA PAGLEN /AND SAVE 002221 1036 TAD TMODE 002222 7640 SZA CLA /PAL MODE? 002223 5231 JMP PUT7 /YES - DON'T PUT SOURCE 002224 1374 TAD ("/ 002225 4551 JMS I PUTCHR /COMMENT OUT THE LINE 002226 4773 JMS I (PLINE /PUT SOURCE LINE ONTO OUTPUT 002227 1372 TAD (RETURN-1 002230 4576 JMS I WRSTR /PUT EOL 002231 7340 PUT7, NONE 002232 3063 DCA OUTF /OLINE NOT PUT YET 002233 7346 NTHREE 002234 3502 DCA I COLINE /CLOSE OLINE 002235 7346 NTHREE 002236 3503 DCA I CPOLINE /AND POLINE 002237 1771 TAD I (POLINE /PRE-OUT FIRST 002240 7450 SNA 002241 5271 JMP PUT4 /EMPTY - SKIP IT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 35 /DO TRANSFER FROM THE OUTPUT POOLS TO OUTPUT 002242 3024 PUT1, DCA T1 002243 4555 PUT2, JMS I RDPOOL /READ FROM POOL 002244 5271 JMP PUT4 /DONE 002245 3025 DCA T2 002246 1025 TAD T2 002247 0120 AND SARG /SUBSTITUTE? 002250 7640 SZA CLA 002251 5255 JMP PUT3 /YES 002252 1025 TAD T2 002253 4551 JMS I PUTCHR /NO - WRITE IT 002254 5243 JMP PUT2 /AND AGAIN 002255 1025 PUT3, TAD T2 /GET ARG 002256 1120 TAD SARG / 002257 7650 SNA CLA /ARGCNT SUBSTITUTE? 002260 5307 JMP PUT6 /YES 002261 1370 TAD ("X /NO - SUBSTITUTE "XL<NUM>" 002262 4551 JMS I PUTCHR 002263 1367 TAD ("L 002264 4551 JMS I PUTCHR /PUT THEM 002265 1025 TAD T2 002266 1120 TAD SARG /SUBTRACT SARG 002267 4553 JMS I PUTOC /PUT IT 002270 5243 JMP PUT2 /AND AGAIN 002271 2063 PUT4, ISZ OUTF /OLINE DONE YET? 002272 5276 JMP PUT5 /YES 002273 1766 TAD I (OLINE /NO - USE IT 002274 7440 SZA 002275 5242 JMP PUT1 /GO 002276 1771 PUT5, TAD I (POLINE 002277 4540 JMS I DELPOL /DELETE POLINE 002300 3771 DCA I (POLINE /DELETE PTR 002301 3103 DCA CPOLINE 002302 1766 TAD I (OLINE 002303 4540 JMS I DELPOL /AND OLINE 002304 3766 DCA I (OLINE /AND THE PTR 002305 3102 DCA COLINE 002306 5765' JMP MAIN /AND NEXT LINE 002307 1033 PUT6, TAD ARGCNT /SUBSTITUTE ARGCNT - GET IT 002310 4553 JMS I PUTOC /WRITE IT 002311 5243 JMP PUT2 /AND AGAIN 002365 0466 002366 2227 002367 0314 002370 0330 002371 2230 002372 2246 002373 4421 002374 0257
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 35-1 002375 2555 002376 2531 002377 7602 2400 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 36 / THIS ROUTINE HAS THE RESPONSIBILITY OF PERFORMING PRIMARY PARSING /OF THE INPUT FILE. ON A CALL TO SCAN, THE INPUT LINE IS READ UNTIL /A DELIMITER IS FOUND. ANY IDENTIFIER IS STORED IN ACCUM, ANY NUMBER /ACCUMULATION IS PERFORMED AND STORED INTO ACCNUM. IF THE DELIMITER /IS A SPACE, SCAN WILL SEARCH FOR THE NEXT DELIMITER AFTER THAT, IF /NONE, THEN SPACE IS RETURNED AS THE DELIMITER. ARGUMENT ACCUMULA- /TION IS GUIDED BY THE CODE CONTAINED IN LOCATION VALID. 002400 7300 ZERO /CLEAR AC VIA SCANNR-2 002401 5602 JMP I SCANNR /RETURN VIA SCANNR-1 002402 0000 SCANNR, 0 002403 3064 DCA ACMIND /CLEAR ACCUM IS INDIRECT FLAG 002404 3061 DCA LABELF /CLEAR LABEL FLAG 002405 3065 DCA PTATOM /CLEAR "THIS IS" .A ATOM FLAG 002406 3020 DCA ACCNUM /CLEAR ACCUMULATED NUMBER 002407 3022 DCA DEL /CLEAR DEL 002410 3057 DCA LITFND /LITERAL FOUND FLAG 002411 1130 TAD NC10 002412 3026 DCA T3 /COUNT FOR ACCUM 002413 1135 TAD ACUMM 002414 3011 DCA INDEX1 /SETUP PTR 002415 1135 TAD ACUMM 002416 3017 DCA INDEX7 002417 1130 TAD NC10 002420 3030 DCA TX 002421 3417 DCA I INDEX7 /CLEAR ACCUM 002422 2030 ISZ TX 002423 5221 JMP .-2 /ALL OF IT 002424 1377 SCAN00, TAD (DELST-1 002425 3016 DCA INDEX6 /PTR TO DELIMITERS 002426 4542 JMS I GETCHR /GET NEXT CHAR 002427 5362 JMP SCAN08 002430 3027 DCA T4 002431 1027 TAD T4 002432 1376 TAD (-"" 002433 7450 SNA /DOUBLE QUOTE? 002434 5775' JMP SCAN09 /YES 002435 1125 TAD NC5 /' 002436 7650 SNA CLA /SINGLE? 002437 5775' JMP SCAN09 /YES 002440 1027 SCAN01, TAD T4 /GET CHAR AGAIN 002441 1416 TAD I INDEX6 /GET NEGATIVE DELIMITER 002442 7650 SNA CLA /MATCH? 002443 5327 JMP SCAN06 /YES 002444 1416 TAD I INDEX6 /GET THE DELIMETER CODE 002445 7640 SZA CLA /NULL? 002446 5240 JMP SCAN01 /NO - TRY NEXT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 37 002447 1022 TAD DEL /GET DELIMITER 002450 7650 SNA CLA /ALREADY FOUND? 002451 5255 JMP SCAN02 /NO 002452 1027 TAD T4 /YES, HOLD THIS CHARACTER 002453 3070 DCA CHOLD 002454 5352 JMP SCAN07 /AND DONE 002455 1057 SCAN02, TAD LITFND /LITERAL FOUND ALREADY? 002456 7640 SZA CLA 002457 5322 JMP SCAN05 /YES 002460 1534 TAD I ACUM 002461 7640 SZA CLA /NAME ACCUMULATED? 002462 5313 JMP SCAN04 /YES 002463 1027 TAD T4 /NO, GET CHAR 002464 1133 TAD NC260 002465 7510 SPA /BELOW "0"? 002466 5307 JMP SCAN03 /YES, NOT NUMBER 002467 1131 TAD NC12 / 002470 7500 SMA /DIGIT? 002471 5307 JMP SCAN03 /NO 002472 1113 TAD C12 /YES - GET BACK NUMBER 002473 3030 DCA TX /SAVE IT 002474 1036 TAD TMODE 002475 7640 SZA CLA /sNOBOL MODE? 002476 5313 JMP SCAN04 /NO - DON'T CONVERT THE NUMBER 002477 1131 TAD NC12 /DECIMAL -10 002500 3024 DCA T1 /COUNT 002501 1020 TAD ACCNUM /GET SUM 002502 2024 ISZ T1 /MULTIPLY BY 10 002503 5301 JMP .-2 002504 1030 TAD TX /AND ADD IN NEW DIGIT 002505 3020 DCA ACCNUM /UPDATE SUM 002506 5224 JMP SCAN00 /GO AGAIN 002507 7300 SCAN03, ZERO 002510 1020 TAD ACCNUM /CHAR IS NOT A NUMBER 002511 7640 SZA CLA /ANY ACCUMULATED NUMBER? 002512 5774' JMP ERR4 /YES - ERROR 002513 2026 SCAN04, ISZ T3 /INC ACCUM CNT 002514 1026 TAD T3 /GET THE CNT 002515 7700 SMA CLA /ACCUM FULL? 002516 5224 JMP SCAN00 /YES - THROW AWAY CHAR 002517 1027 TAD T4 002520 3411 DCA I INDEX1 /NO, SAVE CHAR 002521 5224 JMP SCAN00 /AND DO THE NEXT ONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 38 002522 1373 SCAN05, TAD (SPACE 002523 3022 DCA DEL /FORCE SPACE 002524 1027 TAD T4 002525 3070 DCA CHOLD /HOLD THIS CHARACTER 002526 5352 JMP SCAN07 /AND ALMOST DONE 002527 1416 SCAN06, TAD I INDEX6 /DELIMITER FOUND - GET CODE 002530 3022 DCA DEL /SAVE 002531 1027 TAD T4 002532 3772 DCA I (CDEL /SAVE THAT DELIMITER 002533 1020 TAD ACCNUM 002534 1057 TAD LITFND 002535 1534 TAD I ACUM 002536 7640 SZA CLA /ANY ARGUMENTS FOUND? 002537 5346 JMP SCAN0A /YES 002540 1022 TAD DEL 002541 1371 TAD (-SPACE 002542 7640 SZA CLA /SPACE AS A DELIMITER? 002543 5346 JMP SCAN0A 002544 3022 DCA DEL /YES - CLEAR DEL 002545 5224 JMP SCAN00 /AND IGNORE THE SPACE 002546 1022 SCAN0A, TAD DEL 002547 1371 TAD (-SPACE /IS IT A SPACE? 002550 7650 SNA CLA 002551 5224 JMP SCAN00 /YES, TRY TO FIND A BETTER ONE 002552 1020 SCAN07, TAD ACCNUM 002553 7640 SZA CLA /ACCUMULATED NUMBER? 002554 5201 JMP SCANNR-1 /YES 002555 1534 TAD I ACUM 002556 2057 ISZ LITFND /LITERAL FOUND? 002557 7650 SNA CLA /OR NO ACCUMULATED NAME? 002560 5200 JMP SCANNR-2 /YES - DONE 002561 5770' JMP SCAN22 002562 1367 SCAN08, TAD (END /END OF FILE 002563 3022 DCA DEL 002564 5201 JMP SCANNR-1 /DONE 002567 0011 002570 3000 002571 7760 002572 2176 002573 0020 002574 4203 002575 2600 002576 7536 002577 1773 2600 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 39 /HERE TO HANDLE A LITERAL. THE LITERAL WILL BE STORED JUST ABOVE /THE TOP OF USED STORAGE IN FIELD 1. IF IT IS ALREADY IN A POOL, /THEN THE NAME IS RETURNED, OTHERWISE, IT IS ADDED TO THE APPROP- /RIATE POOL AND THE NEW NAME IS RETURNED. 002600 1057 SCAN09, TAD LITFND 002601 1534 TAD I ACUM 002602 7640 SZA CLA /ANY ATOM? 002603 5777' JMP SCAN05 /YES - USE IT 002604 1046 TAD VALID /NO, GET VALID ARG TYPES 002605 0376 AND (VARORLIT 002606 7650 SNA CLA /APPROPRIATE? 002607 5775' JMP ERR5 /NO 002610 1027 TAD T4 /GET TYPE OF QUOTE 002611 7041 CMA IAC 002612 3026 DCA T3 /SAVE NEGATIVE 002613 4542 JMS I GETCHR /GET BUT DON'T MODIFY THE NEXT CHAR 002614 5774' JMP ERR6 002615 3024 DCA T1 002616 1024 TAD T1 002617 1026 TAD T3 /GET THE INITIAL QUOTE CHARACTER 002620 7640 SZA CLA /NULL STRING? 002621 1024 SCAN10, TAD T1 /NO - USE THE CHARACTER 002622 0111 AND C7 /HASH FOR LITERAL POOLS 002623 3021 DCA LPOOL /SAVE IT 002624 7340 NONE 002625 3057 DCA LITFND /LITERAL FOUND FLAG 002626 7325 THREE 002627 1032 TAD TOP 002630 3037 DCA NXTSTR /GET A FREE ADDRESS 002631 7340 NONE 002632 3432 DCA I TOP 002633 1032 TAD TOP 002634 3012 DCA INDEX2 002635 7340 NONE 002636 3412 DCA I INDEX2 /FREE UP TWO LOCATIONS AT TOP 002637 3412 DCA I INDEX2 /SAVE STRDEL 002640 1037 TAD NXTSTR 002641 3016 DCA INDEX6 /SAVE PUT PTR 002642 1024 TAD T1 /GET CHARACTER AGAIN 002643 2065 ISZ PTATOM /IS THIS A .A LITERAL? 002644 5252 JMP SCAN12 /NO 002645 5260 JMP SCAN13 /YES
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 40 002646 4542 SCAN11, JMS I GETCHR /GET AND DON'T MODIFY CHAR 002647 5774' JMP ERR6 002650 3024 DCA T1 /SAVE IT 002651 1024 TAD T1 002652 1026 SCAN12, TAD T3 /GET FINAL QUOTE CHAR 002653 7650 SNA CLA /IS THIS IT? 002654 5261 JMP SCAN14 /YES 002655 1024 TAD T1 002656 3416 DCA I INDEX6 /NO, PUT CHAR 002657 5246 JMP SCAN11 /AND ON 002660 3416 SCAN13, DCA I INDEX6 /.A ATOM - PUT THE LITERAL 002661 3416 SCAN14, DCA I INDEX6 /STRDEL 002662 1373 TAD (LITS /LITERAL POINTERS 002663 1021 TAD LPOOL /WHICH ONE 002664 3027 DCA T4 002665 1427 TAD I T4 /GET THE PTR 002666 7450 SNA /EMPTY? 002667 5306 JMP SCAN15 /YES 002670 7001 IAC /SKIP THE NAME WORD 002671 3024 DCA T1 /SAVE POINTER FOR SEARCH 002672 7340 NONE /ONE INFO WORD AFTER STRDEL IN LITERAL 002673 3025 DCA T2 /POOLS (EXCEPT THE LAST STRING BECAUSE THE /WORD ACTUALLY PRECEEDS THE STRINGS) 002674 1037 TAD NXTSTR /SEARCH LITERAL POOL FOR NEW LITERAL 002675 4561 JMS I SEARCH /HAS THE STRING ALREADY BEEN ENTERED? 002676 5333 JMP SCAN20 002677 7340 NONE 002700 1040 TAD T1MAT /YES - POINT TO LITERAL NAME 002701 3025 DCA T2 002702 1425 TAD I T2 /GET THE LITERAL NAME 002703 1120 TAD SARG /FLAG SUBSTITUTE 002704 3534 DCA I ACUM 002705 5342 JMP SCAN21
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 41 /HERE TO ADD THE NEW STRING TO THE APPROPRIATE POOL 002706 7340 SCAN15, NONE 002707 1037 TAD NXTSTR 002710 3030 DCA TX 002711 7340 NONE 002712 3430 DCA I TX /FREE UP EXTRA STRDEL 002713 2037 ISZ NXTSTR /DON'T INCLUDE INITIAL STRDEL 002714 7340 SCAN16, NONE 002715 1037 TAD NXTSTR /POINT TO THE NEW STRING 002716 3427 DCA I T4 /SAVE IN POOL 002717 2075 ISZ GENLIT /GENERATE A NEW LITERAL 002720 1075 TAD GENLIT /GET IT 002721 1120 TAD SARG /ADD IN SUBSTITUTE BIT 002722 3534 DCA I ACUM /SAVE LITERAL 002723 1075 TAD GENLIT 002724 3412 DCA I INDEX2 /PUT BEFORE STRING IN POOL 002725 7346 NTHREE 002726 3416 DCA I INDEX6 /PUT POLEND 002727 7301 ONE 002730 1016 TAD INDEX6 002731 3032 DCA TOP /UPDATE THE TOP POINTER 002732 5342 JMP SCAN21 /DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 42 002733 7340 SCAN20, NONE /LITERAL NOT IN POOL 002734 1024 TAD T1 002735 3027 DCA T4 /POS OF LIT POOL STRDEL BEFORE POLEND 002736 7344 NTWO /LINK CODE 002737 3427 DCA I T4 /PUT IT 002740 2027 ISZ T4 /POINT TO LINK ADDRESS 002741 5314 JMP SCAN16 /ADD NEW STRING TO POOL /DONE STRING ACCUMULATION 002742 1065 SCAN21, TAD PTATOM 002743 7650 SNA CLA /WAS THIS A .ANNN LITERAL? 002744 5772' JMP SCANNR-1 /YES - THEN DONE 002745 1371 TAD (SPACE /NO - FORCE A SPACE 002746 3022 DCA DEL /AS A DELIMITER 002747 5770' JMP SCAN00 /BUT LOOK FOR A BETTER ONE /@ SEEN - HANDLE INDIRECT FOR ACCUM 002750 2064 SCAN2G, ISZ ACMIND /SET FLAG FOR INDIRECT 002751 4563 JMS I SHACUM /SHIFT ACCUM 002752 1534 TAD I ACUM 002753 1367 TAD (-330 002754 5766' JMP SCAN2I 002766 3021 002767 7450 002770 2424 002771 0020 002772 2401 002773 2177 002774 4207 002775 4205 002776 0001 002777 2522 3000 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 43 /ADD ACCUMULATED NAME TO VARPOL OR LABPOL 003000 7344 SCAN22, NTWO /(NOARG) 003001 1046 TAD VALID /GET VALID TYPE 003002 7650 SNA CLA /NO ARGUMENT ALLOWED? 003003 5777' JMP ERR5 /YES - ERROR 003004 1534 TAD I ACUM /NO - GET THE FIRST CHARACTER 003005 1376 TAD (-256 003006 7450 SNA /PERIOD? 003007 5775' JMP SCAN27 /YES 003010 3030 DCA TX 003011 1036 TAD TMODE /GET THE COMPILER MODE 003012 7640 SZA CLA /SNOBOL MODE? 003013 5313 JMP SCAN2S /NO - ONLY LOOK AT LABELS 003014 1030 SCAN2T, TAD TX / 003015 1374 TAD (-22 003016 7450 SNA /"@" INDIRECT? 003017 5773' JMP SCAN2G /YES 003020 1372 TAD (-30 003021 7450 SCAN2I, SNA /NO, "X"? 003022 5771' JMP ERR7 /YES - RESTRICTED 003023 1370 TAD (27 003024 7510 SPA /A LETTER? 003025 5767' JMP ERR10 /NO 003026 1366 TAD (-32 003027 7700 SMA CLA /? 003030 5767' JMP ERR10 /NO 003031 3765 DCA I (ACCUM+6 /TRUNCATE TO SIX CHARACTERS 003032 1364 TAD (SPFNPL /SPECIAL FUNCTION POOL 003033 3024 DCA T1 003034 3025 DCA T2 /NO INFO WORDS 003035 1135 TAD ACUMM 003036 4561 JMS I SEARCH /IS THIS IDENTIFIER A FUNCTION? 003037 5241 JMP .+2 003040 5302 JMP SCAN2P /YES - JUST RETURN IT 003041 7301 ONE 003042 1032 TAD TOP 003043 3013 DCA INDEX3 /PTR TO FREE SPACE 003044 1013 TAD INDEX3 003045 3037 DCA NXTSTR /SAVE IT 003046 7340 NONE 003047 3432 DCA I TOP 003050 7340 NONE 003051 3437 DCA I NXTSTR /FREE UP SPACES AT TOP 003052 3413 DCA I INDEX3 /STRDEL TO COVER ANY PREVIOUS NAME 003053 1135 TAD ACUMM 003054 3011 DCA INDEX1 /SETUP READ PTR
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 44 003055 1411 SCAN23, TAD I INDEX1 /GET NEXT 003056 7450 SNA /DONE? 003057 5320 JMP SCAN24 /YES 003060 3030 DCA TX 003061 1030 TAD TX 003062 1133 TAD NC260 /CHECK FOR ALPHA OR NUMERIC 003063 7510 SPA / 003064 5767' JMP ERR10 003065 1131 TAD NC12 003066 7510 SPA /NUMBER? 003067 5276 JMP SCAN2H /YES 003070 1127 TAD NC7 003071 7510 SPA /ALPHABETIC? 003072 5767' JMP ERR10 /NO 003073 1366 TAD (-32 003074 7700 SMA CLA /? 003075 5767' JMP ERR10 003076 7300 SCAN2H, ZERO 003077 1030 TAD TX /CHAR IS OK, GET IT BACK 003100 3413 DCA I INDEX3 /PUT IT 003101 5255 JMP SCAN23 /CONTINUE 003102 1022 SCAN2P, TAD DEL 003103 1374 TAD (-COMMA 003104 7640 SZA CLA /IS THIS A LABEL? 003105 5763' JMP SCANNR-1 /NO - DONE 003106 1046 TAD VALID 003107 1362 TAD (-ANY 003110 7640 SZA CLA /IS IT REALLY A LABEL? 003111 5763' JMP SCANNR-1 003112 5771' JMP ERR7 /YES - CANNOT BE A SPECIAL FUNCTION NAME 003113 1022 SCAN2S, TAD DEL 003114 1374 TAD (-COMMA /IS THIS A LABEL? 003115 7640 SZA CLA 003116 5763' JMP SCANNR-1 /NO - DONE 003117 5214 JMP SCAN2T /YES - PROCESS IT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 45 /HERE WHEN ACCUM IS CHECKED AND STORED - PUT POOL DELIMITERS /AND TEST IF THIS NAME IS ALREADY IN A POOL. 003120 3413 SCAN24, DCA I INDEX3 /STRDEL 003121 1022 TAD DEL /GET THE DELIMITER 003122 1374 TAD (-COMMA /LABEL? 003123 7650 SNA CLA /? 003124 5336 JMP SCAN2D /YES 003125 1064 TAD ACMIND 003126 7640 SZA CLA /INDIRECT? 003127 5334 JMP SCAN2J /YES - VAR 003130 1046 TAD VALID 003131 0361 AND (LABEL /IS THIS A LABEL REF? 003132 7640 SZA CLA 003133 5346 JMP SCAN2N /YES 003134 1360 SCAN2J, TAD (VARPOL /USE VARIABLE POOL 003135 5757' JMP SCAN2K 003136 1046 SCAN2D, TAD VALID 003137 1362 TAD (-ANY 003140 7640 SZA CLA /IS THIS REALLY A LABEL? 003141 5756' JMP ERR14 /NO - BAD DELIMETER 003142 2061 ISZ LABELF /FLAG LABEL BEING pROCESSED 003143 1064 TAD ACMIND /INDIRECT? 003144 7640 SZA CLA /MUST NOT BE 003145 5755' JMP ERR11 003146 1064 SCAN2N, TAD ACMIND 003147 7640 SZA CLA 003150 5334 JMP SCAN2J /INDIRECT LABEL REF THROUGH A VARIABLE 003151 1354 TAD (LABPOL /USE THE LABEL POOL 003152 5757 JMP I (.&7600+200 /***PAGE BOUNDS 003154 2231 003155 4220 003156 4224 003157 3200 003160 2232 003161 0004 003162 7755 003163 2401 003164 1720 003165 2167 003166 7746 003167 4215 003170 0027 003171 4211 003172 7750 003173 2750 003174 7756 003175 3432 003176 7522 003177 4205 3200 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 45-1 003200 3027 SCAN2K, DCA T4 /SAVE POOL HEADER ADDRESS 003201 1427 TAD I T4 /GET THE POOL LOCATION 003202 7450 SNA /POOL EMPTY? 003203 5231 JMP SCAN2Q 003204 3024 DCA T1 /NO - SAVE PTR 003205 3025 DCA T2 /NO INFO WORDS 003206 1135 TAD ACUMM 003207 4561 JMS I SEARCH /SEARCH FOR OCCURANCE 003210 5215 JMP SCAN2A /NOT FOUND 003211 1061 TAD LABELF 003212 7640 SZA CLA /LABEL BEING PROCESSED? 003213 5777' JMP ERR12 /YES - MULT. DEF. LABEL 003214 5332 JMP SCAN2M /OTHERWISE TEST FOR INDIRECT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 46 /HERE IF THE NAME IS NOT FOUND IN THE POOL 003215 1046 SCAN2A, TAD VALID 003216 0376 AND (LABEL /LOOKING FOR A LABEL REF? 003217 7640 SZA CLA / 003220 5317 JMP SCAN2C /YES /HERE IF APPENDING TO POOL 003221 7340 SCAN2F, NONE 003222 1024 TAD T1 003223 3027 DCA T4 /BACKUP T1 TO POINT TO OLD STRDEL 003224 7344 NTWO 003225 3427 DCA I T4 /MAKE IT A LINK 003226 2027 ISZ T4 /POINT TO ADDRESS WD 003227 7301 ONE 003230 5243 JMP SCAN2E 003231 1046 SCAN2Q, TAD VALID /HERE ON EMPTY MAIN POOL 003232 0376 AND (LABEL 003233 7640 SZA CLA /LOOKING FOR A LABEL REF? 003234 5317 JMP SCAN2C /YES - TEST UNDEFINED LABELS POOL 003235 7301 SCAN2B, ONE 003236 1037 TAD NXTSTR 003237 3030 DCA TX 003240 7340 NONE 003241 3430 DCA I TX /FREE UP STRDEL BEFORE NAME 003242 7305 TWO 003243 1037 SCAN2E, TAD NXTSTR /POS OF NEW NAME 003244 3427 DCA I T4 /UPDATE PTR 003245 7346 NTHREE 003246 3413 DCA I INDEX3 /PUT POLEND 003247 7301 ONE 003250 1013 TAD INDEX3 /GET NEW TOP 003251 3032 DCA TOP 003252 1046 TAD VALID 003253 0376 AND (LABEL 003254 7640 SZA CLA /LABEL REF? 003255 5332 JMP SCAN2M /YES - CHECK INDIRECT 003256 1061 TAD LABELF 003257 7650 SNA CLA /LABEL DEFINITION? 003260 5332 JMP SCAN2M /LABEL DEFINED - CHECK UNDEFINED LABEL POOL TO SOLVE ANY UNDEFINED /REFERENCES 003261 1775 TAD I (ULBPOL /GET POOL PTR 003262 7450 SNA /EMPTY? 003263 5332 JMP SCAN2M /YES - CHECK INDIRECT 003264 3024 DCA T1 003265 3025 DCA T2 /NO INFO WORDS 003266 1135 TAD ACUMM 003267 4561 JMS I SEARCH /LOOK FOR ATOM 003270 5332 JMP SCAN2M /NOT FOUND - DO INDIRECT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 47 /HERE TO DELETE THE ENTRY IN A POOL POINTED TO BY T1 AND T1MAT 003271 4555 JMS I RDPOOL /TRY TO GET THE NEXT CHARACTER 003272 5274 JMP .+2 003273 5305 JMP SCAN25 /GOT IT 003274 1775 TAD I (ULBPOL /NO CHARACTER - ARE WE DELETING THE ONLY ENTRY? 003275 7041 CMA IAC 003276 1040 TAD T1MAT 003277 7640 SZA CLA 003300 5312 JMP SCAN2R /NO - WRITE THE END CODE 003301 1775 TAD I (ULBPOL 003302 4540 JMS I DELPOL /YES - DELETE IT 003303 3775 DCA I (ULBPOL /ZERO THE POINTER 003304 5332 JMP SCAN2M /DONE 003305 2077 SCAN25, ISZ OVERF /OVERWRITING POOL 003306 4571 JMS I WRPOOL /WRITE THE CHARACTER 003307 4555 JMS I RDPOOL /READ NEXT FROM POOL 003310 5312 JMP .+2 /END OF POOL 003311 5306 JMP SCAN25+1 /AND AGAIN 003312 2077 SCAN2R, ISZ OVERF 003313 7340 NONE 003314 4571 JMS I WRPOOL /WRITE END CODE 003315 3077 DCA OVERF /DONE OVERWRITING 003316 5332 JMP SCAN2M /CHECK FOR INDIRECT /HERE TO SEARCH THE UNDEFINED LABELS POOL (WITH LABEL REF) 003317 1375 SCAN2C, TAD (ULBPOL 003320 3027 DCA T4 /PTR TO HEAD OF POOL 003321 1775 TAD I (ULBPOL /GET PTR 003322 7450 SNA /EMPTY? 003323 5235 JMP SCAN2B /YES - APPEND 003324 3024 DCA T1 003325 3025 DCA T2 /NO INFO WORDS 003326 1135 TAD ACUMM 003327 4561 JMS I SEARCH /SEARCH POOL 003330 5221 JMP SCAN2F /FAIL - APPEND TO POOL 003331 5332 JMP SCAN2M /CHECK FOR INDIRECT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 48 /CHECK FOR ACCUM BEING INDIRECT, HANDLE AND RETURN 003332 1064 SCAN2M, TAD ACMIND 003333 7650 SNA CLA /INDIRECT? 003334 5774' JMP SCANNR-1 /NO - DONE 003335 1373 TAD (INDCAL /XIND CALL 003336 4572 JMS I WRPPSO /WRITE IT ON PRE-OUT 003337 1135 TAD ACUMM 003340 4575 JMS I WRSTPO /WRITE ACCUM 003341 2075 ISZ GENLIT 003342 1075 TAD GENLIT /GENERATE A NEW LITERAL 003343 1120 TAD SARG /SUBSTITUTE ARG 003344 3772 DCA I (DCAGV 003345 1371 TAD (DCAGVC-1 /DCA SAVE OF NAME 003346 4575 JMS I WRSTPO 003347 7325 THREE 003350 1034 TAD CLEN 003351 3034 DCA CLEN /UPDATE INST LENGTH 003352 1046 TAD VALID 003353 0376 AND (LABEL /LABEL REF? 003354 7650 SNA CLA /? 003355 5360 JMP .+3 /NO 003356 2100 ISZ LINDF /YES - INDICATE USAGE 003357 5361 JMP .+2 003360 2101 ISZ VINDF /NO - SET VAR IND FLAG 003361 5770 JMP I (.&7600+200 /***PAGE BOUNDS 003370 3400 003371 2251 003372 2260 003373 2577 003374 2401 003375 2233 003376 0004 003377 4222 3400 PAGE 003400 1046 TAD VALID 003401 0377 AND (JMPTR 003402 7640 SZA CLA /TO BE USED AS A JUMP ADDRESS? 003403 5214 JMP SCAN2L /YES 003404 1776 TAD I (DCAGV /GET LIT # 003405 3534 DCA I ACUM /SUBSTITUTE ARG 003406 1375 TAD (", 003407 3774 DCA I (ACCUM+1 003410 1115 TAD C260 003411 3773 DCA I (ACCUM+2 /PUT 'NAME,0' 003412 3772 DCA I (ACCUM+3 /NULL 003413 5771' JMP SCANNR-1 /DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 49 003414 1370 SCAN2L, TAD ("I 003415 3534 DCA I ACUM /INDIRECT JUMP 003416 1114 TAD C240 003417 3774 DCA I (ACCUM+1 003420 1776 TAD I (DCAGV 003421 3773 DCA I (ACCUM+2 /TO INDIRECT NAME 003422 1367 TAD (215 003423 3772 DCA I (ACCUM+3 003424 1366 TAD (212 003425 3765 DCA I (ACCUM+4 003426 1776 TAD I (DCAGV /GENERATED NAME AGAIN 003427 3764 DCA I (ACCUM+5 /PUT IT 003430 3763 DCA I (ACCUM+6 /NULL 003431 5771' JMP SCANNR-1 /DONE /DOT SEEN AS FIRST CHARACTER, CHECK FOR .ANNN 003432 1774 SCAN27, TAD I (ACCUM+1 003433 1362 TAD (-301 /"A"? 003434 7640 SZA CLA 003435 5274 JMP SCAN30 /NO 003436 1036 TAD TMODE /GET COMPILER MODE 003437 7640 SZA CLA /SNOBOL MODE? 003440 5771' JMP SCANNR-1 /NO - DONE 003441 1374 TAD (ACCUM+1 /PTR TO REST OF ATOM 003442 3011 DCA INDEX1 003443 3024 DCA T1 /NUMBER ACCUMULATION 003444 1411 SCAN28, TAD I INDEX1 /GET NEXT CHARACTER 003445 7450 SNA /MORE? 003446 5265 JMP SCAN29 /NO - DONE 003447 1133 TAD NC260 003450 7510 SPA /BELOW A NUMBER? 003451 5274 JMP SCAN30 /YES - PASS IT BY 003452 1130 TAD NC10 003453 7500 SMA 003454 5274 JMP SCAN30 /NOT A NUMBER 003455 1112 TAD C10 /CONVERT TO OCTAL 003456 3030 DCA TX 003457 1024 TAD T1 003460 7106 CLL RTL; RAL /SHIFT TOTAL 003461 7004 003462 1030 TAD TX /ADD IN NEXT DIGIT TO TOTAL 003463 3024 DCA T1 003464 5244 JMP SCAN28 /AND DO NEXT
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 50 003465 1024 SCAN29, TAD T1 /GET ACCUMULATED CHAR 003466 7650 SNA CLA /OK IF NOT .EQ. 0 003467 5761' JMP ERR9 003470 7340 NONE 003471 3065 DCA PTATOM /SET .A LITERAL FLAG 003472 3774 DCA I (ACCUM+1 /CLEAR ACCUM 003473 5760' JMP SCAN10 /AND GO /PERIOD NAME FOUND - CHECK VALID TYPES 003474 7300 SCAN30, ZERO 003475 1046 TAD VALID /GET VALID CODES 003476 1357 TAD (-ANY /LOOKING FOR A COMMAND? 003477 7640 SZA CLA 003500 5756' JMP ERR7 /NO - ILLEGAL NAME 003501 5771' JMP SCANNR-1 /YES - DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 51 /WRITE END CODE AND CLOSE OUTPUT FILE 003502 1056 CLOSE, TAD OFLAG /DOING OUTPUT? 003503 7650 SNA CLA 003504 5755' JMP CLOS20 /NO SKIP 003505 1354 TAD (ENDC1 /FIRST END CODE 003506 4574 JMS I WRPS /WRITE IT 003507 1753 TAD I (VARPOL 003510 7450 SNA /ANY VARIABLES? 003511 5320 JMP CLOS2 003512 3024 DCA T1 /POINTER 003513 4552 CLOS1, JMS I PUTNAM /PUT NEXT 003514 5320 JMP CLOS2 /END OF POOL 003515 1352 TAD (STOR 003516 4574 JMS I WRPS /WRITE A WD OF STORAGE 003517 5313 JMP CLOS1 /AND NEXT 003520 1351 CLOS2, TAD (ENDC2 /) 003521 4574 JMS I WRPS /WRITE MORE CODE 003522 1350 TAD (LITS-1 003523 3011 DCA INDEX1 003524 1130 TAD NC10 /NUMBER OF LITERALS 003525 3026 DCA T3 003526 1411 CLOS3, TAD I INDEX1 /GET NEXT PTR 003527 7450 SNA /EMPTY? 003530 5747' JMP CLOS6 /YES 003531 3024 DCA T1 003532 5746 JMP I (.&7600+200 /***PAGE BOUNDS 003546 3600 003547 3624 003550 2176 003551 2623 003552 2515 003553 2232 003554 2611 003555 4031 003556 4211 003557 7755 003560 2621 003561 4213 003562 7477 003563 2167 003564 2166 003565 2165 003566 0212 003567 0215 003570 0311 003571 2401 003572 2164 003573 2163 003574 2162 003575 0254
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 51-1 003576 2260 003577 0010 3600 PAGE 003600 4555 CLOS4, JMS I RDPOOL /GET THE NEXT LITERAL NAME 003601 5224 JMP CLOS6 003602 3025 DCA T2 003603 1377 TAD ("X 003604 4551 JMS I PUTCHR /PUT AN "X" 003605 1376 TAD ("L 003606 4551 JMS I PUTCHR 003607 1025 TAD T2 /GET THE NAME 003610 4553 JMS I PUTOC /PUT NAME 003611 1375 TAD (ENDC3 003612 4574 JMS I WRPS /POINTER FOR LIT 003613 1025 TAD T2 003614 4553 JMS I PUTOC /NAME AGAIN 003615 1374 TAD (RETURN-1 003616 4576 JMS I WRSTR /AND RETURN
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 52 003617 4555 CLOS5, JMS I RDPOOL /GET NEXT (OF STR) 003620 5224 JMP CLOS6 /DONE 003621 7650 SNA CLA /STRDEL? 003622 5200 JMP CLOS4 /YES - DO NEXT 003623 5217 JMP CLOS5 /NO, KEEP LOOKING 003624 2026 CLOS6, ISZ T3 /MORE? 003625 5773' JMP CLOS3 /YES - GO 003626 1372 TAD (ENDC6 /MORE INFO 003627 4574 JMS I WRPS 003630 1100 TAD LINDF /LABEL INDIRECT SEEN FLAG 003631 1101 TAD VINDF /VAR " " " 003632 7650 SNA CLA /ANY SEEN? 003633 5252 JMP CLOS8 /NO 003634 1371 TAD (ENDC5 003635 4574 JMS I WRPS /DEFINE XIND 003636 1100 TAD LINDF /LABEL USAGE? 003637 7650 SNA CLA 003640 5245 JMP CLOS7 /NO 003641 1770 TAD I (LABPOL /GET POOL HEADER 003642 7450 SNA /EMPTY? 003643 5767' JMP ERR23 003644 4766' JMS CLOS30 /NO - PUT IT 003645 1101 CLOS7, TAD VINDF /VARIABLE USAGE? 003646 7650 SNA CLA 003647 5252 JMP CLOS8 /NO - DONE INDIRECTS 003650 1765 TAD I (VARPOL 003651 4766' JMS CLOS30 /PUT VARS
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 53 003652 1115 CLOS8, TAD C260 /END OF TABLE 003653 4551 JMS I PUTCHR 003654 1364 TAD (LITS-1 003655 3011 DCA INDEX1 003656 1130 TAD NC10 003657 3026 DCA T3 /COUNT 003660 1411 CLOS9, TAD I INDEX1 /NEXT LIT PTR 003661 7450 SNA /EMPTY? 003662 5763' JMP CLOS16 /YES 003663 3024 DCA T1 /SAVE PTR 003664 4555 CLOS10, JMS I RDPOOL 003665 5763' JMP CLOS16 /POOL DONE 003666 3025 DCA T2 003667 1362 TAD (ENDC7 003670 4574 JMS I WRPS /WRITE BEG 003671 1025 TAD T2 003672 4553 JMS I PUTOC 003673 1361 TAD (", 003674 4551 JMS I PUTCHR /PUT COMMA
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 54 /DECODE LITERALS INTO 3 CHAR/2 WORD FORMAT 003675 3534 CLOS11, DCA I ACUM 003676 3760 DCA I (ACCUM+1 003677 1135 TAD ACUMM 003700 3012 DCA INDEX2 /PTR TO PUT CODES 003701 7346 NTHREE 003702 3025 DCA T2 /COUNT 003703 4555 CLOS12, JMS I RDPOOL /GET THE NEXT CHAR 003704 7402 HLT 003705 7450 SNA /STRDEL? 003706 5336 JMP CLOS14 /YES 003707 2025 ISZ T2 /3RD CHAR? 003710 5334 JMP CLOS13 /NO 003711 3027 DCA T4 003712 1027 TAD T4 003713 7006 RTL; RTL /SHIFT FOR TOP CHAR 003714 7006 003715 0117 AND C7400 /SAVE TOP BITS 003716 1534 TAD I ACUM /ADD IN BOTTOM 003717 4553 JMS I PUTOC /PUT IT 003720 1374 TAD (RETURN-1 003721 4576 JMS I WRSTR /PUT RETURN 003722 1027 TAD T4 003723 7012 RTR; RTR; RAR /SHIFT FOR BOTTOM 003724 7012 003725 7010 003726 0117 AND C7400 003727 1760 TAD I (ACCUM+1 /BOTTOM WD 003730 4553 JMS I PUTOC /PUT IT 003731 1374 TAD (RETURN-1 003732 4576 JMS I WRSTR /AND RETURN 003733 5275 JMP CLOS11 /AGAIN 003734 3412 CLOS13, DCA I INDEX2 /SAVE 1ST OR 2ND CHAR 003735 5303 JMP CLOS12 003736 1534 CLOS14, TAD I ACUM 003737 4553 JMS I PUTOC /PUT PARTAIL WORDS OF LITERAL OUT 003740 1374 TAD (RETURN-1 003741 4576 JMS I WRSTR 003742 1760 TAD I (ACCUM+1 003743 4553 JMS I PUTOC 003744 1374 TAD (RETURN-1 003745 4576 JMS I WRSTR 003746 7340 NONE 003747 4553 JMS I PUTOC /PUT END OF STRING 003750 1374 TAD (RETURN-1 003751 4576 JMS I WRSTR 003752 5264 JMP CLOS10 /DO THE NEXT STRING 003760 2162 003761 0254 003762 2671
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 54-1 003763 4000 003764 2176 003765 2232 003766 4107 003767 4244 003770 2231 003771 2641 003772 2645 003773 3526 003774 2246 003775 2635 003776 0314 003777 0330 4000 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 55 /HERE WHEN LITERAL POOL DONE 004000 2026 CLOS16, ISZ T3 /MORE? 004001 5777' JMP CLOS9 /YES - GO 004002 1376 TAD (ENDC10 /LAST BIT 004003 4574 JMS I WRPS 004004 1775 TAD I (OUTBLK /GET CURRECT BLOCK NUMBER 004005 7041 CMA IAC 004006 3024 DCA T1 /SAVE NEG 004007 4551 CLOS17, JMS I PUTCHR /PUT ZEROS 004010 1775 TAD I (OUTBLK 004011 1024 TAD T1 004012 7650 SNA CLA /UNTIL A BLOCK IS WRITTEN 004013 5207 JMP CLOS17 /AGAIN 004014 1055 TAD FOUTBK /GET THE FIRST OUTPUT BLOCK NUMBER 004015 7041 CMA IAC 004016 1775 TAD I (OUTBLK 004017 3226 DCA CLOS19 /# OF BLOCKS WRITTEN 004020 1774 TAD I (OFLTAB /GET OUTPUT DEVICE # AGAIN 004021 6201 CDF 0 004022 6212 CIF 10 004023 4565 JMS I USR /CALL USR 004024 0004 4 /TO CLOSE OUTPUT 004025 0104 ONAME /OUTPUT FILE NAME 004026 0000 CLOS19, 0 /# OF BLOCKS 004027 5773' JMP ERR3 /ERROR 004030 6211 CDF 10
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 56 004031 4557 CLOS20, JMS I RETTRN /TYPE A RETURN 004032 1772 TAD I (ULBPOL /UNDEFINDED LABEL POOL 004033 7450 SNA /EMPTY? 004034 5260 JMP CLOS24+1 /YES - DONE HERE 004035 3024 DCA T1 /SAVE PTR TO LABELS 004036 1371 TAD (ENDC20 /UNDEFINED LABELS MESSAGE 004037 4564 JMS I TYPE 004040 4555 CLOS21, JMS I RDPOOL /NEXT 004041 5257 JMP CLOS24 004042 7450 SNA /STRDEL? 004043 5246 JMP CLOS23 /YES 004044 4547 CLOS22, JMS I PRINT /NO - PRINT IT 004045 5240 JMP CLOS21 /AND GO AGAIN 004046 4555 CLOS23, JMS I RDPOOL /GET NEXT 004047 5257 JMP CLOS24 /DONE 004050 3025 DCA T2 004051 1370 TAD (", 004052 4547 JMS I PRINT 004053 1114 TAD C240 004054 4547 JMS I PRINT 004055 1025 TAD T2 /GET BACK CHAR 004056 5244 JMP CLOS22 /CONTINUE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 57 /HERE TO DO TOTAL ERRORS MESSAGE 004057 4557 CLOS24, JMS I RETTRN 004060 4557 JMS I RETTRN 004061 1767 TAD I (ERRC 004062 7450 SNA /ERRORS? 004063 5302 JMP CLOS29 /NO 004064 1366 TAD (-144 004065 7700 SMA CLA /OVER 100 ERRORS? 004066 5277 JMP CLOS28 /YES 004067 1365 TAD (SACCUM-1 004070 3011 DCA INDEX1 /WHERE TO PUT NUMBER 004071 3764 DCA I (SACCUM+2 004072 1767 TAD I (ERRC / 004073 4536 JMS I CONVD /CONVERT IT TO DECIMAL 004074 1365 TAD (SACCUM-1 004075 4537 JMS I CTYPE /TYPE THE NUMBER 004076 5304 JMP CLOS32 004077 1363 CLOS28, TAD (ENDC21 /OVER 100 ERRORS, GIVE 'MANY' 004100 4564 JMS I TYPE 004101 5304 JMP CLOS32 004102 1362 CLOS29, TAD (ENDC22 /'NO' 004103 4564 JMS I TYPE 004104 1361 CLOS32, TAD (ENDC23 /'ERRORS DETECTED' 004105 4564 JMS I TYPE 004106 5345 JMP GOMON /GO TO OS/8 /PUT INDIRECT INFO FOR CLOSE 004107 0000 CLOS30, 0 004110 3024 CLOS31, DCA T1 /PTR TO POOL 004111 1024 TAD T1 004112 3025 DCA T2 /SAVE PTR 004113 1360 TAD (ENDC24 004114 4574 JMS I WRPS /WRITE 004115 4552 JMS I PUTNAM /PUT NAME 004116 5707 JMP I CLOS30 004117 1025 TAD T2 004120 3024 DCA T1 /BACKUP 004121 1357 TAD (ENDC5 004122 4574 JMS I WRPS 004123 4552 JMS I PUTNAM /PUT NAME AGAIN 004124 5707 JMP I CLOS30 004125 1356 TAD (RETURN-1 004126 4576 JMS I WRSTR 004127 4555 JMS I RDPOOL /ANOTHER? 004130 5707 JMP I CLOS30 /NO - DONE 004131 7340 NONE 004132 1024 TAD T1 004133 5310 JMP CLOS31 /AGAIN
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 58 / THIS PAGE CONTAINS ERROR MESSAGES FOR COMPILER AND SOURCE ERRORS. 004134 7300 ERR1, ZERO 004135 1355 TAD (1-LINEL 004136 3045 DCA IMCNT /BUFFER COUNT 004137 1354 TAD (LINEIM-1 004140 3014 DCA LINEP /PTR TO BUFFER 004141 1353 TAD (ERLTL /LINE TOO LONG 004142 5752' JMP ERRH 004143 1351 ERR2, TAD (EROFF /OUTPUT FILE IS FULL 004144 4564 JMS I TYPE 004145 6201 GOMON, CDF 0 004146 5774 JMP I (7600 /GO TO OS/8 004151 3001 004152 4255 004153 2767 004154 2037 004155 7661 004156 2246 004157 2641 004160 2757 004161 2741 004162 2737 004163 2733 004164 2221 004165 2216 004166 7634 004167 2234 004170 0254 004171 2713 004172 2233 004173 4200 004174 7600 004175 2174 004176 2675 004177 3660 4200 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 59 004200 6211 ERR3, CDF 10 004201 1377 TAD (EROER /OUTPUT ERROR 004202 5255 JMP ERRH 004203 1376 ERR4, TAD (ERIVN /INVALID NUMBER 004204 5255 JMP ERRH 004205 1375 ERR5, TAD (ERIARG /ILLEGAL ARGUMENT TYPE 004206 5255 JMP ERRH 004207 1374 ERR6, TAD (ERPEOF /PREMATURE EOF 004210 5255 JMP ERRH 004211 1373 ERR7, TAD (ERNIR /RESTRICTED NAME 004212 5255 JMP ERRH 004213 1372 ERR9, TAD (ERLIV /LITERAL HAS ILLEGAL VALUE 004214 5255 JMP ERRH 004215 7300 ERR10, ZERO 004216 1371 TAD (ERIC /ILLEGAL CHARACTER 004217 5255 JMP ERRH 004220 1370 ERR11, TAD (ERLNI /LABEL MAY NOT BE INDIRECT 004221 5255 JMP ERRH 004222 1367 ERR12, TAD (ERMDL /MULT. DEF. LABEL 004223 5255 JMP ERRH 004224 1366 ERR14, TAD (ERID /ILLEGAL DELIMITER 004225 5255 JMP ERRH 004226 1365 ERR15, TAD (ERUC /UNRECOGNIZED COMMAND 004227 5255 JMP ERRH 004230 1364 ERR16, TAD (ERARTB /ARG IS TOO LARGE (OR SMALL) 004231 5255 JMP ERRH 004232 1363 ERR17, TAD (ERNAE /ARG MAY NOT APPEAR AFTER EQUAL 004233 5255 JMP ERRH 004234 1362 ERR18, TAD (ERMHA /OR MUST BE PRECEDED AND FOLLOWED 004235 5255 JMP ERRH / BY AN ARGUMENT 004236 1361 ERR19, TAD (EROOT /ONLY ONE TRANSFER IS LEGAL 004237 5255 JMP ERRH 004240 1360 ERR20, TAD (ERTFA /TOO FEW ARGS 004241 5255 JMP ERRH 004242 1357 ERR22, TAD (ERSTC /SAME TRANSFER CONDITION 004243 5255 JMP ERRH 004244 1356 ERR23, TAD (ERNLD /NO LABELS DEFINED FOR TRANSFER TABLE 004245 4564 JMS I TYPE 004246 5755' JMP MAIN 004247 6211 ERR24, CDF 10 004250 1354 TAD (ERCNT /CANT ENTER OUTPUT FILE 004251 4564 JMS I TYPE 004252 5753' JMP SNOBOL /GO AGAIN 004253 7300 ERR25, ZERO 004254 1352 TAD (ERAGVO /ARITH GEN VAR OVERFLOW
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 60 / THIS ROUTINE HANDLES TYPING THE SOURCE LINE IN ERROR AND THEN THE /ERROR MESSAGE. WHEN DONE, CONTROL IS RETURNED TO THE MAIN PARSING /LOOP. 004255 2751 ERRH, ISZ I (ERRC 004256 3025 DCA T2 /SAVE PTR TO MESSAGE 004257 4557 JMS I RETTRN /TYPE A RETURN 004260 1014 TAD LINEP 004261 3017 DCA INDEX7 004262 1014 TAD LINEP 004263 1350 TAD (1-LINEIM 004264 7640 SZA CLA /LINE FULL? 004265 3417 DCA I INDEX7 /NULL FOR LINE IMAGE 004266 1347 TAD (LINEIM-1 004267 4537 JMS I CTYPE /FIRST PART OF THE LINE 004270 1074 TAD TOCNT /CURRENT CHAR POS 004271 1121 TAD NC1 /MARK THE PREVIOUS 004272 7041 CMA IAC 004273 3024 DCA T1 /SAVE NEG COUNT 004274 1014 TAD LINEP /GET LINE BUFFER PTR 004275 3026 DCA T3 004276 1026 TAD T3 004277 1350 TAD (1-LINEIM 004300 7650 SNA CLA /FULL LINE ALREADY? 004301 5305 JMP ERRH1-1 004302 4541 JMS I ENDRD /FINISH READING THE LINE 004303 1026 TAD T3 004304 4537 JMS I CTYPE /AND TYPE IT 004305 4557 JMS I RETTRN /TERMINATE LINE 004306 1073 ERRH1, TAD OCNT 004307 1024 TAD T1 004310 7650 SNA CLA /RIGHT POSITION YET? 004311 5315 JMP ERRH2 /YES 004312 1114 TAD C240 004313 4547 JMS I PRINT /NO - TYPE A SPACE 004314 5306 JMP ERRH1 /AGAIN 004315 1346 ERRH2, TAD (ERPONT 004316 4564 JMS I TYPE /POINT AT THE ERROR 004317 1025 TAD T2 /ERROR MESSAGE PTR 004320 4564 JMS I TYPE /GIVE IT 004321 4557 JMS I RETTRN 004322 5554 JMP I PUTOUT /DO NEXT LINE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 61 /TYPE THE FIXED POOL STARTING AT C(AC)+1 004323 0000 CTTYPE, 0 004324 3017 DCA INDEX7 /PTR TO STRING 004325 1417 CTTYP1, TAD I INDEX7 /GET NEXT 004326 7450 SNA /ANY? 004327 5723 JMP I CTTYPE /NO, DONE 004330 4547 JMS I PRINT /YES - TYPE IT 004331 5325 JMP CTTYP1 /AGAIN / PUT NAME IN POOL POINTED TO BY T1 TO OUTPUT 004332 0000 PTNAME, 0 004333 4555 PTNAM1, JMS I RDPOOL /READ A CHAR 004334 5732 JMP I PTNAME /NONE - DONE 004335 7450 SNA /STRDEL? 004336 5341 JMP PTNAM2 004337 4551 JMS I PUTCHR /NO - PUT IT 004340 5333 JMP PTNAM1 /AGAIN 004341 2332 PTNAM2, ISZ PTNAME 004342 5732 JMP I PTNAME /DONE 004346 2765 004347 2037 004350 5741 004351 2234 004352 3513 004353 0200 004354 3473 004355 0466 004356 3443 004357 3423 004360 3407 004361 3365 004362 3327 004363 3301 004364 3251 004365 3233 004366 3217 004367 3177 004370 3155 004371 3141 004372 3121 004373 3073 004374 3061 004375 3041 004376 3027 004377 3015 4400 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 61-1 /SAVE ACCUM IN SACCUM 004400 0000 SVACUM, 0 004401 1135 TAD ACUMM 004402 3016 DCA INDEX6 004403 1377 TAD (SACCUM-1 004404 3017 DCA INDEX7 004405 1130 TAD NC10 /COUNT 004406 3030 DCA TX 004407 1416 SVAC1, TAD I INDEX6 004410 3417 DCA I INDEX7 /MOVE IT 004411 2030 ISZ TX 004412 5207 JMP SVAC1 004413 5600 JMP I SVACUM /DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 62 / PUT ACCUM ONTO OLINE WITH RETURN 004414 0000 PACCUR, 0 004415 1135 TAD ACUMM 004416 4577 JMS I WRSTRO /PUT ACCUM TO OLINE 004417 4556 JMS I RETORN /AND RETURN 004420 5614 JMP I PACCUR /AND DONE / PUT SOURCE LINE ONTO OUTPUT 004421 0000 PLINE, 0 004422 1376 TAD (LINEIM-1 /PTR TO LINE 004423 4576 JMS I WRSTR /WRITE IT 004424 1376 TAD (LINEIM-1 004425 3014 DCA LINEP 004426 1375 TAD (1-LINEL 004427 3045 DCA IMCNT 004430 5621 JMP I PLINE /DONE /READ UNTIL END OF LINE OR END OF FILE 004431 0000 ENDRED, 0 004432 1374 TAD (1-LINEIM 004433 1014 TAD LINEP 004434 7650 SNA CLA /ALREADY END OF LINE? 004435 5631 JMP I ENDRED 004436 4542 ENDRD1, JMS I GETCHR /GET NEXT 004437 5631 JMP I ENDRED /DONE - EOF 004440 1132 TAD NC212 004441 7640 SZA CLA /EOL? 004442 5236 JMP ENDRD1 /NO 004443 3070 DCA CHOLD 004444 5631 JMP I ENDRED /YES - DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 63 /WRITE CARRAIGE RETURN ON OLINE 004445 0000 RETRN, 0 004446 1373 TAD (RETURN-1 004447 4577 JMS I WRSTRO /WRITE 004450 5645 JMP I RETRN /DONE /CONVERT THE NUMBER IN THE AC TO A TWO DIGIT DECIMAL NUMBER (OUTPUT /PTR IN INDEX1) 004451 0000 CVD, 0 004452 3017 DCA INDEX7 /SAVE NUM 004453 3016 DCA INDEX6 /COUNT 004454 1017 TAD INDEX7 /GET IT 004455 1131 CVD1, TAD NC12 /SUBTRACT DEC 10 004456 7510 SPA /DONE? 004457 5262 JMP CVD2 /YES 004460 2016 ISZ INDEX6 /NO - BUMP COUNT 004461 5255 JMP CVD1 / 004462 1113 CVD2, TAD C12 /DIGIT BACK TO NORMAL 004463 3017 DCA INDEX7 004464 1016 TAD INDEX6 004465 7450 SNA /ANY TENS? 004466 5275 JMP CVD4 /NO 004467 1115 TAD C260 /YES - CAUSE ASCII 004470 3411 CVD3, DCA I INDEX1 /PUT 004471 1017 TAD INDEX7 /GET SINGLES PLACE 004472 1115 TAD C260 /ASCIIIZE 004473 3411 DCA I INDEX1 /PUT THAT 004474 5651 JMP I CVD /DONE 004475 1114 CVD4, TAD C240 /TENS A ZERO - USE A SPACE 004476 5270 JMP CVD3
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 64 /TYPE A PACKED STRING - PTR IN AC 004477 0000 TTYPE, 0 004500 4317 JMS EXTCUR /SETUP CURSOR FROM THE AC 004501 4543 TTYP1, JMS I GETCHS /GET NEXT 004502 5305 JMP TTYP2 / 004503 4547 JMS I PRINT /TYPE IT 004504 5301 JMP TTYP1 /AGAIN 004505 4332 TTYP2, JMS EXFCUR /RESTORE CURSOR 004506 5677 JMP I TTYPE /DONE /WRITE PACKED STRING TO OLINE, PTR IN (AC) 004507 0000 WRIPO, 0 004510 4317 JMS EXTCUR /SETUP CURSOR 004511 4543 WRIP1, JMS I GETCHS / 004512 5315 JMP WRIP2 004513 4567 JMS I WROLIN /PUT IT 004514 5311 JMP WRIP1 004515 4332 WRIP2, JMS EXFCUR /RESTORE CURSOR 004516 5707 JMP I WRIPO /DONE /SETUP AND EXCHANGE CURSOR FROM THE LOCATION CONTAINED IN THE AC 004517 0000 EXTCUR, 0 004520 3030 DCA TX /SAVE LOC 004521 1071 TAD CURSOR 004522 3041 DCA SCURS /SAVE CURSOR 004523 1072 TAD CURSOR+1 004524 3042 DCA SCURS+1 004525 1030 TAD TX /GET BACK ADDR 004526 3071 DCA CURSOR 004527 7301 ONE 004530 3072 DCA CURSOR+1 /CHAR POS 004531 5717 JMP I EXTCUR /DONE 004532 0000 EXFCUR, 0 004533 1041 TAD SCURS 004534 3071 DCA CURSOR /RESTORE CURSOR FROM STORAGE 004535 1042 TAD SCURS+1 004536 3072 DCA CURSOR+1 / 004537 5732 JMP I EXFCUR /AND DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 65 /WRITE LINEAR STRING ONTO OUTPUT FROM C(AC)+1 004540 0000 WRSTRG, 0 004541 3017 DCA INDEX7 /PTR TO STRING 004542 1417 WRSTR1, TAD I INDEX7 /GET NEXT 004543 7450 SNA /STRDEL? 004544 5740 JMP I WRSTRG /YES - DONE 004545 4551 JMS I PUTCHR /NO - PUT IT 004546 5342 JMP WRSTR1 /NEXT / WRITE CHAR TO OLINE FROM AC 004547 0000 WRITO, 0 004550 3030 DCA TX /SAVE CHAR 004551 1372 TAD (OLINE 004552 3047 DCA HPOOL /HEAD OF POOL 004553 1102 TAD COLINE /PTR TO END OF OLINE 004554 3040 DCA T1MAT 004555 1030 TAD TX /GET CHAR 004556 4571 JMS I WRPOOL /WRITE IT 004557 1040 TAD T1MAT 004560 3102 DCA COLINE /UPDATE OLINE 004561 5747 JMP I WRITO /DONE 004572 2227 004573 2246 004574 5741 004575 7661 004576 2037 004577 2216 4600 PAGE /WRITE A PACKED STRING TO POLINE. PTR IN (AC) 004600 0000 WRPPO, 0 004601 4777' JMS EXTCUR 004602 4543 WRPP1, JMS I GETCHS /GET THE NEXT CHARACTER 004603 5206 JMP WRPP2 004604 4570 JMS I WRPOLN /PUT ON POLINE 004605 5202 JMP WRPP1 004606 4776' WRPP2, JMS EXFCUR 004607 5600 JMP I WRPPO /DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 66 /WRITE LINEAR STRING TO OLINE POOL FROM C(AC)+1 004610 0000 WRSTO, 0 004611 3017 DCA INDEX7 /SAVE PTR 004612 1375 TAD (OLINE 004613 3047 DCA HPOOL /HEAD OF POOL 004614 1102 TAD COLINE 004615 3040 DCA T1MAT /SAVE PTR TO OLINE 004616 1417 WRSTO1, TAD I INDEX7 /GET NEXT 004617 7450 SNA /DONE? 004620 5223 JMP WRSTO2 /YES 004621 4571 JMS I WRPOOL /NO - WRITE THE CHAR 004622 5216 JMP WRSTO1 004623 1040 WRSTO2, TAD T1MAT /GET UPDATED PTR 004624 3102 DCA COLINE / 004625 5610 JMP I WRSTO /DONE / WRITE CHAR ON POLINE POOL FROM AC 004626 0000 WRITPO, 0 004627 3030 DCA TX /SAVE CHAR 004630 1374 TAD (POLINE 004631 3047 DCA HPOOL /HEAD OF POOL 004632 1103 TAD CPOLIN /PTR TO END OF POLINE 004633 3040 DCA T1MAT 004634 1030 TAD TX /GET THE CHARACTER 004635 4571 JMS I WRPOOL 004636 1040 TAD T1MAT 004637 3103 DCA CPOLIN /UPDATE PTR 004640 5626 JMP I WRITPO /DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 67 /WRITE LINEAR STRING ONTO POLINE POOL FROM C(AC)+1 004641 0000 WRSPO, 0 004642 3017 DCA INDEX7 /PTR 004643 1374 TAD (POLINE 004644 3047 DCA HPOOL /HEAD OF POOL 004645 1103 TAD CPOLIN 004646 3040 DCA T1MAT /PTR TO POLINE POOL 004647 1417 WRSPO1, TAD I INDEX7 /GET NEXT CHAR 004650 7450 SNA /DONE? 004651 5254 JMP WRSPO2 /YES 004652 4571 JMS I WRPOOL /NO, WRITE CHAR 004653 5247 JMP WRSPO1 /AND NEXT 004654 1040 WRSPO2, TAD T1MAT 004655 3103 DCA CPOLIN /UPDATE PTR 004656 5641 JMP I WRSPO /DONE / WRITE OCTAL NUMBER IN AC ONTO OLINE 004657 0000 WROCTO, 0 004660 3025 DCA T2 /SAVE NUMBER 004661 1124 TAD NC4 /COUNT 004662 3024 DCA T1 004663 1375 TAD (OLINE 004664 3047 DCA HPOOL /HEAD OF POOL 004665 1102 TAD COLINE /PTR TO OLINE 004666 3040 DCA T1MAT 004667 1025 WROC1, TAD T2 /GET NUM 004670 7006 RTL; RAL /SHIFT 004671 7004 004672 3025 DCA T2 004673 1025 TAD T2 004674 7004 RAL /GET NEXT DIGIT 004675 0111 AND C7 004676 1115 TAD C260 /FORM DIGIT 004677 4571 JMS I WRPOOL /WRITE IT 004700 2024 ISZ T1 /MORE? 004701 5267 JMP WROC1 /YES 004702 1040 TAD T1MAT 004703 3102 DCA COLINE /NO, UPDATE PTR 004704 5657 JMP I WROCTO /DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 68 / DELETE THE POOL POINTED TO BY (AC) 004705 0000 DPOOL, 0 004706 7450 SNA /ANYTHING TO DELETE? 004707 5705 JMP I DPOOL /NO - RETURN 004710 3030 DPOOL0, DCA TX /SAVE PTR 004711 7305 DPOOL1, TWO 004712 1430 TAD I TX 004713 7450 SNA /IS THIS A LINK WORD? 004714 5324 JMP DPOOL3 004715 7001 IAC 004716 7650 SNA CLA /NO - A POLEND? 004717 5335 JMP DPOOL4 /YES 004720 7340 NONE 004721 3430 DCA I TX /NO - FREE UP WORD 004722 2030 ISZ TX /POINT TO NEXT 004723 5311 JMP DPOOL1 /GO AGAIN 004724 7340 DPOOL3, NONE 004725 3430 DCA I TX /FREE LINK WD 004726 2030 ISZ TX 004727 1430 TAD I TX /GET LINK ADDR 004730 3031 DCA TXX 004731 7340 NONE 004732 3430 DCA I TX /FREE LINK ADDR WD 004733 1031 TAD TXX /GET NEXT ADDR 004734 5310 JMP DPOOL0 /AND GO 004735 7340 DPOOL4, NONE 004736 3430 DCA I TX /CLEAR POLEND 004737 5705 JMP I DPOOL
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 69 / CHECK FROM INTERRUPT FROM KEYBOARD 004740 0000 INTRPT, 0 004741 6031 KSF /ANYTHING TYPED? 004742 5740 JMP I INTRPT /NO 004743 6034 KRS /YES - GET IT 004744 1373 TAD (-203 004745 7640 SZA CLA /CONTROL C? 004746 5740 JMP I INTRPT /NO - IGNORE IT 004747 6032 KCC /REMOVE THE CHARACTER 004750 1372 TAD (CNTLC 004751 4564 JMS I TYPE /TYPE "^C" 004752 6201 CDF 0 004753 5771 JMP I (7600 /AND GO TO MONITOR / SHIFT ACCUM ONE CHARACTER LEFT 004754 0000 SHFTAC, 0 004755 1134 TAD ACUM 004756 3016 DCA INDEX6 /READ ACCUM PTR 004757 1135 TAD ACUMM 004760 3017 DCA INDEX7 /PUT PTR 004761 1130 TAD NC10 004762 3030 DCA TX /COUNT 004763 1416 SHFT1, TAD I INDEX6 /GET THE NEXT 004764 3417 DCA I INDEX7 004765 2030 ISZ TX /MORE? 004766 5363 JMP SHFT1 /YES 004767 5754 JMP I SHFTAC /NO - DONE 004771 7600 004772 2521 004773 7575 004774 2230 004775 2227 004776 4532 004777 4517 5000 PAGE / TYPE A RETURN ON THE TELETYPE 005000 0000 TYRET, 0 005001 1377 TAD (RETURN-1 005002 4537 JMS I CTYPE /TYPE A RETURN 005003 5600 JMP I TYRET
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 70 / ROUTINE TO SEARCH THE POOL POINTED TO BY T1 FOR THE STRING POINTED /TO BY (AC)+1. ASSUME (T2) WORDS TO BE IGNORED AFTER EACH STRDEL. SKIP /ON SUCCESS. 005004 0000 SERCH, 0 005005 3243 DCA SERCHA /SAVE POSITION OF ATOM TO SEARCH FOR 005006 1243 SERCH1, TAD SERCHA /POS OF ATOM 005007 3011 DCA INDEX1 /PTR FOR MATCH 005010 1024 TAD T1 005011 3040 DCA T1MAT /POS OF T1 WHEN MATCH SUCCEEDS 005012 4244 JMS MATCH /IS THIS A MATCH? 005013 5216 JMP SERCH2 /NO 005014 2204 ISZ SERCH /YES - SET FOR SKIP 005015 5604 JMP I SERCH /AND DO IT 005016 7325 SERCH2, THREE 005017 1424 TAD I T1 005020 7650 SNA CLA /POLEND? 005021 5604 JMP I SERCH /YES - FAIL 005022 7340 NONE 005023 1024 TAD T1 /GET CHAR POS 005024 3024 DCA T1 /BACKUP 005025 4555 SERCH3, JMS I RDPOOL /GET THE NEXT CHARACTER 005026 5604 JMP I SERCH /FAIL - END OF POOL 005027 7640 SZA CLA /STRDEL? 005030 5225 JMP SERCH3 005031 7340 NONE 005032 1025 TAD T2 005033 3030 DCA TX /NEG COUNT OF INFO WORDS 005034 2030 SERCH4, ISZ TX 005035 5237 JMP .+2 005036 5206 JMP SERCH1 /DONE SKIPPING THEM 005037 4555 JMS I RDPOOL 005040 5604 JMP I SERCH /FAIL ON POLEND 005041 7300 ZERO 005042 5234 JMP SERCH4 /GO FOR MORE 005043 0000 SERCHA, 0 /ARGUMENT ADDRESS
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 71 / THIS ROUTINE DETERMINES WHETHER THE STRING (PTR IN INDEX1) /MATCHES A SUBSTRING IN THE POOL POINTED TO BY T1. SKIP ON /SUCCESS. 005044 0000 MATCH, 0 005045 4555 JMS I RDPOOL /GET NEXT CHAR FROM THE POOL 005046 5644 JMP I MATCH /END OF POOL 005047 7450 SNA /STRDEL? 005050 5262 JMP MAT1 /YES 005051 3030 DCA TX /NO, SAVE CHAR 005052 1411 TAD I INDEX1 /GET MATCH CHAR 005053 7450 SNA /STRDEL? 005054 5644 JMP I MATCH /YES - FAIL 005055 7041 CMA IAC 005056 1030 TAD TX / 005057 7640 SZA CLA /MATCH? 005060 5644 JMP I MATCH /NO 005061 5245 JMP MATCH+1 /YES, SO FAR 005062 1411 MAT1, TAD I INDEX1 /GET CHAR 005063 7650 SNA CLA /STRDEL? 005064 2244 ISZ MATCH /YES - SKIP 005065 5644 JMP I MATCH /NO - FAIL
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 72 / WRITE AN XASC CALL ON PRE-OLINE 005066 0000 CALASC, 0 005067 2075 ISZ GENLIT /BUMP GEN LIT COUNT 005070 1075 TAD GENLIT 005071 1120 TAD SARG /FORM SUBSTITUTE CODE 005072 3776 DCA I (DCAGV /SAVE IT 005073 1375 TAD (LITJMS /ASC CALL 005074 4572 JMS I WRPPSO /PUT IT 005075 1374 TAD (XASC 005076 4572 JMS I WRPPSO 005077 1135 TAD ACUMM 005100 4575 JMS I WRSTPO /AND ACCUM 005101 1373 TAD (RETURN 005102 4572 JMS I WRPPSO 005103 2034 ISZ CLEN 005104 2034 ISZ CLEN /BUMP INST LENGTH COUNT 005105 5666 JMP I CALASC /DONE / WRITE OCTAL NUMBER IN AC ONTO OUTPUT 005106 0000 PUTOCT, 0 005107 3327 DCA P2 005110 1124 TAD NC4 005111 3326 DCA P1 /COUNT 005112 1327 PUTO1, TAD P2 /GET NUMBER 005113 7106 CLL RTL; RAL /SHIFT 005114 7004 005115 3327 DCA P2 005116 1327 TAD P2 /SAVE 005117 7004 RAL 005120 0111 AND C7 005121 1115 TAD C260 /FORM A DIGIT 005122 4551 JMS I PUTCHR /WRITE IT 005123 2326 ISZ P1 / 005124 5312 JMP PUTO1 /MORE 005125 5706 JMP I PUTOCT /DONE 005126 0000 P1, 0 /LOCALS FOR PUTOCT 005127 0000 P2, 0
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 73 / READ A CHARACTER FROM THE POOL POINTED TO BY T1, SKIP ON /SUCCESS. 005130 0000 RDPOL, 0 005131 7325 RDP0, THREE 005132 1424 TAD I T1 /GET CHAR 005133 7450 SNA /POLEND? 005134 5730 JMP I RDPOL /YES - FAIL 005135 2024 ISZ T1 /UPDATE THE POINTER 005136 1121 TAD NC1 005137 7450 SNA /LINK (-2) ? 005140 5344 JMP RDP1 /YES 005141 1122 TAD NC2 /NORMALIZE 005142 2330 ISZ RDPOL /NO - SKIP RETURN 005143 5730 JMP I RDPOL /DONE 005144 1424 RDP1, TAD I T1 /GET THE ADDR 005145 3024 DCA T1 /UPDATE PTR 005146 5331 JMP RDP0 /GO AGAIN
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 74 / WRITE A CHARACTER INTO THE POOL POINTED TO BY T1MAT. THE CHAR IS /SUPPLIED IN THE AC. REQUIRES WT1. 005147 0000 WRPOL, 0 005150 3366 DCA WT1 /SAVE THE CHARACTER 005151 1040 TAD T1MAT /GET THE POOL POINTER 005152 7450 SNA /ASSIGNED AN ADDRESS? 005153 4772' JMS WRPAA /NO - GET ONE 005154 4771' JMS WRPCA /AND CHECK IT 005155 3040 DCA T1MAT 005156 7301 ONE 005157 1366 TAD WT1 /GET THE CHAR 005160 7450 SNA 005161 5770' JMP WRP1 /WRITE END CODE IF NULL 005162 1121 TAD NC1 005163 3440 WRP0, DCA I T1MAT /WRITE THE CHARACTER 005164 2040 ISZ T1MAT 005165 5747 JMP I WRPOL /AND DONE 005166 0000 WT1, 0 /TEMPORARY FOR WRPOL 005170 5200 005171 5301 005172 5207 005173 2247 005174 2377 005175 2371 005176 2260 005177 2246 5200 PAGE 005200 1077 WRP1, TAD OVERF 005201 7650 SNA CLA /OVERWRITING POOL? 005202 5205 JMP WRP2 005203 1040 TAD T1MAT 005204 4540 JMS I DELPOL /YES - DELETE THE OLD END OF THE POOL 005205 7346 WRP2, NTHREE 005206 5777' JMP WRP0 /PUT POLEND AND DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 75 /FIND A VALID ADDRESS FOR A POOL EXTENSION. USES WT2, WT3 AND WT5. 005207 0000 WRPAA, 0 005210 1776 TAD I (BASE /BASE OF DYNAMIC STORAGE 005211 3344 DCA WT2 005212 1125 WRPA0, TAD NC5 005213 3347 DCA WT5 /NUMBER OF FREE SPACES NECESSARY 005214 7301 WRPA1, ONE 005215 3345 DCA WT3 /SAVE MATCH WORD (FREE) 005216 1344 WRPA2, TAD WT2 /SEARCH FOR A FREE AREA 005217 7041 CMA IAC 005220 1032 TAD TOP 005221 7650 SNA CLA /HAVE WE EXHAUSTED USED SPACE? 005222 5246 JMP WRPA6 005223 1345 TAD WT3 /NO - GET THE SEARCH WORD 005224 1744 TAD I WT2 /GET THE WORD FROM STORAGE 005225 2344 ISZ WT2 /POINT TO NEXT WORD 005226 7450 SNA /MATCH? 005227 5235 JMP WRPA3 005230 7001 IAC /NO - CHECK FOR POLEND (CANNOT BE 005231 7650 SNA CLA / LINK IF WT2 IS FREE) 005232 5212 JMP WRPA0 005233 7305 TWO /NO - SET THE MATCH TO LINK (MATCHES POLEND TOO) 005234 5215 JMP WRPA1+1 /AND GO AGAIN /FOUND THE MATCHED WORD - IF POLEND, THEN SET TO FREE AND LOOK FOR ENOUGH /FREE WORDS; IF FREE, INCREMENT WT5 AND CHECK THE NEXT WORD UNLESS WT5 /HAS GONE TO ZERO IN WHICH CASE, WE FOUND A FREE ADDRESS. 005235 7344 WRPA3, NTWO 005236 1345 TAD WT3 /GET THE MATCH WORD 005237 7650 SNA CLA /LINK? 005240 5244 JMP WRPA7 /YES - SKIP POINTER WORD 005241 2347 ISZ WT5 /NO - BUMP FREE COUNT 005242 5216 JMP WRPA2 /AND TRY FOR MORE 005243 5247 JMP WRPA4 005244 2344 WRPA7, ISZ WT2 /POINT PAST THE LINK ADDRESS WORD 005245 5212 JMP WRPA0 /AND LOOK FOR FREE SPACE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 76 005246 4263 WRPA6, JMS WRPA10 /CLEAR AREA AT TOP 005247 1347 WRPA4, TAD WT5 /POINT TO THE FIRST FREE WORD 005250 1110 TAD C5 005251 7041 CMA IAC 005252 1344 TAD WT2 /CURRENT POINTER 005253 3030 DCA TX 005254 1040 TAD T1MAT /GET POINTER TO PREVIOUS WORD 005255 7640 SZA CLA 005256 5261 JMP WRPA5 005257 1030 TAD TX 005260 3447 DCA I HPOOL /UNSPECIFIED - UPDATE POOL HEADER 005261 1030 WRPA5, TAD TX /GET BACK ADDRESS 005262 5607 JMP I WRPAA /DONE 005263 0000 WRPA10, 0 /THIS CODE FREES NEW AREA AT THE TOP OF STORAGE 005264 7340 NONE 005265 1032 TAD TOP 005266 3010 DCA INDEX0 005267 1130 TAD NC10 005270 3030 DCA TX 005271 7340 NONE 005272 3410 DCA I INDEX0 /CLEAR THE NEW FREE SPACE 005273 2030 ISZ TX 005274 5271 JMP .-3 005275 1032 TAD TOP 005276 1112 TAD C10 005277 3032 DCA TOP /AND UPDATE TOP 005300 5663 JMP I WRPA10
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 77 / CHECK THIS ADDRESS (IN AC) FOR WRITING A CHARACTER HERE (THERE MUST /BE AT LEAST TWO FREE WORDS FOLLOWING IT). IF THERE IS NO ROOM, WRITE /A LINK CODE AND FIND A GOOD ADDRESS. REQUIRES WT4. 005301 0000 WRPCA, 0 005302 3346 DCA WT4 /SAVE 005303 7305 TWO 005304 1346 TAD WT4 005305 7041 CMA IAC 005306 1032 TAD TOP /OVER THE TOP? 005307 7750 SPA SNA CLA 005310 5341 JMP WRPCA3 /YES 005311 1077 TAD OVERF 005312 7640 SZA CLA /OVERWRITING POOL? 005313 5332 JMP WRPCA2 /YES 005314 7305 TWO 005315 1346 TAD WT4 /GET IT AGAIN 005316 3030 DCA TX 005317 7301 ONE 005320 1430 TAD I TX 005321 7650 SNA CLA /USED? 005322 5342 JMP WRPCA3+1 /NO 005323 7344 NTWO /LINK CODE 005324 3746 DCA I WT4 005325 2346 ISZ WT4 005326 4207 JMS WRPAA /GET ANOTHER ADDR 005327 3746 DCA I WT4 /PUT IT 005330 1746 TAD I WT4 /GET IT BACK 005331 5701 JMP I WRPCA /AND DONE 005332 7305 WRPCA2, TWO 005333 1746 TAD I WT4 /GET CURRENT LOCATION 005334 7640 SZA CLA /LINK CODE? 005335 5342 JMP WRPCA3+1 /NO, USE ADDRESS 005336 2346 ISZ WT4 /YES - POINT TO LINK ADDR 005337 1746 TAD I WT4 /GET THE LINK ADDRESS 005340 5302 JMP WRPCA+1 /AND CHECK IT 005341 4263 WRPCA3, JMS WRPA10 /GET FREE SPACE AT THE TOP OF STORAGE 005342 1346 TAD WT4 /GET BACK THE ORIGINAL 005343 5701 JMP I WRPCA /AND DONE 005344 0000 WT2, 0 /TEMPORARIES FOR WRPAA AND WRPCA 005345 0000 WT3, 0 005346 0000 WT4, 0 005347 0000 WT5, 0
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 78 /WRITE PACKED STRING TO OUTPUT 005350 0000 WPSTR, 0 005351 4775' JMS EXTCUR /EXCHANGE CURSOR 005352 4543 WPSTR1, JMS I GETCHS /GET NEXT 005353 5356 JMP WPSTR2 005354 4551 JMS I PUTCHR /PUT IT 005355 5352 JMP WPSTR1 005356 4774' WPSTR2, JMS EXFCUR /RESTORE CURSOR 005357 5750 JMP I WPSTR 005374 4532 005375 4517 005376 2171 005377 5163 5400 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 79 /READ THE NEXT CHARACTER FROM THE INPUT BUFFER. SKIP ON SUCCESS. /THE POINTER TO THE INPUT BUFFER IS IN CURSOR AND CURSOR + 1. THE /NEXT CHARACTER'S LOCATION IS IN CURSOR AND THE CHARACTER NUMBER (1, /2 OR 3) IS IN CURSOR+1. 005400 0000 RDCHR, 0 005401 1070 TAD CHOLD /GET THE TEMPORARY CHARACTER HOLD 005402 7450 SNA 005403 5211 JMP RDCH 005404 3030 DCA TX /SAVE IT 005405 2200 ISZ RDCHR /IF SPECIFIED, SKIP 005406 3070 DCA CHOLD /DELETE IT 005407 1030 TAD TX /BUT USE IT 005410 5600 JMP I RDCHR 005411 7340 RDCH, NONE 005412 5216 JMP RDCHR0 /SKIP RDCHRS ENTRY 005413 0000 RDCHRS, 0 /ENTER HERE TO NOT MODIFY CHARACTER 005414 1213 TAD RDCHRS / 005415 3200 DCA RDCHR /SETUP EXIT ROUTE 005416 3067 RDCHR0, DCA STRF /SET FLAG 005417 1071 TAD CURSOR 005420 1377 TAD (NTOPIB /NEG TOP OF INPUT BUFFER 005421 7650 SNA CLA /BUFFER EXHAUSTED? 005422 5322 JMP RDCH5 005423 7346 NTHREE 005424 1072 TAD CURSOR+1 /GET CHAR POS 005425 7640 SZA CLA /THIRD? 005426 5311 JMP RDCH4 /NO 005427 7344 NTWO 005430 1071 TAD CURSOR /YES - POINT AT FIRST WD 005431 3017 DCA INDEX7 005432 1417 TAD I INDEX7 / 005433 0117 AND C7400 /SAVE TOP 4 BITS 005434 7112 CLL RTR; RTR /SHIFT 005435 7012 005436 3030 DCA TX 005437 1417 TAD I INDEX7 005440 0117 AND C7400 /BOTTOM 4 BITS 005441 7106 CLL RTL; RTL; RAL /SHIFT THOSE INTO POSITION 005442 7006 005443 7004 005444 1030 TAD TX 005445 3030 DCA TX /SAVE CHAR 005446 2071 ISZ CURSOR /BUMP POS PTR 005447 7301 ONE 005450 3072 DCA CURSOR+1 /FIRST CHAR AGAIN
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 80 005451 2067 RDCH1, ISZ STRF /DON'T MODIFY FLAG? 005452 5305 JMP RDCH3 /YES - DON'T MODIFY CHAR 005453 1030 TAD TX /GET THE CHAR 005454 7450 SNA /NULL? 005455 5211 JMP RDCH /YES - TRY FOR NEXT CHARACTER 005456 1132 TAD NC212 /CHECK FOR EOL 005457 7510 SPA / 005460 5277 JMP RDCH2 /NO 005461 1123 TAD NC3 005462 7510 SPA /LF, VT, FF? 005463 5211 JMP RDCH /YES - IGNORE THEM 005464 7450 SNA /RETURN? 005465 5346 JMP RDCH7 /YES - EOL 005466 1376 TAD (-13 005467 7450 SNA /CONTROL X? 005470 5362 JMP RDCH9 /YES 005471 1122 TAD NC2 005472 7450 SNA /CONTROL Z? 005473 5362 JMP RDCH9 /YES 005474 1375 TAD (-145 005475 7650 SNA CLA /RUBOUT? 005476 5211 JMP RDCH /YES - IGNORE IT 005477 7300 RDCH2, ZERO 005500 1030 TAD TX /GET CHARACTER 005501 2045 ISZ IMCNT /LINE IMAGE COUNT 005502 7410 SKP 005503 5774' JMP ERR1 /OVERFLOW 005504 3414 DCA I LINEP /PUT CHAR 005505 1030 RDCH3, TAD TX /AND GET IT BACK 005506 7440 SZA /NO SKIP IF NULL 005507 2200 ISZ RDCHR /SKIP RETURN 005510 5600 JMP I RDCHR /AND DONE 005511 1471 RDCH4, TAD I CURSOR /GET 1ST OR 2ND CHAR 005512 0116 AND C377 005513 3030 DCA TX /SAVE IT 005514 2072 ISZ CURSOR+1 /UPDATE PTR 005515 7344 NTWO 005516 1072 TAD CURSOR+1 /GET CHAR POS 005517 7650 SNA CLA /NOW SECOND? 005520 2071 ISZ CURSOR /YES - BUMP WD PTR 005521 5251 JMP RDCH1 /AND FINISH
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 81 005522 1773 RDCH5, TAD I (IBCNT 005523 2773 ISZ I (IBCNT /TEST IF ANY MORE PAGES LEFT IN THE FILE 005524 7740 SMA SZA CLA 005525 5362 JMP RDCH9 /NO - FAIL 005526 1145 TAD LUSR /(IBUF) PTR TO BUFFER 005527 3071 DCA CURSOR /UPDATE PTR 005530 1772 TAD I (INBLK / 005531 3337 DCA IBLK /SETUP WHICH BLOCK 005532 2772 ISZ I (INBLK /UPD PTR 005533 6201 CDF 0 005534 4453 JMS I IHAN /CALL THE HANDLER 005535 0210 0210 /READ 1 BLOCK TO FIELD 1 005536 0200 IBUF /LOCATION OF BUFFER 005537 0000 IBLK, 0 /WHICH BLOCK TO READ 005540 5357 JMP RDCH8 /DONE - EOF 005541 6211 CDF 10 005542 1067 RDCH6, TAD STRF 005543 7640 SZA CLA /WHICH ENTRY POINT? 005544 5211 JMP RDCH /RDCHR 005545 5216 JMP RDCHR0 /RDCHRS 005546 7300 RDCH7, ZERO 005547 1371 TAD (212 /EOL - FORCE LF 005550 3030 DCA TX 005551 3414 DCA I LINEP /NULL THE END OF THE LINE 005552 1370 TAD (1-LINEL 005553 3045 DCA IMCNT /FINISH LINE IMAGE 005554 1367 TAD (LINEIM-1 005555 3014 DCA LINEP /UPD PTR 005556 5305 JMP RDCH3 /AND DONE 005557 6211 RDCH8, CDF 10 005560 7700 SMA CLA /FATAL ERROR RETURN? 005561 5342 JMP RDCH6 /NO - ASSUME WE GOT A PARTIAL BLOCK 005562 1366 RDCH9, TAD (-NTOPIB 005563 3071 DCA CURSOR /CLEAR THE BUFFER POINTER 005564 5600 JMP I RDCHR /DONE 005566 0600 005567 2037 005570 7661 005571 0212 005572 2172 005573 2173 005574 4134 005575 7633 005576 7765 005577 7200 5600 PAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 82 / WRITE THE CHARACTER IN THE AC TO THE OUTPUT BUFFER. 005600 0000 WRCHR, 0 005601 3030 DCA TX /SAVE CHAR 005602 1056 TAD OFLAG /DOING OUTPUT? 005603 7650 SNA CLA 005604 5600 JMP I WRCHR /NO - FLUSH 005605 1377 TAD (NTOPOB 005606 1043 TAD OCURSR / 005607 7640 SZA CLA /BUFFER FULL? 005610 5233 JMP WRCH1 /NO 005611 1376 TAD (OBUF 005612 3043 DCA OCURSR /YES - FIX PTR 005613 7301 ONE 005614 3044 DCA OCURSR+1 005615 1775 TAD I (OUTBLK /WHICH OUTPUT BLOCK TO WRITE 005616 3225 DCA OBLK 005617 2775 ISZ I (OUTBLK /UPDATE 005620 2775 ISZ I (OUTBLK 005621 6201 CDF 0 005622 4454 JMS I OHAN /CALL THE HANDLER 005623 4410 4410 /WRITE 4 PAGES FROM FIELD 1 005624 0600 OBUF /OUTPUT BUFFER 005625 0000 OBLK, 0 /WHICH BLOCK 005626 5774' JMP ERR3 /OUTPUT ERROR 005627 6211 CDF 10 005630 2773 ISZ I (OBCNT /OUTPUT FILE FULL? 005631 5233 JMP .+2 005632 5772' JMP ERR2 /YES - ERROR
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 83 005633 7346 WRCH1, NTHREE 005634 1044 TAD OCURSR+1 005635 7640 SZA CLA /THIRD CHARACTER? 005636 5263 JMP WRCH3 /NO 005637 7340 NONE 005640 1043 TAD OCURSR / 005641 3031 DCA TXX /TOP BITS GO INTO THE PREV WD 005642 1030 TAD TX /GET THE CHAR 005643 7006 RTL; RTL /SHIFT INTO PLACE 005644 7006 005645 0117 AND C7400 /TOP 4 BITS 005646 1431 TAD I TXX /ADD IN OTHER CHAR 005647 3431 DCA I TXX /SAVE 005650 1030 TAD TX /GET THE CHAR AGAIN 005651 7012 RTR; RTR; RAR /SHIFT AGAIN 005652 7012 005653 7010 005654 0117 AND C7400 /SAVE BOTTOM 4 BITS 005655 1443 TAD I OCURSR /ADD IN CHAR 005656 3443 DCA I OCURSR /AND SAVE 005657 7301 ONE /1ST CHAR AGAIN 005660 3044 DCA OCURSR+1 / 005661 2043 ISZ OCURSR /UPD PTR 005662 5600 JMP I WRCHR /DONE 005663 1030 WRCH3, TAD TX /GET CHAR 005664 0116 AND C377 /TRUNCATE 005665 3443 DCA I OCURSR /SAVE IT 005666 2044 ISZ OCURSR+1 /UPD CHAR CNT 005667 7344 NTWO 005670 1044 TAD OCURSR+1 /GET WHICH CHAR 005671 7650 SNA CLA /FIRST? 005672 2043 ISZ OCURSR /YES - UPD PTR 005673 5600 JMP I WRCHR /NO - DONE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 84 /TELETYPE OUTPUT ROUTINE 005674 0000 PRN, 0 005675 3347 DCA TPRN /SAVE CHAR 005676 4544 JMS I INTST /CHECK FOR INTERRUPT 005677 1073 TAD OCNT 005700 7650 SNA CLA /ANY CHARACTERS ON LINE YET? 005701 5323 JMP PRN2 005702 1347 PRN0, TAD TPRN 005703 1371 TAD (-215 / 005704 7450 SNA /RETURN? 005705 3073 DCA OCNT /YES - ZERO COUNT 005706 1370 TAD (4 005707 7650 SNA CLA /TAB? 005710 5314 JMP PRN1 /YES 005711 1347 TAD TPRN 005712 4332 JMS PRX /NO - TYPE THE CHAR 005713 5674 JMP I PRN /DONE 005714 1114 PRN1, TAD C240 /TYPE A SPACE 005715 4332 JMS PRX 005716 1073 TAD OCNT /UNTIL OCNT 005717 0111 AND C7 005720 7640 SZA CLA /GOES TO MOD 8 005721 5314 JMP PRN1 /NO 005722 5674 JMP I PRN /YES - THEN DONE 005723 1347 PRN2, TAD TPRN 005724 1132 TAD NC212 005725 7650 SNA CLA /ONLY A LINE FEED? 005726 5302 JMP PRN0 /YES 005727 1367 TAD ("/ 005730 4551 JMS I PUTCHR /COMMENT OUT LINE IN OUTPUT 005731 5302 JMP PRN0 005732 0000 PRX, 0 005733 6046 TLS /TYPE THE CHARACTER 005734 1366 TAD (-232 /-^Z 005735 7540 SMA SZA /PRINTING CHAR? 005736 2073 ISZ OCNT /YES - BUMP POS 005737 1365 TAD (232 005740 4551 JMS I PUTCHR /WRITE IT IN THE OUTPUT FILE 005741 1073 TAD OCNT 005742 7440 SZA 005743 3074 DCA TOCNT /SAVE TOCNT AS TOP OCNT 005744 6041 TSF 005745 5344 JMP .-1 005746 5732 JMP I PRX /AND DONE 005747 0000 TPRN, 0 /TEMPORARY CHARACTER HOLD 005765 0232 005766 7546 005767 0257
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 84-1 005770 0004 005771 7563 005772 4143 005773 2175 005774 4200 005775 2174 005776 0600 005777 6200 0001 FIELD 1 1600 *1600
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 85 / COMMAND POOL 011600 0320 CMDTAB, "P;"A;"L; STRDEL; CPAL 011601 0301 011602 0314 011603 0000 011604 0100 011605 0323 "S;"N;"O;"B;"O;"L; STRDEL; CSNO 011606 0316 011607 0317 011610 0302 011611 0317 011612 0314 011613 0000 011614 0200 011615 0314 "L;"O;"O;"K;"U;"P; STRDEL; VARORLIT 011616 0317 011617 0317 011620 0313 011621 0325 011622 0320 011623 0000 011624 0001 011625 0305 "E;"N;"T;"E;"R; STRDEL; VARORLIT 011626 0316 011627 0324 011630 0305 011631 0322 011632 0000 011633 0001 011634 0311 "I;"C;"L;"O;"S;"E; STRDEL; NOARG 011635 0303 011636 0314 011637 0317 011640 0323 011641 0305 011642 0000 011643 0002 011644 0317 "O;"C;"L;"O;"S;"E; STRDEL; NOARG 011645 0303 011646 0314 011647 0317 011650 0323 011651 0305 011652 0000 011653 0002 011654 0320 "P;"U;"S;"H;"J; STRDEL; LABEL 011655 0325 011656 0323 011657 0310 011660 0312 011661 0000 011662 0004 011663 0320 "P;"O;"P;"J; STRDEL; NOARG
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 85-1 011664 0317 011665 0320 011666 0312 011667 0000 011670 0002 011671 0305 "E;"X;"I;"T; STRDEL; CEXIT 011672 0330 011673 0311 011674 0324 011675 0000 011676 0400 011677 0305 "E;"N;"D; STRDEL; CEND 011700 0316 011701 0304 011702 0000 011703 1000 011704 0320 "P;"U;"S;"H; STRDEL; VAR 011705 0325 011706 0323 011707 0310 011710 0000 011711 0020 011712 0320 "P;"O;"P; STRDEL; VAR 011713 0317 011714 0320 011715 0000 011716 0020 011717 7775 POLEND /END OF COMMAND POOL
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 86 / SPECIAL FUNCTION NAMES POOL 011720 0317 SPFNPL, "O;"U;"T;"P;"U;"T;STRDEL 011721 0325 011722 0324 011723 0320 011724 0325 011725 0324 011726 0000 011727 0311 "I;"N;"P;"U;"T;STRDEL 011730 0316 011731 0320 011732 0325 011733 0324 011734 0000 011735 0317 "O;"U;"T;"H;"O;"L;STRDEL 011736 0325 011737 0324 011740 0310 011741 0317 011742 0314 011743 0000 011744 0322 "R;"E;"A;"D;STRDEL 011745 0305 011746 0301 011747 0304 011750 0000 011751 0327 "W;"R;"I;"T;"E;STRDEL 011752 0322 011753 0311 011754 0324 011755 0305 011756 0000 011757 0327 "W;"R;"I;"T;"E;"H;STRDEL 011760 0322 011761 0311 011762 0324 011763 0305 011764 0310 011765 0000 011766 0320 "P;"O;"S;"R;STRDEL 011767 0317 011770 0323 011771 0322 011772 0000 011773 7775 POLEND
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 87 / DELIMITER TABLE 011774 7567 DELST, -211; SPACE 011775 0020 011776 7566 -212; EOL 011777 0010 012000 7563 -215; SPACE 012001 0020 012002 7540 -240; SPACE 012003 0020 012004 7537 -241; OR 012005 0016 012006 7530 -250; LPAREN 012007 0006 012010 7527 -251; RPAREN 012011 0004 012012 7526 -252; STAR 012013 0003 012014 7525 -253; ADD 012015 0001 012016 7524 -254; COMMA 012017 0022 012020 7521 -257; SLASH 012021 0002 012022 7506 -272; COLON 012023 0021 012024 7505 -273; SEMI 012025 0017 012026 7503 -275; EQUAL 012027 0015 012030 7504 -274; LESS 012031 0014 012032 7442 -336; UPARR 012033 0023 012034 7441 -337; BACK 012035 0012 012036 7523 -255; SUB /END OF TABLE (NOTE SUB = 0) 012037 0000
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 88 / VARIOUS BULK STORAGE 0120 LINEL=120 /LENGTH OF LINE INPUT BUFFER (80 CHARACTERS) 012040 0000 LINEIM, ZBLOCK 116 /LINE INPUT IMAGE 012156 0215 215;212;0 /FOR OVERFLOW CONDITIONS 012157 0212 012160 0000 012161 0000 ACCUM, ZBLOCK 10 /7 CHARACTER IDENTIFIER ACCUMULATION (SCAN) 012171 0000 BASE, 0 /BASE OF POOL STORAGE 012172 0000 INBLK, 0 /WHICH INPUT BLOCK 012173 0000 IBCNT, 0 /NEG LENGTH OF INPUT FILE (BLOCKS) 012174 0000 OUTBLK, 0 /WHICH OUTPUT BLOCK 012175 0000 OBCNT, 0 /NEG LENGTH OF OUTPUT FILE 012176 0000 CDEL, 0 /HOLD DELIMITER CHARACTER 2177 F1CLR=. /IMPURE AREA - ANY LOCATIONS BETWEEN HERE /AND F1CLRL ARE AUTOMATICALLY CLEARED AT /INITIALIZATION 012177 0000 LITS, ZBLOCK 10 /LITERAL POOL HEADERS 012207 0000 ARGENV, ZBLOCK 10 /ARITHMETIC GENERATED VARIABLES STORAGE 012217 0000 SACCUM, ZBLOCK 10 /SAVE ACCUM BLOCK 012227 0000 OLINE, 0 /HEADER FOR OLINE POOL 012230 0000 POLINE, 0 /HEADER FOR POLINE POOL 012231 0000 LABPOL, 0 /HEADER FOR LABEL POOL 012232 0000 VARPOL, 0 /HEADER FOR VARIABLE POOL 012233 0000 ULBPOL, 0 /HEADER FOR UNDEFINED LABELS POOL 012234 0000 ERRC, 0 /COMPILATION ERROR COUNT 012235 0000 MODE, 0 /COMPILER MODE (0: SNOBOL, 1: PAL) 0037 F1CLRL=.-F1CLR /HERE ENDS THE AUTOMATIC CLEAR AREA FOR FIELD 1
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 89 / MODIFIABLE LITERALS 012236 0000 MONTH, 0;0;"/ 012237 0000 012240 0257 012241 0000 DAY, 0;0;"/;"7 012242 0000 012243 0257 012244 0267 012245 0000 YEAR, 0;0 012246 0000 012247 0215 RETURN, 215;212;0 012250 0212 012251 0000 012252 0215 DCAGVC, 215;212;"D;"C;"A;" 012253 0212 012254 0304 012255 0303 012256 0301 012257 0240 012260 0000 DCAGV, 0;215;212;0 012261 0215 012262 0212 012263 0000 012264 0324 TADCON, "T;"A;"D;" 012265 0301 012266 0304 012267 0240 012270 0000 TADGV, 0;215;212;0 012271 0215 012272 0212 012273 0000 012274 0324 TESTSF, "T;"A;"D;" ;"X;"S;"U;"C;"C;"E;"S;215;212;"S 012275 0301 012276 0304 012277 0240 012300 0330 012301 0323 012302 0325 012303 0303 012304 0303 012305 0305 012306 0323 012307 0215 012310 0212 012311 0323 012312 0000 TESTQ, 0;"A;" ;"C;"L;"A;215;212;0 012313 0301 012314 0240 012315 0303 012316 0314 012317 0301 012320 0215 012321 0212 012322 0000
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 90 / TEXT FOR WRITE PACKED STRING ROUTINES INITAL, /SNOBOL 8.2> 012323 6257 6257;7323;6317;7702;5714;4240;4256;4662;0;0 012324 7323 012325 6317 012326 7702 012327 5714 012330 4240 012331 4256 012332 4662 012333 0000 012334 0000 INITA2, /;;JMS I XINIT;XIND;X0;XVLEN;XTOP; 012335 4215 4215;5212;6712;1715;5240;0311;6330;7311;4311;6724;6212;4730;4316;6704 012336 5212 012337 6712 012340 1715 012341 5240 012342 0311 012343 6330 012344 7311 012345 4311 012346 6724 012347 6212 012350 4730 012351 4316 012352 6704 012353 5612 5612;330;6615;4212;6326;2714;4316;5215;6330;7724;4320;5215;212;0 012354 0330 012355 6615 012356 4212 012357 6326 012360 2714 012361 4316 012362 5215 012363 6330 012364 7724 012365 4320 012366 5215 012367 0212 012370 0000 LITJMS, /JMS I X 012371 6712 6712;1715;5240;311;330;0 012372 1715 012373 5240 012374 0311 012375 0330 012376 0000 XASC, /ASC; 012377 6301 6301;1723;215;212 012400 1723 012401 0215 012402 0212
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 90-1 XINT, /INT; 012403 6711 6711;2316;215;212 012404 2316 012405 0215 012406 0212 NCMDF, /-4000; 012407 5655 5655;264;4260;6660;212;0 012410 0264 012411 4260 012412 6660 012413 0212 012414 0000 FILEND, /0; 012415 0260 260;273 012416 0273 EXITCL, /JMP I (7600; 012417 6712 6712;315;5240;311;5650;3267;4260;6660;212;0 012420 0315 012421 5240 012422 0311 012423 5650 012424 3267 012425 4260 012426 6660 012427 0212 012430 0000 ORCODE, /XORC; 012431 6730 6730;1317;4303;5215;0;0 012432 1317 012433 4303 012434 5215 012435 0000 012436 0000 EQUALC, /XEQC; 012437 6730 6730;705;4303;5215;0;0 012440 0705 012441 4303 012442 5215 012443 0000 012444 0000 COMPC, /CMA IAC; 012445 6303 6303;0715;6240;0711;4303;5215;0;0 012446 0715 012447 6240 012450 0711 012451 4303 012452 5215 012453 0000 012454 0000 SHFT3, /CLL RAL; CLL RAL; CLL RAL; 012455 6303 6303;6314;6240;722;4314;5215;6303;6314;6240;0722;4314;5215 012456 6314 012457 6240 012460 0722 012461 4314
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 90-2 012462 5215 012463 6303 012464 6314 012465 6240 012466 0722 012467 4314 012470 5215 012471 6303 6303;6314;6240;722;4314;5215;0;0 012472 6314 012473 6240 012474 0722 012475 4314 012476 5215 012477 0000 012500 0000 FCODE, /XFENC; 012501 6330 6330;2706;4316;6703;212;0 012502 2706 012503 4316 012504 6703 012505 0212 012506 0000 JMPCAL, /JMP .+ 012507 6712 6712;315;5240;5656;0;0 012510 0315 012511 5240 012512 5656 012513 0000 012514 0000 STOR, /, 0; 012515 5654 5654;211;215;212 012516 0211 012517 0215 012520 0212 CNTLC, /^C; 012521 4336 4336;6703;212;0 012522 6703 012523 0212 012524 0000 JMPLAB, /JMP_ 012525 6712 6712;315;240;0 012526 0315 012527 0240 012530 0000 PAGJMP, /JMP I (.&7600+200;PAGE;XP 012531 6712 6712;315;5240;311;5250;3256;5667;266;5660;1253;4260;6660;6212 012532 0315 012533 5240 012534 0311 012535 5250 012536 3256 012537 5667 012540 0266 012541 5660 012542 1253
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 90-3 012543 4260 012544 6660 012545 6212 012546 0720 720;4307;6705;6612;330;0;0 012547 4307 012550 6705 012551 6612 012552 0330 012553 0000 012554 0000 PAGFIN, /=.; 012555 4275 4275;6656;212;0 012556 6656 012557 0212 012560 0000 FILLER, /XFLC; 012561 6330 6330;6306;303;273 012562 6306 012563 0303 012564 0273 PATCAL, /JMS I XPAT 012565 6712 6712;1715;5240;311;6330;720;4324;5215;0;0 012566 1715 012567 5240 012570 0311 012571 6330 012572 0720 012573 4324 012574 5215 012575 0000 012576 0000 INDCAL, /JMS I XINDRC; 012577 6712 6712;1715;5240;311;6330;7311;6304;1722;215;212 012600 1715 012601 5240 012602 0311 012603 6330 012604 7311 012605 6304 012606 1722 012607 0215 012610 0212 ENDC1, /;PAGE;X0,; 012611 6615 6615;212;6301;2707;4215;5212;5330;6260;215;212 012612 0212 012613 6301 012614 2707 012615 4215 012616 5212 012617 5330 012620 6260 012621 0215 012622 0212 ENDC2, /;XVLEN=.-X0 012623 6612 6612;3330;6314;7305;5275;6656;4330;6660;212;212
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 90-4 012624 3330 012625 6314 012626 7305 012627 5275 012630 6656 012631 4330 012632 6660 012633 0212 012634 0212 ENDC3, /, XX 012635 6654 6654;4211;330;0 012636 4211 012637 0330 012640 0000 ENDC5, /.; 012641 4256 4256;5215;0;0 012642 5215 012643 0000 012644 0000 ENDC6, /;FIELD 1;*XFIELD1;XIND= 012645 4215 4215;5212;6306;2711;5314;0304;4261;5215;6252;3330;6311;6305;4304 012646 5212 012647 6306 012650 2711 012651 5314 012652 0304 012653 4261 012654 5215 012655 6252 012656 3330 012657 6311 012660 6305 012661 4304 012662 6661 6661;6612;4212;6311;2316;275;0 012663 6612 012664 4212 012665 6311 012666 2316 012667 0275 012670 0000 ENDC7, /;XX 012671 6615 6615;4212;330;0 012672 4212 012673 0330 012674 0000 ENDC10, /;XTOP=.;$$$; 012675 4215 4215;5212;6330;7724;5320;7275;4215;5212;5244;2244;4615;5212;0;0 012676 5212 012677 6330 012700 7724 012701 5320 012702 7275 012703 4215 012704 5212 012705 5244
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 90-5 012706 2244 012707 4615 012710 5212 012711 0000 012712 0000 ENDC20, /UNDEFINED ADDRESSES:_ 012713 6325 6325;2316;6305;4706;6316;2305;6240;2301;6304;2722;6323;2723 012714 2316 012715 6305 012716 4706 012717 6316 012720 2305 012721 6240 012722 2301 012723 6304 012724 2722 012725 6323 012726 2723 012727 5323 5323;272;240;240 012730 0272 012731 0240 012732 0240 ENDC21, /MANY 012733 6315 6315;7301;331;0 012734 7301 012735 0331 012736 0000 ENDC22, /NO 012737 0316 316;317 012740 0317 ENDC23, / ERRORS DETECTED; 012741 6640 6640;1305;6722;1317;6323;2240;6305;2724;6303;2724;4304;5215;212;0 012742 1305 012743 6722 012744 1317 012745 6323 012746 2240 012747 6305 012750 2724 012751 6303 012752 2724 012753 4304 012754 5215 012755 0212 012756 0000 ENDC24, /TEXT . 012757 6724 6724;4305;5324;7211;0;0 012760 4305 012761 5324 012762 7211 012763 0000 012764 0000
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91 / ERROR MESSAGES ERPONT, /^; 012765 0336 336;240 012766 0240 ERLTL, /LINE TOO LONG 012767 6314 6314;7311;6705;2240;5317;317;6314;7317;307;0 012770 7311 012771 6705 012772 2240 012773 5317 012774 0317 012775 6314 012776 7317 012777 0307 013000 0000 EROFF, /OUTPUT FILE FULL 013001 6717 6717;2325;6720;2325;6240;4706;5314;305;6306;6325;314;0 013002 2325 013003 6720 013004 2325 013005 6240 013006 4706 013007 5314 013010 0305 013011 6306 013012 6325 013013 0314 013014 0000 EROER, /OUTPUT ERROR 013015 6717 6717;2325;6720;2325;6640;1305;6722;1317;0;0 013016 2325 013017 6720 013020 2325 013021 6640 013022 1305 013023 6722 013024 1317 013025 0000 013026 0000 ERIVN, /INVALID NUMBER 013027 6711 6711;3316;6301;4714;6304;7240;6325;1315;305;322 013030 3316 013031 6301 013032 4714 013033 6304 013034 7240 013035 6325 013036 1315 013037 0305 013040 0322 ERIARG, /ILLEGAL ARGUMENT TYPE 013041 6311 6311;6314;6305;707;6314;640;6722;2707;6315;7305;6724;2240;6331;2720;0;0 013042 6314
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91-1 013043 6305 013044 0707 013045 6314 013046 0640 013047 6722 013050 2707 013051 6315 013052 7305 013053 6724 013054 2240 013055 6331 013056 2720 013057 0000 013060 0000 ERPEOF, /PRE-MATURE EOF 013061 6320 6320;2722;6255;715;6724;1325;6305;2640;317;306 013062 2722 013063 6255 013064 0715 013065 6724 013066 1325 013067 6305 013070 2640 013071 0317 013072 0306 ERNIR, /NAMES MAY NOT BEGIN WITH X OR . 013073 6316 6316;6701;5305;0323;6715;4701;6240;7716;6324;1240;6305;4707;6716;3640 013074 6701 013075 5305 013076 0323 013077 6715 013100 4701 013101 6240 013102 7716 013103 6324 013104 1240 013105 6305 013106 4707 013107 6716 013110 3640 013111 6311 6311;4324;5240;330;5317;322;256;0 013112 4324 013113 5240 013114 0330 013115 5317 013116 0322 013117 0256 013120 0000 ERLIV, /ILLEGAL LITERAL VALUE 013121 6311 6311;6314;6305;707;6314;6240;6311;2724;6322;6301;6240;726 013122 6314 013123 6305 013124 0707 013125 6314 013126 6240
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91-2 013127 6311 013130 2724 013131 6322 013132 6301 013133 6240 013134 0726 013135 6314 6314;2725;0;0 013136 2725 013137 0000 013140 0000 ERIC, /ILLEGAL CHARACTER 013141 6311 6311;6314;6305;707;6314;1640;6710;1301;6701;2303;305;322 013142 6314 013143 6305 013144 0707 013145 6314 013146 1640 013147 6710 013150 1301 013151 6701 013152 2303 013153 0305 013154 0322 ERLNI, /LABEL MAY NOT BE INDIRECT 013155 6314 6314;1301;5305;0314;6715;4701;6240;7716;6324;1240;6305;4640;6316 013156 1301 013157 5305 013160 0314 013161 6715 013162 4701 013163 6240 013164 7716 013165 6324 013166 1240 013167 6305 013170 4640 013171 6316 013172 4704 4704;6322;1705;324;0 013173 6322 013174 1705 013175 0324 013176 0000 ERMDL, /MULTIPLY DEFINED LABEL 013177 6315 6315;6325;6724;311;5314;331;6304;3305;6311;2716;6304;6240 013200 6325 013201 6724 013202 0311 013203 5314 013204 0331 013205 6304 013206 3305 013207 6311 013210 2716 013211 6304 013212 6240
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91-3 013213 6301 6301;2702;314;0 013214 2702 013215 0314 013216 0000 ERID, /ILLEGAL DELIMITER 013217 6311 6311;6314;6305;707;6314;2240;6305;4714;6715;2311;305;322 013220 6314 013221 6305 013222 0707 013223 6314 013224 2240 013225 6305 013226 4714 013227 6715 013230 2311 013231 0305 013232 0322 ERUC, /UNRECOGNIZED COMMAND 013233 6725 6725;1316;6305;7703;6307;4716;6332;2305;6240;7703;6315;715;316;304 013234 1316 013235 6305 013236 7703 013237 6307 013240 4716 013241 6332 013242 2305 013243 6240 013244 7703 013245 6315 013246 0715 013247 0316 013250 0304 ERARTB, /MAGNITUDE OF ARGUMENT IS TOO LARGE 013251 6315 6315;3701;6716;2311;6325;2704;6240;3317;6640;1301;6307;6725;6705 013252 3701 013253 6716 013254 2311 013255 6325 013256 2704 013257 6240 013260 3317 013261 6640 013262 1301 013263 6307 013264 6725 013265 6705 013266 2316 2316;6640;1711;6240;7724;6317;6240;6301;3722;305;0 013267 6640 013270 1711 013271 6240 013272 7724 013273 6317 013274 6240 013275 6301 013276 3722
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91-4 013277 0305 013300 0000 ERNAE, /ARGUMENT MAY NOT FOLLOW AN EQUAL 013301 6301 6301;3722;6325;2715;5316;324;6715;4701;6240;7716;6324;3240;6317 013302 3722 013303 6325 013304 2715 013305 5316 013306 0324 013307 6715 013310 4701 013311 6240 013312 7716 013313 6324 013314 3240 013315 6317 013316 6314 6314;5317;327;5301;316;6705;2721;301;314 013317 5317 013320 0327 013321 5301 013322 0316 013323 6705 013324 2721 013325 0301 013326 0314 ERMHA, /OR MUST BE PRECEDED AND FOLLOWED BY A NAME 013327 5317 5317;322;6715;1725;6324;1240;6705;240;6322;1705;6305;2305;5305;304;6301 013330 0322 013331 6715 013332 1725 013333 6324 013334 1240 013335 6705 013336 0240 013337 6322 013340 1705 013341 6305 013342 2305 013343 5305 013344 0304 013345 6301 013346 2316 2316;6240;7706;6314;7714;6327;2305;6640;4702;5240;301;6316;6701;305;0 013347 6240 013350 7706 013351 6314 013352 7714 013353 6327 013354 2305 013355 6640 013356 4702 013357 5240 013360 0301 013361 6316 013362 6701 013363 0305
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91-5 013364 0000 EROOT, /ONLY ONE TRANSFER IS LEGAL 013365 6317 6317;6316;6331;7640;5316;305;6324;722;6316;3323;5305;322;5311;323 013366 6316 013367 6331 013370 7640 013371 5316 013372 0305 013373 6324 013374 0722 013375 6316 013376 3323 013377 5305 013400 0322 013401 5311 013402 0323 013403 6314 6314;3705;301;314 013404 3705 013405 0301 013406 0314 ERTFA, /TOO FEW ARGUMENTS 013407 6324 6324;7717;6240;2706;6327;640;6722;2707;6315;7305;324;323 013410 7717 013411 6240 013412 2706 013413 6327 013414 0640 013415 6722 013416 2707 013417 6315 013420 7305 013421 0324 013422 0323 ERSTC, /SAME TRANSFER CONDITION 013423 6323 6323;6701;6705;2240;6322;7301;6323;2706;6322;1640;6317;2316;6311;4724 013424 6701 013425 6705 013426 2240 013427 6322 013430 7301 013431 6323 013432 2706 013433 6322 013434 1640 013435 6317 013436 2316 013437 6311 013440 4724 013441 0317 317;316 013442 0316 ERNLD, /NO LABELS DEFINED FOR INDIRECT TABLE 013443 5316 5316;317;6314;1301;6705;1714;6240;2704;6306;7311;5305;304;6706;1317 013444 0317 013445 6314 013446 1301
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91-6 013447 6705 013450 1714 013451 6240 013452 2704 013453 6306 013454 7311 013455 5305 013456 0304 013457 6706 013460 1317 013461 6240 6240;7311;6705;2303;6240;724;6302;2714;0;0 013462 7311 013463 6705 013464 2303 013465 6240 013466 0724 013467 6302 013470 2714 013471 0000 013472 0000 ERCNT, /CANT ENTER OUTPUT FILE 013473 6303 6303;7301;6324;2640;6316;2724;6322;7640;6725;324;5325;324;6306;6311 013474 7301 013475 6324 013476 2640 013477 6316 013500 2724 013501 6322 013502 7640 013503 6725 013504 0324 013505 5325 013506 0324 013507 6306 013510 6311 013511 0305 305;0 013512 0000 ERAGVO, /GEN VAR OVERFLOW 013513 6307 6307;7305;6240;726;6322;7640;6726;1305;6306;7714;327;0 013514 7305 013515 6240 013516 0726 013517 6322 013520 7640 013521 6726 013522 1305 013523 6306 013524 7714 013525 0327 013526 0000 3527 TOPF1=. /TOP OF FIELD 1 STORAGE
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 91-7 $$$$$$$$$$$$$$$$$$$
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 92 ACCNUM 0020 CPAL 0100 EOL 0010 EXTCUR 4517 ACCUM 2161 CPOLIN 0103 EQLSEN 0060 FCODE 2501 ACMIND 0064 CSNO 0200 EQUAL 0015 FILEND 2415 ACUM 0134 CTTYPE 4323 EQUALC 2437 FILLER 2561 ACUMM 0135 CTTYP1 4325 ERAGVO 3513 FOUR 7307 ADD 0001 CTYPE 0137 ERARTB 3251 FOUTBK 0055 AGVCNT 0050 CURSOR 0071 ERCNT 3473 FREE 7777 AGVPTR 0015 CVD 4451 ERIARG 3041 FRONT1 0300 ANY 0023 CVD1 4455 ERIC 3141 FRONT2 0345 ARGCNT 0033 CVD2 4462 ERID 3217 FRONT4 0400 ARGENV 2207 CVD3 4470 ERIVN 3027 F0CLR 0070 BACK 0012 CVD4 4475 ERLIV 3121 F0CLRL 0014 BASE 2171 C10 0112 ERLNI 3155 F1CLR 2177 CALASC 5066 C12 0113 ERLTL 2767 F1CLRL 0037 CCONTR 1700 C240 0114 ERMDL 3177 GENLIT 0075 CDEL 2176 C260 0115 ERMHA 3327 GETCHR 0142 CEND 1000 C377 0116 ERNAE 3301 GETCHS 0143 CEXIT 0400 C5 0110 ERNIR 3073 GOMON 4145 CHOLD 0070 C7 0111 ERNLD 3443 HPOOL 0047 CLEN 0034 C7400 0117 EROER 3015 IBCNT 2173 CLOSE 3502 DAY 2241 EROFF 3001 IBLK 5537 CLOS1 3513 DCAGV 2260 EROOT 3365 IBUF 0200 CLOS10 3664 DCAGVC 2252 ERPEOF 3061 IFHANL 0455 CLOS11 3675 DEL 0022 ERPONT 2765 IFLTAB 7617 CLOS12 3703 DELPOL 0140 ERRC 2234 IHAN 0053 CLOS13 3734 DELST 1774 ERRH 4255 IMCNT 0045 CLOS14 3736 DPOOL 4705 ERRH1 4306 INBLK 2172 CLOS16 4000 DPOOL0 4710 ERRH2 4315 INDCAL 2577 CLOS17 4007 DPOOL1 4711 ERR1 4134 INDEX0 0010 CLOS19 4026 DPOOL3 4724 ERR10 4215 INDEX1 0011 CLOS2 3520 DPOOL4 4735 ERR11 4220 INDEX2 0012 CLOS20 4031 END 0011 ERR12 4222 INDEX3 0013 CLOS21 4040 ENDC1 2611 ERR14 4224 INDEX6 0016 CLOS22 4044 ENDC10 2675 ERR15 4226 INDEX7 0017 CLOS23 4046 ENDC2 2623 ERR16 4230 INFLPT 0051 CLOS24 4057 ENDC20 2713 ERR17 4232 INHAN 6000 CLOS28 4077 ENDC21 2733 ERR18 4234 INITAL 2323 CLOS29 4102 ENDC22 2737 ERR19 4236 INITA2 2335 CLOS3 3526 ENDC23 2741 ERR2 4143 INTRPT 4740 CLOS30 4107 ENDC24 2757 ERR20 4240 INTST 0144 CLOS31 4110 ENDC3 2635 ERR22 4242 JMPCAL 2507 CLOS32 4104 ENDC5 2641 ERR23 4244 JMPLAB 2525 CLOS4 3600 ENDC6 2645 ERR24 4247 JMPTR 0010 CLOS5 3617 ENDC7 2671 ERR25 4253 LABEL 0004 CLOS6 3624 ENDLIN 1616 ERR3 4200 LABELF 0061 CLOS7 3645 ENDRD 0141 ERR4 4203 LABPOL 2231 CLOS8 3652 ENDRD1 4436 ERR5 4205 LAST 0023 CLOS9 3660 ENDRED 4431 ERR6 4207 LESS 0014 CMDTAB 1600 END1 1621 ERR7 4211 LINDF 0100 CNTLC 2521 END2 1641 ERR9 4213 LINEIM 2040 COLINE 0102 END3 1661 ERSTC 3423 LINEL 0120 COLON 0021 END4 1677 ERTFA 3407 LINEP 0014 COMMA 0022 END5 2000 ERUC 3233 LINK 7776 COMPC 2445 END6 2015 EXFCUR 4532 LITFND 0057 CONVD 0136 END7 1726 EXITCL 2417 LITJMS 2371
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 92-1 LITS 2177 NC10 0130 PRN1 5714 SCAN02 2455 LPAREN 0006 NC12 0131 PRN2 5723 SCAN03 2507 LPOOL 0021 NC2 0122 PRX 5732 SCAN04 2513 LUSR 0145 NC212 0132 PTATOM 0065 SCAN05 2522 MAIN 0466 NC260 0133 PTNAME 4332 SCAN06 2527 MAIN0A 0536 NC3 0123 PTNAM1 4333 SCAN07 2552 MAIN00 0476 NC4 0124 PTNAM2 4341 SCAN08 2562 MAIN01 0600 NC5 0125 PTOUT 2200 SCAN09 2600 MAIN02 0615 NC6 0126 PUTACR 0150 SCAN10 2621 MAIN05 0620 NC7 0127 PUTCHR 0151 SCAN11 2646 MAIN14 0667 NEXTIN 0432 PUTNAM 0152 SCAN12 2652 MAIN15 0671 NOARG 0002 PUTOC 0153 SCAN13 2660 MAIN16 0705 NONE 7340 PUTOCT 5106 SCAN14 2661 MAIN17 0715 NTHREE 7346 PUTOUT 0154 SCAN15 2706 MAIN18 0716 NTOPIB 7200 PUTO1 5112 SCAN16 2714 MAIN19 1000 NTOPOB 6200 PUT0 2216 SCAN2A 3215 MAIN20 1016 NTWO 7344 PUT1 2242 SCAN2B 3235 MAIN5A 1231 NXTSTR 0037 PUT2 2243 SCAN2C 3317 MAIN5B 1073 OBCNT 2175 PUT3 2255 SCAN2D 3136 MAIN5R 1240 OBLK 5625 PUT4 2271 SCAN2E 3243 MAIN50 1020 OBUF 0600 PUT5 2276 SCAN2F 3221 MAIN51 1043 OCNT 0073 PUT6 2307 SCAN2G 2750 MAIN52 1044 OCURSR 0043 PUT7 2231 SCAN2H 3076 MAIN53 1065 OFHANL 0245 P1 5126 SCAN2I 3021 MAIN54 1077 OFLAG 0056 P2 5127 SCAN2J 3134 MAIN55 1103 OFLEN 0254 RDCH 5411 SCAN2K 3200 MAIN56 1200 OFLNM 0253 RDCHR 5400 SCAN2L 3414 MAIN57 1204 OFLTAB 7600 RDCHRS 5413 SCAN2M 3332 MAIN58 1223 OHAN 0054 RDCHR0 5416 SCAN2N 3146 MAIN59 1243 OLINE 2227 RDCH1 5451 SCAN2P 3102 MAIN61 1306 ONAME 0104 RDCH2 5477 SCAN2Q 3231 MAIN62 1321 ONE 7301 RDCH3 5505 SCAN2R 3312 MAIN63 1335 OR 0016 RDCH4 5511 SCAN2S 3113 MAIN64 1323 ORCODE 2431 RDCH5 5522 SCAN2T 3014 MAIN65 1400 OUTBLK 2174 RDCH6 5542 SCAN20 2733 MAIN66 1333 OUTF 0063 RDCH7 5546 SCAN21 2742 MAIN7A 1462 OUTHAN 6400 RDCH8 5557 SCAN22 3000 MAIN70 1403 OVERF 0077 RDCH9 5562 SCAN23 3055 MAIN73 1444 PACCUR 4414 RDPOL 5130 SCAN24 3120 MAIN74 1445 PAGFIN 2555 RDPOOL 0155 SCAN25 3305 MAIN75 1477 PAGJMP 2531 RDP0 5131 SCAN27 3432 MAIN76 1506 PAGLEN 0035 RDP1 5144 SCAN28 3444 MAIN77 1510 PAGLIT 0076 RETORN 0156 SCAN29 3465 MAIN78 1524 PALEND 2017 RETRN 4445 SCAN30 3474 MAIN79 1530 PALEN1 2027 RETTRN 0157 SCURS 0041 MAIN80 1606 PALEN2 2035 RETURN 2247 SEARCH 0161 MAI19A 1001 PALEN3 2047 RPAREN 0004 SEMI 0017 MAKASC 0146 PALEN4 2057 SACCUM 2217 SERCH 5004 MATCH 5044 PATCAL 2565 SARG 0120 SERCHA 5043 MAT1 5062 PLINE 4421 SAVACM 0162 SERCH1 5006 MODE 2235 POLEND 7775 SCAN 0160 SERCH2 5016 MODECH 0066 POLINE 2230 SCANNR 2402 SERCH3 5025 MONTH 2236 PRINT 0147 SCAN0A 2546 SERCH4 5034 NCMDF 2407 PRN 5674 SCAN00 2424 SHACUM 0163 NC1 0121 PRN0 5702 SCAN01 2440 SHFTAC 4754
/SNOBOL 8.2 COMPILER. 31 AUGUST 76 P PAL8-VB0 NO DATE PAGE 92-2 SHFT1 4763 WRITO 4547 SHFT3 2455 WRITPO 4626 SIX 7327 WROCO 0166 SLASH 0002 WROCTO 4657 SNOBOL 0200 WROC1 4667 SPACE 0020 WROLIN 0167 SPFNPL 1720 WRPAA 5207 STAR 0003 WRPA0 5212 STOR 2515 WRPA1 5214 STRDEL 0000 WRPA10 5263 STRF 0067 WRPA2 5216 SUB 0000 WRPA3 5235 SVACUM 4400 WRPA4 5247 SVAC1 4407 WRPA5 5261 TADCON 2264 WRPA6 5246 TADGV 2270 WRPA7 5244 TESTQ 2312 WRPCA 5301 TESTSF 2274 WRPCA2 5332 THREE 7325 WRPCA3 5341 TMODE 0036 WRPOL 5147 TOCNT 0074 WRPOLN 0170 TOP 0032 WRPOOL 0171 TOPF1 3527 WRPPO 4600 TPRN 5747 WRPPSO 0172 TRASEN 0062 WRPP1 4602 TTYPE 4477 WRPP2 4606 TTYP1 4501 WRPS 0174 TTYP2 4505 WRPSO 0173 TWO 7305 WRP0 5163 TX 0030 WRP1 5200 TXX 0031 WRP2 5205 TYPE 0164 WRSPO 4641 TYRET 5000 WRSPO1 4647 T1 0024 WRSPO2 4654 T1MAT 0040 WRSTO 4610 T2 0025 WRSTO1 4616 T3 0026 WRSTO2 4623 T4 0027 WRSTPO 0175 ULBPOL 2233 WRSTR 0176 UPARR 0023 WRSTRG 4540 USR 0165 WRSTRO 0177 VALID 0046 WRSTR1 4542 VAR 0020 WT1 5166 VARORL 0001 WT2 5344 VARPOL 2232 WT3 5345 VINDF 0101 WT4 5346 WPSTR 5350 WT5 5347 WPSTR1 5352 XASC 2377 WPSTR2 5356 XINT 2403 WRCHR 5600 YEAR 2245 WRCH1 5633 ZERO 7300 WRCH3 5663 WRIPO 4507 WRIP1 4511 WRIP2 4515
ERRORS DETECTED: 0 LINKS GENERATED: 133



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search