File: LOAD5.LS of Disk: V50/Source/Source-Listing-PAL-3
(Source file text)
/ OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 1 / OS/8 F4 LOADER, V50A / / / / / FIXES FOR V23 J.K. 1975 / / .CORE ROUTINE- RECOGNIZE CORE RESTRICTION / / / / CHAMGES FOR OS/8 V3D AND OS/78 BY P.T. / .CHANGED VERSION NUMBER TO 24A / .PUT IN NEW DATE ALGORITHM / / 0050 VERNUM=50 0302 PATCH="B 7757 MREAD=7757 7776 SBLOCK=7776 7400 ESDPG= 7400 /START OF ESD REFERENCE PG IN FIELD 1 7200 LHDR= 7200 /WD0 IN CORE OF LDR HDR IN FIELD 1 7643 OS8SWS= 7643 7746 OSJSWD= 7746 7760 OS8DCB= 7760 7666 OSDATE= 7666 7344 AC7776= CLL STA RAL 7346 AC7775= CLL STA RTL 7330 AC4000= CLA STL RAR 7332 AC2000= CLA STL RTR 7326 AC0002= CLA STL RTL / PASS0 DEFINITIONS / ----- ----------- 6000 MCTTBL= 6000 /MODULE COUNT TABLE BASE 0343 OVTLEN= 2^20^7+2+1 /2 WORDS/OVERLAY, 2 FOR MAIN & 1 FGL 5435 OVLTBL= MCTTBL-OVTLEN /(FGL = FOR GOOD LUCK) 6172 MODTBL= 21^7+MCTTBL+3 /START OF MODULE TABLE 0254 NUMMOD= 7200-MODTBL%3 /NUMBER OF ENTRIES IN MODULE TABLE 0016 PTRIO= NDX6 /FLD1;INIT SET TO 7617-1 7000 RALFBF= 7000 /FLD1;BLK TO READ"ESD"FOR FILE CHK / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 2 /LOADER IMAGE HEADER BLOCK DUMMY SECTION NOPUNCH 7200 *LHDR 007200 0002 2 /LOADER IMAGE FILE ID 007201 0000 QRTSWP, ZBLOCK 2 /SWAPPER ARGS TO LOAD AND START USER MAIN 007203 0000 QHGHAD, ZBLOCK 2 /HIGHEST ADDRESS USED BY THIS PROGRAM 007205 0000 QVERNO, 0 /LOADER VERSION NUMBER 007206 0000 QDPFLG, 0 /"D.P. HARDWARE REQUIRED" FLAG 007207 0000 QUSRLV, ZBLOCK 40 /USER OVERLAY LEVEL DSRN INFO 007247 0000 LDBUFS, ZBLOCK 50 /PASS2 BUFFER POINTERS ENPUNCH /RTS ENTRY POINTS /** SOME OF THESE MAY CHANGE IN FUTURE VERSIONS OF RTS ** /** (I HOPE NOT) 0204 JARGER= 204 0210 JBAK= 210 0203 JDATE= 203 0213 JDEF= 213 0412 JDISMS= 412 0211 JENDF= 211 0016 JEOFSW= 16 0223 JEXIT= 223 0524 JHANG= 524 0227 JIDLE= 227 0403 JINT= 403 0217 JRDAO= 217 0221 JREADO= 221 0206 JRENDO= 206 0235 JRETRN= 235 0212 JREW= 212 0207 JRSVO= 207 0215 JRUO= 215 0222 JSWAP= 222 0225 JT812= 225 0204 JUERR= 204 0216 JWDAO= 216 0220 JWRITO= 220 0214 JWUO= 214 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 3 0000 *0 000000 0000 TMP0, 0 /TMP0-TMP4 FOR GEN. USE 000001 0000 TMP1, 0 000002 0000 TMP2, 0 000003 0000 TMP3, 0 0010 *10 /INDEX REGISTERS 000010 0000 NDX0, 0 000011 0000 NDX1, 0 000012 0000 NDX2, 0 000013 0000 NDX3, 0 000014 0000 NDX4, 0 000015 0000 NDX5, 0 000016 0000 NDX6, 0 000017 5434 NDX7, OVLTBL-1 /POINTER INTO OVERLAY LENGTH TABLE 000020 0200 USR, 200 /USR CALL: COULD BE 200 OR 7700 000021 1600 PPACK, PACK /CHANGED TO TTYO BY ERROR ROUTINE 000022 0000 IOFLG, 0 000023 2437 SYMTM3, SYMTBL-3 000024 0000 ORGFLG, 0 000025 0000 RFPTR1, 0 000026 0000 GPTR, 0 000027 0000 LBPTR, 0 000030 0000 TRPCNT, 0 000031 0000 P2FLG, 0 000032 0000 CZFLG, 0 000033 0000 F1FLG, 0 000034 0000 S8FLG, 0 000035 7777 OVRFLO, -1 000036 7777 SWITZ, -1 000037 7774 SVMAIN, -4 /0 IF /S SPECIFIED 000040 0000 DPFLG, 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 4 /MORE PAGE ZERO LOCATIONS 000041 0000 GTYP, 0 000042 0000 EPTR, 0 000043 0000 EPT2, 0 000044 0000 ETYP, 0 000045 0000 BPTR, 0 000046 0000 BPT2, 0 000047 0000 REFPTR, 0 000050 0000 RLEN, 0 000051 0000 FTMP0, 0;0 000052 0000 000053 0000 RBLK, 0 000054 0000 FATAL, 0 000055 7247 BP, LDBUFS /POINTER INTO PASS2 BUFFER ARRAY 000056 0001 A1, 1;0 /CURRENT ADDRESS IN FIELDS 1-7 000057 0000 000060 0000 LNONUM, 0 000061 0000 LBCNT, 0 000062 0000 BLKCNT, 0 000063 0000 TRAPV, 0;0 000064 0000 000065 0000 BLKSIZ, 0 000066 0000 BSECTP, 0 /POINTER INTO BINARY SECTION TABLE (PASS 2) 000067 0000 OUTINH, 0 000070 0000 BLKBEG, 0 000071 0000 NEWBLK, 0 000072 0000 NEWLEN, 0 000073 0000 MCNT, 0 000074 0000 MBGCNT, 0 000075 0000 TMP4, 0 000076 0000 TMP5, 0 0200 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 5 /LOADER STARTS AT 200 000200 2202 ISZ .+2 /NON-CHAIN ENTRY 000201 5602 JMP I .+1 /CHAIN ENTRY 000202 4600 START /COME HERE TO READ/WRITE THE LOADER IMAGE. 000203 0000 LDRIO, 0 /AC=4000 FOR WRITE, 0 FOR READ 000204 3237 DCA LDRIOC /STORE READ/WRITE 000205 4777 JMS I (NEWBUF 000206 1055 TAD BP 000207 3240 DCA LDRIOA 000210 2240 ISZ LDRIOA 000211 1640 TAD I LDRIOA 000212 3241 DCA LDRIOB /BLOCK # 000213 2240 ISZ LDRIOA 000214 1640 TAD I LDRIOA /NUMBER OF BLOCKS LEFT IN SECTION 000215 7550 SPA SNA 000216 5243 JMP LDRIOR /NULL BUFFER - JUST IN CASE 000217 1177 TAD [-4 000220 7500 SMA 000221 7200 CLA /IF >4 BLOCKS LEFT ONLY DO 4 000222 1176 TAD [4 000223 7112 CLL RTR 000224 7012 RTR 000225 7012 RTR 000226 1237 TAD LDRIOC /ADD READ/WRITE 000227 6201 CDF 0 000230 1776 TAD I (OUTFLD 000231 1375 TAD (-CDF 000232 3237 DCA LDRIOC /STORE R/W + BLOCK COUNT + FLD BITS 000233 1070 TAD BLKBEG 000234 3240 DCA LDRIOA 000235 4575 JMS I [IOHAN /DF MUST BE 0 HERE! 000236 2144 LIMGU /LOADER IMAGE FILE 000237 0000 LDRIOC, 0 000240 0000 LDRIOA, 0 000241 0000 LDRIOB, 0 000242 6211 CDF 10 000243 7200 LDRIOR, CLA 000244 5603 JMP I LDRIO / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 6 000245 0000 SETBGX, 0 000246 7201 CLA IAC 000247 1026 TAD GPTR 000250 4252 JMS SETBPT /EXTREMELY COMMON SEQUENCE 000251 5645 JMP I SETBGX 000252 0000 SETBPT, 0 000253 3045 DCA BPTR /STORE BPTR 000254 7201 CLA IAC 000255 1045 TAD BPTR 000256 3046 DCA BPT2 /AND PTR TO NEXT WD 000257 5652 JMP I SETBPT 000260 1114 ORGMSG, TEXT /ILLEGAL ORIGIN/ 000261 1405 000262 0701 000263 1440 000264 1722 000265 1107 000266 1116 000267 0000 000270 1726 SYMMSG, TEXT /OVER SYMB/ 000271 0522 000272 4023 000273 3115 000274 0200 000275 1417 IOMSG, TEXT %LOADER I/O ERROR% 000276 0104 000277 0522 000300 4011 000301 5717 000302 4005 000303 2222 000304 1722 000305 0000 000306 1723 ENTMSG, TEXT %OS/8 ENTER ERROR% 000307 5770 000310 4005 000311 1624 000312 0522 000313 4005 000314 2222 000315 1722 000316 0000 000375 1577 000376 2721 000377 2666 0400 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 7 /TTYHAN- TTY HANDLER FOR OUTPUT OF ANY MESSAGE IN ANY FIELD. / MESSAGE MUST BE FIELD CONTAINED & TERMINATE WITH 0 / HANDLER CAN BE CALLED ACROSS FLDS WITH AC CLR. / RTN WITH"IF & DF" SET TO CALLING FLD. / / CALL CDF X /X=FLD OF CALLER*10 / CIF Y /Y=FLD OF TTYHAN*10 / JMS TTYHAN / CDF Z /Z=FLD OF MESS.BUF / BUFADR /MESS BUF. ADDR. / 000400 0000 TTYHAN, 0 000401 1377 TAD (6203 /SETUP MICRO INSTR 000402 6214 RDF /CDF & CIF FOR RTN 000403 3242 DCA CRLFF+1 000404 1600 TAD I TTYHAN /SET UP FLD OF 000405 3214 DCA TTYCDF /MESS BUF 000406 2200 ISZ TTYHAN 000407 7040 CMA 000410 1600 TAD I TTYHAN /SET UP MESS BUFF ADDR-1 000411 3244 DCA MESADR 000412 2200 ISZ TTYHAN 000413 3245 DCA MESADR+1 000414 0000 TTYCDF, 0 000415 4321 JMS CRLF 000416 2245 TTYLP, ISZ MESADR+1 000417 5222 JMP .+3 000420 1644 TAD I MESADR 000421 5231 JMP HAF 000422 2244 ISZ MESADR 000423 7240 CLA CMA 000424 3245 DCA MESADR+1 000425 1644 TAD I MESADR 000426 7012 RTR 000427 7012 RTR 000430 7012 RTR 000431 0174 HAF, AND [77 000432 7450 SNA 000433 5241 JMP CRLFF 000434 1173 TAD [240 000435 0174 AND [77 000436 1173 TAD [240 000437 4313 JMS TTYO 000440 5216 JMP TTYLP 000441 4321 CRLFF, JMS CRLF 000442 0000 0 000443 5600 JMP I TTYHAN 000444 0000 MESADR, 0 000445 0000 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 8 000446 0000 RTNOS8, 0 /HERE ON PASS1 FATAL ERROR 000447 7240 STA 000450 6211 CDF 10 000451 3776 DCA I (OVLTBL /PRINT SYMBOL MAP W/O OVERLAY LENGTH TABLE 000452 4775 DOMAP, JMS I (SYMMAP 000453 6201 CDF 000454 1646 TAD I RTNOS8 /ADDR OF TTY 000455 3260 DCA .+3 /MSG 000456 4572 JMS I [TTYHAN 000457 6201 CDF 000460 0000 0 000461 1374 TAD (TTYO 000462 3021 DCA PPACK /FAKE OUT SYMBOL PRINTER 000463 1060 TAD LNONUM 000464 3041 DCA GTYP /PUT LEVEL AND OVERLAY IN GTYP 000465 4773 JMS I (CVLOVL /OUTPUT LEVEL AND OVERLAY 000466 7346 AC7775 000467 3076 DCA TMP5 /PRINT 3 DIGIT FILE-WITHIN-OVERLAY 000470 1073 TAD MCNT 000471 1074 TAD MBGCNT 000472 7001 IAC 000473 7106 CLL RTL 000474 7004 RAL 000475 4772 JMS I (CVRT 000476 4321 JMS CRLF /OUTPUT CRLF AFTERWARDS 000477 5700 JMP I .+1 /RTN TO 000500 7605 7605 /OS8 000501 0001 LDRNAM, 1;0617;2224;2216;1404 /SYS:FORTRN.LD 000502 0617 000503 2224 000504 2216 000505 1404 000506 0000 ZBLOCK 5 /NO DEFAULT SYMBOL MAP DEVICE 000513 0000 TTYO, 0 000514 6046 TLS 000515 6041 TSF 000516 5315 JMP .-1 000517 7200 CLA 000520 5713 JMP I TTYO / 000521 0000 CRLF, 0 000522 1371 TAD (215 000523 4313 JMS TTYO 000524 1370 TAD (212 000525 4313 JMS TTYO 000526 5721 JMP I CRLF / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 9 /OS8ER- USED WHEN AN OS/8 ERROR OCCURS WHICH IS FATAL 000527 0000 OS8ER, 0 000530 6201 CDF 0 000531 4572 JMS I [TTYHAN 000532 6201 CDF 0 /FLD OF MESS BUF 000533 0535 SYSERR /ADR OFMESS BUF 000534 5571 JMP I [7605 /RTN TO OS8 000535 2331 SYSERR, TEXT /SYSTEM ERROR/ 000536 2324 000537 0515 000540 4005 000541 2222 000542 1722 000543 0000 000544 4040 TYTBL, 4040 /CHARS FOR SMAP 000545 0530 0530 /EX (EXTERN) 000546 4040 4040 /GOOD TYPES ARE 000547 4040 4040 /SPACES 000550 1505 1505 /ME (MUL ENTRY) 000551 1523 1523 /MS (MUL SECTN) 000552 4040 4040 /GEN 8MOD SECT 000553 4040 4040 /8MOD COM SECT 000554 4040 4040 /8MOD F1 SECT 000570 0212 000571 0215 000572 1651 000573 1727 000574 0513 000575 1400 000576 5435 000577 6203 0600 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 10 /IOHAN- I/O HANDLER 1)FETCHES A OS8 DEVICE HANDLER; / 2)CHKS FOR E.O.FILE;3)ISSUES CALL TO THE HANDLER. / RTN TO CALLER WITH "IOFLG" SET IF / NUM OF BLKS TRANSF LESS THAN REQ AMT. / CAN BE CALLED FROM ANY FLD / IF AC=0,DO ALL OF THE ABOVE. / IF AC=DEV NUM,DO ONLY "FETCH"PART / / CALL CDF X / CIF Y / JMS IOHAN / ADDR /PTR TO UNIT,LEN,STBLK OF FILE IN FLD 1 / ARG(1)/OS8 ARG: FCN CTRL WD / ARG(2)/ " : TRNASF BUF ADR / ARG(3)/ " : REL STBLK OF TRANSF / 000600 0000 IOHAN, 0 000601 3340 DCA UNITSV /SAV DEV NUM IF ONE 000602 3022 DCA IOFLG /CLR FLG 000603 6214 RDF 000604 1363 TAD P6201 000605 3342 DCA GETCDF+1 000606 7326 CLA CLL CML RTL /SETUP CIF & CDF FOR 000607 1342 TAD GETCDF+1/RTN JMP 000610 3334 DCA RTNIO /FETCH A DEV HANDLER OR LOOKUP ENTRY PT /IF DESIRED HANDLER IS IN CORE 000611 1340 TAD UNITSV /GET DEV NUM IF ONE 000612 7650 SNA CLA /JUST A FETCH? 000613 5216 JMP .+3 /NO 000614 4346 JMS INQIRE /YES 000615 5334 JMP RTNIO 000616 1600 TAD I IOHAN /GET PTR TO UNIT(DEV NUM) 000617 3337 DCA ULSADR 000620 6211 CDF 10 000621 1737 TAD I ULSADR /GET DEV NUM 000622 0170 AND [17 000623 7450 SNA 000624 4567 JMS I [OS8ER 000625 3340 DCA UNITSV 000626 4346 JMS INQIRE /CHK FOR E.O.FILE 000627 2200 ISZ IOHAN 000630 4341 JMS GETCDF 000631 1600 TAD I IOHAN /GET FCN CTRL WD 000632 7106 CLL RTL /NUM OF PAGES IS CONVRTED 000633 7006 RTL /TO NUM BLKS & PUT 000634 7006 RTL /IN BITS 8-11 000635 0170 AND [17 000636 3000 DCA TMP0 /NUM BLKS TO TRANSF / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 11 /SETUP FCN CTRL WD; TRANSF BUF ADR; & ABS STBLK OF TRANSF /FOR OS8 CALL TO HANDLER 000637 1600 TAD I IOHAN /FCN CTRL WD 000640 3327 DCA FCNWD 000641 2200 ISZ IOHAN 000642 1600 TAD I IOHAN /TRANSF BUF ADR 000643 3330 DCA FCNWD+1 000644 2200 ISZ IOHAN 000645 1600 TAD I IOHAN /GET REL STBLK & BUILD 000646 1000 TAD TMP0 /ABS STBLK 000647 7141 CIA CLL 000650 2337 ISZ ULSADR 000651 6211 CDF 10 000652 1737 TAD I ULSADR /FILE LEN-(REL STB+NUM BLKS) 000653 7460 SNL SZA /E.O.FILE CONDITION? 000654 5257 JMP .+3 /YES 000655 7600 P7600, CLA 400 /NO 000656 5305 JMP SETSBN 000657 1000 TAD TMP0 000660 7540 SMA SZA /ANY BLKS TO TRANSF? 000661 5271 JMP IOH /YES 000662 7200 CLA /NO /CHK IF FILE LEN=0; IF SO DO SEQ STUFF 000663 1737 TAD I ULSADR 000664 7650 SNA CLA /SEQ DEV? 000665 5272 JMP IOH+1 /YES 000666 7040 CMA /NO,=-1 IF NUM BLKS TRANSF L.T. REQ 000667 3022 DCA IOFLG 000670 5334 JMP RTNIO 000671 3000 IOH, DCA TMP0 /THIS NUM OF BLKS /UPDATE FCN CTRL WD IN OS8 CALL 000672 1327 TAD FCNWD 000673 0377 AND (4077 /REMOVE REQ NUM OF PGS 000674 3327 DCA FCNWD /& PUT IN THE 000675 1000 TAD TMP0 /ALTERED NUM 000676 7112 CLL RTR 000677 7012 RTR 000700 7012 RTR 000701 1327 TAD FCNWD 000702 3327 DCA FCNWD 000703 7040 CMA /=-1 IF NUM BLKS TRANSF L.T. REQ 000704 3022 DCA IOFLG /SETUP STARTING BLK NUMBER / 000705 2337 SETSBN, ISZ ULSADR 000706 6211 CDF 10 000707 1737 TAD I ULSADR /GET ABS STBLK 000710 4341 JMS GETCDF /GET DF 000711 1600 TAD I IOHAN /ADD REL STBLK 000712 3331 DCA FCNWD+2 000713 1600 TAD I IOHAN /UPDATE REL STBLK 000714 1000 TAD TMP0 /BY NUM BLKS OF TRANSF 000715 3600 DCA I IOHAN / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 12 /CALL TO THE HANDLER 000716 6201 CDF 0 /IOHAN & OS8 DEV HAN IN FLD 0 000717 1255 TAD P7600 /CHK FOR CTRLC 000720 6034 KRS 000721 1376 TAD (-7603 000722 7650 SNA CLA 000723 6031 KSF 000724 7410 SKP 000725 5571 JMP I [7605 000726 4736 JMS I IOENT 000727 0000 FCNWD, 0 000730 0000 0 000731 0000 0 000732 5344 JMP HNDERR /ERROR RETURN OF CALL 000733 2200 ISZ IOHAN 000734 0000 RTNIO, 0 /CIF INSTR 000735 5600 JMP I IOHAN 000736 0000 IOENT, 0 000737 0000 ULSADR, 0 000740 0000 UNITSV, 0 / 000741 0000 GETCDF, 0 000742 0000 0 000743 5741 JMP I GETCDF 000744 4566 HNDERR, JMS I [RTNOS8 000745 0275 IOMSG / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 13 /INQIRE- DETERMINE IF DESIRED DEV HANDLER IS IN CORE / & IF SO,GET ITS ENTRY PT 7647 DVTBL=7647 000746 0000 INQIRE, 0 000747 6211 CDF 10 000750 1340 TAD UNITSV 000751 1375 TAD (DVTBL-1 000752 3336 DCA IOENT /ADR OF ENRTY PT IN RESID. TBL 000753 1736 TAD I IOENT /GET ENTRY PT IF ONE 000754 3336 DCA IOENT 000755 1336 TAD IOENT 000756 7640 SZA CLA /DEV HAN WAS IN CORE? 000757 5746 JMP I INQIRE /YES 000760 1374 TAD (7201 /NO 000761 3367 DCA P6201+4 000762 1340 TAD UNITSV /GET DEV NUM BK 000763 6201 P6201, CDF 0 000764 6212 CIF 10 000765 4420 JMS I USR 000766 0001 1 000767 0000 0 000770 4567 JMS I [OS8ER 000771 1367 TAD .-2 000772 3336 DCA IOENT 000773 5746 JMP I INQIRE 000774 7201 000775 7646 000776 0175 000777 4077 1000 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 14 001000 0000 NXTESD, 0 001001 2042 ISZ EPTR /ADV PTR TO 001002 2042 ISZ EPTR /WD 0 OF 001003 1042 TAD EPTR /NEXT ENTRY 001004 0165 AND [377 /IF AT BLK 001005 7650 SNA CLA /BOUNDARY 001006 1176 TAD [4 /BUMP IT FOUR 001007 1042 TAD EPTR 001010 4564 JMS I [SETEPT 001011 1163 TAD [3 /CHECK FOR 001012 1042 TAD EPTR /END OF 001013 3000 DCA TMP0 /ESD 001014 1400 TAD I TMP0 /TYPE WD 001015 0170 AND [17 /TO AC B8-B11 001016 7440 SZA /LAST ESD? 001017 2200 ISZ NXTESD /NO 001020 3044 DCA ETYP /SAVE TYPE 001021 5600 JMP I NXTESD / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 15 001022 0000 ADVOVR, 0 /UPDATE PASS1 PASS2 ARGS 001023 2073 ISZ MCNT /MORE MODS IN THIS OVR? 001024 5303 JMP SAMOVR /YES 001025 4315 JMS NXTOVR /SET ARGS FOR NEXT OVER 001026 5246 JMP EOLVL /RTN HERE= END OF LEVEL 001027 1031 TAD P2FLG /DOING PASS2 ? 001030 7700 SMA CLA 001031 5242 JMP BY10 /NO 001032 1377 TAD (2 /GET NEW LDR 001033 1066 TAD BSECTP /IMAGE REL BLK 001034 3000 DCA TMP0 /FOR NEXT OVR 001035 1000 TAD TMP0 001036 3010 DCA NDX0 001037 1410 TAD I NDX0 /LENGTH OF OVERLAY 001040 1400 TAD I TMP0 /PLUS OLD RELATIVE BLOCK 001041 3400 DCA I TMP0 /EQUALS NEW RELATIVE BLOCK 001042 1060 BY10, TAD LNONUM /ADD 1 TO BITS 001043 1376 TAD (20 /4-7 OF LEVEL 001044 3060 DCA LNONUM /AND OVR LAY NUM 001045 5303 JMP SAMOVR 001046 4315 EOLVL, JMS NXTOVR /GET NXT OVR NEW LEVEL 001047 5307 JMP SAMOV4 /HERE=END OF ALL LEVELS 001050 1060 TAD LNONUM /ADD 1 TO 001051 0162 AND [3400 /THE LEVEL 001052 1375 TAD (400 /BITS (1-3) 001053 3060 DCA LNONUM /AND CLEAR THE OVR BITS 001054 1031 TAD P2FLG 001055 7700 SMA CLA /DOING PASS2 ? 001056 5263 JMP BY7 /NO 001057 1176 TAD [4 001060 1066 TAD BSECTP /UPDATE BIN SECTION PTR 001061 3066 DCA BSECTP 001062 5303 JMP SAMOVR / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 16 001063 2774 BY7, ISZ I (LEVSYM+2 /SET THE INTERNAL LEVEL SYMBOL TO LEVLN+1 001064 1373 TAD (LEVSYM /ENTER NEW 001065 4561 JMS I [LOOK /LEVEL SYMBOL INTO GST 001066 1176 TAD [4 001067 1060 TAD LNONUM /SET TYPE 001070 3426 DCA I GPTR /TO PROG SECTION 001071 7001 IAC /SET PTR TO 001072 1026 TAD GPTR /NEW LEVEL 001073 3560 DCA I [LVPTR 001074 1446 LEVRND, TAD I BPT2 001075 7100 CLL 001076 1165 TAD [377 /ROUND UP OLD LEVEL 001077 0157 AND [7400 /TO A BLOCK BOUNDARY 001100 7430 SZL 001101 2445 ISZ I BPTR /MIND THE CARRIES! 001102 3446 DCA I BPT2 001103 1163 SAMOVR, TAD [3 /ADV PTR TO 001104 1025 TAD RFPTR1 /NXT RALF 001105 3025 DCA RFPTR1 /MODULE 001106 5622 JMP I ADVOVR 001107 2222 SAMOV4, ISZ ADVOVR /BUMP RETURN 001110 1031 TAD P2FLG 001111 7710 SPA CLA 001112 5303 JMP SAMOVR /SKIP ROUNDUP IF PASS 2 001113 4772 JMS I (LEVLUP /MERGE OVERLAY SIZE INTO LEVEL SIZE 001114 5274 JMP LEVRND /AND RND UP LAST LEVEL / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 17 001115 0000 NXTOVR, 0 /HERE AT END OF OVERLAY 001116 2350 ISZ MTBL /GET NUM OF 001117 1750 TAD I MTBL /MOD IN NXT 001120 7450 SNA /OVR 001121 5715 JMP I NXTOVR /=END OF LEVEL 001122 3074 DCA MBGCNT 001123 1074 TAD MBGCNT 001124 7041 CIA 001125 3073 DCA MCNT 001126 1031 TAD P2FLG 001127 7700 SMA CLA 001130 4772 JMS I (LEVLUP /SET CUR. LEVL =MAX (CUR LEVL, CURNT OVR) 001131 2315 ISZ NXTOVR /RTN P+1 IF 001132 5715 JMP I NXTOVR /NOT END OF LEVEL 001133 0000 SETCNT, 0 001134 1371 TAD (MCTTBL+1 /PTR TO MOD 001135 3350 DCA MTBL /COUNT TBL 001136 1750 TAD I MTBL /-NUM IN 001137 3074 DCA MBGCNT 001140 1074 TAD MBGCNT 001141 7041 CIA /MAIN 001142 3073 DCA MCNT 001143 1370 TAD (MODTBL+3 /PTR TO TOP 001144 3025 DCA RFPTR1 /OF MOD TBL 001145 3767 DCA I (OVRSIZ 001146 3766 DCA I (OVRSIZ+1 001147 5733 JMP I SETCNT 001150 0000 MTBL, 0 001166 2150 001167 2147 001170 6175 001171 6001 001172 4507 001173 2050 001174 2052 001175 0400 001176 0020 001177 0002 1200 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 18 /LOOKUP OR ENTER A SYMBOL INTO /GLOBAL SYMBOL TABLE (GST). PTR /TO SYMBOL IN FIELD 1 IS IN /AC. USUALLY ITS AN ESD. /RTN P+1=NO MATCH /RTN P+2=MATCH 001200 0000 LOOK, 0 001201 3000 DCA TMP0 /PTR TO SYM 001202 6211 CDF 10 001203 1400 TAD I TMP0 /SELECT 001204 7012 RTR /BUCKET 001205 7012 RTR /A-Z, SPACE 001206 7012 RTR /OR POUND 001207 0174 AND [77 001210 1377 TAD (BUCKET-1 /PTR TO BUCKET 001211 3001 LOP5, DCA TMP1 /PTR TO PREV ENTRY 001212 1401 TAD I TMP1 /PTR TO NEXT ENTRY 001213 7450 SNA /0=BUCKET BOTTOM 001214 5264 JMP HOOKIN /NO MATCH 001215 7001 IAC /APPEND SYMBOL 001216 3026 DCA GPTR /LOOK FOR 001217 7346 AC7775 /3 WORD MATCH 001220 3002 DCA TMP2 001221 1000 TAD TMP0 001222 3042 DCA EPTR 001223 1442 YUCCH, TAD I EPTR 001224 7141 CIA CLL 001225 1426 TAD I GPTR 001226 7640 SZA CLA 001227 5260 JMP YECCH /SYMBOLS DIFFER 001230 2042 ISZ EPTR 001231 2026 ISZ GPTR 001232 2002 ISZ TMP2 /ALL MATCH? 001233 5223 JMP YUCCH /NO 001234 2200 ISZ LOOK /BUMP RTN 001235 1442 SETTYP, TAD I EPTR /GET ESD TYPE 001236 0170 AND [17 001237 3044 DCA ETYP 001240 7201 CLA IAC 001241 1042 TAD EPTR 001242 4564 JMS I [SETEPT /BUMP EPTR AND SET EPT2 001243 1442 TAD I EPTR /GET ESD NUM 001244 7012 RTR /IN B1-B7 001245 7012 RTR /AND SET 001246 0376 AND (177 /REFERENCE 001247 1375 TAD (ESDPG /POINTER 001250 3047 DCA REFPTR 001251 1426 TAD I GPTR /SET GST 001252 0170 AND [17 /TYPE 001253 3041 DCA GTYP /FIELD BITS OF 001254 1442 TAD I EPTR /VALUE WORDS 001255 0156 AND [7 /CLR / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 18-1 001256 3442 DCA I EPTR /HI 9 001257 5600 JMP I LOOK / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 19 001260 7430 YECCH, SZL /IS NEW GUY LESS THAN GST ENTRY? 001261 5264 JMP HOOKIN /YES HOOK-IN HERE 001262 1401 TAD I TMP1 001263 5211 JMP LOP5 /TRY NEXT 001264 1401 HOOKIN, TAD I TMP1 /GET FWD LINK 001265 3414 DCA I NDX4 /TO NEXT INTO 001266 1014 TAD NDX4 /NEW. PUT FWD 001267 3401 DCA I TMP1 /LINK TO NEW INTO PREV. 001270 1000 TAD TMP0 /3 SYM 001271 3042 DCA EPTR /INTO GST 001272 7346 AC7775 001273 3002 DCA TMP2 001274 1442 TAD I EPTR 001275 3414 DCA I NDX4 001276 2042 ISZ EPTR 001277 2002 ISZ TMP2 001300 5274 JMP .-4 001301 2014 ISZ NDX4 /SET PTR TO 001302 1014 TAD NDX4 /WORD 4 (TYPE) 001303 3026 DCA GPTR /OF GST 001304 2014 ISZ NDX4 /SET PTR TO NEXT 001305 2014 ISZ NDX4 /FREE ENTRY 001306 1156 TAD [7 /SEE IF 001307 1014 TAD NDX4 /GST IS FULL 001310 1315 TAD ENDSYM /END OF GST 001311 7750 SPA SNA CLA 001312 5235 JMP SETTYP /ITS OK 001313 4566 JMS I [RTNOS8 /SYMBOL TABLE 001314 0270 SYMMSG /OVER FLOW 001315 2344 ENDSYM, 1-OVLTBL 001316 0000 SETEPT, 0 001317 3042 DCA EPTR 001320 7201 CLA IAC 001321 1042 TAD EPTR 001322 3043 DCA EPT2 /SET PTR TO BOTH WDS OF DBLWD 001323 5716 JMP I SETEPT / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 20 001324 0000 GETTYP, 0 /ADV GST PTR 001325 1156 TAD [7 /TO WD 4 OF 001326 1026 TAD GPTR /ENTRY 001327 3026 DCA GPTR /CHECK FOR 001330 1026 TAD GPTR 001331 1315 TAD ENDSYM 001332 7700 SMA CLA 001333 5724 JMP I GETTYP 001334 1426 TAD I GPTR /END OF GST. 001335 7640 SZA CLA /IF NOT END, 001336 2324 ISZ GETTYP /ISZ RETURN. 001337 5724 JMP I GETTYP 001340 0000 OLINE, 0 /OUTPUT A LINE OF TEXT TO THE SYMBOL MAP 001341 3076 DCA TMP5 001342 1476 OLINLP, TAD I TMP5 001343 4774 JMS I (HAFWD 001344 1476 TAD I TMP5 001345 2076 ISZ TMP5 001346 0174 AND [77 001347 7640 SZA CLA 001350 5342 JMP OLINLP 001351 4555 JMS I [PCRLF /DOUBLE SPACE AFTERWARDS 001352 4555 JMS I [PCRLF 001353 5740 JMP I OLINE 001374 1531 001375 7400 001376 0177 001377 1777 1400 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 21 /HERE TO OUTPUT SYMBOL MAP /EACH SYMBOL IN GST IS 7 WORDS LONG /THE FORMAT IS: /WD0 PTR TO NEXT ALPHABETICAL SYMBOL /WD1 SYMBOL NAME IN PACKED SIX BIT /WD2 ASCII. 00 IS INTERPRETED AS SPACE /WD3 SIX CHARS MAX PER SYMBOL /WD4 B0=1=TRAP VECT SYMBOL ON PASS1 OR / B0=1=PASS2 ERROR, B1-B3=LEVEL NUM / (0-7) B4-B7=OVERLAY NUM (0-17) / B8-B11=TYPE. TYPE FORMAT IS: / 0=END OF ESD TBL (NA TO LDR) / 1=ENTRY POINT / 2=EXTERN / 3=COMMON SECTION / 4=PROGRAM SECTION / 5=MULTIPLE ENTRY POINT / 6=MULTIPLE SECTION / 7=GENERAL 8-MODE SECTION / 10=FIELD1 8-M0DE SECTION / 11=COMMON PG0 8-MODE SECTION / 12-17=UNDEFINED / /WD5 B0-B8=PTR TO PARENT SYMBOL (0R 0) / ON PASS1 =TRAP VECTOR DISPLACEMENT / ON PASS2 / B9-B11=FIELD BITS OF SYMBOL /WD6 ADDR BITS OF SYMBOL /OUTPUT FORMAT OF MAP IS: / /SYMBOL VALUE LEVEL OVRNUM TYPE(*) / /THE TYPE COLUMN IS EITHER 2 BLANKS OR /EX=EXTERN /ME=MULTIPLE ENTRY POINT /MS=MULTIPLE SECTION /ASTERISK MEANS SOME TYPE OF ILLEGAL /REFERENCE TO A SYMBOL AND USUALLY /MEANS A LOADER ORIGINATED TRAP HAS /BEEN GENERATED SOMEWHERE IN THE BINARY /E.G. SUBR GROG AT LEVEL 2 CALLS SUBR /COLUMBO AT LEVEL 1. A USER 7 TRAP /WOULD BE GENERATED IN SUBR GROG, AND /THE SYMBOL COLUMBO WOULD HAVE AN /ASTERISK ASIDE OF IT IN THE TYPE /COLUMN / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 22 001400 0000 SYMMAP, 0 001401 6201 CDF 001402 1777 TAD I (LDRNAM+5 /MAP UNIT 001403 7450 SNA /IS IT 0 ? 001404 5324 JMP NOMAP /YES, NO MAP TO OUTPUT 001405 4575 JMS I [IOHAN /FETCH HANDLER 001406 1777 TAD I (LDRNAM+5 /ENTER OUTPUT 001407 6212 CIF 10 001410 4420 JMS I USR 001411 0003 3 001412 0507 MPBLK, LDRNAM+6 001413 0000 0 001414 5353 JMP ENTERR /WHOOPS WE HAVE AN ENTER ERROR 001415 1777 TAD I (LDRNAM+5 001416 0170 AND [17 001417 6211 CDF 10 001420 3776 DCA I (SMAPU /STORE SYMBOL MAP UNIT 001421 1376 TAD (SMAPU /SYMMAP ARGS 001422 3010 DCA NDX0 /FOR I/O 001423 1213 TAD MPBLK+1 /LENGTH 001424 7041 CIA 001425 3410 DCA I NDX0 001426 1212 TAD MPBLK 001427 3410 DCA I NDX0 001430 1375 TAD (BUCKET /START AT 1ST 001431 3050 DCA RLEN /BUCKET (A) 001432 1374 TAD (-42 /DO UP UNTIL BUT NOT INCL. 001433 3053 DCA RBLK /POUND SIGN 001434 7346 AC7775 /INIT PACK ARGS 001435 3054 DCA FATAL 001436 1373 TAD (RALFBF 001437 3075 DCA TMP4 001440 1301 TAD SM600 001441 3062 DCA BLKCNT 001442 4555 JMS I [PCRLF 001443 1372 TAD (TLINE 001444 4771 JMS I (OLINE 001445 1370 TAD (STLINE 001446 4771 JMS I (OLINE /OUTPUT TITLE AND SUBTITLE 001447 1450 TAD I RLEN /1ST SYM 001450 3026 LOP10, DCA GPTR 001451 1026 TAD GPTR /ANY MORE IN 001452 7440 SZA /THIS BUCKET ? 001453 5326 JMP JOUSYM /YES 001454 2050 ISZ RLEN /NXT BUCKET 001455 2053 ISZ RBLK /DONE ALL 001456 5247 JMP LOP10-1 /NO 001457 2036 ISZ SWITZ /BEEN HERE BEF? 001460 5267 JMP DUNMP /YES ALL DONE 001461 7240 CLA CMA /SET FOR JUST 001462 3053 DCA RBLK /POUND SYMS 001463 1037 TAD SVMAIN 001464 7450 SNA /DO ONLY #MAIN? / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 22-1 001465 5247 JMP LOP10-1 /NO - DO ALL # SYMBOLS 001466 7200 PRMAIN, CLA /** REPLACED WITH JMS I (OUTSYM ** / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 23 001467 1177 DUNMP, TAD [-4 /OUT PUT 001470 3076 DCA TMP5 /THE HIGHEST LOCATION 001471 1056 TAD A1 /USED BY THE PROGRAM 001472 1367 TAD (4060 /FLD BITS 001473 4331 JMS HAFWD 001474 1057 TAD A1+1 001475 4766 JMS I (CVRT 001476 1365 TAD (HLINE 001477 4771 JMS I (OLINE /PRINT " = HIGHEST LOC USED" 001500 4764 JMS I (PROVLY /PRINT OVERLAY TABLE 001501 7200 SM600, CLA /** AC NOT 0 ON RETURN** 001502 1363 TAD (214 001503 4421 JMS I PPACK 001504 1362 TAD (232 /CTRL Z 001505 4421 OUFILP, JMS I PPACK 001506 1062 TAD BLKCNT /HAVE WE FILLED 001507 1175 TAD [600 /A BLOCK UP COMPLETELY? 001510 7640 SZA CLA 001511 5305 JMP OUFILP /NO 001512 6201 CDF /CLOSE SYMMAP 001513 1761 TAD I (SYLST /AC=LENGTH 001514 3322 DCA SMPCLN 001515 1777 TAD I (LDRNAM+5 /MAP UNIT 001516 6212 CIF 10 001517 4420 JMS I USR 001520 0004 4 001521 0507 LDRNAM+6 001522 0000 SMPCLN, 0 001523 4567 JMS I [OS8ER 001524 6211 NOMAP, CDF 10 001525 5600 JMP I SYMMAP 001526 4760 JOUSYM, JMS I (OUTSYM 001527 1426 TAD I GPTR /NEXT SYM TO DO 001530 5250 JMP LOP10 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 24 001531 0000 HAFWD, 0 /OUTPUT THE 2 6 BIT ASCII CHARS IN AC 001532 3003 DCA TMP3 001533 1003 TAD TMP3 /LEFT HALF 1ST 001534 7012 RTR 001535 7012 RTR 001536 7012 RTR 001537 4343 JMS SIXTO8 001540 1003 TAD TMP3 001541 4343 JMS SIXTO8 001542 5731 JMP I HAFWD 001543 0000 SIXTO8, 0 /CVRT AC FROM 001544 0174 AND [77 /6 TO 8 BIT ASCII 001545 7440 SZA 001546 1173 TAD [240 /TURN ZEROS TO BLANKS 001547 0174 AND [77 001550 1173 TAD [240 001551 4421 JMS I PPACK /PUT IN BUFF IN PS/8 FORMAT 001552 5743 JMP I SIXTO8 001553 3757 ENTERR, DCA I (DOMAP /CANCEL SYMBOL MAP FROM RTNOS8 001554 4566 JMS I [RTNOS8 /AS WE MASY HAVE COME FROM SYMMAP 001555 0306 ENTMSG 001557 0452 001560 1672 001561 1646 001562 0232 001563 0214 001564 2400 001565 2117 001566 1651 001567 4060 001570 2104 001571 1340 001572 2067 001573 7000 001574 7736 001575 2000 001576 2141 001577 0506 1600 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 25 /PACK ASCII IN AC INTO OUTPUT BUFF IN /OS/8 3 WORD FORMAT TO 2 12 BIT WORDS 001600 0000 PACK, 0 001601 2054 ISZ FATAL /3RD WORD ? 001602 5215 JMP ONEOR2 /NO 001603 3000 DCA TMP0 /SAVE CHAR 001604 7344 AC7776 /BU BUFF PTR 001605 1075 TAD TMP4 001606 3075 DCA TMP4 001607 7346 AC7775 001610 3054 DCA FATAL /RESET CNTR 001611 4227 JMS ROL /POSITION HI 001612 3475 DCA I TMP4 001613 2075 ISZ TMP4 001614 4227 JMS ROL /POSITION LO 001615 3475 ONEOR2, DCA I TMP4 001616 2075 ISZ TMP4 001617 2062 ISZ BLKCNT /BLOCK FULL ? 001620 5600 JMP I PACK /NO 001621 4240 JMS WRBUF 001622 1245 TAD SBPTR 001623 3075 DCA TMP4 /RESET ARGS 001624 1377 TAD (-600 001625 3062 DCA BLKCNT 001626 5600 JMP I PACK 001627 0000 ROL, 0 001630 1000 TAD TMP0 /3RD CHAR 001631 7006 RTL /POSITION 001632 7006 RTL /BITS 001633 3000 DCA TMP0 /SAV FOR NXT CALL ON LO 001634 1000 TAD TMP0 001635 0157 AND [7400 001636 1475 TAD I TMP4 /ADD IN OLDY 001637 5627 JMP I ROL 001640 0000 WRBUF, 0 /WRITE OUT 001641 6201 CDF /SYM MAP 001642 4575 JMS I [IOHAN /BUFFER 001643 2141 SMAPU /ADDR OF SYM U 001644 4210 200^1!4000!10 /1 BLK OF FLD 1 001645 7000 SBPTR, 7000 /1ST ADDR 001646 0000 SYLST, 0 /REL BLK 001647 6211 CDF 10 001650 5640 JMP I WRBUF / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 26 001651 0000 CVRT, 0 /CONVERT AC TO 001652 3326 DCA CVRTMP /ASCII NUM 001653 1076 TAD TMP5 /-NUM OF DIGITS 001654 3001 DCA TMP1 /TO CONVERT 001655 1326 LOP7, TAD CVRTMP /CVRT LEFT TO 001656 7006 RTL /RIGHT 001657 7004 RAL /3 BITS PER 001660 3326 DCA CVRTMP /DIGIT 001661 1326 TAD CVRTMP 001662 7004 RAL 001663 0156 AND [7 001664 1376 TAD (260 001665 4421 JMS I PPACK 001666 2001 ISZ TMP1 /ENOUGH ? 001667 5255 JMP LOP7 /NO 001670 4775 JMS I (HAFWD /OUTPUT A PAIR 001671 5651 JMP I CVRT /OF SPACES 001672 0000 OUTSYM, 0 /DO ONE SYMBOL 001673 3011 DCA NDX1 /ADDRESS IN AC ON ENTRY 001674 7346 AC7775 001675 3002 DCA TMP2 001676 1411 TAD I NDX1 /SYMBOL IS 1ST 001677 4775 JMS I (HAFWD 001700 2002 ISZ TMP2 001701 5276 JMP .-3 001702 1411 TAD I NDX1 /SAVE 001703 3041 DCA GTYP /TYPE 001704 1411 TAD I NDX1 /FLD OF SYMBOL 001705 4352 JMS PR15 001706 4327 JMS CVLOVL /CONVERT ADDR, LEVEL, OVERLAY 001707 1041 TAD GTYP /NOW DO TYPE 001710 0374 AND (17 /ITS B8-B11 001711 1373 TAD (TYTBL-1 /PTR TO TBL OF 001712 3000 DCA TMP0 /CHAR PAIRS FOR 001713 6201 CDF 0 001714 1400 TAD I TMP0 /TYPE EG EX FOR 001715 6211 CDF 10 001716 4775 JMS I (HAFWD /EXTERN 001717 1041 TAD GTYP /IF ERROR WAS 001720 7710 SPA CLA /FOUND DURING PASS2 B0 OF TYPE=1 EG ILLEGAL SUBR CALL. * ON MAP INDICA 001721 1372 TAD (12 /PASS2 ERROR 001722 1173 TAD [240 001723 4421 JMS I PPACK 001724 4344 JMS PCRLF 001725 5672 JMP I OUTSYM 001726 0000 CVRTMP, 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 27 001727 0000 CVLOVL, 0 001730 7240 CLA CMA 001731 3076 DCA TMP5 /DO LEVEL NUM 001732 1041 TAD GTYP /ITS B1-B3 OF 001733 7004 RAL /OF TYPE WORD 001734 4251 JMS CVRT 001735 7344 AC7776 /DO OVER NUM 001736 3076 DCA TMP5 /ITS B4-B7 OF 001737 1041 TAD GTYP /TYPE WORD 001740 7006 RTL /POSITION INTO 001741 0371 AND (1700 /HI 2 DIGITS 001742 4251 JMS CVRT 001743 5727 JMP I CVLOVL 001744 0000 PCRLF, 0 001745 1370 TAD (215 /EOL 001746 4421 JMS I PPACK 001747 1367 TAD (212 001750 4421 JMS I PPACK 001751 5744 JMP I PCRLF 001752 0000 PR15, 0 001753 0156 AND [7 001754 1366 TAD (4060 001755 4775 JMS I (HAFWD 001756 1177 TAD [-4 /NOW DO ADDR OF 001757 3076 DCA TMP5 /SYMBOL 001760 1411 TAD I NDX1 001761 4251 JMS CVRT 001762 5752 JMP I PR15 001766 4060 001767 0212 001770 0215 001771 1700 001772 0012 001773 0543 001774 0017 001775 1531 001776 0260 001777 7200 2000 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 28 /PASS 2 OF LOADER - TRANSFORMS BINARIES INTO LOADER IMAGE FILE 002000 3060 PASS2, DCA LNONUM /SET FOR MAIN 002001 4777 JMS I (BLDTV /BUILD TRAP VECTOR 002002 1061 TAD LBCNT /PROCESS LIBR 002003 7041 CIA /MODULES 1ST 002004 7450 SNA /ANY TO DO? 002005 5217 JMP BY12 /NO 002006 3061 DCA LBCNT /=-NUM TO DO 002007 1027 TAD LBPTR /PTR TO 1ST 002010 3025 DCA RFPTR1 /LIBR MOD 002011 4307 JMS SETREF /INIT RELOC ARGS AND PROCESS TXT 002012 1163 TAD [3 /ADV TO NXT 002013 1025 TAD RFPTR1 /LIBR MOD. 002014 3025 DCA RFPTR1 002015 2061 ISZ LBCNT /DONE LIBR? 002016 5211 JMP .-5 /NO 002017 4776 BY12, JMS I (SETCNT /SET ARGS TO PROCESS USER MODS. 002020 4307 JMS SETREF /DO 1 MOD 002021 4775 JMS I (ADVOVR /ADVANCE ARGS 002022 5220 JMP .-2 /RTN HERE IF MORE TO DO 002023 4774 JMS I (WRALL /WRITE OUT ALL THE RESIDENT BIN BLOCKS / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 29 /END OF PASS 2 - RETURN TO OS8 OR CHAIN TO RSYS 002024 1373 TAD (7616 002025 3010 DCA NDX0 002026 1772 TAD I (LIMGU /SAVE UNIT AND BLOCK OF LOADER IMAGE 002027 3410 DCA I NDX0 /FILE IN CD AREA IN CASE WE CHAIN 002030 1771 TAD I (LIMGU+2 002031 3410 DCA I NDX0 /TO THE RUN-TIME-SYSTEM 002032 3410 DCA I NDX0 /A PRECAUTION 002033 6201 CDF 0 002034 6212 CIF 10 002035 4420 JMS I USR 002036 0010 10 /LOCK USR IN 002037 1370 TAD (200 002040 3020 DCA USR 002041 1767 TAD I (LDRNAM 002042 6212 CIF 10 002043 4420 JMS I USR 002044 0004 4 002045 0502 LDRNAM+1 /CLOSE LOADER IMAGE FILE 002046 0000 LDCLEN, 0 002047 4567 JMS I [OS8ER /OOPS! 002050 4766 JMS I (SYMMAP /PRINT SYMBOL TABLE IF REQUESTED 002051 1765 TAD I (OS8SWS 002052 6201 CDF 0 002053 0364 AND (40 /TEST /G SWITCH 002054 7650 SNA CLA 002055 5571 JMP I [7605 /NOT ON - RETURN TO OS8 002056 6211 CDF 10 002057 1763 TAD I (OS8SWS+1 002060 6201 CDF 0 002061 0362 AND (100 /TEST /R SWITCH FOR FRUN 002062 7650 SNA CLA 002063 5266 JMP LOOKRT /NO, IT'S FRTS 002064 1361 TAD (FRUNAM 002065 3272 DCA RTBLOK 002066 1760 LOOKRT, TAD I (SBLOCK /ON CCL-DEVICE 002067 6212 CIF 10 002070 4420 JMS I USR 002071 0002 2 002072 2475 RTBLOK, RTSNAM /LOOKUP FRTS OR FRUN 002073 0000 0 002074 5304 JMP NORTS 002075 1272 TAD RTBLOK 002076 3303 DCA CHBLOK /COPY LOOKUP BLOCK TO CHAIN 002077 1757 TAD I (MREAD-1 /ON CCL-DEVICE 002100 6212 CIF 10 002101 4420 JMS I USR 002102 0006 6 002103 0000 CHBLOK, 0 /------------------------ 002104 3756 NORTS, DCA I (LDRNAM+5 /KILL SECOND STORAGE MAP 002105 4566 JMS I [RTNOS8 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 29-1 002106 2465 RTSMSG / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 30 002107 0000 SETREF, 0 002110 4755 JMS I (RDRLES /GET MODULE ESD TABLE 002111 7344 AC7776 002112 3042 DCA EPTR 002113 4717 LOP12, JMS I .+4 /GET NXTESD 002114 5327 JMP BY11 /ALL DONE 002115 1042 TAD EPTR /LOOK UP 002116 4561 JMS I [LOOK /SYMBOL 002117 1000 NXTESD 002120 7240 CLA CMA /IGNORE ESD IF 002121 1044 TAD ETYP /ITS AN ENTRY 002122 7650 SNA CLA /POINT 002123 5313 JMP LOP12 /IGNORE 002124 1026 TAD GPTR /PUT ADDR OF 002125 3447 DCA I REFPTR /GST SYM IN 002126 5313 JMP LOP12 /ESD REF. PAGE 002127 6201 BY11, CDF 0 /COMPUTE 1ST 002130 1042 TAD EPTR /TEXT BLK 002131 0157 AND [7400 002132 7106 CLL RTL 002133 7006 RTL 002134 7004 RAL 002135 7001 IAC 002136 3754 DCA I (TXTBLK 002137 7240 CLA CMA /SET CNT TO -1 002140 3062 DCA BLKCNT /TO KICK OFF 1ST TXT READ 002141 1025 TAD RFPTR1 /PTR TO 002142 3753 DCA I (TXTBLK-3 /RALF MOD 002143 6211 CDF 10 002144 4752 JMS I (TXTSCN /RELOCATE 002145 5707 JMP I SETREF /TEXT 002152 3000 002153 3146 002154 3151 002155 2421 002156 0506 002157 7756 002160 7776 002161 2501 002162 0100 002163 7644 002164 0040 002165 7643 002166 1400 002167 0501 002170 0200 002171 2146 002172 2144 002173 7616 002174 2435 002175 1022 002176 1133 002177 2200 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 30-1 2200 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 31 002200 0000 BLDTV, 0 /BUILD UP 002201 1030 TAD TRPCNT /TRAP VECTOR 002202 7650 SNA CLA /ANY TO DO? 002203 5600 JMP I BLDTV /NO 002204 1206 TAD .+2 /GET BASE 002205 4561 JMS I [LOOK /ADDR OF 002206 2043 TRPSYM /TRAP VECT 002207 2026 ISZ GPTR 002210 1426 TAD I GPTR 002211 3000 DCA TMP0 002212 2026 ISZ GPTR 002213 1426 TAD I GPTR 002214 3001 DCA TMP1 002215 1000 TAD TMP0 /FOR SUBR 002216 3063 DCA TRAPV /TRPVEC 002217 1001 TAD TMP1 002220 3064 DCA TRAPV+1 002221 4303 JMS NEWORG /PROCESS NEW ORIGIN 002222 3030 DCA TRPCNT /WILL BE USED TO MARK GST SYMS 002223 1225 TAD .+2 /THAT HAVE A VECTOR ENTRY 002224 4561 JMS I [LOOK /GET SWAPPER 002225 2055 SWPSYM /ADDR 002226 2026 ISZ GPTR 002227 2026 ISZ GPTR 002230 1426 TAD I GPTR 002231 3025 DCA RFPTR1 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 32 002232 1023 TAD SYMTM3 /SCAN GST 002233 3026 LOP11, DCA GPTR /FOR ALL 002234 4554 JMS I [GETTYP /TRAP SYMS 002235 5600 JMP I BLDTV /ALL DONE 002236 1426 TAD I GPTR /IF TYPE WD 002237 7700 SMA CLA /B0=1, THEN SYMBOL NEEDS A VECTOR ENTRY 002240 5234 JMP LOP11+1 /TRY NEXT 1ST WD OF ENTRY IS 002241 1377 TAD (3000 /TRAP3 002242 4553 JMS I [PUTBIN 002243 1025 TAD RFPTR1 /NXT IS 002244 4553 JMS I [PUTBIN /SWAP ADDR 002245 7330 CLL CML CLA RAR /CLR B0 002246 1426 TAD I GPTR /OF TYPE WD 002247 3426 DCA I GPTR 002250 1426 TAD I GPTR 002251 2026 ISZ GPTR 002252 7006 RTL 002253 7006 RTL 002254 3000 DCA TMP0 /HAVE TO MUSH SOME BITS AROUND: 002255 1000 TAD TMP0 /OVERLAY NUMBER MOVES FROM B4-7 TO B0-3 002256 0157 AND [7400 002257 3001 DCA TMP1 /LEVEL NUMBER MOVES FROM B1-3 TO B6-8 002260 1000 TAD TMP0 002261 7006 RTL 002262 7006 RTL 002263 0376 AND (70 002264 1001 TAD TMP1 002265 1426 TAD I GPTR /ADD FLD BITS TO MESS 002266 4553 JMS I [PUTBIN 002267 1030 TAD TRPCNT /ADV VECT 002270 1375 TAD (10 /ENTRY NUM 002271 3030 DCA TRPCNT /COUNTER 002272 1426 TAD I GPTR /TAG HI 9 002273 1030 TAD TRPCNT /OF GST SYM 002274 3426 DCA I GPTR /WD5 WITH TV ENTRY NUMBER 002275 2026 ISZ GPTR 002276 1426 TAD I GPTR /ENTER 002277 4553 JMS I [PUTBIN /ADDR 002300 7344 AC7776 002301 1026 TAD GPTR 002302 5233 JMP LOP11 /FOR THIS SYM / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 33 002303 0000 NEWORG, 0 002304 1066 TAD BSECTP 002305 4564 JMS I [SETEPT /SET PTR TO CURRENT SECTION 002306 1443 TAD I EPT2 002307 7141 CIA CLL 002310 1001 TAD TMP1 002311 3003 DCA TMP3 002312 1003 TAD TMP3 002313 0374 AND (6000 002314 3002 DCA TMP2 /DO A DOUBLE PRECISION SUBTRACT 002315 7024 CML RAL 002316 1442 TAD I EPTR 002317 7141 CIA CLL 002320 1000 TAD TMP0 002321 7510 SPA 002322 5352 JMP BADORG /OUT OF RANGE 002323 7110 CLL RAR 002324 1002 TAD TMP2 /COMBINE AND SHIFT RIGHT 8 002325 7004 RAL 002326 7006 RTL 002327 7006 RTL /(I.E. LEFT 5) 002330 3002 DCA TMP2 002331 1002 TAD TMP2 002332 2043 ISZ EPT2 002333 1443 TAD I EPT2 /ADD TO RELATIVE BLOCK OF SECTION 002334 3071 DCA NEWBLK 002335 2043 ISZ EPT2 002336 1002 TAD TMP2 002337 7041 CIA 002340 1443 TAD I EPT2 002341 7510 SPA 002342 5352 JMP BADORG /ORIGIN OUT OF RANGE 002343 3072 DCA NEWLEN 002344 4773 JMS I (NEWBB /GET BUFFER USING NEWBLK AND NEWLEN 002345 1003 TAD TMP3 002346 0372 AND (1777 002347 1070 TAD BLKBEG 002350 3065 DCA BLKSIZ /FORM POINTER INTO PROPER BUFFER 002351 5703 JMP I NEWORG 002352 4566 BADORG, JMS I [RTNOS8 002353 0260 ORGMSG /ORIGIN OUT OF CURRENT FILE LIMITS 002354 5703 JMP I NEWORG 002372 1777 002373 2600 002374 6000 002375 0010 002376 0070 002377 3000 2400 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 34 002400 0000 PROVLY, 0 /ROUTINE TO PRINT OVERLAY INFO IN SYMBOL MAP 002401 4555 JMS I [PCRLF 002402 1377 TAD (OTLINE 002403 4776 JMS I (OLINE 002404 1375 TAD (OVLTBL-1 002405 3011 DCA NDX1 002406 1411 PROVLP, TAD I NDX1 /GET ENTRY 002407 7510 SPA /TEBLE ENDS WITH -1 002410 5600 JMP I PROVLY 002411 3041 DCA GTYP 002412 1173 TAD [240 002413 4421 JMS I PPACK 002414 4774 JMS I (CVLOVL /PRINT LEVEL AND OVERLAY 002415 1041 TAD GTYP 002416 4773 JMS I (PR15 /PRINT 15-BIT LENGTH 002417 4555 JMS I [PCRLF 002420 5206 JMP PROVLP 002421 0000 RDRLES, 0 /READ A 002422 1025 TAD RFPTR1 /PTR TO RALF 002423 3227 DCA RLARG-1 /MOD 002424 3232 DCA RLARG+2 /STRT AT BLK 0 002425 6201 CDF /AND READ 002426 4575 JMS I [IOHAN /3 BLKS INTO 002427 0000 0 /10000-11400 002430 0610 RLARG, 200^3!10 002431 0000 0 002432 0000 0 002433 6211 CDF 10 002434 5621 JMP I RDRLES / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 35 /STARTING WITH THE LATEST, /WRITE OUT ALL CORE RESIDENT /BINARY BUFFERS 002435 0000 WRALL, 0 002436 1055 TAD BP 002437 7001 IAC /PTR TO 002440 3000 DCA TMP0 /CURNT BLK 002441 1400 TAD I TMP0 002442 7650 SNA CLA /ALL DONE ? 002443 5635 JMP I WRALL /YES 002444 7330 AC4000 002445 4772 JMS I (LDRIO /WRITE IT 002446 1455 TAD I BP 002447 7450 SNA 002450 5635 JMP I WRALL 002451 3055 DCA BP 002452 5236 JMP WRALL+1 002453 4566 NOTREL, JMS I [RTNOS8 002454 2455 RELMSG 002455 0201 RELMSG, TEXT /BAD INPUT FILE/ 002456 0440 002457 1116 002460 2025 002461 2440 002462 0611 002463 1405 002464 0000 002465 1617 RTSMSG, TEXT /NO FRTS OR FRUN/ 002466 4006 002467 2224 002470 2340 002471 1722 002472 4006 002473 2225 002474 1600 002475 0622 RTSNAM, FILENAME FRTS.SV 002476 2423 002477 0000 002500 2326 002501 0622 FRUNAM, FILENAME FRUN.SV 002502 2516 002503 0000 002504 2326 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 36 002505 0000 MERGE, 0 002506 4771 JMS I (GETTXT /COMBINE TXT 002507 3051 DCA FTMP0 /PAIR WITH 002510 4771 JMS I (GETTXT /PAIR WHOSE 002511 3052 DCA FTMP0+1 /ADDR IS IN BPTR 002512 7100 CLL 002513 1446 TAD I BPT2 002514 1052 TAD FTMP0+1 002515 3001 DCA TMP1 002516 7004 RAL 002517 1445 TAD I BPTR 002520 1051 TAD FTMP0 002521 0156 AND [7 002522 3000 DCA TMP0 002523 1051 TAD FTMP0 /GET THE OPCODE OR WHATEVER 002524 0152 AND [7770 /IS IN THE HIGH 9 BITS 002525 1000 TAD TMP0 /AND COMBINE THEM WITH THE RELOCATED ADDRESS 002526 4553 JMS I [PUTBIN /AND OUTPUT THE MESS 002527 1001 TAD TMP1 002530 4553 JMS I [PUTBIN /DON'T FORGET WORD 2 002531 5705 JMP I MERGE 002532 0000 GETCTL, 0 /GET TEXT 002533 4771 JMS I (GETTXT /CTRL WORD 002534 3000 DCA TMP0 /B4-B11 002535 1000 TAD TMP0 /IS TYPE 002536 0165 AND [377 /INDICATOR 002537 3047 DCA REFPTR /SOMETIMES 002540 1047 TAD REFPTR /ITS AN ESD. 002541 1370 TAD (ESDPG /WHEN IT IS, 002542 3026 DCA GPTR /GPTR PNTS 002543 1426 TAD I GPTR /TO THE 002544 3026 DCA GPTR /CORRESPONDING GST SYM (WORD 4) 002545 4551 JMS I [SETBGX /AND BPTR POINTS TO THE VALUE 002546 1000 TAD TMP0 /TEXT TYPE 002547 7006 RTL /IS IN 002550 7006 RTL /B0-B3 002551 7004 RAL /PUT IN 002552 0170 AND [17 /AC8-AC11 002553 1332 TAD GETCTL 002554 3332 DCA GETCTL /USE IT TO BUMP RETURN ADDRESS 002555 5732 JMP I GETCTL 002570 7400 002571 3141 002572 0203 002573 1752 002574 1727 002575 5434 002576 1340 002577 2131 2600 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 37 /COME HERE ON ORIGIN OR WHEN CROSSING /AN AREA BOUNDARY TO SELECT A BINARY /CORE BUFFER FOR A NEW LOADER IMAGE /AREA. THE BINARY BUFFER TABLE /ASSOCIATES CORE BUFFERS TO LOADER /IMAGE AREAS. /EACH ENTRY HAS FOUR WORDS - THEY CONTAIN: /WORD 1 POINTER TO BUFFER OF NEXT EARLIEST REFERENCE /WORD 2 RELATIVE BLOCK NUMBER (0 IF UNUSED) /WORD 3 NUMBER OF BLOCKS LEFT UNTIL END OF SECTION /WORD 4 BUFFER ADDRESS AND FIELD /EACH ENTRY MAPS FROM 1 TO 4 BLOCKS (400 TO 2000 OCTAL WORDS) FROM THE /ADDRESSES GENERATED BY THE LOADER ONTO THE LOADER IMAGE FILE. /THE RELATIVE BLOCK NUMBERS ARE ALWAYS OF THE FORM S+4N, WHERE /S IS THE RELATIVE BLOCK NUMBER OF THE NEAREST BINARY SECTION / (A BINARY SECTION IS AN OVERLAY OR "MAIN"). /THE BUFFERS ARE ORGANIZED AS A CHAIN IN ORDER OF REFERENCE, /WITH WORD 1 BEING THE LINK TO THE NEXT EARLIEST BUFFER. IN CASE /A BUFFER NEEDS TO BE WRITTEN THE CHAIN IS TRAVERSED AND THE LAST BUFFER /WRITTEN OUT, SINCE IT WAS THE LEAST RECENTLY ACCESSED. / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 38 002600 0000 NEWBB, 0 /ENTER WITH NEW 002601 1055 TAD BP 002602 3015 DCA NDX5 /SAVE CURRENT "MOST RECENT" BUFFER 002603 1415 TAD I NDX5 002604 7041 CIA 002605 1071 TAD NEWBLK /CHECK WHETHER THE BUFFER WE WANT 002606 7650 SNA CLA /IS THE CURRENT BUFFER 002607 5264 JMP QUIKIE /YES - SAVE GRIEF 002610 1055 NEWBB4, TAD BP /MAKE THE CURNT 002611 3302 DCA BPPREV /BUFFER THE PREVIOUS BUFF 002612 1455 TAD I BP /MAK THE BUF OF 002613 3055 DCA BP /NEXT EARLIEST REFERENCE THE NEW CURNT BUFF 002614 1055 TAD BP /GET THE PTR TO 002615 7001 IAC /LDR IMAGE BLK 002616 3346 DCA CURBLK /IN THIS BUFF 002617 1746 TAD I CURBLK /HAVE WE SCANNED 002620 7041 CIA /IS NEWBLK 002621 1071 TAD NEWBLK /IN CORE 002622 7650 SNA CLA /? 002623 5257 JMP GOTBLK /YES 002624 1455 TAD I BP /ARE WE AT THE 002625 7640 SZA CLA /BUFFER OF EARLIEST REF? 002626 5210 JMP NEWBB4 /NO DO NEXT 002627 7120 STL /INITIALIZE LINK AS FLAG 002630 1746 TAD I CURBLK /IS THERE A 002631 7650 SNA CLA /BLK TO WRITE? 002632 5236 JMP VIRGIN /NO - NONE TO READ, EITHER 002633 7330 AC4000 002634 4777 JMS I (LDRIO /YES WRITE IT 002635 7100 CLL /SET FLAG THAT BUFFER WAS WRITTEN 002636 1071 VIRGIN, TAD NEWBLK 002637 3746 DCA I CURBLK 002640 2346 ISZ CURBLK 002641 1072 TAD NEWLEN /STORE NEW BLOCK # AND LENGTH 002642 3746 DCA I CURBLK /IN BUFFER CONTROL WORD 002643 7010 RAR /GET "VIRGIN FLAG" 002644 3266 DCA NEWBUF 002645 1303 TAD MAXBLK 002646 7140 CMA CLL 002647 1071 TAD NEWBLK /CHECK IF THE BLOCK WE'RE MAPPING 002650 7620 SNL CLA /IS LARGER THAN ANY OTHER SO FAR - 002651 5254 JMP .+3 /IF SO WE DON'T HAVE TO READ IT 002652 1071 TAD NEWBLK 002653 3303 DCA MAXBLK /UPDATE MAXBLK 002654 1266 TAD NEWBUF /LINK = MAX FLAG, SIGN = VIRGIN FLAG 002655 7720 SNL SMA CLA /IF NEITHER IS ON, 002656 4777 JMS I (LDRIO /READ THE BLOCKS INTO THE BUFFER 002657 1455 GOTBLK, TAD I BP 002660 3702 DCA I BPPREV /BREAK NEW BUFFER OUT OF THE CHAIN 002661 7240 STA 002662 1015 TAD NDX5 /NDX5 CONTAINS PTR TO OLD "MOST RECENT" + 1 002663 3455 DCA I BP /MAKE NEW BUFFER THE BUFFER OF LATEST REFERENCE 002664 4266 QUIKIE, JMS NEWBUF /SET UP FOR PUTBIN / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 38-1 002665 5600 JMP I NEWBB /AND RETURN / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 39 /COME HERE TO CUMPUTE A 15 BIT /BUFFER ADDRESS FROM AN ENTRY /IN THE BINARY BUFFER TABLE. 002666 0000 NEWBUF, 0 002667 1163 TAD [3 002670 1055 TAD BP 002671 3321 DCA OUTFLD 002672 1721 TAD I OUTFLD /LOAD ADRESS AND FIELD 002673 0376 AND (7600 002674 3070 DCA BLKBEG 002675 1721 TAD I OUTFLD 002676 0375 AND (70 002677 1374 TAD (CDF 002700 3321 DCA OUTFLD /DECOMPOSE INTO ADDRESS AND CDF 002701 5666 JMP I NEWBUF 002702 0000 BPPREV, 0 002703 0000 MAXBLK, 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 40 /COME HERE TO STORE 1 WORD /IN SOME BINARY OUTPUT BUFFER 002704 0000 PUTBIN, 0 002705 3002 DCA TMP2 /SAVE DATA 002706 1024 TAD ORGFLG /N.E. 0 MEANS 002707 7640 SZA CLA /INHIBIT 002710 5704 JMP I PUTBIN /BINARY OUTPUT BECAUSE OF NEW ORIGIN 002711 1067 TAD OUTINH /N.E. 0 MEANS 002712 7650 SNA CLA /INHIBIT BIN OUT BECAUSE OF BAD ORIGIN 002713 5321 JMP OUTFLD /ITS OK 002714 1467 TAD I OUTINH /SET B0 OF 002715 7004 RAL /OFFENDING GST 002716 7130 CLL CML RAR /SYMBOL 002717 3467 DCA I OUTINH /SEE SUBR REORG 002720 5704 JMP I PUTBIN /FOR DEFINITION OF C(OUTINH) 002721 0000 OUTFLD, 0 /CDF X 002722 1002 TAD TMP2 /STORE IT 002723 3465 DCA I BLKSIZ /AWAY 002724 6211 CDF 10 /RESTORE FLD 002725 2065 ISZ BLKSIZ /BUMP PTR 002726 1070 TAD BLKBEG 002727 7041 CIA 002730 1065 TAD BLKSIZ /HAVE WE 002731 0373 AND (1777 /CROSSED A 002732 7640 SZA CLA /BLK BOUND? 002733 5704 JMP I PUTBIN /NO 002734 1071 TAD NEWBLK 002735 1176 TAD [4 002736 3071 DCA NEWBLK 002737 1072 TAD NEWLEN 002740 1177 TAD [-4 002741 3072 DCA NEWLEN /BUMP BLOCK NUMBER AND REMAINING BLOCKS 002742 4200 JMS NEWBB /SELECT A NEW BUFFER 002743 1070 TAD BLKBEG 002744 3065 DCA BLKSIZ /RE-INITIALIZE WORD POINTER 002745 5704 JMP I PUTBIN 002746 0000 CURBLK, 0 002773 1777 002774 6201 002775 0070 002776 7600 002777 0203 3000 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 41 /COME HERE TO SCAN AND RELOCATE /THE TEXT OF AN ENTIRE MODULE 003000 0000 TXTSCN, 0 /SET CTRL WD 003001 4777 JMS I (GETCTL /ARGS. RTN TO .+1,2,3, OR 4 003002 5310 JMP RELC2 /SPECIAL TYPE 003003 5314 JMP RELC6 /DIRECT COPY 003004 5324 JMP REORG /NEW ORIGIN 003005 1426 TAD I GPTR /RELOCATE FPP 003006 0170 AND [17 /PAIR 003007 3000 DCA TMP0 /GST SYM TYPE 003010 7344 AC7776 /IS RELOCATION 003011 1000 TAD TMP0 /WITH RESPECT 003012 7640 SZA CLA /TO GST EXTERN? 003013 5231 JMP BY2 /NO 003014 4341 SETTRP, JMS GETTXT /BAD TEXT. 003015 7200 CLA 003016 4341 JMS GETTXT /IGNORE RELOCATION AND MAKE AN ERROR TRAP 003017 7200 CLA 003020 1376 TAD (3000 /=TRAP3 003021 4553 JMS I [PUTBIN 003022 1375 TAD (JUERR /RTS ERROR 003023 4553 JMS I [PUTBIN /TRAP SUBR 003024 1426 BY2M5, TAD I GPTR /SET ILLEGAL 003025 7004 RAL /REFERENCE 003026 7130 CLL CML RAR /BIT IN 003027 3426 DCA I GPTR /GST TYPE WD 003030 5201 JMP TXTSCN+1 /DO NEXT 003031 1374 BY2, TAD (-5 /RELOCATE TO 003032 1000 TAD TMP0 /A MULTIPLE 003033 7650 SNA CLA /ENTRY? 003034 5214 JMP SETTRP /YES 003035 1426 TAD I GPTR /CHECK FOR LEGALITY OF REFERENCE 003036 0373 AND (0360 /WITH RESPECT TO LEVEL AND OVERLAY NUMBER 003037 3001 DCA TMP1 / = GST OVER NUM 003040 1060 TAD LNONUM /=CURNT MOD 003041 0162 AND [3400 /LEVEL NUM 003042 3002 DCA TMP2 003043 1426 TAD I GPTR 003044 0162 AND [3400 003045 7450 SNA /RELOCATE TO MAIN? 003046 5306 JMP RELC /YES, ITS OK 003047 7041 CIA /IS RELOCATION 003050 1002 TAD TMP2 /ACROSS LEVELS 003051 7440 SZA /? 003052 5261 JMP TSTTRP /YES 003053 1060 TAD LNONUM /=CURRENT MOD 003054 0373 AND (0360 /OVER NUM 003055 7041 CIA 003056 1001 TAD TMP1 /WITHIN LEVL CALL IS LEGAL ONLY 003057 7650 SNA CLA /IF WITHIN OVR ALSO. 003060 5306 JMP RELC /ITS OK / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 42 /** TSTTRP REPLACED BY "SKP CLA" IF /U SPECIFIED 003061 7700 TSTTRP, SMA CLA /NOT OK - IS X LEVL LO TO HI? 003062 5214 JMP SETTRP /NO 003063 1445 TAD I BPTR /TRAP VECT 003064 1152 TAD [7770 /SUBTRACT 1 FROM ENTRY NUM 003065 0152 AND [7770 /IN HIGH 9 BITS OF GST WD 5 003066 7110 CLL RAR /DIV BY 2 TO GET ENTRY NUM * 4 003067 1064 TAD TRAPV+1 /LINK IS 0 003070 3772 DCA I (SYMX+1 /STORE VECTOR ENTRY ADDRESS 003071 7004 RAL 003072 1063 TAD TRAPV /IN SYMX AS A DOUBLEWORD 003073 3771 DCA I (SYMX 003074 1371 TAD (SYMX 003075 4550 JMS I [SETBPT /COMBINE IT WITH TXT PAIR 003076 4770 JMS I (MERGE /I.E. RELOCATE TO TRAP VECT 003077 1051 TAD FTMP0 003100 0156 AND [7 003101 7450 SNA 003102 1052 TAD FTMP0+1 003103 7650 SNA CLA /WERE LOW ORDER 15 BITS OF TXT=0? 003104 5201 JMP TXTSCN+1 /YES, ITS OK 003105 5224 JMP BY2M5 /SET ILL REF BIT. NOTE TRAP IS NOT GENERATED 003106 4770 RELC, JMS I (MERGE /MAKE FPP PAIR AND STORE IN BIN BUFFER 003107 5201 JMP TXTSCN+1 /DO NEXT 003110 1047 RELC2, TAD REFPTR /CHK IND. 003111 7650 SNA CLA /FOR SPECIAL TYPE 003112 5600 JMP I TXTSCN /0=END OF TEXT 003113 5201 JMP TXTSCN+1 /1=IGNORE 1 WORD OF TEXT 003114 1047 RELC6, TAD REFPTR /IND HOLDS 003115 7041 CIA /NUM OF WDS 003116 3047 DCA REFPTR /TO COPY 003117 4341 JMS GETTXT 003120 4553 JMS I [PUTBIN 003121 2047 ISZ REFPTR 003122 5317 JMP .-3 003123 5201 JMP TXTSCN+1 003124 2024 REORG, ISZ ORGFLG /SET INHIBIT BIN OUT FLG 003125 4770 JMS I (MERGE /GET NEW ORIGIN 003126 1426 TAD I GPTR /SEE IF 003127 0367 AND (3760 /ORIGIN IS 003130 7041 CIA /TO A DIFFERENT 003131 1060 TAD LNONUM /BINARY SECTION 003132 7640 SZA CLA /? 003133 1026 TAD GPTR /YES - SET INHIBIT/ERROR FLAG 003134 7450 SNA 003135 4766 JMS I (NEWORG /NO - SET UP NEW ORIGIN 003136 3067 DCA OUTINH 003137 3024 DCA ORGFLG 003140 5201 JMP TXTSCN+1 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 43 003141 0000 GETTXT, 0 /GET ONE WORD OF TEXT FROM THE BUFFER 003142 2062 ISZ BLKCNT 003143 5356 JMP RDTCDF 003144 6201 CDF /TO READ IN 003145 4575 JMS I [IOHAN /RALF TEXT 003146 0000 0 /PTR TO UNIT 003147 1010 200^4!10 /OR 200^17!20 003150 0000 0 003151 0002 TXTBLK, 2 003152 1350 TAD .-2 /SET TXT 003153 3053 DCA RBLK /BUF PTR 003154 1363 TAD TXTWDS /-NUM OF 003155 3062 DCA BLKCNT /WDS-1 IN 003156 6211 RDTCDF, CDF 10 /OR CDF 20 003157 1453 TAD I RBLK 003160 6211 CDF 10 003161 2053 ISZ RBLK 003162 5741 JMP I GETTXT /RETURN 003163 6000 TXTWDS, -2000 /OR -7400 003166 2303 003167 3760 003170 2505 003171 2152 003172 2153 003173 0360 003174 7773 003175 0204 003176 3000 003177 2532 3200 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 44 /ENTER A SYMBOL INTO GST. PTR TO ESD /SYMBOL IS IN AC 003200 5601 JMP I PUTSYM /FOR XPAGE RTN 003201 0000 PUTSYM, 0 003202 4561 JMS I [LOOK /LOOKUP SYMBOL 003203 5777 JMP I (NOMAT /NEW SYMBOL DISPOSITION /TYPE OF MATCH 2 EXTERNS, 2 COMMONS, ETC. /ETYP HOLDS SYM TYPE FOR ESD GTYP HOLDS GST TYPE 003204 1376 TAD (5 003205 3000 DCA TMP0 /FOR ME,MS 003206 1044 TAD ETYP 003207 1375 TAD (-7 003210 7510 SPA 003211 1374 TAD (2 003212 1176 TAD [4 003213 7110 RAR CLL 003214 7040 CMA 003215 3002 DCA TMP2 003216 7060 CML CMA /GET -1 003217 1041 TAD GTYP /RESTR LNK, GET GST TYP-1 003220 7004 RAL 003221 1373 TAD (MYSTIC /GET ADDR OF 4 CODES 003222 3001 DCA TMP1 003223 6201 CDF 0 003224 1401 TAD I TMP1 /GET 4 CODES 003225 6211 CDF 10 003226 2002 CTST, ISZ TMP2 /WHICH CODE ? 003227 5246 JMP SHFT3 /NOT THIS 1 003230 0156 AND [7 003231 1234 TAD T2J /PICK UP JMP I 003232 3233 DCA .+1 003233 0000 0 003234 5635 T2J, JMP I .+1 003235 3265 ISCOM3 /FORT COMM N FLD1 SECTION 003236 3200 PUTSYM-1 /ESD IS EXT JUST EXIT 003237 3400 REP /GST IS EXT GO REPLACE 003240 3260 MULENT /MULTIPLE ENTS 003241 3270 ISCOM /2 F COMMS OR 2 COMMZS OR 2 FLD1S 003242 3251 BADDY /MULTIPLE SECTS 003243 3251 BADDY /UNDEF TYPES 003244 3251 BADDY 003245 3251 BADDY 003246 7010 SHFT3, RAR 003247 7012 RTR 003250 5226 JMP CTST / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 45 003251 1073 BADDY, TAD MCNT 003252 1074 TAD MBGCNT 003253 3275 DCA MTMCNT /SAVE PARAMS FOR ERROR MESSAGE LATER 003254 7201 CLA IAC 003255 1060 TAD LNONUM /MULTIPLE SECTION 003256 3054 DCA FATAL 003257 2000 ISZ TMP0 /IS FATAL 003260 1426 MULENT, TAD I GPTR /SET TYPE TO 003261 0372 AND (7760 /5 FOR MUL ENT 003262 1000 TAD TMP0 /OR 6 FOR 003263 3426 DCA I GPTR /MUL. SECTION 003264 5601 JMP I PUTSYM 003265 1371 ISCOM3, TAD (11 /F COMM N FLD1 (RITE9=11) 003266 3426 DCA I GPTR /SET TYP TO F1 003267 2033 ISZ F1FLG 003270 4551 ISCOM, JMS I [SETBGX 003271 1045 TAD BPTR /UPDATE 003272 3447 DCA I REFPTR /ESD REFERENCE PTR 003273 4770 JMS I (MAXCOM /PUT LARGER OF 2 COMMONS INTO 003274 5601 JMP I PUTSYM /GST WORDS 5 AND 6 003275 0000 MTMCNT, 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 46 /THE FOLOWING TABLE IS USED TO /DISPOSITION SYMBOL MATCHES BETWEEN /A RALF ESD AND A GST SYMBOL /EACH DIGIT IN THE TABLE IS AN INDEX /INTO A TABLE THAT IS USED TO CALL /ROUTINES TO HANDLE THE VARIOUS TYPES /OF MATCHES: / 0=FORT COMMON AND FLD1 SECTION / 1=ANY MATCH WITH ESD EXTERN / 2=ANY MATCH WITH GST EXTERN / 3=MULTIPLE ENTRY POINTS / 4=2 FORT COMMONS OR 2 FIELD1 / SECTIONS OR 2 COMMZ SECTS / 5=MULTIPLE SECTIONS / 6-7=UNDEFINED AND HALT / /THE FIRST 2 WORDS COVER ALL POSSIBLE /MATCHES WITH GST TYPE 1, THE SECOND /TWO WORDS ARE FOR GST TYPE 2 ETC /THE 4 DIGITS IN THE FIRST WORD OF /ANY PAIR CORRESPOND TO ESD TYPES /11,7,3,1 RESPECTIVELY /ESD CORRESPONDENCE FOR THE 2ND WORD /IS 12,10,4,2 /ESD TYPE 12 IS UNDEFINED 003276 5553 MYSTIC, 5553 /G1 E(11,7,3,1) 003277 7551 7551 /E(12,10,4,2) 003300 2222 2222 /G2 E(11,7,3,1) 003301 7221 7221 /E(12,10,4,2) 003302 0545 0545 /G3 003303 7551 7551 003304 5555 5555 /G4 003305 7551 7551 003306 5553 5553 /G5 003307 7551 7551 003310 5555 5555 /G6 003311 7551 7551 003312 5555 5555 /G7 003313 7551 7551 003314 5555 5555 /G10 003315 7451 7451 003316 4505 4505 /G11 003317 7551 7551 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 47 003320 0000 ESDSCN, 0 003321 7346 CLL STA RTL /-3 003322 1767 TAD I (0 003323 7640 SZA CLA 003324 5766 JMP I (NOTREL /NOT RALF MODULES - NASTY! 003325 1774 TAD I (2 /CHK FOR DP 003326 7710 SPA CLA /HARDWARE REQUIRED 003327 2040 ISZ DPFLG /ISZ=YES 003330 7344 AC7776 /ENTER ESD OF MODULE 003331 3042 DCA EPTR /INTO GST. ESD STARTS AT 10000 003332 4765 JMS I (NXTESD /GET NXT 1 003333 5720 JMP I ESDSCN /NO MORE 003334 1042 TAD EPTR 003335 4201 JMS PUTSYM /ENTER IT 003336 5332 JMP .-4 /DO ANOTHER 003337 1525 MSMSG, TEXT /MULT SECT/ 003340 1424 003341 4023 003342 0503 003343 2400 003344 1726 CORMSG, TEXT /OVER CORE/ 003345 0522 003346 4003 003347 1722 003350 0500 003351 1726 LIMSG, TEXT /OVER IMAG/ 003352 0522 003353 4011 003354 1501 003355 0700 003356 1617 MNMSG, TEXT /NO MAIN/ 003357 4015 003360 0111 003361 1600 003365 1000 003366 2453 003367 0000 003370 4525 003371 0011 003372 7760 003373 3276 003374 0002 003375 7771 003376 0005 003377 3425 3400 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 48 /CONTINUATION OF SUB PUTSYM 003400 3041 REP, DCA GTYP 003401 7346 AC7775 /REPLACE GST 003402 1044 TAD ETYP /EXTERN 003403 7450 SNA /IS IT A REF TO COMMON? 003404 5335 JMP MNSECN /YES 003405 1236 TAD M4 /IS IT A REF 003406 7700 SMA CLA /8 MODE SECN ? 003407 5225 JMP NOMAT 003410 1426 TAD I GPTR /NO CHK FOR 003411 0162 AND [3400 /CROSS LEVEL 003412 7041 CIA /REFERENCE 003413 3000 DCA TMP0 /COMPARE WITH 003414 1060 TAD LNONUM /CURNT LEVEL 003415 0162 AND [3400 003416 7450 SNA /DOING MAIN ? 003417 5225 JMP NOMAT /YES DONT CHK FOR TRAP ENTRY 003420 1000 TAD TMP0 003421 7650 SNA CLA /X LEVEL? 003422 5225 JMP NOMAT 003423 2030 ISZ TRPCNT /YES BUMP TRAP VECTOR COUNTER 003424 7330 AC4000 /SET B0=1, GST SYM WILL GO IN TRAP VECTOR 003425 3041 NOMAT, DCA GTYP 003426 1044 TAD ETYP /ENTER GST 003427 1377 TAD (.+3-1 /WORDS 4,5,6. 003430 3000 DCA TMP0 /DISPATCH ESD 003431 5400 JMP I TMP0 /TYPE 1,2,3,4 003432 5276 JMP ENTMN2 /ENTRY POINT 003433 5274 JMP ENTMN /EXTERN 003434 5335 JMP MNSECN /COMMON SECN 003435 5243 JMP PRGSCN /PROGRAM SECN 003436 7774 M4, -4 003437 7771 M7, -7 003440 5334 JMP MNS8 /GEN 8 MODE SCT 003441 5332 JMP MNCZ /COMM 8 MODE 003442 5330 JMP MNF1 /FLD1 8 MODE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 49 003443 1060 PRGSCN, TAD LNONUM 003444 0162 AND [3400 /IS IT A MAIN 003445 7650 SNA CLA /? 003446 5335 JMP MNSECN /YES 003447 1547 TAD I [OVRSIZ 003450 3000 DCA TMP0 003451 1546 TAD I [OVRSIZ+1 003452 3001 DCA TMP1 /SAVE OLD OVERLAY SIZE 003453 7100 CLL 003454 1443 TAD I EPT2 003455 1001 TAD TMP1 003456 3546 DCA I [OVRSIZ+1 003457 7004 RAL 003460 1442 TAD I EPTR 003461 1000 TAD TMP0 003462 3547 DCA I [OVRSIZ /SET OVLY SIZE = OVLY SIZE + SECTION SIZE 003463 1000 TAD TMP0 003464 3442 DCA I EPTR 003465 1001 TAD TMP1 003466 3443 DCA I EPT2 /SET SECTION SIZE = OLD OVERLAY SIZE 003467 1026 TAD GPTR /PUT ADDR OF 003470 7001 IAC /GST WD5 OF 003471 3447 DCA I REFPTR /SECTION SYM INTO ESD REFERENCE PAGE 003472 1160 ENTM2, TAD [LVPTR /SET REFERENCE 003473 3047 DCA REFPTR /TO PARENT SYM =WD5 OF #YLVLN 003474 1060 ENTMN, TAD LNONUM /=CURNT OVRLAY AND CURNT LEVEL NUM 003475 5342 JMP MNSEC5 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 50 003476 1060 ENTMN2, TAD LNONUM /SEE IF ENTRY 003477 0162 AND [3400 /POINT IS IN 003500 7650 SNA CLA /MAIN? 003501 5274 JMP ENTMN /YES 003502 1447 TAD I REFPTR /IS PARENT 003503 4550 JMS I [SETBPT /REFERENCE TO 003504 7240 CLA CMA /COMMON? 003505 1047 TAD REFPTR /LOOK FOR 003506 3000 DCA TMP0 /TYPE CODE 3 003507 7346 AC7775 003510 1400 TAD I TMP0 003511 7450 SNA 003512 5274 JMP ENTMN /YES, HANDLE LIKE A MAIN ENTRY POINT 003513 1236 TAD M4 /IS IT A REF 003514 7650 SNA CLA /TO AN 8 SECT? 003515 5342 JMP MNSEC5 /YES HANDLE LIKE MAIN 003516 7100 CLL 003517 1446 TAD I BPT2 003520 1443 TAD I EPT2 003521 3443 DCA I EPT2 /SET OVR ENT = OVR ENT + OVR 003522 7004 RAL 003523 1445 TAD I BPTR 003524 0156 AND [7 /WATCH HIGH-ORDER BITS 003525 1442 TAD I EPTR 003526 3442 DCA I EPTR 003527 5272 JMP ENTM2 /SIZE OF SECTION 003530 2033 MNF1, ISZ F1FLG /SET FOR NE TO 003531 5335 JMP MNSECN /0 SO DO8S WILL 003532 2032 MNCZ, ISZ CZFLG /KNOW THESE 003533 5335 JMP MNSECN /TYPES OF SECTS / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 51 003534 2034 MNS8, ISZ S8FLG /EXIST AND WILL FIT THEM INTO CORE 003535 1026 MNSECN, TAD GPTR /PUT ADDR OF 003536 7001 IAC /GST WD5 OF 003537 3447 DCA I REFPTR /SECTION SYM INTO ESD REFERENCE PAGE 003540 1376 TAD (SYMX+1 /THIS VALUE 003541 3047 DCA REFPTR /YIELDS 0 IN HI 9 WD 5 OF GST SYM 003542 1044 MNSEC5, TAD ETYP /SYM TYPE TO AC8-11. AC MAY HAVE 003543 1041 TAD GTYP /LEVEL AND OVR BITS (AC1-7) ALREADY SET 003544 3426 DCA I GPTR /GST WD4 HOLDS SYMBOL TYPE 003545 4551 JMS I [SETBGX /SET BPTR TO GST WORD 003546 3000 DCA TMP0 /PREPARE FOR DIVISION BY 7 003547 1447 TAD I REFPTR 003550 1375 TAD (2-SYMTBL /GET OFFSET FROM SYMTBL 003551 1237 TAD M7 003552 2000 ISZ TMP0 003553 7500 SMA 003554 5351 JMP .-3 /DIVIDE BY REPEATED SUBTRACTION 003555 7240 STA /AC IS NOT NECESSARILY ZERO! 003556 1000 TAD TMP0 003557 7106 CLL RTL /ROTATE SYMBOL NUMBER INTO AC BITS 0-8 003560 7004 RAL 003561 1442 TAD I EPTR /AND INSERT IT INTO THE ADDRESS 003562 3445 DCA I BPTR /DOUBLEWORD TO FORM THE GST 003563 1443 TAD I EPT2 /ADDRESS DOUBLEWORD 003564 3446 DCA I BPT2 003565 5766 JMP I .+1 003566 3200 PUTSYM-1 003575 5340 003576 2153 003577 3431 3600 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 52 003600 3410 STPAS1, DCA I NDX0 /ZERO OUT GST 003601 2317 ISZ STCNT /NDX0 SET UP BY PASS0 003602 5200 JMP STPAS1 003603 4777 JMS I (SETCNT /SET MOD CNTS 003604 4776 JMS I (RDRLES /READ A RALF ESD 003605 4775 JMS I (ESDSCN /PROCESS IT 003606 4774 JMS I (ADVOVR /UPDATE COUNTS 003607 5204 JMP .-3 /DO NEXT 003610 1316 TAD LIBRSW 003611 7650 SNA CLA /LIBRARY SEARCH POSSIBLE? 003612 5773 JMP I (DOCORE /NO - SKIP IT 003613 1023 TAD SYMTM3 /TOP OF 003614 3026 DCA GPTR /GST 003615 1025 TAD RFPTR1 /1ST FREE 003616 3027 DCA LBPTR /ENTRY IN MODULE TBL THIS IS WHERE LIBR MODULES WILL GO 003617 4772 JMS I (GETEXT /GET AN 003620 5223 JMP .+3 /EXTERN 003621 4772 LOP4, JMS I (GETEXT 003622 1355 TAD RESFLG /=1 IF 003623 3022 DCA IOFLG /LIBR CAT IS ENTIRELY CORE RES 003624 3331 DCA LBREC /SET I/O FOR 003625 3353 DCA LSTBLK /BLK 0 OF LIBRARY 003626 3053 DCA RBLK /SET REL BLK 003627 3050 DCA RLEN /AND LENGTH 003630 5243 JMP BY3 /TO 0 003631 1011 NXTENT, TAD NDX1 /ADV TO 003632 0177 AND [-4 /NXT ENTRY 003633 1371 TAD (2 /BUT GET 003634 3011 DCA NDX1 /LENGTH OF 003635 4770 JMS I (GETLEN /PREV ONE 1ST 003636 2356 ISZ NUMENT /MORE IN CORE? 003637 5244 JMP BY3+1 /YES 003640 1022 TAD IOFLG /END OF 003641 7640 SZA CLA /CATALOGUE? 003642 5221 JMP LOP4 /YES, NO MATCH ON THIS EXTERN 003643 4320 BY3, JMS RDLBR /GET NEXT 003644 1177 TAD [-4 /CAT. BLKS 003645 1026 TAD GPTR /LOOK FOR 003646 3010 DCA NDX0 /LIBR MATCH 003647 7346 AC7775 003650 3000 DCA TMP0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 53 003651 6201 LBFLD, CDF 0 /CDF 20 IF GREATER THAN 8K CORE 003652 1411 TAD I NDX1 003653 6211 CDF 10 003654 7040 CMA /IS IT THE END 003655 7450 SNA /OF CAT ? 003656 5221 JMP LOP4 /YES 003657 7001 IAC 003660 1410 TAD I NDX0 003661 7640 SZA CLA /MATCH 1? 003662 5231 JMP NXTENT /NO TRY NXT LIBR ENTRY 003663 2000 ISZ TMP0 /ALL MATCH? 003664 5251 JMP LBFLD /NO 003665 4770 JMS I (GETLEN /UPDATE RBLK, 003666 7240 CLA CMA /RLEN 003667 1025 TAD RFPTR1 /ENTER MOD 003670 3010 DCA NDX0 /INTO TBL 003671 1767 TAD I (MODTBL /LIBR UNIT 003672 3410 DCA I NDX0 003673 1050 TAD RLEN /LENGTH OF 003674 3410 DCA I NDX0 /MODULE 003675 1766 TAD I (MODTBL+2 /STARTING BLOCK OF LIBRARY, + 003676 1053 TAD RBLK / RELATIVE BLOCK OF MODULE = 003677 3410 DCA I NDX0 / ABSOLUTE BLK OF MOD 003700 2061 ISZ LBCNT /=NUM OF LIBR MOD IN MAIN 003701 1026 TAD GPTR /SAVE GST 003702 3353 DCA LSTBLK /PTR 003703 4776 JMS I (RDRLES /READ IN ESD 003704 3060 DCA LNONUM /SET FOR MAIN 003705 4775 JMS I (ESDSCN /PROCESS ESD 003706 1163 TAD [3 /ADV MODULE 003707 1025 TAD RFPTR1 /TBL PTR 003710 3025 DCA RFPTR1 003711 1353 TAD LSTBLK 003712 3026 DCA GPTR 003713 2354 ISZ MLEFT /MOD TBL FULL? 003714 5221 JMP LOP4 /NO DO SOME MORE 003715 5773 JMP I (DOCORE 003716 0000 LIBRSW, 0 /NON-ZERO IF LIBRARY SEARCH POSSIBLE 003717 5005 STCNT, SYMTBL-OVLTBL / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 54 003720 0000 RDLBR, 0 003721 1022 TAD IOFLG /IS THIS 003722 7640 SZA CLA /THE END 003723 5344 JMP ENDLB /OF CAT.? 003724 6201 CDF /NO 003725 4575 JMS I [IOHAN /READ SOME 003726 6172 MODTBL /MORE 003727 1200 LBARG, 200^5 /OR 200^17!20 003730 4600 LB0BUF /OR 0 003731 0000 LBREC, 0 /REL CAT BLK 003732 1331 TAD LBREC /GET -NUM OF 003733 7041 CIA /BLKS READ, 003734 1353 TAD LSTBLK /AND COMPUTE 003735 3000 DCA TMP0 /THE NUM OF 003736 1365 TAD (-100 /ENTRIES IN 003737 2000 ISZ TMP0 /CORE. THERE 003740 5336 JMP .-2 /ARE 100 PER 003741 3357 DCA OLDCNT /BLOCK 003742 1331 TAD LBREC /UPDATE 003743 3353 DCA LSTBLK /LSTBLK 003744 1357 ENDLB, TAD OLDCNT 003745 3356 DCA NUMENT 003746 7240 CLA CMA /SET PTR TO 003747 1330 TAD LBARG+1 /1ST ENTRY 003750 3011 DCA NDX1 003751 6211 CDF 10 003752 5720 JMP I RDLBR 003753 0000 LSTBLK, 0 003754 0000 MLEFT, 0 003755 0001 RESFLG, 1 003756 0000 NUMENT, 0 003757 0000 OLDCNT, 0 003765 7700 003766 6174 003767 6172 003770 4545 003771 0002 003772 4562 003773 4000 003774 1022 003775 3320 003776 2421 003777 1133 4000 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 55 /END OF PASS 1 - FIT EVERYTHING INTO CORE 004000 1030 DOCORE, TAD TRPCNT 004001 7650 SNA CLA 004002 5214 JMP LOP3-3 /NO OVRS 004003 1377 TAD (TRPSYM /ENTER TRAP 004004 4561 JMS I [LOOK /VECT. SYM 004005 1176 TAD [4 /ITS A 004006 3426 DCA I GPTR /MAIN SECN 004007 2026 ISZ GPTR /GST WD6 004010 2026 ISZ GPTR /HOLDS LENGTH 004011 1030 TAD TRPCNT /GET SIZE OF 004012 7106 RTL CLL /TRAP VECTOR 004013 3426 DCA I GPTR /= NUMBER OF ENTRIES * 4 004014 4776 JMS I (DO8S /GO DO ALL 8 MODE SECTIONS 004015 1023 TAD SYMTM3 /ALLOCATE 004016 3026 DCA GPTR /CORE FOR 004017 4554 LOP3, JMS I [GETTYP /ALL MAIN NON 8 MODE 004020 5227 JMP DUNMN /SECTIONS 004021 7346 AC7775 /4=PROG 004022 1426 TAD I GPTR /SECN, 3=COMMON 004023 7110 RAR CLL 004024 7650 SNA CLA 004025 4775 JMS I (FIT /GO FIT SECN 004026 5217 JMP LOP3 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 56 004027 7240 DUNMN, STA 004030 3417 DCA I NDX7 /TERMINATE OVERLAY LENGTH LIST 004031 1056 TAD A1 004032 3774 DCA I (OVLTBL /STORE ENTRY FOR LEVEL 0 004033 1057 TAD A1+1 004034 3773 DCA I (OVLTBL+1 004035 1057 TAD A1+1 004036 7100 CLL 004037 1165 TAD [377 004040 0157 AND [7400 004041 7430 SZL 004042 2056 ISZ A1 /(WATCH CARRY!) 004043 3057 DCA A1+1 /DITTO FOR NON-FIELD 0 004044 7201 CLA IAC /WILL HOLD 004045 3062 DCA BLKCNT /SIZE OF LOADER IMAGE 004046 1372 TAD (1460 /RESET INT. 004047 3771 DCA I (LEVSYM+2 /#YLVLN SYM 004050 1370 TAD (QUSRLV-1 /WHERE OVRLAY 004051 3013 DCA NDX3 /DSRN INFO GOES IN LHDR 004052 7201 CLA IAC 004053 3413 DCA I NDX3 /USER MAIN IS LEVEL 0 004054 1367 TAD (10 004055 3413 DCA I NDX3 /SET UP LOADING INFORMATION FOR USER MAIN 004056 7240 STA /IN THE USRLV TABLE JUST LIKE 004057 1056 TAD A1 /ANY OTHER OVERLAY LEVEL 004060 7110 CLL RAR 004061 1057 TAD A1+1 /LENGTH HAS TO BE COMPUTED FROM 004062 7004 RAL /CORE LENGTH 004063 7006 RTL 004064 7006 RTL 004065 3000 DCA TMP0 004066 7201 CLA IAC 004067 3413 DCA I NDX3 /USER MAIN FIRST THING IN LDR IMAGE 004070 1000 TAD TMP0 004071 3413 DCA I NDX3 004072 1000 TAD TMP0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 57 004073 1062 LOP6, TAD BLKCNT /UPDATE LENGTH 004074 3062 DCA BLKCNT /OF LDR IMAGE 004075 2771 ISZ I (LEVSYM+2 /NEXT LEVEL 004076 1366 TAD (LEVSYM /LOOKUP 004077 2326 ISZ NLVL 004100 4561 JMS I [LOOK /#YLVLN 004101 5327 JMP DUNLVL /DONE ALL OVR LEVELS 004102 4775 JMS I (FIT /FIT LEVEL 004103 2026 ISZ GPTR /IN CORE 004104 1413 TAD I NDX3 /NUMBER OF OVERLAYS ON THIS LEVEL - ALSO 004105 7041 CIA /SERVES AS AN INDICATOR TO THE RUN-TIME 004106 3000 DCA TMP0 /SYSTEM THAT THIS LEVEL IS INITIALLY 004107 1426 TAD I GPTR /UNINHABITED. 004110 0156 AND [7 /GET FIELD BITS 004111 7106 CLL RTL 004112 7004 RAL 004113 2026 ISZ GPTR 004114 1426 TAD I GPTR /AND ADDRESS BITS 004115 3413 DCA I NDX3 /PUT-EM OUT 004116 1062 TAD BLKCNT /STARTING BLOCK OF LEVEL 004117 3413 DCA I NDX3 004120 1065 TAD BLKSIZ 004121 3413 DCA I NDX3 /LENGTH OF A SINGLE OVERLAY IN THE LEVEL 004122 1065 TAD BLKSIZ /(NUM OF OVRS)* 004123 2000 ISZ TMP0 /NUM OF BLKS 004124 5322 JMP .-2 /AC=LENGTH OF LEVEL 004125 5273 JMP LOP6 /DO NEXT LEVEL 004126 0000 NLVL, 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 58 004127 7200 DUNLVL, CLA /AC NOT ZERO! 004130 1023 TAD SYMTM3 /NOW RESOLVE 004131 3026 DCA GPTR /ALL OTHER SYMBOLS 004132 4554 LP1, JMS I [GETTYP 004133 5765 JMP I (ALLDN1 /ALL DONE 004134 4551 JMS I [SETBGX /SET BPTR TO GST WD5 004135 1445 TAD I BPTR 004136 0152 AND [7770 004137 7450 SNA 004140 5332 JMP LP1 /NO RELATIVE SYMBOL - DON'T RELOCATE 004141 3042 DCA EPTR 004142 1042 TAD EPTR /FIGURE OUT THE SYMBOL TABLE ADDRESS 004143 7112 CLL RTR /OF THE RELATIVE SYMBOL BY 004144 7170 STL CMA RAR /TAKING 7 * THE RELATIVE SYMBOL NUMBER 004145 1042 TAD EPTR /IN BITS 0-8 AND ADDING IN THE BASE 004146 1364 TAD (SYMTBL-1 /ADDRESS OF THE SYMBOL TABLE 004147 4564 JMS I [SETEPT 004150 1443 TAD I EPT2 004151 7100 CLL 004152 1446 TAD I BPT2 004153 3446 DCA I BPT2 004154 7004 RAL 004155 1445 TAD I BPTR 004156 0156 AND [7 /THROW AWAY THE OLD RELATIVE SYMBOL # 004157 1442 TAD I EPTR 004160 3445 DCA I BPTR /AND PERFORM THE RELOCATION 004161 5332 JMP LP1 /DO AGAIN 004164 2441 004165 4200 004166 2050 004167 0010 004170 7206 004171 2052 004172 1460 004173 5436 004174 5435 004175 4451 004176 4400 004177 2043 4200 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 59 004200 1056 ALLDN1, TAD A1 004201 3777 DCA I (QHGHAD /SAVE HIGHEST PROGRAM ADDRESS 004202 1057 TAD A1+1 /SO THAT RTS WILL KNOW HOW MUCH ROOM 004203 3776 DCA I (QHGHAD+1 /IT HAS FOR BUFFERS & THINGS 004204 1054 TAD FATAL /ANY MULTIPLE 004205 7450 SNA /SECTIONS? 004206 5216 JMP NOMSCT /NO 004207 3060 DCA LNONUM 004210 6201 CDF 0 004211 1775 TAD I (MTMCNT 004212 3074 DCA MBGCNT /RESTORE ERROR PARAMETERS 004213 6211 CDF 10 004214 4566 JMS I [RTNOS8 004215 3337 MSMSG 004216 1374 NOMSCT, TAD (SASYM /GET STRT 004217 4561 JMS I [LOOK /ADDR MAIN 004220 7410 SKP /NO MAIN 004221 5224 JMP .+3 004222 4566 JMS I [RTNOS8 004223 3356 MNMSG 004224 1037 TAD SVMAIN /IF .NE. SET TO 004225 7440 SZA /POINT TO GST 004226 1026 TAD GPTR /FOR PND MAIN 004227 3037 DCA SVMAIN /FOR /S THINGS IN SYMMAP RT. 004230 6201 CDF 0 004231 1773 TAD I (JOUSYM 004232 3772 DCA I (PRMAIN /ENABLING PRINTING OF #MAIN ON ERRORS 004233 6211 CDF 10 004234 2026 ISZ GPTR 004235 1426 TAD I GPTR /MAKE SWAPPER CONTROL WORD 004236 3771 DCA I (QRTSWP /LEVEL 0, OVERLAY 0 IS MAIN 004237 2026 ISZ GPTR 004240 1426 TAD I GPTR /12 BIT ADDR 004241 3770 DCA I (QRTSWP+1 004242 1040 TAD DPFLG /N.E. MEANS LDR IMAGE NEEDS DP HRDWRE 004243 3767 DCA I (QDPFLG /RETAIN INFO IN LHDR FOR PASS3 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 60 004244 6201 CDF 0 /FETCH LDR 004245 1766 TAD I (LDRNAM /IMAGE 004246 4575 JMS I [IOHAN /HANDLER 004247 1062 TAD BLKCNT 004250 7106 CLL RTL /SINCE WE KNOW THE LENGTH OF THE 004251 7530 SZL SPA /LDR IMAGE FILE, TELL IT TO THE USR 004252 7200 CLA /(UNLESS ITS >255) 004253 7006 RTL 004254 7430 SZL 004255 7200 CLA 004256 1766 TAD I (LDRNAM /OPEN LDR 004257 6212 CIF 10 /IMAGE 004260 4420 JMS I USR 004261 0003 3 004262 0502 LDRBLK, LDRNAM+1 004263 0000 LDRLEN, 0 004264 5765 JMP I (ENTERR 004265 1062 TAD BLKCNT /SEE IF LDR 004266 7120 STL /IMAGE WILL 004267 1263 TAD LDRLEN /FIT ON 004270 7670 SZL SNA CLA /TENTATIVE FILE 004271 5274 JMP .+3 /IT FITS 004272 4566 JMS I [RTNOS8 /OUTPUT FILE 004273 3351 LIMSG /TOO SMALL 004274 1062 TAD BLKCNT /CLOSE LDR 004275 3764 DCA I (LDCLEN /IMAGE FILE 004276 1363 TAD (LIMGU-1 /PASS2 004277 3010 DCA NDX0 004300 1766 TAD I (LDRNAM 004301 6211 CDF 10 004302 0170 AND [17 004303 3410 DCA I NDX0 /UNIT 004304 1062 TAD BLKCNT 004305 3410 DCA I NDX0 /LENGTH 004306 1262 TAD LDRBLK 004307 3410 DCA I NDX0 /STRT BLK 004310 6201 CDF 0 004311 4575 JMS I [IOHAN 004312 2144 LIMGU /WRITE OUT LOADER IMAGE HEADER BLOCK 004313 4210 4210 004314 7200 LHDR 004315 0000 0 /IN RELATIVE BLOCK 0 OF LOADER IMAGE FILE 004316 6211 CDF 10 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 61 /SET UP TABLE THAT RELATES /BINARY SECTINS TO LDR /IMAGE RELATIVE BLOCK NUMS. /1 DBL WD AND 2 SINGLE-WD ARGUMENTS PER /SECTION (15 BIT ADDR, RELATIVE /BLOCK, AND LENGTH). THERE ARE /8 SECTIONS /(MAIN, LEVL1,....,LEVL7) /TABLE STARTS AT LHDR AND /IS USED BY SUBR NEWORG 004317 1362 TAD (LHDR-1 004320 3011 DCA NDX1 004321 1361 TAD (QUSRLV /NOW DO THE 004322 3010 DCA NDX0 /8 LEVELS 004323 1152 TAD [-10 004324 3000 DCA TMP0 004325 1410 SETSLP, TAD I NDX0 004326 3066 DCA BSECTP 004327 1066 TAD BSECTP 004330 7112 CLL RTR 004331 7010 RAR 004332 0156 AND [7 004333 3411 DCA I NDX1 /FIRST COMES 15-BIT ADDRESS 004334 1066 TAD BSECTP 004335 0157 AND [7400 004336 3411 DCA I NDX1 004337 1410 TAD I NDX0 004340 3411 DCA I NDX1 /THEN RELATIVE BLOCK NUMBER 004341 1410 TAD I NDX0 004342 3411 DCA I NDX1 /THEN LENGTH 004343 2010 ISZ NDX0 /SKIP OVER NEXT OVERLAY COUNT 004344 2000 ISZ TMP0 004345 5325 JMP SETSLP 004346 1360 TAD (LHDR /PTR TO TOP 004347 3066 DCA BSECTP /OF TABLE 004350 7240 CLA CMA /SET FLG 004351 3031 DCA P2FLG /FOR SUBR ADVOVR 004352 5753 JMP I .+1 004353 2000 PASS2 004360 7200 004361 7207 004362 7177 004363 2143 004364 2046 004365 1553 004366 0501 004367 7206 004370 7202 004371 7201 004372 1466 004373 1526 004374 2062 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 61-1 004375 3275 004376 7204 004377 7203 4400 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 62 004400 0000 DO8S, 0 /DO 8 SECTIONS 004401 1032 TAD CZFLG /ANY 8 MODE 004402 7640 SZA CLA /COMMONS ? 004403 4221 JMS FIT8S /GO FIT IT 004404 1033 TAD F1FLG /ANY 8 MODE 004405 7650 SNA CLA /FIELD 1 ? 004406 5211 JMP .+3 /NO 004407 7240 STA 004410 4221 JMS FIT8S 004411 1034 TAD S8FLG /ANY GEN 8 MODE 004412 7650 SNA CLA /SECTIONS ? 004413 5600 JMP I DO8S /NO ALL DONE 004414 1152 TAD [7770 /THIS WILL 004415 3035 DCA OVRFLO /INHIBIT FLD1 OVER FLOW ERR 004416 7201 CLA IAC 004417 4221 JMS FIT8S 004420 5600 JMP I DO8S /FIT 8 MODE SECTIONS 004421 0000 FIT8S, 0 004422 1152 TAD [7770 004423 3250 DCA STYPE /-8M0DE SECT TYPE (7-11) 004424 1023 TAD SYMTM3 /SEARCH GST FOR 004425 3026 DCA GPTR /8 MODE SECTNS 004426 4554 F8SECT, JMS I [GETTYP 004427 5621 JMP I FIT8S /ALL DONE 004430 1250 TAD STYPE 004431 1426 TAD I GPTR 004432 7640 SZA CLA /8 SECTION ? 004433 5226 JMP F8SECT /NO 004434 4551 JMS I [SETBGX 004435 1446 TAD I BPT2 004436 1377 TAD (177 /ROUND SECTION LENGTH 004437 0376 AND (7600 /TO A PAGE BOUNDARY 004440 3446 DCA I BPT2 004441 4775 JMS I (FIT /NOW FIT IT 004442 1035 TAD OVRFLO /SEE IF FLD1 004443 1056 TAD A1 /IS OVR FLOWED **** 004444 7750 SPA SNA CLA /? 004445 5226 JMP F8SECT /DO ANOTHER 004446 4566 TOOBIG, JMS I [RTNOS8 004447 3344 CORMSG /PRINT ERROR & GO AWAY 004450 0000 STYPE, 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 63 004451 0000 FIT, 0 /FIT SECTION 004452 4551 JMS I [SETBGX /SET BPTR TO POINT TO GST WD5 004453 1446 TAD I BPT2 004454 0157 AND [7400 004455 7104 CLL RAL 004456 1445 TAD I BPTR 004457 7006 RTL 004460 7006 RTL /GET LENGTH OF SEGMENT IN BLOCKS 004461 3065 DCA BLKSIZ 004462 1446 TAD I BPT2 004463 7100 CLL 004464 1057 TAD A1+1 004465 3076 DCA TMP5 004466 1057 TAD A1+1 004467 3446 DCA I BPT2 004470 1076 TAD TMP5 004471 3057 DCA A1+1 /SET BPTR = A1 004472 7004 RAL /WHILE SETTING A1 = A1 + BPTR 004473 1445 TAD I BPTR 004474 1056 TAD A1 004475 3076 DCA TMP5 004476 1076 TAD TMP5 004477 0152 AND [7770 004500 7640 SZA CLA /IF NEW ADDRESS IS > 77777, 004501 5246 JMP TOOBIG /THE THING WILL NEVER FIT 004502 1056 TAD A1 004503 3445 DCA I BPTR 004504 1076 TAD TMP5 004505 3056 DCA A1 004506 5651 JMP I FIT /RETURN / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 64 004507 0000 LEVLUP, 0 /LEVEL = MAX (LEVEL, OVRSIZ); OVRSIZ=0 004510 1547 TAD I [OVRSIZ 004511 1060 TAD LNONUM 004512 3417 DCA I NDX7 /RECORD THE SIZE OF THIS OVERLAY 004513 1546 TAD I [OVRSIZ+1 /FOR THE SYMBOL MAP PRINTOUT 004514 3417 DCA I NDX7 004515 1147 TAD [OVRSIZ 004516 4564 JMS I [SETEPT 004517 1560 TAD I [LVPTR 004520 4550 JMS I [SETBPT 004521 4325 JMS MAXCOM 004522 3443 DCA I EPT2 004523 3442 DCA I EPTR 004524 5707 JMP I LEVLUP 004525 0000 MAXCOM, 0 /BPTR = MAX (EPTR, BPTR) 004526 1442 TAD I EPTR 004527 7141 CIA CLL 004530 1445 TAD I BPTR 004531 7640 SZA CLA /CHECK HIGH-ORDER WORDS FIRST 004532 5336 JMP .+4 /THEY DIFFER 004533 1443 TAD I EPT2 004534 7141 CIA CLL 004535 1446 TAD I BPT2 /USE LOW ORDER WORDS IF HIGH ORDERS ARE = 004536 7630 SZL CLA /IS EPTR > BPTR? 004537 5725 JMP I MAXCOM /NO - EXIT 004540 1442 TAD I EPTR 004541 3445 DCA I BPTR 004542 1443 TAD I EPT2 004543 3446 DCA I BPT2 /YES - BPTR=EPTR 004544 5725 JMP I MAXCOM / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 65 004545 0000 GETLEN, 0 004546 6201 CDF 0 /OR CDF 20 004547 1411 TAD I NDX1 /LEN OF ENTRY 004550 6211 CDF 10 004551 7450 SNA /=0 MEANS LENGTH HAS ALREADY 004552 5745 JMP I GETLEN /BEEN COMPUTED. NE 0 MEANS 004553 3000 DCA TMP0 /ENTRY POINT IS THE 1ST IN A NEW MODULE 004554 1050 TAD RLEN /UPDATE REL 004555 1053 TAD RBLK /BLOCK AND 004556 3053 DCA RBLK /LENGTH OF 004557 1000 TAD TMP0 /NEW MODULE 004560 3050 DCA RLEN 004561 5745 JMP I GETLEN 004562 0000 GETEXT, 0 /LOOK FOR GST 004563 4554 JMS I [GETTYP /EXTERN 004564 5774 JMP I (DOCORE /END OF GST 004565 1426 TAD I GPTR /TYPE WD TO AC 004566 0170 AND [17 /B8-B11 004567 7112 RTR CLL /2=EXTERN 004570 7640 SZA CLA /GOT ONE? 004571 5363 JMP .-6 /NO, RETRY 004572 5762 JMP I GETEXT 004574 4000 004575 4451 004576 7600 004577 0177 4600 PAGE 4600 LB0BUF= . / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 66 /START OF PROGRAM 004600 2213 START, ISZ XSTRT /IF CHAINED TO 004601 6211 CDF 10 004602 1777 TAD I (7644 004603 0376 AND (40 /WAS /S SET FIRST TIME ? 004604 7640 SZA CLA 004605 3037 DCA SVMAIN /YES, DON'T FORGET SYSTEM-SYMBOLS 004606 7344 CLL STA RAL 004607 0775 AND I (7643 /AND OUT THE /L SWITCH 004610 3775 DCA I (7643 004611 6212 CIF 10 004612 5613 JMP I .+1 004613 2443 XSTRT, PASS0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 67 /THIS SUBROUTINE SHOULD RESIDE IN THE /FIELD 0 I/O BUFFER SINCE IT /EXECUTES ONLY ONCE /SUBROUTINE TO DETERMINE CORE SIZE / /THIS WORKS ON ANY PDP-8 FAMILY COMPUTER. /THE VALUE,FROM 1 TO 10(OCTAL) OF THE 1ST NON-EXISTENT /MEMORY FLD IS RETURNED IN THE AC. / /NOTE--THIS ROUTN MUST BE PLACED IN FLD 0 / 004614 0000 CORE, 0 004615 1374 TAD (6203 004616 6214 RDF 004617 3262 DCA CORTN 004620 6201 CDF 0 004621 1773 TAD I (7777 004622 0245 AND COR70 004623 7450 SNA 004624 5230 JMP CORELP 004625 7112 CLL RTR 004626 7010 RAR 004627 5262 JMP CORTN 004630 6201 CORELP, CDF 0 /NEEDED FOR PDP-8L 004631 1266 TAD TRYFLD /GET FLD TO TST 004632 7106 CLL RTL 004633 7004 RAL 004634 0245 AND COR70 /MASK USEFUL BITS 004635 1230 TAD CORELP 004636 3237 DCA .+1 /SET UP CDF TO FLD 004637 0000 0 004640 1664 TAD I CORLOC /SAV CURRENT CONTENTS 004641 7000 NOP /HACK FOR PDP-8 004642 3237 DCA .-3 004643 1241 TAD .-2 /7000 IS A GOOD PATTERN 004644 3664 DCA I CORLOC 004645 0070 COR70, 70 /HACK FOR PDP-8.,NO-OP 004646 1664 TAD I CORLOC /TRY TO READ BK 7000 004647 7400 7400 /HACK FOR PDP-8,.NO-OP 004650 1247 TAD .-1 /GUARD AGAINST WRAP AROUND 004651 1265 TAD CORLOC+1 /TAD 1400 004652 7640 SZA CLA 004653 5260 JMP .+5 /NON EXISTENT FLD EXIT 004654 1237 TAD COR70-6 /RESTORE CONTENS DESTROYED 004655 3664 DCA I CORLOC 004656 2266 ISZ TRYFLD /TRY NXT HIGHER FLD 004657 5230 JMP CORELP 004660 1266 TAD TRYFLD 004661 1373 TAD (-1 004662 0000 CORTN, 0 004663 5614 JMP I CORE 004664 4647 CORLOC, COR70+2 /ADR TO TST IN EACH FLD 004665 1400 1400 /7000+7400+1400=0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 67-1 004666 0001 TRYFLD, 1 /CURRENT FLD TO TST 004773 7777 004774 6203 004775 7643 004776 0040 004777 7644 5000 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 68 6600 *6600 006600 0000 DATCHG, 0 /FIND THE MONTH/YEAR 006601 7112 CLL RTR /THIS CODE FINDS THE MONTH 006602 7010 RAR /BY CALCULATING THE ADDRESS 006603 0377 AND (777 /OF THE CORRECT MONTH 006604 7112 CLL RTR /IN THE TABLE OF MONTHS 006605 7012 RTR 006606 0376 AND (36 006607 1375 TAD (MONTHS-3 /HAVE THE ADDRESS OF MONTH-1 006610 3012 DCA NDX2 /SAVE IT IN FIELD 0, PAGE 0 006611 6201 CDF 0 /CHANGE DATA FIELD TO 0 006612 1412 TAD I NDX2 /GET FIRST 2 CHARS. OF MONTH 006613 6211 CDF 10 /CHANGE DATA FIELD TO 1 006614 3774 DCA I (LDATE+2 /INSERT INTO THE TEXT LINE 006615 6201 CDF 0 /CHANGE DATA FIELD TO 0 006616 1412 TAD I NDX2 /GET LAST 2 CHARS. OF MONTH 006617 6211 CDF 10 /CHANGE DATA FIELD TO 1 006620 3773 DCA I (LDATE+3 /INSERT INTO THE TEXT LINE 006621 1772 TAD I (OSDATE /GET THE DATE--FIND THE YEAR 006622 0371 AND (7 /GET THE YEAR OFFSET BITS 006623 3770 DCA I (YRTEMP /STORE THEM AWAY 006624 6201 CDF 0 /CHANGE DATA FIELD TO 0 006625 1767 TAD I (7777 /GET THE DATE EXTENSION BITS 006626 6211 CDF 10 /CHANGE DATA FIELD TO 1 006627 0366 AND (1600 /MASK TO GET BITS 3 AND 4 006630 7112 CLL RTR /ROTATE TO GET THEM INTO 006631 7012 RTR /BIT POSITIONS 7 AND 8 /TAD (106 /GET THE NEW BASE YEAR 006632 1770 TAD I (YRTEMP /ADD THE YEAR OFFSET BITS 006633 6212 CIF 10 /CHANGE THE DATA FIELD TO 1 006634 1365 TAD (-36 /70-100 006635 7510 SPA 006636 1364 TAD (144 /100 006637 5600 JMP I DATCHG /HAVE THE YEAR / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 69 006640 0000 GETDAT, 0 006641 1770 TAD I (YRTEMP /GET THE YEAR 006642 0363 AND (7700 /MASK AND ROTATE 006643 7112 CLL RTR /TO GET THE FIRST 006644 7012 RTR /DIGIT (IN SIXBIT) 006645 7012 RTR 006646 1362 TAD (5500 /STICK A HYPHEN IN FRONT 006647 3761 DCA I (LDATE+4 /PUT IN THE TEXT LINE 006650 1770 TAD I (YRTEMP /GET THE YEAR AGAIN 006651 0360 AND (77 /MASK AND ROTATE TO 006652 7106 CLL RTL /GET THE SECOND DIGIT 006653 7006 RTL /(IN SIXBIT) 006654 7006 RTL 006655 1357 TAD (40 /STICK A SPACE AFTER IT 006656 6212 CIF 10 /CHANGE INSTRUCTION FIELD TO 1 006657 5640 JMP I GETDAT / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 70 006660 5512 MONTHS, 5512;0116 /-JAN 006661 0116 006662 5506 5506;0502 /-FEB 006663 0502 006664 5515 5515;0122 /-MAR 006665 0122 006666 5501 5501;2022 /-APR 006667 2022 006670 5515 5515;0131 /-MAY 006671 0131 006672 5512 5512;2516 /-JUN 006673 2516 006674 5512 5512;2514 /-JUL 006675 2514 006676 5501 5501;2507 /-AUG 006677 2507 006700 5523 5523;0520 /-SEP 006701 0520 006702 5517 5517;0324 /-OCT 006703 0324 006704 5516 5516;1726 /-NOV 006705 1726 006706 5504 5504;0503 /-DEC 006707 0503 006757 0040 006760 0077 006761 2101 006762 5500 006763 7700 006764 0144 006765 7742 006766 1600 006767 7777 006770 2544 006771 0007 006772 7666 006773 2100 006774 2077 006775 6655 006776 0036 006777 0777 7000 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 71 000146 2150 000147 2147 000150 0252 000151 0245 000152 7770 000153 2704 000154 1324 000155 1744 000156 0007 000157 7400 000160 2151 000161 1200 000162 3400 000163 0003 000164 1316 000165 0377 000166 0446 000167 0527 000170 0017 000171 7605 000172 0400 000173 0240 000174 0077 000175 0600 000176 0004 000177 7774 0001 FIELD 1 /PAGE 0 FLD1 TAGS FOR PASS0 /(PASS 0 LIVES WITH THE USR RESIDENT) 0020 NMCTS= 20 0021 MODCNT= 21 0022 LVLCNT= 22 0023 OVRCNT= 23 0024 PTRULS= 24 0025 MXFLD= 25 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 72 2000 *2000 /START OF GLOBAL SYMBOL TABLE /BUCKET COMES FIRST, INTERNAL /SYMBOLS AND FIELD 1 CONSTANTS ARE /HERE ALSO. GST RUNS FROM /SYMTBL TO OVLTBL-1 012000 2154 BUCKET, AAAAAA;0;0;0;EEEEEE;0 /A,B,C,D,E,F 012001 0000 012002 0000 012003 0000 012004 2163 012005 0000 012006 0000 0;0;0;0;0;0 /G-L 012007 0000 012010 0000 012011 0000 012012 0000 012013 0000 012014 0000 0;0;0;0;0;0 /M-R 012015 0000 012016 0000 012017 0000 012020 0000 012021 0000 012022 0000 0;0;0;0;0;0 /S-X 012023 0000 012024 0000 012025 0000 012026 0000 012027 0000 012030 0000 0;0 /Y,Z 012031 0000 012032 0000 0;0;0;0;0 /UNUSED BUCKETS MUST BE 0 012033 0000 012034 0000 012035 0000 012036 0000 012037 0000 0 /SPACE (FOR BLANK COMMON) 012040 0000 0;0 012041 0000 012042 2172 POUND /POUND SIGN FOR INTERNAL SYMBOLS, ALL ARE OF THE FORM (POUND XXXXX) / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 73 012043 4331 TRPSYM, TEXT '#YTRAP' 012044 2422 012045 0120 012046 0000 012047 0000 0 /TRAP VECTOR 012050 4331 LEVSYM, TEXT '#YLVL0' 012051 1426 012052 1460 012053 0000 012054 0000 0 /OVERLAY LEVEL 012055 4323 SWPSYM, TEXT '#SWAP' 012056 2701 012057 2000 012060 0000 0;0 012061 0000 012062 4315 SASYM, TEXT '#MAIN' 012063 0111 012064 1600 012065 0000 0;0 /STARTING ADDRESS 012066 0000 /TITLE LINE FOR LOADER MAP 012067 1417 TLINE, TEXT 'LOADER V' 012070 0104 012071 0522 012072 4026 012073 0000 2073 *.-1 012073 6560 LXX, VERNUM&70^7+VERNUM+6060 /VERNUM IN SIXBIT 012074 0240 PATCH&77^100+40 /PATCH LEVEL 012075 4040 LDATE, TEXT ' NO-DA -TE ' 012076 1617 012077 5504 012100 0140 012101 5524 012102 0540 012103 0000 012104 2331 STLINE, TEXT 'SYMBOL VALUE LVL OVLY' 012105 1502 012106 1714 012107 4026 012110 0114 012111 2505 012112 4014 012113 2614 012114 4017 012115 2614 012116 3100 012117 7540 HLINE, TEXT '= 1ST FREE LOCATION' 012120 6123 012121 2440 012122 0622 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 73-1 012123 0505 012124 4014 012125 1703 012126 0124 012127 1117 012130 1600 012131 1426 OTLINE, TEXT 'LVL OVLY LENGTH' 012132 1440 012133 1726 012134 1431 012135 4014 012136 0516 012137 0724 012140 1000 012141 0000 SMAPU, ZBLOCK 3 /SYMMAP UNIT, LENGTH, ST BLK # 012144 0000 LIMGU, ZBLOCK 3 /LDR IMG " 012147 0000 OVRSIZ, 0;0 012150 0000 012151 2147 LVPTR, OVRSIZ 012152 0001 SYMX, 1;SYMTBL-2 012153 2440 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 74 /SYSTEM SYMBOL TABLE 012154 0000 AAAAAA, 0 012155 0122 TEXT /ARGERR/ 012156 0705 012157 2222 012160 0000 2160 *.-1 012160 0001 1;0 012161 0000 012162 0204 JARGER 012163 0000 EEEEEE, 0 012164 0530 TEXT /EXIT/ 012165 1124 012166 0000 012167 0001 1;0 012170 0000 012171 0223 JEXIT 012172 2201 POUND, .+7 012173 4301 TEXT /#ARGER/ 012174 2207 012175 0522 012176 0000 2176 *.-1 012176 0001 1;0 012177 0000 012200 0204 JARGER 012201 2210 .+7 012202 4302 TEXT /#BAK/ 012203 0113 012204 0000 012205 0001 1;0 012206 0000 012207 0210 JBAK 012210 2217 .+7 012211 4304 TEXT /#DATE/ 012212 0124 012213 0500 012214 0001 1;0 012215 0000 012216 0203 JDATE 012217 2226 .+7 012220 4304 TEXT /#DEF/ 012221 0506 012222 0000 012223 0001 1;0 012224 0000 012225 0213 JDEF 012226 2235 .+7 012227 4304 TEXT /#DISMS/ 012230 1123 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 74-1 012231 1523 012232 0000 2232 *.-1 012232 0001 1;0 012233 0000 012234 0412 JDISMS 012235 2244 .+7 012236 4305 TEXT /#ENDF/ 012237 1604 012240 0600 012241 0001 1;0 012242 0000 012243 0211 JENDF 012244 2253 .+7 012245 4305 TEXT /#EOFSW/ 012246 1706 012247 2327 012250 0000 2250 *.-1 012250 0001 1;0 012251 0000 012252 0016 JEOFSW 012253 2262 .+7 012254 4305 TEXT /#EXIT/ 012255 3011 012256 2400 012257 0001 1;0 012260 0000 012261 0223 JEXIT 012262 2271 .+7 012263 4310 TEXT /#HANG/ 012264 0116 012265 0700 012266 0001 1;0 012267 0000 012270 0524 JHANG 012271 2300 .+7 012272 4311 TEXT /#IDLE/ 012273 0414 012274 0500 012275 0001 1;0 012276 0000 012277 0227 JIDLE 012300 2307 .+7 012301 4311 TEXT /#INT/ 012302 1624 012303 0000 012304 0001 1;0 012305 0000 012306 0403 JINT 012307 2316 .+7 012310 4322 TEXT /#RDAO/ 012311 0401 012312 1700 012313 0001 1;0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 74-2 012314 0000 012315 0217 JRDAO 012316 2325 .+7 012317 4322 TEXT /#READO/ 012320 0501 012321 0417 012322 0000 2322 *.-1 012322 0001 1;0 012323 0000 012324 0221 JREADO 012325 2334 .+7 012326 4322 TEXT /#RENDO/ 012327 0516 012330 0417 012331 0000 2331 *.-1 012331 0001 1;0 012332 0000 012333 0206 JRENDO 012334 2343 .+7 012335 4322 TEXT /#RETRN/ 012336 0524 012337 2216 012340 0000 2340 *.-1 012340 0001 1;0 012341 0000 012342 0235 JRETRN 012343 2352 .+7 012344 4322 TEXT /#REW/ 012345 0527 012346 0000 012347 0001 1;0 012350 0000 012351 0212 JREW 012352 2361 .+7 012353 4322 TEXT /#RSVO/ 012354 2326 012355 1700 012356 0001 1;0 012357 0000 012360 0207 JRSVO 012361 2370 .+7 012362 4322 TEXT /#RUO/ 012363 2517 012364 0000 012365 0001 1;0 012366 0000 012367 0215 JRUO 012370 2377 .+7 012371 4323 TEXT /#SWAP/ 012372 2701 012373 2000 012374 0001 1;0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 74-3 012375 0000 012376 0222 JSWAP 012377 2406 .+7 012400 4324 TEXT /#T812/ 012401 7061 012402 6200 012403 0001 1;0 012404 0000 012405 0225 JT812 012406 2415 .+7 012407 4325 TEXT /#UE/ 012410 0500 012411 0000 0 012412 0001 1;0 012413 0000 012414 0204 JUERR 012415 2424 .+7 012416 4327 TEXT /#WDAO/ 012417 0401 012420 1700 012421 0001 1;0 012422 0000 012423 0216 JWDAO 012424 2433 .+7 012425 4327 TEXT /#WRITO/ 012426 2211 012427 2417 012430 0000 2430 *.-1 012430 0001 1;0 012431 0000 012432 0220 JWRITO 012433 0000 0 /LAST ONE 012434 4327 TEXT /#WUO/ 012435 2517 012436 0000 012437 0001 1;0 012440 0000 012441 0214 JWUO 012442 0000 SYMTBL, 0 /START OF GST / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 75 /PASS0- THIS IS THE BEGINNING OF PASS0 012443 5247 PASS0, JMP .+4 /NORMAL ENTRY PT 012444 3322 DCA CDSW /CHAINED TO ENTRY PT - NO DECODE 1ST TIME 012445 1377 TAD (7616 012446 3016 DCA PTRIO 012447 1376 TAD (-10 012450 3022 DCA LVLCNT /SET LEVEL AND OVERLAY COUNTERS 012451 3023 DCA OVRCNT 012452 6202 CIF 0 012453 4775 JMS I (CORE /DETERMINE CORE SIZE 012454 3025 DCA MXFLD 012455 4774 JMS I (CORMOV 012456 6201 CDF 0 012457 7777 0-1 012460 6201 CDF 0 012461 4577 LB0BUF-1 /MOVE LOWER FIELD 0 TO A SAFE PLACE 012462 6000 -2000 012463 6201 CDF 0 012464 1773 TAD I (OSJSWD /GET JOB STATUS WORD 012465 0372 AND (376 /CLEAR DESIRED FLAGS 012466 1371 TAD (3403 /SET NO RESTART, USR AND CD AREAS CLEAR 012467 3773 DCA I (OSJSWD /AS WELL AS BATCH FLAG 012470 6211 CDF 10 012471 1770 TAD I (OSDATE 012472 7450 SNA 012473 5311 JMP NODATE 012474 7112 CLL RTR /ROTATE AND MASK TO GET THE DAY 012475 7010 RAR 012476 0367 AND (37 012477 4324 JMS MAKSXB /CONVERT TO SIXBIT 012500 3766 DCA I (LDATE+1 /PUT THE DAY INTO THE TEXT LINE 012501 1770 TAD I (OSDATE /GET THE DATE---FIND MONTH 012502 6202 CIF 0 /CHANGE DATA FIELD TO 0 012503 4765 JMS I (DATCHG /FIND THE MONTH/YEAR 012504 4324 JMS MAKSXB /CONVERT THE YEAR TO SIXBIT 012505 3344 DCA YRTEMP /STORE IT AWAY 012506 6202 CIF 0 /CHANGE INSTRUC. FIELD TO 0 012507 4764 JMS I (GETDAT /PRINT THE YEAR 012510 3763 DCA I (LDATE+5 /PUT REST OF YEAR IN TEXT LINE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 76 /SET UP OTHER POINTERS TO MODULE TABLES 012511 1362 NODATE, TAD (-NUMMOD 012512 3761 DCA I (MCTTBL 012513 1360 TAD (MCTTBL+1 012514 3020 DCA NMCTS /INITIALIZE MODULE CT TBL PTR 012515 1357 TAD (MODTBL+2 012516 3024 DCA PTRULS /INITIALIZE MODULE TBL PTR 012517 3021 DCA MODCNT 012520 3756 DCA I (MODTBL /CLEAR LIBRARY UNIT 012521 3420 DCA I NMCTS /CLEAR FOR 1ST LEVEL MODULE COUNTS 012522 5755 CDSW, JMP I (RALFLP /ZEROED IF CHAINED TO 012523 5754 JMP I (DECO 012524 0000 MAKSXB, 0 012525 3000 DCA TMP0 012526 3001 DCA TMP1 012527 1000 TAD TMP0 012530 1353 TAD (-12 012531 2001 ISZ TMP1 012532 7500 SMA 012533 5330 JMP .-3 /SUBTRACT 10 IN A LOOP 012534 1352 TAD (5772 /AS GOOD A NUMBER AS ANY 012535 3000 DCA TMP0 012536 1001 TAD TMP1 012537 7106 CLL RTL 012540 7006 RTL 012541 7006 RTL /GET THE TENS DIGIT INTO POSITION 012542 1000 TAD TMP0 012543 5724 JMP I MAKSXB 012544 0000 YRTEMP, 0 012552 5772 012553 7766 012554 2612 012555 2600 012556 6172 012557 6174 012560 6001 012561 6000 012562 7524 012563 2102 012564 6640 012565 6600 012566 2076 012567 0037 012570 7666 012571 3403 012572 0376 012573 7746 012574 3600 012575 4614 012576 7770 012577 7616 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 76-1 2600 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 77 /DECODE COMMAND DECODER INPUT 012600 4777 RALFLP, JMS I (200 012601 0005 5 /COMMAND DECODE 012602 2214 2214 /.RL DEFAULT EXTENSION 012603 1376 TAD (7616 012604 3016 DCA PTRIO 012605 1775 TAD I (OS8SWS+1 012606 0374 AND (40 012607 6201 CDF 0 012610 7640 SZA CLA /IS /S SWITCH ON? 012611 3773 DCA I (SVMAIN+LB0BUF /CLEAR (RELOCATED) SVMAIN 012612 6211 DECO, CDF 10 /FOR FULL SYMBOL MAP LISTING 012613 1772 TAD I (7600 /CHK FOR LOADER IMAGE FILE 012614 7450 SNA /OUTPUT FILE? 012615 5241 JMP SM /NO 012616 0371 AND (0017 /MUST BE AN "MS" DEV 012617 1370 TAD (OS8DCB-1 012620 3000 DCA TMP0 012621 1400 TAD I TMP0 012622 7710 SPA CLA /IS IT? 012623 5227 JMP .+4 /YES 012624 1367 SM1, TAD (DEVERR /NO,ERR 012625 4766 JMS I (ERORR 012626 5200 JMP RALFLP 012627 1661 TAD I P7604 012630 7450 SNA 012631 1365 TAD (1404 /.LD 012632 3661 DCA I P7604 /INTO EXTENSION IF NONE SPECIFIED 012633 4764 JMS I (CORMOV /MOVE LOADER IMAGE FILE NAME 012634 6211 CDF 10 012635 7577 7600-1 012636 6201 CDF 0 /INTO FIELD 0 012637 5300 LDRNAM+LB0BUF-1 012640 7773 -5 012641 1763 SM, TAD I (7605 /CHK FOR SYM MAP FILE 012642 7450 SNA 012643 5265 JMP SM2 /NONE 012644 0371 AND (17 012645 1370 TAD (OS8DCB-1 012646 3000 DCA TMP0 012647 1400 TAD I TMP0 012650 7004 RAL /LOOK AT "READ ONLY" BIT IN DCB 012651 7710 SPA CLA 012652 5224 JMP SM1 /ERROR - NO GOOD FOR OUTPUT 012653 1762 TAD I (7611 012654 7450 SNA 012655 1361 TAD (1423 /.LS DEFAULT MAP EXTENSION 012656 3762 DCA I (7611 012657 4764 JMS I (CORMOV /MOVE SYMMAP FILE NAME INTO FIELD 0 012660 6211 CDF 10 012661 7604 P7604, 7605-1 012662 6201 CDF 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 77-1 012663 5305 LDRNAM+LB0BUF+4 012664 7773 -5 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 78 /COLLECT INPUT FILES 012665 1760 SM2, TAD I (OS8SWS 012666 7110 CLL RAR 012667 7630 SZL CLA / IS /L SWITCH ON? 012670 5333 JMP LIBRAR /YES - THIS IS A LIBRARY FILE 012671 1416 FILELP, TAD I PTRIO 012672 7450 SNA 012673 5316 JMP FINLIN /NO MORE INPUT FILES 012674 3000 DCA TMP0 012675 1000 TAD TMP0 012676 0371 AND (17 012677 2024 ISZ PTRULS 012700 3424 DCA I PTRULS /STORE UNIT NUMBER 012701 1000 TAD TMP0 012702 0357 AND (7760 012703 7112 CLL RTR 012704 7012 RTR 012705 1356 TAD (7400 012706 7041 CIA 012707 2024 ISZ PTRULS 012710 3424 DCA I PTRULS /STORE LENGTH 012711 1416 TAD I PTRIO 012712 2024 ISZ PTRULS 012713 3424 DCA I PTRULS /STORE STARTING BLOCK NUMBER 012714 2021 ISZ MODCNT 012715 5271 JMP FILELP /CONTINUE 012716 4755 FINLIN, JMS I (CORDSW /CHECK C AND O SWITCHES 012717 1760 TAD I (OS8SWS 012720 0374 AND (40 012721 7640 SZA CLA /IF THE /G SWITCH IS ON 012722 5754 JMP I (EOPAS0 /ITS THE END 012723 1753 TAD I (OS8SWS-1 012724 7710 SPA CLA /IF AN ALTMODE TERMINATED THE LINE, 012725 5754 JMP I (EOPAS0 /DITTO 012726 1352 TAD (-MCTTBL-1 012727 1020 TAD NMCTS 012730 7640 SZA CLA /ARE WE STILL IN THE MAIN SECTION? 012731 4751 JMS I (UPDMOD /NO - UPDATE OVERLAY & MODULE COUNTS 012732 5200 JMP RALFLP / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 79 012733 1416 LIBRAR, TAD I PTRIO 012734 0371 AND (17 012735 3750 DCA I (MODTBL /STORE LIBRARY PARAMETERS 012736 1416 TAD I PTRIO /NEGLECTING LENGTH, WHICH WILL 012737 3747 DCA I (MODTBL+2 /BE FILLED IN LATER 012740 1416 TAD I PTRIO 012741 7650 SNA CLA 012742 5316 JMP FINLIN /ONLY ONE FILE ALLOWED ON THE LINE 012743 1346 TAD (MIERR 012744 5225 JMP SM1+1 /OTHERWISE ITS MIXED INPUT 012746 3101 012747 6174 012750 6172 012751 3000 012752 1777 012753 7642 012754 3200 012755 3023 012756 7400 012757 7760 012760 7643 012761 1423 012762 7611 012763 7605 012764 3600 012765 1404 012766 3063 012767 3107 012770 7757 012771 0017 012772 7600 012773 4637 012774 0040 012775 7644 012776 7616 012777 0200 3000 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 80 /UPDMOD- UPDATE MODULE COUNT TBL 013000 0000 UPDMOD,0 013001 7100 CLL 013002 1021 TAD MODCNT /UPDATE -NUM OF 013003 1777 TAD I (MCTTBL /UNUSED MODULES 013004 3777 DCA I (MCTTBL 013005 7430 SZL 013006 5255 JMP MAXRLF /MAX NUMBER EXCEEDED 013007 2023 ISZ OVRCNT /BUMP OVERLAY NUMBER 013010 7610 SKPCLA, SKP CLA 013011 5261 JMP MAXOVL /MORE THAN 16 OVERLAYS IN A LEVEL 013012 1021 TAD MODCNT /UPDATE +NUM OF 013013 1420 TAD I NMCTS /MODULES IN LAST LEVEL 013014 7450 SNA /**** 013015 5600 JMP I UPDMOD 013016 3420 DCA I NMCTS 013017 2020 ISZ NMCTS /ADV PTR TO NXT LOC 013020 3420 DCA I NMCTS /ZERO THE NXT LOC IN PREPARATION 013021 3021 DCA MODCNT /CLR CNT FOR NXT LEVEL 013022 5600 JMP I UPDMOD /CORDSW- LOOK FOR SWS C AND O 013023 0000 CORDSW, 0 013024 1776 TAD I (OS8SWS+1 013025 0375 AND (10 013026 7650 SNA CLA /CHECK FOR /U SWITCH 013027 5234 JMP CHKCSW 013030 6201 CDF 0 013031 1210 TAD SKPCLA /INHIBIT LEVEL CHECKING 013032 3774 DCA I (TSTTRP 013033 6211 CDF 10 013034 1773 CHKCSW, TAD I (OS8SWS 013035 7006 RTL 013036 7710 SPA CLA 013037 5772 JMP I (RALFLP 013040 1776 TAD I (OS8SWS+1 013041 7006 RTL 013042 7700 SMA CLA 013043 5623 JMP I CORDSW /O-SWITCH 013044 4200 JMS UPDMOD 013045 2020 ISZ NMCTS /ADV PTR FOR NXT GUY 013046 3420 DCA I NMCTS /CLR FOR NXT LEVEL MOD CNT 013047 1371 TAD (-21 013050 3023 DCA OVRCNT 013051 2022 ISZ LVLCNT /BUMP LEVEL COUNTER 013052 5772 JMP I (RALFLP 013053 1370 TAD (MXLERR 013054 5256 JMP MAXRLF+1 /TOO MANY LEVELS / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 81 013055 1367 MAXRLF, TAD (MXRERR 013056 4263 JMS ERORR 013057 6203 CDF CIF 0 013060 5766 JMP I (7605 013061 1365 MAXOVL, TAD (MXOERR 013062 5256 JMP MAXRLF+1 /ERORR- PRINTS OUT ERROR MESSAGES OF A / BUFR LOCATED IN FLD1 / ENTER WITN ADR OF BUFR IN AC / 013063 0000 ERORR, 0 013064 3277 DCA BFADR 013065 6211 CDF 10 /CALL TTYHAN 013066 4764 JMS I (CORMOV 013067 6201 CDF 0 013070 4577 LB0BUF-1 /MOVE LOWER FIELD 0 BACK 013071 6201 CDF 0 /SO WE CAN USE THE MESSAGE HANDLER 013072 7777 0-1 013073 6000 -2000 013074 6202 CIF 0 013075 4763 JMS I (TTYHAN 013076 6211 CDF 10 013077 0000 BFADR, 0 013100 5663 JMP I ERORR / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 82 013101 1511 MIERR, TEXT /MIXED INPUT/ 013102 3005 013103 0440 013104 1116 013105 2025 013106 2400 013107 0201 DEVERR, TEXT /BAD OUTPUT DEVICE/ 013110 0440 013111 1725 013112 2420 013113 2524 013114 4004 013115 0526 013116 1103 013117 0500 013120 2417 MXRERR, TEXT /TOO MANY RALF FILES/ 013121 1740 013122 1501 013123 1631 013124 4022 013125 0114 013126 0640 013127 0611 013130 1405 013131 2300 013132 2417 MXLERR, TEXT /TOO MANY LEVELS/ 013133 1740 013134 1501 013135 1631 013136 4014 013137 0526 013140 0514 013141 2300 013142 2417 MXOERR, TEXT /TOO MANY OVERLAYS/ 013143 1740 013144 1501 013145 1631 013146 4017 013147 2605 013150 2214 013151 0131 013152 2300 013163 0400 013164 3600 013165 3142 013166 7605 013167 3120 013170 3132 013171 7757 013172 2600 013173 7643 013174 3061 013175 0010 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 82-1 013176 7644 013177 6000 3200 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 83 /PASS1, PASS2 INITIALIZATION 013200 4777 EOPAS0, JMS I (UPDMOD /BUMP COUNTS FOR LAST LINE OF INPUT 013201 2020 ISZ NMCTS 013202 3420 DCA I NMCTS /PUT IN A DOUBLE ZERO AT THE END 013203 4776 JMS I (CORMOV 013204 6201 CDF 0 013205 4577 LB0BUF-1 013206 6201 CDF 0 013207 7777 0-1 /MOVE LOWER FIELD 0 BACK INTO PLACE 013210 6000 -2000 013211 1775 TAD I (MODTBL 013212 7640 SZA CLA /USER-SPECIFIED LIBRARY? 013213 5230 JMP RDLIBH /YES 013214 6201 CDF 0 013215 1774 TAD I (SBLOCK /ON CCL-DEVICE 013216 6211 CDF 10 013217 3775 DCA I (MODTBL /STORE UNIT AND BLOCK # 013220 1775 TAD I (MODTBL 013221 4773 JMS I (200 013222 0002 2 /LOOKUP 013223 3336 LIBRY 013224 0000 0 013225 5244 JMP NOLIB /FORLIB.RL NOT FOUND 013226 1223 TAD .-3 /GET STARTING BLOCK 013227 3772 DCA I (MODTBL+2 013230 7132 RDLIBH, STL RTR 013231 3771 DCA I (MODTBL+1 /JUST TO BE CAREFUL 013232 6202 CIF 0 013233 4770 JMS I (IOHAN /READ BLOCK 0 OF THE LIBRARY CATALOG 013234 6172 MODTBL 013235 0210 0210 013236 7000 PLB, RALFBF 013237 0000 0 013240 7240 STA 013241 1636 TAD I PLB 013242 7650 SNA CLA /IS IT AN HONEST - TO - GOD LIBRARY? 013243 5247 JMP .+4 /YES 013244 3775 NOLIB, DCA I (MODTBL 013245 3772 DCA I (MODTBL+2 013246 3767 DCA I (RALFBF+3 /ZERO COUNT WORD IN BUFFER 013247 1767 TAD I (RALFBF+3 013250 3771 DCA I (MODTBL+1 /STORE LENGTH OF CATALOGUE 013251 1366 TAD (LHDR-1 013252 3010 DCA NDX0 013253 1365 TAD (-400 013254 3000 DCA TMP0 013255 3410 DCA I NDX0 /0 OUT 013256 2000 ISZ TMP0 /LDR HDR 013257 5255 JMP .-2 /GET PAGE 0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 84 /PASS1 INITIALIZATION CONTINUED 013260 1764 TAD I (MCTTBL /UNUSED 013261 3002 DCA TMP2 /MODULES 013262 1363 TAD (MCTTBL+2 /GET NUMBER OF OVERLAYS 013263 3010 DCA NDX0 / IN EACH LEVEL 013264 1362 TAD (QUSRLV+4 /WHERE THE 013265 3000 DCA TMP0 /CNTS GO IN 013266 5276 JMP BY0 /LDR HDR BLK 013267 2400 LOP0, ISZ I TMP0 /INCREMENT NUMBER OF OVERLAYS IN THIS LEVEL 013270 1410 TAD I NDX0 013271 7640 SZA CLA /END OF LEVEL? 013272 5267 JMP LOP0 /NO 013273 1361 TAD (4 /THIS LEVEL 013274 1000 TAD TMP0 013275 3000 DCA TMP0 013276 3400 BY0, DCA I TMP0 /RESET CNT 013277 1410 TAD I NDX0 /0,0 ENDS 013300 7640 SZA CLA /MOD CNT TBL 013301 5267 JMP LOP0 /DO MORE PTR TO 013302 1771 TAD I (MODTBL+1 /GET LENGTH OF LIBRARY CATALOG 013303 3075 DCA TMP4 /BLOCKS 013304 1002 TAD TMP2 /CHK FOR MAX 013305 7640 SZA CLA /NUM OF RALFS 0=MOD TBL IS FULL 013306 1775 TAD I (MODTBL /CHK FOR NO 013307 6201 CDF 013310 3760 DCA I (LIBRSW /LIBRARY AND SET SWITCH ACCORDINGLY 013311 1002 TAD TMP2 /-NUM LEFT 013312 3757 DCA I (MLEFT /OF RALF MODS 013313 1356 TAD (SYMTBL-1 /PTR TO TOP 013314 3755 DCA I (NDX4 /OF GST 013315 1754 TAD I (OSJSWD 013316 0353 AND (7377 /KILL "BATCH PROTECTED" FLAG 013317 3754 DCA I (OSJSWD / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 85 013320 7344 AC7776 /IS THERE 013321 1025 TAD MXFLD /GREATER THAN 12K OF CORE 013322 7750 SPA SNA CLA /? 013323 5332 JMP LS16K /NO 013324 1352 TAD (200^12!30 /SET TXT I/O 013325 3751 DCA I (TXTBLK-2 /BUFFS UP IN FLD 3 013326 1377 TAD (-5000 /-WDCNT (12 013327 3750 DCA I (TXTWDS /BLKS) 013330 1347 TAD (6231 /CDF 30 013331 3746 DCA I (RDTCDF 013332 1345 LS16K, TAD (7700 /USR IS NOT 013333 3744 DCA I (USR /IN CORE 013334 6211 CDF 10 013335 5743 JMP I (INIBFS 013336 0617 LIBRY, FILENAME FORLIB.RL 013337 2214 013340 1102 013341 2214 013343 3450 013344 0020 013345 7700 013346 3156 013347 6231 013350 3163 013351 3147 013352 2430 013353 7377 013354 7746 013355 0014 013356 2441 013357 3754 013360 3716 013361 0004 013362 7213 013363 6002 013364 6000 013365 7400 013366 7177 013367 7003 013370 0600 013371 6173 013372 6174 013373 0200 013374 7776 013375 6172 013376 3600 013377 3000 3400 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 86 /THIS IS THE INITIAL BINARY BUFFER TABLE 3647 R= LDBUFS-BUFTAB 013400 7253 BUFTAB, .+4+R; 0; 0; 3200 /03200-05177 013401 0000 013402 0000 013403 3200 013404 7257 B8KPT, .+4+R; 0; 0; 5200 /05200-07177 013405 0000 013406 0000 013407 5200 013410 7263 .+4+R; 0; 0; 0020 /20000-21777 013411 0000 013412 0000 013413 0020 013414 7267 B12KPT, .+4+R; 0; 0; 2020 /22000-23777 013415 0000 013416 0000 013417 2020 013420 7273 B16KPT, .+4+R; 0; 0; 4020 /24000-25777 013421 0000 013422 0000 013423 4020 013424 7277 .+4+R; 0; 0; 0040 /40000-41777 013425 0000 013426 0000 013427 0040 013430 7303 B20KPT, .+4+R; 0; 0; 2040 /42000-43777 013431 0000 013432 0000 013433 2040 013434 7307 .+4+R; 0; 0; 4040 /44000-45777 013435 0000 013436 0000 013437 4040 013440 7313 .+4+R; 0; 0; 0050 /5000-51777 013441 0000 013442 0000 013443 0050 013444 0000 0; 0; 0; 2050 /52000-53777 013445 0000 013446 0000 013447 2050 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 87 013450 1025 INIBFS, TAD MXFLD 013451 1377 TAD (JMP STBPTR-1 013452 3253 DCA .+1 013453 7402 HLT /DISPATCH ON NUMBER OF FIELDS 013454 3204 STBPTR, DCA B8KPT 013455 3214 DCA B12KPT 013456 3220 DCA B16KPT 013457 3230 DCA B20KPT 013460 7000 NOP 013461 7000 NOP /NOT SET UP TO USE MORE THAN 24K 013462 7000 NOP 013463 4776 JMS I (CORMOV 013464 6211 CDF 10 013465 3377 BUFTAB-1 /MOVE THE BINARY BUFFER TABLE 013466 6211 CDF 10 013467 7246 LDBUFS-1 /INTO A SAFE PLACE 013470 7730 -50 013471 6201 CDF 0 013472 1022 TAD LVLCNT /SET -NUM OF 013473 1375 TAD (11 /LEVELS 013474 7041 CIA 013475 3774 DCA I (NLVL 013476 1373 TAD (-5 /NUM OF LIBR 013477 3002 DCA TMP2 /BLKS FOR 8K 013500 7240 CLA CMA 013501 1025 TAD MXFLD 013502 7650 SNA CLA /GREATER THAN 8K CORE? 013503 5315 JMP TO8K /NO SET LIBR ARGS 013504 3772 DCA I (LBARG+1 013505 1371 TAD (200^12!20 /12 BLKS FLD2 013506 3770 DCA I (LBARG 013507 1367 TAD (6221 /CDF 20 013510 3766 DCA I (LBFLD 013511 1367 TAD (6221 013512 3765 DCA I (GETLEN+1 013513 1364 TAD (-12 013514 3002 DCA TMP2 013515 1002 TO8K, TAD TMP2 /WILL LIBR 013516 1075 TAD TMP4 /BE CORE 013517 7740 SMA SZA CLA /RESIDENT? 013520 3763 DCA I (RESFLG /NO 013521 1362 TAD (SYMTBL-1 013522 3761 DCA I (NDX0 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 88 013523 6211 CDF 10 013524 1360 TAD (ESDPG-1 /ENTER DEFAULT 013525 3010 DCA NDX0 /VALUES FOR 013526 1357 TAD (-200 /ESD REF PAGE 013527 3000 DCA TMP0 /IT SAVES 013530 1356 TAD (SYMTBL+5 /PROBLEMS WITH 013531 3410 DCA I NDX0 /EXTERNS 013532 2000 ISZ TMP0 013533 5330 JMP .-3 013534 7326 CLA STL RTL 013535 3755 DCA I (LHDR /STORE LOADER IMAGE CODE IN HEADER 013536 1354 TAD (VERNUM 013537 3753 DCA I (QVERNO /STORE LOADER VERSION NUMBER 013540 6202 CIF 0 013541 5776 JMP I (STPAS1 013553 7205 013554 0050 013555 7200 013556 2447 013557 7600 013560 7377 013561 0010 013562 2441 013563 3755 013564 7766 013565 4546 013566 3651 013567 6221 013570 3727 013571 2420 013572 3730 013573 7773 013574 4126 013575 0011 013576 3600 013577 5253 3600 PAGE / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 89 /CORMOV- A CORE MOVE FOR A CHUNK OF CORE IN / ANY FLD TO ANY FLD. / / CALL JMS CORMOV / CDF Z1 /Z1=FROM FLD / ADDR1 /ADDR OF (1ST LOC-1) / CDF Z2 /Z2=TO FLD / ADDR2 /ADDR OF (1ST LOC-1) / -N /-OCT NUM OF WDS TO MOV / 013600 0000 CORMOV, 0 013601 7240 CLA CMA 013602 1200 TAD CORMOV 013603 3010 DCA NDX0 013604 1410 TAD I NDX0 013605 3216 DCA TOCDF-2 013606 1410 TAD I NDX0 013607 3011 DCA NDX1 013610 1410 TAD I NDX0 013611 3220 DCA TOCDF 013612 1410 TAD I NDX0 013613 3012 DCA NDX2 013614 1410 TAD I NDX0 013615 3000 DCA TMP0 013616 0000 0 013617 1411 TAD I NDX1 013620 0000 TOCDF, 0 013621 3412 DCA I NDX2 013622 2000 ISZ TMP0 013623 5216 JMP TOCDF-2 013624 6211 CDF 10 013625 5410 JMP I NDX0 /RTN 0000 FIELD 0 0200 *200 $$$$$ / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 90 AAAAAA 2154 DECO 2612 IOH 0671 LIMSG 3351 AC0002 7326 DEVERR 3107 IOHAN 0600 LNONUM 0060 AC2000 7332 DOCORE 4000 IOMSG 0275 LOOK 1200 AC4000 7330 DOMAP 0452 ISCOM 3270 LOOKRT 2066 AC7775 7346 DO8S 4400 ISCOM3 3265 LOP0 3267 AC7776 7344 DPFLG 0040 JARGER 0204 LOP10 1450 ADVOVR 1022 DUNLVL 4127 JBAK 0210 LOP11 2233 ALLDN1 4200 DUNMN 4027 JDATE 0203 LOP12 2113 A1 0056 DUNMP 1467 JDEF 0213 LOP3 4017 BADDY 3251 DVTBL 7647 JDISMS 0412 LOP4 3621 BADORG 2352 EEEEEE 2163 JENDF 0211 LOP5 1211 BFADR 3077 ENDLB 3744 JEOFSW 0016 LOP6 4073 BLDTV 2200 ENDSYM 1315 JEXIT 0223 LOP7 1655 BLKBEG 0070 ENTERR 1553 JHANG 0524 LP1 4132 BLKCNT 0062 ENTMN 3474 JIDLE 0227 LSTBLK 3753 BLKSIZ 0065 ENTMN2 3476 JINT 0403 LS16K 3332 BP 0055 ENTMSG 0306 JOUSYM 1526 LVLCNT 0022 BPPREV 2702 ENTM2 3472 JRDAO 0217 LVPTR 2151 BPTR 0045 EOLVL 1046 JREADO 0221 LXX 2073 BPT2 0046 EOPAS0 3200 JRENDO 0206 MAKSXB 2524 BSECTP 0066 EPTR 0042 JRETRN 0235 MAXBLK 2703 BUCKET 2000 EPT2 0043 JREW 0212 MAXCOM 4525 BUFTAB 3400 ERORR 3063 JRSVO 0207 MAXOVL 3061 BY0 3276 ESDPG 7400 JRUO 0215 MAXRLF 3055 BY10 1042 ESDSCN 3320 JSWAP 0222 MBGCNT 0074 BY11 2127 ETYP 0044 JT812 0225 MCNT 0073 BY12 2017 FATAL 0054 JUERR 0204 MCTTBL 6000 BY2 3031 FCNWD 0727 JWDAO 0216 MERGE 2505 BY2M5 3024 FILELP 2671 JWRITO 0220 MESADR 0444 BY3 3643 FINLIN 2716 JWUO 0214 MIERR 3101 BY7 1063 FIT 4451 LBARG 3727 MLEFT 3754 B12KPT 3414 FIT8S 4421 LBCNT 0061 MNCZ 3532 B16KPT 3420 FRUNAM 2501 LBFLD 3651 MNF1 3530 B20KPT 3430 FTMP0 0051 LBPTR 0027 MNMSG 3356 B8KPT 3404 F1FLG 0033 LBREC 3731 MNSECN 3535 CDSW 2522 F8SECT 4426 LB0BUF 4600 MNSEC5 3542 CHBLOK 2103 GETCDF 0741 LDATE 2075 MNS8 3534 CHKCSW 3034 GETCTL 2532 LDBUFS 7247 MODCNT 0021 CORDSW 3023 GETDAT 6640 LDCLEN 2046 MODTBL 6172 CORE 4614 GETEXT 4562 LDRBLK 4262 MONTHS 6660 CORELP 4630 GETLEN 4545 LDRIO 0203 MPBLK 1412 CORLOC 4664 GETTXT 3141 LDRIOA 0240 MREAD 7757 CORMOV 3600 GETTYP 1324 LDRIOB 0241 MSMSG 3337 CORMSG 3344 GOTBLK 2657 LDRIOC 0237 MTBL 1150 CORTN 4662 GPTR 0026 LDRIOR 0243 MTMCNT 3275 COR70 4645 GTYP 0041 LDRLEN 4263 MULENT 3260 CRLF 0521 HAF 0431 LDRNAM 0501 MXFLD 0025 CRLFF 0441 HAFWD 1531 LEVLUP 4507 MXLERR 3132 CTST 3226 HLINE 2117 LEVRND 1074 MXOERR 3142 CURBLK 2746 HNDERR 0744 LEVSYM 2050 MXRERR 3120 CVLOVL 1727 HOOKIN 1264 LHDR 7200 MYSTIC 3276 CVRT 1651 INIBFS 3450 LIBRAR 2733 M4 3436 CVRTMP 1726 INQIRE 0746 LIBRSW 3716 M7 3437 CZFLG 0032 IOENT 0736 LIBRY 3336 NDX0 0010 DATCHG 6600 IOFLG 0022 LIMGU 2144 NDX1 0011 / OS/8 F4 LOADER, V50A PAL8-V50Y 21-JUL-20 PAGE 90-1 NDX2 0012 PRGSCN 3443 SETSLP 4325 UPDMOD 3000 NDX3 0013 PRMAIN 1466 SETTRP 3014 USR 0020 NDX4 0014 PROVLP 2406 SETTYP 1235 VERNUM 0050 NDX5 0015 PROVLY 2400 SHFT3 3246 VIRGIN 2636 NDX6 0016 PR15 1752 SIXTO8 1543 WRALL 2435 NDX7 0017 PTRIO 0016 SKPCLA 3010 WRBUF 1640 NEWBB 2600 PTRULS 0024 SM 2641 XSTRT 4613 NEWBB4 2610 PUTBIN 2704 SMAPU 2141 YECCH 1260 NEWBLK 0071 PUTSYM 3201 SMPCLN 1522 YRTEMP 2544 NEWBUF 2666 P2FLG 0031 SM1 2624 YUCCH 1223 NEWLEN 0072 P6201 0763 SM2 2665 NEWORG 2303 P7600 0655 SM600 1501 NLVL 4126 P7604 2661 START 4600 NMCTS 0020 QDPFLG 7206 STBPTR 3454 NODATE 2511 QHGHAD 7203 STCNT 3717 NOLIB 3244 QRTSWP 7201 STLINE 2104 NOMAP 1524 QUIKIE 2664 STPAS1 3600 NOMAT 3425 QUSRLV 7207 STYPE 4450 NOMSCT 4216 QVERNO 7205 SVMAIN 0037 NORTS 2104 R 3647 SWITZ 0036 NOTREL 2453 RALFBF 7000 SWPSYM 2055 NUMENT 3756 RALFLP 2600 SYLST 1646 NUMMOD 0254 RBLK 0053 SYMMAP 1400 NXTENT 3631 RDLBR 3720 SYMMSG 0270 NXTESD 1000 RDLIBH 3230 SYMTBL 2442 NXTOVR 1115 RDRLES 2421 SYMTM3 0023 OLDCNT 3757 RDTCDF 3156 SYMX 2152 OLINE 1340 REFPTR 0047 SYSERR 0535 OLINLP 1342 RELC 3106 S8FLG 0034 ONEOR2 1615 RELC2 3110 TLINE 2067 ORGFLG 0024 RELC6 3114 TMP0 0000 ORGMSG 0260 RELMSG 2455 TMP1 0001 OSDATE 7666 REORG 3124 TMP2 0002 OSJSWD 7746 REP 3400 TMP3 0003 OS8DCB 7760 RESFLG 3755 TMP4 0075 OS8ER 0527 RFPTR1 0025 TMP5 0076 OS8SWS 7643 RLARG 2430 TOCDF 3620 OTLINE 2131 RLEN 0050 TOOBIG 4446 OUFILP 1505 ROL 1627 TO8K 3515 OUTFLD 2721 RTBLOK 2072 TRAPV 0063 OUTINH 0067 RTNIO 0734 TRPCNT 0030 OUTSYM 1672 RTNOS8 0446 TRPSYM 2043 OVLTBL 5435 RTSMSG 2465 TRYFLD 4666 OVRCNT 0023 RTSNAM 2475 TSTTRP 3061 OVRFLO 0035 SAMOVR 1103 TTYCDF 0414 OVRSIZ 2147 SAMOV4 1107 TTYHAN 0400 OVTLEN 0343 SASYM 2062 TTYLP 0416 PACK 1600 SBLOCK 7776 TTYO 0513 PASS0 2443 SBPTR 1645 TXTBLK 3151 PASS2 2000 SETBGX 0245 TXTSCN 3000 PATCH 0302 SETBPT 0252 TXTWDS 3163 PCRLF 1744 SETCNT 1133 TYTBL 0544 PLB 3236 SETEPT 1316 T2J 3234 POUND 2172 SETREF 2107 ULSADR 0737 PPACK 0021 SETSBN 0705 UNITSV 0740 ERRORS DETECTED: 0 LINKS GENERATED: 0