File: RALF5.LS of Disk: V50/Source/Source-Listing-PAL-3
(Source file text)
/ RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 1 / RALF, V50A / / / RELOCATABLE ASSEMBLER FOR OS/8 FORTRAN IV / / / FPPASM BY HANK MAURER / RALF MODS BY JUD LEONARD / OS/8 FORTRAN MODS BY RICHIE LARY + MARTY HURLEY / NEW DATE ALGORITHUM PUT IN BY ED STEINBERGER / / THE FOLLOWING FORMULA GIVES THE NUM / OF USER SYMBOLS: / -(FREE+200[BASE8])/6[BASE10] / WHERE THE VALUE OF FREE IS FROM THE / RALF SYMBOL MAP / / IFNDEF RALF <RALF=1 /GO RELOCATABLE THEN> / / ASSEMBLE WITH PAL8-V9 WITH W SWITCH / SAVE AS: / .SAVE SYS RALF.SV ;200=2000 / / CHANGES FOR OS/78 AND OS/8 V3D BY P.T. / .CHANGED VERSION NUMBER TO 62 / .RALF NO LONGER GENERATES FAULTY RELOCATABLE IF: / 1.) THE ESD IS LONGER THAN ONE BLOCK, AND / 2.)LIST OUTPUT IS DIRECTED TO A 2-PAGE NON-SYSTEM HANDLER / 3.)SYMBIONT HOOK WVDM / 4.)ADAPTED TO CCL-DEVICE WVDM / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 2 0000 FLD0=0 0010 FLD1=10 7757 MREAD=7757 7776 SBLOCK=7776 0050 VNUM=50 0301 PATCH="A /PATCH LEVEL A 0001 *1 000001 6232 CIF 30 000002 5001 JMP 1 000003 0050 VERS, VNUM /VERSION NUMBER 000004 0000 OLDN3, 0 /TEMP FOR LOOKUP 000005 0000 OTEMP, 0 /A COUPLE OF TEMPS THAT 000006 0000 OCNT, 0 /DIDNT FIT INTO THEIR PAGE 000007 0000 CHNSW, 0 /-1 TO ENABLE CHAIN LOADER 000010 0000 X10, 0 000011 0000 X11, 0 000012 0000 X12, 0 000013 0000 X13, 0 000014 0000 X14, 0 000015 6377 OUTPTR, OUBUF-1 000016 1604 NEXT, FREE-1 000017 6777 CHRPTR, LINE-1 000020 7777 NCHARS, -1 /CHARACTER INPUT STUFF 000021 0000 CPTMP, 0 000022 0000 NCTMP, 0 /USED TO SAVE CHAR POSITION 000023 0000 LINSIZ, 0 /SIZE OF LINE FOR PRINTING STYPE, /SYMBOL TYPE CODE 000024 0000 CHKSUM, 0 /FOR BINARY OUTPUT IFZERO RALF < LOCTR1, 0 /INITIAL LOCN CNTR FOR ABSOLUTE ASM LOCTR2, 200 > IFNZRO RALF < 000025 0002 ESDNO, 2 /LAST ESD #. (#MAIN & BLANK COMMON DEFAULT) 000026 0020 LOCTR1, 20 /HIGH LOCN CNTR WITH ESD (STARTS IN #MAIN) 000027 0000 LOCTR2, 0 000030 0000 DPFLG, 0 > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 3 000031 4000 BASER, 4000 /BASE REGISTER SETTING 000032 0000 0 000033 0000 INDXR, 0 /INDEX LOCS: MUST FOLLOW BASER 000034 0000 0 000035 0000 EXPVAL, 0 /EXPRESSION VALUE 000036 0000 0 000037 0000 0 000040 0000 EXPDEF, 0 /=0 IF EXPR IS UNDEFINED 000041 0000 EXPSW, 0 /FLAG=1 IF NO EXPR 000042 0000 WORD1, 0 /TEMPORARY 2 WORD OPERAND 000043 0000 WORD2, 0 000044 0000 FPPADR, 0 /ADDRESS FIELD FOR FPP INDEX INSTR 000045 0000 0 000046 0000 OPCODE, 0 /OPCODE OR PSEUDO-OP POINTER 000047 0000 XFLAG, 0 /INDEX FLAG = 1 IF INDEX PRESENT 000050 0001 XINCR, 1 /FLAG = 0 IF + LEGAL IN INDEX EXPR 000051 0000 BUCKET, 0 /FIRST CHAR OF NAME 000052 0000 NAME1, 0 /CHARS 2 AND 3 OF NAME 000053 0000 NAME2, 0 /CHARS 4 AND 5 OF NAME 000054 0000 NAME3, 0 /CHAR 6 OF NAME AND TYPE 000055 0000 LASTOP, 0 /LAST OPERATOR ENCOUNTERRED IN EXPR 000056 7777 PASSNO, -1 /PASS NUMBER 000057 0000 ASMOF, 0 /SET NEGATIVE WHEN ASSEMBLY OFF 000060 0000 PNCHOF, 0 /NON-ZERO TO SUPPRESS BINARY OUTPUT 000061 0001 LISTSW, 1 /LIST SWITCH (1 ENABLES LISTING) 000062 0000 OUTSWT, 0 /OUT SWITCH, =1 IF LINE ALREADY LISTED 000063 0000 REPCNT, 0 /REPEAT COUNTER 000064 0000 SCSWT, 0 /SEMICOLON SWITCH 000065 0000 RADIX, 0 /RADIX FOR INTEGERS (0 IS OCTAL) 000066 7601 LTEMP, -177 /TEMP USED BY LOOKUP 000067 0000 EXTMP, 0 /TEMPS USED BY EXPR AND OTHERS 000070 0000 EXTMP2, 0 000071 0000 EQUN, 0;0;0;0 /NAME ON LEFT OF EQUAL SIGN 000072 0000 000073 0000 000074 0000 /NEXT TWO LOCS USED WITH EQUN BY DMPESD 000075 0000 FPPSWT, 0 /1 WHHEN FINDING FPP ADR EXPR 000076 0000 FPP2WD, 0 /SET BY EXPR TO FORCE 2 WD FMT 000077 0000 FPPWD2, 0 /SET BY FPP2WD.OR.EXPTYP.EQ.0 000100 0000 LITRL, 0 /SET = 1 FOR LITERAL 000101 0177 P0LIT, 177 000102 0177 CPLIT, 177 000103 0000 PAGEN, 0 000104 0000 ERRORS, 0 /ERROR COUNT 000105 1542 PC, TTYOUT /OUTPUT ROUTINE 000106 7573 OUFILE, 7573 /OUTPUT FILE LIST POINTER 000107 0001 BFILE, 1 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 4 000110 0001 LPAGE1, 1 /INPUT FORMFEED COUNT 000111 0000 LPAGE2, 0 /OUTPUT PAGE WITH RESPECT TO ABOVE 000112 7777 LINPAG, -1 /LINES/PAGE COUNTER 000113 0000 LINKSW, 0 /1 IF LINK GENERATED ON THIS LINE LINKS, /NO OF LINKS GENERATED 000114 0000 ABREFS, 0 /NO OF ABSOLUTE REFERENCES 000115 0000 ABSOP, 0 /POINTER-SWITCH FOR BINARY OUTPUT 000116 0200 USR, 200 /CURRENT CALL ADDRESS FOR USR 000117 0000 SYONLY, 0 /=0=LIST ONLY SMAP WHEN LIST FILE /IS SPECIFIED. ITS SET VIA SLASH S /=1=REGULAR 000120 0017 NP17, 17 /** 000121 7700 NP7700, 7700 000122 0000 OPX, 0 000123 0000 OP, ZBLOCK 6 000131 0000 ACX, 0 000132 0000 AC, ZBLOCK 6 000140 7775 M3, -3 000141 6777 BLINE, LINE-1 / 0200 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 5 / / CORE ALLOCATION IN HIGH FIELD 0 / 5100 CPLBUF=5100 /ACTUALLY AT 5200 5200 P0LBUF=5200 /AND 5300, 1/2 PAGE EACH IFZERO RALF < INBUF=5400 > IFNZRO RALF < 6000 INBUF=6000 /AFTER PASS 1, MOVES TO 5400> 6400 OUBUF=6400 7000 LINE=7000 /CURRENT INPUT LINE IN ASCII 7200 INDEVH=7200 /TENTATIVE INPUT DEVICE HANDLR ADDR 7400 OUDEVH=7400 /TENTATIVE OUTPUT HANDLER ADDR 0002 INRECS=2 0400 INCTL=400 4200 OUCTL=4200 / / COLLECT THE NEXT STATEMENT / 000200 2202 ISZ .+2 000201 5602 REPLEN, JMP I .+1 000202 6000 REPLST, BEGIN /START AT 6000 IF CHAINED ELSE 6001 000203 6201 NEXTST, CDF FLD0 /JUST PRECAUTION 000204 1062 TAD OUTSWT /IF NO OUTPUT FROM THIS LINE, 000205 7650 SNA CLA 000206 1056 TAD PASSNO /AND LISTING PASS 000207 7740 SMA SZA CLA 000210 1061 TAD LISTSW /AND LISTING ENABLED 000211 7650 SNA CLA /PRINT THIS LINE NOW 000212 5222 JMP START /ELSE GET NEXT 000213 4577 JMS I [CRLF /PRINT CR/LF 000214 1377 TAD (-6 000215 3066 DCA LTEMP /SPACE OVER 000216 4576 JMS I [PRINT2 /12 SPACES 000217 2066 ISZ LTEMP 000220 5216 JMP .-2 000221 4776 JMS I (PRNTLN /THEN PRINT LINE 000222 4575 START, JMS I [GETCHR /ANY MORE CHARS ? 000223 5226 JMP NOTEG 000224 4574 JMS I [ERMSG /EXTRA GARBAGE ON LAST LINE 000225 0507 0507 /*EG* 000226 1064 NOTEG, TAD SCSWT /DID LAST LINE END WITH SEMICOLON ? 000227 7650 SNA CLA 000230 5235 JMP .+5 /NO 000231 3064 DCA SCSWT /KILL SC SWITCH 000232 2017 ISZ CHRPTR /SKIP OVER SEMICOLON 000233 2020 ISZ NCHARS 000234 5310 JMP ASMBL /DON'T READ A NEW LINE 000235 1063 TAD REPCNT /IS THIS LINE TO BE REPEATED? 000236 7710 SPA CLA 000237 5352 JMP AGAIN /DO IT 000240 1141 NEWLIN, TAD BLINE /RESET POINTER / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 5-1 000241 3017 DCA CHRPTR 000242 1173 TAD [-200 /LIMIT LINE SIZE 000243 3066 DCA MAXLIN 000244 3062 DCA OUTSWT /CLEAR OUTPUT SWITCH / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 6 000245 4775 RDLOOP, JMS I (ICHAR /READ A CHAR 000246 1374 TAD (-212 000247 7450 SNA 000250 5245 JMP RDLOOP /IGNORE LINE FEEDS 000251 1373 TAD (212-215 /END ON CR 000252 7450 SNA 000253 5271 JMP ENDLIN 000254 7001 IAC 000255 7450 SNA /FORM FEED? 000256 5324 JMP FORMFD 000257 1372 TAD (214 /FIX CHAR 000260 3417 DCA I CHRPTR /SAVE IT 000261 2066 ISZ MAXLIN /TEST FOR LINE TOO LONG 000262 5245 JMP RDLOOP /PUT CHAR AWAY AND GET NEXT 1 000263 4775 JMS I (ICHAR /IGNORE ANOTHER CHAR 000264 1371 TAD (-215 /UNLESS CR 000265 7640 SZA CLA 000266 5263 JMP .-3 000267 4574 JMS I [ERMSG /EXCESS LENGTH LINE 000270 1424 1424 /*LT* 000271 1017 ENDLIN, TAD CHRPTR /FIND - NUMBER OF CHARS - 1 000272 7040 CMA 000273 1141 TAD BLINE 000274 3020 DCA NCHARS 000275 1063 TAD REPCNT /0 BECOMES 0, 000276 7041 CIA /BUT POS REP COUNT 000277 3063 DCA REPCNT /ENABLES REPEAT 000300 1020 TAD NCHARS /SAVE LENGTH 000301 3201 DCA REPLEN 000302 1061 TAD LISTSW /SAVE LISTING SWITCH DURING REPEAT 000303 3202 DCA REPLST 000304 1020 REASM, TAD NCHARS /SAVE SIZE OF LINE FOR PRINT 000305 3023 DCA LINSIZ 000306 1141 TAD BLINE 000307 3017 DCA CHRPTR /SET POINTER 000310 1057 ASMBL, TAD ASMOF /ARE WE INSIDE A CONDITIONAL 000311 7640 SZA CLA 000312 5334 JMP OFFIT /YES, AND THE COND WAS FALSE 000313 4575 JMS I [GETCHR /LOOK FOR A CHARACTER 000314 5203 JMP NEXTST 000315 1370 TAD (-257 /IS IT SLASH ? 000316 7450 SNA 000317 5336 JMP NOASM /YES, COOL IT 000320 1172 TAD [257-240 /IS IT BLANK OR TAB ? 000321 7640 SZA CLA /YES, IGNORE 000322 4571 JMS I [BACK1 /NO, PUT IT BACK 000323 5767 JMP I (LUNAME /ASSEMBLE STMT / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 7 000324 2110 FORMFD, ISZ LPAGE1 /BUMP FORM FEED COUNT 000325 3111 DCA LPAGE2 /CLEAR SUB-PAGE COUNT 000326 7240 CLA CMA 000327 3112 DCA LINPAG /FORCE EJECT ON CRLF 000330 5245 JMP RDLOOP 000331 7240 OPENIT, CLA CMA /DECR COUNT, ANOTHER OPEN ANGLE 000332 1057 TAD ASMOF 000333 3057 DCA ASMOF 000334 2020 OFFIT, ISZ NCHARS /MORE TO GO? 000335 5341 JMP GETIT /YES 000336 7240 NOASM, CLA CMA 000337 3020 DCA NCHARS /DONT ASSEMBLE THIS LINE 000340 5203 JMP NEXTST /(PREVENTING *EG* MESSAGE) 000341 1417 GETIT, TAD I CHRPTR /PICK UP THE CHARACTER 000342 1366 TAD (-274 /OPEN ANGLE BRACKET? 000343 7450 SNA 000344 5331 JMP OPENIT /YES, PUSH ONE LEVEL DOWN 000345 7112 CLL RTR 000346 7650 SNA CLA 000347 2057 ISZ ASMOF /IF CLOSE, CHECK LEVEL 000350 5334 JMP OFFIT /TRY FOR NEXT 000351 5310 JMP ASMBL /RESUME WORK 000352 1201 AGAIN, TAD REPLEN /WE NOW REPEAT THE SAME LINE 000353 3020 DCA NCHARS 000354 3061 DCA LISTSW /NO LISTING DURRING REPEAT 000355 2063 ISZ REPCNT 000356 5304 JMP REASM /ASSUMING COUNT STILL OK 000357 1202 TAD REPLST /RESTORE LISTING 000360 3061 DCA LISTSW 000361 5240 JMP NEWLIN /GET NEXT LINE 0066 MAXLIN=LTEMP / 000362 4005 TXERR, TEXT " ERRORS" 000363 2222 000364 1722 000365 2300 0004 TXELN= .-TXERR 000366 7504 000367 0600 000370 7521 000371 7563 000372 0214 000373 7775 000374 7566 000375 4212 000376 1400 000377 7772 0400 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 8 / / DIVIDE AC BY 3 / USEFUL IN FPP REFERENCES TO BASE / 000400 0000 OVER3, 0 /DIVIDE AC BY THREE 000401 3070 DCA EXTMP2 /MQ 000402 1377 TAD (-15 /SET SHIFT COUNT 000403 3066 DCA LTEMP 000404 7100 DIVLUP, CLL /ZERO LINK 000405 1376 TAD (-3 /SUBTRACT DIVISOR FROM AC 000406 7430 SZL /IF AC>=3 SET LINK TO 1 000407 5212 JMP .+3 /OK, DONT RESTORE 000410 1375 TAD (3 /TOO SMALL, RESTORE AC 000411 7100 CLL /SET LINK BACK TO 0 000412 3067 DCA EXTMP /SAVE AC 000413 1070 TAD EXTMP2 /ROTATE MQ-AC LEFT, PUT LINK IN MQ 000414 7004 RAL 000415 3070 DCA EXTMP2 /SAVE MQ 000416 1067 TAD EXTMP /GET BACK AC 000417 7004 RAL /COMPLETE SHIFT 000420 2066 ISZ LTEMP /TEST COUNT 000421 5204 JMP DIVLUP /KEEP GOING 000422 3067 DCA EXTMP /THIS IS REMAINDER 000423 1070 TAD EXTMP2 /RETURN QUOTIENT 000424 5600 JMP I OVER3 / / INITIALIZE FOR OUTPUT / 000425 0000 OUSETP, 0 000426 1374 TAD (OUCTL&3700 /BUFFER SIZE IN DBL WORDS 000427 7041 CIA /NEGATE IT (PAL10 BLOWS) 000430 3313 DCA OUDWCT 000431 1236 TAD NOUBUF 000432 3311 DCA OUPTR /INITIALIZE WORD POINTER 000433 1312 TAD OUJMPE 000434 3247 DCA OUJMP /INITIALIZE 3-WAY CHARACTER SWITCH 000435 5625 JMP I OUSETP 000436 6400 NOUBUF, OUBUF / / STORE CHARACTERS IN OUTPUT BUFFER / IN PS8 FORMAT (YOU KNOW, 3 CHARS / IN 2 WORDS THE WRONG WAY) / 000437 0000 OCHAR, 0 000440 0373 AND (377 000441 3307 DCA OUTEMP 000442 1314 TAD OUTINH 000443 7640 SZA CLA /IS THERE AN OUTPUT FILE? 000444 5637 JMP I OCHAR /NO - EXIT 000445 6201 CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD 000446 2247 ISZ OUJMP /BUMP THE CHARACTER SWITCH 000447 7402 OUJMP, HLT /THREE WAY CHARACTER SWITCH / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 8-1 000450 5303 JMP OCHAR1 000451 5300 JMP OCHAR2 000452 1307 TAD OUTEMP 000453 7106 CLL RTL 000454 7006 RTL 000455 0372 AND (7400 000456 1710 TAD I OUPOLD 000457 3710 DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH /ORDER 4 BITS OF THIRD CHAR 000460 1307 TAD OUTEMP 000461 7112 CLL RTR 000462 7012 RTR 000463 7010 RAR 000464 0372 AND (7400 000465 1711 TAD I OUPTR 000466 3711 DCA I OUPTR /UPDATE 2ND WORD FROM LO 4 BITS 000467 1312 TAD OUJMPE 000470 3247 DCA OUJMP /RESET SWITCH 000471 2311 ISZ OUPTR 000472 2313 ISZ OUDWCT /BUMP COUNTER EVERY 3 CHARS 000473 5305 JMP OUCOMN 000474 1371 TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE 000475 4770 JMS I (OUTDMP /DUMP THE BUFFER 000476 4225 JMS OUSETP /RE-INITIALIZE THE POINTERS 000477 5305 JMP OUCOMN 000500 1311 OCHAR2, TAD OUPTR 000501 3310 DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO 000502 2311 ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD 000503 1307 OCHAR1, TAD OUTEMP 000504 3711 DCA I OUPTR 000505 6201 OUCOMN, CDF 000506 5637 JMP I OCHAR 000507 0000 OUTEMP, 0 000510 0000 OUPOLD, 0 000511 0000 OUPTR, 0 000512 5247 OUJMPE, JMP OUJMP 000513 0000 OUDWCT, 0 000514 0000 OUTINH, 0 / / MOVE OUTPUT FILE NAME TO FIELD 0 / 000515 0000 OFNAME, 0 000516 1106 TAD OUFILE 000517 3010 DCA X10 000520 1367 TAD (OUFNAM-1 000521 3011 DCA X11 000522 1366 TAD (-4 000523 3066 DCA LTEMP 000524 6211 CDF 10 000525 1410 TAD I X10 000526 6201 CDF 0 000527 3411 DCA I X11 000530 2066 ISZ LTEMP 000531 5324 JMP .-5 000532 5715 JMP I OFNAME / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 9 / / GET OUTPUT DEVICE CHARISTICS / 000533 0000 OTYPE, 0 000534 6211 CDF 10 000535 1765 TAD I (7600 000536 0172 AND [17 000537 1364 TAD (DCB-1 000540 3315 DCA OTYPP 000541 1715 TAD I OTYPP 000542 6201 CDF 0 000543 5733 JMP I OTYPE 0515 OTYPP= OFNAME / / BASIC TITLE INFO / TITBUF, IFZERO RALF < TEXT "FLAP V" > IFNZRO RALF < 000544 2201 TEXT "RALF V" > 000545 1406 000546 4026 000547 0000 0547 *.-1 000547 0000 VMTXT, 0;0;0 000550 0000 000551 0000 000552 0000 TITDAT, ZBLOCK 6 000560 4020 TEXT " PAGE" 000561 0107 000562 0500 0017 TITLEN= .-TITBUF 000564 7757 000565 7600 000566 7774 000567 4361 000570 4444 000571 4200 000572 7400 000573 0377 000574 0200 000575 0003 000576 7775 000577 7763 0600 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 10 / / PROCESS A STATEMENT / 000600 1017 LUNAME, TAD CHRPTR /SAVE CHAR STUFF 000601 3021 DCA CPTMP 000602 1020 TAD NCHARS 000603 3022 DCA NCTMP 000604 3113 DCA LINKSW /CLEAR SWITCH 000605 4570 JMS I [GETNAM /LOOK FOR NAME IFZERO RALF < JMP I (TRYSTR /COULD BE AN ORG> IFNZRO RALF < 000606 5777 JMP I (GETEXP /NOT ONE OF OURS, I GUESS> 000607 4575 JMS I [GETCHR /LOOK FOR COMMA 000610 5334 JMP JSTONE /ITS JUST ONE SYMBOL 000611 1376 TAD (-254 /COMMA TEST 000612 7440 SZA 000613 5245 JMP TRYEQU /NO COMMA, CHECK FOR EQUAL 000614 4567 JMS I [LOOKUP /LOOK UP SYMBOL 000615 5236 JMP DEFLBL /ITS UNDEFINED 000616 7110 CLL RAR /VERIFY ADDR TYPE 000617 7640 SZA CLA 000620 5233 JMP MDERR /THAT'S A NO-NO 000621 1410 TAD I X10 /CHECK LOCCTR AGAINST OLD DEFINITION 000622 7041 CIA 000623 1026 TAD LOCTR1 /FIRST UPPERR HALF 000624 7640 SZA CLA 000625 5233 JMP .+6 000626 1410 TAD I X10 000627 7041 CIA 000630 1027 TAD LOCTR2 /THEN LOWER HALF 000631 7650 SNA CLA 000632 5243 JMP DEFIND 000633 4574 MDERR, JMS I [ERMSG /MULTIPLY DEFINED 000634 1504 1504 /*MD* 000635 5775 JMP I (ASMBL /FIELD IS OK 000636 2466 DEFLBL, ISZ I LTEMP /SET TYPE TO 1 (USER ADDR) 000637 1026 TAD LOCTR1 /PUT LOCATION COUNTER 000640 3410 DCA I X10 /INTO VALUE 000641 1027 TAD LOCTR2 000642 3410 DCA I X10 000643 6201 DEFIND, CDF FLD0 /GO LOOK FOR ANOTHER TAG 000644 5775 JMP I (ASMBL / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 11 000645 1374 TRYEQU, TAD (-21 /CHECK FOR EQUAL SIGN 000646 7440 SZA 000647 5321 JMP TRYBLK /NO, TRY BLANK 000650 1052 TAD NAME1 000651 3071 DCA EQUN /SAVE 6 CHARACTER NAME 000652 1053 TAD NAME2 000653 3072 DCA EQUN+1 000654 1054 TAD NAME3 000655 3073 DCA EQUN+2 000656 1051 TAD BUCKET 000657 3074 DCA EQUN+3 000660 4575 JMS I [GETCHR /ALLOW BLANK AFTER = 000661 5316 JMP EQUERR 000662 1166 TAD [-240 000663 7640 SZA CLA 000664 4571 JMS I [BACK1 /ANYTHING ELSE GOES BACK 000665 4565 JMS I [EXPR /GET VALUE RIGHT OF EQUALS 000666 5316 JMP EQUERR /BAD EQU 000667 1071 TAD EQUN /RESTORE NAME 000670 3052 DCA NAME1 000671 1072 TAD EQUN+1 000672 3053 DCA NAME2 000673 1073 TAD EQUN+2 000674 3054 DCA NAME3 000675 1074 TAD EQUN+3 000676 3051 DCA BUCKET 000677 4567 JMS I [LOOKUP /LOOKUP SYMBOL 000700 5304 JMP PUTVAL /A NEW SYMBOL 000701 7110 CLL RAR 000702 7640 SZA CLA 000703 5316 JMP EQUERR /TYPE CONFLICT 000704 1036 PUTVAL, TAD EXPVAL+1 /SAVE ADDRESS TYPE 000705 3410 DCA I X10 000706 1037 TAD EXPVAL+2 000707 3410 DCA I X10 000710 1466 TAD I LTEMP /NOW GET TYPE WORD 000711 0373 AND (7740 /ZERO OLD TYPE, PRESERVING FORCE BIT 000712 1040 TAD EXPDEF /DEFINED BY RIGHT HAND SIDE 000713 3466 DCA I LTEMP /RESTORE WORD 000714 6201 CDF FLD0 000715 5564 JMP I [NEXTST /GO GET NEXT STMT 000716 4574 EQUERR, JMS I [ERMSG /BAD EQU 000717 0205 0205 /*BE* 000720 5564 JMP I [NEXTST / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 12 000721 1372 TRYBLK, TAD (35 /CHECK FOR BLANK 000722 7450 SNA /MATCH BLANK? 000723 5334 JMP JSTONE /YES 000724 0163 AND [77 000725 4562 JMS I [R6L 000726 3054 DCA NAME3 /MAKE MODIFIED NAME OF IT 000727 4575 JMS I [GETCHR /MODIFIER MUST BE FOLLOWED BY BLANK 000730 5777 JMP I (GETEXP /LOOKS BAD 000731 1166 TAD [-240 /GOT IT? 000732 7640 SZA CLA 000733 5777 JMP I (GETEXP /LET EXPR TELL HIM IF ITS WRONG 000734 1371 JSTONE, TAD (33 /USE OUR INTERNAL SYMBOL TABLE 000735 4561 JMS I [FIND /IS IT THERE? 000736 5777 JMP I (GETEXP /NO, LOOK IN USER'S 000737 1345 TAD OPCTBL /CREATE JUMP THRU TABLE 000740 3344 DCA OPCJMP /SAVE IT 000741 1410 TAD I X10 /PICK UP FIRST WORD OF VALUE 000742 3046 DCA OPCODE /ITS AN OPCODE-MAYBE? 000743 6201 CDF FLD0 000744 0000 OPCJMP, 0 /JUMP SOMEWHERE 000745 5741 OPCTBL, JMP I .-4 000746 1200 PSEUDO /PSEUDO OPS 000747 1215 PDP8MR /PDP8 MRI 000750 1027 FPPMR /FPPMR 000751 1125 FPPS1 /OTHER FPP OPCODES 000752 1046 FPPS2 000753 1122 FPPS3 000754 1201 FPPS4 000755 1134 FPPS5 000756 1105 FPMRI /INDIRECT FPP MEM REF 000757 1066 FPMRS /SHORT DIRECT MEM REF 000760 1060 FPMRL /LONG DIRECT REF 000761 2115 PDPOPR /8-MODE OPERATES 000762 4770 REPETX, JMS I (ADRGET /EVALUATE REPEAT EXPR 000763 7150 CLL CMA RAR /3777 000764 0037 AND EXPVAL+2 000765 3063 DCA REPCNT 000766 5564 JMP I [NEXTST 000770 1210 000771 0033 000772 0035 000773 7740 000774 7757 000775 0310 000776 7524 000777 1000 1000 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 13 / 001000 6201 GETEXP, CDF FLD0 001001 1021 TAD CPTMP /RESTORE CHARACTER POINTER 001002 3017 DCA CHRPTR 001003 1022 TAD NCTMP /TO JUST AFTER TAG (IF ANY) 001004 3020 DCA NCHARS 001005 3046 SX, DCA OPCODE 001006 4565 JMS I [EXPR /TRY FOR AN EXPRESSION 001007 5300 JMP BADEXP /IF NONE, ERROR IFNZRO RALF < 001010 4214 JMS RELERR /BOMB IF NOT ABSOLUTE EXP> 001011 1037 TAD EXPVAL+2 001012 4560 JMS I [OUTWRD 001013 5564 JMP I [NEXTST /GO DO NEXT STMT IFNZRO RALF </IF EXPVAL IS RELOCATABLE, 001014 0000 RELERR, 0 /GIVE ERROR MESSAGE 001015 1036 TAD EXPVAL+1 /CAUTION: THIS ROUTINE IS /SOMETIMES CALLED WITH NON-ZERO AC 001016 0157 AND [7770 /JUST ESD BITS 001017 7650 SNA CLA 001020 5614 JMP I RELERR /ITS ABSOLUTELY FINE 001021 1036 TAD EXPVAL+1 001022 0156 AND [7 /REMOVE ESD 001023 3036 DCA EXPVAL+1 001024 4574 JMS I [ERMSG 001025 2205 2205 /*RE* 001026 5614 JMP I RELERR > / 001027 2075 FPPMR, ISZ FPPSWT /SET FORCE ENABLE 001030 4355 JMS FPADR 001031 1042 TAD WORD1 /IF WAY OFF BASE, 001032 7450 SNA 001033 1077 TAD FPPWD2 /OR IF FORCED 001034 7450 SNA 001035 1047 TAD XFLAG /OR IF INDEXED 001036 7640 SZA CLA 001037 5261 JMP FORMT1 /USE LONG FORM 001040 1043 TAD WORD2 001041 7100 CLL 001042 1377 TAD (-600 /COMPLETE OFF-BASE CHECK 001043 7630 SZL CLA 001044 5261 JMP FORMT1 /USE LONG 001045 5317 JMP FORMT2 001046 4776 FPPS2, JMS I (GETADR /COLLECT ADDRESS EXPR 001047 4251 JMS IXMES /BUT DISALLOW INDEX 001050 5262 JMP F2WD /PUT TWO WORDS OUT / 001051 0000 IXMES, 0 001052 1047 TAD XFLAG /NO INDEX ALLOWED 001053 7650 SNA CLA 001054 5651 JMP I IXMES /HE'S COOL 001055 4574 JMS I [ERMSG / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 13-1 001056 1130 1130 /*IX* 001057 5651 JMP I IXMES / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 14 001060 4355 FPMRL, JMS FPADR 001061 4775 FORMT1, JMS I (FIXOPC 001062 1044 F2WD, TAD FPPADR 001063 0156 AND [7 /FIELD BITS 001064 1046 TAD OPCODE /IN FIRST WORD FPDMP, IFZERO RALF < JMS I [OUTWRD TAD FPPADR+1 /LOW ADDRESS JMS I [OUTWRD JMP I [NEXTST /NEXT!> IFNZRO RALF < 001065 5774 JMP I (OUTREL /DUMP TWO RELOCATABLE> 001066 4355 FPMRS, JMS FPADR /COLLECT OPERAND 001067 4251 JMS IXMES /ERROR IF INDEX GIVEN 001070 1042 TAD WORD1 001071 7640 SZA CLA 001072 5300 JMP BADEXP 001073 1043 TAD WORD2 001074 7100 CLL 001075 1377 TAD (-600 /DOES IT FIT? 001076 7620 SNL CLA 001077 5317 JMP FORMT2 001100 4574 BADEXP, JMS I [ERMSG 001101 0230 0230 /*BX* 001102 1046 TAD OPCODE /BEST GUESS OF THE DESIRED OUTPUT 001103 4560 JMS I [OUTWRD 001104 5564 JMP I [NEXTST 001105 4355 FPMRI, JMS FPADR 001106 1042 TAD WORD1 001107 7640 SZA CLA 001110 5300 JMP BADEXP /NOT EVEN CLOSE 001111 1043 TAD WORD2 001112 7100 CLL 001113 1373 TAD (-30 001114 7630 SZL CLA 001115 5300 JMP BADEXP /GOTTA BE IN THE FIRST 10 001116 4775 FORMT3, JMS I (FIXOPC 001117 1043 FORMT2, TAD WORD2 001120 4772 JMS I (OVER3 /BY 3 FOR BASE ADDRESS 001121 1155 TAD [200 001122 1046 FPPS3, TAD OPCODE 001123 4560 JMS I [OUTWRD /WHEW! 001124 5564 JMP I [NEXTST 001125 4776 FPPS1, JMS I (GETADR /GET ADDR, AND INDEX 001126 4775 JMS I (FIXOPC /PUT OPCODE TOGETHER 001127 1044 TAD FPPADR /GET ADDR EXTENSION 001130 0156 AND [7 001131 1046 TAD OPCODE /WITH TOGETHER OPCODE 001132 0371 AND (7377 /WITHDRAW ONE BIT 001133 5265 JMP FPDMP /PUT IT OUT / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 15 001134 7201 FPPS5, CLA IAC /DISALLOW INDEX INCR 001135 4776 JMS I (GETADR /COLLECT ADDRESS AND INDEX IFNZRO RALF < 001136 1044 TAD FPPADR 001137 0157 AND [7770 /MUST BE ABSOLUTE 001140 7650 SNA CLA 001141 5344 JMP .+3 /OK 001142 4574 JMS I [ERMSG 001143 2205 2205 /*RE*> 001144 1047 TAD XFLAG 001145 7640 SZA CLA /ANY INDEX? 001146 1037 TAD EXPVAL+2 001147 0156 AND [7 /STRIP OFF ESD BITS 001150 1046 TAD OPCODE 001151 4560 JMS I [OUTWRD /DUMP THAT 001152 1045 TAD FPPADR+1 001153 4560 JMS I [OUTWRD /NOW LOW 12 BITS 001154 5564 JMP I [NEXTST / 001155 0000 FPADR, 0 001156 4776 JMS I (GETADR /COLLECT ADDRESS AND INDEX 001157 1032 TAD BASER+1 001160 7161 CIA STL 001161 1045 TAD FPPADR+1 001162 3043 DCA WORD2 /GET ADDRESS RELATIVE TO BASE 001163 7004 RAL 001164 1031 TAD BASER 001165 7041 CIA 001166 1044 TAD FPPADR 001167 3042 DCA WORD1 001170 5755 JMP I FPADR 001171 7377 001172 0400 001173 7750 001174 3000 001175 2600 001176 1217 001177 7200 1200 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 16 / 001200 5446 PSEUDO, JMP I OPCODE /DISPATCH TO APPROPRIATE HNDLR / IFZERO RALF < / / ASSEMBLE VARIOUS INSTRUCTION TYPES / PDP8MR, TAD CHRPTR /SAVE POSITION DCA CPTMP TAD NCHARS DCA NCTMP /SAVE COUNT JMS I [GETCHR /LOOK FOR SPACE "I" JMP GETMR /WILL GIVE BX ERROR TAD (-"I /IS IT I? SNA CLA /IF NOT, FORGET IT JMS I [GETCHR /MUST BE FOLLOWED BY SPACE JMP NOTIND TAD [-240 SZA CLA JMP NOTIND /SOMETHING ELSE TAD OPCODE /PUT INDIRECT INTO OPCODE TAD (400 DCA OPCODE GETMR, JMS ADRGET /PICK UP ADDRESS FIELD TAD EXPVAL+2 /CHECK PAGE OF ADDRESS AND [7600 SNA JMP PAGEZ /ITS IN PAGE 0 CIA TAD LOCTR2 /COMPARE WITH CURRENT PAGE AND [7600 SNA CLA JMP THSPAG /OK, ITS THIS PAGE TAD OPCODE /CAN WE USE A LINK ? AND (400 /IS INDIRECT BIT OFF ? SNA CLA JMP I (MAKLNK /YES, GO MAKE LINK JMS I [ERMSG /NOPE, ITS AN ILLEGAL REFERENCE 1122 /*IR* THSPAG, TAD EXPVAL+2 /GET ADDRESS AND [177 /LOWER 7 BITS TAD [200 /PUT IN PAGE BIT SKP PAGEZ, TAD EXPVAL+2 /GET ADDRESS (UPPER 5 BITS ZERO) TAD OPCODE /PLUS OPCODE JMS I [OUTWRD /OUTPUT WORD JMP I [NEXTST NOTIND, TAD CPTMP /RESTORE CHAR POINTER DCA CHRPTR TAD NCTMP DCA NCHARS JMP GETMR /NOT AN INDIRECT> / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 17 001201 4210 FPPS4, JMS ADRGET /GET INDEX REG EXPRESSION IFZERO RALF < JMS LITERR /CAN'T ALLOW LITERAL> 001202 4251 JMS SUBX /GET RELATIVE INDEX VALUE 001203 1037 TAD EXPVAL+2 /GET LOWER 3 BITS 001204 0156 AND [7 /OF INDEX REG EXPR 001205 1046 TAD OPCODE /WITH OPCODE 001206 4560 JMS I [OUTWRD /OUT 001207 5564 JMP I [NEXTST 001210 0000 ADRGET, 0 /GET ADDRESS EXPR AND CHECK TYPE 001211 4565 JMS I [EXPR /GET EXPR 001212 4574 JMS I [ERMSG /BAD ADDR EXPR 001213 0230 0230 /*BX* 001214 5610 JMP I ADRGET IFZERO RALF < LITERR, 0 /GIVE ERROR IF LITERAL TAD LITRL SNA CLA JMP I LITERR JMS I [ERMSG 1114 /*IL* JMP I LITERR > IFNZRO RALF < 001215 4210 PDP8MR, JMS ADRGET 001216 5777 JMP I (CHCKMR /V.56 > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 18 001217 0000 GETADR, 0 /GET ADDR, INDEX 001220 3251 DCA XITEMP /SAVE INDEX INCREMENT SWITCH 001221 4210 JMS ADRGET /GET ADDR 001222 3075 DCA FPPSWT /KILL FPP SWITCH IFZERO RALF < JMS LITERR /DISALLOW LITERALS> 001223 1040 TAD EXPDEF /IF EXPR WAS UNDEFINED 001224 7650 SNA CLA 001225 7001 IAC /OR FORCE BIT WAS SET 001226 1076 TAD FPP2WD 001227 3077 DCA FPPWD2 /FORCE 2 WORD FORMAT 001230 3047 DCA XFLAG /ZERO INDEX SWT 001231 1036 TAD EXPVAL+1 /SAVE ADDRESS VALUE 001232 3044 DCA FPPADR 001233 1037 TAD EXPVAL+2 001234 3045 DCA FPPADR+1 001235 4575 JMS I [GETCHR /LOOK FOR COMMA 001236 5617 JMP I GETADR /NO INDEX 001237 1376 TAD (-254 001240 7640 SZA CLA 001241 4571 JMS I [BACK1 /WILL CAUSE A BX ERROR 001242 2047 ISZ XFLAG /SET INDEX SWITCH 001243 1251 TAD XITEMP /SET INDEX INCREMENT SWITCH 001244 3050 DCA XINCR 001245 4210 JMS ADRGET 001246 2050 ISZ XINCR /CLEAR INDEX INCREMENT SWITCH IFZERO RALF < JMS LITERR > 001247 4251 JMS SUBX /CALCULATE INDEX NO 001250 5617 JMP I GETADR XITEMP, 001251 0000 SUBX, 0 001252 1034 TAD INDXR+1 /CHECK FOR INDEX IN RANGE 001253 7161 STL CIA 001254 1037 TAD EXPVAL+2 001255 3037 DCA EXPVAL+2 001256 7004 RAL 001257 1033 TAD INDXR 001260 7041 CIA 001261 1036 TAD EXPVAL+1 001262 7640 SZA CLA 001263 5270 JMP BIERR 001264 1037 TAD EXPVAL+2 001265 7100 CLL 001266 1157 TAD [-10 001267 7630 SZL CLA 001270 4574 BIERR, JMS I [ERMSG 001271 0211 0211 /*BI* 001272 5651 JMP I SUBX / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 19 IFNZRO RALF < / / AT END OF PASS, / CLEAR LENGTHS OF ALL SECTIONS / 001273 0000 CLRSCT, 0 001274 1375 TAD (PNDL+3 001275 3066 DCA LTEMP /POINT TO USER SYMBOL SPACE 001276 6211 CDF FLD1 001277 1466 CSLOOP, TAD I LTEMP /GET TYPE 001300 0154 AND [37 /STRIP TO TYPE ONLY 001301 1374 TAD (-3 001302 7710 SPA CLA /IS IT COMMON OR SECTION? 001303 5313 JMP NOTSCT /NO, PASS IT 001304 2066 ISZ LTEMP /BUMP POINTER TO VALUE 001305 1466 TAD I LTEMP 001306 0157 AND [7770 /SAVE ESD NUMBER 001307 3466 DCA I LTEMP 001310 2066 ISZ LTEMP 001311 3466 DCA I LTEMP /CLEAR LOW ORDER 001312 7344 CLA CLL CMA RAL /-2 001313 1373 NOTSCT, TAD (6 /BUMP POINTER 001314 1066 TAD LTEMP /TO NEXT SYMBOL 001315 3066 DCA LTEMP 001316 1016 TAD NEXT /COMPARE END OF SYMBOL TABLE 001317 7141 CIA CLL 001320 1066 TAD LTEMP 001321 7620 SNL CLA 001322 5277 JMP CSLOOP /MORE TO GO 001323 6201 CDF FLD0 001324 5673 JMP I CLRSCT /THAS ALL> / / IFNZRO RALF < / / ENSURE BOTH SYMBOL AND SUB-EXPR ARE ABSOLUTE / 001325 0000 NOREL, 0 001326 1042 TAD WORD1 /IS SYMBOL RELOCATABLE? 001327 0157 AND [7770 /TEST ESD BITS 001330 7640 SZA CLA 001331 7130 STL RAR /IF SO, FORCE ERROR 001332 4772 JMS I (RELERR /TEST SUB EXPR 001333 5725 JMP I NOREL 001334 7330 DPCHKX, CLA CLL CML RAR /SET DPFLG, MODULE NEEDS 001335 3030 DCA DPFLG /DP HARDWARE 001336 5564 JMP I [NEXTST / SET BASE AND INDEX LOCS 001337 7326 INDXX, CLA STL RTL /INDXR MUST JUST FOLLOW BASER 001340 1371 BASEX, TAD (BASER-1 /POINT TO VALUE TO BE SET 001341 3012 DCA X12 /HOPEFULLY UNUSED XR 001342 4770 JMS I (ADRGET /COLLECT EXPRESSION / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 19-1 001343 1036 TAD EXPVAL+1 001344 3412 DCA I X12 /HIGH ORDER AND ESD 001345 1037 TAD EXPVAL+2 001346 3412 DCA I X12 /LOW ORDER 001347 5564 JMP I [NEXTST >/THIS CONDITIONAL SASSEMBLY WAS /EXPANDED TO INCLUDE INDXX ON THIS PAGE. IT IS ALSO /COND. ASSEMBLED ON ANOTHER PAGE FOR FLAP. 001350 0000 DELFIL, 0 001351 1173 TAD [7600 001352 3106 DCA OUFILE 001353 4553 JMS I [OFNAME 001354 7201 CLA IAC 001355 6212 CIF 10 001356 4516 JMS I USR 001357 0004 4 001360 4362 OUFNAM 001361 0000 0 001362 7000 NOP 001363 5750 JMP I DELFIL 001370 1210 001371 0030 001372 1014 001373 0006 001374 7775 001375 1574 001376 7524 001377 3236 1400 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 20 / / PRINT THE CURRENT LINE IF NOT ALREADY DONE / 001400 0000 PRNTLN, 0 /PRINT THE LINE 001401 1062 TAD OUTSWT /HAS THE LINE BEEN PRINTED YET? 001402 7640 SZA CLA 001403 5600 JMP I PRNTLN /YES, COOL IT 001404 2062 ISZ OUTSWT /SET SWITCH 001405 1141 TAD BLINE /POINTER TO LINE 001406 3013 DCA X13 001407 3233 DCA CRLF /CLEAR POSITION COUNT 001410 5220 JMP PRLTST /IN CASE OF EMPTY LINE 001411 1413 PRLNXT, TAD I X13 /GET A CHAR 001412 1377 TAD (-211 /WATCH OUT FOR TAB 001413 7450 SNA 001414 5223 JMP TABIT /CONVERT TO BLANKS 001415 1376 TAD (211 /RESTORE 001416 2233 ISZ CRLF /BUMP POSITION COUNT 001417 4505 JMS I PC /PRINT IT 001420 2023 PRLTST, ISZ LINSIZ /CHECK COUNT 001421 5211 JMP PRLNXT 001422 5600 JMP I PRNTLN 001423 1152 TABIT, TAD [240 /REPLACE TAB WITH BLANKS 001424 2233 ISZ CRLF 001425 4505 JMS I PC 001426 1233 TAD CRLF 001427 0156 AND [7 001430 7640 SZA CLA 001431 5223 JMP TABIT 001432 5220 JMP PRLTST / / GO TO NEXT LINE / 001433 0000 CRLF, 0 001434 7200 CLA 001435 1375 TAD (215 001436 4505 JMS I PC /PRINT A CHAR 001437 1374 TAD (212 001440 4505 JMS I PC 001441 2112 ISZ LINPAG /FULL PAGE? 001442 5633 JMP I CRLF /NO 001443 7240 CLA CMA 001444 3112 DCA LINPAG / / NEW PAGE, WITH HEADING AND PAGE NO / 001445 1056 TAD PASSNO /IF NOT LISTING PASS 001446 7740 SMA SZA CLA 001447 1061 TAD LISTSW /OR IF NOT LISTING, 001450 7650 SNA CLA 001451 5633 JMP I CRLF /DO NOT EJECT 001452 1303 TAD RFORMF / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 20-1 001453 7440 SZA /DON'T F.F. FIRST TIME 001454 4505 JMS I PC /TOP OF PAGE 001455 1373 TAD (214 001456 3303 DCA RFORMF 001457 4772 JMS I (PRTXT /PRINT HEADING 001460 0543 TITBUF-1 001461 7761 -TITLEN 001462 1110 TAD LPAGE1 /FORM FEED COUNT 001463 4771 JMS I (DECOUT 001464 1111 TAD LPAGE2 001465 7650 SNA CLA 001466 5273 JMP .+5 /NO SUB PAGE IF 0 001467 1370 TAD (255 001470 4505 JMS I PC 001471 1111 TAD LPAGE2 001472 4771 JMS I (DECOUT 001473 2111 ISZ LPAGE2 001474 1375 TAD (215 /FOR BH 001475 4505 JMS I PC 001476 1374 TAD (212 001477 4505 JMS I PC 001500 1367 TAD (-71 /RESET LINE COUNTER 001501 3112 DCA LINPAG 001502 5234 JMP CRLF+1 /GIVE ANOTHER CRLF 001503 0000 RFORMF, 0 / / PRINT TEXT / 001504 0000 PRTXT, 0 001505 1704 TAD I PRTXT 001506 3013 DCA X13 001507 2304 ISZ PRTXT 001510 1704 TAD I PRTXT 001511 3200 DCA PRTTMP 001512 2304 ISZ PRTXT 001513 1413 TAD I X13 001514 4320 JMS PRINT2 001515 2200 ISZ PRTTMP 001516 5313 JMP .-3 001517 5704 JMP I PRTXT 1400 PRTTMP= PRNTLN / 001520 0000 PRINT2, 0 001521 3355 DCA P2 001522 1355 TAD P2 001523 4551 JMS I [R6R 001524 4330 JMS P1 001525 1355 TAD P2 001526 4330 JMS P1 001527 5720 JMP I PRINT2 / 001530 0000 P1, 0 001531 0163 AND [77 001532 7450 SNA 001533 5337 JMP .+4 /PRINT ZERO AS BLANK / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 20-2 001534 1366 TAD (-40 /TEST ABOVE OR BELOW 300 001535 7510 SPA 001536 1150 TAD [100 /ABOVE, MAKE 301 TO 337 001537 1152 TAD [240 /IF BELOW, MAKE 240 TO 277 001540 4505 JMS I PC /PRINT IT, WHATEVER IT IS 001541 5730 JMP I P1 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 21 / 001542 0000 TTYOUT, 0 001543 6046 TLS 001544 6041 TSF 001545 5344 JMP .-1 001546 4765 TTYCLA, JMS I (CKCTC /CHECK FOR ^C - AC CONTAINS DIFFERENCE 001547 1364 TAD (-14 /CTRL/O 001550 7640 SZA CLA 001551 5742 JMP I TTYOUT 001552 1354 TAD .+2 001553 3343 DCA TTYOUT+1 001554 5742 JMP I TTYOUT / 001555 0000 P2, 0 / IFZERO RALF < TXLNK, TEXT " LINKS" TXLLN= .-TXLNK > IFNZRO RALF < 001556 4001 TXABR, TEXT " ABS REFS" 001557 0223 001560 4022 001561 0506 001562 2300 0005 TXALN= .-TXABR > 001564 7764 001565 1674 001566 7740 001567 7707 001570 0255 001571 2673 001572 1504 001573 0214 001574 0212 001575 0215 001576 0211 001577 7567 1600 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 22 / / GET AND EVALUATE AN EXPRESSION / 001600 0000 EXPR, 0 /GET EXPRESSION 001601 3035 DCA EXPVAL /ZERO EXPR VALUE 001602 3036 DCA EXPVAL+1 001603 3037 DCA EXPVAL+2 001604 7201 CLA IAC 001605 3040 DCA EXPDEF /AND TYPE 001606 7201 CLA IAC /SET EXPR SWITCH TO NO EXPR 001607 3041 DCA EXPSW 001610 3076 DCA FPP2WD /SET FORCE SWITCH OFF 001611 7201 CLA IAC /SET LASTOP TO + 001612 3055 DCA LASTOP IFZERO RALF < JMS I (CHKLIT /GO CHECK FOR LITERAL> 001613 4777 JMS I (GETSGN /IGNORE +, BUMP LASTOP IF - 001614 4570 SYMBOL, JMS I [GETNAM /NOW PICK UP NAME 001615 5256 JMP NOSYM /NONE, TRY OTHER 001616 4567 JMS I [LOOKUP /LOOK IT UP 001617 5334 JMP UNDEF /A NEW ONE IFZERO RALF < JMP ADR /YES > IFNZRO RALF < 001620 7110 CLL RAR 001621 7450 SNA 001622 5306 JMP ADR 001623 1466 SCTN, TAD I LTEMP /GET TYPE 001624 0376 AND (40 /FORCE BIT 001625 7640 SZA CLA 001626 2076 ISZ FPP2WD /SET FORCE EXPR SW 001627 1410 TAD I X10 /GET ESD FROM SYMBOL 001630 0157 AND [7770 /ESD ONLY 001631 3042 DCA WORD1 /INTERNALLY, SYMBOL VAL IS ZERO 001632 5315 JMP CLR2 /SO CLEAR WORD 2> / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 23 001633 1375 NOTDOT, TAD (256-242 /IS IT DBL QUOTE? 001634 7640 SZA CLA 001635 5240 JMP ENDEXP 001636 2020 ISZ NCHARS /IS THERE ANOTHER CHAR? 001637 5271 JMP ISQUOT /YES, USE IT 001640 4571 ENDEXP, JMS I [BACK1 /PUT IT BACK 001641 1041 TAD EXPSW /WAS THERE ANY EXPRESSION AT ALL? 001642 7640 SZA CLA 001643 5253 JMP BAD /NO, DON'T SKIP IFZERO RALF < TAD LITRL /WAS IT A LITERAL REF? SZA CLA JMS I (CRLIT /YES, STICK IT IN THE POOL> 001644 1055 TAD LASTOP /TRAILING OPERATOR? 001645 7450 SNA 001646 5252 JMP OKEXP /NO, ALL IS FINE 001647 7110 CLL RAR /IF PLUS OPERATOR 001650 1050 TAD XINCR /AND THATS LEGAL 001651 7650 SNA CLA 001652 2200 OKEXP, ISZ EXPR /GOOD EXPR, BUMP RETURN 001653 4274 BAD, JMS CKCTC 001654 7200 CLA 001655 5600 JMP I EXPR /AND RETURN / 001656 4774 NOSYM, JMS I (NUMBER /LOOK FOR A NUMBER 001657 5317 JMP ADREXP /USE NUMBER 001660 4575 JMS I [GETCHR /NOT A NUMBER, GET A CHAR 001661 5241 JMP ENDEXP+1 /NONE LEFT, END 001662 1373 TAD (-256 /IS IT "." ? 001663 7440 SZA 001664 5233 JMP NOTDOT /NO, TRY FOR QUOTE 001665 1026 TAD LOCTR1 /THIS WAS LOC SYMBOL 001666 3042 DCA WORD1 /PUT VALUE INTO WORD1,2 001667 1027 TAD LOCTR2 001670 5315 JMP CLR2 /AND USE VALUE 001671 3042 ISQUOT, DCA WORD1 001672 1417 TAD I CHRPTR 001673 5315 JMP CLR2 001674 0000 CKCTC, 0 001675 7200 CLA 001676 6031 KSF /IF NOTHING AT THE KEYBOARD, 001677 5674 JMP I CKCTC /RETURN 001700 1155 TAD [200 001701 6034 KRS /ELSE, LOOK AT IT 001702 1372 TAD (-203 /IS IT CTRL/C? 001703 7450 SNA 001704 5573 JMP I [7600 /GO TO MOMMA 001705 5674 JMP I CKCTC / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 24 001706 1466 ADR, TAD I LTEMP /CHECK FORCE BIT FOR THIS SYMBOL 001707 0376 AND (40 001710 7640 SZA CLA 001711 2076 ISZ FPP2WD /AND SET SWITCH IF BIT ON 001712 1410 TAD I X10 /GET FIRST WORD OF VALUE 001713 3042 ONE, DCA WORD1 /SINGLE WORD SYMBOL, HIGH=0 001714 1410 TAD I X10 /GET REST OF SYMBOL 001715 3043 CLR2, DCA WORD2 001716 6201 CDF FLD0 /FIX FIELD 001717 3041 ADREXP, DCA EXPSW /KILL FIRST TIME SWITCH 001720 1055 TAD LASTOP /PICK UP LAST OPERATOR 001721 1324 TAD ADROP /MAKE A JMP I 001722 3323 DCA .+1 001723 0000 0 /DO IT 001724 5724 ADROP, JMP I . 001725 2000 ADRADD 001726 2013 ADRSUB 001727 2064 ADRMUL 001730 2073 ADRDIV 001731 2040 ADRAND 001732 2047 ADROR 001733 2047 ADROR / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 25 001734 1075 UNDEF, TAD FPPSWT /IS THIS AN FPP ADDR ? 001735 7650 SNA CLA 001736 5343 JMP .+5 /NO, SKIP AROUND 001737 1466 TAD I LTEMP /TURN ON FORCE BIT 001740 0371 AND (7737 /FOR THIS SYMBOL 001741 1376 TAD (40 001742 3466 DCA I LTEMP 001743 3040 DCA EXPDEF /SET TYPE TO UNDEFINED 001744 6201 CDF FLD0 /FIX FIELD 001745 3041 DCA EXPSW /KILL FIRST TIME SWITCH 001746 4574 JMS I [ERMSG 001747 2523 2523 /*US* 001750 1370 OPR8R, TAD (OPR8RS-1 /SET POINTER 001751 3011 DCA X11 /TO OPERATOR TABLE 001752 3055 DCA LASTOP /ZERO LASTOP 001753 4575 JMS I [GETCHR /GET CHAR 001754 5241 JMP ENDEXP+1 /NONE, DONE 001755 3067 DCA EXTMP /SAVE IT 001756 2055 FINDOP, ISZ LASTOP 001757 1411 TAD I X11 /GET NEXT LIST ENTRY 001760 7450 SNA 001761 5366 JMP NOOPR /ZERO IS END OF LIST 001762 1067 TAD EXTMP /COMPARE 001763 7640 SZA CLA 001764 5356 JMP FINDOP /LOOP 001765 5214 JMP SYMBOL /LOOK FOR OPERAND 001766 3055 NOOPR, DCA LASTOP /NO MATCH FOUND 001767 5240 JMP ENDEXP /PUT IT BACK 001770 2621 001771 7737 001772 7575 001773 7522 001774 2277 001775 0014 001776 0040 001777 4617 2000 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 26 ADRADD, IFNZRO RALF < 002000 1042 TAD WORD1 002001 0157 AND [7770 /IF THIS SYMBOL IS RELOCATABLE, 002002 7640 SZA CLA /CHECK FOR EXPR VALIDITY 002003 4777 JMS I (RELERR > 002004 1037 TAD EXPVAL+2 /ADD FOR 15 BIT ADDRESS 002005 7100 CLL /ZERO LINK 002006 1043 TAD WORD2 /ADD LOW WORDS 002007 3037 DCA EXPVAL+2 /SAVE RESULT 002010 7004 RAL /PUT CARRY INTO BIT 11 002011 1042 TAD WORD1 /ORDER WORDS 002012 5234 JMP ADRASX /LOOK FOR OPERATOR ADRSUB, IFNZRO RALF < 002013 1042 TAD WORD1 /IF SYMBOL IS RELOCATABLE 002014 0157 AND [7770 /WE MUST COMPARE SECTIONS 002015 7041 CIA /IF EQUAL, EXPR BECOMES ABSOLUTE 002016 7450 SNA /ELSE, EXPR IS ILLEGAL 002017 5224 JMP .+5 /OK, USE EXPVAL ESD 002020 4777 JMS I (RELERR /COMPARE: AC DELIBERATELY NON-ZERO 002021 1036 TAD EXPVAL+1 002022 0156 AND [7 /IF WORD RELOCATABLE, EXP IS ABS 002023 3036 DCA EXPVAL+1 > 002024 1043 TAD WORD2 /SUBTR LOW 12 BITS 002025 7161 CLL CML CIA 002026 1037 TAD EXPVAL+2 002027 3037 DCA EXPVAL+2 /SAVE LOW HALF 002030 7004 RAL 002031 1042 TAD WORD1 /SUBTRACT HIGH HALF 002032 7041 CIA 002033 0156 AND [7 /DO NOT SUBTR ESD'S 002034 1036 ADRASX, TAD EXPVAL+1 002035 0376 AND (7767 /PREVENT CARRY INTO BIT 8 002036 3036 ADRASY, DCA EXPVAL+1 /SAVE HIGH HALF 002037 5775 JMP I (OPR8R /GET OPERATOR /INDXX HERE FOR FLAP IFZERO RALF < / SET BASE AND INDEX LOCS INDXX, CLA STL RTL /INDXR MUST JUST FOLLOW BASER BASEX, TAD (BASER-1 /POINT TO VALUE TO BE SET DCA X12 /HOPEFULLY UNUSED XR JMS I (ADRGET /COLLECT EXPRESSION TAD EXPVAL+1 DCA I X12 /HIGH ORDER AND ESD TAD EXPVAL+2 DCA I X12 /LOW ORDER JMP I [NEXTST > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 27 002040 1042 ADRAND, TAD WORD1 /AND 002041 0036 AND EXPVAL+1 /HIGH 002042 0156 AND [7 /3 BITS 002043 3036 DCA EXPVAL+1 /HALF 002044 1043 TAD WORD2 /THEN 002045 0037 AND EXPVAL+2 /LOW 002046 5261 JMP ADRAOX 002047 1042 ADROR, TAD WORD1 /OR IS PERFORMED BY 002050 7040 CMA /SETTING THE BITS 002051 0036 AND EXPVAL+1 /THAT ARE ON IN B AND NOT ON IN A 002052 1042 TAD WORD1 /AND THEN SETTING THE BITS 002053 0156 AND [7 002054 3036 DCA EXPVAL+1 /THAT ARE ON IN A 002055 1043 TAD WORD2 002056 7040 CMA 002057 0037 AND EXPVAL+2 002060 1043 TAD WORD2 002061 3037 ADRAOX, DCA EXPVAL+2 IFNZRO RALF < 002062 4774 JMS I (NOREL /**> 002063 5775 JMP I (OPR8R /GET NEXT OPERATOR / / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 28 002064 1043 ADRMUL, TAD WORD2 /**RL CODE 002065 7041 CIA 002066 3036 DCA EXPVAL+1 /MULT BY 002067 1037 TAD EXPVAL+2 /REPEATED ADDITIONS 002070 2036 ISZ EXPVAL+1 002071 5267 JMP .-2 002072 5261 JMP ADRAOX 002073 3042 ADRDIV, DCA WORD1 002074 3036 DCA EXPVAL+1 002075 1043 TAD WORD2 002076 7650 SNA CLA 002077 5312 JMP DIVERR 002100 1037 TAD EXPVAL+2 002101 7141 CIA CLL 002102 1043 TAD WORD2 002103 7430 SZL 002104 5307 JMP .+3 /DIVIDE BY 002105 2042 ISZ WORD1 /COUNTING SUBTRACTIONS 002106 5302 JMP .-4 002107 7200 CLA 002110 1042 TAD WORD1 002111 5261 JMP ADRAOX / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 29 002112 4574 DIVERR, JMS I [ERMSG 002113 0626 0626 /*DV* 002114 5775 JMP I (OPR8R /CONTINUE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 30 002115 1017 PDPOPR, TAD CHRPTR 002116 3021 DCA CPTMP 002117 1020 TAD NCHARS 002120 3022 DCA NCTMP 002121 4570 JMS I [GETNAM /LOOK FOR ANOTHER MICRO-INST 002122 5347 JMP TRYEXP /NONE 002123 1373 TAD (33 /USE INTERNAL TABLE 002124 4561 JMS I [FIND /IS IT THERE ? 002125 5347 JMP TRYEXP /NO 002126 1372 TAD (-PDPOP /IS IT AN OPERATE ? 002127 7640 SZA CLA 002130 5347 JMP TRYEXP /NO 002131 1410 TAD I X10 /GET VALUE 002132 6201 CDF FLD0 002133 3037 DCA EXPVAL+2 002134 1037 PDPOR, TAD EXPVAL+2 002135 7040 CMA /OR THEM TOGETHER 002136 0046 AND OPCODE 002137 1037 TAD EXPVAL+2 002140 3046 DCA OPCODE 002141 4575 JMS I [GETCHR /MORE CHARS ? 002142 5771 JMP I (FPPS3 /NO-DONE 002143 1166 TAD [-240 /BLANK ? 002144 7650 SNA CLA 002145 5315 JMP PDPOPR /YES-PROCESS NEXT 002146 5770 JMP I (BADEXP 002147 6201 TRYEXP, CDF FLD0 002150 1021 TAD CPTMP 002151 3017 DCA CHRPTR 002152 1022 TAD NCTMP 002153 3020 DCA NCHARS 002154 2022 ISZ NCTMP 002155 7410 SKP 002156 5771 JMP I (FPPS3 002157 4565 JMS I [EXPR 002160 5770 JMP I (BADEXP 002161 5334 JMP PDPOR 002162 4023 TXSYM, TEXT " SYMBOLS," 002163 3115 002164 0217 002165 1423 002166 5400 0005 TXSLN=.-TXSYM 002170 1100 002171 1122 002172 7760 002173 0033 002174 1325 002175 1750 002176 7767 002177 1014 2200 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 31 IFZERO RALF < / / LITERAL THINGS / CHKLIT, 0 /CHECK FOR LITERAL DCA PAGENO /ZERO PAGE NUMBER DCA LITRL JMS I [GETCHR /GET CHARACTER JMP I CHKLIT /NO LITERAL TAD (-250 /CHECK FOR ( SNA ISZ PAGENO /CURRENT PAGE LITERAL SZA /SKIP IF ALREADY ZERO TAD (-63 /CHECK FOR [ SNA ISZ LITRL /SET SWITCH SZA CLA JMS I [BACK1 /PUT BACK NON ([ JMP I CHKLIT / / CREATE A LINK FOR OFF-PAGE REFERENCE / MAKLNK, TAD (THSPAG /PROPER RETURN ADDR DCA CRLIT TAD OPCODE /SET INDIRECT BIT TAD (400 DCA OPCODE CLA IAC DCA PAGENO /SET INDICATOR ISZ LINKS /COUNT ANOTHER LINK GENERATED ISZ LINKSW /SET SWITCH FOR APOSTROPHE OUTPUT JMP NOTP0 CRLIT, 0 /CREATE LITERAL /VALUE:EXPVAL, IN PAGE:PAGENO TAD PAGENO /CHECK FOR PAGE 0 SNA CLA JMP ISP0 /PAGE 0 LITERAL NOTP0, TAD (CPLBUF /SET PTR TO LITERAL BUFFER DCA LITBAS TAD LOCTR2 /CHECK FOR LIT BUFFER FULL AND [100 SNA CLA JMP DOLIT-1 /USE 77 AS LIMIT TAD LOCTR2 AND [177 JMP DOLIT /USE CURRENT ADDR AS LIMIT / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 32 ISP0, TAD (P0LBUF /USE PAGE 0 LIT BUFFER DCA LITBAS TAD [77 /ASSUME FIRST 64 WORDS USED DOLIT, DCA NWUSED TAD PAGENO /GET POINTER TO TAD [P0LIT /LITERAL BOUNDARY DCA XPAGE TAD I XPAGE /DISPLACEMENT OF LIT BUFR - 1 DCA LITPTR /INTO LITPTR NOTIT, TAD LITPTR /POINTER+SIZE TAD (-177 /SHOULD BE LESS THAN 177 SMA CLA JMP NEWLIT /ENTER NEW LITERAL TAD LITPTR /NOW GET POINTER TAD LITBAS /TO TABLE DCA X11 /FOR COMPARISON ISZ LITPTR /INCREMENT POINTER TAD I X11 /GET WORD OF LITERAL CIA TAD EXPVAL+2 /COMPARE PROTOTYPE SZA CLA JMP NOTIT /NOT IT, SLIDE POINTER AND RETRY LITADR, TAD PAGENO /PAGE 0 ? SZA CLA TAD LOCTR2 /NO, CURRENT PAGE, GET ADDRESS AND [7600 TAD LITPTR /PLUS PAGE DISPLACEMENT DCA EXPVAL+2 /INTO VALUE TAD LOCTR1 RETLIT, DCA EXPVAL+1 JMP I CRLIT / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 33 NEWLIT, CLA CMA TAD I XPAGE /MOVE LITERAL BOUNDARY DOWN DCA X10 /ADDRESS OF NEW LITERAL TAD NWUSED /CHECK FOR PAGE OVERFULL CIA TAD X10 SMA CLA JMP .+5 /NOT FULL JMS I [ERMSG /*PO* 2017 DCA EXPVAL+2 /ZERO ADDRESS JMP RETLIT TAD X10 DCA I XPAGE TAD I XPAGE /SET UP POINTER FOR MOVE TAD LITBAS DCA X10 TAD EXPVAL+2 /MOVE LITERAL IN DCA I X10 TAD I XPAGE /SET UP LITERAL ADDRESS IAC DCA LITPTR JMP LITADR /RETURN LITERAL ADDRESS LITBAS, 0 NWUSED, 0 LITPTR, 0 PAGENO, 0 XPAGE, 0 PAGE /> / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 34 / / FIND SYMBOL TABLE ENTRY / FOR THE SYMBOL IN BUCKET AND NAME 1, 2, 3 / SKIP IF FOUND WITH TYPE IN AC / 002200 0000 FIND, 0 /SYMBOL TABLE LOOKUP 002201 1051 TAD BUCKET /GET BUCKET ADDRESS 002202 6211 CDF FLD1 /GO TO FIELD 1 002203 3004 LOOK, DCA OLDN3 /THIS IS PTR OF PREV ENTRY 002204 1404 TAD I OLDN3 /THIS IS ADR OF NEXT ENTRY 002205 7450 SNA /IF ZERO, THEN 002206 5600 JMP I FIND /IT AIN'T HERE 002207 3010 DCA X10 /SAVE NEXT NAME PTR 002210 1052 TAD NAME1 /COMPARE NAMES 002211 7141 CIA CLL 002212 1410 TAD I X10 /WORD 1 002213 7640 SZA CLA 002214 5236 JMP NOTSAM 002215 1053 TAD NAME2 002216 7141 CIA CLL 002217 1410 TAD I X10 /WORD2 002220 7640 SZA CLA 002221 5236 JMP NOTSAM 002222 1054 TAD NAME3 002223 7141 CIA CLL 002224 1410 TAD I X10 /COMPARE LAST CHAR 002225 0121 AND NP7700 /HIGH HALF ONLY 002226 7640 SZA CLA 002227 5236 JMP NOTSAM 002230 2200 ISZ FIND /IF FOUND BUMP RETURN 002231 1010 TAD X10 002232 3066 DCA LTEMP /ADDR OF TYPE WORD 002233 1466 TAD I LTEMP /GET TYPE INTO AC 002234 0154 AND [37 /WITHOUT FORCE BIT 002235 5600 JMP I FIND /RETURN 002236 7630 NOTSAM, SZL CLA /IS NAME 1,2,3 .LT. ENTRY 002237 5600 JMP I FIND /YES, IT ISN'T HERE 002240 1404 TAD I OLDN3 /GET ADDR OF LINK INTO AC 002241 5203 JMP LOOK /LOOP / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 35 / / FIND SYMBOL, OR IF NOT THERE, CREATE ENTRY FOR IT / 002242 0000 LOOKUP, 0 002243 4200 JMS FIND 002244 5250 JMP .+4 002245 7440 SZA 002246 2242 ISZ LOOKUP /SKIP RETURN IF DEFINED 002247 5642 JMP I LOOKUP /RETURN TYPE CODE 002250 1404 TAD I OLDN3 /GET FORWARD LINK TO 002251 3416 DCA I NEXT /NEXT ENTRY INTO NEW ENTRY 002252 1016 TAD NEXT /PUT FORWARD LINK TO NEW 002253 3404 DCA I OLDN3 /ENTRY INTO PREVIOUS ENTRY 002254 1052 TAD NAME1 /PUT IN NAME 002255 3416 DCA I NEXT 002256 1053 TAD NAME2 002257 3416 DCA I NEXT 002260 1054 TAD NAME3 002261 3416 DCA I NEXT 002262 1016 TAD NEXT /X10=NEXT 002263 3010 DCA X10 002264 1016 TAD NEXT /LTEMP=NEXT 002265 3066 DCA LTEMP 002266 3416 DCA I NEXT /INITIAL VALUE IS ZERO 002267 3416 DCA I NEXT 002270 1016 TAD NEXT /CHECK FOR TABLE FULL 002271 7100 CLL 002272 1155 TAD [200 /GONNA OVERFLO PS8? 002273 7620 SNL CLA 002274 5642 JMP I LOOKUP /NO PROBLEMS, RETURN (NO SKIP) 002275 4547 JMS I [ERMSG1 002276 2324 2324 /*ST* / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 36 / / COLLECT AN INTEGER IN THE CURRENT RADIX / 002277 0000 NUMBER, 0 /GET INTEGER NUMBER (NO SIGN) 002300 3364 DCA NSWTCH /CLEAR SWITCH 002301 3242 DCA NOFLO /CLEAR OVRFLO SW 002302 3042 DCA WORD1 /CLEAR 24 BIT NUMBER 002303 3043 DCA WORD2 002304 4777 NUMLUP, JMS I (DIGIT 002305 5350 JMP NODGT /TOO BAD 002306 3200 DCA NUM /YES, SAVE IT 002307 1042 TAD WORD1 /SAVE CURRENT VALUE 002310 3067 DCA NUM1 /OF NUMBER 002311 1043 TAD WORD2 002312 3070 DCA NUM2 002313 4364 JMS SHIFT /SHIFT WORD1,2, LEFT 1 (MULT BY 2) 002314 4364 JMS SHIFT /DO IT AGAIN (MULT BY 4) 002315 1065 TAD RADIX /LOOK AT RADIX (1=DECIMAL) 002316 7650 SNA CLA 002317 5331 JMP OCTNUM /ITS OCTAL 002320 7100 CLL /DECIMAL, ADD IN NUMBER 002321 1070 TAD NUM2 002322 1043 TAD WORD2 /THUS MULTIPLYING BY 5 002323 3043 DCA WORD2 002324 7004 RAL 002325 1067 TAD NUM1 002326 1042 TAD WORD1 002327 3042 DCA WORD1 002330 5335 JMP ADDDGT 002331 1200 OCTNUM, TAD NUM 002332 0157 AND [7770 /CHECK FOR 8 OR 9 002333 7640 SZA CLA 002334 2242 ISZ NOFLO /SET ERROR FLAG 002335 4364 ADDDGT, JMS SHIFT /SHIFT LEFT 1 AGAIN, THUS 002336 1043 TAD WORD2 /MULTIPLYING BY 8 OR 10 002337 7100 CLL /THEN ADD IN NEW DIGIT 002340 1200 TAD NUM 002341 3043 DCA WORD2 002342 7004 RAL 002343 1042 TAD WORD1 002344 3042 DCA WORD1 002345 7430 SZL /BEWARE OF OVERFLO 002346 2242 ISZ NOFLO 002347 5304 JMP NUMLUP /LOOP / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 37 002350 1364 NODGT, TAD NSWTCH /WAS THERE A NUMBER 002351 7650 SNA CLA 002352 2277 ISZ NUMBER /NO, SKIP 002353 1042 TAD WORD1 002354 0157 AND [7770 /CHECK FOR MORE THAN 15 BITS 002355 7450 SNA 002356 1242 TAD NOFLO /OR GROSS OVERFLOW 002357 7650 SNA CLA 002360 5677 JMP I NUMBER /ALL GREEN 002361 4574 JMS I [ERMSG 002362 1605 1605 /*NE* 002363 5677 JMP I NUMBER /RETURN 2242 NOFLO= LOOKUP /ZERO IF NO ERRORS 2200 NUM= FIND 0067 NUM1= EXTMP 0070 NUM2= EXTMP2 NSWTCH, /ZERO IF NO DIGITS 002364 0000 SHIFT, 0 /SHIFT DOUBLE WORD LEFT 1 002365 1043 TAD WORD2 002366 7104 CLL RAL 002367 3043 DCA WORD2 002370 1042 TAD WORD1 002371 7004 RAL 002372 3042 DCA WORD1 002373 7430 SZL /IF BIT SHIFTED FROM HI WORD, 002374 2242 ISZ NOFLO /SET ERROR FLAG 002375 5764 JMP I SHIFT 002377 2534 2400 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 38 / / BACK UP GETCHR POINTERS, / WE DON'T WANT THIS ONE / 002400 0000 BACK1, 0 002401 7240 CLA CMA /BACKUP COUNT 002402 1020 TAD NCHARS 002403 3020 DCA NCHARS 002404 7240 CLA CMA /AND POINTER 002405 1017 TAD CHRPTR 002406 3017 DCA CHRPTR 002407 5600 JMP I BACK1 / / GET NEXT CHAR FROM LINE BUFFER / FOR ASSEMBLY PURPOSES ONLY / SKIP UNLESS END OF LINE (CR, ;, OR /) / 002410 0000 GETCHR, 0 002411 4226 JMS GETAC 002412 2210 GETSKP, ISZ GETCHR /SKIP RETURN 002413 5610 JMP I GETCHR 002414 4226 BLANK, JMS GETAC /COME HERE IF BALNK OR TAB 002415 1377 TAD (-257 /END OF LINE ON SLASH AFTER BLANK 002416 7650 SNA CLA 002417 5231 JMP GETCND 002420 4200 JMS BACK1 /PUT IT BACK 002421 1152 TAD [240 /AND RETURN A SINGLE BLANK 002422 5212 JMP GETSKP /SKIP OUT 002423 2064 SEMICL, ISZ SCSWT 002424 4200 JMS BACK1 /PUT BACK SEMI COLON 002425 5610 JMP I GETCHR 002426 0000 GETAC, 0 002427 2020 ISZ NCHARS /END OF LINE? 002430 5234 JMP .+4 /NO, GET IT 002431 7240 GETCND, CLA CMA /YES, RESET IN CASE OF 002432 3020 DCA NCHARS /ANOTHER CALL 002433 5610 JMP I GETCHR /RETURN END OF LINE 002434 1417 TAD I CHRPTR /PICK UP NEXT 002435 1166 TAD [-240 /CHECK FOR BLANK 002436 7440 SZA 002437 1376 TAD (240-211 /OR TAB 002440 7450 SNA 002441 5214 JMP BLANK /THEY GET SPECIAL HANDLING 002442 1375 TAD (211-273 /LOOKOUT FOR SEMICOLON 002443 7450 SNA 002444 5223 JMP SEMICL /ALSO SPECIAL 002445 1374 TAD (273-276 /IGNORE CLOSE ANGLE BRACKET 002446 7450 SNA 002447 5227 JMP GETAC+1 /GET ANOTHER 002450 1373 TAD (276 /ELSE, RESTORE CHAR 002451 5626 JMP I GETAC /AND PASS IT BACK / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 39 / / COLLECT A SYMBOL IN BUCKET, NAME 1,2, & 3 / NO SKIP ON RETURN IF NO SYMBOL / 002452 0000 GETNAM, 0 002453 3052 DCA NAME1 /CLEAR SYMBOL SPACE 002454 3053 DCA NAME2 002455 3054 DCA NAME3 002456 4321 JMS LETTER /GET A LETTER 002457 5267 JMP ISSYM 002460 4210 JMS GETCHR /CHECK FOR # 002461 5652 JMP I GETNAM /NOPE 002462 1372 TAD (-"# 002463 7650 SNA CLA 002464 5267 JMP ISSYM 002465 4200 JMS BACK1 002466 5652 JMP I GETNAM 002467 3051 ISSYM, DCA BUCKET 002470 2252 ISZ GETNAM /ONE LETTER DOTH A SYMBOL MAKE 002471 4312 JMS GNC /FRIENDLY LOCAL SUBR 002472 4350 JMS R6L 002473 3052 DCA NAME1 002474 4312 JMS GNC 002475 1052 TAD NAME1 002476 3052 DCA NAME1 002477 4312 JMS GNC 002500 4350 JMS R6L 002501 3053 DCA NAME2 002502 4312 JMS GNC 002503 1053 TAD NAME2 002504 3053 DCA NAME2 002505 4312 JMS GNC 002506 4350 JMS R6L 002507 3054 DCA NAME3 002510 4312 JMS GNC /AFTER 6, WE IGNORE 002511 7610 SKP CLA 002512 0000 GNC, 0 002513 4321 JMS LETTER 002514 5712 JMP I GNC /RETTURN LETTER 002515 4334 JMS DIGIT 002516 5652 JMP I GETNAM /EMPTY HANDED, RETURN TO CALLER 002517 1371 TAD (60 002520 5712 JMP I GNC / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 40 / / IF NEXT CHAR IS A LETTER, RETURN 6 BITS / IF NOT, REPLACE CHAR AND SKIP. / 002521 0000 LETTER, 0 002522 4210 JMS GETCHR 002523 5332 JMP NLETR /NO LETTER, SKIP 002524 1370 TAD (-333 002525 7120 CLL CML 002526 1367 TAD (33 002527 7460 SZA SNL /DON'T ALLOW 300 002530 5721 JMP I LETTER 002531 4200 JMS BACK1 002532 2321 NLETR, ISZ LETTER 002533 5721 JMP I LETTER / / IF NEXT CHAR IS A DIGIT (0-9) RETURN VALUE AND SKIP / 002534 0000 DIGIT, 0 002535 4210 JMS GETCHR 002536 5734 JMP I DIGIT 002537 1366 TAD (-272 002540 7100 CLL 002541 1365 TAD (12 002542 7420 SNL 002543 5346 JMP NDIGT 002544 2334 ISZ DIGIT 002545 5734 JMP I DIGIT 002546 4200 NDIGT, JMS BACK1 002547 5734 JMP I DIGIT / 002550 0000 R6L, 0 002551 7106 CLL RTL 002552 7006 RTL 002553 7006 RTL 002554 5750 JMP I R6L / 002555 0000 R6R, 0 002556 7012 RTR 002557 7012 RTR 002560 7012 RTR 002561 0163 AND [77 002562 5755 JMP I R6R 002565 0012 002566 7506 002567 0033 002570 7445 002571 0060 002572 7535 002573 0276 002574 7775 002575 7716 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 40-1 002576 0027 002577 7521 2600 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 41 / / BUILD AN INSTRUCTION / 002600 0000 FIXOPC, 0 /COMBINE OPCODE PARTS 002601 1047 TAD XFLAG /CHECK INDEX SWITCH 002602 7650 SNA CLA 002603 5216 JMP ZRONDX /IF ZERO, NO INDEX REG 002604 7240 CLA CMA 002605 1055 TAD LASTOP /IF INDEX, CHECK FOR INCR 002606 7650 SNA CLA 002607 1150 TAD [100 /YES, PUT + BIT ON 002610 1046 TAD OPCODE /COMBINE WITH OPCODE 002611 3046 DCA OPCODE 002612 1037 TAD EXPVAL+2 /GET INDEX REG. EXPR 002613 0156 AND [7 /ONLY 3 BITS 002614 7106 CLL RTL /SHIFT INTO POSITION 002615 7004 RAL 002616 1046 ZRONDX, TAD OPCODE /ADD OPCODE 002617 1377 TAD (400 /TURN ON TYPE BIT 002620 3046 DCA OPCODE /SAVE OPCODE 002621 5600 JMP I FIXOPC /RETURN / OPR8RS, 002622 7525 -253 /PLUS 002623 7523 -255 /MINUS 002624 7526 -252 /STAR (MULTIPLY) ** 002625 7521 -257 /SLASH (DIVIDE) 002626 7532 -246 /AMPERSAND (AND) 002627 7540 -240 /SPACE (OR) 002630 7537 -241 /EXCLAMATION (OR) 002631 0000 0 /END OF LIST / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 42 / / FATAL ERRORS / 002632 0000 ERMSG1, 0 /PASS 1 (FATAL) MESSAGES 002633 6201 CDF 002634 1632 TAD I ERMSG1 /GET CODE 002635 3240 DCA .+3 002636 3056 DCA PASSNO 002637 4244 JMS ERMSG /DO THE MSG THING 002640 0000 0 IFZERO RALF < RETSYS, > 002641 6041 TSF /FINISH TYPING 002642 5241 JMP .-1 002643 5573 JMP I [7600 /EXIT TO PS8 / / GENERAL GARBAGE TYPE ERRORS / 002644 0000 ERMSG, 0 002645 6201 CDF FLD0 /FIX FIELD 002646 7200 CLA /NO MESSAGE ON PASS 1 002647 1056 TAD PASSNO 002650 7540 SMA SZA /IF PASS 3, OUTPUT LEADING CRLF 002651 4577 JMS I [CRLF 002652 7710 SPA CLA 002653 5271 JMP MSGDUN 002654 1376 TAD (5555 /MINUSES 002655 4576 JMS I [PRINT2 002656 1644 TAD I ERMSG /2-CHAR CODE 002657 4576 JMS I [PRINT2 /PRINT THE MESSAGE 002660 1376 TAD (5555 002661 4576 JMS I [PRINT2 002662 1056 TAD PASSNO 002663 7640 SZA CLA 002664 5270 JMP .+4 002665 4576 JMS I [PRINT2 002666 4775 PLINE, JMS I (PRNTLN 002667 4577 JMS I [CRLF 002670 2104 ISZ ERRORS /BUMP COUNT 002671 2244 MSGDUN, ISZ ERMSG 002672 5644 JMP I ERMSG / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 43 / / OUTPUT DECIMAL / SUPPRESS LEADING ZEROS / PRINT "NO" INSTEAD OF "0" / 002673 0000 DECOUT, 0 002674 7450 SNA /ZERO IS SPECIAL 002675 5311 JMP DECNO /NO INSTEAD OF 0 002676 3005 DCA OTEMP 002677 3006 DCA OCNT 002700 4314 JMS DEC2 /GET THOUSANDS 002701 6030 -1750 002702 4314 JMS DEC2 /HUNDREDS 002703 7634 -144 002704 4314 JMS DEC2 /TENS 002705 7766 -12 002706 1005 TAD OTEMP /UNITS (NO ZERO SUPPRESS HERE) 002707 4351 JMS PDIG /PRINT LAST DIGIT 002710 5673 JMP I DECOUT /EASY, WHEN YOU KNOW HOW / 002711 1374 DECNO, TAD (1617 /NO 002712 4576 JMS I [PRINT2 002713 5673 JMP I DECOUT / / LAZY MAN'S DIVISION / 002714 0000 DEC2, 0 002715 6201 CDF FLD0 /JUST TO MAKE SURE 002716 7300 DEC3, CLA CLL 002717 1005 TAD OTEMP 002720 7450 SNA 002721 5330 JMP DEC4 002722 1714 TAD I DEC2 /SUBTRACT DIVISOR 002723 7420 SNL /TOO MUCH? 002724 5330 JMP DEC4 /YES, STOP NOW 002725 3005 DCA OTEMP /NO, SAVE NEW REMAIN 002726 2006 ISZ OCNT /BUMP QUOTIENT 002727 5316 JMP DEC3 /DO IT AGAIN 002730 7200 DEC4, CLA 002731 2314 ISZ DEC2 /SKIP RETURN 002732 1006 TAD OCNT /CHECK FOR SIGNIFICANCE 002733 7450 SNA 002734 5714 JMP I DEC2 /NONE 002735 4351 JMS PDIG 002736 7330 CLA STL RAR /FORCE SIGNIFICANCE 002737 3006 DCA OCNT 002740 5714 JMP I DEC2 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 44 / 002741 7667 TENTH, -111 002742 1463 1463;1463;1463 002743 1463 002744 1463 002745 1463 1463;1463;1463 002746 1463 002747 1463 002750 0001 TEN, 1 002751 0000 PDIG, 0 002752 1355 TAD P260 002753 4505 JMS I PC 002754 5751 JMP I PDIG 002755 0260 P260, 260 002756 0005 5 / / OCTAL CONVERSION, THE HARD WAY / 002757 0000 OCTOUT, 0 002760 3005 DCA OTEMP 002761 7130 STL RAR /NO ZERO SUPPRESS 002762 3006 DCA OCNT 002763 4314 JMS DEC2 002764 7000 -1000 002765 4314 JMS DEC2 002766 7700 -100 002767 4314 JMS DEC2 002770 7770 -10 002771 1005 TAD OTEMP 002772 4351 JMS PDIG 002773 5757 JMP I OCTOUT 002774 1617 002775 1400 002776 5555 002777 0400 3000 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 45 / / OUTPUT ONE WORD / IFNZRO RALF < / / TEXT TYPE CODES: 0400 TTABS= 0400 1000 TTORG= 1000 1400 TTREL= 1400 / 003000 3311 OUTREL, DCA WRD /HOLD FIRST WORD 003001 3113 DCA LINKSW /CLEAR ABSOLUTE REF INDICATOR 003002 1044 TAD FPPADR /GET ESD CODE 003003 7012 RTR 003004 7012 RTR /RIGHT IN AC 003005 0146 AND [177 /STRIP TO ESD ONLY 003006 7450 SNA /CHECK FOR ABSOLUTE 003007 5232 JMP PUTABS 003010 3044 DCA FPPADR /SAVE ESD 003011 1056 TAD PASSNO /CHECK FOR PASS 2 003012 7640 SZA CLA 003013 5234 JMP PRNTRL /IF NOT, TREAT NORMALLY 003014 3115 DCA ABSOP 003015 7326 CLA STL RTL 003016 4777 JMS I (FULCHK /ENSURE 3 WORDS LEFT 003017 1044 TAD FPPADR /GET ESD AGAIN 003020 1376 TAD (TTREL /INSERT CONTROL CODE 003021 3415 DCA I OUTPTR 003022 1311 TAD WRD /FIRST DATUM 003023 3415 DCA I OUTPTR 003024 1045 TAD FPPADR+1 003025 3415 DCA I OUTPTR 003026 4777 JMS I (FULCHK /IS IT FULL? 003027 4311 JMS BMPLOC /TWO WORDS OUT 003030 4311 JMS BMPLOC /SO LOCCTR +2 003031 5564 JMP I [NEXTST 003032 2114 PUTABS, ISZ ABREFS /COUNT IT 003033 2113 ISZ LINKSW /SET FLAG 003034 1311 PRNTRL, TAD WRD /GET FIRST WORD 003035 4241 JMS OUTWRD 003036 1045 TAD FPPADR+1 003037 4241 JMS OUTWRD 003040 5564 JMP I [NEXTST > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 46 / 003041 0000 OUTWRD, 0 /OUTPUT ROUTINE 003042 3311 DCA WRD /SAVE WORD IFZERO RALF < TAD LOCTR2 /GET LOW 12 BITS OF LOCATION JMS I [R6L AND [37 /GET PAGE NUMBER (WITHIN FIELD) DCA OTEMP /SAVE PAGE NUMBER TAD OTEMP SZA CLA /POINTER TO LITERAL POINTER IAC TAD [P0LIT DCA OWTEMP TAD LOCTR2 /GET CURRENT ADDRESS DISPLACEMENT AND [177 CIA /COMPARE WITH LITERAL BOUNDARY TAD I OWTEMP SMA CLA JMP .+3 /NO PAGE OVER FLOW JMS I [ERMSG 2017 /*PO*> 003043 1056 TAD PASSNO /CHECK PASS 003044 7440 SZA 003045 5263 JMP PRNTST /ITS NOT PASS 2 IFZERO RALF < TAD WRD /NOW OUTPUT WORD JMS I [R6R JMS OOCHAR TAD WRD AND [77 JMS OOCHAR > IFNZRO RALF < 003046 1115 TAD ABSOP /CHECK FOR ALREADY IN ABS OUTPUT 003047 7640 SZA CLA 003050 5257 JMP INABS /NO PROBLEM 003051 7201 CLA IAC 003052 4777 JMS I (FULCHK 003053 1375 TAD (TTABS /SET ABS CONTROL CODE 003054 3415 DCA I OUTPTR 003055 1015 TAD OUTPTR /SAVE POINTER FOR FUTRUE REF 003056 3115 DCA ABSOP 003057 2515 INABS, ISZ I ABSOP /BUMP COUNT 003060 1311 TAD WRD 003061 3415 DCA I OUTPTR 003062 4777 JMS I (FULCHK /GOOD!> / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 47 003063 7740 PRNTST, SMA SZA CLA 003064 1061 TAD LISTSW /IS LIST ON ? 003065 7650 SNA CLA 003066 5307 JMP ENDOUT /NO, DONT PRINT 003067 4577 JMS I [CRLF /NEW LINE 003070 1026 TAD LOCTR1 /PRINT LOCATION COUNTER 003071 0156 AND [7 003072 4774 JMS I (PDIG 003073 1027 TAD LOCTR2 /NEXT FOUR DIGITS 003074 4545 JMS I [OCTOUT 003075 1152 TAD [240 003076 4505 JMS I PC 003077 1311 TAD WRD /NOW WORD 003100 4545 JMS I [OCTOUT 003101 1113 TAD LINKSW /LINK GENERATED ON THIS LINE? 003102 7640 SZA CLA 003103 1373 TAD (4700 /IF SO, GIVE APOSTROPHE SPACE 003104 4576 JMS I [PRINT2 003105 3113 DCA LINKSW /CLEAR SW 003106 4776 JMS I (PRNTLN /PRINT LINE IF NECESSARY 003107 4311 ENDOUT, JMS BMPLOC /BUMP LOC CNTR 003110 5641 JMP I OUTWRD /RETURN / WRD, 003111 0000 BMPLOC, 0 003112 2027 ISZ LOCTR2 /BUMP LOW ORDER 003113 5711 JMP I BMPLOC 003114 7201 CLA IAC 003115 1026 TAD LOCTR1 003116 0372 AND (7767 /STOP CARRY INTO BIT 8 003117 3026 DCA LOCTR1 003120 5711 JMP I BMPLOC / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 48 IFZERO RALF < / / PUNCH CONTROL / NOPNCX, CLA IAC ENPNCX, DCA PNCHOF JMP I [NEXTST / / OUTPUT AN ORIGIN / PUTORG, 0 TAD PASSNO /CHECK FOR PASS 2 SZA CLA JMP I PUTORG /ELSE FORGET IT TAD LOCTR2 /OUTPUT FIRST CHAR JMS I [R6R TAD [100 JMS OOCHAR /OUTPUT CHAR TAD LOCTR2 /NOW LOWER HALF OF ORIGIN AND [77 JMS OOCHAR JMP I PUTORG OWTEMP, CHAROO, 0 OOCHAR, 0 /OUTPUT CHAR AND COMPUTE CHKSUM DCA CHAROO TAD PNCHOF /PUNCHING? SZA CLA JMP I OOCHAR /NOPE TAD CHAROO TAD CHKSUM DCA CHKSUM TAD CHAROO JMS I [OCHAR JMP I OOCHAR > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 49 / / BEGIN NEXT PASS / WITH APPROPRIATE THINGS RESET / TO DEFAULT VALUES / 003121 4771 RESET, JMS I (IOPEN /RE-SELECT FIRST INPUT FILE 003122 1116 TAD USR /EITHER 200 OR 7700 003123 7710 SPA CLA /IS USR IN CORE? 003124 5332 JMP .+6 /NO 003125 6212 CIF 10 /YES, DISMISS IT 003126 4516 JMS I USR 003127 0011 11 /USROUT 003130 1121 TAD NP7700 003131 3116 DCA USR /ITS GONE IFNZRO RALF < 003132 7326 CLA STL RTL /COUNTING FROM 2, 003133 3025 DCA ESDNO /RESET ESD COUNT 003134 4770 JMS I (CLRSCT /ZERO ALL SECTION LENGTHS> 003135 3057 DCA ASMOF /ZERO CONDITIONAL SWITCH 003136 3064 DCA SCSWT /ZERO SEMICOLON SWITCH 003137 1117 TAD SYONLY /IF NOT SYM MAP ONLY 003140 3061 DCA LISTSW /FORCE LIST ENABLE 003141 7201 CLA IAC 003142 3110 DCA LPAGE1 003143 3111 DCA LPAGE2 003144 7240 CLA CMA 003145 3112 DCA LINPAG IFZERO RALF < TAD [177 DCA P0LIT /RESET LITERAL BUFFER POINTERS TAD [177 DCA CPLIT TAD [200 > 003146 3027 DCA LOCTR2 /LOCATION COUNTER IFNZRO RALF < 003147 1367 TAD (20 > 003150 3026 DCA LOCTR1 003151 7130 CLL CML RAR /4000 003152 3031 DCA BASER /SET BASE BEYOND BELIEF 003153 3033 DCA INDXR 003154 3034 DCA INDXR+1 003155 3065 DCA RADIX /RESET DEFAULT OCTAL 003156 3104 DCA ERRORS /ZERO ERROR COUNT 003157 3114 DCA LINKS 003160 2056 ISZ PASSNO /BUMP PASS NUMBER 003161 5766 JMP I (NEWLIN 003162 5766 JMP I (NEWLIN /DO NEXT PASS 003166 0240 003167 0020 003170 1273 003171 4203 003172 7767 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 49-1 003173 4700 003174 2751 003175 0400 003176 1400 003177 4600 3200 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 50 / / END OF A PASS / ENDX, IFZERO RALF < DCA PNCHOF /RE-ENABLE PUNCH> IFNZRO RALF < 003200 4777 JMS I (BORG /SET MAX LEN OF CURRENT SECT> 003201 1056 TAD PASSNO 003202 7700 SMA CLA /WHAT PASS WAS THIS? 003203 5212 JMP EOP2 /NOT THE FIRST IFNZRO RALF < 003204 1376 TAD (INBUF-400 003205 3775 DCA I (INBUFP /MOVE INPUT BUFFER OVER DMPESD> 003206 1107 TAD BFILE 003207 7650 SNA CLA 003210 5217 JMP START3 /NO BINARY, START PASS 3 IFZERO RALF < TAD [200 /START BIN OUT WITH L/T JMS I [OCHAR JMP I (RESET > IFNZRO RALF < 003211 5774 JMP I (DMPESD /OUTPUT EXT SYM TABLE> / EOP2, IFZERO RALF < CLA IAC /DUMP CURRENT PAGE LITERALS JMS I (DMPLIT JMS I (DMPLIT /THEN DUMP PAGE 0 LITERALS> 003212 1056 TAD PASSNO 003213 7740 SMA SZA CLA 003214 5225 JMP EOP3 /YES, PRINT SYMBOL TABLE IFZERO RALF < TAD CHKSUM /OUTPUT CHECKSUM JMS I [R6R JMS I [OCHAR TAD CHKSUM AND [77 JMS I [OCHAR /LOWER HALF TAD [200 /TRAILER CHAR JMS I [OCHAR > IFNZRO RALF < 003215 3415 DCA I OUTPTR /SET OUTPUT END INDICATOR> 003216 4773 JMS I (OCLOSE /CLOSE THE BINARY FILE 003217 3056 START3, DCA PASSNO /SKIP PASS TWO 003220 4772 JMS I (OOPEN /OPEN LISTING FILE IFZERO RALF < JMP NOP3 /NO LISTING, GIVE INFO ON TTY> IFNZRO RALF < 003221 5771 JMP I (RETSYS > 003222 1144 TAD [OCHAR /CHANGE PRINT ROUTINE 003223 3105 DCA PC 003224 5770 JMP I (RESET /NO,RESET EVERYTHING / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 51 / / END OF LAST PASS / GIVE SOME STATISTICS / 003225 7240 EOP3, CLA CMA 003226 3112 DCA LINPAG 003227 4577 JMS I [CRLF 003230 4767 NOP3, JMS I (7607 /READ IN OVERLAY 003231 0100 0100 003232 5000 OVERLY, OVBUFR 003233 0040 40 /USE SYS SCRATCH BLK 003234 5766 JMP I (7605 003235 5632 JMP I OVERLY 003236 0000 CHCKMR, 0 003237 1046 TAD OPCODE /BE SURE ALL REFS ARE 003240 0155 AND [200 /ARE ON SAME PG 003241 7640 SZA CLA 003242 1027 TAD LOCTR2 003243 0173 AND [7600 003244 7041 CIA 003245 1037 TAD EXPVAL+2 003246 0173 AND [7600 003247 7640 SZA CLA 003250 4574 ADRERR, JMS I [ERMSG 003251 0201 0201 /**BA** 003252 1037 TAD EXPVAL+2 003253 0146 AND [177 003254 1046 TAD OPCODE 003255 4560 JMS I [OUTWRD 003256 5564 JMP I [NEXTST 003257 1263 IOERR, TAD INOP /REMOVE JMS PRNTLN 003260 3765 DCA I (PLINE 003261 4547 JMS I [ERMSG1 003262 1117 1117 /**IO** 003263 7000 INOP, NOP 003365 2666 003366 7605 003367 7607 003370 3121 003371 3425 003372 4400 003373 4474 003374 5600 003375 4242 003376 5400 003377 3514 3400 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 52 IFZERO RALF < / ORG THINGS FOR ABSOLUTE ASSEMBLIES / TRYSTR, JMS I [GETCHR JMP I [NEXTST /WHAT CAN YOU DO? TAD (-252 /IS IT AN ORG SZA CLA JMP I (GETEXP /NO, SOME FUNNY EXPR, MAYBE ORGX, JMS I (ADRGET TAD LOCTR1 /CHECK FOR NEW FIELD CIA TAD EXPVAL+1 SNA CLA JMP SAMFLD /NOT A DIFFERENT FIELD CLA IAC JMS DMPLIT /DUMP CURRENT PAGE LITERALS JMS DMPLIT /DUMP PAGE 0 LITERALS TAD EXPVAL+1 AND [7 DCA LOCTR1 TAD PNCHOF /PUNCHING ENABLED? SNA TAD PASSNO /PASS 2? SZA CLA JMP SAMPAG /NO, DON'T OUTPUT CHANGE FIELD TAD LOCTR1 /NEW FIELD BITS RTL CLL RAL TAD (300 /TURN ON THE LEFT TWO BITS JMS I [OCHAR /PUT IT OUT (NOT IN CHECK SUM) JMP SAMPAG /DO THE SAME FOR CURRENT PAGE SAMFLD, TAD LOCTR2 AND [7600 /CHECK FOR SAME PAGE DCA LTEMP TAD EXPVAL+2 AND [7600 CIA TAD LTEMP SNA CLA JMP SAMPAG /PAGE IS THE SAME CLA IAC JMS DMPLIT /DUMP CURRENT PAGE LITERALS SAMPAG, TAD EXPVAL+2 DCA LOCTR2 JMS I (PUTORG JMP I [NEXTST /DONE PAGEX, TAD LOCTR2 /ADVANCE TO NEXT PAGE CLL TAD [177 AND [7600 DCA EXPVAL+2 RAL / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 52-1 TAD LOCTR1 DCA EXPVAL+1 JMP ORGX+1 /DO ORG THINGS / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 53 DMPLIT, 0 DCA PAGEN /SAVE PAGE INDICATOR TAD OUTSWT /SAVE OUTPUT SWITCH DCA SWTOUT ISZ OUTSWT /DONT PRINT LINE WITH LITERALS TAD PAGEN TAD [P0LIT /GET BOUNDARY POINTER DCA LTEMP TAD PAGEN /WHICH LITERAL BUFFER ? SNA CLA TAD (P0LBUF-CPLBUF /PAGE 0 BUFFER TAD (CPLBUF /CURRENT PAGE BUFFER TAD I LTEMP /PLUS PAGE ADDRESS DCA X10 /GIVES START OF LITERALS -1 TAD PAGEN SZA CLA TAD LOCTR2 /UPPER FIVE BITS OF ADDRESS AND [7600 TAD I LTEMP /PLUS LOWER SEVEN IAC /PLUS ONE DCA LOCTR2 /GIVES LOCATION COUNTER TAD LOCTR2 AND [177 /ANYTHING TO DUMP? SNA CLA JMP DMPFIN /NO TAD PASSNO SMA SZA CLA JMS I [CRLF /ONLY IF PASS 3 JMS I (PUTORG TAD [177 /STORE SPURIOUS LITERAL BOUNDARY DCA I LTEMP /TO PREVENT FALLACIOUS *PO* MESSAGES LITLUP, TAD I X10 /NO, GET NEXT LITERAL JMS I [OUTWRD /OUTPUT WORD AND BUMP LC TAD X10 /DONE? IAC AND [77 SZA CLA JMP LITLUP /LOOP DMPFIN, TAD SWTOUT /RESTORE OUTPUT SWITCH DCA OUTSWT JMP I DMPLIT /ALL DONE SWTOUT, 0 > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 54 003400 1055 EXPON, TAD LASTOP 003401 3224 DCA TMP 003402 3055 DCA LASTOP 003403 4777 JMS I (GETSGN /GET SIGN OF EXPONENT 003404 1065 TAD RADIX 003405 3005 DCA OTEMP 003406 2065 ISZ RADIX /SET RADIX TO DECIMAL 003407 4776 JMS I (NUMBER /GET EXPONENT 003410 7000 NOP 003411 1005 TAD OTEMP 003412 3065 DCA RADIX /RESTORE RADIX 003413 1224 TAD TMP 003414 7110 CLL RAR 003415 1055 TAD LASTOP 003416 7010 RAR /LASTOP TO LINK, 003417 3055 DCA LASTOP /TMP TO SIGN OF LASTOP 003420 1043 TAD WORD2 003421 7430 SZL 003422 7041 CIA /PUT SIGN ON EXP 003423 5775 JMP I (OVER 003424 0000 TMP, 0 IFZERO RALF < PAGE / > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 55 IFNZRO RALF < / / IF ALL CONDITIONS ARE RIGHT, CALL THE LOADER / 003425 4774 RETSYS, JMS I (DELFIL /THIS LOCATION USED BY INIT CODE /MAY BE ZEROED BY IT. USED TO DELETE F4 OUTPUT FILE WHEN CHAINING /FROM COMPILER + OUTPUT DEV IS NOT SYS 003426 6211 CDF 10 003427 1373 TAD (7604 /POINT TO 2ND OUT FILE THING 003430 3011 DCA X11 003431 1372 TAD (7611 /POINTER TO 3RD 003432 3010 DCA X10 003433 1371 TAD (-5 /LENGTH OF SUCH THINGS 003434 3066 DCA LTEMP 003435 1410 TAD I X10 /MOVE 3RD TO 2ND 003436 3411 DCA I X11 /FOR LOADER MAP FILE 003437 2066 ISZ LTEMP 003440 5235 JMP .-3 003441 1573 TAD I [7600 /WAS THERE A FIRST OUT FILE 003442 0120 AND NP17 /(BINARY OUT)* 003443 3066 DCA LTEMP 003444 1272 TAD OUTBLK /GET FILE LENGTH 003445 0370 AND (377 003446 7106 CLL RTL 003447 7006 RTL 003450 7041 CIA 003451 1066 TAD LTEMP /COMBINE UNIT AND LEN 003452 3410 DCA I X10 /FOR FIRST INPUT FILE TO LOADER 003453 1271 TAD PASBLK /STARTING BLOCK 003454 3410 DCA I X10 003455 3410 DCA I X10 /THAT'S THE END OF INPUT 003456 6201 CDF 0 003457 1104 TAD ERRORS /IF NO ERRORS 003460 7650 SNA CLA 003461 2007 ISZ CHNSW /SHOULD WE CHAIN? 003462 5767 JMP I (7605 /NO!!! 003463 2766 ISZ I (7746 /** 003464 1765 TAD I (MREAD-1 /ON CCL-DEVICE 003465 6212 CIF 10 003466 4516 JMS I USR 003467 0006 6 /CHAIN 003470 0000 LDRBLK, 0 /FIRST BLOCK OF LOADER / 003471 0000 PASBLK, 0 /FIRST BLOCK OF FILE PASSED / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 56 / / OUTPUT A BLOCK OF BINARY / 003472 0000 OUTBLK, 0 /AT END OF PASS2, BECOMES /LENGTH OF BINARY FILE 003473 1364 TAD (OUCTL /DEV HNDLR CONTROL WORD 003474 4763 JMS I (OUTDMP /CALL THE HANDLER 003475 1301 TAD MOUBUF 003476 3015 DCA OUTPTR /RESET BUFFER POINTER 003477 3115 DCA ABSOP /FORCE NEW ABS OUTPUT CONTROL 003500 5672 JMP I OUTBLK 003501 6377 MOUBUF, OUBUF-1 / 003502 2500 TYPCOD, 2500 /UNDEFINED 003503 0000 0000 /ADDRESS 003504 3000 3000 /XTERNAL 003505 0300 0300 /COMMON 003506 2300 2300 /SECTION 003507 7777 -1 /? 003510 7777 -1 /? 003511 7000 7000 /8-M0DE SECTION 003512 3200 3200 /8-MODE PAGE0 COMMON SECTION 003513 0600 0600 /8-MODE FIELD1 SECTION / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 57 003514 0000 BORG, 0 003515 6201 CDF FLD0 003516 1026 TAD LOCTR1 003517 7012 RTR 003520 7012 RTR 003521 0146 AND [177 003522 1362 TAD (ESDBUF-1 /POINT INTO 003523 3066 DCA LTEMP 003524 7307 CLA CLL IAC RTL /4 = ADDRESS VALUE 003525 1466 TAD I LTEMP 003526 3066 DCA LTEMP 003527 6211 CDF FLD1 003530 1026 TAD LOCTR1 003531 0156 AND [7 /GET ADDR BITS ONLY 003532 3067 DCA BOTMP /SAVE EM 003533 1466 TAD I LTEMP /OLD HIGH VALUE BITS 003534 0156 AND [7 003535 7041 CIA 003536 1067 TAD BOTMP /COMPARE THEM 003537 7510 SPA 003540 5357 JMP BOXIT /NO UPDATE REQUIRED 003541 7650 SNA CLA 003542 5347 JMP BOCHKL /NO DIFFERENCE YET 003543 1026 TAD LOCTR1 003544 3466 DCA I LTEMP /RESET TO NEW HIGH 003545 2066 ISZ LTEMP 003546 5355 JMP BOSETL /SKIP OVER TEST 003547 2066 BOCHKL, ISZ LTEMP /POINT TO LO-ORDER 003550 1466 TAD I LTEMP 003551 7141 CIA CLL 003552 1027 TAD LOCTR2 /COMPARE LOW ORDERS 003553 7620 SNL CLA 003554 5357 JMP BOXIT /NO REPLACE 003555 1027 BOSETL, TAD LOCTR2 003556 3466 DCA I LTEMP 003557 7200 BOXIT, CLA 003560 6201 CDF FLD0 003561 5714 JMP I BORG /WHEW! 0067 BOTMP= EXTMP 003562 5177 003563 4444 003564 4200 003565 7756 003566 7746 003567 7605 003570 0377 003571 7773 003572 7611 003573 7604 003574 1350 003575 4677 003576 2277 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 57-1 003577 4617 3600 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 58 003600 0000 NEWESD, 0 003601 1025 TAD ESDNO 003602 1377 TAD (-177 /CHECK LIMIT 003603 7710 SPA CLA 003604 5207 JMP .+3 003605 4547 JMS I [ERMSG1 /TOO MANY 003606 3023 3023 /*XS* 003607 2025 ISZ ESDNO /BUMP COUNT 003610 1056 TAD PASSNO /DON'T CHANGE TABLE AFTER PASS 1 003611 7700 SMA CLA 003612 5600 JMP I NEWESD 003613 1025 TAD ESDNO 003614 1376 TAD (ESDBUF-1 /INDEX BUFFER 003615 3067 DCA ESDTMP 003616 6211 CDF FLD1 003617 1404 TAD I OLDN3 /GET POINTER TO THIS SYMBOL 003620 6201 CDF FLD0 003621 3467 DCA I ESDTMP 003622 1067 TAD ESDTMP 003623 1155 TAD [200 003624 3067 DCA ESDTMP /NOW ADDRESS CHAR TABLE 003625 1051 TAD BUCKET 003626 3467 DCA I ESDTMP 003627 5600 JMP I NEWESD 0067 ESDTMP= EXTMP / / RELOCATION CONTROL PSEUDO-OPS / 003630 4570 ENTRX, JMS I [GETNAM /NAME OF ENTRY POINT 003631 5256 JMP ESDERR 003632 4567 JMS I [LOOKUP /FIND IT 003633 5242 JMP QENT /UNDEFINED 003634 7110 CLL RAR /MUST BE USER ADDR TYPE 003635 7650 SNA CLA 003636 1410 TAD I X10 /LOOK AT ESD 003637 0157 AND [7770 003640 7640 SZA CLA /IS IT RELOCATABLE? 003641 5244 JMP OKENT /YES 003642 4574 QENT, JMS I [ERMSG /NO MESSAGE ON PASS 1 003643 1105 1105 /*IE* 003644 4200 OKENT, JMS NEWESD /CREATE AN ENTRY FOR IT 003645 5564 JMP I [NEXTST / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 59 / 003646 7326 EXTRNX, CLA STL RTL 003647 3024 DCA STYPE /EXTERNS ARE TYPE 2 003650 4570 JMS I [GETNAM 003651 5256 JMP ESDERR 003652 4567 JMS I [LOOKUP 003653 4301 JMS CRESD /IF UNDEFINED, DEFINE IT 003654 7112 CLL RTR /IF DEFINED, CHECK LEGALITY 003655 7640 SZA CLA 003656 4574 ESDERR, JMS I [ERMSG 003657 0523 0523 /*ES* 003660 5564 JMP I [NEXTST / 003661 7201 CLA IAC /FIELD1 SECT=11 003662 7001 IAC /COMMZ SECT=10 003663 1156 SECT8X, TAD [7 003664 5267 JMP COMMX+1 003665 7201 SECTX, CLA IAC 003666 1375 COMMX, TAD (COMMN /GET DESIRED CODE 003667 3024 DCA STYPE /FOR SECTION TYPE 003670 4570 JMS I [GETNAM 003671 3051 DCA BUCKET /IF NO NAME, BLANK COMMON 003672 4567 JMS I [LOOKUP 003673 5317 JMP NEWSCT /UNDEFINED 003674 7041 CIA /OLD FRIEND 003675 1024 TAD STYPE /SAME? 003676 7650 SNA CLA 003677 5320 JMP SETSCT /YUP, DO IT 003700 5256 JMP ESDERR / 003701 0000 CRESD, 0 003702 4200 JMS NEWESD /CREATE NEW ESD ENTRY 003703 6211 CDF FLD1 003704 1466 TAD I LTEMP /SET TYPE CODE 003705 0121 AND NP7700 003706 1024 TAD STYPE 003707 3466 DCA I LTEMP 003710 2066 ISZ LTEMP 003711 1025 TAD ESDNO 003712 7106 CLL RTL /ESD NO TO SYMBOL VLAUE 003713 7006 RTL 003714 3466 DCA I LTEMP 003715 6201 CDF FLD0 003716 5701 JMP I CRESD / 003717 4301 NEWSCT, JMS CRESD /CREATE AN ESD 003720 4774 SETSCT, JMS I (BORG /ADJUST LOC CTR'S 003721 6211 CDF FLD1 003722 1410 TAD I X10 /GET NEW LOC CTR VALUE 003723 3026 DCA LOCTR1 003724 1410 TAD I X10 003725 3027 DCA LOCTR2 /LOW LOC CTR / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 59-1 003726 6201 CDF FLD0 003727 5343 JMP PUTORG / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 60 / 003730 4773 ORGX, JMS I (ADRGET /GET ORG EXPR 003731 4774 JMS I (BORG 003732 1036 TAD EXPVAL+1 003733 0157 AND [7770 /DOES IT HAVE AN ESD? 003734 7650 SNA CLA 003735 1026 TAD LOCTR1 /IF NOT, KEEP CURRENT ESD 003736 0157 AND [7770 003737 1036 TAD EXPVAL+1 003740 3026 DCA LOCTR1 /RESET PC 003741 1037 TAD EXPVAL+2 003742 3027 DCA LOCTR2 003743 1056 PUTORG, TAD PASSNO /OUTPUT ON PASS 2 ONLY 003744 7640 SZA CLA 003745 5564 JMP I [NEXTST 003746 3115 DCA ABSOP /CLEAR ABS OUTPUT SW 003747 7326 CLA STL RTL 003750 4772 JMS I (FULCHK /ROOM FOR MORE? 003751 1026 TAD LOCTR1 003752 7012 RTR 003753 7012 RTR /GET ESD 003754 0146 AND [177 003755 1371 TAD (TTORG 003756 3415 DCA I OUTPTR 003757 1026 TAD LOCTR1 003760 0156 AND [7 /FIELD BITS 003761 3415 DCA I OUTPTR 003762 1027 TAD LOCTR2 /ADDRESS 003763 3415 DCA I OUTPTR 003764 4772 JMS I (FULCHK 003765 5564 JMP I [NEXTST 003771 1000 003772 4600 003773 1210 003774 3514 003775 0003 003776 5177 003777 7601 4000 PAGE /> / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 61 / / VARIOUS PSEUDO-OP HANDLERS / 004000 1117 LSTONX, TAD SYONLY /ENABLE LISTING UNLESS SYM MAP ONLY 004001 3061 LSTOFX, DCA LISTSW 004002 5564 JMP I [NEXTST / 004003 7201 DECX, CLA IAC 004004 3065 OCTALX, DCA RADIX 004005 5564 JMP I [NEXTST / 004006 4575 TEXTX, JMS I [GETCHR /GET DELIMITER 004007 5564 JMP I [NEXTST /NULL STMT 004010 7041 CIA 004011 3067 DCA EXTMP /SAVE - DELIM 004012 4226 LOOP6B, JMS GETCHT /GET HIG ORDER CHAR 004013 5564 JMP I [NEXTST 004014 4562 JMS I [R6L /SHIFT IT UP 004015 3066 DCA LTEMP /SAVE HALF 004016 4226 JMS GETCHT /GET LOWER CHAR 004017 5223 JMP OUTTXT /GO PUT LAST 004020 1066 TAD LTEMP /PUT 2 CHARS TOGETHER 004021 4560 JMS I [OUTWRD /OUTPUT WORD 004022 5212 JMP LOOP6B /LOOP 004023 1066 OUTTXT, TAD LTEMP /PUT OUT HALF WORD 004024 4560 JMS I [OUTWRD /OR ZERO WORD 004025 5564 JMP I [NEXTST 004026 0000 GETCHT, 0 /GET CHAR FOR TEXT STMT 004027 2020 ISZ NCHARS /BUMP COUNT 004030 7410 SKP 004031 5626 JMP I GETCHT /END OF TEXT 004032 1417 TAD I CHRPTR /GET CHAR 004033 3051 DCA BUCKET /SAVE IT 004034 1051 TAD BUCKET /IS IT THE DELIM ? 004035 1067 TAD EXTMP 004036 7650 SNA CLA 004037 5626 JMP I GETCHT /YES, RETURN NO SKIP 004040 2226 ISZ GETCHT /BUMP RETURN 004041 1051 TAD BUCKET /GET CHAR 004042 0163 AND [77 /LOW 6 BITS 004043 5626 JMP I GETCHT /RETURN / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 62 / / CONDITIONAL ASSEMBLY HANDLERS / 004044 7240 IFNZRX, CLA CMA 004045 4272 IFZROX, JMS GETCON /GET CONDITION EXPR 004046 1036 TAD EXPVAL+1 /HIGH ORDER 004047 0156 AND [7 004050 7450 SNA 004051 1037 TAD EXPVAL+2 /LOW ORDER 004052 7650 SWTCH, SNA CLA 004053 5257 JMP TRUE /PRESENT CONDITION OF ASMOF IS OK 004054 1057 FALSE, TAD ASMOF /GOTTA REVERSE IT 004055 7040 CMA 004056 3057 DCA ASMOF /THAT DOES IT 004057 6201 TRUE, CDF FLD0 004060 4575 JMS I [GETCHR 004061 5276 JMP BADCND /FORGOT THE ANGLE 004062 1166 TAD [-240 /IGNORE BLANK, IF ANY 004063 7450 SNA 004064 5257 JMP TRUE /TRY AGAIN 004065 1377 TAD (240-274 004066 7650 SNA CLA 004067 5776 JMP I (ASMBL /GO FROM HERE 004070 4571 JMS I [BACK1 /LET SOMEONE ELSE WORRY ABOUT IT 004071 5276 JMP BADCND / 004072 0000 GETCON, 0 004073 3057 DCA ASMOF /SET INITIAL TRUTH 004074 4565 JMS I [EXPR /COLLECT EXPR 004075 5302 JMP OKCND /BAD MAY MEAN GOOD 004076 4574 BADCND, JMS I [ERMSG /BUT GOOD MEANS BAD 004077 1103 1103 /*IC* 004100 3057 DCA ASMOF /ENABLE ASSEMBLY 004101 5776 JMP I (ASMBL 004102 1041 OKCND, TAD EXPSW /WAS THERE AN EXPR, AT LEAST? 004103 7650 SNA CLA 004104 5672 JMP I GETCON /YES 004105 5276 JMP BADCND / 004106 7240 IFNEGX, CLA CMA 004107 4272 IFPOSX, JMS GETCON 004110 7307 CLA CLL IAC RTL /4 004111 0036 AND EXPVAL+1 /SIGN OF EXPR 004112 5252 JMP SWTCH /GO FROM THERE / 004113 7240 IFNDFX, CLA CMA 004114 3057 IFREFX, DCA ASMOF 004115 4570 JMS I [GETNAM /GET SYMBOL NAME 004116 5276 JMP BADCND /GOTTA GIVE SOMETHING 004117 4561 JMS I [FIND /IS IT KNOWN TO US? 004120 5254 JMP FALSE /NOT REFERENCED YET 004121 7650 SNA CLA /SKIP IF DEFINED / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 62-1 004122 3057 DCA ASMOF /ELSE ASSEMBLE 004123 5257 JMP TRUE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 63 004124 7240 IFSWX, CLA CMA 004125 3057 IFNSWX, DCA ASMOF 004126 1375 TAD (7642 /ADDRESS OF OPTION WORDS 004127 3043 DCA WORD2 /A TEMP 004130 4774 JMS I (LETTER /ALLOW LETTER 004131 5335 JMP .+4 /AC BETWEEN 1 AND 32 004132 4773 JMS I (DIGIT /OR NUMBER 004133 5276 JMP BADCND /ALL ELSE IS BAD 004134 1372 TAD (33 /MAKE 0 = Z+1 004135 2043 ISZ WORD2 /BUMP POINTER 004136 1371 TAD (-14 /IS IT IN THIS WORD? 004137 7540 SMA SZA 004140 5335 JMP .-3 /NO, POINT TO NEXT 004141 7041 CIA 004142 7160 CMA STL /BIT COUNT AWAY FROM LINK 004143 3042 DCA WORD1 004144 7004 RAL /SHIFT 004145 2042 ISZ WORD1 /COUNT 004146 5344 JMP .-2 004147 6211 CDF 10 /OPTIONS FIELD 004150 0443 AND I WORD2 /GET SELECTED BIT 004151 5252 JMP SWTCH /AND TEST IT / 004152 4770 ZBLKX, JMS I (ADRGET /EVALUATE EXPR 004153 1037 TAD EXPVAL+2 004154 7041 CIA 004155 3067 DCA ZBCNT /HOLD COUNT 004156 1061 TAD LISTSW /SAVE LISTSWITCH 004157 3070 DCA ZBTMP 004160 4560 JMS I [OUTWRD /PUT A WORD 004161 3061 DCA LISTSW /NO LIST AFTER FIRST 004162 2067 ISZ ZBCNT /COUNT THEM 004163 5360 JMP .-3 /MORE 004164 1070 TAD ZBTMP /RESTORE 004165 3061 DCA LISTSW /LISTING 004166 5564 JMP I [NEXTST 0067 ZBCNT= EXTMP 0070 ZBTMP= EXTMP2 004170 1210 004171 7764 004172 0033 004173 2534 004174 2521 004175 7642 004176 0310 004177 7744 4200 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 64 0020 PTP=20 7760 DCB=7760 0000 INFLD=INCTL&70 /GET FIELD OF INPUT BUFFER 0000 OUFLD=OUCTL&70 /DITTO OUTPUT BUFFER 004200 7400 IN7400, 7400 004201 0401 NINCTL, INCTL+1 004202 0002 NINREC, INRECS 004203 0000 IOPEN, 0 004204 1377 TAD (7617 004205 3322 DCA INFPTR /RESET FILE POINTER 004206 4324 JMS INNEWF /FETCH NEW HNDLR, ETC /WHILE USR IS STILL IN CORE 004207 7240 CLA CMA 004210 3324 DCA INCHCT /FORCE A READ ON NEXT CHAR 004211 5603 JMP I IOPEN 004212 0000 ICHAR, 0 004213 7600 IN7600, 7600 004214 6201 INCHAR, CDF INFLD 004215 2270 ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH 004216 2324 ISZ INCHCT 004217 5270 INJMPP, JMP INJMP 004220 1323 TAD INEOF 004221 7640 SZA CLA /DID LAST READ GIVE EOF ? 004222 4324 GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE 004223 1360 TAD INCTR 004224 7100 CLL 004225 1202 TAD NINREC 004226 7420 SNL 004227 3360 DCA INCTR /RESTORE INCR IF NOT OVERFLOWED 004230 7430 SZL /IS THIS THE LAST READ? 004231 2323 ISZ INEOF /YES - SET END-OF-FILE FLAG 004232 7172 CLL CML CMA RTR /MAKE CONTROL WORD 004233 7012 RTR /FROM THE AMOUNT OF THE OVERFLOW 004234 7012 RTR /(IF ANY) AND THE STANDARD CNTRL WD 004235 1201 TAD NINCTL 004236 3241 DCA INCTLW 004237 6201 CDF 004240 4737 JMS I INHNDL /CALL THE DEVICE HANDLER 004241 0000 INCTLW, 0 004242 6000 INBUFP, INBUF 004243 0000 INREC, 0 004244 5264 JMP INERRX /SOME KIND OF HANDLER ERROR 004245 1243 INBREC, TAD INREC 004246 1202 TAD NINREC 004247 3243 DCA INREC /UPDATE THE RECORD NUMBER 004250 1241 TAD INCTLW 004251 0213 AND IN7600 004252 7104 CLL RAL 004253 1241 TAD INCTLW 004254 0213 AND IN7600 004255 7040 CMA 004256 3324 DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 64-1 004257 1217 TAD INJMPP 004260 3270 DCA INJMP /RESET THE CHARACTER SWITCH 004261 1242 TAD INBUFP 004262 3361 DCA INPTR /AND THE WORD POINTER 004263 5214 JMP INCHAR /MAKE BELIEVE THIS NEVER HAPPENED 004264 2323 INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A BADDIE 004265 7700 SMA CLA /WHICH TYPE WAS IT ? 004266 5245 JMP INBREC /END OF FILE - RESUME PROCESSING 004267 5543 JMP I [IOERR /BADDIE, GIVE ERROR MESSAGE 004270 7402 INJMP, HLT /THIS IS THE 3 WAY CHARACTER SWITCH 004271 5312 JMP ICHAR1 004272 5306 JMP ICHAR2 004273 1217 TAD INJMPP 004274 3270 DCA INJMP 004275 1761 TAD I INPTR 004276 0200 AND IN7400 004277 7112 CLL RTR 004300 7012 RTR /COMBINE HIGH-ORDER FOUR BITS OF 004301 1241 TAD INCTLW 004302 7012 RTR /THE 2 WORD TO FORM THE 3RD CHAR 004303 7012 RTR 004304 2361 ISZ INPTR 004305 5313 JMP INCOMN 004306 1761 ICHAR2, TAD I INPTR 004307 0200 AND IN7400 004310 3241 DCA INCTLW /SAVE THE HI ORDER BITS FOR THE 3RD 004311 2361 ISZ INPTR /BUMP THE WORD POINTER 004312 1761 ICHAR1, TAD I INPTR 004313 0376 INCOMN, AND (377 004314 1375 TAD (-232 004315 7450 SNA /IS THE CHARACTER A ^Z? 004316 5222 JMP GETNEW /YES - GET A NEW FILE 004317 1374 TAD (232 /RESTORE THE CHARACTER 004320 6201 CDF 004321 5612 JMP I ICHAR /AND RETURN 004322 7617 INFPTR, 7617 004323 0001 INEOF, 1 /PARAMETERS ARE SET UP SO THAT INCHCT, /IOPEN IS UNNECESSARY. 004324 7777 INNEWF, -1 004325 1366 TAD NINDEV 004326 3337 DCA INHNDL /INITIALIZE HANDLER ADDRESS 004327 6211 CDF 10 004330 1722 TAD I INFPTR /GET NEXT CD INPUT FILE ENTRY 004331 6201 CDF 004332 7450 SNA /ANY MORE? 004333 5773 JMP I (ENDX /NO MORE INPUT 004334 6212 CIF 10 004335 4516 JMS I USR 004336 0001 1 /ASSIGN, FETCH HANDLER 004337 0000 INHNDL, 0 004340 5543 JMP I [IOERR /HUH? 004341 6211 CDF 10 004342 1722 TAD I INFPTR 004343 0372 AND (7760 /GET LENGTH PART OF WORD 004344 7440 SZA /LENGTH OF 0 MEANS LENGTH GE 256 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 64-2 004345 1172 TAD [17 /ADD HIGH ORDER BITS 004346 7132 CLL CML RTR 004347 7012 RTR 004350 3360 DCA INCTR /STORE LENGTH OF FILE 004351 2322 ISZ INFPTR 004352 1722 TAD I INFPTR 004353 6201 CDF 004354 3243 DCA INREC /STARTING RECORD NUMBER OF FILE 004355 2322 ISZ INFPTR 004356 3323 DCA INEOF /ZERO END-OF-FILE FLAG 004357 5724 JMP I INNEWF 004360 0000 INCTR, 0 004361 0000 INPTR, 0 004362 0000 OUFNAM, 0;0;0;0 /OUTPUT FILE NAME 004363 0000 004364 0000 004365 0000 004366 7200 NINDEV, INDEVH 004372 7760 004373 3200 004374 0232 004375 7546 004376 0377 004377 7617 4400 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 65 004400 0000 OOPEN, 0 004401 1106 TAD OUFILE /INCR OUTPUT FILE POINTER 004402 1377 TAD (5 004403 3106 DCA OUFILE 004404 6211 CDF 10 004405 1506 TAD I OUFILE /GET DEVICE CODE, LEN 004406 3233 DCA OUELEN /HOLD IT A MO 004407 4776 JMS I (OFNAME /GET FILE NAME INTO FIELD 0 004410 1233 TAD OUELEN /CHECK FOR NULL FILE 004411 7650 SNA CLA 004412 5242 JMP ONOFIL /INHIBIT OUTPUT 004413 4344 JMS GETUSR /LOAD USR IF NOT ALREADY IN 004414 1337 TAD OUNAME /RESET ENTER CALL 004415 3232 DCA OUBLK 004416 1343 TAD NOUDEV 004417 3224 DCA OUHNDL 004420 1233 TAD OUELEN /THE UNIT 004421 6212 CIF 10 004422 4516 JMS I USR 004423 0001 1 /ASSIGN, FETCH HANDLER 004424 0000 OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY 004425 5543 JMP I [IOERR /HUH? 004426 1233 TAD OUELEN /UNIT AGAIN 004427 6212 CIF 10 004430 4516 JMS I USR 004431 0003 3 /ENTER OUTPUT FILE 004432 4362 OUBLK, OUFNAM /REPLACED WITH STARTING BLOCK 004433 0000 OUELEN, 0 /REPLACED WITH LENGTH OF HOLE 004434 5543 JMP I [IOERR /YOU BLEW IT!!! 004435 3340 DCA OUCCNT 004436 3775 DCA I (OUTINH /ZERO OUTPUT INHIBIT FLAG 004437 4774 JMS I (OUSETP 004440 2200 ISZ OOPEN 004441 5600 JMP I OOPEN 004442 2775 ONOFIL, ISZ I (OUTINH 004443 5600 JMP I OOPEN 004444 0000 OUTDMP, 0 004445 3267 DCA OUCTLW /STORE THE CONTROL WORD 004446 1340 TAD OUCCNT 004447 7450 SNA 004450 2267 ISZ OUCTLW 004451 1232 TAD OUBLK 004452 3271 DCA OUREC /COMPUTE STARTING BLOCK 004453 1267 TAD OUCTLW 004454 4562 JMS I [R6L 004455 0172 AND [17 /COMPUTE THE NUMBER OF RECORDS 004456 1340 TAD OUCCNT /UPDATE SIZE OF FILE 004457 3340 DCA OUCCNT 004460 1340 TAD OUCCNT 004461 7120 CLL CML 004462 1233 TAD OUELEN 004463 7660 SNL SZA CLA /EXCEED GIVEN LENGTH ? / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 65-1 004464 5543 JMP I [IOERR /YES - ERROR 004465 6201 CDF 004466 4624 JMS I OUHNDL 004467 0000 OUCTLW, 0 004470 6400 LOUBUF, OUBUF 004471 0000 OUREC, 0 004472 5543 JMP I [IOERR 004473 5644 JMP I OUTDMP 004474 0000 OCLOSE, 0 004475 4344 JMS GETUSR /ENSURE USR IN CORE IFNZRO RALF < 004476 1056 TAD PASSNO 004477 7640 SZA CLA 004500 5306 JMP .+6 004501 1373 TAD (377 004502 4772 JMS I (FULCHK /DUMP LAST BLOCK 004503 1340 TAD OUCCNT /SAVE FILE LENGTH 004504 3771 DCA I (OUTBLK /FOR CHAIN 004505 5332 JMP NODUMP > 004506 4770 JMS I (OTYPE 004507 0367 AND (770 004510 1366 TAD (-PTP /CHECK FOR PAPER TAPE PUNCH OUTPUT 004511 7640 SZA CLA /AND SKIP ^Z OUTPUT IF TRUE 004512 1365 TAD (232 /OUTPUT A ^Z 004513 4544 JMS I [OCHAR 004514 4544 FILLLP, JMS I [OCHAR 004515 4770 JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE 004516 7710 SPA CLA 004517 1150 TAD [100 004520 1163 TAD [77 004521 0764 AND I (OUDWCT 004522 7640 SZA CLA /UP TO THE BOUNDARY YET? 004523 5314 JMP FILLLP /NO - FILL WITH ZEROS 004524 1764 TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT 004525 1363 TAD (OUCTL&3700 004526 7450 SNA /A FULL WRITE LEFT? 004527 5332 JMP NODUMP /YES DON'T DO IT 004530 1362 TAD (4000+OUFLD /PUT IN FIELD AND WRITE BITS 004531 4244 JMS OUTDMP 004532 6213 NODUMP, CIF CDF 10 004533 1506 TAD I OUFILE 004534 6201 CDF 004535 4516 JMS I USR 004536 0004 4 /CLOSE THE OUTPUT FILE 004537 4362 OUNAME, OUFNAM /POINTER TO OUTPUT FILE NAME 004540 0000 OUCCNT, 0 004541 5543 JMP I [IOERR /ERROR WHILE CLOSING - BAD!! 004542 5674 JMP I OCLOSE /ALL DONE 004543 7400 NOUDEV, OUDEVH / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 66 / / LOAD USR IF NOT IN CORE ALREADY / 004544 0000 GETUSR, 0 004545 1116 TAD USR /CURRENT CALL ADDR 004546 7700 SMA CLA 004547 5744 JMP I GETUSR /WE GOT IT 004550 6212 CIF 10 004551 4516 JMS I USR /THE ANSWERING SERVICE 004552 0010 10 /CALLS THE SR 004553 1155 TAD [200 004554 3116 DCA USR /RESET THE CALL ADDRESS 004555 5744 JMP I GETUSR /JES FINE 004562 4000 004563 0200 004564 0513 004565 0232 004566 7760 004567 0770 004570 0533 004571 3472 004572 4600 004573 0377 004574 0425 004575 0514 004576 0515 004577 0005 4600 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 67 004600 0000 FULCHK, 0 IFNZRO RALF < / / IF THE RELOCATABLE BINARY OUTPUT / BLOCK IS FULL (WITHIN THE CONTENTS OF THE AC) / FILL THE REST WITH NOP CODES AND OUTPUT THE / BLOCK. / 004601 1015 TAD OUTPTR 004602 1216 TAD KOUBUF 004603 7710 SPA CLA 004604 5600 JMP I FULCHK 004605 1015 FULLUP, TAD OUTPTR 004606 1216 TAD KOUBUF 004607 7700 SMA CLA 004610 5214 JMP .+4 004611 7201 CLA IAC 004612 3415 DCA I OUTPTR 004613 5205 JMP FULLUP 004614 4777 JMS I (OUTBLK 004615 5600 JMP I FULCHK 004616 1001 KOUBUF, -OUBUF-377 > / / / GET SIGN CHARACTER IF ANY / BUMP LASTOP IF MINUS / 004617 0000 GETSGN, 0 004620 4575 JMS I [GETCHR 004621 5617 JMP I GETSGN 004622 1376 TAD (-255 /MINUS? 004623 7450 SNA 004624 2055 ISZ LASTOP 004625 7440 SZA 004626 7150 CLL CMA RAR /IF IT WAS PLUS, BECOMES 0 004627 7640 SZA CLA /SKIP IF PLUS OR MINUS 004630 4571 JMS I [BACK1 /OTHERWISE PUT IT BACK 004631 5617 JMP I GETSGN / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 68 / AS PER RICHIE LARY / / SINGLE AND DOUBLE PRECISION / FLOATING POINT INPUT / / 004632 1140 EX, TAD M3 004633 1140 FX, TAD M3 004634 3046 DCA DESW /STORE LENGTH 004635 1375 TAD (-7 004636 4351 JMS CLEAR /CLEAR FAC+OP 004637 3055 DCA LASTOP 004640 4217 JMS GETSGN /GET SIGN 004641 7240 STA /CLA CMA 004642 3022 DCA DPSW /SET NO DP 004643 3200 GETD, DCA DCNT 004644 4774 JMS I (DIGIT /GET A DIGIT 004645 5260 JMP LOOKP /NO 004646 3005 DCA OTEMP /SAVE IT 004647 4773 JMS I (FMPTEN /MULT FAC*10 004650 4351 JMS CLEAR 004651 1005 TAD OTEMP 004652 7440 SZA 004653 4772 JMS I (FAD /ADD DIGIT TO FAC IF NOT= 0 004654 1022 TAD DPSW 004655 7040 CMA 004656 1200 TAD DCNT /BUMP IF FP SEEN 004657 5243 JMP GETD / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 69 004660 4575 LOOKP, JMS I [GETCHR 004661 5277 JMP OVER /DONE 004662 1371 TAD (-256 004663 7450 SNA 004664 5274 JMP DECPT 004665 1370 TAD (256-304 004666 7110 CLL RAR 004667 7650 SNA CLA 004670 5767 JMP I (EXPON /E OR D 004671 4574 DEXERR, JMS I [ERMSG 004672 0620 0620 /FP 004673 5343 JMP NOTNEG 004674 2022 DECPT, ISZ DPSW 004675 5271 JMP DEXERR /2 PERIODS 004676 5243 JMP GETD / 004677 1200 OVER, TAD DCNT /EXPON COMES HERE W EXP IN AC 004700 7450 SNA 004701 5315 JMP NOSCAL /NO SCALING NEEDE 004702 7100 CLL 004703 7500 SMA 004704 7061 CIA CML /SIGN IN LINK,MAGNITUDE IN AC 004705 3200 DCA DCNT /AS A COUNT 004706 7420 SNL 004707 1375 TAD (TENTH-TEN /OFFSET KLUDGE 004710 3005 DCA OTEMP 004711 1005 SCALUP, TAD OTEMP 004712 4773 JMS I (FMPTEN /MULT BY 10.0 OR 0.1 004713 2200 ISZ DCNT 004714 5311 JMP SCALUP 004715 4351 NOSCAL, JMS CLEAR 004716 7130 STL RAR 004717 3130 DCA OP+5 /ROUNDING CONSTANT 004720 4766 JMS I (ADD 004721 1132 TAD AC 004722 7640 SZA CLA 004723 4765 JMS I (NORM /WATCH IT! 004724 3137 DCA AC+5 004725 1055 TAD LASTOP 004726 7650 SNA CLA /SIGN -? 004727 5343 JMP NOTNEG /NO 004730 1364 TAD (AC+5 004731 4763 JMS I (SETUP 004732 7004 ACNGLP, RAL 004733 1467 TAD I P /NEGATE FAC 004734 7141 CLL CIA 004735 3467 DCA I P 004736 7240 STA 004737 1067 TAD P 004740 3067 DCA P 004741 2021 ISZ CT 004742 5332 JMP ACNGLP / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 69-1 004743 4351 NOTNEG, JMS CLEAR /SET UP X10 004744 1410 TAD I X10 004745 4560 JMS I [OUTWRD 004746 2046 ISZ DESW /OUTPUT # 004747 5344 JMP .-3 004750 5564 JMP I [NEXTST / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 70 004751 0000 CLEAR, 0 /AC MAY NOT BE 0 004752 1375 TAD (-7 004753 3021 DCA CT 004754 1362 TAD (OPX-1 004755 3010 DCA X10 004756 3410 DCA I X10 004757 2021 ISZ CT 004760 5356 JMP .-2 004761 5751 JMP I CLEAR 4600 DCNT=FULCHK 0022 DPSW=NCTMP 0046 DESW=OPCODE 004762 0121 004763 5146 004764 0137 004765 5055 004766 5033 004767 3400 004770 7752 004771 7522 004772 5000 004773 5103 004774 2534 004775 7771 004776 7523 004777 3472 5000 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 71 5000 OVBUFR=. 005000 0000 FAD, 0 /FLOATING ADD DIGIT IN AC 005001 3123 DCA OP 005002 1377 TAD (13 005003 3122 DCA OPX 005004 1122 ALNLP, TAD OPX 005005 7041 CIA 005006 1131 TAD ACX 005007 7450 SNA /ALIGNED? 005010 5215 JMP GOADD /YES 005011 7700 SMA CLA 005012 1376 TAD (OPX-ACX 005013 4220 JMS RSHFT /NO-SHIFT 1 OF THEM RIGHT 1 005014 5204 JMP ALNLP /TRY AGAIN 005015 4233 GOADD, JMS ADD /ADD FRACTIONS 005016 4255 JMS NORM /NORMALIZE RESULT 005017 5600 JMP I FAD /RETURN / 005020 0000 RSHFT, 0 /SHIFT RIGHT 005021 1375 TAD (ACX /DEFAULT IS FAC 005022 4346 JMS SETUP 005023 2467 ISZ I P /BUMP EXPONENT 005024 2067 RSLP, ISZ P 005025 1467 TAD I P 005026 7010 RAR 005027 3467 DCA I P 005030 2021 ISZ CT 005031 5224 JMP RSLP 005032 5620 JMP I RSHFT / 005033 0000 ADD, 0 /ADD TO FAC 005034 1374 TAD (OP+5 005035 3103 DCA PP2 005036 1373 TAD (AC+5 005037 4346 JMS SETUP 005040 7004 ADDLP, RAL /CARRY 005041 1503 TAD I PP2 005042 1467 TAD I P 005043 3467 DCA I P /ADD ONE WORD 005044 7240 STA 005045 1067 TAD P /COMPLEMENT LINK 005046 3067 DCA P 005047 7240 STA 005050 1103 TAD PP2 /COMPLEMENT LINK 005051 3103 DCA PP2 005052 2021 ISZ CT 005053 5240 JMP ADDLP 005054 5633 JMP I ADD / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 72 005055 0000 NORM, 0 /NORMALIZE FAC 005056 1132 TAD AC 005057 7710 SPA CLA /CHECK FOR OVERNORMALIZATION 005060 4220 JMS RSHFT /AND CORRECT 005061 7132 NORMLP, STL RTR 005062 0132 AND AC 005063 7640 SZA CLA /NORMALIZED? 005064 5655 JMP I NORM /YES 005065 1373 TAD (AC+5 005066 4346 JMS SETUP 005067 1467 LSLP, TAD I P 005070 7004 RAL /LEFT SHIFT 005071 3467 DCA I P /FAC 1 BIT 005072 7260 STA CML /COMPLEMENT LINK 005073 1067 TAD P 005074 3067 DCA P 005075 2021 ISZ CT 005076 5267 JMP LSLP 005077 7240 STA 005100 1131 TAD ACX /BUMP EXP 005101 3131 DCA ACX /DOWN 1 005102 5261 JMP NORMLP / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 73 005103 0000 FMPTEN, 0 /FLTG MULTIPLY BY 10.0 OR .1 005104 1372 TAD (TEN 005105 4346 JMS SETUP 005106 1132 TAD AC 005107 7650 SNA CLA /AC=0 MEANS RESULT=0 005110 5703 JMP I FMPTEN 005111 1467 TAD I P 005112 1131 TAD ACX /FUDGE FAC 005113 3131 DCA ACX /EXPONENT 005114 1371 TAD (MUX 005115 3011 DCA X11 005116 1375 TAD (ACX 005117 3346 DCA SETUP 005120 1370 TAD (OPX 005121 3010 DCA X10 005122 3354 DCA MUX /CLEAR MULT TEMP EXP 005123 2346 MPLP1, ISZ SETUP 005124 1746 TAD I SETUP /MOVE FAC 005125 3410 DCA I X10 /TO OP 005126 3746 DCA I SETUP /CLEAR FAC 005127 2067 ISZ P 005130 1467 TAD I P /MOVE MULTIPLIER 005131 3411 DCA I X11 /TO MULT TEMP 005132 2021 ISZ CT 005133 5323 JMP MPLP1 / 005134 1367 MPLP2, TAD (MUX-ACX 005135 4220 JMS RSHFT /SHIFT MULT TEMP RIGHT 1 005136 7430 SZL 005137 4233 JMS ADD /ADD IF LOW ORDER BIT WAS 1 005140 4220 JMS RSHFT /SHIFT FAC RIGHT 005141 1362 TAD MU+5 005142 7640 SZA CLA /12 SUCCESSIVE 0 BITS 005143 5334 JMP MPLP2 /IN MULTIPLIER MEANS DONE 005144 4255 JMS NORM 005145 5703 JMP I FMPTEN / 005146 0000 SETUP, 0 /COMMON CODE 005147 3067 DCA P 005150 1366 TAD (-6 005151 3021 DCA CT 005152 7100 CLL 005153 5746 JMP I SETUP / 005154 0000 MUX, 0 /MULT TEMP 005155 0000 MU, ZBLOCK 6 0021 CT=CPTMP 0067 P=EXTMP 0103 PP2=PAGEN / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 74 005166 7772 005167 5023 005170 0122 005171 5154 005172 2750 005173 0137 005174 0130 005175 0131 005176 7771 005177 0013 5200 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 75 IFNZRO RALF < 005200 1577 ESDBUF, PNDL+6 /ESD ENTRY FOR SECTION #MAIN 005201 1571 PNDL /DITTO FOR BLANK COMMON 005202 0000 ZBLOCK 376 /FILL TO 400 LOCS / / BEGIN OF PASS 2: / DUMP EXTERNAL SYMBOL DICTIONARY / DURING PASSES 2 AND 3, THIS IS INPUT BUFFER / 005600 7344 DMPESD, CLA CLL CMA RAL /-2 005601 3070 DCA EXTMP2 /PASS CONTROL 005602 1377 TAD (3 /RALF OUTPUT IDENTIFIER 005603 3415 DCA I OUTPTR 005604 1003 TAD VERS 005605 3415 DCA I OUTPTR /THIS MAKES 6-WORD ENTRIES 005606 1030 TAD DPFLG /4000=NEED DP HARDWARE 005607 3415 DCA I OUTPTR /EXACTLY FILL A BLOCK 005610 3415 DCA I OUTPTR 005611 1376 ESDSCN, TAD (ESDBUF-1 005612 3010 DCA X10 /POINT TO POINTERS 005613 1375 TAD (ESDBUF+177 005614 3012 DCA X12 /POINT TO INITAIL CHARS 005615 1025 TAD ESDNO 005616 7041 CIA 005617 3067 DCA EXTMP 005620 1374 ESDLUP, TAD (-3 005621 3066 DCA LTEMP /NAME LENGTH COUNT 005622 1373 TAD (EQUN-1 /WHERE WE'LL KEEP THE NAME 005623 3013 DCA X13 005624 1410 TAD I X10 /GET POINTER 005625 3011 DCA X11 005626 1412 TAD I X12 /GET FIRST CHAR 005627 7450 SNA /BLANK BECOMES # 005630 1372 TAD (43 005631 4562 ESDNLP, JMS I [R6L 005632 3073 DCA EQUN+2 005633 6211 CDF FLD1 005634 1411 TAD I X11 /GET NEXT PAIR FROM SYMBOL TABLE 005635 3074 DCA EQUN+3 /HOLD IT 005636 6201 CDF FLD0 005637 1074 TAD EQUN+3 005640 4551 JMS I [R6R /GET LEFT CHAR 005641 1073 TAD EQUN+2 /COMBINE THEM 005642 3413 DCA I X13 005643 1074 TAD EQUN+3 /GET RIGHT HALF OF PAIR 005644 0163 AND [77 005645 2066 ISZ LTEMP 005646 5231 JMP ESDNLP 005647 0154 AND [37 /DROP FORCE BIT FROM TYPE 005650 3074 DCA EQUN+3 005651 6211 CDF FLD1 005652 1411 TAD I X11 /HIGH VALUE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 75-1 005653 3075 DCA EQUN+4 005654 1411 TAD I X11 /LOW VALUE 005655 3076 DCA EQUN+5 005656 6201 CDF FLD0 005657 1070 TAD EXTMP2 /WHAT PASS IS THIS? 005660 7010 RAR /LINK 0 IF FIRST, 1 IF SECOND 005661 7620 SNL CLA 005662 5271 JMP NOENTS /FIRST, ENTRYS NOT OUTPUT 005663 1074 TAD EQUN+3 /OUTPUT ENTRIES ONLY ON 2ND 005664 7110 CLL RAR 005665 7650 SNA CLA 005666 7420 SNL 005667 5330 JMP ESDLND /NO GO 005670 5306 JMP ESDOUT /YES, PUT IT 005671 1074 NOENTS, TAD EQUN+3 /EXT, COMM, OR SCTN 005672 7110 CLL RAR 005673 7450 SNA /SKIP IF OK 005674 5330 JMP ESDLND /UNDEFINED OR ENTRY 005675 7010 RAR 005676 7650 SNA CLA 005677 5306 JMP ESDOUT /IF EXTERN, DO IT 005700 1075 TAD EQUN+4 /IF SECTION, CHECK 005701 0156 AND [7 /THAT LENGTH 005702 7450 SNA /IS NON-ZERO 005703 1076 TAD EQUN+5 005704 7650 SNA CLA 005705 5330 JMP ESDLND /ZERO LEN JUST GETS IN THE WAY 005706 1373 ESDOUT, TAD (EQUN-1 005707 3013 DCA X13 005710 1371 TAD (-6 005711 3066 DCA LTEMP 005712 1413 TAD I X13 /GET OUTPUT WORD 005713 3415 DCA I OUTPTR 005714 2066 ISZ LTEMP 005715 5312 JMP .-3 /6-WORD ENTRIES 005716 1015 TAD OUTPTR 005717 1360 TAD OUTBUF 005720 7710 SPA CLA 005721 5330 JMP ESDLND /NOT END OF BLOCK YET 005722 4770 JMS I (OUTBLK 005723 1377 TAD (3 005724 3415 DCA I OUTPTR 005725 3415 DCA I OUTPTR 005726 3415 DCA I OUTPTR 005727 3415 DCA I OUTPTR 005730 2067 ESDLND, ISZ EXTMP /GO THRU ESD LIST 005731 5220 JMP ESDLUP 005732 2070 ISZ EXTMP2 /WHOLE LIST TWO PASSES 005733 5211 JMP ESDSCN 005734 1371 TAD (-6 /THEN STORE END-OF-ESD 005735 3066 DCA LTEMP 005736 3415 DCA I OUTPTR 005737 2066 ISZ LTEMP 005740 5336 JMP .-2 005741 1367 TAD (377 /FORCE BLOCK OUTPUT / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 75-2 005742 4766 JMS I (FULCHK 005743 6211 CDF FLD1 /THEN DEFAULT ORG 005744 1765 TAD I (LMAIN /IF MAIN LEN .NE. 0 005745 0156 AND [7 005746 7450 SNA 005747 1764 TAD I (LMAIN+1 005750 6201 CDF FLD0 005751 7650 SNA CLA 005752 5763 JMP I (RESET /FIRST SECTION WILL GET IT 005753 1362 TAD (TTORG+1 /ORG TO ZERO OF MAIN 005754 3415 DCA I OUTPTR 005755 3415 DCA I OUTPTR 005756 3415 DCA I OUTPTR 005757 5763 JMP I (RESET 005760 1001 OUTBUF, 1001 005762 1001 005763 3121 005764 1604 005765 1603 005766 4600 005767 0377 005770 3472 005771 7772 005772 0043 005773 0070 005774 7775 005775 5377 005776 5177 005777 0003 6000 PAGE /> / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 76 / / INITIALIZATION CODE / 006000 5206 BEGIN, JMP CHNIN /IF ENTERED BY CHAIN 006001 6212 GCMND, CIF 10 /IF ENTERED BY .R, ETC 006002 4516 JMS I USR /USR IS LEFT OVER 006003 0005 5 /DECODE IFZERO RALF < 620 /DEFAULT EXT = .FP> IFNZRO RALF < 006004 2201 2201 /DEFAULT EXT = .RA> 006005 3777 DCA I (RETSYS /NO NEED FOR IT IF NOT CHAINED 006006 4776 CHNIN, JMS I (7607 006007 4100 4100 /TEMP WRITE OUT OVERLAY 006010 6600 6600 /NOW AT 6600 006011 0040 40 /TO SYS SCRATCH BLK 40 006012 5775 JMP I (7605 /ERROR 006013 6211 CDF 10 IFNZRO RALF < 006014 1573 TAD I [7600 /BIN FILE UNIT 006015 0120 AND NP17 006016 7450 SNA /IS THERE ONE? 006017 5233 JMP DEFBIN /NO, SET DEFAULT 006020 1374 TAD (7757 /POINT TO DEV CTRL WORD 006021 3042 DCA WORD1 006022 1442 TAD I WORD1 006023 7710 SPA CLA 006024 5250 JMP OKBIN /FILE-STRUCTURED, OK 006025 6201 CDF 0 006026 4773 JMS I (PRTXT /TYPE MESSAGE 006027 6303 TXBBIN-1 006030 7762 -TXBLN 006031 4577 JMS I [CRLF 006032 5201 JMP GCMND /TRY AGAIN / 006033 7201 DEFBIN, CLA IAC /DEFAULT BIN UNIT IS SYS 006034 3573 DCA I [7600 /SET UNIT 006035 1173 TAD [7600 006036 3010 DCA X10 /SET POINTER 006037 1372 TAD (0617 /FO 006040 3410 DCA I X10 006041 1371 TAD (2224 /RT 006042 3410 DCA I X10 006043 1370 TAD (2216 /RN 006044 3410 DCA I X10 /FORTRN. 006045 3410 DCA I X10 006046 6201 CDF 0 006047 5767 JMP I (NOEXT /NOW, OPEN THE FILE> / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 77 006050 6201 OKBIN, CDF 0 /HAVE TO GO TO ANOTHER PAGE 006051 5766 JMP I (NOKBIN /ONLY SO MANY PATCHES TO A PAGE 006052 6211 GBIN, CDF 10 006053 1765 TAD I (7644 006054 0364 AND (20 006055 7650 SNA CLA 006056 2117 ISZ SYONLY /=NO SLASH T 006057 6201 CDF 0 006060 4763 JMS I (NEW /**SEE IF NEED 2 PG HANDLER 006061 7600 7600 006062 4762 JMS I (OOPEN 006063 3107 DCA BFILE IFNZRO RALF < 006064 1277 TAD R41 /L OR G SWITCH** 006065 6211 CDF 10 006066 0761 AND I (7643 /TEST /L OR /G SWITCH 006067 6201 CDF 0 006070 7650 SNA CLA /** 006071 5306 JMP KCHN /KILL CHAIN, IT'S SET 006072 1760 TAD I (SBLOCK /FROM CCL-DEVICE 006073 6212 CIF 10 006074 4516 JMS I USR 006075 0002 2 /LOOKUP 006076 6277 LBLK, LDRNAM /LOADER.SV 006077 0041 R41, 41 /** 006100 5306 JMP KCHN /NO FIND, NO CALL 006101 1276 TAD LBLK /STARTING BLOCK 006102 3757 DCA I (LDRBLK /FOR CHAIN 006103 1756 TAD I (OUBLK /OUTPUT STARTING BLOCK 006104 3755 DCA I (PASBLK /SAVED FOR CHAIN TO LOADER 006105 7240 CLA CMA /ENABLE CHAIN 006106 3754 KCHN, DCA I (CHNSW /OR KILL IT, WHATEVER> 006107 4753 JMS I (INCHK /NOW CHECK INPUT DEVICES FOR 2 PG HANDLERS 006110 4752 JMS I (INNEWF /GET INPUT HANDLER 006111 7240 CLA CMA 006112 3752 DCA I (INCHCT /SET INITIAL COUNT 006113 1121 TAD NP7700 006114 3116 DCA USR /FROM NOW ON, USE THE HIGH CALL / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 78 006115 4763 JMS I (NEW 006116 7605 7605 /CHECK LIST DEV TOO** 006117 6211 CDF 10 006120 1751 TAD I (7611 /LST FILE EXT 006121 7450 SNA 006122 1350 TAD (1423 /LS DEFAULT 006123 3751 DCA I (7611 006124 1747 TAD I (7666 /GET DATE 006125 3042 DCA WORD1 / / MOVE SYMBOL TABLE TO ITS PROPER LOCATION / 006126 1346 TAD (1777 006127 3010 DCA X10 /LOADED ADDRESS OF SYMBOL TABLE 006130 7240 CLA CMA 006131 3011 DCA X11 /WE MOVE IT TO ASSEMBLED ADDRESS 006132 1345 TAD (-FREE /LENGTH OF SYMBOL TABLE 006133 3043 DCA WORD2 /SET COUNT 006134 1410 TAD I X10 006135 3411 DCA I X11 /THIS SAVES SWAPS OF USR 006136 2043 ISZ WORD2 006137 5334 JMP .-3 006140 6201 CDF 0 006141 5744 JMP I (GDATE /CHECK FOR FPP PRESENCE** 006144 6200 006145 6173 006146 1777 006147 7666 006150 1423 006151 7611 006152 4324 006153 6463 006154 0007 006155 3471 006156 4432 006157 3470 006160 7776 006161 7643 006162 4400 006163 6400 006164 0020 006165 7644 006166 6505 006167 6523 006170 2216 006171 2224 006172 0617 006173 1504 006174 7757 006175 7605 006176 7607 006177 3425 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 78-1 6200 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 79 / / PUT THE DATE INTO THE PAGE HEADING / 006200 1377 GDATE, TAD (1000 006201 3776 DCA I (7746 /SET NO-RESTART BIT /PUT VERNUM IN TITLE LINE 006202 1275 TAD VMSG 006203 3775 DCA I (VMTXT 006204 1276 TAD VMSG+1 /PATCH LEVEL 006205 3774 DCA I (VMTXT+1 006206 3006 DCA OCNT /CLEAR OCNT 006207 1042 TAD WORD1 /RE-GET DATE 006210 7450 SNA 006211 5773 JMP I (NEWLIN /GOLLY, AND ALL THIS CODE WASTED 006212 0372 AND (370 006213 7112 CLL RTR 006214 7010 RAR 006215 4264 JMS TODEC 006216 1371 TAD (TITDAT-1 006217 3011 DCA X11 006220 1006 TAD OCNT 006221 4770 JMS I (R6L 006222 7440 SZA 006223 1367 TAD (6000 006224 1005 TAD OTEMP 006225 3411 DCA I X11 006226 1042 TAD WORD1 006227 0366 AND (7400 /MONTH 006230 4770 JMS I (R6L 006231 1365 TAD (MONTHS-3 006232 3010 DCA X10 006233 1410 TAD I X10 006234 3411 DCA I X11 006235 1410 TAD I X10 006236 3411 DCA I X11 006237 3006 DCA OCNT 006240 1042 TAD WORD1 006241 0156 AND [7 006242 3005 DCA OTEMP 006243 1764 TAD I (7777 006244 0363 AND (1600 /WAS 600 006245 7112 RTR CLL 006246 7012 RTR 006247 1005 TAD OTEMP 006250 1362 TAD (-36 /70-100 006251 7510 SPA 006252 1361 TAD (144 /100 006253 4264 JMS TODEC 006254 1360 TAD (5560 006255 1006 TAD OCNT 006256 3411 DCA I 11 006257 1005 TAD OTEMP / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 79-1 006260 4770 JMS I (R6L 006261 1357 TAD (40 006262 3411 DCA I X11 006263 5773 JMP I (NEWLIN 006264 0000 TODEC, 0 006265 1356 TAD (-12 006266 7510 SPA 006267 5272 JMP .+3 006270 2006 ISZ OCNT 006271 5265 JMP .-4 006272 1355 TAD (72 /60+12 006273 3005 DCA OTEMP 006274 5664 JMP I TODEC 006275 6560 VMSG, VNUM&70^10+VNUM&707+6060 006276 0140 PATCH&77^100+40 IFNZRO RALF < 006277 1417 LDRNAM, TEXT "LOAD@@SV" 006300 0104 006301 0000 006302 2326 006303 0000 006304 1725 TXBBIN, TEXT "OUT DEV NOT FILE-STRUCTURED" 006305 2440 006306 0405 006307 2640 006310 1617 006311 2440 006312 0611 006313 1405 006314 5523 006315 2422 006316 2503 006317 2425 006320 2205 006321 0400 0016 TXBLN= .-TXBBIN > 006322 5512 MONTHS, TEXT "-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC" 006323 0116 006324 5506 006325 0502 006326 5515 006327 0122 006330 5501 006331 2022 006332 5515 006333 0131 006334 5512 006335 2516 006336 5512 006337 2514 006340 5501 006341 2507 006342 5523 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 79-2 006343 0520 006344 5517 006345 0324 006346 5516 006347 1726 006350 5504 006351 0503 006352 0000 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 80 006355 0072 006356 7766 006357 0040 006360 5560 006361 0144 006362 7742 006363 1600 006364 7777 006365 6317 006366 7400 006367 6000 006370 2550 006371 0551 006372 0370 006373 0240 006374 0550 006375 0547 006376 7746 006377 1000 6400 PAGE /PAGE FOR NEW CODE REQUIRED FOR OS/8 FORTRAN 006400 0000 NEW, 0 006401 1262 TAD NT2 /CHECK IF ALREADY CHECKED 006402 7640 SZA CLA 006403 5256 JMP NEWDON 006404 1600 TAD I NEW /NO. GET THE DEV TO CHECK 006405 3260 DCA NTEMP 006406 6211 CDF 10 006407 1660 TAD I NTEMP /GET DEV.NUM 006410 0172 AND [17 006411 3261 DCA NT1 /INCHK NEEDS TO KNOW TOO 006412 1261 TAD NT1 006413 7450 SNA /IF 0,THEN NO DEVICE 006414 5256 JMP NEWDON 006415 3260 DCA NTEMP 006416 7240 CLA CMA 006417 1777 TAD I (37 /GET PTR TO DEV TBL 006420 1260 TAD NTEMP 006421 3260 DCA NTEMP /PTS TO ENTRY IN DEV TBL 006422 1660 TAD I NTEMP 006423 6201 CDF 0 006424 7700 SMA CLA 006425 5255 JMP FIX /NOT A 2 PG HANDLER 006426 1376 TAD (6377 /FIX ALL LOCATIONS THAT REFER TO /THE BUFFER VARIABLES. /THE CHANGES ARE: /OUBUF=6000,LINE=6400,INDEVH=6600,OUDEVH=7200 /INRECS=1,INCTL=200 006427 3775 DCA I (BLINE 006430 1374 TAD (6000 006431 3773 DCA I (NOUBUF IFNZRO RALF < / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 80-1 006432 1372 TAD (5777 006433 3771 DCA I (MOUBUF > /FLAP DOESN'T USE ALL THE RALF LOCNS 006434 1370 TAD (6601 006435 3767 DCA I (NINDEV 006436 1366 TAD (201 006437 3765 DCA I (NINCTL 006440 4335 JMS TPNSH /TWO-PAGE NON-SYSTEM HANDLER 006441 3764 DCA I (NINREC 006442 1374 TAD (6000 006443 3763 DCA I (LOUBUF 006444 1362 TAD (7201 006445 3761 DCA I (NOUDEV 006446 1372 TAD (5777 006447 3760 DCA I (OUTPTR 006450 1376 TAD (6377 006451 3757 DCA I (CHRPTR IFNZRO RALF < 006452 1356 TAD (1401 006453 3755 DCA I (KOUBUF > 006454 1362 TAD (7201 006455 3262 FIX, DCA NT2 /SET SO IF DID 2 PGS., DONT DO IT AGAIN 006456 2200 NEWDON, ISZ NEW /GET CORRECT ADDR 006457 5600 JMP I NEW 006460 0000 NTEMP, 0 006461 0000 NT1, 0 /DEV. NUM. 006462 0000 NT2, 0 /0 IF NO 2PG HANDLERS YET 006463 0000 INCHK, 0 /CHECK THE INPUT DEVICES 006464 4200 JMS NEW 006465 7617 INLOC, 7617 006466 1265 TAD INLOC 006467 3302 DCA NEXTIN 006470 1261 ANOTH, TAD NT1 006471 7650 SNA CLA /SKIP IF FILE USED 006472 5663 JMP I INCHK 006473 1262 TAD NT2 006474 7640 SZA CLA /SKIP IF STILL 1 PAGE HANDLERS 006475 5663 JMP I INCHK 006476 1304 TAD NP2 006477 1302 TAD NEXTIN 006500 3302 DCA NEXTIN /INCREMENT TO PT TO NEXT INPUT FILR 006501 4200 JMS NEW 006502 0000 NEXTIN, 0 006503 5270 JMP ANOTH 006504 0002 NP2, 2 006505 6211 NOKBIN, CDF 10 /BELONGS WITH INIT CODE 006506 1573 TAD I [7600 006507 0120 AND NP17 006510 1354 TAD (7646 006511 3042 DCA WORD1 /CREATE POINTER INTO DEV TBL 006512 1442 TAD I WORD1 006513 6201 CDF 0 006514 1353 TAD (-7607 006515 7650 SNA CLA /IF ITS SYS, NO PROBLEMS 006516 3752 DCA I (RETSYS /SO CAN ZERO CALL TO DELETE ROUTINE 006517 6211 CDF 10 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 80-2 006520 1751 TAD I (7604 006521 7440 SZA 006522 5331 JMP FEND /AN EXT WAS SPECIFIED IFZERO RALF < TAD (0216 /.BN DEFAULT FOR FLAP JMP FEND > IFNZRO RALF < 006523 6211 NOEXT, CDF 10 006524 1750 TAD I (7643 /CHECK IF L OR G SPEC 006525 0334 AND L41 006526 7650 SNA CLA 006527 1347 TAD (0610 /NO-NEEDS RL EXT 006530 1346 TAD (1404 > /YES-NEEDS LD 006531 3751 FEND, DCA I (7604 006532 6201 CDF 0 006533 5745 JMP I (GBIN 006534 0041 L41, 41 006535 0000 TPNSH, 0 IFNZRO RALF < 006536 1356 TAD (1401 /CHANGE OUTPUT BUFFER 006537 3744 DCA I (OUTBUF> 006540 7001 IAC 006541 5735 JMP I TPNSH / 006544 5760 006545 6052 006546 1404 006547 0610 006550 7643 006551 7604 006552 3425 006553 0171 006554 7646 006555 4616 006556 1401 006557 0017 006560 0015 006561 4543 006562 7201 006563 4470 006564 4202 006565 4201 006566 0201 006567 4366 006570 6601 006571 3501 006572 5777 006573 0436 006574 6000 006575 0141 006576 6377 006577 0037 6600 PAGE / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 81 5000 LDADR, RELOC OVBUFR 005000* 1104 TAD ERRORS /ERROR COUNT 005001* 4777 JMS I (DECOUT 005002* 4776 JMS I (PRTXT /"ERRORS" 005003* 0361 TXERR-1 005004* 7774 -TXELN 005005* 4577 JMS I [CRLF IFZERO RALF < TAD PASSNO /IF NOT LISTING PASS SPA SNA CLA /ERROR COUNT IS ENUF JMP I (RETSYS > 005006* 1016 TAD NEXT 005007* 1375 TAD (-FREE+1 /DON'T COUNT BASIC SYMBOLS 005010* 7110 CLL RAR /DIVIDE 005011* 4774 JMS I (OVER3 /BY 6 005012* 4777 JMS I (DECOUT 005013* 4776 JMS I (PRTXT /"SYMBOLS, " 005014* 2161 TXSYM-1 005015* 7773 -TXSLN IFZERO RALF < TAD LINKS JMS I (DECOUT JMS I (PRTXT /"LINKS" TXLNK-1 -TXLLN > IFNZRO RALF < 005016* 1114 TAD ABREFS 005017* 4777 JMS I (DECOUT 005020* 4776 JMS I (PRTXT /"ABS REFS" 005021* 1555 TXABR-1 005022* 7773 -TXALN > 005023* 4577 JMS I [CRLF 005024* 1373 TAD (-33 /27 BUCKETS 005025* 3066 DCA LTEMP 005026* 3051 DCA BUCKET 005027* 7240 CLA CMA 005030* 3046 DCA OPCODE /SYMBOLS PER LINE COUNTER / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 82 005031* 1051 STPRNT, TAD BUCKET 005032* 3067 DCA EXTMP /BUCKET START ADDRESS 005033* 6211 LUPBKT, CDF FLD1 005034* 1467 TAD I EXTMP /WAS THAT LAST SYMBOL ? 005035* 7450 SNA 005036* 5306 JMP NXTBKT /YES, GO GET NEXT BUCKET 005037* 3067 DCA EXTMP /SAVE LINK ADDR 005040* 1067 TAD EXTMP 005041* 3014 DCA X14 /SET UP POINTER FOR NAME 005042* 2046 ISZ OPCODE /IS LINE FULL? 005043* 5247 JMP .+4 /NO 005044* 1372 TAD (-4 005045* 3046 DCA OPCODE 005046* 4577 JMS I [CRLF 005047* 1051 TAD BUCKET 005050* 7450 SNA /WATCH FOR # 005051* 1371 TAD (43 005052* 4576 JMS I [PRINT2 /PRINT BUCKET (FIRST) CHAR 005053* 6211 CDF FLD1 005054* 1414 TAD I X14 /SYMBOL 005055* 4576 JMS I [PRINT2 /PRINT 2 AND 3 005056* 6211 CDF FLD1 005057* 1414 TAD I X14 005060* 4576 JMS I [PRINT2 /PRINT 4 AND 5 005061* 6211 CDF FLD1 005062* 1414 TAD I X14 IFNZRO RALF < 005063* 3005 DCA OTEMP /HOLD 005064* 1005 TAD OTEMP > 005065* 0121 AND NP7700 /PRINT 6 AND BLANK 005066* 4576 JMS I [PRINT2 IFNZRO RALF < 005067* 1005 TAD OTEMP /GET TYPE 005070* 0172 AND [17 005071* 1370 TAD (TYPCOD /POINT TO TABLE 005072* 3005 DCA OTEMP 005073* 1405 TAD I OTEMP /GET TYPE INDICATOR 005074* 4576 JMS I [PRINT2 > 005075* 6211 CDF FLD1 005076* 1414 TAD I X14 /PRINT FIRST DIGIT 005077* 0156 AND [7 005100* 4767 JMS I (PDIG /FIELD DIGIT 005101* 6211 CDF FLD1 005102* 1414 TAD I X14 /LOW 12 BITS 005103* 4545 JMS I [OCTOUT 005104* 4576 JMS I [PRINT2 /TWO BLANKS 005105* 5233 JMP LUPBKT / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 83 005106* 2051 NXTBKT, ISZ BUCKET /NEXT BUCKET CHAR 005107* 6201 CDF FLD0 005110* 2066 ISZ LTEMP /INCREMENT COUNT 005111* 5231 JMP STPRNT 005112* 4577 JMS I [CRLF /DO FINAL CRLF** 005113* 1366 TAD (214 /DO NOT PAGEJ 005114* 4505 JMS I PC /THAT WOULD GIVE A HEADING 005115* 4765 JMS I (OCLOSE 005116* 5764 JMP I (RETSYS /FINISH IT OFF 005164* 3425 005165* 4474 005166* 0214 005167* 2751 005170* 3502 005171* 0043 005172* 7774 005173* 7745 005174* 0400 005175* 6174 005176* 1504 005177* 2673 5200 PAGE 7000 RELOC / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 84 / PAGE 0 LITERALS 000143 3257 000144 0437 000145 2757 000146 0177 000147 2632 000150 0100 000151 2555 000152 0240 000153 0515 000154 0037 000155 0200 000156 0007 000157 7770 000160 3041 000161 2200 000162 2550 000163 0077 000164 0203 000165 1600 000166 7540 000167 2242 000170 2452 000171 2400 000172 0017 000173 7600 000174 2644 000175 2410 000176 1520 000177 1433 0001 FIELD 1 0000 *10000 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 85 / / SYMBOL TABLE IS IN FIELD ONE. / EACH ENTRY HAS THE FOLLOWING FORMAT / / 0: POINTER TO NEXT ENTRY IN BUCKET, 0 IF LAST / 1: 2ND AND 3RD CHARS OF SYMBOL / 2: 4TH AND 5TH / 3: 6TH AND TYPE CODE / 4: ESD # AND HIGH-ORDER VALUE / 5: LOW-ORDER VALUE / 0001 USER=1 0002 XTERN=2 0003 COMMN=3 0004 SECTN=4 0005 PSUDO=5 0006 PDPMR=6 0007 FPPMRF=7 0010 FPPSF1=10 /JXN, TRAP 0011 FPPSF2=11 /JA, SETB, SETX 0012 FPPSF3=12 /CLA, EXIT, NEG, NOP, NORM, /PAUS, JAC, STARTD, STARTF 0013 FPPSF4=13 /ALN, ATX, XTA 0014 FPPSF5=14 /ADDX, LDX 0015 FPPMRI=15 /% 0016 FPPMRS=16 /' 0017 FPPMRL=17 /# 0020 PDPOP=20 / / THE FOLLOWING CODE TRICKS THE LOADER INTO PUTTING / THE SYMBOL TABLE AT 2000, WHERE THE USR IS NOT, / THUS SAVING SOME SWAPPING AT LOAD AND INITIALIZE. / IT IS MOVED TO THE ASSEMBLED ADDRESS AFTER WE'RE / DONE WITH THE USR, AND BEFORE THE FIRST PASS BEGINS / 2000 *12000 NOPUNCH 0000 *10000 ENPUNCH / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 86 / / BUCKETS FOR USER-DEFINED SYMBOLS / AND PDP8 OPERATES AND IOTS / 010000 1571 PNDL 010001 0000 ZBLOCK 33 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 87 / / BUCKETS FOR INTERNALLY DEFINED SYMBOLS / 010034 0066 AL 010035 0136 BL 010036 0143 CL 010037 0220 DL 010040 0256 EL 010041 0302 FL 010042 0000 GL 010043 0655 HL 010044 0662 IL 010045 1014 JL 010046 1160 KL 010047 1204 LL 010050 0000 ML 010051 1230 NL 010052 1235 OL 010053 0000 PL 010054 0000 QL 010055 1254 RL 010056 1331 SL 010057 1451 TL 010060 0000 UL 010061 0000 VL 010062 0000 WL 010063 1557 XL 010064 0000 YL 010065 1564 ZL / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 88 010066 0073 AL, .+5 /ADDR 010067 0404 0404;2200 010070 2200 010071 0011 FPPSF2 010072 0000 0 010073 0100 .+5 /ADDX 010074 0404 0404;3000 010075 3000 010076 0014 FPPSF5 010077 0110 0110 010100 0105 .+5 /ALN 010101 1416 1416;0 010102 0000 010103 0013 FPPSF4 010104 0010 0010 IFZERO RALF < .+5 /AND 1604;0 PDPMR AND 0 > IFNZRO RALF < 010105 0112 .+5 /AND . 010106 1604 1604;0 010107 0000 010110 0006 PDPMR 010111 0200 200 010112 0117 .+5 /AND% 010113 1604 1604;0 010114 0000 010115 0506 PDPMR+500 010116 0600 600 010117 0124 .+5 /ANDZ 010120 1604 1604;3200 010121 3200 010122 0006 PDPMR 010123 0000 0 010124 0131 .+5 /ANDZ% 010125 1604 1604;3200 010126 3200 010127 0506 PDPMR+500 010130 0400 400 > 010131 0000 0 /ATX 010132 2430 2430;0 010133 0000 010134 0013 FPPSF4 010135 0020 0020 010136 0000 BL, 0 /BASE 010137 0123 0123;0500 010140 0500 010141 0005 PSUDO 010142 1340 BASEX 010143 0150 CL, .+5 /CDF / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 88-1 010144 0406 0406;0 010145 0000 010146 0020 PDPOP 010147 6201 CDF 010150 0155 .+5 /CIA 010151 1101 1101;0 010152 0000 010153 0020 PDPOP 010154 7041 CIA 010155 0162 .+5 /CIF 010156 1106 1106;0 010157 0000 010160 0020 PDPOP 010161 6202 CIF 010162 0167 .+5 /CLA 010163 1401 1401;0 010164 0000 010165 0020 PDPOP 010166 7200 CLA 010167 0174 .+5 /CLL 010170 1414 1414;0 010171 0000 010172 0020 PDPOP 010173 7100 CLL 010174 0201 .+5 /CMA 010175 1501 1501;0 010176 0000 010177 0020 PDPOP 010200 7040 CMA IFZERO RALF < 0 > 010201 0206 IFNZRO RALF < .+5 > 010202 1514 1514;0 /CML 010203 0000 010204 0020 PDPOP 010205 7020 CML IFNZRO RALF < 010206 0213 .+5 /COMMON 010207 1715 1715;1517 010210 1517 010211 1605 PSUDO+1600 010212 3666 COMMX 010213 0000 0 /COMMZ (8-MODE COMM SECT) 010214 1715 1715;1532 010215 1532 010216 0005 PSUDO 010217 3662 SECT8X-1 > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 89 DL, IFZERO RALF < .+5 /DCA 0301;0 PDPMR DCA 0 > IFNZRO RALF < 010220 0225 .+5 /DCA . 010221 0301 0301;0 010222 0000 010223 0006 PDPMR 010224 3200 3200 010225 0232 .+5 /DCA% 010226 0301 0301;0 010227 0000 010230 0506 PDPMR+500 010231 3600 3600 010232 0237 .+5 /DCAZ 010233 0301 0301;3200 010234 3200 010235 0006 PDPMR 010236 3000 DCA 0 010237 0244 .+5 /DCAZ% 010240 0301 0301;3200 010241 3200 010242 0506 PDPMR+500 010243 3400 DCA I 0 > IFZERO RALF < 0 > /DECIMAL 010244 0251 IFNZRO RALF < .+5 > 010245 0503 0503;1115 010246 1115 010247 0105 PSUDO+0100 010250 4003 DECX 010251 0000 IFNZRO RALF < 0 /DPCHK 010252 2003 2003;1013 010253 1013 010254 0005 PSUDO 010255 1334 DPCHKX > 010256 0263 EL, .+5 /E 010257 0000 0;0 010260 0000 010261 0005 PSUDO 010262 4632 EX 010263 0270 .+5 /END 010264 1604 1604;0 010265 0000 010266 0005 PSUDO 010267 3200 ENDX IFZERO RALF < 0 /ENPUNCH 1620;2516 PSUDO+0300 ENPNCX > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 89-1 IFNZRO RALF < 010270 0275 .+5 /ENTRY 010271 1624 1624;2231 010272 2231 010273 0005 PSUDO 010274 3630 ENTRX 010275 0000 0 /EXTERN 010276 3024 3024;0522 010277 0522 010300 1605 PSUDO+1600 010301 3646 EXTRNX > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 90 010302 0307 FL, .+5 /F 010303 0000 0;0 010304 0000 010305 0005 PSUDO 010306 4633 FX 010307 0314 .+5 /FADD 010310 0104 0104;0400 010311 0400 010312 0007 FPPMRF 010313 1000 1000 010314 0321 .+5 /FADD# 010315 0104 0104;0400 010316 0400 010317 0317 FPPMRL+300 010320 1000 1000 010321 0326 .+5 /FADD% 010322 0104 0104;0400 010323 0400 010324 0515 FPPMRI+500 010325 1000 1000 010326 0333 .+5 /FADD' 010327 0104 0104;0400 010330 0400 010331 0716 FPPMRS+700 010332 1000 1000 010333 0340 .+5 /FADDM 010334 0104 0104;0415 010335 0415 010336 0007 FPPMRF 010337 5000 5000 010340 0345 .+5 /FADDM# 010341 0104 0104;0415 010342 0415 010343 0317 FPPMRL+300 010344 5000 5000 010345 0352 .+5 /FADDM% 010346 0104 0104;0415 010347 0415 010350 0515 FPPMRI+500 010351 5000 5000 010352 0357 .+5 /FADDM' 010353 0104 0104;0415 010354 0415 010355 0716 FPPMRS+700 010356 5000 5000 010357 0364 .+5 /FCLA 010360 0314 0314;0100 010361 0100 010362 0012 FPPSF3 010363 0002 0002 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 91 010364 0371 .+5 /FDIV 010365 0411 0411;2600 010366 2600 010367 0007 FPPMRF 010370 3000 3000 010371 0376 .+5 /FDIV# 010372 0411 0411;2600 010373 2600 010374 0317 FPPMRL+300 010375 3000 3000 010376 0403 .+5 /FDIV% 010377 0411 0411;2600 010400 2600 010401 0515 FPPMRI+500 010402 3000 3000 010403 0410 .+5 /FDIV' 010404 0411 0411;2600 010405 2600 010406 0715 FPPMRI+700 010407 3000 3000 010410 0415 .+5 /FEXIT 010411 0530 0530;1124 010412 1124 010413 0012 FPPSF3 010414 0000 0 IFNZRO RALF < 010415 0422 .+5 /FIELD1 (8-MODE FIELD1 SECT) 010416 1105 1105;1404 010417 1404 010420 6105 PSUDO+6100 010421 3661 SECT8X-2 > 010422 0427 .+5 /FLDA 010423 1404 1404;0100 010424 0100 010425 0007 FPPMRF 010426 0000 0000 010427 0434 .+5 /FLDA# 010430 1404 1404;0100 010431 0100 010432 0317 FPPMRL+300 010433 0000 0000 010434 0441 .+5 /FLDA% 010435 1404 1404;0100 010436 0100 010437 0515 FPPMRI+500 010440 0000 0000 010441 0446 .+5 /FLDA' 010442 1404 1404;0100 010443 0100 010444 0716 FPPMRS+700 010445 0000 0000 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 92 010446 0453 .+5 /FMUL 010447 1525 1525;1400 010450 1400 010451 0007 FPPMRF 010452 4000 4000 010453 0460 .+5 /FMUL# 010454 1525 1525;1400 010455 1400 010456 0317 FPPMRL+300 010457 4000 4000 010460 0465 .+5 /FMUL% 010461 1525 1525;1400 010462 1400 010463 0515 FPPMRI+500 010464 4000 4000 010465 0472 .+5 /FMUL' 010466 1525 1525;1400 010467 1400 010470 0716 FPPMRS+700 010471 4000 4000 010472 0477 .+5 /FMULM 010473 1525 1525;1415 010474 1415 010475 0007 FPPMRF 010476 7000 7000 010477 0504 .+5 /FMULM# 010500 1525 1525;1415 010501 1415 010502 0317 FPPMRL+300 010503 7000 7000 010504 0511 .+5 /FMULM% 010505 1525 1525;1415 010506 1415 010507 0515 FPPMRI+500 010510 7000 7000 010511 0516 .+5 /FMULM' 010512 1525 1525;1415 010513 1415 010514 0716 FPPMRS+700 010515 7000 7000 010516 0523 .+5 /FNEG 010517 1605 1605;0700 010520 0700 010521 0012 FPPSF3 010522 0003 0003 010523 0530 .+5 /FNOP 010524 1617 1617;2000 010525 2000 010526 0012 FPPSF3 010527 0040 0040 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 93 010530 0535 .+5 /FNORM 010531 1617 1617;2215 010532 2215 010533 0012 FPPSF3 010534 0004 0004 010535 0542 .+5 /FPAUSE 010536 2001 2001;2523 010537 2523 010540 0512 FPPSF3+0500 010541 0001 0001 010542 0547 .+5 /FPCOM 010543 2003 2003;1715 010544 1715 010545 0020 PDPOP 010546 6553 6553 010547 0554 .+5 /FPHLT 010550 2010 2010;1424 010551 1424 010552 0020 PDPOP 010553 6554 6554 010554 0561 .+5 /FPICL 010555 2011 2011;0314 010556 0314 010557 0020 PDPOP 010560 6552 6552 010561 0566 .+5 /FPINT 010562 2011 2011;1624 010563 1624 010564 0020 PDPOP 010565 6551 6551 010566 0573 .+5 /FPIST 010567 2011 2011;2324 010570 2324 010571 0020 PDPOP 010572 6557 6557 010573 0600 .+5 /FPRST 010574 2022 2022;2324 010575 2324 010576 0020 PDPOP 010577 6556 6556 010600 0605 .+5 /FPST 010601 2023 2023;2400 010602 2400 010603 0020 PDPOP 010604 6555 6555 010605 0612 .+5 /FSTA 010606 2324 2324;0100 010607 0100 010610 0007 FPPMRF 010611 6000 6000 010612 0617 .+5 /FSTA# 010613 2324 2324;0100 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 93-1 010614 0100 010615 0317 FPPMRL+300 010616 6000 6000 010617 0624 .+5 /FSTA% 010620 2324 2324;0100 010621 0100 010622 0515 FPPMRI+500 010623 6000 6000 010624 0631 .+5 /FSTA' 010625 2324 2324;0100 010626 0100 010627 0716 FPPMRS+700 010630 6000 6000 010631 0636 .+5 /FSUB 010632 2325 2325;0200 010633 0200 010634 0007 FPPMRF 010635 2000 2000 010636 0643 .+5 /FSUB# 010637 2325 2325;0200 010640 0200 010641 0317 FPPMRL+300 010642 2000 2000 010643 0650 .+5 /FSUB% 010644 2325 2325;0200 010645 0200 010646 0515 FPPMRI+500 010647 2000 2000 010650 0000 0 /FSUB' 010651 2325 2325;0200 010652 0200 010653 0716 FPPMRS+700 010654 2000 2000 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 94 0000 GL= 0 /AINT NONE 010655 0000 HL, 0 /HLT 010656 1424 1424;0 010657 0000 010660 0020 PDPOP 010661 7402 HLT 010662 0667 IL, .+5 /IAC 010663 0103 0103;0 010664 0000 010665 0020 PDPOP 010666 7001 IAC 010667 0674 .+5 /IFFLAP 010670 0606 0606;1401 010671 1401 010672 2005 PSUDO+2000 IFZERO RALF <TRUE> 010673 4054 IFNZRO RALF <FALSE> 010674 0701 .+5 /IFNDEF 010675 0616 0616;0405 010676 0405 010677 0605 PSUDO+0600 010700 4113 IFNDFX 010701 0706 .+5 /IFNEG 010702 0616 0616;0507 010703 0507 010704 0005 PSUDO 010705 4106 IFNEGX 010706 0713 .+5 /IFNSW 010707 0616 0616;2327 010710 2327 010711 0005 PSUDO 010712 4125 IFNSWX 010713 0720 .+5 /IFNZRO 010714 0616 0616;3222 010715 3222 010716 1705 PSUDO+1700 010717 4044 IFNZRX / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 95 010720 0725 .+5 /IFPOS 010721 0620 0620;1723 010722 1723 010723 0005 PSUDO 010724 4107 IFPOSX 010725 0732 .+5 /IFRALF 010726 0622 0622;0114 010727 0114 010730 0605 PSUDO+0600 010731 4057 IFNZRO RALF <TRUE> IFZERO RALF <FALSE> 010732 0737 .+5 /IFREF 010733 0622 0622;0506 010734 0506 010735 0005 PSUDO 010736 4114 IFREFX 010737 0744 .+5 /IFSW 010740 0623 0623;2700 010741 2700 010742 0005 PSUDO 010743 4124 IFSWX 010744 0751 .+5 /IFZERO 010745 0632 0632;0522 010746 0522 010747 1705 PSUDO+1700 010750 4045 IFZROX 010751 0756 .+5 010752 1604 1604;0530 010753 0530 010754 0005 PSUDO 010755 1337 INDXX 010756 0763 .+5 /IOF 010757 1706 1706;0 010760 0000 010761 0020 PDPOP 010762 6002 IOF 010763 0770 .+5 /ION 010764 1716 1716;0 010765 0000 010766 0020 PDPOP 010767 6001 ION IFZERO RALF < 0 /ISZ 2332;0 PDPMR ISZ 0 > IFNZRO RALF < 010770 0775 .+5 /ISZ . 010771 2332 2332;0 010772 0000 010773 0006 PDPMR 010774 2200 ISZ .&7600 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 95-1 010775 1002 .+5 /ISZ% 010776 2332 2332;0 010777 0000 011000 0506 PDPMR+500 011001 2600 ISZ I .&7600 011002 1007 .+5 /ISZZ 011003 2332 2332;3200 011004 3200 011005 0006 PDPMR 011006 2000 ISZ 0 011007 0000 0 /ISZZ% 011010 2332 2332;3200 011011 3200 011012 0506 PDPMR+500 011013 2400 ISZ I 0 > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 96 011014 1021 JL, .+5 /JA 011015 0100 0100;0 011016 0000 011017 0011 FPPSF2 011020 1030 1030 011021 1026 .+5 /JAC 011022 0103 0103;0 011023 0000 011024 0012 FPPSF3 011025 0007 0007 011026 1033 .+5 /JAL 011027 0114 0114;0 011030 0000 011031 0011 FPPSF2 011032 1070 1070 011033 1040 .+5 /JEQ 011034 0521 0521;0 011035 0000 011036 0011 FPPSF2 011037 1000 1000 011040 1045 .+5 /JGE 011041 0705 0705;0 011042 0000 011043 0011 FPPSF2 011044 1010 1010 011045 1052 .+5 /JGT 011046 0724 0724;0 011047 0000 011050 0011 FPPSF2 011051 1060 1060 011052 1057 .+5 /JLE 011053 1405 1405;0 011054 0000 011055 0011 FPPSF2 011056 1020 1020 011057 1064 .+5 /JLT 011060 1424 1424;0 011061 0000 011062 0011 FPPSF2 011063 1050 1050 IFZERO RALF < .+5 /JMP 1520;0 PDPMR JMP 0 .+5 /JMS 1523;0 PDPMR JMS 0 > IFNZRO RALF < 011064 1071 .+5 /JMP . 011065 1520 1520;0 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 96-1 011066 0000 011067 0006 PDPMR 011070 5200 JMP .&7600 011071 1076 .+5 /JMP% 011072 1520 1520;0 011073 0000 011074 0506 PDPMR+500 011075 5600 JMP I .&7600 011076 1103 .+5 /JMPZ 011077 1520 1520;3200 011100 3200 011101 0006 PDPMR 011102 5000 JMP 0 011103 1110 .+5 /JMPZ% 011104 1520 1520;3200 011105 3200 011106 0506 PDPMR+500 011107 5400 JMP I 0 011110 1115 .+5 /JMS . 011111 1523 1523;0 011112 0000 011113 0006 PDPMR 011114 4200 JMS .&7600 011115 1122 .+5 /JMS% 011116 1523 1523;0 011117 0000 011120 0506 PDPMR+500 011121 4600 JMS I .&7600 011122 1127 .+5 /JMSZ 011123 1523 1523;3200 011124 3200 011125 0006 PDPMR 011126 4000 JMS 0 011127 1134 .+5 /JMSZ% 011130 1523 1523;3200 011131 3200 011132 0506 PDPMR+500 011133 4400 JMS I 0 > / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 97 011134 1141 .+5 /JNE 011135 1605 1605;0 011136 0000 011137 0011 FPPSF2 011140 1040 1040 011141 1146 .+5 /JSA 011142 2301 2301;0 011143 0000 011144 0011 FPPSF2 011145 1120 1120 011146 1153 .+5 /JSR 011147 2322 2322;0 011150 0000 011151 0011 FPPSF2 011152 1130 1130 011153 0000 0 /JXN 011154 3016 3016;0 011155 0000 011156 0010 FPPSF1 011157 2000 2000 011160 1165 KL, .+5 /KCC 011161 0303 0303;0 011162 0000 011163 0020 PDPOP 011164 6032 KCC 011165 1172 .+5 /KRB 011166 2202 2202;0 011167 0000 011170 0020 PDPOP 011171 6036 KRB 011172 1177 .+5 /KRS 011173 2223 2223;0 011174 0000 011175 0020 PDPOP 011176 6034 KRS 011177 0000 0 /KSF 011200 2306 2306;0 011201 0000 011202 0020 PDPOP 011203 6031 KSF 011204 1211 LL, .+5 /LAS 011205 0123 0123;0 011206 0000 011207 0020 PDPOP 011210 7604 LAS 011211 1216 .+5 /LDX 011212 0430 0430;0 011213 0000 011214 0014 FPPSF5 011215 0100 0100 011216 1223 .+5 /LISTOFF 011217 1123 1123;2417 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 97-1 011220 2417 011221 0605 PSUDO+0600 011222 4001 LSTOFX 011223 0000 0 /LISTON 011224 1123 1123;2417 011225 2417 011226 1605 PSUDO+1600 011227 4000 LSTONX / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 98 0000 ML= 0 /NO LIST NL, IFZERO RALF < .+5 > 011230 0000 IFNZRO RALF < 0 > 011231 1720 1720;0 /NOP 011232 0000 011233 0020 PDPOP 011234 7000 NOP IFZERO RALF < 0 /NOPUNCH 1720;2516 PSUDO+0300 NOPNCX > 011235 1242 OL, .+5 /OCTAL 011236 0324 0324;0114 011237 0114 011240 0005 PSUDO 011241 4004 OCTALX 011242 1247 .+5 /ORG 011243 2207 2207;0 011244 0000 011245 0005 PSUDO 011246 3730 ORGX 011247 0000 0 /OSR 011250 2322 2322;0 011251 0000 011252 0020 PDPOP 011253 7404 OSR IFZERO RALF < PL, 0 /PAGE 0107;0500 PSUDO PAGEX > 0000 IFNZRO RALF <PL=0 > 0000 QL= 0 /WHAT DID YOU EXPECT? 011254 1261 RL, .+5 /RAL 011255 0114 0114;0 011256 0000 011257 0020 PDPOP 011260 7004 RAL 011261 1266 .+5 /RAR 011262 0122 0122;0 011263 0000 011264 0020 PDPOP 011265 7010 RAR 011266 1273 .+5 /RDF 011267 0406 0406;0 011270 0000 011271 0020 PDPOP 011272 6214 RDF 011273 1300 .+5 /REPEAT 011274 0520 0520;0501 011275 0501 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 98-1 011276 2405 PSUDO+2400 011277 0762 REPETX 011300 1305 .+5 /RIB 011301 1102 1102;0 011302 0000 011303 0020 PDPOP 011304 6234 RIB 011305 1312 .+5 /RIF 011306 1106 1106;0 011307 0000 011310 0020 PDPOP 011311 6224 RIF 011312 1317 .+5 /RMF 011313 1506 1506;0 011314 0000 011315 0020 PDPOP 011316 6244 RMF 011317 1324 .+5 /RTL 011320 2414 2414;0 011321 0000 011322 0020 PDPOP 011323 7006 RTL 011324 0000 0 /RTR 011325 2422 2422;0 011326 0000 011327 0020 PDPOP 011330 7012 RTR / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 99 011331 1336 SL, .+5 /S 011332 0000 0;0 011333 0000 011334 0005 PSUDO 011335 1005 SX IFNZRO RALF < 011336 1343 .+5 /SECT 011337 0503 0503;2400 011340 2400 011341 0005 PSUDO 011342 3665 SECTX 011343 1350 .+5 /8 MODE SECT 011344 0503 0503;2470 011345 2470 011346 0005 PSUDO 011347 3663 SECT8X > 011350 1355 .+5 /SETB 011351 0524 0524;0200 011352 0200 011353 0011 FPPSF2 011354 1110 1110 011355 1362 .+5 /SETX 011356 0524 0524;3000 011357 3000 011360 0011 FPPSF2 011361 1100 1100 011362 1367 .+5 /SKP 011363 1320 1320;0 011364 0000 011365 0020 PDPOP 011366 7410 SKP 011367 1374 .+5 /SMA 011370 1501 1501;0 011371 0000 011372 0020 PDPOP 011373 7500 SMA 011374 1401 .+5 /SNA 011375 1601 1601;0 011376 0000 011377 0020 PDPOP 011400 7450 SNA 011401 1406 .+5 /SNL 011402 1614 1614;0 011403 0000 011404 0020 PDPOP 011405 7420 SNL 011406 1413 .+5 /SPA 011407 2001 2001;0 011410 0000 011411 0020 PDPOP 011412 7510 SPA 011413 1420 .+5 /STARTD / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 99-1 011414 2401 2401;2224 011415 2224 011416 0412 FPPSF3+0400 011417 0006 0006 011420 1425 .+5 /STARTE 011421 2401 2401;2224 011422 2224 011423 0512 FPPSF3+0500 011424 0050 0050 011425 1432 .+5 /STARTF 011426 2401 2401;2224 011427 2224 011430 0612 FPPSF3+0600 011431 0005 0005 011432 1437 .+5 /STL 011433 2414 2414;0 011434 0000 011435 0020 PDPOP 011436 7120 STL 011437 1444 .+5 /SZA 011440 3201 3201;0 011441 0000 011442 0020 PDPOP 011443 7440 SZA 011444 0000 0 /SZL 011445 3214 3214;0 011446 0000 011447 0020 PDPOP 011450 7430 SZL / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 100 TL, IFZERO RALF < .+5 /TAD 0104;0 PDPMR TAD 0 > IFNZRO RALF < 011451 1456 .+5 /TAD . 011452 0104 0104;0 011453 0000 011454 0006 PDPMR 011455 1200 TAD .&7600 011456 1463 .+5 /TAD% 011457 0104 0104;0 011460 0000 011461 0506 PDPMR+500 011462 1600 TAD I .&7600 011463 1470 .+5 /TADZ 011464 0104 0104;3200 011465 3200 011466 0006 PDPMR 011467 1000 TAD 0 011470 1475 .+5 /TADZ% 011471 0104 0104;3200 011472 3200 011473 0506 PDPMR+500 011474 1400 TAD I 0 > 011475 1502 .+5 /TCF 011476 0306 0306;0 011477 0000 011500 0020 PDPOP 011501 6042 TCF 011502 1507 .+5 /TEXT 011503 0530 0530;2400 011504 2400 011505 0005 PSUDO 011506 4006 TEXTX 011507 1514 .+5 /TLS 011510 1423 1423;0 011511 0000 011512 0020 PDPOP 011513 6046 TLS 011514 1521 .+5 /TPC 011515 2003 2003;0 011516 0000 011517 0020 PDPOP 011520 6044 TPC 011521 1526 .+5 /TRAP3 011522 2201 2201;2063 011523 2063 011524 0010 FPPSF1 011525 3000 3000 011526 1533 .+5 /TRAP4 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 100-1 011527 2201 2201;2064 011530 2064 011531 0010 FPPSF1 011532 4000 4000 011533 1540 .+5 /TRAP5 011534 2201 2201;2065 011535 2065 011536 0010 FPPSF1 011537 5000 5000 011540 1545 .+5 /TRAP6 011541 2201 2201;2066 011542 2066 011543 0010 FPPSF1 011544 6000 6000 011545 1552 .+5 /TRAP7 011546 2201 2201;2067 011547 2067 011550 0010 FPPSF1 011551 7000 7000 011552 0000 0 /TSF 011553 2306 2306;0 011554 0000 011555 0020 PDPOP 011556 6041 TSF / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 101 0000 UL= 0 0000 VL= 0 0000 WL= 0 011557 0000 XL, 0 /XTA 011560 2401 2401;0 011561 0000 011562 0013 FPPSF4 011563 0030 0030 0000 YL= 0 011564 0000 ZL, 0 /ZBLOCK 011565 0214 0214;1703 011566 1703 011567 1305 PSUDO+1300 011570 4152 ZBLKX / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 102 IFZERO RALF < PNDL=0 > IFNZRO RALF < 011571 1577 PNDL, .+6 /BLANK COMMON 011572 0000 0;0 011573 0000 011574 0003 3 /CODE FOR COMMON 011575 0040 40;0 /ESD #2, LEN=0 011576 0000 011577 0000 0 /#MAIN 011600 1501 1501;1116 011601 1116 011602 0004 4 /CODE FOR SECTION 011603 0020 LMAIN, 20;0 /ESD #1, LEN=0> 011604 0000 FREE, 011605 1605 END, END /NICE WHEN FLAP ASSEMBLES 0000 FIELD 0 0200 *200 $ / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 103 ABREFS 0114 CLRSCT 1273 ESDSCN 5611 F2WD 1062 ABSOP 0115 CLR2 1715 ESDTMP 0067 GBIN 6052 AC 0132 COMMN 0003 EX 4632 GCMND 6001 ACNGLP 4732 COMMX 3666 EXPDEF 0040 GDATE 6200 ACX 0131 CPLBUF 5100 EXPON 3400 GETAC 2426 ADD 5033 CPLIT 0102 EXPR 1600 GETADR 1217 ADDDGT 2335 CPTMP 0021 EXPSW 0041 GETCHR 2410 ADDLP 5040 CRESD 3701 EXPVAL 0035 GETCHT 4026 ADR 1706 CRLF 1433 EXTMP 0067 GETCND 2431 ADRADD 2000 CSLOOP 1277 EXTMP2 0070 GETCON 4072 ADRAND 2040 CT 0021 EXTRNX 3646 GETD 4643 ADRAOX 2061 DCB 7760 FAD 5000 GETEXP 1000 ADRASX 2034 DCNT 4600 FALSE 4054 GETIT 0341 ADRASY 2036 DECNO 2711 FEND 6531 GETNAM 2452 ADRDIV 2073 DECOUT 2673 FILLLP 4514 GETNEW 4222 ADRERR 3250 DECPT 4674 FIND 2200 GETSGN 4617 ADREXP 1717 DECX 4003 FINDOP 1756 GETSKP 2412 ADRGET 1210 DEC2 2714 FIX 6455 GETUSR 4544 ADRMUL 2064 DEC3 2716 FIXOPC 2600 GL 0000 ADROP 1724 DEC4 2730 FL 0302 GNC 2512 ADROR 2047 DEFBIN 6033 FLD0 0000 GOADD 5015 ADRSUB 2013 DEFIND 0643 FLD1 0010 HL 0655 AGAIN 0352 DEFLBL 0636 FMPTEN 5103 ICHAR 4212 AL 0066 DELFIL 1350 FORMFD 0324 ICHAR1 4312 ALNLP 5004 DESW 0046 FORMT1 1061 ICHAR2 4306 ANOTH 6470 DEXERR 4671 FORMT2 1117 IFNDFX 4113 ASMBL 0310 DIGIT 2534 FORMT3 1116 IFNEGX 4106 ASMOF 0057 DIVERR 2112 FPADR 1155 IFNSWX 4125 BACK1 2400 DIVLUP 0404 FPDMP 1065 IFNZRX 4044 BAD 1653 DL 0220 FPMRI 1105 IFPOSX 4107 BADCND 4076 DMPESD 5600 FPMRL 1060 IFREFX 4114 BADEXP 1100 DPCHKX 1334 FPMRS 1066 IFSWX 4124 BASER 0031 DPFLG 0030 FPPADR 0044 IFZROX 4045 BASEX 1340 DPSW 0022 FPPMR 1027 IL 0662 BEGIN 6000 EL 0256 FPPMRF 0007 INABS 3057 BFILE 0107 END 1605 FPPMRI 0015 INBREC 4245 BIERR 1270 ENDEXP 1640 FPPMRL 0017 INBUF 6000 BL 0136 ENDLIN 0271 FPPMRS 0016 INBUFP 4242 BLANK 2414 ENDOUT 3107 FPPSF1 0010 INCHAR 4214 BLINE 0141 ENDX 3200 FPPSF2 0011 INCHCT 4324 BMPLOC 3111 ENTRX 3630 FPPSF3 0012 INCHK 6463 BOCHKL 3547 EOP2 3212 FPPSF4 0013 INCOMN 4313 BORG 3514 EOP3 3225 FPPSF5 0014 INCTL 0400 BOSETL 3555 EQUERR 0716 FPPSWT 0075 INCTLW 4241 BOTMP 0067 EQUN 0071 FPPS1 1125 INCTR 4360 BOXIT 3557 ERMSG 2644 FPPS2 1046 INDEVH 7200 BUCKET 0051 ERMSG1 2632 FPPS3 1122 INDXR 0033 CHCKMR 3236 ERRORS 0104 FPPS4 1201 INDXX 1337 CHKSUM 0024 ESDBUF 5200 FPPS5 1134 INEOF 4323 CHNIN 6006 ESDERR 3656 FPPWD2 0077 INERRX 4264 CHNSW 0007 ESDLND 5730 FPP2WD 0076 INFLD 0000 CHRPTR 0017 ESDLUP 5620 FREE 1605 INFPTR 4322 CKCTC 1674 ESDNLP 5631 FULCHK 4600 INHNDL 4337 CL 0143 ESDNO 0025 FULLUP 4605 INJMP 4270 CLEAR 4751 ESDOUT 5706 FX 4633 INJMPP 4217 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 103-1 INLOC 6465 MPLP2 5134 NUMLUP 2304 OUTBLK 3472 INNEWF 4324 MREAD 7757 NUM1 0067 OUTBUF 5760 INOP 3263 MSGDUN 2671 NUM2 0070 OUTDMP 4444 INPTR 4361 MU 5155 NXTBKT 5106 OUTEMP 0507 INREC 4243 MUX 5154 OCHAR 0437 OUTINH 0514 INRECS 0002 M3 0140 OCHAR1 0503 OUTPTR 0015 IN7400 4200 NAME1 0052 OCHAR2 0500 OUTREL 3000 IN7600 4213 NAME2 0053 OCLOSE 4474 OUTSWT 0062 IOERR 3257 NAME3 0054 OCNT 0006 OUTTXT 4023 IOPEN 4203 NCHARS 0020 OCTALX 4004 OUTWRD 3041 ISQUOT 1671 NCTMP 0022 OCTNUM 2331 OVBUFR 5000 ISSYM 2467 NDIGT 2546 OCTOUT 2757 OVER 4677 IXMES 1051 NEW 6400 OFFIT 0334 OVERLY 3232 JL 1014 NEWDON 6456 OFNAME 0515 OVER3 0400 JSTONE 0734 NEWESD 3600 OKBIN 6050 P 0067 KCHN 6106 NEWLIN 0240 OKCND 4102 PAGEN 0103 KL 1160 NEWSCT 3717 OKENT 3644 PASBLK 3471 KOUBUF 4616 NEXT 0016 OKEXP 1652 PASSNO 0056 LASTOP 0055 NEXTIN 6502 OL 1235 PATCH 0301 LBLK 6076 NEXTST 0203 OLDN3 0004 PC 0105 LDADR 6600 NINCTL 4201 ONE 1713 PDIG 2751 LDRBLK 3470 NINDEV 4366 ONOFIL 4442 PDPMR 0006 LDRNAM 6277 NINREC 4202 OOPEN 4400 PDPOP 0020 LETTER 2521 NL 1230 OP 0123 PDPOPR 2115 LINE 7000 NLETR 2532 OPCJMP 0744 PDPOR 2134 LINKS 0114 NOASM 0336 OPCODE 0046 PDP8MR 1215 LINKSW 0113 NODGT 2350 OPCTBL 0745 PL 0000 LINPAG 0112 NODUMP 4532 OPENIT 0331 PLINE 2666 LINSIZ 0023 NOENTS 5671 OPR8R 1750 PNCHOF 0060 LISTSW 0061 NOEXT 6523 OPR8RS 2622 PNDL 1571 LITRL 0100 NOFLO 2242 OPX 0122 PP2 0103 LL 1204 NOKBIN 6505 ORGX 3730 PRINT2 1520 LMAIN 1603 NOOPR 1766 OTEMP 0005 PRLNXT 1411 LOCTR1 0026 NOP3 3230 OTYPE 0533 PRLTST 1420 LOCTR2 0027 NOREL 1325 OTYPP 0515 PRNTLN 1400 LOOK 2203 NORM 5055 OUBLK 4432 PRNTRL 3034 LOOKP 4660 NORMLP 5061 OUBUF 6400 PRNTST 3063 LOOKUP 2242 NOSCAL 4715 OUCCNT 4540 PRTTMP 1400 LOOP6B 4012 NOSYM 1656 OUCOMN 0505 PRTXT 1504 LOUBUF 4470 NOTDOT 1633 OUCTL 4200 PSEUDO 1200 LPAGE1 0110 NOTEG 0226 OUCTLW 4467 PSUDO 0005 LPAGE2 0111 NOTNEG 4743 OUDEVH 7400 PTP 0020 LSLP 5067 NOTSAM 2236 OUDWCT 0513 PUTABS 3032 LSTOFX 4001 NOTSCT 1313 OUELEN 4433 PUTORG 3743 LSTONX 4000 NOUBUF 0436 OUFILE 0106 PUTVAL 0704 LTEMP 0066 NOUDEV 4543 OUFLD 0000 P0LBUF 5200 LUNAME 0600 NP17 0120 OUFNAM 4362 P0LIT 0101 LUPBKT 5033 NP2 6504 OUHNDL 4424 P1 1530 L41 6534 NP7700 0121 OUJMP 0447 P2 1555 MAXLIN 0066 NSWTCH 2364 OUJMPE 0512 P260 2755 MDERR 0633 NTEMP 6460 OUNAME 4537 QENT 3642 ML 0000 NT1 6461 OUPOLD 0510 QL 0000 MONTHS 6322 NT2 6462 OUPTR 0511 RADIX 0065 MOUBUF 3501 NUM 2200 OUREC 4471 RALF 0001 MPLP1 5123 NUMBER 2277 OUSETP 0425 RDLOOP 0245 / RALF, V50A PAL8-V50Y 19-JUL-20 PAGE 103-2 REASM 0304 TTYOUT 1542 RELERR 1014 TXABR 1556 REPCNT 0063 TXALN 0005 REPETX 0762 TXBBIN 6304 REPLEN 0201 TXBLN 0016 REPLST 0202 TXELN 0004 RESET 3121 TXERR 0362 RETSYS 3425 TXSLN 0005 RFORMF 1503 TXSYM 2162 RL 1254 TYPCOD 3502 RSHFT 5020 UL 0000 RSLP 5024 UNDEF 1734 R41 6077 USER 0001 R6L 2550 USR 0116 R6R 2555 VERS 0003 SBLOCK 7776 VL 0000 SCALUP 4711 VMSG 6275 SCSWT 0064 VMTXT 0547 SCTN 1623 VNUM 0050 SECTN 0004 WL 0000 SECTX 3665 WORD1 0042 SECT8X 3663 WORD2 0043 SEMICL 2423 WRD 3111 SETSCT 3720 XFLAG 0047 SETUP 5146 XINCR 0050 SHIFT 2364 XITEMP 1251 SL 1331 XL 1557 START 0222 XTERN 0002 START3 3217 X10 0010 STPRNT 5031 X11 0011 STYPE 0024 X12 0012 SUBX 1251 X13 0013 SWTCH 4052 X14 0014 SX 1005 YL 0000 SYMBOL 1614 ZBCNT 0067 SYONLY 0117 ZBLKX 4152 TABIT 1423 ZBTMP 0070 TEN 2750 ZL 1564 TENTH 2741 ZRONDX 2616 TEXTX 4006 TITBUF 0544 TITDAT 0552 TITLEN 0017 TL 1451 TMP 3424 TODEC 6264 TPNSH 6535 TRUE 4057 TRYBLK 0721 TRYEQU 0645 TRYEXP 2147 TTABS 0400 TTORG 1000 TTREL 1400 TTYCLA 1546 ERRORS DETECTED: 0 LINKS GENERATED: 0