1 / RALF, V62A 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 // 10 / 11 / 12 / 13 / 14 /COPYRIGHT (C) 1974, 1975, 1977 15 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 16 / 17 / 18 / 19 /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A 20 /SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- 21 /SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER 22 /COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE 23 /TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO 24 /AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE 25 /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. 26 / 27 / 28 /THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT 29 /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL 30 /EQUIPMRNT COROPATION. 31 / 32 /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 33 /SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 34 / 35 / 36 / 37 / 38 / 39 / 40 / RELOCATABLE ASSEMBLER FOR OS/8 FORTRAN IV 41 / 42 / 43 / FPPASM BY HANK MAURER 44 / RALF MODS BY JUD LEONARD 45 / OS/8 FORTRAN MODS BY RICHIE LARY + MARTY HURLEY 46 / NEW DATE ALGORITHUM PUT IN BY ED STEINBERGER 47 / 48 / THE FOLLOWING FORMULA GIVES THE NUM 49 / OF USER SYMBOLS: 50 / -(FREE+200[BASE8])/6[BASE10] 51 / WHERE THE VALUE OF FREE IS FROM THE 52 / RALF SYMBOL MAP 53 / 54 / 55 IFNDEF RALF 56 / 57 / ASSEMBLE WITH PAL8-V9 WITH W SWITCH 58 / SAVE AS: 59 / .SAVE SYS RALF.SV ;200=2000 60 61 / 62 / CHANGES FOR OS/78 AND OS/8 V3D BY P.T. 63 / .CHANGED VERSION NUMBER TO 62 64 / .RALF NO LONGER GENERATES FAULTY RELOCATABLE IF: 65 / 1.) THE ESD IS LONGER THAN ONE BLOCK, AND 66 / 2.)LIST OUTPUT IS DIRECTED TO A 2-PAGE NON-SYSTEM HANDLER 67 / 68 / 69 FLD0=0 70 FLD1=10 71 VNUM=62 72 PATCH="A /PATCH LEVEL A 73 *3 74 000003 0062 VERS, VNUM /VERSION NUMBER 75 000004 0000 OLDN3, 0 /TEMP FOR LOOKUP 76 000005 0000 OTEMP, 0 /A COUPLE OF TEMPS THAT 77 000006 0000 OCNT, 0 /DIDNT FIT INTO THEIR PAGE 78 000007 0000 0 79 000010 0000 X10, 0 80 000011 0000 X11, 0 81 000012 0000 X12, 0 82 000013 0000 X13, 0 83 000014 0000 X14, 0 84 000015 6377 OUTPTR, OUBUF-1 85 000016 1604 NEXT, FREE-1 86 000017 6777 CHRPTR, LINE-1 87 000020 7777 NCHARS, -1 /CHARACTER INPUT STUFF 88 000021 0000 CPTMP, 0 89 000022 0000 NCTMP, 0 /USED TO SAVE CHAR POSITION 90 000023 0000 LINSIZ, 0 /SIZE OF LINE FOR PRINTING 91 STYPE, /SYMBOL TYPE CODE 92 000024 0000 CHKSUM, 0 /FOR BINARY OUTPUT 93 IFZERO RALF < 94 LOCTR1, 0 /INITIAL LOCN CNTR FOR ABSOLUTE ASM 95 LOCTR2, 200 > 96 IFNZRO RALF < 97 000025 0002 ESDNO, 2 /LAST ESD #. (#MAIN & BLANK COMMON DEFAULT) 98 000026 0020 LOCTR1, 20 /HIGH LOCN CNTR WITH ESD (STARTS IN #MAIN) 99 000027 0000 LOCTR2, 0 100 000030 0000 DPFLG, 0 > 101 000031 4000 BASER, 4000 /BASE REGISTER SETTING 102 000032 0000 0 103 000033 0000 INDXR, 0 /INDEX LOCS: MUST FOLLOW BASER 104 000034 0000 0 105 000035 0000 EXPVAL, 0 /EXPRESSION VALUE 106 000036 0000 0 107 000037 0000 0 108 000040 0000 EXPDEF, 0 /=0 IF EXPR IS UNDEFINED 109 000041 0000 EXPSW, 0 /FLAG=1 IF NO EXPR 110 000042 0000 WORD1, 0 /TEMPORARY 2 WORD OPERAND 111 000043 0000 WORD2, 0 112 000044 0000 FPPADR, 0 /ADDRESS FIELD FOR FPP INDEX INSTR 113 000045 0000 0 114 000046 0000 OPCODE, 0 /OPCODE OR PSEUDO-OP POINTER 115 000047 0000 XFLAG, 0 /INDEX FLAG = 1 IF INDEX PRESENT 116 000050 0001 XINCR, 1 /FLAG = 0 IF + LEGAL IN INDEX EXPR 117 000051 0000 BUCKET, 0 /FIRST CHAR OF NAME 118 000052 0000 NAME1, 0 /CHARS 2 AND 3 OF NAME 119 000053 0000 NAME2, 0 /CHARS 4 AND 5 OF NAME 120 000054 0000 NAME3, 0 /CHAR 6 OF NAME AND TYPE 121 000055 0000 LASTOP, 0 /LAST OPERATOR ENCOUNTERRED IN EXPR 122 000056 7777 PASSNO, -1 /PASS NUMBER 123 000057 0000 ASMOF, 0 /SET NEGATIVE WHEN ASSEMBLY OFF 124 000060 0000 PNCHOF, 0 /NON-ZERO TO SUPPRESS BINARY OUTPUT 125 000061 0001 LISTSW, 1 /LIST SWITCH (1 ENABLES LISTING) 126 000062 0000 OUTSWT, 0 /OUT SWITCH, =1 IF LINE ALREADY LISTED 127 000063 0000 REPCNT, 0 /REPEAT COUNTER 128 000064 0000 SCSWT, 0 /SEMICOLON SWITCH 129 000065 0000 RADIX, 0 /RADIX FOR INTEGERS (0 IS OCTAL) 130 000066 7601 LTEMP, -177 /TEMP USED BY LOOKUP 131 000067 0000 EXTMP, 0 /TEMPS USED BY EXPR AND OTHERS 132 000070 0000 EXTMP2, 0 133 000071 0000 EQUN, 0;0;0;0 /NAME ON LEFT OF EQUAL SIGN 000072 0000 000073 0000 000074 0000 134 /NEXT TWO LOCS USED WITH EQUN BY DMPESD 135 000075 0000 FPPSWT, 0 /1 WHHEN FINDING FPP ADR EXPR 136 000076 0000 FPP2WD, 0 /SET BY EXPR TO FORCE 2 WD FMT 137 000077 0000 FPPWD2, 0 /SET BY FPP2WD.OR.EXPTYP.EQ.0 138 000100 0000 LITRL, 0 /SET = 1 FOR LITERAL 139 000101 0177 P0LIT, 177 140 000102 0177 CPLIT, 177 141 000103 0000 PAGEN, 0 142 000104 0000 ERRORS, 0 /ERROR COUNT 143 000105 1542 PC, TTYOUT /OUTPUT ROUTINE 144 000106 7573 OUFILE, 7573 /OUTPUT FILE LIST POINTER 145 000107 0001 BFILE, 1 146 000110 0001 LPAGE1, 1 /INPUT FORMFEED COUNT 147 000111 0000 LPAGE2, 0 /OUTPUT PAGE WITH RESPECT TO ABOVE 148 000112 7777 LINPAG, -1 /LINES/PAGE COUNTER 149 000113 0000 LINKSW, 0 /1 IF LINK GENERATED ON THIS LINE 150 LINKS, /NO OF LINKS GENERATED 151 000114 0000 ABREFS, 0 /NO OF ABSOLUTE REFERENCES 152 000115 0000 ABSOP, 0 /POINTER-SWITCH FOR BINARY OUTPUT 153 000116 0200 USR, 200 /CURRENT CALL ADDRESS FOR USR 154 000117 0000 SYONLY, 0 /=0=LIST ONLY SMAP WHEN LIST FILE 155 /IS SPECIFIED. ITS SET VIA SLASH S 156 /=1=REGULAR 157 000120 0017 NP17, 17 /** 158 000121 7700 NP7700, 7700 159 000122 0000 OPX, 0 160 000123 0000 OP, ZBLOCK 6 000124 0000 000125 0000 000126 0000 000127 0000 000130 0000 161 000131 0000 ACX, 0 162 000132 0000 AC, ZBLOCK 6 000133 0000 000134 0000 000135 0000 000136 0000 000137 0000 163 000140 7775 M3, -3 164 000141 6777 BLINE, LINE-1 165 / 166 PAGE 167 / 168 / CORE ALLOCATION IN HIGH FIELD 0 169 / 170 CPLBUF=5100 /ACTUALLY AT 5200 171 P0LBUF=5200 /AND 5300, 1/2 PAGE EACH 172 IFZERO RALF < 173 INBUF=5400 > 174 IFNZRO RALF < 175 INBUF=6000 /AFTER PASS 1, MOVES TO 5400> 176 OUBUF=6400 177 LINE=7000 /CURRENT INPUT LINE IN ASCII 178 INDEVH=7200 /TENTATIVE INPUT DEVICE HANDLR ADDR 179 OUDEVH=7400 /TENTATIVE OUTPUT HANDLER ADDR 180 INRECS=2 181 INCTL=400 182 OUCTL=4200 183 / 184 / COLLECT THE NEXT STATEMENT 185 / 186 000200 2202 ISZ .+2 187 000201 5602 REPLEN, JMP I .+1 188 000202 6000 REPLST, BEGIN /START AT 6000 IF CHAINED ELSE 6001 189 000203 6201 NEXTST, CDF FLD0 /JUST PRECAUTION 190 000204 1062 TAD OUTSWT /IF NO OUTPUT FROM THIS LINE, 191 000205 7650 SNA CLA 192 000206 1056 TAD PASSNO /AND LISTING PASS 193 000207 7740 SMA SZA CLA 194 000210 1061 TAD LISTSW /AND LISTING ENABLED 195 000211 7650 SNA CLA /PRINT THIS LINE NOW 196 000212 5222 JMP START /ELSE GET NEXT 197 000213 4577 JMS I [CRLF /PRINT CR/LF 198 000214 1377 TAD (-6 199 000215 3066 DCA LTEMP /SPACE OVER 200 000216 4576 JMS I [PRINT2 /12 SPACES 201 000217 2066 ISZ LTEMP 202 000220 5216 JMP .-2 203 000221 4776 JMS I (PRNTLN /THEN PRINT LINE 204 000222 4575 START, JMS I [GETCHR /ANY MORE CHARS ? 205 000223 5226 JMP NOTEG 206 000224 4574 JMS I [ERMSG /EXTRA GARBAGE ON LAST LINE 207 000225 0507 0507 /*EG* 208 000226 1064 NOTEG, TAD SCSWT /DID LAST LINE END WITH SEMICOLON ? 209 000227 7650 SNA CLA 210 000230 5235 JMP .+5 /NO 211 000231 3064 DCA SCSWT /KILL SC SWITCH 212 000232 2017 ISZ CHRPTR /SKIP OVER SEMICOLON 213 000233 2020 ISZ NCHARS 214 000234 5310 JMP ASMBL /DON'T READ A NEW LINE 215 000235 1063 TAD REPCNT /IS THIS LINE TO BE REPEATED? 216 000236 7710 SPA CLA 217 000237 5352 JMP AGAIN /DO IT 218 000240 1141 NEWLIN, TAD BLINE /RESET POINTER 219 000241 3017 DCA CHRPTR 220 000242 1173 TAD [-200 /LIMIT LINE SIZE 221 000243 3066 DCA MAXLIN 222 000244 3062 DCA OUTSWT /CLEAR OUTPUT SWITCH 223 000245 4775 RDLOOP, JMS I (ICHAR /READ A CHAR 224 000246 1374 TAD (-212 225 000247 7450 SNA 226 000250 5245 JMP RDLOOP /IGNORE LINE FEEDS 227 000251 1373 TAD (212-215 /END ON CR 228 000252 7450 SNA 229 000253 5271 JMP ENDLIN 230 000254 7001 IAC 231 000255 7450 SNA /FORM FEED? 232 000256 5324 JMP FORMFD 233 000257 1372 TAD (214 /FIX CHAR 234 000260 3417 DCA I CHRPTR /SAVE IT 235 000261 2066 ISZ MAXLIN /TEST FOR LINE TOO LONG 236 000262 5245 JMP RDLOOP /PUT CHAR AWAY AND GET NEXT 1 237 000263 4775 JMS I (ICHAR /IGNORE ANOTHER CHAR 238 000264 1371 TAD (-215 /UNLESS CR 239 000265 7640 SZA CLA 240 000266 5263 JMP .-3 241 000267 4574 JMS I [ERMSG /EXCESS LENGTH LINE 242 000270 1424 1424 /*LT* 243 000271 1017 ENDLIN, TAD CHRPTR /FIND - NUMBER OF CHARS - 1 244 000272 7040 CMA 245 000273 1141 TAD BLINE 246 000274 3020 DCA NCHARS 247 000275 1063 TAD REPCNT /0 BECOMES 0, 248 000276 7041 CIA /BUT POS REP COUNT 249 000277 3063 DCA REPCNT /ENABLES REPEAT 250 000300 1020 TAD NCHARS /SAVE LENGTH 251 000301 3201 DCA REPLEN 252 000302 1061 TAD LISTSW /SAVE LISTING SWITCH DURING REPEAT 253 000303 3202 DCA REPLST 254 000304 1020 REASM, TAD NCHARS /SAVE SIZE OF LINE FOR PRINT 255 000305 3023 DCA LINSIZ 256 000306 1141 TAD BLINE 257 000307 3017 DCA CHRPTR /SET POINTER 258 000310 1057 ASMBL, TAD ASMOF /ARE WE INSIDE A CONDITIONAL 259 000311 7640 SZA CLA 260 000312 5334 JMP OFFIT /YES, AND THE COND WAS FALSE 261 000313 4575 JMS I [GETCHR /LOOK FOR A CHARACTER 262 000314 5203 JMP NEXTST 263 000315 1370 TAD (-257 /IS IT SLASH ? 264 000316 7450 SNA 265 000317 5336 JMP NOASM /YES, COOL IT 266 000320 1172 TAD [257-240 /IS IT BLANK OR TAB ? 267 000321 7640 SZA CLA /YES, IGNORE 268 000322 4571 JMS I [BACK1 /NO, PUT IT BACK 269 000323 5767 JMP I (LUNAME /ASSEMBLE STMT 270 000324 2110 FORMFD, ISZ LPAGE1 /BUMP FORM FEED COUNT 271 000325 3111 DCA LPAGE2 /CLEAR SUB-PAGE COUNT 272 000326 7240 CLA CMA 273 000327 3112 DCA LINPAG /FORCE EJECT ON CRLF 274 000330 5245 JMP RDLOOP 275 000331 7240 OPENIT, CLA CMA /DECR COUNT, ANOTHER OPEN ANGLE 276 000332 1057 TAD ASMOF 277 000333 3057 DCA ASMOF 278 000334 2020 OFFIT, ISZ NCHARS /MORE TO GO? 279 000335 5341 JMP GETIT /YES 280 000336 7240 NOASM, CLA CMA 281 000337 3020 DCA NCHARS /DONT ASSEMBLE THIS LINE 282 000340 5203 JMP NEXTST /(PREVENTING *EG* MESSAGE) 283 000341 1417 GETIT, TAD I CHRPTR /PICK UP THE CHARACTER 284 000342 1366 TAD (-274 /OPEN ANGLE BRACKET? 285 000343 7450 SNA 286 000344 5331 JMP OPENIT /YES, PUSH ONE LEVEL DOWN 287 000345 7112 CLL RTR 288 000346 7650 SNA CLA 289 000347 2057 ISZ ASMOF /IF CLOSE, CHECK LEVEL 290 000350 5334 JMP OFFIT /TRY FOR NEXT 291 000351 5310 JMP ASMBL /RESUME WORK 292 000352 1201 AGAIN, TAD REPLEN /WE NOW REPEAT THE SAME LINE 293 000353 3020 DCA NCHARS 294 000354 3061 DCA LISTSW /NO LISTING DURRING REPEAT 295 000355 2063 ISZ REPCNT 296 000356 5304 JMP REASM /ASSUMING COUNT STILL OK 297 000357 1202 TAD REPLST /RESTORE LISTING 298 000360 3061 DCA LISTSW 299 000361 5240 JMP NEWLIN /GET NEXT LINE 300 MAXLIN=LTEMP 301 / 302 000362 4005 TXERR, TEXT " ERRORS" 000363 2222 000364 1722 000365 2300 303 TXELN= .-TXERR 304 000366 7504 PAGE 000367 0600 000370 7521 000371 7563 000372 0214 000373 7775 000374 7566 000375 4212 000376 1400 000377 7772 305 / 306 / DIVIDE AC BY 3 307 / USEFUL IN FPP REFERENCES TO BASE 308 / 309 000400 0000 OVER3, 0 /DIVIDE AC BY THREE 310 000401 3070 DCA EXTMP2 /MQ 311 000402 1377 TAD (-15 /SET SHIFT COUNT 312 000403 3066 DCA LTEMP 313 000404 7100 DIVLUP, CLL /ZERO LINK 314 000405 1376 TAD (-3 /SUBTRACT DIVISOR FROM AC 315 000406 7430 SZL /IF AC>=3 SET LINK TO 1 316 000407 5212 JMP .+3 /OK, DONT RESTORE 317 000410 1375 TAD (3 /TOO SMALL, RESTORE AC 318 000411 7100 CLL /SET LINK BACK TO 0 319 000412 3067 DCA EXTMP /SAVE AC 320 000413 1070 TAD EXTMP2 /ROTATE MQ-AC LEFT, PUT LINK IN MQ 321 000414 7004 RAL 322 000415 3070 DCA EXTMP2 /SAVE MQ 323 000416 1067 TAD EXTMP /GET BACK AC 324 000417 7004 RAL /COMPLETE SHIFT 325 000420 2066 ISZ LTEMP /TEST COUNT 326 000421 5204 JMP DIVLUP /KEEP GOING 327 000422 3067 DCA EXTMP /THIS IS REMAINDER 328 000423 1070 TAD EXTMP2 /RETURN QUOTIENT 329 000424 5600 JMP I OVER3 330 / 331 / INITIALIZE FOR OUTPUT 332 / 333 000425 0000 OUSETP, 0 334 000426 1374 TAD (OUCTL&3700 /BUFFER SIZE IN DBL WORDS 335 000427 7041 CIA /NEGATE IT (PAL10 BLOWS) 336 000430 3313 DCA OUDWCT 337 000431 1236 TAD NOUBUF 338 000432 3311 DCA OUPTR /INITIALIZE WORD POINTER 339 000433 1312 TAD OUJMPE 340 000434 3247 DCA OUJMP /INITIALIZE 3-WAY CHARACTER SWITCH 341 000435 5625 JMP I OUSETP 342 000436 6400 NOUBUF, OUBUF 343 / 344 / STORE CHARACTERS IN OUTPUT BUFFER 345 / IN PS8 FORMAT (YOU KNOW, 3 CHARS 346 / IN 2 WORDS THE WRONG WAY) 347 / 348 000437 0000 OCHAR, 0 349 000440 0373 AND (377 350 000441 3307 DCA OUTEMP 351 000442 1314 TAD OUTINH 352 000443 7640 SZA CLA /IS THERE AN OUTPUT FILE? 353 000444 5637 JMP I OCHAR /NO - EXIT 354 000445 6201 CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD 355 000446 2247 ISZ OUJMP /BUMP THE CHARACTER SWITCH 356 000447 7402 OUJMP, HLT /THREE WAY CHARACTER SWITCH 357 000450 5303 JMP OCHAR1 358 000451 5300 JMP OCHAR2 359 000452 1307 TAD OUTEMP 360 000453 7106 CLL RTL 361 000454 7006 RTL 362 000455 0372 AND (7400 363 000456 1710 TAD I OUPOLD 364 000457 3710 DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH 365 /ORDER 4 BITS OF THIRD CHAR 366 000460 1307 TAD OUTEMP 367 000461 7112 CLL RTR 368 000462 7012 RTR 369 000463 7010 RAR 370 000464 0372 AND (7400 371 000465 1711 TAD I OUPTR 372 000466 3711 DCA I OUPTR /UPDATE 2ND WORD FROM LO 4 BITS 373 000467 1312 TAD OUJMPE 374 000470 3247 DCA OUJMP /RESET SWITCH 375 000471 2311 ISZ OUPTR 376 000472 2313 ISZ OUDWCT /BUMP COUNTER EVERY 3 CHARS 377 000473 5305 JMP OUCOMN 378 000474 1371 TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE 379 000475 4770 JMS I (OUTDMP /DUMP THE BUFFER 380 000476 4225 JMS OUSETP /RE-INITIALIZE THE POINTERS 381 000477 5305 JMP OUCOMN 382 000500 1311 OCHAR2, TAD OUPTR 383 000501 3310 DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO 384 000502 2311 ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD 385 000503 1307 OCHAR1, TAD OUTEMP 386 000504 3711 DCA I OUPTR 387 000505 6201 OUCOMN, CDF 388 000506 5637 JMP I OCHAR 389 000507 0000 OUTEMP, 0 390 000510 0000 OUPOLD, 0 391 000511 0000 OUPTR, 0 392 000512 5247 OUJMPE, JMP OUJMP 393 000513 0000 OUDWCT, 0 394 000514 0000 OUTINH, 0 395 / 396 / MOVE OUTPUT FILE NAME TO FIELD 0 397 / 398 000515 0000 OFNAME, 0 399 000516 1106 TAD OUFILE 400 000517 3010 DCA X10 401 000520 1367 TAD (OUFNAM-1 402 000521 3011 DCA X11 403 000522 1366 TAD (-4 404 000523 3066 DCA LTEMP 405 000524 6211 CDF 10 406 000525 1410 TAD I X10 407 000526 6201 CDF 0 408 000527 3411 DCA I X11 409 000530 2066 ISZ LTEMP 410 000531 5324 JMP .-5 411 000532 5715 JMP I OFNAME 412 / 413 / GET OUTPUT DEVICE CHARISTICS 414 / 415 000533 0000 OTYPE, 0 416 000534 6211 CDF 10 417 000535 1765 TAD I (7600 418 000536 0172 AND [17 419 000537 1364 TAD (DCB-1 420 000540 3315 DCA OTYPP 421 000541 1715 TAD I OTYPP 422 000542 6201 CDF 0 423 000543 5733 JMP I OTYPE 424 OTYPP= OFNAME 425 / 426 / BASIC TITLE INFO 427 / 428 TITBUF, 429 IFZERO RALF < 430 TEXT "FLAP V" > 431 IFNZRO RALF < 432 000544 2201 TEXT "RALF V" > 000545 1406 000546 4026 000547 0000 433 *.-1 434 000547 0000 VMTXT, 0;0;0 000550 0000 000551 0000 435 000552 0000 TITDAT, ZBLOCK 6 000553 0000 000554 0000 000555 0000 000556 0000 000557 0000 436 000560 4020 TEXT " PAGE" 000561 0107 000562 0500 437 TITLEN= .-TITBUF 438 000564 7757 PAGE 000565 7600 000566 7774 000567 4361 000570 4444 000571 4200 000572 7400 000573 0377 000574 0200 000575 0003 000576 7775 000577 7763 439 / 440 / PROCESS A STATEMENT 441 / 442 000600 1017 LUNAME, TAD CHRPTR /SAVE CHAR STUFF 443 000601 3021 DCA CPTMP 444 000602 1020 TAD NCHARS 445 000603 3022 DCA NCTMP 446 000604 3113 DCA LINKSW /CLEAR SWITCH 447 000605 4570 JMS I [GETNAM /LOOK FOR NAME 448 IFZERO RALF < 449 JMP I (TRYSTR /COULD BE AN ORG> 450 IFNZRO RALF < 451 000606 5777 JMP I (GETEXP /NOT ONE OF OURS, I GUESS> 452 000607 4575 JMS I [GETCHR /LOOK FOR COMMA 453 000610 5334 JMP JSTONE /ITS JUST ONE SYMBOL 454 000611 1376 TAD (-254 /COMMA TEST 455 000612 7440 SZA 456 000613 5245 JMP TRYEQU /NO COMMA, CHECK FOR EQUAL 457 000614 4567 JMS I [LOOKUP /LOOK UP SYMBOL 458 000615 5236 JMP DEFLBL /ITS UNDEFINED 459 000616 7110 CLL RAR /VERIFY ADDR TYPE 460 000617 7640 SZA CLA 461 000620 5233 JMP MDERR /THAT'S A NO-NO 462 000621 1410 TAD I X10 /CHECK LOCCTR AGAINST OLD DEFINITION 463 000622 7041 CIA 464 000623 1026 TAD LOCTR1 /FIRST UPPERR HALF 465 000624 7640 SZA CLA 466 000625 5233 JMP .+6 467 000626 1410 TAD I X10 468 000627 7041 CIA 469 000630 1027 TAD LOCTR2 /THEN LOWER HALF 470 000631 7650 SNA CLA 471 000632 5243 JMP DEFIND 472 000633 4574 MDERR, JMS I [ERMSG /MULTIPLY DEFINED 473 000634 1504 1504 /*MD* 474 000635 5775 JMP I (ASMBL /FIELD IS OK 475 000636 2466 DEFLBL, ISZ I LTEMP /SET TYPE TO 1 (USER ADDR) 476 000637 1026 TAD LOCTR1 /PUT LOCATION COUNTER 477 000640 3410 DCA I X10 /INTO VALUE 478 000641 1027 TAD LOCTR2 479 000642 3410 DCA I X10 480 000643 6201 DEFIND, CDF FLD0 /GO LOOK FOR ANOTHER TAG 481 000644 5775 JMP I (ASMBL 482 000645 1374 TRYEQU, TAD (-21 /CHECK FOR EQUAL SIGN 483 000646 7440 SZA 484 000647 5321 JMP TRYBLK /NO, TRY BLANK 485 000650 1052 TAD NAME1 486 000651 3071 DCA EQUN /SAVE 6 CHARACTER NAME 487 000652 1053 TAD NAME2 488 000653 3072 DCA EQUN+1 489 000654 1054 TAD NAME3 490 000655 3073 DCA EQUN+2 491 000656 1051 TAD BUCKET 492 000657 3074 DCA EQUN+3 493 000660 4575 JMS I [GETCHR /ALLOW BLANK AFTER = 494 000661 5316 JMP EQUERR 495 000662 1166 TAD [-240 496 000663 7640 SZA CLA 497 000664 4571 JMS I [BACK1 /ANYTHING ELSE GOES BACK 498 000665 4565 JMS I [EXPR /GET VALUE RIGHT OF EQUALS 499 000666 5316 JMP EQUERR /BAD EQU 500 000667 1071 TAD EQUN /RESTORE NAME 501 000670 3052 DCA NAME1 502 000671 1072 TAD EQUN+1 503 000672 3053 DCA NAME2 504 000673 1073 TAD EQUN+2 505 000674 3054 DCA NAME3 506 000675 1074 TAD EQUN+3 507 000676 3051 DCA BUCKET 508 000677 4567 JMS I [LOOKUP /LOOKUP SYMBOL 509 000700 5304 JMP PUTVAL /A NEW SYMBOL 510 000701 7110 CLL RAR 511 000702 7640 SZA CLA 512 000703 5316 JMP EQUERR /TYPE CONFLICT 513 000704 1036 PUTVAL, TAD EXPVAL+1 /SAVE ADDRESS TYPE 514 000705 3410 DCA I X10 515 000706 1037 TAD EXPVAL+2 516 000707 3410 DCA I X10 517 000710 1466 TAD I LTEMP /NOW GET TYPE WORD 518 000711 0373 AND (7740 /ZERO OLD TYPE, PRESERVING FORCE BIT 519 000712 1040 TAD EXPDEF /DEFINED BY RIGHT HAND SIDE 520 000713 3466 DCA I LTEMP /RESTORE WORD 521 000714 6201 CDF FLD0 522 000715 5564 JMP I [NEXTST /GO GET NEXT STMT 523 000716 4574 EQUERR, JMS I [ERMSG /BAD EQU 524 000717 0205 0205 /*BE* 525 000720 5564 JMP I [NEXTST 526 000721 1372 TRYBLK, TAD (35 /CHECK FOR BLANK 527 000722 7450 SNA /MATCH BLANK? 528 000723 5334 JMP JSTONE /YES 529 000724 0163 AND [77 530 000725 4562 JMS I [R6L 531 000726 3054 DCA NAME3 /MAKE MODIFIED NAME OF IT 532 000727 4575 JMS I [GETCHR /MODIFIER MUST BE FOLLOWED BY BLANK 533 000730 5777 JMP I (GETEXP /LOOKS BAD 534 000731 1166 TAD [-240 /GOT IT? 535 000732 7640 SZA CLA 536 000733 5777 JMP I (GETEXP /LET EXPR TELL HIM IF ITS WRONG 537 000734 1371 JSTONE, TAD (33 /USE OUR INTERNAL SYMBOL TABLE 538 000735 4561 JMS I [FIND /IS IT THERE? 539 000736 5777 JMP I (GETEXP /NO, LOOK IN USER'S 540 000737 1345 TAD OPCTBL /CREATE JUMP THRU TABLE 541 000740 3344 DCA OPCJMP /SAVE IT 542 000741 1410 TAD I X10 /PICK UP FIRST WORD OF VALUE 543 000742 3046 DCA OPCODE /ITS AN OPCODE-MAYBE? 544 000743 6201 CDF FLD0 545 000744 0000 OPCJMP, 0 /JUMP SOMEWHERE 546 000745 5741 OPCTBL, JMP I .-4 547 000746 1200 PSEUDO /PSEUDO OPS 548 000747 1215 PDP8MR /PDP8 MRI 549 000750 1027 FPPMR /FPPMR 550 000751 1125 FPPS1 /OTHER FPP OPCODES 551 000752 1046 FPPS2 552 000753 1122 FPPS3 553 000754 1201 FPPS4 554 000755 1134 FPPS5 555 000756 1105 FPMRI /INDIRECT FPP MEM REF 556 000757 1066 FPMRS /SHORT DIRECT MEM REF 557 000760 1060 FPMRL /LONG DIRECT REF 558 000761 2115 PDPOPR /8-MODE OPERATES 559 000762 4770 REPETX, JMS I (ADRGET /EVALUATE REPEAT EXPR 560 000763 7150 CLL CMA RAR /3777 561 000764 0037 AND EXPVAL+2 562 000765 3063 DCA REPCNT 563 000766 5564 JMP I [NEXTST 564 000770 1210 PAGE 000771 0033 000772 0035 000773 7740 000774 7757 000775 0310 000776 7524 000777 1000 565 / 566 001000 6201 GETEXP, CDF FLD0 567 001001 1021 TAD CPTMP /RESTORE CHARACTER POINTER 568 001002 3017 DCA CHRPTR 569 001003 1022 TAD NCTMP /TO JUST AFTER TAG (IF ANY) 570 001004 3020 DCA NCHARS 571 001005 3046 SX, DCA OPCODE 572 001006 4565 JMS I [EXPR /TRY FOR AN EXPRESSION 573 001007 5300 JMP BADEXP /IF NONE, ERROR 574 IFNZRO RALF < 575 001010 4214 JMS RELERR /BOMB IF NOT ABSOLUTE EXP> 576 001011 1037 TAD EXPVAL+2 577 001012 4560 JMS I [OUTWRD 578 001013 5564 JMP I [NEXTST /GO DO NEXT STMT 579 IFNZRO RALF 592 / 593 001027 2075 FPPMR, ISZ FPPSWT /SET FORCE ENABLE 594 001030 4355 JMS FPADR 595 001031 1042 TAD WORD1 /IF WAY OFF BASE, 596 001032 7450 SNA 597 001033 1077 TAD FPPWD2 /OR IF FORCED 598 001034 7450 SNA 599 001035 1047 TAD XFLAG /OR IF INDEXED 600 001036 7640 SZA CLA 601 001037 5261 JMP FORMT1 /USE LONG FORM 602 001040 1043 TAD WORD2 603 001041 7100 CLL 604 001042 1377 TAD (-600 /COMPLETE OFF-BASE CHECK 605 001043 7630 SZL CLA 606 001044 5261 JMP FORMT1 /USE LONG 607 001045 5317 JMP FORMT2 608 001046 4776 FPPS2, JMS I (GETADR /COLLECT ADDRESS EXPR 609 001047 4251 JMS IXMES /BUT DISALLOW INDEX 610 001050 5262 JMP F2WD /PUT TWO WORDS OUT 611 / 612 001051 0000 IXMES, 0 613 001052 1047 TAD XFLAG /NO INDEX ALLOWED 614 001053 7650 SNA CLA 615 001054 5651 JMP I IXMES /HE'S COOL 616 001055 4574 JMS I [ERMSG 617 001056 1130 1130 /*IX* 618 001057 5651 JMP I IXMES 619 001060 4355 FPMRL, JMS FPADR 620 001061 4775 FORMT1, JMS I (FIXOPC 621 001062 1044 F2WD, TAD FPPADR 622 001063 0156 AND [7 /FIELD BITS 623 001064 1046 TAD OPCODE /IN FIRST WORD 624 FPDMP, IFZERO RALF < 625 JMS I [OUTWRD 626 TAD FPPADR+1 /LOW ADDRESS 627 JMS I [OUTWRD 628 JMP I [NEXTST /NEXT!> 629 IFNZRO RALF < 630 001065 5774 JMP I (OUTREL /DUMP TWO RELOCATABLE> 631 001066 4355 FPMRS, JMS FPADR /COLLECT OPERAND 632 001067 4251 JMS IXMES /ERROR IF INDEX GIVEN 633 001070 1042 TAD WORD1 634 001071 7640 SZA CLA 635 001072 5300 JMP BADEXP 636 001073 1043 TAD WORD2 637 001074 7100 CLL 638 001075 1377 TAD (-600 /DOES IT FIT? 639 001076 7620 SNL CLA 640 001077 5317 JMP FORMT2 641 001100 4574 BADEXP, JMS I [ERMSG 642 001101 0230 0230 /*BX* 643 001102 1046 TAD OPCODE /BEST GUESS OF THE DESIRED OUTPUT 644 001103 4560 JMS I [OUTWRD 645 001104 5564 JMP I [NEXTST 646 001105 4355 FPMRI, JMS FPADR 647 001106 1042 TAD WORD1 648 001107 7640 SZA CLA 649 001110 5300 JMP BADEXP /NOT EVEN CLOSE 650 001111 1043 TAD WORD2 651 001112 7100 CLL 652 001113 1373 TAD (-30 653 001114 7630 SZL CLA 654 001115 5300 JMP BADEXP /GOTTA BE IN THE FIRST 10 655 001116 4775 FORMT3, JMS I (FIXOPC 656 001117 1043 FORMT2, TAD WORD2 657 001120 4772 JMS I (OVER3 /BY 3 FOR BASE ADDRESS 658 001121 1155 TAD [200 659 001122 1046 FPPS3, TAD OPCODE 660 001123 4560 JMS I [OUTWRD /WHEW! 661 001124 5564 JMP I [NEXTST 662 001125 4776 FPPS1, JMS I (GETADR /GET ADDR, AND INDEX 663 001126 4775 JMS I (FIXOPC /PUT OPCODE TOGETHER 664 001127 1044 TAD FPPADR /GET ADDR EXTENSION 665 001130 0156 AND [7 666 001131 1046 TAD OPCODE /WITH TOGETHER OPCODE 667 001132 0371 AND (7377 /WITHDRAW ONE BIT 668 001133 5265 JMP FPDMP /PUT IT OUT 669 001134 7201 FPPS5, CLA IAC /DISALLOW INDEX INCR 670 001135 4776 JMS I (GETADR /COLLECT ADDRESS AND INDEX 671 IFNZRO RALF < 672 001136 1044 TAD FPPADR 673 001137 0157 AND [7770 /MUST BE ABSOLUTE 674 001140 7650 SNA CLA 675 001141 5344 JMP .+3 /OK 676 001142 4574 JMS I [ERMSG 677 001143 2205 2205 /*RE*> 678 001144 1047 TAD XFLAG 679 001145 7640 SZA CLA /ANY INDEX? 680 001146 1037 TAD EXPVAL+2 681 001147 0156 AND [7 /STRIP OFF ESD BITS 682 001150 1046 TAD OPCODE 683 001151 4560 JMS I [OUTWRD /DUMP THAT 684 001152 1045 TAD FPPADR+1 685 001153 4560 JMS I [OUTWRD /NOW LOW 12 BITS 686 001154 5564 JMP I [NEXTST 687 / 688 001155 0000 FPADR, 0 689 001156 4776 JMS I (GETADR /COLLECT ADDRESS AND INDEX 690 001157 1032 TAD BASER+1 691 001160 7161 CIA STL 692 001161 1045 TAD FPPADR+1 693 001162 3043 DCA WORD2 /GET ADDRESS RELATIVE TO BASE 694 001163 7004 RAL 695 001164 1031 TAD BASER 696 001165 7041 CIA 697 001166 1044 TAD FPPADR 698 001167 3042 DCA WORD1 699 001170 5755 JMP I FPADR 700 001171 7377 PAGE 001172 0400 001173 7750 001174 3000 001175 2600 001176 1217 001177 7200 701 / 702 001200 5446 PSEUDO, JMP I OPCODE /DISPATCH TO APPROPRIATE HNDLR 703 / 704 IFZERO RALF < 705 / 706 / ASSEMBLE VARIOUS INSTRUCTION TYPES 707 / 708 PDP8MR, TAD CHRPTR /SAVE POSITION 709 DCA CPTMP 710 TAD NCHARS 711 DCA NCTMP /SAVE COUNT 712 JMS I [GETCHR /LOOK FOR SPACE "I" 713 JMP GETMR /WILL GIVE BX ERROR 714 TAD (-"I /IS IT I? 715 SNA CLA /IF NOT, FORGET IT 716 JMS I [GETCHR /MUST BE FOLLOWED BY SPACE 717 JMP NOTIND 718 TAD [-240 719 SZA CLA 720 JMP NOTIND /SOMETHING ELSE 721 TAD OPCODE /PUT INDIRECT INTO OPCODE 722 TAD (400 723 DCA OPCODE 724 GETMR, JMS ADRGET /PICK UP ADDRESS FIELD 725 TAD EXPVAL+2 /CHECK PAGE OF ADDRESS 726 AND [7600 727 SNA 728 JMP PAGEZ /ITS IN PAGE 0 729 CIA 730 TAD LOCTR2 /COMPARE WITH CURRENT PAGE 731 AND [7600 732 SNA CLA 733 JMP THSPAG /OK, ITS THIS PAGE 734 TAD OPCODE /CAN WE USE A LINK ? 735 AND (400 /IS INDIRECT BIT OFF ? 736 SNA CLA 737 JMP I (MAKLNK /YES, GO MAKE LINK 738 JMS I [ERMSG /NOPE, ITS AN ILLEGAL REFERENCE 739 1122 /*IR* 740 THSPAG, TAD EXPVAL+2 /GET ADDRESS 741 AND [177 /LOWER 7 BITS 742 TAD [200 /PUT IN PAGE BIT 743 SKP 744 PAGEZ, TAD EXPVAL+2 /GET ADDRESS (UPPER 5 BITS ZERO) 745 TAD OPCODE /PLUS OPCODE 746 JMS I [OUTWRD /OUTPUT WORD 747 JMP I [NEXTST 748 NOTIND, TAD CPTMP /RESTORE CHAR POINTER 749 DCA CHRPTR 750 TAD NCTMP 751 DCA NCHARS 752 JMP GETMR /NOT AN INDIRECT> 753 001201 4210 FPPS4, JMS ADRGET /GET INDEX REG EXPRESSION 754 IFZERO RALF < 755 JMS LITERR /CAN'T ALLOW LITERAL> 756 001202 4251 JMS SUBX /GET RELATIVE INDEX VALUE 757 001203 1037 TAD EXPVAL+2 /GET LOWER 3 BITS 758 001204 0156 AND [7 /OF INDEX REG EXPR 759 001205 1046 TAD OPCODE /WITH OPCODE 760 001206 4560 JMS I [OUTWRD /OUT 761 001207 5564 JMP I [NEXTST 762 001210 0000 ADRGET, 0 /GET ADDRESS EXPR AND CHECK TYPE 763 001211 4565 JMS I [EXPR /GET EXPR 764 001212 4574 JMS I [ERMSG /BAD ADDR EXPR 765 001213 0230 0230 /*BX* 766 001214 5610 JMP I ADRGET 767 IFZERO RALF < 768 LITERR, 0 /GIVE ERROR IF LITERAL 769 TAD LITRL 770 SNA CLA 771 JMP I LITERR 772 JMS I [ERMSG 773 1114 /*IL* 774 JMP I LITERR > 775 IFNZRO RALF < 776 001215 4210 PDP8MR, JMS ADRGET 777 001216 5777 JMP I (CHCKMR /V.56 778 > 779 001217 0000 GETADR, 0 /GET ADDR, INDEX 780 001220 3251 DCA XITEMP /SAVE INDEX INCREMENT SWITCH 781 001221 4210 JMS ADRGET /GET ADDR 782 001222 3075 DCA FPPSWT /KILL FPP SWITCH 783 IFZERO RALF < 784 JMS LITERR /DISALLOW LITERALS> 785 001223 1040 TAD EXPDEF /IF EXPR WAS UNDEFINED 786 001224 7650 SNA CLA 787 001225 7001 IAC /OR FORCE BIT WAS SET 788 001226 1076 TAD FPP2WD 789 001227 3077 DCA FPPWD2 /FORCE 2 WORD FORMAT 790 001230 3047 DCA XFLAG /ZERO INDEX SWT 791 001231 1036 TAD EXPVAL+1 /SAVE ADDRESS VALUE 792 001232 3044 DCA FPPADR 793 001233 1037 TAD EXPVAL+2 794 001234 3045 DCA FPPADR+1 795 001235 4575 JMS I [GETCHR /LOOK FOR COMMA 796 001236 5617 JMP I GETADR /NO INDEX 797 001237 1376 TAD (-254 798 001240 7640 SZA CLA 799 001241 4571 JMS I [BACK1 /WILL CAUSE A BX ERROR 800 001242 2047 ISZ XFLAG /SET INDEX SWITCH 801 001243 1251 TAD XITEMP /SET INDEX INCREMENT SWITCH 802 001244 3050 DCA XINCR 803 001245 4210 JMS ADRGET 804 001246 2050 ISZ XINCR /CLEAR INDEX INCREMENT SWITCH 805 IFZERO RALF < 806 JMS LITERR > 807 001247 4251 JMS SUBX /CALCULATE INDEX NO 808 001250 5617 JMP I GETADR 809 XITEMP, 810 001251 0000 SUBX, 0 811 001252 1034 TAD INDXR+1 /CHECK FOR INDEX IN RANGE 812 001253 7161 STL CIA 813 001254 1037 TAD EXPVAL+2 814 001255 3037 DCA EXPVAL+2 815 001256 7004 RAL 816 001257 1033 TAD INDXR 817 001260 7041 CIA 818 001261 1036 TAD EXPVAL+1 819 001262 7640 SZA CLA 820 001263 5270 JMP BIERR 821 001264 1037 TAD EXPVAL+2 822 001265 7100 CLL 823 001266 1157 TAD [-10 824 001267 7630 SZL CLA 825 001270 4574 BIERR, JMS I [ERMSG 826 001271 0211 0211 /*BI* 827 001272 5651 JMP I SUBX 828 IFNZRO RALF < 829 / 830 / AT END OF PASS, 831 / CLEAR LENGTHS OF ALL SECTIONS 832 / 833 001273 0000 CLRSCT, 0 834 001274 1375 TAD (PNDL+3 835 001275 3066 DCA LTEMP /POINT TO USER SYMBOL SPACE 836 001276 6211 CDF FLD1 837 001277 1466 CSLOOP, TAD I LTEMP /GET TYPE 838 001300 0154 AND [37 /STRIP TO TYPE ONLY 839 001301 1374 TAD (-3 840 001302 7710 SPA CLA /IS IT COMMON OR SECTION? 841 001303 5313 JMP NOTSCT /NO, PASS IT 842 001304 2066 ISZ LTEMP /BUMP POINTER TO VALUE 843 001305 1466 TAD I LTEMP 844 001306 0157 AND [7770 /SAVE ESD NUMBER 845 001307 3466 DCA I LTEMP 846 001310 2066 ISZ LTEMP 847 001311 3466 DCA I LTEMP /CLEAR LOW ORDER 848 001312 7344 CLA CLL CMA RAL /-2 849 001313 1373 NOTSCT, TAD (6 /BUMP POINTER 850 001314 1066 TAD LTEMP /TO NEXT SYMBOL 851 001315 3066 DCA LTEMP 852 001316 1016 TAD NEXT /COMPARE END OF SYMBOL TABLE 853 001317 7141 CIA CLL 854 001320 1066 TAD LTEMP 855 001321 7620 SNL CLA 856 001322 5277 JMP CSLOOP /MORE TO GO 857 001323 6201 CDF FLD0 858 001324 5673 JMP I CLRSCT /THAS ALL> 859 / 860 / 861 IFNZRO RALF < 862 / 863 / ENSURE BOTH SYMBOL AND SUB-EXPR ARE ABSOLUTE 864 / 865 001325 0000 NOREL, 0 866 001326 1042 TAD WORD1 /IS SYMBOL RELOCATABLE? 867 001327 0157 AND [7770 /TEST ESD BITS 868 001330 7640 SZA CLA 869 001331 7130 STL RAR /IF SO, FORCE ERROR 870 001332 4772 JMS I (RELERR /TEST SUB EXPR 871 001333 5725 JMP I NOREL 872 001334 7330 DPCHKX, CLA CLL CML RAR /SET DPFLG, MODULE NEEDS 873 001335 3030 DCA DPFLG /DP HARDWARE 874 001336 5564 JMP I [NEXTST 875 / SET BASE AND INDEX LOCS 876 001337 7326 INDXX, CLA STL RTL /INDXR MUST JUST FOLLOW BASER 877 001340 1371 BASEX, TAD (BASER-1 /POINT TO VALUE TO BE SET 878 001341 3012 DCA X12 /HOPEFULLY UNUSED XR 879 001342 4770 JMS I (ADRGET /COLLECT EXPRESSION 880 001343 1036 TAD EXPVAL+1 881 001344 3412 DCA I X12 /HIGH ORDER AND ESD 882 001345 1037 TAD EXPVAL+2 883 001346 3412 DCA I X12 /LOW ORDER 884 001347 5564 JMP I [NEXTST >/THIS CONDITIONAL SASSEMBLY WAS 885 /EXPANDED TO INCLUDE INDXX ON THIS PAGE. IT IS ALSO 886 /COND. ASSEMBLED ON ANOTHER PAGE FOR FLAP. 887 001350 0000 DELFIL, 0 888 001351 1173 TAD [7600 889 001352 3106 DCA OUFILE 890 001353 4553 JMS I [OFNAME 891 001354 7201 CLA IAC 892 001355 6212 CIF 10 893 001356 4516 JMS I USR 894 001357 0004 4 895 001360 4362 OUFNAM 896 001361 0000 0 897 001362 7000 NOP 898 001363 5750 JMP I DELFIL 899 001370 1210 PAGE 001371 0030 001372 1014 001373 0006 001374 7775 001375 1574 001376 7524 001377 3236 900 / 901 / PRINT THE CURRENT LINE IF NOT ALREADY DONE 902 / 903 001400 0000 PRNTLN, 0 /PRINT THE LINE 904 001401 1062 TAD OUTSWT /HAS THE LINE BEEN PRINTED YET? 905 001402 7640 SZA CLA 906 001403 5600 JMP I PRNTLN /YES, COOL IT 907 001404 2062 ISZ OUTSWT /SET SWITCH 908 001405 1141 TAD BLINE /POINTER TO LINE 909 001406 3013 DCA X13 910 001407 3233 DCA CRLF /CLEAR POSITION COUNT 911 001410 5220 JMP PRLTST /IN CASE OF EMPTY LINE 912 001411 1413 PRLNXT, TAD I X13 /GET A CHAR 913 001412 1377 TAD (-211 /WATCH OUT FOR TAB 914 001413 7450 SNA 915 001414 5223 JMP TABIT /CONVERT TO BLANKS 916 001415 1376 TAD (211 /RESTORE 917 001416 2233 ISZ CRLF /BUMP POSITION COUNT 918 001417 4505 JMS I PC /PRINT IT 919 001420 2023 PRLTST, ISZ LINSIZ /CHECK COUNT 920 001421 5211 JMP PRLNXT 921 001422 5600 JMP I PRNTLN 922 001423 1152 TABIT, TAD [240 /REPLACE TAB WITH BLANKS 923 001424 2233 ISZ CRLF 924 001425 4505 JMS I PC 925 001426 1233 TAD CRLF 926 001427 0156 AND [7 927 001430 7640 SZA CLA 928 001431 5223 JMP TABIT 929 001432 5220 JMP PRLTST 930 / 931 / GO TO NEXT LINE 932 / 933 001433 0000 CRLF, 0 934 001434 7200 CLA 935 001435 1375 TAD (215 936 001436 4505 JMS I PC /PRINT A CHAR 937 001437 1374 TAD (212 938 001440 4505 JMS I PC 939 001441 2112 ISZ LINPAG /FULL PAGE? 940 001442 5633 JMP I CRLF /NO 941 001443 7240 CLA CMA 942 001444 3112 DCA LINPAG 943 / 944 / NEW PAGE, WITH HEADING AND PAGE NO 945 / 946 001445 1056 TAD PASSNO /IF NOT LISTING PASS 947 001446 7740 SMA SZA CLA 948 001447 1061 TAD LISTSW /OR IF NOT LISTING, 949 001450 7650 SNA CLA 950 001451 5633 JMP I CRLF /DO NOT EJECT 951 001452 1303 TAD RFORMF 952 001453 7440 SZA /DON'T F.F. FIRST TIME 953 001454 4505 JMS I PC /TOP OF PAGE 954 001455 1373 TAD (214 955 001456 3303 DCA RFORMF 956 001457 4772 JMS I (PRTXT /PRINT HEADING 957 001460 0543 TITBUF-1 958 001461 7761 -TITLEN 959 001462 1110 TAD LPAGE1 /FORM FEED COUNT 960 001463 4771 JMS I (DECOUT 961 001464 1111 TAD LPAGE2 962 001465 7650 SNA CLA 963 001466 5273 JMP .+5 /NO SUB PAGE IF 0 964 001467 1370 TAD (255 965 001470 4505 JMS I PC 966 001471 1111 TAD LPAGE2 967 001472 4771 JMS I (DECOUT 968 001473 2111 ISZ LPAGE2 969 001474 1375 TAD (215 /FOR BH 970 001475 4505 JMS I PC 971 001476 1374 TAD (212 972 001477 4505 JMS I PC 973 001500 1367 TAD (-71 /RESET LINE COUNTER 974 001501 3112 DCA LINPAG 975 001502 5234 JMP CRLF+1 /GIVE ANOTHER CRLF 976 001503 0000 RFORMF, 0 977 / 978 / PRINT TEXT 979 / 980 001504 0000 PRTXT, 0 981 001505 1704 TAD I PRTXT 982 001506 3013 DCA X13 983 001507 2304 ISZ PRTXT 984 001510 1704 TAD I PRTXT 985 001511 3200 DCA PRTTMP 986 001512 2304 ISZ PRTXT 987 001513 1413 TAD I X13 988 001514 4320 JMS PRINT2 989 001515 2200 ISZ PRTTMP 990 001516 5313 JMP .-3 991 001517 5704 JMP I PRTXT 992 PRTTMP= PRNTLN 993 / 994 001520 0000 PRINT2, 0 995 001521 3355 DCA P2 996 001522 1355 TAD P2 997 001523 4551 JMS I [R6R 998 001524 4330 JMS P1 999 001525 1355 TAD P2 1000 001526 4330 JMS P1 1001 001527 5720 JMP I PRINT2 1002 / 1003 001530 0000 P1, 0 1004 001531 0163 AND [77 1005 001532 7450 SNA 1006 001533 5337 JMP .+4 /PRINT ZERO AS BLANK 1007 001534 1366 TAD (-40 /TEST ABOVE OR BELOW 300 1008 001535 7510 SPA 1009 001536 1150 TAD [100 /ABOVE, MAKE 301 TO 337 1010 001537 1152 TAD [240 /IF BELOW, MAKE 240 TO 277 1011 001540 4505 JMS I PC /PRINT IT, WHATEVER IT IS 1012 001541 5730 JMP I P1 1013 / 1014 001542 0000 TTYOUT, 0 1015 001543 6046 TLS 1016 001544 6041 TSF 1017 001545 5344 JMP .-1 1018 001546 4765 TTYCLA, JMS I (CKCTC /CHECK FOR ^C - AC CONTAINS DIFFERENCE 1019 001547 1364 TAD (-14 /CTRL/O 1020 001550 7640 SZA CLA 1021 001551 5742 JMP I TTYOUT 1022 001552 1354 TAD .+2 1023 001553 3343 DCA TTYOUT+1 1024 001554 5742 JMP I TTYOUT 1025 / 1026 001555 0000 P2, 0 1027 / 1028 IFZERO RALF < 1029 TXLNK, TEXT " LINKS" 1030 TXLLN= .-TXLNK > 1031 IFNZRO RALF < 1032 001556 4001 TXABR, TEXT " ABS REFS" 001557 0223 001560 4022 001561 0506 001562 2300 1033 TXALN= .-TXABR > 1034 001564 7764 PAGE 001565 1674 001566 7740 001567 7707 001570 0255 001571 2673 001572 1504 001573 0214 001574 0212 001575 0215 001576 0211 001577 7567 1035 / 1036 / GET AND EVALUATE AN EXPRESSION 1037 / 1038 001600 0000 EXPR, 0 /GET EXPRESSION 1039 001601 3035 DCA EXPVAL /ZERO EXPR VALUE 1040 001602 3036 DCA EXPVAL+1 1041 001603 3037 DCA EXPVAL+2 1042 001604 7201 CLA IAC 1043 001605 3040 DCA EXPDEF /AND TYPE 1044 001606 7201 CLA IAC /SET EXPR SWITCH TO NO EXPR 1045 001607 3041 DCA EXPSW 1046 001610 3076 DCA FPP2WD /SET FORCE SWITCH OFF 1047 001611 7201 CLA IAC /SET LASTOP TO + 1048 001612 3055 DCA LASTOP 1049 IFZERO RALF < 1050 JMS I (CHKLIT /GO CHECK FOR LITERAL> 1051 001613 4777 JMS I (GETSGN /IGNORE +, BUMP LASTOP IF - 1052 001614 4570 SYMBOL, JMS I [GETNAM /NOW PICK UP NAME 1053 001615 5256 JMP NOSYM /NONE, TRY OTHER 1054 001616 4567 JMS I [LOOKUP /LOOK IT UP 1055 001617 5334 JMP UNDEF /A NEW ONE 1056 IFZERO RALF < 1057 JMP ADR /YES > 1058 IFNZRO RALF < 1059 001620 7110 CLL RAR 1060 001621 7450 SNA 1061 001622 5306 JMP ADR 1062 001623 1466 SCTN, TAD I LTEMP /GET TYPE 1063 001624 0376 AND (40 /FORCE BIT 1064 001625 7640 SZA CLA 1065 001626 2076 ISZ FPP2WD /SET FORCE EXPR SW 1066 001627 1410 TAD I X10 /GET ESD FROM SYMBOL 1067 001630 0157 AND [7770 /ESD ONLY 1068 001631 3042 DCA WORD1 /INTERNALLY, SYMBOL VAL IS ZERO 1069 001632 5315 JMP CLR2 /SO CLEAR WORD 2> 1070 001633 1375 NOTDOT, TAD (256-242 /IS IT DBL QUOTE? 1071 001634 7640 SZA CLA 1072 001635 5240 JMP ENDEXP 1073 001636 2020 ISZ NCHARS /IS THERE ANOTHER CHAR? 1074 001637 5271 JMP ISQUOT /YES, USE IT 1075 001640 4571 ENDEXP, JMS I [BACK1 /PUT IT BACK 1076 001641 1041 TAD EXPSW /WAS THERE ANY EXPRESSION AT ALL? 1077 001642 7640 SZA CLA 1078 001643 5253 JMP BAD /NO, DON'T SKIP 1079 IFZERO RALF < 1080 TAD LITRL /WAS IT A LITERAL REF? 1081 SZA CLA 1082 JMS I (CRLIT /YES, STICK IT IN THE POOL> 1083 001644 1055 TAD LASTOP /TRAILING OPERATOR? 1084 001645 7450 SNA 1085 001646 5252 JMP OKEXP /NO, ALL IS FINE 1086 001647 7110 CLL RAR /IF PLUS OPERATOR 1087 001650 1050 TAD XINCR /AND THATS LEGAL 1088 001651 7650 SNA CLA 1089 001652 2200 OKEXP, ISZ EXPR /GOOD EXPR, BUMP RETURN 1090 001653 4274 BAD, JMS CKCTC 1091 001654 7200 CLA 1092 001655 5600 JMP I EXPR /AND RETURN 1093 / 1094 001656 4774 NOSYM, JMS I (NUMBER /LOOK FOR A NUMBER 1095 001657 5317 JMP ADREXP /USE NUMBER 1096 001660 4575 JMS I [GETCHR /NOT A NUMBER, GET A CHAR 1097 001661 5241 JMP ENDEXP+1 /NONE LEFT, END 1098 001662 1373 TAD (-256 /IS IT "." ? 1099 001663 7440 SZA 1100 001664 5233 JMP NOTDOT /NO, TRY FOR QUOTE 1101 001665 1026 TAD LOCTR1 /THIS WAS LOC SYMBOL 1102 001666 3042 DCA WORD1 /PUT VALUE INTO WORD1,2 1103 001667 1027 TAD LOCTR2 1104 001670 5315 JMP CLR2 /AND USE VALUE 1105 001671 3042 ISQUOT, DCA WORD1 1106 001672 1417 TAD I CHRPTR 1107 001673 5315 JMP CLR2 1108 001674 0000 CKCTC, 0 1109 001675 7200 CLA 1110 001676 6031 KSF /IF NOTHING AT THE KEYBOARD, 1111 001677 5674 JMP I CKCTC /RETURN 1112 001700 1155 TAD [200 1113 001701 6034 KRS /ELSE, LOOK AT IT 1114 001702 1372 TAD (-203 /IS IT CTRL/C? 1115 001703 7450 SNA 1116 001704 5573 JMP I [7600 /GO TO MOMMA 1117 001705 5674 JMP I CKCTC 1118 001706 1466 ADR, TAD I LTEMP /CHECK FORCE BIT FOR THIS SYMBOL 1119 001707 0376 AND (40 1120 001710 7640 SZA CLA 1121 001711 2076 ISZ FPP2WD /AND SET SWITCH IF BIT ON 1122 001712 1410 TAD I X10 /GET FIRST WORD OF VALUE 1123 001713 3042 ONE, DCA WORD1 /SINGLE WORD SYMBOL, HIGH=0 1124 001714 1410 TAD I X10 /GET REST OF SYMBOL 1125 001715 3043 CLR2, DCA WORD2 1126 001716 6201 CDF FLD0 /FIX FIELD 1127 001717 3041 ADREXP, DCA EXPSW /KILL FIRST TIME SWITCH 1128 001720 1055 TAD LASTOP /PICK UP LAST OPERATOR 1129 001721 1324 TAD ADROP /MAKE A JMP I 1130 001722 3323 DCA .+1 1131 001723 0000 0 /DO IT 1132 001724 5724 ADROP, JMP I . 1133 001725 2000 ADRADD 1134 001726 2013 ADRSUB 1135 001727 2064 ADRMUL 1136 001730 2073 ADRDIV 1137 001731 2040 ADRAND 1138 001732 2047 ADROR 1139 001733 2047 ADROR 1140 001734 1075 UNDEF, TAD FPPSWT /IS THIS AN FPP ADDR ? 1141 001735 7650 SNA CLA 1142 001736 5343 JMP .+5 /NO, SKIP AROUND 1143 001737 1466 TAD I LTEMP /TURN ON FORCE BIT 1144 001740 0371 AND (7737 /FOR THIS SYMBOL 1145 001741 1376 TAD (40 1146 001742 3466 DCA I LTEMP 1147 001743 3040 DCA EXPDEF /SET TYPE TO UNDEFINED 1148 001744 6201 CDF FLD0 /FIX FIELD 1149 001745 3041 DCA EXPSW /KILL FIRST TIME SWITCH 1150 001746 4574 JMS I [ERMSG 1151 001747 2523 2523 /*US* 1152 001750 1370 OPR8R, TAD (OPR8RS-1 /SET POINTER 1153 001751 3011 DCA X11 /TO OPERATOR TABLE 1154 001752 3055 DCA LASTOP /ZERO LASTOP 1155 001753 4575 JMS I [GETCHR /GET CHAR 1156 001754 5241 JMP ENDEXP+1 /NONE, DONE 1157 001755 3067 DCA EXTMP /SAVE IT 1158 001756 2055 FINDOP, ISZ LASTOP 1159 001757 1411 TAD I X11 /GET NEXT LIST ENTRY 1160 001760 7450 SNA 1161 001761 5366 JMP NOOPR /ZERO IS END OF LIST 1162 001762 1067 TAD EXTMP /COMPARE 1163 001763 7640 SZA CLA 1164 001764 5356 JMP FINDOP /LOOP 1165 001765 5214 JMP SYMBOL /LOOK FOR OPERAND 1166 001766 3055 NOOPR, DCA LASTOP /NO MATCH FOUND 1167 001767 5240 JMP ENDEXP /PUT IT BACK 1168 001770 2621 PAGE 001771 7737 001772 7575 001773 7522 001774 2277 001775 0014 001776 0040 001777 4617 1169 ADRADD, IFNZRO RALF < 1170 002000 1042 TAD WORD1 1171 002001 0157 AND [7770 /IF THIS SYMBOL IS RELOCATABLE, 1172 002002 7640 SZA CLA /CHECK FOR EXPR VALIDITY 1173 002003 4777 JMS I (RELERR > 1174 002004 1037 TAD EXPVAL+2 /ADD FOR 15 BIT ADDRESS 1175 002005 7100 CLL /ZERO LINK 1176 002006 1043 TAD WORD2 /ADD LOW WORDS 1177 002007 3037 DCA EXPVAL+2 /SAVE RESULT 1178 002010 7004 RAL /PUT CARRY INTO BIT 11 1179 002011 1042 TAD WORD1 /ORDER WORDS 1180 002012 5234 JMP ADRASX /LOOK FOR OPERATOR 1181 ADRSUB, IFNZRO RALF < 1182 002013 1042 TAD WORD1 /IF SYMBOL IS RELOCATABLE 1183 002014 0157 AND [7770 /WE MUST COMPARE SECTIONS 1184 002015 7041 CIA /IF EQUAL, EXPR BECOMES ABSOLUTE 1185 002016 7450 SNA /ELSE, EXPR IS ILLEGAL 1186 002017 5224 JMP .+5 /OK, USE EXPVAL ESD 1187 002020 4777 JMS I (RELERR /COMPARE: AC DELIBERATELY NON-ZERO 1188 002021 1036 TAD EXPVAL+1 1189 002022 0156 AND [7 /IF WORD RELOCATABLE, EXP IS ABS 1190 002023 3036 DCA EXPVAL+1 > 1191 002024 1043 TAD WORD2 /SUBTR LOW 12 BITS 1192 002025 7161 CLL CML CIA 1193 002026 1037 TAD EXPVAL+2 1194 002027 3037 DCA EXPVAL+2 /SAVE LOW HALF 1195 002030 7004 RAL 1196 002031 1042 TAD WORD1 /SUBTRACT HIGH HALF 1197 002032 7041 CIA 1198 002033 0156 AND [7 /DO NOT SUBTR ESD'S 1199 002034 1036 ADRASX, TAD EXPVAL+1 1200 002035 0376 AND (7767 /PREVENT CARRY INTO BIT 8 1201 002036 3036 ADRASY, DCA EXPVAL+1 /SAVE HIGH HALF 1202 002037 5775 JMP I (OPR8R /GET OPERATOR 1203 /INDXX HERE FOR FLAP 1204 IFZERO RALF < 1205 / SET BASE AND INDEX LOCS 1206 INDXX, CLA STL RTL /INDXR MUST JUST FOLLOW BASER 1207 BASEX, TAD (BASER-1 /POINT TO VALUE TO BE SET 1208 DCA X12 /HOPEFULLY UNUSED XR 1209 JMS I (ADRGET /COLLECT EXPRESSION 1210 TAD EXPVAL+1 1211 DCA I X12 /HIGH ORDER AND ESD 1212 TAD EXPVAL+2 1213 DCA I X12 /LOW ORDER 1214 JMP I [NEXTST > 1215 002040 1042 ADRAND, TAD WORD1 /AND 1216 002041 0036 AND EXPVAL+1 /HIGH 1217 002042 0156 AND [7 /3 BITS 1218 002043 3036 DCA EXPVAL+1 /HALF 1219 002044 1043 TAD WORD2 /THEN 1220 002045 0037 AND EXPVAL+2 /LOW 1221 002046 5261 JMP ADRAOX 1222 002047 1042 ADROR, TAD WORD1 /OR IS PERFORMED BY 1223 002050 7040 CMA /SETTING THE BITS 1224 002051 0036 AND EXPVAL+1 /THAT ARE ON IN B AND NOT ON IN A 1225 002052 1042 TAD WORD1 /AND THEN SETTING THE BITS 1226 002053 0156 AND [7 1227 002054 3036 DCA EXPVAL+1 /THAT ARE ON IN A 1228 002055 1043 TAD WORD2 1229 002056 7040 CMA 1230 002057 0037 AND EXPVAL+2 1231 002060 1043 TAD WORD2 1232 002061 3037 ADRAOX, DCA EXPVAL+2 1233 IFNZRO RALF < 1234 002062 4774 JMS I (NOREL /**> 1235 002063 5775 JMP I (OPR8R /GET NEXT OPERATOR 1236 / 1237 002064 1043 ADRMUL, TAD WORD2 /**RL CODE 1238 002065 7041 CIA 1239 002066 3036 DCA EXPVAL+1 /MULT BY 1240 002067 1037 TAD EXPVAL+2 /REPEATED ADDITIONS 1241 002070 2036 ISZ EXPVAL+1 1242 002071 5267 JMP .-2 1243 002072 5261 JMP ADRAOX 1244 002073 3042 ADRDIV, DCA WORD1 1245 002074 3036 DCA EXPVAL+1 1246 002075 1043 TAD WORD2 1247 002076 7650 SNA CLA 1248 002077 5312 JMP DIVERR 1249 002100 1037 TAD EXPVAL+2 1250 002101 7141 CIA CLL 1251 002102 1043 TAD WORD2 1252 002103 7430 SZL 1253 002104 5307 JMP .+3 /DIVIDE BY 1254 002105 2042 ISZ WORD1 /COUNTING SUBTRACTIONS 1255 002106 5302 JMP .-4 1256 002107 7200 CLA 1257 002110 1042 TAD WORD1 1258 002111 5261 JMP ADRAOX 1259 002112 4574 DIVERR, JMS I [ERMSG 1260 002113 0626 0626 /*DV* 1261 002114 5775 JMP I (OPR8R /CONTINUE 1262 002115 1017 PDPOPR, TAD CHRPTR 1263 002116 3021 DCA CPTMP 1264 002117 1020 TAD NCHARS 1265 002120 3022 DCA NCTMP 1266 002121 4570 JMS I [GETNAM /LOOK FOR ANOTHER MICRO-INST 1267 002122 5347 JMP TRYEXP /NONE 1268 002123 1373 TAD (33 /USE INTERNAL TABLE 1269 002124 4561 JMS I [FIND /IS IT THERE ? 1270 002125 5347 JMP TRYEXP /NO 1271 002126 1372 TAD (-PDPOP /IS IT AN OPERATE ? 1272 002127 7640 SZA CLA 1273 002130 5347 JMP TRYEXP /NO 1274 002131 1410 TAD I X10 /GET VALUE 1275 002132 6201 CDF FLD0 1276 002133 3037 DCA EXPVAL+2 1277 002134 1037 PDPOR, TAD EXPVAL+2 1278 002135 7040 CMA /OR THEM TOGETHER 1279 002136 0046 AND OPCODE 1280 002137 1037 TAD EXPVAL+2 1281 002140 3046 DCA OPCODE 1282 002141 4575 JMS I [GETCHR /MORE CHARS ? 1283 002142 5771 JMP I (FPPS3 /NO-DONE 1284 002143 1166 TAD [-240 /BLANK ? 1285 002144 7650 SNA CLA 1286 002145 5315 JMP PDPOPR /YES-PROCESS NEXT 1287 002146 5770 JMP I (BADEXP 1288 002147 6201 TRYEXP, CDF FLD0 1289 002150 1021 TAD CPTMP 1290 002151 3017 DCA CHRPTR 1291 002152 1022 TAD NCTMP 1292 002153 3020 DCA NCHARS 1293 002154 2022 ISZ NCTMP 1294 002155 7410 SKP 1295 002156 5771 JMP I (FPPS3 1296 002157 4565 JMS I [EXPR 1297 002160 5770 JMP I (BADEXP 1298 002161 5334 JMP PDPOR 1299 002162 4023 TXSYM, TEXT " SYMBOLS," 002163 3115 002164 0217 002165 1423 002166 5400 1300 TXSLN=.-TXSYM 1301 002170 1100 PAGE 002171 1122 002172 7760 002173 0033 002174 1325 002175 1750 002176 7767 002177 1014 1302 IFZERO RALF < 1303 / 1304 / LITERAL THINGS 1305 / 1306 CHKLIT, 0 /CHECK FOR LITERAL 1307 DCA PAGENO /ZERO PAGE NUMBER 1308 DCA LITRL 1309 JMS I [GETCHR /GET CHARACTER 1310 JMP I CHKLIT /NO LITERAL 1311 TAD (-250 /CHECK FOR ( 1312 SNA 1313 ISZ PAGENO /CURRENT PAGE LITERAL 1314 SZA /SKIP IF ALREADY ZERO 1315 TAD (-63 /CHECK FOR [ 1316 SNA 1317 ISZ LITRL /SET SWITCH 1318 SZA CLA 1319 JMS I [BACK1 /PUT BACK NON ([ 1320 JMP I CHKLIT 1321 / 1322 / CREATE A LINK FOR OFF-PAGE REFERENCE 1323 / 1324 MAKLNK, TAD (THSPAG /PROPER RETURN ADDR 1325 DCA CRLIT 1326 TAD OPCODE /SET INDIRECT BIT 1327 TAD (400 1328 DCA OPCODE 1329 CLA IAC 1330 DCA PAGENO /SET INDICATOR 1331 ISZ LINKS /COUNT ANOTHER LINK GENERATED 1332 ISZ LINKSW /SET SWITCH FOR APOSTROPHE OUTPUT 1333 JMP NOTP0 1334 CRLIT, 0 /CREATE LITERAL 1335 /VALUE:EXPVAL, IN PAGE:PAGENO 1336 TAD PAGENO /CHECK FOR PAGE 0 1337 SNA CLA 1338 JMP ISP0 /PAGE 0 LITERAL 1339 NOTP0, TAD (CPLBUF /SET PTR TO LITERAL BUFFER 1340 DCA LITBAS 1341 TAD LOCTR2 /CHECK FOR LIT BUFFER FULL 1342 AND [100 1343 SNA CLA 1344 JMP DOLIT-1 /USE 77 AS LIMIT 1345 TAD LOCTR2 1346 AND [177 1347 JMP DOLIT /USE CURRENT ADDR AS LIMIT 1348 ISP0, TAD (P0LBUF /USE PAGE 0 LIT BUFFER 1349 DCA LITBAS 1350 TAD [77 /ASSUME FIRST 64 WORDS USED 1351 DOLIT, DCA NWUSED 1352 TAD PAGENO /GET POINTER TO 1353 TAD [P0LIT /LITERAL BOUNDARY 1354 DCA XPAGE 1355 TAD I XPAGE /DISPLACEMENT OF LIT BUFR - 1 1356 DCA LITPTR /INTO LITPTR 1357 NOTIT, TAD LITPTR /POINTER+SIZE 1358 TAD (-177 /SHOULD BE LESS THAN 177 1359 SMA CLA 1360 JMP NEWLIT /ENTER NEW LITERAL 1361 TAD LITPTR /NOW GET POINTER 1362 TAD LITBAS /TO TABLE 1363 DCA X11 /FOR COMPARISON 1364 ISZ LITPTR /INCREMENT POINTER 1365 TAD I X11 /GET WORD OF LITERAL 1366 CIA 1367 TAD EXPVAL+2 /COMPARE PROTOTYPE 1368 SZA CLA 1369 JMP NOTIT /NOT IT, SLIDE POINTER AND RETRY 1370 LITADR, TAD PAGENO /PAGE 0 ? 1371 SZA CLA 1372 TAD LOCTR2 /NO, CURRENT PAGE, GET ADDRESS 1373 AND [7600 1374 TAD LITPTR /PLUS PAGE DISPLACEMENT 1375 DCA EXPVAL+2 /INTO VALUE 1376 TAD LOCTR1 1377 RETLIT, DCA EXPVAL+1 1378 JMP I CRLIT 1379 NEWLIT, CLA CMA 1380 TAD I XPAGE /MOVE LITERAL BOUNDARY DOWN 1381 DCA X10 /ADDRESS OF NEW LITERAL 1382 TAD NWUSED /CHECK FOR PAGE OVERFULL 1383 CIA 1384 TAD X10 1385 SMA CLA 1386 JMP .+5 /NOT FULL 1387 JMS I [ERMSG /*PO* 1388 2017 1389 DCA EXPVAL+2 /ZERO ADDRESS 1390 JMP RETLIT 1391 TAD X10 1392 DCA I XPAGE 1393 TAD I XPAGE /SET UP POINTER FOR MOVE 1394 TAD LITBAS 1395 DCA X10 1396 TAD EXPVAL+2 /MOVE LITERAL IN 1397 DCA I X10 1398 TAD I XPAGE /SET UP LITERAL ADDRESS 1399 IAC 1400 DCA LITPTR 1401 JMP LITADR /RETURN LITERAL ADDRESS 1402 LITBAS, 0 1403 NWUSED, 0 1404 LITPTR, 0 1405 PAGENO, 0 1406 XPAGE, 0 1407 PAGE /> 1408 / 1409 / FIND SYMBOL TABLE ENTRY 1410 / FOR THE SYMBOL IN BUCKET AND NAME 1, 2, 3 1411 / SKIP IF FOUND WITH TYPE IN AC 1412 / 1413 002200 0000 FIND, 0 /SYMBOL TABLE LOOKUP 1414 002201 1051 TAD BUCKET /GET BUCKET ADDRESS 1415 002202 6211 CDF FLD1 /GO TO FIELD 1 1416 002203 3004 LOOK, DCA OLDN3 /THIS IS PTR OF PREV ENTRY 1417 002204 1404 TAD I OLDN3 /THIS IS ADR OF NEXT ENTRY 1418 002205 7450 SNA /IF ZERO, THEN 1419 002206 5600 JMP I FIND /IT AIN'T HERE 1420 002207 3010 DCA X10 /SAVE NEXT NAME PTR 1421 002210 1052 TAD NAME1 /COMPARE NAMES 1422 002211 7141 CIA CLL 1423 002212 1410 TAD I X10 /WORD 1 1424 002213 7640 SZA CLA 1425 002214 5236 JMP NOTSAM 1426 002215 1053 TAD NAME2 1427 002216 7141 CIA CLL 1428 002217 1410 TAD I X10 /WORD2 1429 002220 7640 SZA CLA 1430 002221 5236 JMP NOTSAM 1431 002222 1054 TAD NAME3 1432 002223 7141 CIA CLL 1433 002224 1410 TAD I X10 /COMPARE LAST CHAR 1434 002225 0147 AND [7700 /HIGH HALF ONLY 1435 002226 7640 SZA CLA 1436 002227 5236 JMP NOTSAM 1437 002230 2200 ISZ FIND /IF FOUND BUMP RETURN 1438 002231 1010 TAD X10 1439 002232 3066 DCA LTEMP /ADDR OF TYPE WORD 1440 002233 1466 TAD I LTEMP /GET TYPE INTO AC 1441 002234 0154 AND [37 /WITHOUT FORCE BIT 1442 002235 5600 JMP I FIND /RETURN 1443 002236 7630 NOTSAM, SZL CLA /IS NAME 1,2,3 .LT. ENTRY 1444 002237 5600 JMP I FIND /YES, IT ISN'T HERE 1445 002240 1404 TAD I OLDN3 /GET ADDR OF LINK INTO AC 1446 002241 5203 JMP LOOK /LOOP 1447 / 1448 / FIND SYMBOL, OR IF NOT THERE, CREATE ENTRY FOR IT 1449 / 1450 002242 0000 LOOKUP, 0 1451 002243 4200 JMS FIND 1452 002244 5250 JMP .+4 1453 002245 7440 SZA 1454 002246 2242 ISZ LOOKUP /SKIP RETURN IF DEFINED 1455 002247 5642 JMP I LOOKUP /RETURN TYPE CODE 1456 002250 1404 TAD I OLDN3 /GET FORWARD LINK TO 1457 002251 3416 DCA I NEXT /NEXT ENTRY INTO NEW ENTRY 1458 002252 1016 TAD NEXT /PUT FORWARD LINK TO NEW 1459 002253 3404 DCA I OLDN3 /ENTRY INTO PREVIOUS ENTRY 1460 002254 1052 TAD NAME1 /PUT IN NAME 1461 002255 3416 DCA I NEXT 1462 002256 1053 TAD NAME2 1463 002257 3416 DCA I NEXT 1464 002260 1054 TAD NAME3 1465 002261 3416 DCA I NEXT 1466 002262 1016 TAD NEXT /X10=NEXT 1467 002263 3010 DCA X10 1468 002264 1016 TAD NEXT /LTEMP=NEXT 1469 002265 3066 DCA LTEMP 1470 002266 3416 DCA I NEXT /INITIAL VALUE IS ZERO 1471 002267 3416 DCA I NEXT 1472 002270 1016 TAD NEXT /CHECK FOR TABLE FULL 1473 002271 7100 CLL 1474 002272 1155 TAD [200 /GONNA OVERFLO PS8? 1475 002273 7620 SNL CLA 1476 002274 5642 JMP I LOOKUP /NO PROBLEMS, RETURN (NO SKIP) 1477 002275 4546 JMS I [ERMSG1 1478 002276 2324 2324 /*ST* 1479 / 1480 / COLLECT AN INTEGER IN THE CURRENT RADIX 1481 / 1482 002277 0000 NUMBER, 0 /GET INTEGER NUMBER (NO SIGN) 1483 002300 3364 DCA NSWTCH /CLEAR SWITCH 1484 002301 3242 DCA NOFLO /CLEAR OVRFLO SW 1485 002302 3042 DCA WORD1 /CLEAR 24 BIT NUMBER 1486 002303 3043 DCA WORD2 1487 002304 4777 NUMLUP, JMS I (DIGIT 1488 002305 5350 JMP NODGT /TOO BAD 1489 002306 3200 DCA NUM /YES, SAVE IT 1490 002307 1042 TAD WORD1 /SAVE CURRENT VALUE 1491 002310 3067 DCA NUM1 /OF NUMBER 1492 002311 1043 TAD WORD2 1493 002312 3070 DCA NUM2 1494 002313 4364 JMS SHIFT /SHIFT WORD1,2, LEFT 1 (MULT BY 2) 1495 002314 4364 JMS SHIFT /DO IT AGAIN (MULT BY 4) 1496 002315 1065 TAD RADIX /LOOK AT RADIX (1=DECIMAL) 1497 002316 7650 SNA CLA 1498 002317 5331 JMP OCTNUM /ITS OCTAL 1499 002320 7100 CLL /DECIMAL, ADD IN NUMBER 1500 002321 1070 TAD NUM2 1501 002322 1043 TAD WORD2 /THUS MULTIPLYING BY 5 1502 002323 3043 DCA WORD2 1503 002324 7004 RAL 1504 002325 1067 TAD NUM1 1505 002326 1042 TAD WORD1 1506 002327 3042 DCA WORD1 1507 002330 5335 JMP ADDDGT 1508 002331 1200 OCTNUM, TAD NUM 1509 002332 0157 AND [7770 /CHECK FOR 8 OR 9 1510 002333 7640 SZA CLA 1511 002334 2242 ISZ NOFLO /SET ERROR FLAG 1512 002335 4364 ADDDGT, JMS SHIFT /SHIFT LEFT 1 AGAIN, THUS 1513 002336 1043 TAD WORD2 /MULTIPLYING BY 8 OR 10 1514 002337 7100 CLL /THEN ADD IN NEW DIGIT 1515 002340 1200 TAD NUM 1516 002341 3043 DCA WORD2 1517 002342 7004 RAL 1518 002343 1042 TAD WORD1 1519 002344 3042 DCA WORD1 1520 002345 7430 SZL /BEWARE OF OVERFLO 1521 002346 2242 ISZ NOFLO 1522 002347 5304 JMP NUMLUP /LOOP 1523 002350 1364 NODGT, TAD NSWTCH /WAS THERE A NUMBER 1524 002351 7650 SNA CLA 1525 002352 2277 ISZ NUMBER /NO, SKIP 1526 002353 1042 TAD WORD1 1527 002354 0157 AND [7770 /CHECK FOR MORE THAN 15 BITS 1528 002355 7450 SNA 1529 002356 1242 TAD NOFLO /OR GROSS OVERFLOW 1530 002357 7650 SNA CLA 1531 002360 5677 JMP I NUMBER /ALL GREEN 1532 002361 4574 JMS I [ERMSG 1533 002362 1605 1605 /*NE* 1534 002363 5677 JMP I NUMBER /RETURN 1535 NOFLO= LOOKUP /ZERO IF NO ERRORS 1536 NUM= FIND 1537 NUM1= EXTMP 1538 NUM2= EXTMP2 1539 NSWTCH, /ZERO IF NO DIGITS 1540 002364 0000 SHIFT, 0 /SHIFT DOUBLE WORD LEFT 1 1541 002365 1043 TAD WORD2 1542 002366 7104 CLL RAL 1543 002367 3043 DCA WORD2 1544 002370 1042 TAD WORD1 1545 002371 7004 RAL 1546 002372 3042 DCA WORD1 1547 002373 7430 SZL /IF BIT SHIFTED FROM HI WORD, 1548 002374 2242 ISZ NOFLO /SET ERROR FLAG 1549 002375 5764 JMP I SHIFT 1550 002377 2534 PAGE 1551 / 1552 / BACK UP GETCHR POINTERS, 1553 / WE DON'T WANT THIS ONE 1554 / 1555 002400 0000 BACK1, 0 1556 002401 7240 CLA CMA /BACKUP COUNT 1557 002402 1020 TAD NCHARS 1558 002403 3020 DCA NCHARS 1559 002404 7240 CLA CMA /AND POINTER 1560 002405 1017 TAD CHRPTR 1561 002406 3017 DCA CHRPTR 1562 002407 5600 JMP I BACK1 1563 / 1564 / GET NEXT CHAR FROM LINE BUFFER 1565 / FOR ASSEMBLY PURPOSES ONLY 1566 / SKIP UNLESS END OF LINE (CR, ;, OR /) 1567 / 1568 002410 0000 GETCHR, 0 1569 002411 4226 JMS GETAC 1570 002412 2210 GETSKP, ISZ GETCHR /SKIP RETURN 1571 002413 5610 JMP I GETCHR 1572 002414 4226 BLANK, JMS GETAC /COME HERE IF BALNK OR TAB 1573 002415 1377 TAD (-257 /END OF LINE ON SLASH AFTER BLANK 1574 002416 7650 SNA CLA 1575 002417 5231 JMP GETCND 1576 002420 4200 JMS BACK1 /PUT IT BACK 1577 002421 1152 TAD [240 /AND RETURN A SINGLE BLANK 1578 002422 5212 JMP GETSKP /SKIP OUT 1579 002423 2064 SEMICL, ISZ SCSWT 1580 002424 4200 JMS BACK1 /PUT BACK SEMI COLON 1581 002425 5610 JMP I GETCHR 1582 002426 0000 GETAC, 0 1583 002427 2020 ISZ NCHARS /END OF LINE? 1584 002430 5234 JMP .+4 /NO, GET IT 1585 002431 7240 GETCND, CLA CMA /YES, RESET IN CASE OF 1586 002432 3020 DCA NCHARS /ANOTHER CALL 1587 002433 5610 JMP I GETCHR /RETURN END OF LINE 1588 002434 1417 TAD I CHRPTR /PICK UP NEXT 1589 002435 1166 TAD [-240 /CHECK FOR BLANK 1590 002436 7440 SZA 1591 002437 1376 TAD (240-211 /OR TAB 1592 002440 7450 SNA 1593 002441 5214 JMP BLANK /THEY GET SPECIAL HANDLING 1594 002442 1375 TAD (211-273 /LOOKOUT FOR SEMICOLON 1595 002443 7450 SNA 1596 002444 5223 JMP SEMICL /ALSO SPECIAL 1597 002445 1374 TAD (273-276 /IGNORE CLOSE ANGLE BRACKET 1598 002446 7450 SNA 1599 002447 5227 JMP GETAC+1 /GET ANOTHER 1600 002450 1373 TAD (276 /ELSE, RESTORE CHAR 1601 002451 5626 JMP I GETAC /AND PASS IT BACK 1602 / 1603 / COLLECT A SYMBOL IN BUCKET, NAME 1,2, & 3 1604 / NO SKIP ON RETURN IF NO SYMBOL 1605 / 1606 002452 0000 GETNAM, 0 1607 002453 3052 DCA NAME1 /CLEAR SYMBOL SPACE 1608 002454 3053 DCA NAME2 1609 002455 3054 DCA NAME3 1610 002456 4321 JMS LETTER /GET A LETTER 1611 002457 5267 JMP ISSYM 1612 002460 4210 JMS GETCHR /CHECK FOR # 1613 002461 5652 JMP I GETNAM /NOPE 1614 002462 1372 TAD (-"# 1615 002463 7650 SNA CLA 1616 002464 5267 JMP ISSYM 1617 002465 4200 JMS BACK1 1618 002466 5652 JMP I GETNAM 1619 002467 3051 ISSYM, DCA BUCKET 1620 002470 2252 ISZ GETNAM /ONE LETTER DOTH A SYMBOL MAKE 1621 002471 4312 JMS GNC /FRIENDLY LOCAL SUBR 1622 002472 4350 JMS R6L 1623 002473 3052 DCA NAME1 1624 002474 4312 JMS GNC 1625 002475 1052 TAD NAME1 1626 002476 3052 DCA NAME1 1627 002477 4312 JMS GNC 1628 002500 4350 JMS R6L 1629 002501 3053 DCA NAME2 1630 002502 4312 JMS GNC 1631 002503 1053 TAD NAME2 1632 002504 3053 DCA NAME2 1633 002505 4312 JMS GNC 1634 002506 4350 JMS R6L 1635 002507 3054 DCA NAME3 1636 002510 4312 JMS GNC /AFTER 6, WE IGNORE 1637 002511 7610 SKP CLA 1638 002512 0000 GNC, 0 1639 002513 4321 JMS LETTER 1640 002514 5712 JMP I GNC /RETTURN LETTER 1641 002515 4334 JMS DIGIT 1642 002516 5652 JMP I GETNAM /EMPTY HANDED, RETURN TO CALLER 1643 002517 1371 TAD (60 1644 002520 5712 JMP I GNC 1645 / 1646 / IF NEXT CHAR IS A LETTER, RETURN 6 BITS 1647 / IF NOT, REPLACE CHAR AND SKIP. 1648 / 1649 002521 0000 LETTER, 0 1650 002522 4210 JMS GETCHR 1651 002523 5332 JMP NLETR /NO LETTER, SKIP 1652 002524 1370 TAD (-333 1653 002525 7120 CLL CML 1654 002526 1367 TAD (33 1655 002527 7460 SZA SNL /DON'T ALLOW 300 1656 002530 5721 JMP I LETTER 1657 002531 4200 JMS BACK1 1658 002532 2321 NLETR, ISZ LETTER 1659 002533 5721 JMP I LETTER 1660 / 1661 / IF NEXT CHAR IS A DIGIT (0-9) RETURN VALUE AND SKIP 1662 / 1663 002534 0000 DIGIT, 0 1664 002535 4210 JMS GETCHR 1665 002536 5734 JMP I DIGIT 1666 002537 1366 TAD (-272 1667 002540 7100 CLL 1668 002541 1365 TAD (12 1669 002542 7420 SNL 1670 002543 5346 JMP NDIGT 1671 002544 2334 ISZ DIGIT 1672 002545 5734 JMP I DIGIT 1673 002546 4200 NDIGT, JMS BACK1 1674 002547 5734 JMP I DIGIT 1675 / 1676 002550 0000 R6L, 0 1677 002551 7106 CLL RTL 1678 002552 7006 RTL 1679 002553 7006 RTL 1680 002554 5750 JMP I R6L 1681 / 1682 002555 0000 R6R, 0 1683 002556 7012 RTR 1684 002557 7012 RTR 1685 002560 7012 RTR 1686 002561 0163 AND [77 1687 002562 5755 JMP I R6R 1688 002565 0012 PAGE 002566 7506 002567 0033 002570 7445 002571 0060 002572 7535 002573 0276 002574 7775 002575 7716 002576 0027 002577 7521 1689 / 1690 / BUILD AN INSTRUCTION 1691 / 1692 002600 0000 FIXOPC, 0 /COMBINE OPCODE PARTS 1693 002601 1047 TAD XFLAG /CHECK INDEX SWITCH 1694 002602 7650 SNA CLA 1695 002603 5216 JMP ZRONDX /IF ZERO, NO INDEX REG 1696 002604 7240 CLA CMA 1697 002605 1055 TAD LASTOP /IF INDEX, CHECK FOR INCR 1698 002606 7650 SNA CLA 1699 002607 1150 TAD [100 /YES, PUT + BIT ON 1700 002610 1046 TAD OPCODE /COMBINE WITH OPCODE 1701 002611 3046 DCA OPCODE 1702 002612 1037 TAD EXPVAL+2 /GET INDEX REG. EXPR 1703 002613 0156 AND [7 /ONLY 3 BITS 1704 002614 7106 CLL RTL /SHIFT INTO POSITION 1705 002615 7004 RAL 1706 002616 1046 ZRONDX, TAD OPCODE /ADD OPCODE 1707 002617 1377 TAD (400 /TURN ON TYPE BIT 1708 002620 3046 DCA OPCODE /SAVE OPCODE 1709 002621 5600 JMP I FIXOPC /RETURN 1710 / 1711 OPR8RS, 1712 002622 7525 -253 /PLUS 1713 002623 7523 -255 /MINUS 1714 002624 7526 -252 /STAR (MULTIPLY) ** 1715 002625 7521 -257 /SLASH (DIVIDE) 1716 002626 7532 -246 /AMPERSAND (AND) 1717 002627 7540 -240 /SPACE (OR) 1718 002630 7537 -241 /EXCLAMATION (OR) 1719 002631 0000 0 /END OF LIST 1720 / 1721 / FATAL ERRORS 1722 / 1723 002632 0000 ERMSG1, 0 /PASS 1 (FATAL) MESSAGES 1724 002633 6201 CDF 1725 002634 1632 TAD I ERMSG1 /GET CODE 1726 002635 3240 DCA .+3 1727 002636 3056 DCA PASSNO 1728 002637 4244 JMS ERMSG /DO THE MSG THING 1729 002640 0000 0 1730 IFZERO RALF < 1731 RETSYS, > 1732 002641 6041 TSF /FINISH TYPING 1733 002642 5241 JMP .-1 1734 002643 5573 JMP I [7600 /EXIT TO PS8 1735 / 1736 / GENERAL GARBAGE TYPE ERRORS 1737 / 1738 002644 0000 ERMSG, 0 1739 002645 6201 CDF FLD0 /FIX FIELD 1740 002646 7200 CLA /NO MESSAGE ON PASS 1 1741 002647 1056 TAD PASSNO 1742 002650 7540 SMA SZA /IF PASS 3, OUTPUT LEADING CRLF 1743 002651 4577 JMS I [CRLF 1744 002652 7710 SPA CLA 1745 002653 5271 JMP MSGDUN 1746 002654 1376 TAD (5555 /MINUSES 1747 002655 4576 JMS I [PRINT2 1748 002656 1644 TAD I ERMSG /2-CHAR CODE 1749 002657 4576 JMS I [PRINT2 /PRINT THE MESSAGE 1750 002660 1376 TAD (5555 1751 002661 4576 JMS I [PRINT2 1752 002662 1056 TAD PASSNO 1753 002663 7640 SZA CLA 1754 002664 5270 JMP .+4 1755 002665 4576 JMS I [PRINT2 1756 002666 4775 PLINE, JMS I (PRNTLN 1757 002667 4577 JMS I [CRLF 1758 002670 2104 ISZ ERRORS /BUMP COUNT 1759 002671 2244 MSGDUN, ISZ ERMSG 1760 002672 5644 JMP I ERMSG 1761 / 1762 / OUTPUT DECIMAL 1763 / SUPPRESS LEADING ZEROS 1764 / PRINT "NO" INSTEAD OF "0" 1765 / 1766 002673 0000 DECOUT, 0 1767 002674 7450 SNA /ZERO IS SPECIAL 1768 002675 5311 JMP DECNO /NO INSTEAD OF 0 1769 002676 3005 DCA OTEMP 1770 002677 3006 DCA OCNT 1771 002700 4314 JMS DEC2 /GET THOUSANDS 1772 002701 6030 -1750 1773 002702 4314 JMS DEC2 /HUNDREDS 1774 002703 7634 -144 1775 002704 4314 JMS DEC2 /TENS 1776 002705 7766 -12 1777 002706 1005 TAD OTEMP /UNITS (NO ZERO SUPPRESS HERE) 1778 002707 4351 JMS PDIG /PRINT LAST DIGIT 1779 002710 5673 JMP I DECOUT /EASY, WHEN YOU KNOW HOW 1780 / 1781 002711 1374 DECNO, TAD (1617 /NO 1782 002712 4576 JMS I [PRINT2 1783 002713 5673 JMP I DECOUT 1784 / 1785 / LAZY MAN'S DIVISION 1786 / 1787 002714 0000 DEC2, 0 1788 002715 6201 CDF FLD0 /JUST TO MAKE SURE 1789 002716 7300 DEC3, CLA CLL 1790 002717 1005 TAD OTEMP 1791 002720 7450 SNA 1792 002721 5330 JMP DEC4 1793 002722 1714 TAD I DEC2 /SUBTRACT DIVISOR 1794 002723 7420 SNL /TOO MUCH? 1795 002724 5330 JMP DEC4 /YES, STOP NOW 1796 002725 3005 DCA OTEMP /NO, SAVE NEW REMAIN 1797 002726 2006 ISZ OCNT /BUMP QUOTIENT 1798 002727 5316 JMP DEC3 /DO IT AGAIN 1799 002730 7200 DEC4, CLA 1800 002731 2314 ISZ DEC2 /SKIP RETURN 1801 002732 1006 TAD OCNT /CHECK FOR SIGNIFICANCE 1802 002733 7450 SNA 1803 002734 5714 JMP I DEC2 /NONE 1804 002735 4351 JMS PDIG 1805 002736 7330 CLA STL RAR /FORCE SIGNIFICANCE 1806 002737 3006 DCA OCNT 1807 002740 5714 JMP I DEC2 1808 / 1809 002741 7667 TENTH, -111 1810 002742 1463 1463;1463;1463 002743 1463 002744 1463 1811 002745 1463 1463;1463;1463 002746 1463 002747 1463 1812 002750 0001 TEN, 1 1813 002751 0000 PDIG, 0 1814 002752 1355 TAD P260 1815 002753 4505 JMS I PC 1816 002754 5751 JMP I PDIG 1817 002755 0260 P260, 260 1818 002756 0005 5 1819 / 1820 / OCTAL CONVERSION, THE HARD WAY 1821 / 1822 002757 0000 OCTOUT, 0 1823 002760 3005 DCA OTEMP 1824 002761 7130 STL RAR /NO ZERO SUPPRESS 1825 002762 3006 DCA OCNT 1826 002763 4314 JMS DEC2 1827 002764 7000 -1000 1828 002765 4314 JMS DEC2 1829 002766 7700 -100 1830 002767 4314 JMS DEC2 1831 002770 7770 -10 1832 002771 1005 TAD OTEMP 1833 002772 4351 JMS PDIG 1834 002773 5757 JMP I OCTOUT 1835 002774 1617 PAGE 002775 1400 002776 5555 002777 0400 1836 / 1837 / OUTPUT ONE WORD 1838 / 1839 IFNZRO RALF < 1840 / 1841 / TEXT TYPE CODES: 1842 TTABS= 0400 1843 TTORG= 1000 1844 TTREL= 1400 1845 / 1846 003000 3311 OUTREL, DCA WRD /HOLD FIRST WORD 1847 003001 3113 DCA LINKSW /CLEAR ABSOLUTE REF INDICATOR 1848 003002 1044 TAD FPPADR /GET ESD CODE 1849 003003 7012 RTR 1850 003004 7012 RTR /RIGHT IN AC 1851 003005 0145 AND [177 /STRIP TO ESD ONLY 1852 003006 7450 SNA /CHECK FOR ABSOLUTE 1853 003007 5232 JMP PUTABS 1854 003010 3044 DCA FPPADR /SAVE ESD 1855 003011 1056 TAD PASSNO /CHECK FOR PASS 2 1856 003012 7640 SZA CLA 1857 003013 5234 JMP PRNTRL /IF NOT, TREAT NORMALLY 1858 003014 3115 DCA ABSOP 1859 003015 7326 CLA STL RTL 1860 003016 4777 JMS I (FULCHK /ENSURE 3 WORDS LEFT 1861 003017 1044 TAD FPPADR /GET ESD AGAIN 1862 003020 1376 TAD (TTREL /INSERT CONTROL CODE 1863 003021 3415 DCA I OUTPTR 1864 003022 1311 TAD WRD /FIRST DATUM 1865 003023 3415 DCA I OUTPTR 1866 003024 1045 TAD FPPADR+1 1867 003025 3415 DCA I OUTPTR 1868 003026 4777 JMS I (FULCHK /IS IT FULL? 1869 003027 4311 JMS BMPLOC /TWO WORDS OUT 1870 003030 4311 JMS BMPLOC /SO LOCCTR +2 1871 003031 5564 JMP I [NEXTST 1872 003032 2114 PUTABS, ISZ ABREFS /COUNT IT 1873 003033 2113 ISZ LINKSW /SET FLAG 1874 003034 1311 PRNTRL, TAD WRD /GET FIRST WORD 1875 003035 4241 JMS OUTWRD 1876 003036 1045 TAD FPPADR+1 1877 003037 4241 JMS OUTWRD 1878 003040 5564 JMP I [NEXTST > 1879 / 1880 003041 0000 OUTWRD, 0 /OUTPUT ROUTINE 1881 003042 3311 DCA WRD /SAVE WORD 1882 IFZERO RALF < 1883 TAD LOCTR2 /GET LOW 12 BITS OF LOCATION 1884 JMS I [R6L 1885 AND [37 /GET PAGE NUMBER (WITHIN FIELD) 1886 DCA OTEMP /SAVE PAGE NUMBER 1887 TAD OTEMP 1888 SZA CLA /POINTER TO LITERAL POINTER 1889 IAC 1890 TAD [P0LIT 1891 DCA OWTEMP 1892 TAD LOCTR2 /GET CURRENT ADDRESS DISPLACEMENT 1893 AND [177 1894 CIA /COMPARE WITH LITERAL BOUNDARY 1895 TAD I OWTEMP 1896 SMA CLA 1897 JMP .+3 /NO PAGE OVER FLOW 1898 JMS I [ERMSG 1899 2017 /*PO*> 1900 003043 1056 TAD PASSNO /CHECK PASS 1901 003044 7440 SZA 1902 003045 5263 JMP PRNTST /ITS NOT PASS 2 1903 IFZERO RALF < 1904 TAD WRD /NOW OUTPUT WORD 1905 JMS I [R6R 1906 JMS OOCHAR 1907 TAD WRD 1908 AND [77 1909 JMS OOCHAR > 1910 IFNZRO RALF < 1911 003046 1115 TAD ABSOP /CHECK FOR ALREADY IN ABS OUTPUT 1912 003047 7640 SZA CLA 1913 003050 5257 JMP INABS /NO PROBLEM 1914 003051 7201 CLA IAC 1915 003052 4777 JMS I (FULCHK 1916 003053 1375 TAD (TTABS /SET ABS CONTROL CODE 1917 003054 3415 DCA I OUTPTR 1918 003055 1015 TAD OUTPTR /SAVE POINTER FOR FUTRUE REF 1919 003056 3115 DCA ABSOP 1920 003057 2515 INABS, ISZ I ABSOP /BUMP COUNT 1921 003060 1311 TAD WRD 1922 003061 3415 DCA I OUTPTR 1923 003062 4777 JMS I (FULCHK /GOOD!> 1924 003063 7740 PRNTST, SMA SZA CLA 1925 003064 1061 TAD LISTSW /IS LIST ON ? 1926 003065 7650 SNA CLA 1927 003066 5307 JMP ENDOUT /NO, DONT PRINT 1928 003067 4577 JMS I [CRLF /NEW LINE 1929 003070 1026 TAD LOCTR1 /PRINT LOCATION COUNTER 1930 003071 0156 AND [7 1931 003072 4774 JMS I (PDIG 1932 003073 1027 TAD LOCTR2 /NEXT FOUR DIGITS 1933 003074 4544 JMS I [OCTOUT 1934 003075 1152 TAD [240 1935 003076 4505 JMS I PC 1936 003077 1311 TAD WRD /NOW WORD 1937 003100 4544 JMS I [OCTOUT 1938 003101 1113 TAD LINKSW /LINK GENERATED ON THIS LINE? 1939 003102 7640 SZA CLA 1940 003103 1373 TAD (4700 /IF SO, GIVE APOSTROPHE SPACE 1941 003104 4576 JMS I [PRINT2 1942 003105 3113 DCA LINKSW /CLEAR SW 1943 003106 4776 JMS I (PRNTLN /PRINT LINE IF NECESSARY 1944 003107 4311 ENDOUT, JMS BMPLOC /BUMP LOC CNTR 1945 003110 5641 JMP I OUTWRD /RETURN 1946 / 1947 WRD, 1948 003111 0000 BMPLOC, 0 1949 003112 2027 ISZ LOCTR2 /BUMP LOW ORDER 1950 003113 5711 JMP I BMPLOC 1951 003114 7201 CLA IAC 1952 003115 1026 TAD LOCTR1 1953 003116 0372 AND (7767 /STOP CARRY INTO BIT 8 1954 003117 3026 DCA LOCTR1 1955 003120 5711 JMP I BMPLOC 1956 IFZERO RALF < 1957 / 1958 / PUNCH CONTROL 1959 / 1960 NOPNCX, CLA IAC 1961 ENPNCX, DCA PNCHOF 1962 JMP I [NEXTST 1963 / 1964 / OUTPUT AN ORIGIN 1965 / 1966 PUTORG, 0 1967 TAD PASSNO /CHECK FOR PASS 2 1968 SZA CLA 1969 JMP I PUTORG /ELSE FORGET IT 1970 TAD LOCTR2 /OUTPUT FIRST CHAR 1971 JMS I [R6R 1972 TAD [100 1973 JMS OOCHAR /OUTPUT CHAR 1974 TAD LOCTR2 /NOW LOWER HALF OF ORIGIN 1975 AND [77 1976 JMS OOCHAR 1977 JMP I PUTORG 1978 OWTEMP, 1979 CHAROO, 0 1980 OOCHAR, 0 /OUTPUT CHAR AND COMPUTE CHKSUM 1981 DCA CHAROO 1982 TAD PNCHOF /PUNCHING? 1983 SZA CLA 1984 JMP I OOCHAR /NOPE 1985 TAD CHAROO 1986 TAD CHKSUM 1987 DCA CHKSUM 1988 TAD CHAROO 1989 JMS I [OCHAR 1990 JMP I OOCHAR > 1991 / 1992 / BEGIN NEXT PASS 1993 / WITH APPROPRIATE THINGS RESET 1994 / TO DEFAULT VALUES 1995 / 1996 003121 4771 RESET, JMS I (IOPEN /RE-SELECT FIRST INPUT FILE 1997 003122 1116 TAD USR /EITHER 200 OR 7700 1998 003123 7710 SPA CLA /IS USR IN CORE? 1999 003124 5332 JMP .+6 /NO 2000 003125 6212 CIF 10 /YES, DISMISS IT 2001 003126 4516 JMS I USR 2002 003127 0011 11 /USROUT 2003 003130 1147 TAD [7700 2004 003131 3116 DCA USR /ITS GONE 2005 IFNZRO RALF < 2006 003132 7326 CLA STL RTL /COUNTING FROM 2, 2007 003133 3025 DCA ESDNO /RESET ESD COUNT 2008 003134 4770 JMS I (CLRSCT /ZERO ALL SECTION LENGTHS> 2009 003135 3057 DCA ASMOF /ZERO CONDITIONAL SWITCH 2010 003136 3064 DCA SCSWT /ZERO SEMICOLON SWITCH 2011 003137 1117 TAD SYONLY /IF NOT SYM MAP ONLY 2012 003140 3061 DCA LISTSW /FORCE LIST ENABLE 2013 003141 7201 CLA IAC 2014 003142 3110 DCA LPAGE1 2015 003143 3111 DCA LPAGE2 2016 003144 7240 CLA CMA 2017 003145 3112 DCA LINPAG 2018 IFZERO RALF < 2019 TAD [177 2020 DCA P0LIT /RESET LITERAL BUFFER POINTERS 2021 TAD [177 2022 DCA CPLIT 2023 TAD [200 > 2024 003146 3027 DCA LOCTR2 /LOCATION COUNTER 2025 IFNZRO RALF < 2026 003147 1367 TAD (20 > 2027 003150 3026 DCA LOCTR1 2028 003151 7130 CLL CML RAR /4000 2029 003152 3031 DCA BASER /SET BASE BEYOND BELIEF 2030 003153 3033 DCA INDXR 2031 003154 3034 DCA INDXR+1 2032 003155 3065 DCA RADIX /RESET DEFAULT OCTAL 2033 003156 3104 DCA ERRORS /ZERO ERROR COUNT 2034 003157 3114 DCA LINKS 2035 003160 2056 ISZ PASSNO /BUMP PASS NUMBER 2036 003161 5766 JMP I (NEWLIN 2037 003162 5766 JMP I (NEWLIN /DO NEXT PASS 2038 003166 0240 PAGE 003167 0020 003170 1273 003171 4203 003172 7767 003173 4700 003174 2751 003175 0400 003176 1400 003177 4600 2039 / 2040 / END OF A PASS 2041 / 2042 ENDX, IFZERO RALF < 2043 DCA PNCHOF /RE-ENABLE PUNCH> 2044 IFNZRO RALF < 2045 003200 4777 JMS I (BORG /SET MAX LEN OF CURRENT SECT> 2046 003201 1056 TAD PASSNO 2047 003202 7700 SMA CLA /WHAT PASS WAS THIS? 2048 003203 5212 JMP EOP2 /NOT THE FIRST 2049 IFNZRO RALF < 2050 003204 1376 TAD (INBUF-400 2051 003205 3775 DCA I (INBUFP /MOVE INPUT BUFFER OVER DMPESD> 2052 003206 1107 TAD BFILE 2053 003207 7650 SNA CLA 2054 003210 5217 JMP START3 /NO BINARY, START PASS 3 2055 IFZERO RALF < 2056 TAD [200 /START BIN OUT WITH L/T 2057 JMS I [OCHAR 2058 JMP I (RESET > 2059 IFNZRO RALF < 2060 003211 5774 JMP I (DMPESD /OUTPUT EXT SYM TABLE> 2061 / 2062 EOP2, IFZERO RALF < 2063 CLA IAC /DUMP CURRENT PAGE LITERALS 2064 JMS I (DMPLIT 2065 JMS I (DMPLIT /THEN DUMP PAGE 0 LITERALS> 2066 003212 1056 TAD PASSNO 2067 003213 7740 SMA SZA CLA 2068 003214 5225 JMP EOP3 /YES, PRINT SYMBOL TABLE 2069 IFZERO RALF < 2070 TAD CHKSUM /OUTPUT CHECKSUM 2071 JMS I [R6R 2072 JMS I [OCHAR 2073 TAD CHKSUM 2074 AND [77 2075 JMS I [OCHAR /LOWER HALF 2076 TAD [200 /TRAILER CHAR 2077 JMS I [OCHAR > 2078 IFNZRO RALF < 2079 003215 3415 DCA I OUTPTR /SET OUTPUT END INDICATOR> 2080 003216 4773 JMS I (OCLOSE /CLOSE THE BINARY FILE 2081 003217 3056 START3, DCA PASSNO /SKIP PASS TWO 2082 003220 4772 JMS I (OOPEN /OPEN LISTING FILE 2083 IFZERO RALF < 2084 JMP NOP3 /NO LISTING, GIVE INFO ON TTY> 2085 IFNZRO RALF < 2086 003221 5771 JMP I (RETSYS > 2087 003222 1143 TAD [OCHAR /CHANGE PRINT ROUTINE 2088 003223 3105 DCA PC 2089 003224 5770 JMP I (RESET /NO,RESET EVERYTHING 2090 / 2091 / END OF LAST PASS 2092 / GIVE SOME STATISTICS 2093 / 2094 003225 7240 EOP3, CLA CMA 2095 003226 3112 DCA LINPAG 2096 003227 4577 JMS I [CRLF 2097 003230 4767 NOP3, JMS I (7607 /READ IN OVERLAY 2098 003231 0100 0100 2099 003232 5000 OVERLY, OVBUFR 2100 003233 0040 40 /USE SYS SCRATCH BLK 2101 003234 5766 JMP I (7605 2102 003235 5632 JMP I OVERLY 2103 2104 003236 0000 CHCKMR, 0 2105 003237 1046 TAD OPCODE /BE SURE ALL REFS ARE 2106 003240 0155 AND [200 /ARE ON SAME PG 2107 003241 7640 SZA CLA 2108 003242 1027 TAD LOCTR2 2109 003243 0173 AND [7600 2110 003244 7041 CIA 2111 003245 1037 TAD EXPVAL+2 2112 003246 0173 AND [7600 2113 003247 7640 SZA CLA 2114 003250 4574 ADRERR, JMS I [ERMSG 2115 003251 0201 0201 /**BA** 2116 003252 1037 TAD EXPVAL+2 2117 003253 0145 AND [177 2118 003254 1046 TAD OPCODE 2119 003255 4560 JMS I [OUTWRD 2120 003256 5564 JMP I [NEXTST 2121 2122 003257 1263 IOERR, TAD INOP /REMOVE JMS PRNTLN 2123 003260 3765 DCA PLINE 2124 003261 4546 JMS I [ERMSG1 2125 003262 1117 1117 /**IO** 2126 003263 7000 INOP, NOP 2127 2128 003365 2666 PAGE 003366 7605 003367 7607 003370 3121 003371 3425 003372 4400 003373 4474 003374 5600 003375 4242 003376 5400 003377 3514 2129 IFZERO RALF < 2130 / ORG THINGS FOR ABSOLUTE ASSEMBLIES 2131 / 2132 TRYSTR, JMS I [GETCHR 2133 JMP I [NEXTST /WHAT CAN YOU DO? 2134 TAD (-252 /IS IT AN ORG 2135 SZA CLA 2136 JMP I (GETEXP /NO, SOME FUNNY EXPR, MAYBE 2137 ORGX, JMS I (ADRGET 2138 TAD LOCTR1 /CHECK FOR NEW FIELD 2139 CIA 2140 TAD EXPVAL+1 2141 SNA CLA 2142 JMP SAMFLD /NOT A DIFFERENT FIELD 2143 CLA IAC 2144 JMS DMPLIT /DUMP CURRENT PAGE LITERALS 2145 JMS DMPLIT /DUMP PAGE 0 LITERALS 2146 TAD EXPVAL+1 2147 AND [7 2148 DCA LOCTR1 2149 TAD PNCHOF /PUNCHING ENABLED? 2150 SNA 2151 TAD PASSNO /PASS 2? 2152 SZA CLA 2153 JMP SAMPAG /NO, DON'T OUTPUT CHANGE FIELD 2154 TAD LOCTR1 /NEW FIELD BITS 2155 RTL CLL 2156 RAL 2157 TAD (300 /TURN ON THE LEFT TWO BITS 2158 JMS I [OCHAR /PUT IT OUT (NOT IN CHECK SUM) 2159 JMP SAMPAG /DO THE SAME FOR CURRENT PAGE 2160 SAMFLD, TAD LOCTR2 2161 AND [7600 /CHECK FOR SAME PAGE 2162 DCA LTEMP 2163 TAD EXPVAL+2 2164 AND [7600 2165 CIA 2166 TAD LTEMP 2167 SNA CLA 2168 JMP SAMPAG /PAGE IS THE SAME 2169 CLA IAC 2170 JMS DMPLIT /DUMP CURRENT PAGE LITERALS 2171 SAMPAG, TAD EXPVAL+2 2172 DCA LOCTR2 2173 JMS I (PUTORG 2174 JMP I [NEXTST /DONE 2175 PAGEX, TAD LOCTR2 /ADVANCE TO NEXT PAGE 2176 CLL 2177 TAD [177 2178 AND [7600 2179 DCA EXPVAL+2 2180 RAL 2181 TAD LOCTR1 2182 DCA EXPVAL+1 2183 JMP ORGX+1 /DO ORG THINGS 2184 DMPLIT, 0 2185 DCA PAGEN /SAVE PAGE INDICATOR 2186 TAD OUTSWT /SAVE OUTPUT SWITCH 2187 DCA SWTOUT 2188 ISZ OUTSWT /DONT PRINT LINE WITH LITERALS 2189 TAD PAGEN 2190 TAD [P0LIT /GET BOUNDARY POINTER 2191 DCA LTEMP 2192 TAD PAGEN /WHICH LITERAL BUFFER ? 2193 SNA CLA 2194 TAD (P0LBUF-CPLBUF /PAGE 0 BUFFER 2195 TAD (CPLBUF /CURRENT PAGE BUFFER 2196 TAD I LTEMP /PLUS PAGE ADDRESS 2197 DCA X10 /GIVES START OF LITERALS -1 2198 TAD PAGEN 2199 SZA CLA 2200 TAD LOCTR2 /UPPER FIVE BITS OF ADDRESS 2201 AND [7600 2202 TAD I LTEMP /PLUS LOWER SEVEN 2203 IAC /PLUS ONE 2204 DCA LOCTR2 /GIVES LOCATION COUNTER 2205 TAD LOCTR2 2206 AND [177 /ANYTHING TO DUMP? 2207 SNA CLA 2208 JMP DMPFIN /NO 2209 TAD PASSNO 2210 SMA SZA CLA 2211 JMS I [CRLF /ONLY IF PASS 3 2212 JMS I (PUTORG 2213 TAD [177 /STORE SPURIOUS LITERAL BOUNDARY 2214 DCA I LTEMP /TO PREVENT FALLACIOUS *PO* MESSAGES 2215 LITLUP, TAD I X10 /NO, GET NEXT LITERAL 2216 JMS I [OUTWRD /OUTPUT WORD AND BUMP LC 2217 TAD X10 /DONE? 2218 IAC 2219 AND [77 2220 SZA CLA 2221 JMP LITLUP /LOOP 2222 DMPFIN, TAD SWTOUT /RESTORE OUTPUT SWITCH 2223 DCA OUTSWT 2224 JMP I DMPLIT /ALL DONE 2225 SWTOUT, 0 > 2226 003400 1055 EXPON, TAD LASTOP 2227 003401 3224 DCA TMP 2228 003402 3055 DCA LASTOP 2229 003403 4777 JMS I (GETSGN /GET SIGN OF EXPONENT 2230 003404 1065 TAD RADIX 2231 003405 3005 DCA OTEMP 2232 003406 2065 ISZ RADIX /SET RADIX TO DECIMAL 2233 003407 4776 JMS I (NUMBER /GET EXPONENT 2234 003410 7000 NOP 2235 003411 1005 TAD OTEMP 2236 003412 3065 DCA RADIX /RESTORE RADIX 2237 003413 1224 TAD TMP 2238 003414 7110 CLL RAR 2239 003415 1055 TAD LASTOP 2240 003416 7010 RAR /LASTOP TO LINK, 2241 003417 3055 DCA LASTOP /TMP TO SIGN OF LASTOP 2242 003420 1043 TAD WORD2 2243 003421 7430 SZL 2244 003422 7041 CIA /PUT SIGN ON EXP 2245 003423 5775 JMP I (OVER 2246 003424 0000 TMP, 0 2247 IFZERO RALF < PAGE / > 2248 IFNZRO RALF < 2249 / 2250 / IF ALL CONDITIONS ARE RIGHT, CALL THE LOADER 2251 / 2252 003425 4774 RETSYS, JMS I (DELFIL /THIS LOCATION USED BY INIT CODE 2253 /MAY BE ZEROED BY IT. USED TO DELETE F4 OUTPUT FILE WHEN CHAINING 2254 /FROM COMPILER + OUTPUT DEV IS NOT SYS 2255 003426 6211 CDF 10 2256 003427 1373 TAD (7604 /POINT TO 2ND OUT FILE THING 2257 003430 3011 DCA X11 2258 003431 1372 TAD (7611 /POINTER TO 3RD 2259 003432 3010 DCA X10 2260 003433 1371 TAD (-5 /LENGTH OF SUCH THINGS 2261 003434 3066 DCA LTEMP 2262 003435 1410 TAD I X10 /MOVE 3RD TO 2ND 2263 003436 3411 DCA I X11 /FOR LOADER MAP FILE 2264 003437 2066 ISZ LTEMP 2265 003440 5235 JMP .-3 2266 003441 1573 TAD I [7600 /WAS THERE A FIRST OUT FILE 2267 003442 0120 AND NP17 /(BINARY OUT)* 2268 003443 3066 DCA LTEMP 2269 003444 1272 TAD OUTBLK /GET FILE LENGTH 2270 003445 0370 AND (377 2271 003446 7106 CLL RTL 2272 003447 7006 RTL 2273 003450 7041 CIA 2274 003451 1066 TAD LTEMP /COMBINE UNIT AND LEN 2275 003452 3410 DCA I X10 /FOR FIRST INPUT FILE TO LOADER 2276 003453 1270 TAD PASBLK /STARTING BLOCK 2277 003454 3410 DCA I X10 2278 003455 3410 DCA I X10 /THAT'S THE END OF INPUT 2279 003456 6201 CDF 0 2280 003457 1104 TAD ERRORS /IF NO ERRORS 2281 003460 7650 SNA CLA 2282 003461 2271 ISZ CHNSW /SHOULD WE CHAIN? 2283 003462 5767 JMP I (7605 /NO!!! 2284 003463 2766 ISZ I (7746 /** 2285 003464 6212 CIF 10 2286 003465 4516 JMS I USR 2287 003466 0006 6 /CHAIN 2288 003467 0000 LDRBLK, 0 /FIRST BLOCK OF LOADER 2289 / 2290 003470 0000 PASBLK, 0 /FIRST BLOCK OF FILE PASSED 2291 003471 0000 CHNSW, 0 /-1 TO ENABLE CHAIN LOADER 2292 / 2293 / OUTPUT A BLOCK OF BINARY 2294 / 2295 003472 0000 OUTBLK, 0 /AT END OF PASS2, BECOMES 2296 /LENGTH OF BINARY FILE 2297 003473 1365 TAD (OUCTL /DEV HNDLR CONTROL WORD 2298 003474 4764 JMS I (OUTDMP /CALL THE HANDLER 2299 003475 1301 TAD MOUBUF 2300 003476 3015 DCA OUTPTR /RESET BUFFER POINTER 2301 003477 3115 DCA ABSOP /FORCE NEW ABS OUTPUT CONTROL 2302 003500 5672 JMP I OUTBLK 2303 003501 6377 MOUBUF, OUBUF-1 2304 / 2305 003502 2500 TYPCOD, 2500 /UNDEFINED 2306 003503 0000 0000 /ADDRESS 2307 003504 3000 3000 /XTERNAL 2308 003505 0300 0300 /COMMON 2309 003506 2300 2300 /SECTION 2310 003507 7777 -1 /? 2311 003510 7777 -1 /? 2312 003511 7000 7000 /8-M0DE SECTION 2313 003512 3200 3200 /8-MODE PAGE0 COMMON SECTION 2314 003513 0600 0600 /8-MODE FIELD1 SECTION 2315 003514 0000 BORG, 0 2316 003515 6201 CDF FLD0 2317 003516 1026 TAD LOCTR1 2318 003517 7012 RTR 2319 003520 7012 RTR 2320 003521 0145 AND [177 2321 003522 1363 TAD (ESDBUF-1 /POINT INTO ESD TABLE 2322 003523 3066 DCA LTEMP 2323 003524 1466 TAD I LTEMP 2324 003525 1362 TAD (4 /ADDRESS VALUE 2325 003526 3066 DCA LTEMP 2326 003527 6211 CDF FLD1 2327 003530 1026 TAD LOCTR1 2328 003531 0156 AND [7 /GET ADDR BITS ONLY 2329 003532 3067 DCA BOTMP /SAVE EM 2330 003533 1466 TAD I LTEMP /OLD HIGH VALUE BITS 2331 003534 0156 AND [7 2332 003535 7041 CIA 2333 003536 1067 TAD BOTMP /COMPARE THEM 2334 003537 7510 SPA 2335 003540 5357 JMP BOXIT /NO UPDATE REQUIRED 2336 003541 7650 SNA CLA 2337 003542 5347 JMP BOCHKL /NO DIFFERENCE YET 2338 003543 1026 TAD LOCTR1 2339 003544 3466 DCA I LTEMP /RESET TO NEW HIGH 2340 003545 2066 ISZ LTEMP 2341 003546 5355 JMP BOSETL /SKIP OVER TEST 2342 003547 2066 BOCHKL, ISZ LTEMP /POINT TO LO-ORDER 2343 003550 1466 TAD I LTEMP 2344 003551 7141 CIA CLL 2345 003552 1027 TAD LOCTR2 /COMPARE LOW ORDERS 2346 003553 7620 SNL CLA 2347 003554 5357 JMP BOXIT /NO REPLACE 2348 003555 1027 BOSETL, TAD LOCTR2 2349 003556 3466 DCA I LTEMP 2350 003557 7200 BOXIT, CLA 2351 003560 6201 CDF FLD0 2352 003561 5714 JMP I BORG /WHEW! 2353 BOTMP= EXTMP 2354 003562 0004 PAGE 003563 5177 003564 4444 003565 4200 003566 7746 003567 7605 003570 0377 003571 7773 003572 7611 003573 7604 003574 1350 003575 4677 003576 2277 003577 4617 2355 003600 0000 NEWESD, 0 2356 003601 1025 TAD ESDNO 2357 003602 1377 TAD (-177 /CHECK LIMIT 2358 003603 7710 SPA CLA 2359 003604 5207 JMP .+3 2360 003605 4546 JMS I [ERMSG1 /TOO MANY 2361 003606 3023 3023 /*XS* 2362 003607 2025 ISZ ESDNO /BUMP COUNT 2363 003610 1056 TAD PASSNO /DON'T CHANGE TABLE AFTER PASS 1 2364 003611 7700 SMA CLA 2365 003612 5600 JMP I NEWESD 2366 003613 1025 TAD ESDNO 2367 003614 1376 TAD (ESDBUF-1 /INDEX BUFFER 2368 003615 3067 DCA ESDTMP 2369 003616 6211 CDF FLD1 2370 003617 1404 TAD I OLDN3 /GET POINTER TO THIS SYMBOL 2371 003620 6201 CDF FLD0 2372 003621 3467 DCA I ESDTMP 2373 003622 1067 TAD ESDTMP 2374 003623 1155 TAD [200 2375 003624 3067 DCA ESDTMP /NOW ADDRESS CHAR TABLE 2376 003625 1051 TAD BUCKET 2377 003626 3467 DCA I ESDTMP 2378 003627 5600 JMP I NEWESD 2379 ESDTMP= EXTMP 2380 / 2381 / RELOCATION CONTROL PSEUDO-OPS 2382 / 2383 003630 4570 ENTRX, JMS I [GETNAM /NAME OF ENTRY POINT 2384 003631 5256 JMP ESDERR 2385 003632 4567 JMS I [LOOKUP /FIND IT 2386 003633 5242 JMP QENT /UNDEFINED 2387 003634 7110 CLL RAR /MUST BE USER ADDR TYPE 2388 003635 7650 SNA CLA 2389 003636 1410 TAD I X10 /LOOK AT ESD 2390 003637 0157 AND [7770 2391 003640 7640 SZA CLA /IS IT RELOCATABLE? 2392 003641 5244 JMP OKENT /YES 2393 003642 4574 QENT, JMS I [ERMSG /NO MESSAGE ON PASS 1 2394 003643 1105 1105 /*IE* 2395 003644 4200 OKENT, JMS NEWESD /CREATE AN ENTRY FOR IT 2396 003645 5564 JMP I [NEXTST 2397 / 2398 003646 7326 EXTRNX, CLA STL RTL 2399 003647 3024 DCA STYPE /EXTERNS ARE TYPE 2 2400 003650 4570 JMS I [GETNAM 2401 003651 5256 JMP ESDERR 2402 003652 4567 JMS I [LOOKUP 2403 003653 4301 JMS CRESD /IF UNDEFINED, DEFINE IT 2404 003654 7112 CLL RTR /IF DEFINED, CHECK LEGALITY 2405 003655 7640 SZA CLA 2406 003656 4574 ESDERR, JMS I [ERMSG 2407 003657 0523 0523 /*ES* 2408 003660 5564 JMP I [NEXTST 2409 / 2410 003661 7201 CLA IAC /FIELD1 SECT=11 2411 003662 7001 IAC /COMMZ SECT=10 2412 003663 1156 SECT8X, TAD [7 2413 003664 5267 JMP COMMX+1 2414 003665 7201 SECTX, CLA IAC 2415 003666 1375 COMMX, TAD (COMMN /GET DESIRED CODE 2416 003667 3024 DCA STYPE /FOR SECTION TYPE 2417 003670 4570 JMS I [GETNAM 2418 003671 3051 DCA BUCKET /IF NO NAME, BLANK COMMON 2419 003672 4567 JMS I [LOOKUP 2420 003673 5317 JMP NEWSCT /UNDEFINED 2421 003674 7041 CIA /OLD FRIEND 2422 003675 1024 TAD STYPE /SAME? 2423 003676 7650 SNA CLA 2424 003677 5320 JMP SETSCT /YUP, DO IT 2425 003700 5256 JMP ESDERR 2426 / 2427 003701 0000 CRESD, 0 2428 003702 4200 JMS NEWESD /CREATE NEW ESD ENTRY 2429 003703 6211 CDF FLD1 2430 003704 1466 TAD I LTEMP /SET TYPE CODE 2431 003705 0147 AND [7700 2432 003706 1024 TAD STYPE 2433 003707 3466 DCA I LTEMP 2434 003710 2066 ISZ LTEMP 2435 003711 1025 TAD ESDNO 2436 003712 7106 CLL RTL /ESD NO TO SYMBOL VLAUE 2437 003713 7006 RTL 2438 003714 3466 DCA I LTEMP 2439 003715 6201 CDF FLD0 2440 003716 5701 JMP I CRESD 2441 / 2442 003717 4301 NEWSCT, JMS CRESD /CREATE AN ESD 2443 003720 4774 SETSCT, JMS I (BORG /ADJUST LOC CTR'S 2444 003721 6211 CDF FLD1 2445 003722 1410 TAD I X10 /GET NEW LOC CTR VALUE 2446 003723 3026 DCA LOCTR1 2447 003724 1410 TAD I X10 2448 003725 3027 DCA LOCTR2 /LOW LOC CTR 2449 003726 6201 CDF FLD0 2450 003727 5343 JMP PUTORG 2451 / 2452 003730 4773 ORGX, JMS I (ADRGET /GET ORG EXPR 2453 003731 4774 JMS I (BORG 2454 003732 1036 TAD EXPVAL+1 2455 003733 0157 AND [7770 /DOES IT HAVE AN ESD? 2456 003734 7650 SNA CLA 2457 003735 1026 TAD LOCTR1 /IF NOT, KEEP CURRENT ESD 2458 003736 0157 AND [7770 2459 003737 1036 TAD EXPVAL+1 2460 003740 3026 DCA LOCTR1 /RESET PC 2461 003741 1037 TAD EXPVAL+2 2462 003742 3027 DCA LOCTR2 2463 003743 1056 PUTORG, TAD PASSNO /OUTPUT ON PASS 2 ONLY 2464 003744 7640 SZA CLA 2465 003745 5564 JMP I [NEXTST 2466 003746 3115 DCA ABSOP /CLEAR ABS OUTPUT SW 2467 003747 7326 CLA STL RTL 2468 003750 4772 JMS I (FULCHK /ROOM FOR MORE? 2469 003751 1026 TAD LOCTR1 2470 003752 7012 RTR 2471 003753 7012 RTR /GET ESD 2472 003754 0145 AND [177 2473 003755 1371 TAD (TTORG 2474 003756 3415 DCA I OUTPTR 2475 003757 1026 TAD LOCTR1 2476 003760 0156 AND [7 /FIELD BITS 2477 003761 3415 DCA I OUTPTR 2478 003762 1027 TAD LOCTR2 /ADDRESS 2479 003763 3415 DCA I OUTPTR 2480 003764 4772 JMS I (FULCHK 2481 003765 5564 JMP I [NEXTST 2482 003771 1000 PAGE /> 003772 4600 003773 1210 003774 3514 003775 0003 003776 5177 003777 7601 2483 / 2484 / VARIOUS PSEUDO-OP HANDLERS 2485 / 2486 004000 1117 LSTONX, TAD SYONLY /ENABLE LISTING UNLESS SYM MAP ONLY 2487 004001 3061 LSTOFX, DCA LISTSW 2488 004002 5564 JMP I [NEXTST 2489 / 2490 004003 7201 DECX, CLA IAC 2491 004004 3065 OCTALX, DCA RADIX 2492 004005 5564 JMP I [NEXTST 2493 / 2494 004006 4575 TEXTX, JMS I [GETCHR /GET DELIMITER 2495 004007 5564 JMP I [NEXTST /NULL STMT 2496 004010 7041 CIA 2497 004011 3067 DCA EXTMP /SAVE - DELIM 2498 004012 4226 LOOP6B, JMS GETCHT /GET HIG ORDER CHAR 2499 004013 5564 JMP I [NEXTST 2500 004014 4562 JMS I [R6L /SHIFT IT UP 2501 004015 3066 DCA LTEMP /SAVE HALF 2502 004016 4226 JMS GETCHT /GET LOWER CHAR 2503 004017 5223 JMP OUTTXT /GO PUT LAST 2504 004020 1066 TAD LTEMP /PUT 2 CHARS TOGETHER 2505 004021 4560 JMS I [OUTWRD /OUTPUT WORD 2506 004022 5212 JMP LOOP6B /LOOP 2507 004023 1066 OUTTXT, TAD LTEMP /PUT OUT HALF WORD 2508 004024 4560 JMS I [OUTWRD /OR ZERO WORD 2509 004025 5564 JMP I [NEXTST 2510 004026 0000 GETCHT, 0 /GET CHAR FOR TEXT STMT 2511 004027 2020 ISZ NCHARS /BUMP COUNT 2512 004030 7410 SKP 2513 004031 5626 JMP I GETCHT /END OF TEXT 2514 004032 1417 TAD I CHRPTR /GET CHAR 2515 004033 3051 DCA BUCKET /SAVE IT 2516 004034 1051 TAD BUCKET /IS IT THE DELIM ? 2517 004035 1067 TAD EXTMP 2518 004036 7650 SNA CLA 2519 004037 5626 JMP I GETCHT /YES, RETURN NO SKIP 2520 004040 2226 ISZ GETCHT /BUMP RETURN 2521 004041 1051 TAD BUCKET /GET CHAR 2522 004042 0163 AND [77 /LOW 6 BITS 2523 004043 5626 JMP I GETCHT /RETURN 2524 / 2525 / CONDITIONAL ASSEMBLY HANDLERS 2526 / 2527 004044 7240 IFNZRX, CLA CMA 2528 004045 4272 IFZROX, JMS GETCON /GET CONDITION EXPR 2529 004046 1036 TAD EXPVAL+1 /HIGH ORDER 2530 004047 0156 AND [7 2531 004050 7450 SNA 2532 004051 1037 TAD EXPVAL+2 /LOW ORDER 2533 004052 7650 SWTCH, SNA CLA 2534 004053 5257 JMP TRUE /PRESENT CONDITION OF ASMOF IS OK 2535 004054 1057 FALSE, TAD ASMOF /GOTTA REVERSE IT 2536 004055 7040 CMA 2537 004056 3057 DCA ASMOF /THAT DOES IT 2538 004057 6201 TRUE, CDF FLD0 2539 004060 4575 JMS I [GETCHR 2540 004061 5276 JMP BADCND /FORGOT THE ANGLE 2541 004062 1166 TAD [-240 /IGNORE BLANK, IF ANY 2542 004063 7450 SNA 2543 004064 5257 JMP TRUE /TRY AGAIN 2544 004065 1377 TAD (240-274 2545 004066 7650 SNA CLA 2546 004067 5776 JMP I (ASMBL /GO FROM HERE 2547 004070 4571 JMS I [BACK1 /LET SOMEONE ELSE WORRY ABOUT IT 2548 004071 5276 JMP BADCND 2549 / 2550 004072 0000 GETCON, 0 2551 004073 3057 DCA ASMOF /SET INITIAL TRUTH 2552 004074 4565 JMS I [EXPR /COLLECT EXPR 2553 004075 5302 JMP OKCND /BAD MAY MEAN GOOD 2554 004076 4574 BADCND, JMS I [ERMSG /BUT GOOD MEANS BAD 2555 004077 1103 1103 /*IC* 2556 004100 3057 DCA ASMOF /ENABLE ASSEMBLY 2557 004101 5776 JMP I (ASMBL 2558 004102 1041 OKCND, TAD EXPSW /WAS THERE AN EXPR, AT LEAST? 2559 004103 7650 SNA CLA 2560 004104 5672 JMP I GETCON /YES 2561 004105 5276 JMP BADCND 2562 / 2563 004106 7240 IFNEGX, CLA CMA 2564 004107 4272 IFPOSX, JMS GETCON 2565 004110 7307 CLA CLL IAC RTL /4 2566 004111 0036 AND EXPVAL+1 /SIGN OF EXPR 2567 004112 5252 JMP SWTCH /GO FROM THERE 2568 / 2569 004113 7240 IFNDFX, CLA CMA 2570 004114 3057 IFREFX, DCA ASMOF 2571 004115 4570 JMS I [GETNAM /GET SYMBOL NAME 2572 004116 5276 JMP BADCND /GOTTA GIVE SOMETHING 2573 004117 4561 JMS I [FIND /IS IT KNOWN TO US? 2574 004120 5254 JMP FALSE /NOT REFERENCED YET 2575 004121 7650 SNA CLA /SKIP IF DEFINED 2576 004122 3057 DCA ASMOF /ELSE ASSEMBLE 2577 004123 5257 JMP TRUE 2578 004124 7240 IFSWX, CLA CMA 2579 004125 3057 IFNSWX, DCA ASMOF 2580 004126 1375 TAD (7642 /ADDRESS OF OPTION WORDS 2581 004127 3043 DCA WORD2 /A TEMP 2582 004130 4774 JMS I (LETTER /ALLOW LETTER 2583 004131 5335 JMP .+4 /AC BETWEEN 1 AND 32 2584 004132 4773 JMS I (DIGIT /OR NUMBER 2585 004133 5276 JMP BADCND /ALL ELSE IS BAD 2586 004134 1372 TAD (33 /MAKE 0 = Z+1 2587 004135 2043 ISZ WORD2 /BUMP POINTER 2588 004136 1371 TAD (-14 /IS IT IN THIS WORD? 2589 004137 7540 SMA SZA 2590 004140 5335 JMP .-3 /NO, POINT TO NEXT 2591 004141 7041 CIA 2592 004142 7160 CMA STL /BIT COUNT AWAY FROM LINK 2593 004143 3042 DCA WORD1 2594 004144 7004 RAL /SHIFT 2595 004145 2042 ISZ WORD1 /COUNT 2596 004146 5344 JMP .-2 2597 004147 6211 CDF 10 /OPTIONS FIELD 2598 004150 0443 AND I WORD2 /GET SELECTED BIT 2599 004151 5252 JMP SWTCH /AND TEST IT 2600 / 2601 004152 4770 ZBLKX, JMS I (ADRGET /EVALUATE EXPR 2602 004153 1037 TAD EXPVAL+2 2603 004154 7041 CIA 2604 004155 3067 DCA ZBCNT /HOLD COUNT 2605 004156 1061 TAD LISTSW /SAVE LISTSWITCH 2606 004157 3070 DCA ZBTMP 2607 004160 4560 JMS I [OUTWRD /PUT A WORD 2608 004161 3061 DCA LISTSW /NO LIST AFTER FIRST 2609 004162 2067 ISZ ZBCNT /COUNT THEM 2610 004163 5360 JMP .-3 /MORE 2611 004164 1070 TAD ZBTMP /RESTORE 2612 004165 3061 DCA LISTSW /LISTING 2613 004166 5564 JMP I [NEXTST 2614 ZBCNT= EXTMP 2615 ZBTMP= EXTMP2 2616 004170 1210 PAGE 004171 7764 004172 0033 004173 2534 004174 2521 004175 7642 004176 0310 004177 7744 2617 PTP=20 2618 DCB=7760 2619 INFLD=INCTL&70 /GET FIELD OF INPUT BUFFER 2620 OUFLD=OUCTL&70 /DITTO OUTPUT BUFFER 2621 004200 7400 IN7400, 7400 2622 004201 0401 NINCTL, INCTL+1 2623 004202 0002 NINREC, INRECS 2624 004203 0000 IOPEN, 0 2625 004204 1377 TAD (7617 2626 004205 3322 DCA INFPTR /RESET FILE POINTER 2627 004206 4324 JMS INNEWF /FETCH NEW HNDLR, ETC 2628 /WHILE USR IS STILL IN CORE 2629 004207 7240 CLA CMA 2630 004210 3324 DCA INCHCT /FORCE A READ ON NEXT CHAR 2631 004211 5603 JMP I IOPEN 2632 004212 0000 ICHAR, 0 2633 004213 7600 IN7600, 7600 2634 004214 6201 INCHAR, CDF INFLD 2635 004215 2270 ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH 2636 004216 2324 ISZ INCHCT 2637 004217 5270 INJMPP, JMP INJMP 2638 004220 1323 TAD INEOF 2639 004221 7640 SZA CLA /DID LAST READ GIVE EOF ? 2640 004222 4324 GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE 2641 004223 1360 TAD INCTR 2642 004224 7100 CLL 2643 004225 1202 TAD NINREC 2644 004226 7420 SNL 2645 004227 3360 DCA INCTR /RESTORE INCR IF NOT OVERFLOWED 2646 004230 7430 SZL /IS THIS THE LAST READ? 2647 004231 2323 ISZ INEOF /YES - SET END-OF-FILE FLAG 2648 004232 7172 CLL CML CMA RTR /MAKE CONTROL WORD 2649 004233 7012 RTR /FROM THE AMOUNT OF THE OVERFLOW 2650 004234 7012 RTR /(IF ANY) AND THE STANDARD CNTRL WD 2651 004235 1201 TAD NINCTL 2652 004236 3241 DCA INCTLW 2653 004237 6201 CDF 2654 004240 4737 JMS I INHNDL /CALL THE DEVICE HANDLER 2655 004241 0000 INCTLW, 0 2656 004242 6000 INBUFP, INBUF 2657 004243 0000 INREC, 0 2658 004244 5264 JMP INERRX /SOME KIND OF HANDLER ERROR 2659 004245 1243 INBREC, TAD INREC 2660 004246 1202 TAD NINREC 2661 004247 3243 DCA INREC /UPDATE THE RECORD NUMBER 2662 004250 1241 TAD INCTLW 2663 004251 0213 AND IN7600 2664 004252 7104 CLL RAL 2665 004253 1241 TAD INCTLW 2666 004254 0213 AND IN7600 2667 004255 7040 CMA 2668 004256 3324 DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT 2669 004257 1217 TAD INJMPP 2670 004260 3270 DCA INJMP /RESET THE CHARACTER SWITCH 2671 004261 1242 TAD INBUFP 2672 004262 3361 DCA INPTR /AND THE WORD POINTER 2673 004263 5214 JMP INCHAR /MAKE BELIEVE THIS NEVER HAPPENED 2674 004264 2323 INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A BADDIE 2675 004265 7700 SMA CLA /WHICH TYPE WAS IT ? 2676 004266 5245 JMP INBREC /END OF FILE - RESUME PROCESSING 2677 004267 5542 JMP I [IOERR /BADDIE, GIVE ERROR MESSAGE 2678 004270 7402 INJMP, HLT /THIS IS THE 3 WAY CHARACTER SWITCH 2679 004271 5312 JMP ICHAR1 2680 004272 5306 JMP ICHAR2 2681 004273 1217 TAD INJMPP 2682 004274 3270 DCA INJMP 2683 004275 1761 TAD I INPTR 2684 004276 0200 AND IN7400 2685 004277 7112 CLL RTR 2686 004300 7012 RTR /COMBINE HIGH-ORDER FOUR BITS OF 2687 004301 1241 TAD INCTLW 2688 004302 7012 RTR /THE 2 WORD TO FORM THE 3RD CHAR 2689 004303 7012 RTR 2690 004304 2361 ISZ INPTR 2691 004305 5313 JMP INCOMN 2692 004306 1761 ICHAR2, TAD I INPTR 2693 004307 0200 AND IN7400 2694 004310 3241 DCA INCTLW /SAVE THE HI ORDER BITS FOR THE 3RD 2695 004311 2361 ISZ INPTR /BUMP THE WORD POINTER 2696 004312 1761 ICHAR1, TAD I INPTR 2697 004313 0376 INCOMN, AND (377 2698 004314 1375 TAD (-232 2699 004315 7450 SNA /IS THE CHARACTER A ^Z? 2700 004316 5222 JMP GETNEW /YES - GET A NEW FILE 2701 004317 1374 TAD (232 /RESTORE THE CHARACTER 2702 004320 6201 CDF 2703 004321 5612 JMP I ICHAR /AND RETURN 2704 004322 7617 INFPTR, 7617 2705 004323 0001 INEOF, 1 /PARAMETERS ARE SET UP SO THAT 2706 INCHCT, /IOPEN IS UNNECESSARY. 2707 004324 7777 INNEWF, -1 2708 004325 1366 TAD NINDEV 2709 004326 3337 DCA INHNDL /INITIALIZE HANDLER ADDRESS 2710 004327 6211 CDF 10 2711 004330 1722 TAD I INFPTR /GET NEXT CD INPUT FILE ENTRY 2712 004331 6201 CDF 2713 004332 7450 SNA /ANY MORE? 2714 004333 5773 JMP I (ENDX /NO MORE INPUT 2715 004334 6212 CIF 10 2716 004335 4516 JMS I USR 2717 004336 0001 1 /ASSIGN, FETCH HANDLER 2718 004337 0000 INHNDL, 0 2719 004340 5542 JMP I [IOERR /HUH? 2720 004341 6211 CDF 10 2721 004342 1722 TAD I INFPTR 2722 004343 0372 AND (7760 /GET LENGTH PART OF WORD 2723 004344 7440 SZA /LENGTH OF 0 MEANS LENGTH GE 256 2724 004345 1172 TAD [17 /ADD HIGH ORDER BITS 2725 004346 7132 CLL CML RTR 2726 004347 7012 RTR 2727 004350 3360 DCA INCTR /STORE LENGTH OF FILE 2728 004351 2322 ISZ INFPTR 2729 004352 1722 TAD I INFPTR 2730 004353 6201 CDF 2731 004354 3243 DCA INREC /STARTING RECORD NUMBER OF FILE 2732 004355 2322 ISZ INFPTR 2733 004356 3323 DCA INEOF /ZERO END-OF-FILE FLAG 2734 004357 5724 JMP I INNEWF 2735 004360 0000 INCTR, 0 2736 004361 0000 INPTR, 0 2737 004362 0000 OUFNAM, 0;0;0;0 /OUTPUT FILE NAME 004363 0000 004364 0000 004365 0000 2738 004366 7200 NINDEV, INDEVH 2739 004372 7760 PAGE 004373 3200 004374 0232 004375 7546 004376 0377 004377 7617 2740 004400 0000 OOPEN, 0 2741 004401 1106 TAD OUFILE /INCR OUTPUT FILE POINTER 2742 004402 1377 TAD (5 2743 004403 3106 DCA OUFILE 2744 004404 6211 CDF 10 2745 004405 1506 TAD I OUFILE /GET DEVICE CODE, LEN 2746 004406 3233 DCA OUELEN /HOLD IT A MO 2747 004407 4776 JMS I (OFNAME /GET FILE NAME INTO FIELD 0 2748 004410 1233 TAD OUELEN /CHECK FOR NULL FILE 2749 004411 7650 SNA CLA 2750 004412 5242 JMP ONOFIL /INHIBIT OUTPUT 2751 004413 4344 JMS GETUSR /LOAD USR IF NOT ALREADY IN 2752 004414 1337 TAD OUNAME /RESET ENTER CALL 2753 004415 3232 DCA OUBLK 2754 004416 1343 TAD NOUDEV 2755 004417 3224 DCA OUHNDL 2756 004420 1233 TAD OUELEN /THE UNIT 2757 004421 6212 CIF 10 2758 004422 4516 JMS I USR 2759 004423 0001 1 /ASSIGN, FETCH HANDLER 2760 004424 0000 OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY 2761 004425 5542 JMP I [IOERR /HUH? 2762 004426 1233 TAD OUELEN /UNIT AGAIN 2763 004427 6212 CIF 10 2764 004430 4516 JMS I USR 2765 004431 0003 3 /ENTER OUTPUT FILE 2766 004432 4362 OUBLK, OUFNAM /REPLACED WITH STARTING BLOCK 2767 004433 0000 OUELEN, 0 /REPLACED WITH LENGTH OF HOLE 2768 004434 5542 JMP I [IOERR /YOU BLEW IT!!! 2769 004435 3340 DCA OUCCNT 2770 004436 3775 DCA I (OUTINH /ZERO OUTPUT INHIBIT FLAG 2771 004437 4774 JMS I (OUSETP 2772 004440 2200 ISZ OOPEN 2773 004441 5600 JMP I OOPEN 2774 004442 2775 ONOFIL, ISZ I (OUTINH 2775 004443 5600 JMP I OOPEN 2776 004444 0000 OUTDMP, 0 2777 004445 3267 DCA OUCTLW /STORE THE CONTROL WORD 2778 004446 1340 TAD OUCCNT 2779 004447 7450 SNA 2780 004450 2267 ISZ OUCTLW 2781 004451 1232 TAD OUBLK 2782 004452 3271 DCA OUREC /COMPUTE STARTING BLOCK 2783 004453 1267 TAD OUCTLW 2784 004454 4562 JMS I [R6L 2785 004455 0172 AND [17 /COMPUTE THE NUMBER OF RECORDS 2786 004456 1340 TAD OUCCNT /UPDATE SIZE OF FILE 2787 004457 3340 DCA OUCCNT 2788 004460 1340 TAD OUCCNT 2789 004461 7120 CLL CML 2790 004462 1233 TAD OUELEN 2791 004463 7660 SNL SZA CLA /EXCEED GIVEN LENGTH ? 2792 004464 5542 JMP I [IOERR /YES - ERROR 2793 004465 6201 CDF 2794 004466 4624 JMS I OUHNDL 2795 004467 0000 OUCTLW, 0 2796 004470 6400 LOUBUF, OUBUF 2797 004471 0000 OUREC, 0 2798 004472 5542 JMP I [IOERR 2799 004473 5644 JMP I OUTDMP 2800 004474 0000 OCLOSE, 0 2801 004475 4344 JMS GETUSR /ENSURE USR IN CORE 2802 IFNZRO RALF < 2803 004476 1056 TAD PASSNO 2804 004477 7640 SZA CLA 2805 004500 5306 JMP .+6 2806 004501 1373 TAD (377 2807 004502 4772 JMS I (FULCHK /DUMP LAST BLOCK 2808 004503 1340 TAD OUCCNT /SAVE FILE LENGTH 2809 004504 3771 DCA I (OUTBLK /FOR CHAIN 2810 004505 5332 JMP NODUMP > 2811 004506 4770 JMS I (OTYPE 2812 004507 0367 AND (770 2813 004510 1366 TAD (-PTP /CHECK FOR PAPER TAPE PUNCH OUTPUT 2814 004511 7640 SZA CLA /AND SKIP ^Z OUTPUT IF TRUE 2815 004512 1365 TAD (232 /OUTPUT A ^Z 2816 004513 4543 JMS I [OCHAR 2817 004514 4543 FILLLP, JMS I [OCHAR 2818 004515 4770 JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE 2819 004516 7710 SPA CLA 2820 004517 1150 TAD [100 2821 004520 1163 TAD [77 2822 004521 0764 AND I (OUDWCT 2823 004522 7640 SZA CLA /UP TO THE BOUNDARY YET? 2824 004523 5314 JMP FILLLP /NO - FILL WITH ZEROS 2825 004524 1764 TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT 2826 004525 1363 TAD (OUCTL&3700 2827 004526 7450 SNA /A FULL WRITE LEFT? 2828 004527 5332 JMP NODUMP /YES DON'T DO IT 2829 004530 1362 TAD (4000+OUFLD /PUT IN FIELD AND WRITE BITS 2830 004531 4244 JMS OUTDMP 2831 004532 6213 NODUMP, CIF CDF 10 2832 004533 1506 TAD I OUFILE 2833 004534 6201 CDF 2834 004535 4516 JMS I USR 2835 004536 0004 4 /CLOSE THE OUTPUT FILE 2836 004537 4362 OUNAME, OUFNAM /POINTER TO OUTPUT FILE NAME 2837 004540 0000 OUCCNT, 0 2838 004541 5542 JMP I [IOERR /ERROR WHILE CLOSING - BAD!! 2839 004542 5674 JMP I OCLOSE /ALL DONE 2840 004543 7400 NOUDEV, OUDEVH 2841 / 2842 / LOAD USR IF NOT IN CORE ALREADY 2843 / 2844 004544 0000 GETUSR, 0 2845 004545 1116 TAD USR /CURRENT CALL ADDR 2846 004546 7700 SMA CLA 2847 004547 5744 JMP I GETUSR /WE GOT IT 2848 004550 6212 CIF 10 2849 004551 4516 JMS I USR /THE ANSWERING SERVICE 2850 004552 0010 10 /CALLS THE SR 2851 004553 1155 TAD [200 2852 004554 3116 DCA USR /RESET THE CALL ADDRESS 2853 004555 5744 JMP I GETUSR /JES FINE 2854 004562 4000 PAGE 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 2855 004600 0000 FULCHK, 0 2856 IFNZRO RALF < 2857 / 2858 / IF THE RELOCATABLE BINARY OUTPUT 2859 / BLOCK IS FULL (WITHIN THE CONTENTS OF THE AC) 2860 / FILL THE REST WITH NOP CODES AND OUTPUT THE 2861 / BLOCK. 2862 / 2863 004601 1015 TAD OUTPTR 2864 004602 1216 TAD KOUBUF 2865 004603 7710 SPA CLA 2866 004604 5600 JMP I FULCHK 2867 004605 1015 FULLUP, TAD OUTPTR 2868 004606 1216 TAD KOUBUF 2869 004607 7700 SMA CLA 2870 004610 5214 JMP .+4 2871 004611 7201 CLA IAC 2872 004612 3415 DCA I OUTPTR 2873 004613 5205 JMP FULLUP 2874 004614 4777 JMS I (OUTBLK 2875 004615 5600 JMP I FULCHK 2876 004616 1001 KOUBUF, -OUBUF-377 > 2877 / 2878 / 2879 / GET SIGN CHARACTER IF ANY 2880 / BUMP LASTOP IF MINUS 2881 / 2882 004617 0000 GETSGN, 0 2883 004620 4575 JMS I [GETCHR 2884 004621 5617 JMP I GETSGN 2885 004622 1376 TAD (-255 /MINUS? 2886 004623 7450 SNA 2887 004624 2055 ISZ LASTOP 2888 004625 7440 SZA 2889 004626 7150 CLL CMA RAR /IF IT WAS PLUS, BECOMES 0 2890 004627 7640 SZA CLA /SKIP IF PLUS OR MINUS 2891 004630 4571 JMS I [BACK1 /OTHERWISE PUT IT BACK 2892 004631 5617 JMP I GETSGN 2893 / AS PER RICHIE LARY 2894 / 2895 / SINGLE AND DOUBLE PRECISION 2896 / FLOATING POINT INPUT 2897 / 2898 / 2899 004632 1140 EX, TAD M3 2900 004633 1140 FX, TAD M3 2901 004634 3046 DCA DESW /STORE LENGTH 2902 004635 1375 TAD (-7 2903 004636 4351 JMS CLEAR /CLEAR FAC+OP 2904 004637 3055 DCA LASTOP 2905 004640 4217 JMS GETSGN /GET SIGN 2906 004641 7240 STA /CLA CMA 2907 004642 3022 DCA DPSW /SET NO DP 2908 004643 3200 GETD, DCA DCNT 2909 004644 4774 JMS I (DIGIT /GET A DIGIT 2910 004645 5260 JMP LOOKP /NO 2911 004646 3005 DCA OTEMP /SAVE IT 2912 004647 4773 JMS I (FMPTEN /MULT FAC*10 2913 004650 4351 JMS CLEAR 2914 004651 1005 TAD OTEMP 2915 004652 7440 SZA 2916 004653 4772 JMS I (FAD /ADD DIGIT TO FAC IF NOT= 0 2917 004654 1022 TAD DPSW 2918 004655 7040 CMA 2919 004656 1200 TAD DCNT /BUMP IF FP SEEN 2920 004657 5243 JMP GETD 2921 004660 4575 LOOKP, JMS I [GETCHR 2922 004661 5277 JMP OVER /DONE 2923 004662 1371 TAD (-256 2924 004663 7450 SNA 2925 004664 5274 JMP DECPT 2926 004665 1370 TAD (256-304 2927 004666 7110 CLL RAR 2928 004667 7650 SNA CLA 2929 004670 5767 JMP I (EXPON /E OR D 2930 004671 4574 DEXERR, JMS I [ERMSG 2931 004672 0620 0620 /FP 2932 004673 5343 JMP NOTNEG 2933 004674 2022 DECPT, ISZ DPSW 2934 004675 5271 JMP DEXERR /2 PERIODS 2935 004676 5243 JMP GETD 2936 / 2937 004677 1200 OVER, TAD DCNT /EXPON COMES HERE W EXP IN AC 2938 004700 7450 SNA 2939 004701 5315 JMP NOSCAL /NO SCALING NEEDE 2940 004702 7100 CLL 2941 004703 7500 SMA 2942 004704 7061 CIA CML /SIGN IN LINK,MAGNITUDE IN AC 2943 004705 3200 DCA DCNT /AS A COUNT 2944 004706 7420 SNL 2945 004707 1375 TAD (TENTH-TEN /OFFSET KLUDGE 2946 004710 3005 DCA OTEMP 2947 004711 1005 SCALUP, TAD OTEMP 2948 004712 4773 JMS I (FMPTEN /MULT BY 10.0 OR 0.1 2949 004713 2200 ISZ DCNT 2950 004714 5311 JMP SCALUP 2951 004715 4351 NOSCAL, JMS CLEAR 2952 004716 7130 STL RAR 2953 004717 3130 DCA OP+5 /ROUNDING CONSTANT 2954 004720 4766 JMS I (ADD 2955 004721 1132 TAD AC 2956 004722 7640 SZA CLA 2957 004723 4765 JMS I (NORM /WATCH IT! 2958 004724 3137 DCA AC+5 2959 004725 1055 TAD LASTOP 2960 004726 7650 SNA CLA /SIGN -? 2961 004727 5343 JMP NOTNEG /NO 2962 004730 1364 TAD (AC+5 2963 004731 4763 JMS I (SETUP 2964 004732 7004 ACNGLP, RAL 2965 004733 1467 TAD I P /NEGATE FAC 2966 004734 7141 CLL CIA 2967 004735 3467 DCA I P 2968 004736 7240 STA 2969 004737 1067 TAD P 2970 004740 3067 DCA P 2971 004741 2021 ISZ CT 2972 004742 5332 JMP ACNGLP 2973 004743 4351 NOTNEG, JMS CLEAR /SET UP X10 2974 004744 1410 TAD I X10 2975 004745 4560 JMS I [OUTWRD 2976 004746 2046 ISZ DESW /OUTPUT # 2977 004747 5344 JMP .-3 2978 004750 5564 JMP I [NEXTST 2979 004751 0000 CLEAR, 0 /AC MAY NOT BE 0 2980 004752 1375 TAD (-7 2981 004753 3021 DCA CT 2982 004754 1362 TAD (OPX-1 2983 004755 3010 DCA X10 2984 004756 3410 DCA I X10 2985 004757 2021 ISZ CT 2986 004760 5356 JMP .-2 2987 004761 5751 JMP I CLEAR 2988 DCNT=FULCHK 2989 DPSW=NCTMP 2990 DESW=OPCODE 2991 004762 0121 PAGE 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 2992 OVBUFR=. 2993 005000 0000 FAD, 0 /FLOATING ADD DIGIT IN AC 2994 005001 3123 DCA OP 2995 005002 1377 TAD (13 2996 005003 3122 DCA OPX 2997 005004 1122 ALNLP, TAD OPX 2998 005005 7041 CIA 2999 005006 1131 TAD ACX 3000 005007 7450 SNA /ALIGNED? 3001 005010 5215 JMP GOADD /YES 3002 005011 7700 SMA CLA 3003 005012 1376 TAD (OPX-ACX 3004 005013 4220 JMS RSHFT /NO-SHIFT 1 OF THEM RIGHT 1 3005 005014 5204 JMP ALNLP /TRY AGAIN 3006 005015 4233 GOADD, JMS ADD /ADD FRACTIONS 3007 005016 4255 JMS NORM /NORMALIZE RESULT 3008 005017 5600 JMP I FAD /RETURN 3009 / 3010 005020 0000 RSHFT, 0 /SHIFT RIGHT 3011 005021 1375 TAD (ACX /DEFAULT IS FAC 3012 005022 4346 JMS SETUP 3013 005023 2467 ISZ I P /BUMP EXPONENT 3014 005024 2067 RSLP, ISZ P 3015 005025 1467 TAD I P 3016 005026 7010 RAR 3017 005027 3467 DCA I P 3018 005030 2021 ISZ CT 3019 005031 5224 JMP RSLP 3020 005032 5620 JMP I RSHFT 3021 / 3022 005033 0000 ADD, 0 /ADD TO FAC 3023 005034 1374 TAD (OP+5 3024 005035 3103 DCA PP2 3025 005036 1373 TAD (AC+5 3026 005037 4346 JMS SETUP 3027 005040 7004 ADDLP, RAL /CARRY 3028 005041 1503 TAD I PP2 3029 005042 1467 TAD I P 3030 005043 3467 DCA I P /ADD ONE WORD 3031 005044 7240 STA 3032 005045 1067 TAD P /COMPLEMENT LINK 3033 005046 3067 DCA P 3034 005047 7240 STA 3035 005050 1103 TAD PP2 /COMPLEMENT LINK 3036 005051 3103 DCA PP2 3037 005052 2021 ISZ CT 3038 005053 5240 JMP ADDLP 3039 005054 5633 JMP I ADD 3040 005055 0000 NORM, 0 /NORMALIZE FAC 3041 005056 1132 TAD AC 3042 005057 7710 SPA CLA /CHECK FOR OVERNORMALIZATION 3043 005060 4220 JMS RSHFT /AND CORRECT 3044 005061 7132 NORMLP, STL RTR 3045 005062 0132 AND AC 3046 005063 7640 SZA CLA /NORMALIZED? 3047 005064 5655 JMP I NORM /YES 3048 005065 1373 TAD (AC+5 3049 005066 4346 JMS SETUP 3050 005067 1467 LSLP, TAD I P 3051 005070 7004 RAL /LEFT SHIFT 3052 005071 3467 DCA I P /FAC 1 BIT 3053 005072 7260 STA CML /COMPLEMENT LINK 3054 005073 1067 TAD P 3055 005074 3067 DCA P 3056 005075 2021 ISZ CT 3057 005076 5267 JMP LSLP 3058 005077 7240 STA 3059 005100 1131 TAD ACX /BUMP EXP 3060 005101 3131 DCA ACX /DOWN 1 3061 005102 5261 JMP NORMLP 3062 005103 0000 FMPTEN, 0 /FLTG MULTIPLY BY 10.0 OR .1 3063 005104 1372 TAD (TEN 3064 005105 4346 JMS SETUP 3065 005106 1132 TAD AC 3066 005107 7650 SNA CLA /AC=0 MEANS RESULT=0 3067 005110 5703 JMP I FMPTEN 3068 005111 1467 TAD I P 3069 005112 1131 TAD ACX /FUDGE FAC 3070 005113 3131 DCA ACX /EXPONENT 3071 005114 1371 TAD (MUX 3072 005115 3011 DCA X11 3073 005116 1375 TAD (ACX 3074 005117 3346 DCA SETUP 3075 005120 1370 TAD (OPX 3076 005121 3010 DCA X10 3077 005122 3354 DCA MUX /CLEAR MULT TEMP EXP 3078 005123 2346 MPLP1, ISZ SETUP 3079 005124 1746 TAD I SETUP /MOVE FAC 3080 005125 3410 DCA I X10 /TO OP 3081 005126 3746 DCA I SETUP /CLEAR FAC 3082 005127 2067 ISZ P 3083 005130 1467 TAD I P /MOVE MULTIPLIER 3084 005131 3411 DCA I X11 /TO MULT TEMP 3085 005132 2021 ISZ CT 3086 005133 5323 JMP MPLP1 3087 / 3088 005134 1367 MPLP2, TAD (MUX-ACX 3089 005135 4220 JMS RSHFT /SHIFT MULT TEMP RIGHT 1 3090 005136 7430 SZL 3091 005137 4233 JMS ADD /ADD IF LOW ORDER BIT WAS 1 3092 005140 4220 JMS RSHFT /SHIFT FAC RIGHT 3093 005141 1362 TAD MU+5 3094 005142 7640 SZA CLA /12 SUCCESSIVE 0 BITS 3095 005143 5334 JMP MPLP2 /IN MULTIPLIER MEANS DONE 3096 005144 4255 JMS NORM 3097 005145 5703 JMP I FMPTEN 3098 / 3099 005146 0000 SETUP, 0 /COMMON CODE 3100 005147 3067 DCA P 3101 005150 1366 TAD (-6 3102 005151 3021 DCA CT 3103 005152 7100 CLL 3104 005153 5746 JMP I SETUP 3105 / 3106 005154 0000 MUX, 0 /MULT TEMP 3107 005155 0000 MU, ZBLOCK 6 005156 0000 005157 0000 005160 0000 005161 0000 005162 0000 3108 CT=CPTMP 3109 P=EXTMP 3110 PP2=PAGEN 3111 005166 7772 PAGE 005167 5023 005170 0122 005171 5154 005172 2750 005173 0137 005174 0130 005175 0131 005176 7771 005177 0013 3112 IFNZRO RALF < 3113 005200 1577 ESDBUF, PNDL+6 /ESD ENTRY FOR SECTION #MAIN 3114 005201 1571 PNDL /DITTO FOR BLANK COMMON 3115 005202 0000 ZBLOCK 376 /FILL TO 400 LOCS 005203 0000 005204 0000 005205 0000 005206 0000 005207 0000 005210 0000 005211 0000 005212 0000 005213 0000 005214 0000 005215 0000 005216 0000 005217 0000 005220 0000 005221 0000 005222 0000 005223 0000 005224 0000 005225 0000 005226 0000 005227 0000 005230 0000 005231 0000 005232 0000 005233 0000 005234 0000 005235 0000 005236 0000 005237 0000 005240 0000 005241 0000 005242 0000 005243 0000 005244 0000 005245 0000 005246 0000 005247 0000 005250 0000 005251 0000 005252 0000 005253 0000 005254 0000 005255 0000 005256 0000 005257 0000 005260 0000 005261 0000 005262 0000 005263 0000 005264 0000 005265 0000 005266 0000 005267 0000 005270 0000 005271 0000 005272 0000 005273 0000 005274 0000 005275 0000 005276 0000 005277 0000 005300 0000 005301 0000 005302 0000 005303 0000 005304 0000 005305 0000 005306 0000 005307 0000 005310 0000 005311 0000 005312 0000 005313 0000 005314 0000 005315 0000 005316 0000 005317 0000 005320 0000 005321 0000 005322 0000 005323 0000 005324 0000 005325 0000 005326 0000 005327 0000 005330 0000 005331 0000 005332 0000 005333 0000 005334 0000 005335 0000 005336 0000 005337 0000 005340 0000 005341 0000 005342 0000 005343 0000 005344 0000 005345 0000 005346 0000 005347 0000 005350 0000 005351 0000 005352 0000 005353 0000 005354 0000 005355 0000 005356 0000 005357 0000 005360 0000 005361 0000 005362 0000 005363 0000 005364 0000 005365 0000 005366 0000 005367 0000 005370 0000 005371 0000 005372 0000 005373 0000 005374 0000 005375 0000 005376 0000 005377 0000 005400 0000 005401 0000 005402 0000 005403 0000 005404 0000 005405 0000 005406 0000 005407 0000 005410 0000 005411 0000 005412 0000 005413 0000 005414 0000 005415 0000 005416 0000 005417 0000 005420 0000 005421 0000 005422 0000 005423 0000 005424 0000 005425 0000 005426 0000 005427 0000 005430 0000 005431 0000 005432 0000 005433 0000 005434 0000 005435 0000 005436 0000 005437 0000 005440 0000 005441 0000 005442 0000 005443 0000 005444 0000 005445 0000 005446 0000 005447 0000 005450 0000 005451 0000 005452 0000 005453 0000 005454 0000 005455 0000 005456 0000 005457 0000 005460 0000 005461 0000 005462 0000 005463 0000 005464 0000 005465 0000 005466 0000 005467 0000 005470 0000 005471 0000 005472 0000 005473 0000 005474 0000 005475 0000 005476 0000 005477 0000 005500 0000 005501 0000 005502 0000 005503 0000 005504 0000 005505 0000 005506 0000 005507 0000 005510 0000 005511 0000 005512 0000 005513 0000 005514 0000 005515 0000 005516 0000 005517 0000 005520 0000 005521 0000 005522 0000 005523 0000 005524 0000 005525 0000 005526 0000 005527 0000 005530 0000 005531 0000 005532 0000 005533 0000 005534 0000 005535 0000 005536 0000 005537 0000 005540 0000 005541 0000 005542 0000 005543 0000 005544 0000 005545 0000 005546 0000 005547 0000 005550 0000 005551 0000 005552 0000 005553 0000 005554 0000 005555 0000 005556 0000 005557 0000 005560 0000 005561 0000 005562 0000 005563 0000 005564 0000 005565 0000 005566 0000 005567 0000 005570 0000 005571 0000 005572 0000 005573 0000 005574 0000 005575 0000 005576 0000 005577 0000 3116 / 3117 / BEGIN OF PASS 2: 3118 / DUMP EXTERNAL SYMBOL DICTIONARY 3119 / DURING PASSES 2 AND 3, THIS IS INPUT BUFFER 3120 / 3121 005600 7344 DMPESD, CLA CLL CMA RAL /-2 3122 005601 3070 DCA EXTMP2 /PASS CONTROL 3123 005602 1377 TAD (3 /RALF OUTPUT IDENTIFIER 3124 005603 3415 DCA I OUTPTR 3125 005604 1003 TAD VERS 3126 005605 3415 DCA I OUTPTR /THIS MAKES 6-WORD ENTRIES 3127 005606 1030 TAD DPFLG /4000=NEED DP HARDWARE 3128 005607 3415 DCA I OUTPTR /EXACTLY FILL A BLOCK 3129 005610 3415 DCA I OUTPTR 3130 005611 1376 ESDSCN, TAD (ESDBUF-1 3131 005612 3010 DCA X10 /POINT TO POINTERS 3132 005613 1375 TAD (ESDBUF+177 3133 005614 3012 DCA X12 /POINT TO INITAIL CHARS 3134 005615 1025 TAD ESDNO 3135 005616 7041 CIA 3136 005617 3067 DCA EXTMP 3137 005620 1374 ESDLUP, TAD (-3 3138 005621 3066 DCA LTEMP /NAME LENGTH COUNT 3139 005622 1373 TAD (EQUN-1 /WHERE WE'LL KEEP THE NAME 3140 005623 3013 DCA X13 3141 005624 1410 TAD I X10 /GET POINTER 3142 005625 3011 DCA X11 3143 005626 1412 TAD I X12 /GET FIRST CHAR 3144 005627 7450 SNA /BLANK BECOMES # 3145 005630 1372 TAD (43 3146 005631 4562 ESDNLP, JMS I [R6L 3147 005632 3073 DCA EQUN+2 3148 005633 6211 CDF FLD1 3149 005634 1411 TAD I X11 /GET NEXT PAIR FROM SYMBOL TABLE 3150 005635 3074 DCA EQUN+3 /HOLD IT 3151 005636 6201 CDF FLD0 3152 005637 1074 TAD EQUN+3 3153 005640 4551 JMS I [R6R /GET LEFT CHAR 3154 005641 1073 TAD EQUN+2 /COMBINE THEM 3155 005642 3413 DCA I X13 3156 005643 1074 TAD EQUN+3 /GET RIGHT HALF OF PAIR 3157 005644 0163 AND [77 3158 005645 2066 ISZ LTEMP 3159 005646 5231 JMP ESDNLP 3160 005647 0154 AND [37 /DROP FORCE BIT FROM TYPE 3161 005650 3074 DCA EQUN+3 3162 005651 6211 CDF FLD1 3163 005652 1411 TAD I X11 /HIGH VALUE 3164 005653 3075 DCA EQUN+4 3165 005654 1411 TAD I X11 /LOW VALUE 3166 005655 3076 DCA EQUN+5 3167 005656 6201 CDF FLD0 3168 005657 1070 TAD EXTMP2 /WHAT PASS IS THIS? 3169 005660 7010 RAR /LINK 0 IF FIRST, 1 IF SECOND 3170 005661 7620 SNL CLA 3171 005662 5271 JMP NOENTS /FIRST, ENTRYS NOT OUTPUT 3172 005663 1074 TAD EQUN+3 /OUTPUT ENTRIES ONLY ON 2ND 3173 005664 7110 CLL RAR 3174 005665 7650 SNA CLA 3175 005666 7420 SNL 3176 005667 5330 JMP ESDLND /NO GO 3177 005670 5306 JMP ESDOUT /YES, PUT IT 3178 005671 1074 NOENTS, TAD EQUN+3 /EXT, COMM, OR SCTN 3179 005672 7110 CLL RAR 3180 005673 7450 SNA /SKIP IF OK 3181 005674 5330 JMP ESDLND /UNDEFINED OR ENTRY 3182 005675 7010 RAR 3183 005676 7650 SNA CLA 3184 005677 5306 JMP ESDOUT /IF EXTERN, DO IT 3185 005700 1075 TAD EQUN+4 /IF SECTION, CHECK 3186 005701 0156 AND [7 /THAT LENGTH 3187 005702 7450 SNA /IS NON-ZERO 3188 005703 1076 TAD EQUN+5 3189 005704 7650 SNA CLA 3190 005705 5330 JMP ESDLND /ZERO LEN JUST GETS IN THE WAY 3191 005706 1373 ESDOUT, TAD (EQUN-1 3192 005707 3013 DCA X13 3193 005710 1371 TAD (-6 3194 005711 3066 DCA LTEMP 3195 005712 1413 TAD I X13 /GET OUTPUT WORD 3196 005713 3415 DCA I OUTPTR 3197 005714 2066 ISZ LTEMP 3198 005715 5312 JMP .-3 /6-WORD ENTRIES 3199 005716 1015 TAD OUTPTR 3200 005717 1360 TAD OUTBUF 3201 005720 7710 SPA CLA 3202 005721 5330 JMP ESDLND /NOT END OF BLOCK YET 3203 005722 4770 JMS I (OUTBLK 3204 005723 1377 TAD (3 3205 005724 3415 DCA I OUTPTR 3206 005725 3415 DCA I OUTPTR 3207 005726 3415 DCA I OUTPTR 3208 005727 3415 DCA I OUTPTR 3209 005730 2067 ESDLND, ISZ EXTMP /GO THRU ESD LIST 3210 005731 5220 JMP ESDLUP 3211 005732 2070 ISZ EXTMP2 /WHOLE LIST TWO PASSES 3212 005733 5211 JMP ESDSCN 3213 005734 1371 TAD (-6 /THEN STORE END-OF-ESD 3214 005735 3066 DCA LTEMP 3215 005736 3415 DCA I OUTPTR 3216 005737 2066 ISZ LTEMP 3217 005740 5336 JMP .-2 3218 005741 1367 TAD (377 /FORCE BLOCK OUTPUT 3219 005742 4766 JMS I (FULCHK 3220 005743 6211 CDF FLD1 /THEN DEFAULT ORG 3221 005744 1765 TAD I (LMAIN /IF MAIN LEN .NE. 0 3222 005745 0156 AND [7 3223 005746 7450 SNA 3224 005747 1764 TAD I (LMAIN+1 3225 005750 6201 CDF FLD0 3226 005751 7650 SNA CLA 3227 005752 5763 JMP I (RESET /FIRST SECTION WILL GET IT 3228 005753 1362 TAD (TTORG+1 /ORG TO ZERO OF MAIN 3229 005754 3415 DCA I OUTPTR 3230 005755 3415 DCA I OUTPTR 3231 005756 3415 DCA I OUTPTR 3232 005757 5763 JMP I (RESET 3233 005760 1001 OUTBUF, 1001 3234 005762 1001 PAGE /> 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 3235 / 3236 / INITIALIZATION CODE 3237 / 3238 006000 5206 BEGIN, JMP CHNIN /IF ENTERED BY CHAIN 3239 006001 6212 GCMND, CIF 10 /IF ENTERED BY .R, ETC 3240 006002 4516 JMS I USR /USR IS LEFT OVER 3241 006003 0005 5 /DECODE 3242 IFZERO RALF < 3243 620 /DEFAULT EXT = .FP> 3244 IFNZRO RALF < 3245 006004 2201 2201 /DEFAULT EXT = .RA> 3246 006005 3777 DCA I (RETSYS /NO NEED FOR IT IF NOT CHAINED 3247 006006 4776 CHNIN, JMS I (7607 3248 006007 4100 4100 /TEMP WRITE OUT OVERLAY 3249 006010 6600 6600 /NOW AT 6600 3250 006011 0040 40 /TO SYS SCRATCH BLK 40 3251 006012 5775 JMP I (7605 /ERROR 3252 006013 6211 CDF 10 3253 IFNZRO RALF < 3254 006014 1573 TAD I [7600 /BIN FILE UNIT 3255 006015 0120 AND NP17 3256 006016 7450 SNA /IS THERE ONE? 3257 006017 5233 JMP DEFBIN /NO, SET DEFAULT 3258 006020 1374 TAD (7757 /POINT TO DEV CTRL WORD 3259 006021 3042 DCA WORD1 3260 006022 1442 TAD I WORD1 3261 006023 7710 SPA CLA 3262 006024 5250 JMP OKBIN /FILE-STRUCTURED, OK 3263 006025 6201 CDF 0 3264 006026 4773 JMS I (PRTXT /TYPE MESSAGE 3265 006027 6304 TXBBIN-1 3266 006030 7760 -TXBLN 3267 006031 4577 JMS I [CRLF 3268 006032 5201 JMP GCMND /TRY AGAIN 3269 / 3270 006033 7201 DEFBIN, CLA IAC /DEFAULT BIN UNIT IS SYS 3271 006034 3573 DCA I [7600 /SET UNIT 3272 006035 1173 TAD [7600 3273 006036 3010 DCA X10 /SET POINTER 3274 006037 1372 TAD (0617 /FO 3275 006040 3410 DCA I X10 3276 006041 1371 TAD (2224 /RT 3277 006042 3410 DCA I X10 3278 006043 1370 TAD (2216 /RN 3279 006044 3410 DCA I X10 /FORTRN. 3280 006045 3410 DCA I X10 3281 006046 6201 CDF 0 3282 006047 5767 JMP I (NOEXT /NOW, OPEN THE FILE> 3283 006050 6201 OKBIN, CDF 0 /HAVE TO GO TO ANOTHER PAGE 3284 006051 5766 JMP I (NOKBIN /ONLY SO MANY PATCHES TO A PAGE 3285 006052 6211 GBIN, CDF 10 3286 006053 1765 TAD I (7644 3287 006054 0364 AND (20 3288 006055 7650 SNA CLA 3289 006056 2117 ISZ SYONLY /=NO SLASH T 3290 006057 6201 CDF 0 3291 006060 4763 JMS I (NEW /**SEE IF NEED 2 PG HANDLER 3292 006061 7600 7600 3293 006062 4762 JMS I (OOPEN 3294 006063 3107 DCA BFILE 3295 IFNZRO RALF < 3296 006064 1277 TAD R41 /L OR G SWITCH** 3297 006065 6211 CDF 10 3298 006066 0761 AND I (7643 /TEST /L OR /G SWITCH 3299 006067 6201 CDF 0 3300 006070 7650 SNA CLA /** 3301 006071 5306 JMP KCHN /KILL CHAIN, IT'S SET 3302 006072 6212 CIF 10 3303 006073 7201 CLA IAC /UNIT IS SYS 3304 006074 4516 JMS I USR 3305 006075 0002 2 /LOOKUP 3306 006076 6300 LBLK, LDRNAM /LOADER.SV 3307 006077 0041 R41, 41 /** 3308 006100 5306 JMP KCHN /NO FIND, NO CALL 3309 006101 1276 TAD LBLK /STARTING BLOCK 3310 006102 3760 DCA I (LDRBLK /FOR CHAIN 3311 006103 1757 TAD I (OUBLK /OUTPUT STARTING BLOCK 3312 006104 3756 DCA I (PASBLK /SAVED FOR CHAIN TO LOADER 3313 006105 7240 CLA CMA /ENABLE CHAIN 3314 006106 3755 KCHN, DCA I (CHNSW /OR KILL IT, WHATEVER> 3315 006107 4754 JMS I (INCHK /NOW CHECK INPUT DEVICES FOR 2 PG HANDLERS 3316 006110 4753 JMS I (INNEWF /GET INPUT HANDLER 3317 006111 7240 CLA CMA 3318 006112 3753 DCA I (INCHCT /SET INITIAL COUNT 3319 006113 1121 TAD NP7700 3320 006114 3116 DCA USR /FROM NOW ON, USE THE HIGH CALL 3321 006115 4763 JMS I (NEW 3322 006116 7605 7605 /CHECK LIST DEV TOO** 3323 006117 6211 CDF 10 3324 006120 1752 TAD I (7611 /LST FILE EXT 3325 006121 7450 SNA 3326 006122 1351 TAD (1423 /LS DEFAULT 3327 006123 3752 DCA I (7611 3328 006124 1750 TAD I (7666 /GET DATE 3329 006125 3042 DCA WORD1 3330 / 3331 / MOVE SYMBOL TABLE TO ITS PROPER LOCATION 3332 / 3333 006126 1347 TAD (1777 3334 006127 3010 DCA X10 /LOADED ADDRESS OF SYMBOL TABLE 3335 006130 7240 CLA CMA 3336 006131 3011 DCA X11 /WE MOVE IT TO ASSEMBLED ADDRESS 3337 006132 1346 TAD (-FREE /LENGTH OF SYMBOL TABLE 3338 006133 3043 DCA WORD2 /SET COUNT 3339 006134 1410 TAD I X10 3340 006135 3411 DCA I X11 /THIS SAVES SWAPS OF USR 3341 006136 2043 ISZ WORD2 3342 006137 5334 JMP .-3 3343 006140 6201 CDF 0 3344 006141 5745 JMP I (GDATE /CHECK FOR FPP PRESENCE** 3345 006145 6200 PAGE 006146 6173 006147 1777 006150 7666 006151 1423 006152 7611 006153 4324 006154 6463 006155 3471 006156 3470 006157 4432 006160 3467 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 3346 / 3347 / PUT THE DATE INTO THE PAGE HEADING 3348 / 3349 006200 1377 GDATE, TAD (1000 3350 006201 3776 DCA I (7746 /SET NO-RESTART BIT 3351 /PUT VERNUM IN TITLE LINE 3352 006202 1276 TAD VMSG 3353 006203 3775 DCA I (VMTXT 3354 006204 1277 TAD VMSG+1 /PATCH LEVEL 3355 006205 3774 DCA I (VMTXT+1 3356 006206 3006 DCA OCNT /CLEAR OCNT 3357 006207 1042 TAD WORD1 /RE-GET DATE 3358 006210 7450 SNA 3359 006211 5773 JMP I (NEWLIN /GOLLY, AND ALL THIS CODE WASTED 3360 006212 0372 AND (370 3361 006213 7112 CLL RTR 3362 006214 7010 RAR 3363 006215 1371 TAD (-12 3364 006216 7510 SPA 3365 006217 5222 JMP .+3 3366 006220 2006 ISZ OCNT 3367 006221 5215 JMP .-4 3368 006222 1370 TAD (72 /60+12 3369 006223 3005 DCA OTEMP 3370 006224 1367 TAD (TITDAT-1 3371 006225 3011 DCA X11 3372 006226 1006 TAD OCNT 3373 006227 4766 JMS I (R6L 3374 006230 7440 SZA 3375 006231 1365 TAD (6000 3376 006232 1005 TAD OTEMP 3377 006233 3411 DCA I X11 3378 006234 1042 TAD WORD1 3379 006235 0364 AND (7400 /MONTH 3380 006236 4766 JMS I (R6L 3381 006237 1363 TAD (MONTHS-3 3382 006240 3010 DCA X10 3383 006241 1410 TAD I X10 3384 006242 3411 DCA I X11 3385 006243 1410 TAD I X10 3386 006244 3411 DCA I X11 3387 006245 3006 DCA OCNT 3388 006246 1042 TAD WORD1 3389 006247 0156 AND [7 3390 006250 3005 DCA OTEMP 3391 006251 1762 TAD I (7777 3392 006252 0361 AND (600 3393 006253 7112 RTR CLL 3394 006254 7012 RTR 3395 006255 1005 TAD OTEMP 3396 006256 1360 TAD (106 3397 006257 1371 TAD (-12 3398 006260 7510 SPA 3399 006261 5264 JMP .+3 3400 006262 2006 ISZ OCNT 3401 006263 5257 JMP .-4 3402 006264 1370 TAD (72 3403 006265 3005 DCA OTEMP 3404 006266 1357 TAD (5560 3405 006267 1006 TAD OCNT 3406 006270 3411 DCA I 11 3407 006271 1005 TAD OTEMP 3408 006272 4766 JMS I (R6L 3409 006273 1356 TAD (40 3410 006274 3411 DCA I X11 3411 006275 5773 JMP I (NEWLIN 3412 006276 6662 VMSG, VNUM&70^10+VNUM&707+6060 3413 006277 0140 PATCH&77^100+40 3414 IFNZRO RALF < 3415 006300 1417 LDRNAM, TEXT "LOAD@@SV" 006301 0104 006302 0000 006303 2326 006304 0000 3416 006305 0211 TXBBIN, TEXT "BIN OUT DEV NOT FILE-STRUCTURED" 006306 1640 006307 1725 006310 2440 006311 0405 006312 2640 006313 1617 006314 2440 006315 0611 006316 1405 006317 5523 006320 2422 006321 2503 006322 2425 006323 2205 006324 0400 3417 TXBLN= .-TXBBIN > 3418 006325 5512 MONTHS, TEXT "-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC" 006326 0116 006327 5506 006330 0502 006331 5515 006332 0122 006333 5501 006334 2022 006335 5515 006336 0131 006337 5512 006340 2516 006341 5512 006342 2514 006343 5501 006344 2507 006345 5523 006346 0520 006347 5517 006350 0324 006351 5516 006352 1726 006353 5504 006354 0503 006355 0000 3419 006356 0040 PAGE 006357 5560 006360 0106 006361 0600 006362 7777 006363 6322 006364 7400 006365 6000 006366 2550 006367 0551 006370 0072 006371 7766 006372 0370 006373 0240 006374 0550 006375 0547 006376 7746 006377 1000 3420 /PAGE FOR NEW CODE REQUIRED FOR OS/8 FORTRAN 3421 006400 0000 NEW, 0 3422 006401 1262 TAD NT2 /CHECK IF ALREADY CHECKED 3423 006402 7640 SZA CLA 3424 006403 5256 JMP NEWDON 3425 006404 1600 TAD I NEW /NO. GET THE DEV TO CHECK 3426 006405 3260 DCA NTEMP 3427 006406 6211 CDF 10 3428 006407 1660 TAD I NTEMP /GET DEV.NUM 3429 006410 0172 AND [17 3430 006411 3261 DCA NT1 /INCHK NEEDS TO KNOW TOO 3431 006412 1261 TAD NT1 3432 006413 7450 SNA /IF 0,THEN NO DEVICE 3433 006414 5256 JMP NEWDON 3434 006415 3260 DCA NTEMP 3435 006416 7240 CLA CMA 3436 006417 1777 TAD I (37 /GET PTR TO DEV TBL 3437 006420 1260 TAD NTEMP 3438 006421 3260 DCA NTEMP /PTS TO ENTRY IN DEV TBL 3439 006422 1660 TAD I NTEMP 3440 006423 6201 CDF 0 3441 006424 7700 SMA CLA 3442 006425 5255 JMP FIX /NOT A 2 PG HANDLER 3443 006426 1376 TAD (6377 /FIX ALL LOCATIONS THAT REFER TO 3444 /THE BUFFER VARIABLES. 3445 /THE CHANGES ARE: 3446 /OUBUF=6000,LINE=6400,INDEVH=6600,OUDEVH=7200 3447 /INRECS=1,INCTL=200 3448 006427 3775 DCA I (BLINE 3449 006430 1374 TAD (6000 3450 006431 3773 DCA I (NOUBUF 3451 IFNZRO RALF < 3452 006432 1372 TAD (5777 3453 006433 3771 DCA I (MOUBUF > /FLAP DOESN'T USE ALL THE RALF LOCNS 3454 006434 1370 TAD (6601 3455 006435 3767 DCA I (NINDEV 3456 006436 1366 TAD (201 3457 006437 3765 DCA I (NINCTL 3458 006440 4335 JMS TPNSH /TWO-PAGE NON-SYSTEM HANDLER 3459 006441 3764 DCA I (NINREC 3460 006442 1374 TAD (6000 3461 006443 3763 DCA I (LOUBUF 3462 006444 1362 TAD (7201 3463 006445 3761 DCA I (NOUDEV 3464 006446 1372 TAD (5777 3465 006447 3760 DCA I (OUTPTR 3466 006450 1376 TAD (6377 3467 006451 3757 DCA I (CHRPTR 3468 IFNZRO RALF < 3469 006452 1356 TAD (1401 3470 006453 3755 DCA I (KOUBUF > 3471 006454 1362 TAD (7201 3472 006455 3262 FIX, DCA NT2 /SET SO IF DID 2 PGS., DONT DO IT AGAIN 3473 006456 2200 NEWDON, ISZ NEW /GET CORRECT ADDR 3474 006457 5600 JMP I NEW 3475 006460 0000 NTEMP, 0 3476 006461 0000 NT1, 0 /DEV. NUM. 3477 006462 0000 NT2, 0 /0 IF NO 2PG HANDLERS YET 3478 006463 0000 INCHK, 0 /CHECK THE INPUT DEVICES 3479 006464 4200 JMS NEW 3480 006465 7617 INLOC, 7617 3481 006466 1265 TAD INLOC 3482 006467 3302 DCA NEXTIN 3483 006470 1261 ANOTH, TAD NT1 3484 006471 7650 SNA CLA /SKIP IF FILE USED 3485 006472 5663 JMP I INCHK 3486 006473 1262 TAD NT2 3487 006474 7640 SZA CLA /SKIP IF STILL 1 PAGE HANDLERS 3488 006475 5663 JMP I INCHK 3489 006476 1304 TAD NP2 3490 006477 1302 TAD NEXTIN 3491 006500 3302 DCA NEXTIN /INCREMENT TO PT TO NEXT INPUT FILR 3492 006501 4200 JMS NEW 3493 006502 0000 NEXTIN, 0 3494 006503 5270 JMP ANOTH 3495 006504 0002 NP2, 2 3496 006505 6211 NOKBIN, CDF 10 /BELONGS WITH INIT CODE 3497 006506 1573 TAD I [7600 3498 006507 0120 AND NP17 3499 006510 1354 TAD (7646 3500 006511 3042 DCA WORD1 /CREATE POINTER INTO DEV TBL 3501 006512 1442 TAD I WORD1 3502 006513 6201 CDF 0 3503 006514 1353 TAD (-7607 3504 006515 7650 SNA CLA /IF ITS SYS, NO PROBLEMS 3505 006516 3752 DCA I (RETSYS /SO CAN ZERO CALL TO DELETE ROUTINE 3506 006517 6211 CDF 10 3507 006520 1751 TAD I (7604 3508 006521 7440 SZA 3509 006522 5331 JMP FEND /AN EXT WAS SPECIFIED 3510 IFZERO RALF < 3511 TAD (0216 /.BN DEFAULT FOR FLAP 3512 JMP FEND > 3513 IFNZRO RALF < 3514 006523 6211 NOEXT, CDF 10 3515 006524 1750 TAD I (7643 /CHECK IF L OR G SPEC 3516 006525 0334 AND L41 3517 006526 7650 SNA CLA 3518 006527 1347 TAD (0610 /NO-NEEDS RL EXT 3519 006530 1346 TAD (1404 > /YES-NEEDS LD 3520 006531 3751 FEND, DCA I (7604 3521 006532 6201 CDF 0 3522 006533 5745 JMP I (GBIN 3523 006534 0041 L41, 41 3524 006535 0000 TPNSH, 0 3525 006536 1356 TAD (1401 /CHANGE OUTPUT BUFFER 3526 006537 3744 DCA I (OUTBUF 3527 006540 7001 IAC 3528 006541 5735 JMP I TPNSH 3529 / 3530 006544 5760 PAGE 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 3531 LDADR, RELOC OVBUFR 3532 005000* 1104 TAD ERRORS /ERROR COUNT 3533 005001* 4777 JMS I (DECOUT 3534 005002* 4776 JMS I (PRTXT /"ERRORS" 3535 005003* 0361 TXERR-1 3536 005004* 7774 -TXELN 3537 005005* 4577 JMS I [CRLF 3538 IFZERO RALF < 3539 TAD PASSNO /IF NOT LISTING PASS 3540 SPA SNA CLA /ERROR COUNT IS ENUF 3541 JMP I (RETSYS > 3542 005006* 1016 TAD NEXT 3543 005007* 1375 TAD (-FREE+1 /DON'T COUNT BASIC SYMBOLS 3544 005010* 7110 CLL RAR /DIVIDE 3545 005011* 4774 JMS I (OVER3 /BY 6 3546 005012* 4777 JMS I (DECOUT 3547 005013* 4776 JMS I (PRTXT /"SYMBOLS, " 3548 005014* 2161 TXSYM-1 3549 005015* 7773 -TXSLN 3550 IFZERO RALF < 3551 TAD LINKS 3552 JMS I (DECOUT 3553 JMS I (PRTXT /"LINKS" 3554 TXLNK-1 3555 -TXLLN > 3556 IFNZRO RALF < 3557 005016* 1114 TAD ABREFS 3558 005017* 4777 JMS I (DECOUT 3559 005020* 4776 JMS I (PRTXT /"ABS REFS" 3560 005021* 1555 TXABR-1 3561 005022* 7773 -TXALN > 3562 005023* 4577 JMS I [CRLF 3563 005024* 1373 TAD (-33 /27 BUCKETS 3564 005025* 3066 DCA LTEMP 3565 005026* 3051 DCA BUCKET 3566 005027* 7240 CLA CMA 3567 005030* 3046 DCA OPCODE /SYMBOLS PER LINE COUNTER 3568 005031* 1051 STPRNT, TAD BUCKET 3569 005032* 3067 DCA EXTMP /BUCKET START ADDRESS 3570 005033* 6211 LUPBKT, CDF FLD1 3571 005034* 1467 TAD I EXTMP /WAS THAT LAST SYMBOL ? 3572 005035* 7450 SNA 3573 005036* 5306 JMP NXTBKT /YES, GO GET NEXT BUCKET 3574 005037* 3067 DCA EXTMP /SAVE LINK ADDR 3575 005040* 1067 TAD EXTMP 3576 005041* 3014 DCA X14 /SET UP POINTER FOR NAME 3577 005042* 2046 ISZ OPCODE /IS LINE FULL? 3578 005043* 5247 JMP .+4 /NO 3579 005044* 1372 TAD (-4 3580 005045* 3046 DCA OPCODE 3581 005046* 4577 JMS I [CRLF 3582 005047* 1051 TAD BUCKET 3583 005050* 7450 SNA /WATCH FOR # 3584 005051* 1371 TAD (43 3585 005052* 4576 JMS I [PRINT2 /PRINT BUCKET (FIRST) CHAR 3586 005053* 6211 CDF FLD1 3587 005054* 1414 TAD I X14 /SYMBOL 3588 005055* 4576 JMS I [PRINT2 /PRINT 2 AND 3 3589 005056* 6211 CDF FLD1 3590 005057* 1414 TAD I X14 3591 005060* 4576 JMS I [PRINT2 /PRINT 4 AND 5 3592 005061* 6211 CDF FLD1 3593 005062* 1414 TAD I X14 3594 IFNZRO RALF < 3595 005063* 3005 DCA OTEMP /HOLD 3596 005064* 1005 TAD OTEMP > 3597 005065* 0147 AND [7700 /PRINT 6 AND BLANK 3598 005066* 4576 JMS I [PRINT2 3599 IFNZRO RALF < 3600 005067* 1005 TAD OTEMP /GET TYPE 3601 005070* 0172 AND [17 3602 005071* 1370 TAD (TYPCOD /POINT TO TABLE 3603 005072* 3005 DCA OTEMP 3604 005073* 1405 TAD I OTEMP /GET TYPE INDICATOR 3605 005074* 4576 JMS I [PRINT2 > 3606 005075* 6211 CDF FLD1 3607 005076* 1414 TAD I X14 /PRINT FIRST DIGIT 3608 005077* 0156 AND [7 3609 005100* 4767 JMS I (PDIG /FIELD DIGIT 3610 005101* 6211 CDF FLD1 3611 005102* 1414 TAD I X14 /LOW 12 BITS 3612 005103* 4544 JMS I [OCTOUT 3613 005104* 4576 JMS I [PRINT2 /TWO BLANKS 3614 005105* 5233 JMP LUPBKT 3615 005106* 2051 NXTBKT, ISZ BUCKET /NEXT BUCKET CHAR 3616 005107* 6201 CDF FLD0 3617 005110* 2066 ISZ LTEMP /INCREMENT COUNT 3618 005111* 5231 JMP STPRNT 3619 005112* 4577 JMS I [CRLF /DO FINAL CRLF** 3620 005113* 1366 TAD (214 /DO NOT PAGEJ 3621 005114* 4505 JMS I PC /THAT WOULD GIVE A HEADING 3622 005115* 4765 JMS I (OCLOSE 3623 005116* 5764 JMP I (RETSYS /FINISH IT OFF 3624 005164* 3425 PAGE 005165* 4474 005166* 0214 005167* 2751 005170* 3502 005171* 0043 005172* 7774 005173* 7745 005174* 0400 005175* 6174 005176* 1504 005177* 2673 3625 RELOC 3626 / PAGE 0 LITERALS 3627 000142 3257 FIELD 1 000143 0437 000144 2757 000145 0177 000146 2632 000147 7700 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 3628 *10000 3629 / 3630 / SYMBOL TABLE IS IN FIELD ONE. 3631 / EACH ENTRY HAS THE FOLLOWING FORMAT 3632 / 3633 / 0: POINTER TO NEXT ENTRY IN BUCKET, 0 IF LAST 3634 / 1: 2ND AND 3RD CHARS OF SYMBOL 3635 / 2: 4TH AND 5TH 3636 / 3: 6TH AND TYPE CODE 3637 / 4: ESD # AND HIGH-ORDER VALUE 3638 / 5: LOW-ORDER VALUE 3639 / 3640 USER=1 3641 XTERN=2 3642 COMMN=3 3643 SECTN=4 3644 PSUDO=5 3645 PDPMR=6 3646 FPPMRF=7 3647 FPPSF1=10 /JXN, TRAP 3648 FPPSF2=11 /JA, SETB, SETX 3649 FPPSF3=12 /CLA, EXIT, NEG, NOP, NORM, 3650 /PAUS, JAC, STARTD, STARTF 3651 FPPSF4=13 /ALN, ATX, XTA 3652 FPPSF5=14 /ADDX, LDX 3653 FPPMRI=15 /% 3654 FPPMRS=16 /' 3655 FPPMRL=17 /# 3656 PDPOP=20 3657 / 3658 / THE FOLLOWING CODE TRICKS THE LOADER INTO PUTTING 3659 / THE SYMBOL TABLE AT 2000, WHERE THE USR IS NOT, 3660 / THUS SAVING SOME SWAPPING AT LOAD AND INITIALIZE. 3661 / IT IS MOVED TO THE ASSEMBLED ADDRESS AFTER WE'RE 3662 / DONE WITH THE USR, AND BEFORE THE FIRST PASS BEGINS 3663 / 3664 *12000 3665 NOPUNCH 3666 *10000 3667 ENPUNCH 3668 / 3669 / BUCKETS FOR USER-DEFINED SYMBOLS 3670 / AND PDP8 OPERATES AND IOTS 3671 / 3672 010000 1571 PNDL 3673 010001 0000 ZBLOCK 33 010002 0000 010003 0000 010004 0000 010005 0000 010006 0000 010007 0000 010010 0000 010011 0000 010012 0000 010013 0000 010014 0000 010015 0000 010016 0000 010017 0000 010020 0000 010021 0000 010022 0000 010023 0000 010024 0000 010025 0000 010026 0000 010027 0000 010030 0000 010031 0000 010032 0000 010033 0000 3674 / 3675 / BUCKETS FOR INTERNALLY DEFINED SYMBOLS 3676 / 3677 010034 0066 AL 3678 010035 0136 BL 3679 010036 0143 CL 3680 010037 0220 DL 3681 010040 0256 EL 3682 010041 0302 FL 3683 010042 0000 GL 3684 010043 0655 HL 3685 010044 0662 IL 3686 010045 1014 JL 3687 010046 1160 KL 3688 010047 1204 LL 3689 010050 0000 ML 3690 010051 1230 NL 3691 010052 1235 OL 3692 010053 0000 PL 3693 010054 0000 QL 3694 010055 1254 RL 3695 010056 1331 SL 3696 010057 1451 TL 3697 010060 0000 UL 3698 010061 0000 VL 3699 010062 0000 WL 3700 010063 1557 XL 3701 010064 0000 YL 3702 010065 1564 ZL 3703 010066 0073 AL, .+5 /ADDR 3704 010067 0404 0404;2200 010070 2200 3705 010071 0011 FPPSF2 3706 010072 0000 0 3707 010073 0100 .+5 /ADDX 3708 010074 0404 0404;3000 010075 3000 3709 010076 0014 FPPSF5 3710 010077 0110 0110 3711 010100 0105 .+5 /ALN 3712 010101 1416 1416;0 010102 0000 3713 010103 0013 FPPSF4 3714 010104 0010 0010 3715 IFZERO RALF < 3716 .+5 /AND 3717 1604;0 3718 PDPMR 3719 AND 0 > 3720 IFNZRO RALF < 3721 010105 0112 .+5 /AND . 3722 010106 1604 1604;0 010107 0000 3723 010110 0006 PDPMR 3724 010111 0200 200 3725 010112 0117 .+5 /AND% 3726 010113 1604 1604;0 010114 0000 3727 010115 0506 PDPMR+500 3728 010116 0600 600 3729 010117 0124 .+5 /ANDZ 3730 010120 1604 1604;3200 010121 3200 3731 010122 0006 PDPMR 3732 010123 0000 0 3733 010124 0131 .+5 /ANDZ% 3734 010125 1604 1604;3200 010126 3200 3735 010127 0506 PDPMR+500 3736 010130 0400 400 > 3737 010131 0000 0 /ATX 3738 010132 2430 2430;0 010133 0000 3739 010134 0013 FPPSF4 3740 010135 0020 0020 3741 010136 0000 BL, 0 /BASE 3742 010137 0123 0123;0500 010140 0500 3743 010141 0005 PSUDO 3744 010142 1340 BASEX 3745 010143 0150 CL, .+5 /CDF 3746 010144 0406 0406;0 010145 0000 3747 010146 0020 PDPOP 3748 010147 6201 CDF 3749 010150 0155 .+5 /CIA 3750 010151 1101 1101;0 010152 0000 3751 010153 0020 PDPOP 3752 010154 7041 CIA 3753 010155 0162 .+5 /CIF 3754 010156 1106 1106;0 010157 0000 3755 010160 0020 PDPOP 3756 010161 6202 CIF 3757 010162 0167 .+5 /CLA 3758 010163 1401 1401;0 010164 0000 3759 010165 0020 PDPOP 3760 010166 7200 CLA 3761 010167 0174 .+5 /CLL 3762 010170 1414 1414;0 010171 0000 3763 010172 0020 PDPOP 3764 010173 7100 CLL 3765 010174 0201 .+5 /CMA 3766 010175 1501 1501;0 010176 0000 3767 010177 0020 PDPOP 3768 010200 7040 CMA 3769 IFZERO RALF < 0 > 3770 010201 0206 IFNZRO RALF < .+5 > 3771 010202 1514 1514;0 /CML 010203 0000 3772 010204 0020 PDPOP 3773 010205 7020 CML 3774 IFNZRO RALF < 3775 010206 0213 .+5 /COMMON 3776 010207 1715 1715;1517 010210 1517 3777 010211 1605 PSUDO+1600 3778 010212 3666 COMMX 3779 010213 0000 0 /COMMZ (8-MODE COMM SECT) 3780 010214 1715 1715;1532 010215 1532 3781 010216 0005 PSUDO 3782 010217 3662 SECT8X-1 > 3783 DL, IFZERO RALF < 3784 .+5 /DCA 3785 0301;0 3786 PDPMR 3787 DCA 0 > 3788 IFNZRO RALF < 3789 010220 0225 .+5 /DCA . 3790 010221 0301 0301;0 010222 0000 3791 010223 0006 PDPMR 3792 010224 3200 3200 3793 010225 0232 .+5 /DCA% 3794 010226 0301 0301;0 010227 0000 3795 010230 0506 PDPMR+500 3796 010231 3600 3600 3797 010232 0237 .+5 /DCAZ 3798 010233 0301 0301;3200 010234 3200 3799 010235 0006 PDPMR 3800 010236 3000 DCA 0 3801 010237 0244 .+5 /DCAZ% 3802 010240 0301 0301;3200 010241 3200 3803 010242 0506 PDPMR+500 3804 010243 3400 DCA I 0 > 3805 IFZERO RALF < 0 > /DECIMAL 3806 010244 0251 IFNZRO RALF < .+5 > 3807 010245 0503 0503;1115 010246 1115 3808 010247 0105 PSUDO+0100 3809 010250 4003 DECX 3810 010251 0000 IFNZRO RALF < 0 /DPCHK 3811 010252 2003 2003;1013 010253 1013 3812 010254 0005 PSUDO 3813 010255 1334 DPCHKX > 3814 010256 0263 EL, .+5 /E 3815 010257 0000 0;0 010260 0000 3816 010261 0005 PSUDO 3817 010262 4632 EX 3818 010263 0270 .+5 /END 3819 010264 1604 1604;0 010265 0000 3820 010266 0005 PSUDO 3821 010267 3200 ENDX 3822 IFZERO RALF < 3823 0 /ENPUNCH 3824 1620;2516 3825 PSUDO+0300 3826 ENPNCX > 3827 IFNZRO RALF < 3828 010270 0275 .+5 /ENTRY 3829 010271 1624 1624;2231 010272 2231 3830 010273 0005 PSUDO 3831 010274 3630 ENTRX 3832 010275 0000 0 /EXTERN 3833 010276 3024 3024;0522 010277 0522 3834 010300 1605 PSUDO+1600 3835 010301 3646 EXTRNX > 3836 010302 0307 FL, .+5 /F 3837 010303 0000 0;0 010304 0000 3838 010305 0005 PSUDO 3839 010306 4633 FX 3840 010307 0314 .+5 /FADD 3841 010310 0104 0104;0400 010311 0400 3842 010312 0007 FPPMRF 3843 010313 1000 1000 3844 010314 0321 .+5 /FADD# 3845 010315 0104 0104;0400 010316 0400 3846 010317 0317 FPPMRL+300 3847 010320 1000 1000 3848 010321 0326 .+5 /FADD% 3849 010322 0104 0104;0400 010323 0400 3850 010324 0515 FPPMRI+500 3851 010325 1000 1000 3852 010326 0333 .+5 /FADD' 3853 010327 0104 0104;0400 010330 0400 3854 010331 0716 FPPMRS+700 3855 010332 1000 1000 3856 010333 0340 .+5 /FADDM 3857 010334 0104 0104;0415 010335 0415 3858 010336 0007 FPPMRF 3859 010337 5000 5000 3860 010340 0345 .+5 /FADDM# 3861 010341 0104 0104;0415 010342 0415 3862 010343 0317 FPPMRL+300 3863 010344 5000 5000 3864 010345 0352 .+5 /FADDM% 3865 010346 0104 0104;0415 010347 0415 3866 010350 0515 FPPMRI+500 3867 010351 5000 5000 3868 010352 0357 .+5 /FADDM' 3869 010353 0104 0104;0415 010354 0415 3870 010355 0716 FPPMRS+700 3871 010356 5000 5000 3872 010357 0364 .+5 /FCLA 3873 010360 0314 0314;0100 010361 0100 3874 010362 0012 FPPSF3 3875 010363 0002 0002 3876 010364 0371 .+5 /FDIV 3877 010365 0411 0411;2600 010366 2600 3878 010367 0007 FPPMRF 3879 010370 3000 3000 3880 010371 0376 .+5 /FDIV# 3881 010372 0411 0411;2600 010373 2600 3882 010374 0317 FPPMRL+300 3883 010375 3000 3000 3884 010376 0403 .+5 /FDIV% 3885 010377 0411 0411;2600 010400 2600 3886 010401 0515 FPPMRI+500 3887 010402 3000 3000 3888 010403 0410 .+5 /FDIV' 3889 010404 0411 0411;2600 010405 2600 3890 010406 0715 FPPMRI+700 3891 010407 3000 3000 3892 010410 0415 .+5 /FEXIT 3893 010411 0530 0530;1124 010412 1124 3894 010413 0012 FPPSF3 3895 010414 0000 0 3896 IFNZRO RALF < 3897 010415 0422 .+5 /FIELD1 (8-MODE FIELD1 SECT) 3898 010416 1105 1105;1404 010417 1404 3899 010420 6105 PSUDO+6100 3900 010421 3661 SECT8X-2 > 3901 010422 0427 .+5 /FLDA 3902 010423 1404 1404;0100 010424 0100 3903 010425 0007 FPPMRF 3904 010426 0000 0000 3905 010427 0434 .+5 /FLDA# 3906 010430 1404 1404;0100 010431 0100 3907 010432 0317 FPPMRL+300 3908 010433 0000 0000 3909 010434 0441 .+5 /FLDA% 3910 010435 1404 1404;0100 010436 0100 3911 010437 0515 FPPMRI+500 3912 010440 0000 0000 3913 010441 0446 .+5 /FLDA' 3914 010442 1404 1404;0100 010443 0100 3915 010444 0716 FPPMRS+700 3916 010445 0000 0000 3917 010446 0453 .+5 /FMUL 3918 010447 1525 1525;1400 010450 1400 3919 010451 0007 FPPMRF 3920 010452 4000 4000 3921 010453 0460 .+5 /FMUL# 3922 010454 1525 1525;1400 010455 1400 3923 010456 0317 FPPMRL+300 3924 010457 4000 4000 3925 010460 0465 .+5 /FMUL% 3926 010461 1525 1525;1400 010462 1400 3927 010463 0515 FPPMRI+500 3928 010464 4000 4000 3929 010465 0472 .+5 /FMUL' 3930 010466 1525 1525;1400 010467 1400 3931 010470 0716 FPPMRS+700 3932 010471 4000 4000 3933 010472 0477 .+5 /FMULM 3934 010473 1525 1525;1415 010474 1415 3935 010475 0007 FPPMRF 3936 010476 7000 7000 3937 010477 0504 .+5 /FMULM# 3938 010500 1525 1525;1415 010501 1415 3939 010502 0317 FPPMRL+300 3940 010503 7000 7000 3941 010504 0511 .+5 /FMULM% 3942 010505 1525 1525;1415 010506 1415 3943 010507 0515 FPPMRI+500 3944 010510 7000 7000 3945 010511 0516 .+5 /FMULM' 3946 010512 1525 1525;1415 010513 1415 3947 010514 0716 FPPMRS+700 3948 010515 7000 7000 3949 010516 0523 .+5 /FNEG 3950 010517 1605 1605;0700 010520 0700 3951 010521 0012 FPPSF3 3952 010522 0003 0003 3953 010523 0530 .+5 /FNOP 3954 010524 1617 1617;2000 010525 2000 3955 010526 0012 FPPSF3 3956 010527 0040 0040 3957 010530 0535 .+5 /FNORM 3958 010531 1617 1617;2215 010532 2215 3959 010533 0012 FPPSF3 3960 010534 0004 0004 3961 010535 0542 .+5 /FPAUSE 3962 010536 2001 2001;2523 010537 2523 3963 010540 0512 FPPSF3+0500 3964 010541 0001 0001 3965 010542 0547 .+5 /FPCOM 3966 010543 2003 2003;1715 010544 1715 3967 010545 0020 PDPOP 3968 010546 6553 6553 3969 010547 0554 .+5 /FPHLT 3970 010550 2010 2010;1424 010551 1424 3971 010552 0020 PDPOP 3972 010553 6554 6554 3973 010554 0561 .+5 /FPICL 3974 010555 2011 2011;0314 010556 0314 3975 010557 0020 PDPOP 3976 010560 6552 6552 3977 010561 0566 .+5 /FPINT 3978 010562 2011 2011;1624 010563 1624 3979 010564 0020 PDPOP 3980 010565 6551 6551 3981 010566 0573 .+5 /FPIST 3982 010567 2011 2011;2324 010570 2324 3983 010571 0020 PDPOP 3984 010572 6557 6557 3985 010573 0600 .+5 /FPRST 3986 010574 2022 2022;2324 010575 2324 3987 010576 0020 PDPOP 3988 010577 6556 6556 3989 010600 0605 .+5 /FPST 3990 010601 2023 2023;2400 010602 2400 3991 010603 0020 PDPOP 3992 010604 6555 6555 3993 010605 0612 .+5 /FSTA 3994 010606 2324 2324;0100 010607 0100 3995 010610 0007 FPPMRF 3996 010611 6000 6000 3997 010612 0617 .+5 /FSTA# 3998 010613 2324 2324;0100 010614 0100 3999 010615 0317 FPPMRL+300 4000 010616 6000 6000 4001 010617 0624 .+5 /FSTA% 4002 010620 2324 2324;0100 010621 0100 4003 010622 0515 FPPMRI+500 4004 010623 6000 6000 4005 010624 0631 .+5 /FSTA' 4006 010625 2324 2324;0100 010626 0100 4007 010627 0716 FPPMRS+700 4008 010630 6000 6000 4009 010631 0636 .+5 /FSUB 4010 010632 2325 2325;0200 010633 0200 4011 010634 0007 FPPMRF 4012 010635 2000 2000 4013 010636 0643 .+5 /FSUB# 4014 010637 2325 2325;0200 010640 0200 4015 010641 0317 FPPMRL+300 4016 010642 2000 2000 4017 010643 0650 .+5 /FSUB% 4018 010644 2325 2325;0200 010645 0200 4019 010646 0515 FPPMRI+500 4020 010647 2000 2000 4021 010650 0000 0 /FSUB' 4022 010651 2325 2325;0200 010652 0200 4023 010653 0716 FPPMRS+700 4024 010654 2000 2000 4025 GL= 0 /AINT NONE 4026 010655 0000 HL, 0 /HLT 4027 010656 1424 1424;0 010657 0000 4028 010660 0020 PDPOP 4029 010661 7402 HLT 4030 010662 0667 IL, .+5 /IAC 4031 010663 0103 0103;0 010664 0000 4032 010665 0020 PDPOP 4033 010666 7001 IAC 4034 010667 0674 .+5 /IFFLAP 4035 010670 0606 0606;1401 010671 1401 4036 010672 2005 PSUDO+2000 4037 IFZERO RALF 4038 010673 4054 IFNZRO RALF 4039 010674 0701 .+5 /IFNDEF 4040 010675 0616 0616;0405 010676 0405 4041 010677 0605 PSUDO+0600 4042 010700 4113 IFNDFX 4043 010701 0706 .+5 /IFNEG 4044 010702 0616 0616;0507 010703 0507 4045 010704 0005 PSUDO 4046 010705 4106 IFNEGX 4047 010706 0713 .+5 /IFNSW 4048 010707 0616 0616;2327 010710 2327 4049 010711 0005 PSUDO 4050 010712 4125 IFNSWX 4051 010713 0720 .+5 /IFNZRO 4052 010714 0616 0616;3222 010715 3222 4053 010716 1705 PSUDO+1700 4054 010717 4044 IFNZRX 4055 010720 0725 .+5 /IFPOS 4056 010721 0620 0620;1723 010722 1723 4057 010723 0005 PSUDO 4058 010724 4107 IFPOSX 4059 010725 0732 .+5 /IFRALF 4060 010726 0622 0622;0114 010727 0114 4061 010730 0605 PSUDO+0600 4062 010731 4057 IFNZRO RALF 4063 IFZERO RALF 4064 010732 0737 .+5 /IFREF 4065 010733 0622 0622;0506 010734 0506 4066 010735 0005 PSUDO 4067 010736 4114 IFREFX 4068 010737 0744 .+5 /IFSW 4069 010740 0623 0623;2700 010741 2700 4070 010742 0005 PSUDO 4071 010743 4124 IFSWX 4072 010744 0751 .+5 /IFZERO 4073 010745 0632 0632;0522 010746 0522 4074 010747 1705 PSUDO+1700 4075 010750 4045 IFZROX 4076 010751 0756 .+5 4077 010752 1604 1604;0530 010753 0530 4078 010754 0005 PSUDO 4079 010755 1337 INDXX 4080 010756 0763 .+5 /IOF 4081 010757 1706 1706;0 010760 0000 4082 010761 0020 PDPOP 4083 010762 6002 IOF 4084 010763 0770 .+5 /ION 4085 010764 1716 1716;0 010765 0000 4086 010766 0020 PDPOP 4087 010767 6001 ION 4088 IFZERO RALF < 4089 0 /ISZ 4090 2332;0 4091 PDPMR 4092 ISZ 0 > 4093 IFNZRO RALF < 4094 010770 0775 .+5 /ISZ . 4095 010771 2332 2332;0 010772 0000 4096 010773 0006 PDPMR 4097 010774 2200 ISZ .&7600 4098 010775 1002 .+5 /ISZ% 4099 010776 2332 2332;0 010777 0000 4100 011000 0506 PDPMR+500 4101 011001 2600 ISZ I .&7600 4102 011002 1007 .+5 /ISZZ 4103 011003 2332 2332;3200 011004 3200 4104 011005 0006 PDPMR 4105 011006 2000 ISZ 0 4106 011007 0000 0 /ISZZ% 4107 011010 2332 2332;3200 011011 3200 4108 011012 0506 PDPMR+500 4109 011013 2400 ISZ I 0 > 4110 011014 1021 JL, .+5 /JA 4111 011015 0100 0100;0 011016 0000 4112 011017 0011 FPPSF2 4113 011020 1030 1030 4114 011021 1026 .+5 /JAC 4115 011022 0103 0103;0 011023 0000 4116 011024 0012 FPPSF3 4117 011025 0007 0007 4118 011026 1033 .+5 /JAL 4119 011027 0114 0114;0 011030 0000 4120 011031 0011 FPPSF2 4121 011032 1070 1070 4122 011033 1040 .+5 /JEQ 4123 011034 0521 0521;0 011035 0000 4124 011036 0011 FPPSF2 4125 011037 1000 1000 4126 011040 1045 .+5 /JGE 4127 011041 0705 0705;0 011042 0000 4128 011043 0011 FPPSF2 4129 011044 1010 1010 4130 011045 1052 .+5 /JGT 4131 011046 0724 0724;0 011047 0000 4132 011050 0011 FPPSF2 4133 011051 1060 1060 4134 011052 1057 .+5 /JLE 4135 011053 1405 1405;0 011054 0000 4136 011055 0011 FPPSF2 4137 011056 1020 1020 4138 011057 1064 .+5 /JLT 4139 011060 1424 1424;0 011061 0000 4140 011062 0011 FPPSF2 4141 011063 1050 1050 4142 IFZERO RALF < 4143 .+5 /JMP 4144 1520;0 4145 PDPMR 4146 JMP 0 4147 .+5 /JMS 4148 1523;0 4149 PDPMR 4150 JMS 0 > 4151 IFNZRO RALF < 4152 011064 1071 .+5 /JMP . 4153 011065 1520 1520;0 011066 0000 4154 011067 0006 PDPMR 4155 011070 5200 JMP .&7600 4156 011071 1076 .+5 /JMP% 4157 011072 1520 1520;0 011073 0000 4158 011074 0506 PDPMR+500 4159 011075 5600 JMP I .&7600 4160 011076 1103 .+5 /JMPZ 4161 011077 1520 1520;3200 011100 3200 4162 011101 0006 PDPMR 4163 011102 5000 JMP 0 4164 011103 1110 .+5 /JMPZ% 4165 011104 1520 1520;3200 011105 3200 4166 011106 0506 PDPMR+500 4167 011107 5400 JMP I 0 4168 011110 1115 .+5 /JMS . 4169 011111 1523 1523;0 011112 0000 4170 011113 0006 PDPMR 4171 011114 4200 JMS .&7600 4172 011115 1122 .+5 /JMS% 4173 011116 1523 1523;0 011117 0000 4174 011120 0506 PDPMR+500 4175 011121 4600 JMS I .&7600 4176 011122 1127 .+5 /JMSZ 4177 011123 1523 1523;3200 011124 3200 4178 011125 0006 PDPMR 4179 011126 4000 JMS 0 4180 011127 1134 .+5 /JMSZ% 4181 011130 1523 1523;3200 011131 3200 4182 011132 0506 PDPMR+500 4183 011133 4400 JMS I 0 > 4184 011134 1141 .+5 /JNE 4185 011135 1605 1605;0 011136 0000 4186 011137 0011 FPPSF2 4187 011140 1040 1040 4188 011141 1146 .+5 /JSA 4189 011142 2301 2301;0 011143 0000 4190 011144 0011 FPPSF2 4191 011145 1120 1120 4192 011146 1153 .+5 /JSR 4193 011147 2322 2322;0 011150 0000 4194 011151 0011 FPPSF2 4195 011152 1130 1130 4196 011153 0000 0 /JXN 4197 011154 3016 3016;0 011155 0000 4198 011156 0010 FPPSF1 4199 011157 2000 2000 4200 011160 1165 KL, .+5 /KCC 4201 011161 0303 0303;0 011162 0000 4202 011163 0020 PDPOP 4203 011164 6032 KCC 4204 011165 1172 .+5 /KRB 4205 011166 2202 2202;0 011167 0000 4206 011170 0020 PDPOP 4207 011171 6036 KRB 4208 011172 1177 .+5 /KRS 4209 011173 2223 2223;0 011174 0000 4210 011175 0020 PDPOP 4211 011176 6034 KRS 4212 011177 0000 0 /KSF 4213 011200 2306 2306;0 011201 0000 4214 011202 0020 PDPOP 4215 011203 6031 KSF 4216 011204 1211 LL, .+5 /LAS 4217 011205 0123 0123;0 011206 0000 4218 011207 0020 PDPOP 4219 011210 7604 LAS 4220 011211 1216 .+5 /LDX 4221 011212 0430 0430;0 011213 0000 4222 011214 0014 FPPSF5 4223 011215 0100 0100 4224 011216 1223 .+5 /LISTOFF 4225 011217 1123 1123;2417 011220 2417 4226 011221 0605 PSUDO+0600 4227 011222 4001 LSTOFX 4228 011223 0000 0 /LISTON 4229 011224 1123 1123;2417 011225 2417 4230 011226 1605 PSUDO+1600 4231 011227 4000 LSTONX 4232 ML= 0 /NO LIST 4233 NL, IFZERO RALF < .+5 > 4234 011230 0000 IFNZRO RALF < 0 > 4235 011231 1720 1720;0 /NOP 011232 0000 4236 011233 0020 PDPOP 4237 011234 7000 NOP 4238 IFZERO RALF < 4239 0 /NOPUNCH 4240 1720;2516 4241 PSUDO+0300 4242 NOPNCX > 4243 011235 1242 OL, .+5 /OCTAL 4244 011236 0324 0324;0114 011237 0114 4245 011240 0005 PSUDO 4246 011241 4004 OCTALX 4247 011242 1247 .+5 /ORG 4248 011243 2207 2207;0 011244 0000 4249 011245 0005 PSUDO 4250 011246 3730 ORGX 4251 011247 0000 0 /OSR 4252 011250 2322 2322;0 011251 0000 4253 011252 0020 PDPOP 4254 011253 7404 OSR 4255 IFZERO RALF < 4256 PL, 0 /PAGE 4257 0107;0500 4258 PSUDO 4259 PAGEX > 4260 IFNZRO RALF 4261 QL= 0 /WHAT DID YOU EXPECT? 4262 011254 1261 RL, .+5 /RAL 4263 011255 0114 0114;0 011256 0000 4264 011257 0020 PDPOP 4265 011260 7004 RAL 4266 011261 1266 .+5 /RAR 4267 011262 0122 0122;0 011263 0000 4268 011264 0020 PDPOP 4269 011265 7010 RAR 4270 011266 1273 .+5 /RDF 4271 011267 0406 0406;0 011270 0000 4272 011271 0020 PDPOP 4273 011272 6214 RDF 4274 011273 1300 .+5 /REPEAT 4275 011274 0520 0520;0501 011275 0501 4276 011276 2405 PSUDO+2400 4277 011277 0762 REPETX 4278 011300 1305 .+5 /RIB 4279 011301 1102 1102;0 011302 0000 4280 011303 0020 PDPOP 4281 011304 6234 RIB 4282 011305 1312 .+5 /RIF 4283 011306 1106 1106;0 011307 0000 4284 011310 0020 PDPOP 4285 011311 6224 RIF 4286 011312 1317 .+5 /RMF 4287 011313 1506 1506;0 011314 0000 4288 011315 0020 PDPOP 4289 011316 6244 RMF 4290 011317 1324 .+5 /RTL 4291 011320 2414 2414;0 011321 0000 4292 011322 0020 PDPOP 4293 011323 7006 RTL 4294 011324 0000 0 /RTR 4295 011325 2422 2422;0 011326 0000 4296 011327 0020 PDPOP 4297 011330 7012 RTR 4298 011331 1336 SL, .+5 /S 4299 011332 0000 0;0 011333 0000 4300 011334 0005 PSUDO 4301 011335 1005 SX 4302 IFNZRO RALF < 4303 011336 1343 .+5 /SECT 4304 011337 0503 0503;2400 011340 2400 4305 011341 0005 PSUDO 4306 011342 3665 SECTX 4307 011343 1350 .+5 /8 MODE SECT 4308 011344 0503 0503;2470 011345 2470 4309 011346 0005 PSUDO 4310 011347 3663 SECT8X > 4311 011350 1355 .+5 /SETB 4312 011351 0524 0524;0200 011352 0200 4313 011353 0011 FPPSF2 4314 011354 1110 1110 4315 011355 1362 .+5 /SETX 4316 011356 0524 0524;3000 011357 3000 4317 011360 0011 FPPSF2 4318 011361 1100 1100 4319 011362 1367 .+5 /SKP 4320 011363 1320 1320;0 011364 0000 4321 011365 0020 PDPOP 4322 011366 7410 SKP 4323 011367 1374 .+5 /SMA 4324 011370 1501 1501;0 011371 0000 4325 011372 0020 PDPOP 4326 011373 7500 SMA 4327 011374 1401 .+5 /SNA 4328 011375 1601 1601;0 011376 0000 4329 011377 0020 PDPOP 4330 011400 7450 SNA 4331 011401 1406 .+5 /SNL 4332 011402 1614 1614;0 011403 0000 4333 011404 0020 PDPOP 4334 011405 7420 SNL 4335 011406 1413 .+5 /SPA 4336 011407 2001 2001;0 011410 0000 4337 011411 0020 PDPOP 4338 011412 7510 SPA 4339 011413 1420 .+5 /STARTD 4340 011414 2401 2401;2224 011415 2224 4341 011416 0412 FPPSF3+0400 4342 011417 0006 0006 4343 011420 1425 .+5 /STARTE 4344 011421 2401 2401;2224 011422 2224 4345 011423 0512 FPPSF3+0500 4346 011424 0050 0050 4347 011425 1432 .+5 /STARTF 4348 011426 2401 2401;2224 011427 2224 4349 011430 0612 FPPSF3+0600 4350 011431 0005 0005 4351 011432 1437 .+5 /STL 4352 011433 2414 2414;0 011434 0000 4353 011435 0020 PDPOP 4354 011436 7120 STL 4355 011437 1444 .+5 /SZA 4356 011440 3201 3201;0 011441 0000 4357 011442 0020 PDPOP 4358 011443 7440 SZA 4359 011444 0000 0 /SZL 4360 011445 3214 3214;0 011446 0000 4361 011447 0020 PDPOP 4362 011450 7430 SZL 4363 TL, IFZERO RALF < 4364 .+5 /TAD 4365 0104;0 4366 PDPMR 4367 TAD 0 > 4368 IFNZRO RALF < 4369 011451 1456 .+5 /TAD . 4370 011452 0104 0104;0 011453 0000 4371 011454 0006 PDPMR 4372 011455 1200 TAD .&7600 4373 011456 1463 .+5 /TAD% 4374 011457 0104 0104;0 011460 0000 4375 011461 0506 PDPMR+500 4376 011462 1600 TAD I .&7600 4377 011463 1470 .+5 /TADZ 4378 011464 0104 0104;3200 011465 3200 4379 011466 0006 PDPMR 4380 011467 1000 TAD 0 4381 011470 1475 .+5 /TADZ% 4382 011471 0104 0104;3200 011472 3200 4383 011473 0506 PDPMR+500 4384 011474 1400 TAD I 0 > 4385 011475 1502 .+5 /TCF 4386 011476 0306 0306;0 011477 0000 4387 011500 0020 PDPOP 4388 011501 6042 TCF 4389 011502 1507 .+5 /TEXT 4390 011503 0530 0530;2400 011504 2400 4391 011505 0005 PSUDO 4392 011506 4006 TEXTX 4393 011507 1514 .+5 /TLS 4394 011510 1423 1423;0 011511 0000 4395 011512 0020 PDPOP 4396 011513 6046 TLS 4397 011514 1521 .+5 /TPC 4398 011515 2003 2003;0 011516 0000 4399 011517 0020 PDPOP 4400 011520 6044 TPC 4401 011521 1526 .+5 /TRAP3 4402 011522 2201 2201;2063 011523 2063 4403 011524 0010 FPPSF1 4404 011525 3000 3000 4405 011526 1533 .+5 /TRAP4 4406 011527 2201 2201;2064 011530 2064 4407 011531 0010 FPPSF1 4408 011532 4000 4000 4409 011533 1540 .+5 /TRAP5 4410 011534 2201 2201;2065 011535 2065 4411 011536 0010 FPPSF1 4412 011537 5000 5000 4413 011540 1545 .+5 /TRAP6 4414 011541 2201 2201;2066 011542 2066 4415 011543 0010 FPPSF1 4416 011544 6000 6000 4417 011545 1552 .+5 /TRAP7 4418 011546 2201 2201;2067 011547 2067 4419 011550 0010 FPPSF1 4420 011551 7000 7000 4421 011552 0000 0 /TSF 4422 011553 2306 2306;0 011554 0000 4423 011555 0020 PDPOP 4424 011556 6041 TSF 4425 UL= 0 4426 VL= 0 4427 WL= 0 4428 011557 0000 XL, 0 /XTA 4429 011560 2401 2401;0 011561 0000 4430 011562 0013 FPPSF4 4431 011563 0030 0030 4432 YL= 0 4433 011564 0000 ZL, 0 /ZBLOCK 4434 011565 0214 0214;1703 011566 1703 4435 011567 1305 PSUDO+1300 4436 011570 4152 ZBLKX 4437 IFZERO RALF < PNDL=0 > 4438 IFNZRO RALF < 4439 011571 1577 PNDL, .+6 /BLANK COMMON 4440 011572 0000 0;0 011573 0000 4441 011574 0003 3 /CODE FOR COMMON 4442 011575 0040 40;0 /ESD #2, LEN=0 011576 0000 4443 011577 0000 0 /#MAIN 4444 011600 1501 1501;1116 011601 1116 4445 011602 0004 4 /CODE FOR SECTION 4446 011603 0020 LMAIN, 20;0 /ESD #1, LEN=0> 011604 0000 4447 FREE, 4448 011605 1605 END, END /NICE WHEN FLAP ASSEMBLES 4449 $ ABREFS 0114 ABSOP 0115 AC 0132 ACNGLP 4732 ACX 0131 ADD 5033 ADDDGT 2335 ADDLP 5040 ADR 1706 ADRADD 2000 ADRAND 2040 ADRAOX 2061 ADRASX 2034 ADRASY 2036 unreferenced ADRDIV 2073 ADRERR 3250 unreferenced ADREXP 1717 ADRGET 1210 ADRMUL 2064 ADROP 1724 ADROR 2047 ADRSUB 2013 AGAIN 0352 AL 0066 ALNLP 5004 ANOTH 6470 ASMBL 0310 ASMOF 0057 BACK1 2400 BAD 1653 BADCND 4076 BADEXP 1100 BASER 0031 BASEX 1340 BEGIN 6000 BFILE 0107 BIERR 1270 BL 0136 BLANK 2414 BLINE 0141 BMPLOC 3111 BOCHKL 3547 BORG 3514 BOSETL 3555 BOTMP 0067 BOXIT 3557 BUCKET 0051 CHCKMR 3236 CHKSUM 0024 unreferenced CHNIN 6006 CHNSW 3471 CHRPTR 0017 CKCTC 1674 CL 0143 CLEAR 4751 CLR2 1715 CLRSCT 1273 COMMN 0003 COMMX 3666 CPLBUF 5100 unreferenced CPLIT 0102 unreferenced CPTMP 0021 CRESD 3701 CRLF 1433 CSLOOP 1277 CT 0021 DCB 7760 DCNT 4600 DEC2 2714 DEC3 2716 DEC4 2730 DECNO 2711 DECOUT 2673 DECPT 4674 DECX 4003 DEFBIN 6033 DEFIND 0643 DEFLBL 0636 DELFIL 1350 DESW 0046 DEXERR 4671 DIGIT 2534 DIVERR 2112 DIVLUP 0404 DL 0220 DMPESD 5600 DPCHKX 1334 DPFLG 0030 DPSW 0022 EL 0256 END 1605 ENDEXP 1640 ENDLIN 0271 ENDOUT 3107 ENDX 3200 ENTRX 3630 EOP2 3212 EOP3 3225 EQUERR 0716 EQUN 0071 ERMSG 2644 ERMSG1 2632 ERRORS 0104 ESDBUF 5200 ESDERR 3656 ESDLND 5730 ESDLUP 5620 ESDNLP 5631 ESDNO 0025 ESDOUT 5706 ESDSCN 5611 ESDTMP 0067 EX 4632 EXPDEF 0040 EXPON 3400 EXPR 1600 EXPSW 0041 EXPVAL 0035 EXTMP 0067 EXTMP2 0070 EXTRNX 3646 F2WD 1062 FAD 5000 FALSE 4054 FEND 6531 FILLLP 4514 FIND 2200 FINDOP 1756 FIX 6455 FIXOPC 2600 FL 0302 FLD0 0000 FLD1 0010 FMPTEN 5103 FORMFD 0324 FORMT1 1061 FORMT2 1117 FORMT3 1116 unreferenced FPADR 1155 FPDMP 1065 FPMRI 1105 FPMRL 1060 FPMRS 1066 FPP2WD 0076 FPPADR 0044 FPPMR 1027 FPPMRF 0007 FPPMRI 0015 FPPMRL 0017 FPPMRS 0016 FPPS1 1125 FPPS2 1046 FPPS3 1122 FPPS4 1201 FPPS5 1134 FPPSF1 0010 FPPSF2 0011 FPPSF3 0012 FPPSF4 0013 FPPSF5 0014 FPPSWT 0075 FPPWD2 0077 FREE 1605 FULCHK 4600 FULLUP 4605 FX 4633 GBIN 6052 GCMND 6001 GDATE 6200 GETAC 2426 GETADR 1217 GETCHR 2410 GETCHT 4026 GETCND 2431 GETCON 4072 GETD 4643 GETEXP 1000 GETIT 0341 GETNAM 2452 GETNEW 4222 GETSGN 4617 GETSKP 2412 GETUSR 4544 GL 0000 GNC 2512 GOADD 5015 HL 0655 ICHAR 4212 ICHAR1 4312 ICHAR2 4306 IFNDFX 4113 IFNEGX 4106 IFNSWX 4125 IFNZRX 4044 IFPOSX 4107 IFREFX 4114 IFSWX 4124 IFZROX 4045 IL 0662 IN7400 4200 IN7600 4213 INABS 3057 INBREC 4245 INBUF 6000 INBUFP 4242 INCHAR 4214 INCHCT 4324 INCHK 6463 INCOMN 4313 INCTL 0400 INCTLW 4241 INCTR 4360 INDEVH 7200 INDXR 0033 INDXX 1337 INEOF 4323 INERRX 4264 INFLD 0000 INFPTR 4322 INHNDL 4337 INJMP 4270 INJMPP 4217 INLOC 6465 INNEWF 4324 INOP 3263 INPTR 4361 INREC 4243 INRECS 0002 IOERR 3257 IOPEN 4203 ISQUOT 1671 ISSYM 2467 IXMES 1051 JL 1014 JSTONE 0734 KCHN 6106 KL 1160 KOUBUF 4616 L41 6534 LASTOP 0055 LBLK 6076 LDADR 6600 unreferenced LDRBLK 3467 LDRNAM 6300 LETTER 2521 LINE 7000 LINKS 0114 LINKSW 0113 LINPAG 0112 LINSIZ 0023 LISTSW 0061 LITRL 0100 unreferenced LL 1204 LMAIN 1603 LOCTR1 0026 LOCTR2 0027 LOOK 2203 LOOKP 4660 LOOKUP 2242 LOOP6B 4012 LOUBUF 4470 LPAGE1 0110 LPAGE2 0111 LSLP 5067 LSTOFX 4001 LSTONX 4000 LTEMP 0066 LUNAME 0600 LUPBKT 5033 M3 0140 MAXLIN 0066 MDERR 0633 ML 0000 MONTHS 6325 MOUBUF 3501 MPLP1 5123 MPLP2 5134 MSGDUN 2671 MU 5155 MUX 5154 NAME1 0052 NAME2 0053 NAME3 0054 NCHARS 0020 NCTMP 0022 NDIGT 2546 NEW 6400 NEWDON 6456 NEWESD 3600 NEWLIN 0240 NEWSCT 3717 NEXT 0016 NEXTIN 6502 NEXTST 0203 NINCTL 4201 NINDEV 4366 NINREC 4202 NL 1230 NLETR 2532 NOASM 0336 NODGT 2350 NODUMP 4532 NOENTS 5671 NOEXT 6523 NOFLO 2242 NOKBIN 6505 NOOPR 1766 NOP3 3230 unreferenced NOREL 1325 NORM 5055 NORMLP 5061 NOSCAL 4715 NOSYM 1656 NOTDOT 1633 NOTEG 0226 NOTNEG 4743 NOTSAM 2236 NOTSCT 1313 NOUBUF 0436 NOUDEV 4543 NP17 0120 NP2 6504 NP7700 0121 NSWTCH 2364 NT1 6461 NT2 6462 NTEMP 6460 NUM 2200 NUM1 0067 NUM2 0070 NUMBER 2277 NUMLUP 2304 NXTBKT 5106 OCHAR 0437 OCHAR1 0503 OCHAR2 0500 OCLOSE 4474 OCNT 0006 OCTALX 4004 OCTNUM 2331 OCTOUT 2757 OFFIT 0334 OFNAME 0515 OKBIN 6050 OKCND 4102 OKENT 3644 OKEXP 1652 OL 1235 OLDN3 0004 ONE 1713 unreferenced ONOFIL 4442 OOPEN 4400 OP 0123 OPCJMP 0744 OPCODE 0046 OPCTBL 0745 OPENIT 0331 OPR8R 1750 OPR8RS 2622 OPX 0122 ORGX 3730 OTEMP 0005 OTYPE 0533 OTYPP 0515 OUBLK 4432 OUBUF 6400 OUCCNT 4540 OUCOMN 0505 OUCTL 4200 OUCTLW 4467 OUDEVH 7400 OUDWCT 0513 OUELEN 4433 OUFILE 0106 OUFLD 0000 OUFNAM 4362 OUHNDL 4424 OUJMP 0447 OUJMPE 0512 OUNAME 4537 OUPOLD 0510 OUPTR 0511 OUREC 4471 OUSETP 0425 OUTBLK 3472 OUTBUF 5760 OUTDMP 4444 OUTEMP 0507 OUTINH 0514 OUTPTR 0015 OUTREL 3000 OUTSWT 0062 OUTTXT 4023 OUTWRD 3041 OVBUFR 5000 OVER 4677 OVER3 0400 OVERLY 3232 P 0067 P0LBUF 5200 unreferenced P0LIT 0101 unreferenced P1 1530 P2 1555 P260 2755 PAGEN 0103 PASBLK 3470 PASSNO 0056 PATCH 0301 PC 0105 PDIG 2751 PDP8MR 1215 PDPMR 0006 PDPOP 0020 PDPOPR 2115 PDPOR 2134 PL 0000 PLINE 2666 PNCHOF 0060 unreferenced PNDL 1571 PP2 0103 PRINT2 1520 PRLNXT 1411 PRLTST 1420 PRNTLN 1400 PRNTRL 3034 PRNTST 3063 PRTTMP 1400 PRTXT 1504 PSEUDO 1200 PSUDO 0005 PTP 0020 PUTABS 3032 PUTORG 3743 PUTVAL 0704 QENT 3642 QL 0000 R41 6077 R6L 2550 R6R 2555 RADIX 0065 RALF 0001 RDLOOP 0245 REASM 0304 RELERR 1014 REPCNT 0063 REPETX 0762 REPLEN 0201 REPLST 0202 RESET 3121 RETSYS 3425 RFORMF 1503 RL 1254 RSHFT 5020 RSLP 5024 SCALUP 4711 SCSWT 0064 SCTN 1623 unreferenced SECT8X 3663 SECTN 0004 unreferenced SECTX 3665 SEMICL 2423 SETSCT 3720 SETUP 5146 SHIFT 2364 SL 1331 START 0222 START3 3217 STPRNT 5031 STYPE 0024 SUBX 1251 SWTCH 4052 SX 1005 SYMBOL 1614 SYONLY 0117 TABIT 1423 TEN 2750 TENTH 2741 TEXTX 4006 TITBUF 0544 TITDAT 0552 TITLEN 0017 TL 1451 TMP 3424 TPNSH 6535 TRUE 4057 TRYBLK 0721 TRYEQU 0645 TRYEXP 2147 TTABS 0400 TTORG 1000 TTREL 1400 TTYCLA 1546 unreferenced TTYOUT 1542 TXABR 1556 TXALN 0005 TXBBIN 6305 TXBLN 0020 TXELN 0004 TXERR 0362 TXSLN 0005 TXSYM 2162 TYPCOD 3502 UL 0000 UNDEF 1734 USER 0001 unreferenced USR 0116 VERS 0003 VL 0000 VMSG 6276 VMTXT 0547 VNUM 0062 WL 0000 WORD1 0042 WORD2 0043 WRD 3111 X10 0010 X11 0011 X12 0012 X13 0013 X14 0014 XFLAG 0047 XINCR 0050 XITEMP 1251 XL 1557 XTERN 0002 unreferenced YL 0000 ZBCNT 0067 ZBLKX 4152 ZBTMP 0070 ZL 1564 ZRONDX 2616