22FL ...#SEG LOADERGO86 [M. DRUKKER 22J9 ...# ######################################################## 22LS ...# 22PC ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22S2 ...# 22WK ...# ######################################################### 22^= #LIS K0LOADERMT>K0LOADER>K0ALLGEO 23DW # 23YG # 24D6 # THIS SEGMENT CONTAINS THE SECOND & THIRD ENTRY POINTS: 24XQ # K2LOADERMT : WE GET HERE WHEN THE GEORGE FILE HAS BEEN 25CB ...# LOCATED AFTER A DA/ED/FD/DR/HD COMMAND. 25X2 # GEORGE IS TRANSFERRED FROM TAPE TO ITS 26BL # FUTURE HOME 26W= # 27*W # K3LOADERMT : WE GET HERE AS SOON AS GEORGE IS RESIDENT 27TG # IN ITS BS FILE. LOADER IS BROUGHT DOWN & 28*6 # IS ENTERED. 28SQ # 29#B # *** DATA AREAS *** 29S2 # 2=?L # 2=R= #DEF MTFAILMK=JLFAIL 2?=W #DEF THEFILE=JLFILE 2?QG #DEF TRAPFAIL=JLTRAP 2#=6 #DEF STARTCOMM=JLCOMM 2#PQ # 2*9B # 2*?K ...JLSMESS +0 [CHAR COUNT FOR ECHOING 2**S ...JLMESS 2*D3 ...#GAP 25 [CONSOLE BUFFER 2*G= ... 4H [THESE ARE HERE SO THAT DELETE CHARS 2*JF ...# [ARE HANDLED PROPERLY 2*LN ...# 2*P2 Z511 +511 2B8L ZNEWINST LDX 4 WRITEAWAY(2) 2BN= ZOLDINST LDN 4 1 2C7W S 2CMG #GAP 6 2D76 JLTABLE 2DLQ ZALDS +LFSTABLE 2F6B +LCDUM 2FL2 +DFSTABLE 2G5L +DCDUM 2GK= # CONTROL AREAS FOR MT 2H4W # 2HJG JLMHEAD 2HWX ...MHEAD +0,+10,+JLMHEADA 2J9# ...JLMSKIP 2JHQ MSKIP +4,+0,+0 2JRJ ...JLMDATA 2K3B ...MDATA +0,+512,+AENDCHAPS+1024 2K?8 ...JLMTREW 2KH2 MTREW +7,+0,+0 2L2L # 2LG= NDADD 2L^W JLNDADD -512 [LAST D-ADDRESS TRANSFERRED TO BS 2MFG MTYPE5 #73050005 [WD 0 OF TYPE 5 BLK 2M^6 MENT #73030002 [WD 0 OF ENTRY BLK 2NDQ JLTMCNT 2NYB TMCOUNT +0 [COUNT OF TM'S READ 2PD2 MRFIRS +DFSTABLE+FIRS 2PXL JLMHEADA 2QC= MHEADA 2QWW #GAP 10 2R6N ...X1 +0 [FOR ACCUMULATOR 2RBG PTLINK +0 [FOR PERITAPE 2RW6 WRLINK +0 [FOR JLWRITE 2S*Q WRLINKA +0 [FOR WRITE 2STB WRX4 +0 2T*2 WRX7 +0 2TSL BSVOL 2W#= VOLPROG +DGEND+LGEND [SIZE OF GEORGE FILE ON TAPE 2WJ4 ...JLVOLFILE 2WRW VOLFILE +0 [TO KEEP SIZE OF G'S BS FILE 2X?G ZBMARK +0 [-VE -> HANDLING ZERO-BLKS 2XR6 SEPAR +0 [ZERO-BLK SEPARATION 2XY# ...#SKI G4 2Y5G ...JLSWBUF +0 [IN LOADEREM FOR G3 2Y=Q MASKA #37777777 [USEFUL MASK 2YCY ...XDLOADERMT +DLOADERMT [NOW REDUNDANT 2YK7 ...THEEND +ENDOFLA+LLOADERPM 2^=2 READOWN +0,+0,+0,+0 [MODE/COUNT/CTSA/DTSA FOR READING 2^PL [DOWN LOADER 329= ...WRITEAWAY +1,+0,+AENDCHAPS,+0 [MODE/COUNT/CTSA/DTSA FOR WRITING 32NW [BLOCKS AWAY TO BS 32YN ...JLGSMALL 338G SMALL +32,32H GEORGE BS FILE TOO SMALL^*^* 33D# ...JLGSFMESS 33N6 SFMESS +24,24H MT CHECKSUM FAIL^*^* 33XY ...JLGMFEMESS 347Q MFEMESS +23,23H MT FORMAT ERROR^*^* 34CJ ...JLGMTFAIL 34MB MTFAIL +15,15H MT FAIL^*^* 34X8 ...JLGVLOST 3572 VLOST +20,20H LOST MY TAPE^*^* 35BS ...JLGREADY 35LL READY +18,18H OK^*LOADED^*^* 35WD ...WIDTH +49,49H WARNING^* GEORGE FILE IS NOT FULL WIDTH^*^* 366= # 36KW # 375G # 37K6 # 384Q # S/R TO EXECUTE TRANSFERS ON MAG TAPE 38JB # CALLED VIA X0 3942 # EXPECTS X6->CONTROL AREA; JLPSMT(2)->DL FOR TAPE 39HL JLPTAPE 3=3= PERITAPE 3=GW # NOT TAPEMARK ENTRY POINT 3?2G NGNC 5 1 3?G6 # TM ENTRY POINT 3?^Q LDN 5 0 3#FB ERN 5 1 3#^2 STO 0 PTLINK(2) 3*DL LDX 1 JLPSMT(2) [->DL FOR TAPE 3*Y= JENG 1,PT1 3BCW PT2 LDN 1 MTFAIL(2) [TAPE FAIL 3BXG STOZ MTFAILMK(2) [INDICATE IT 3CC6 BRN JLER 3CWQ PT1 LDX 2 6 3DBB LDX 7 0(2) 3DW2 DCA 1,STO,7,MODE 3F*L LDX 7 1(2) 3FT= DCA 1,STO,7,COUNT 3G#W LDX 7 2(2) 3GSG DCA 1,STO,7,CTSA [SET UP CONTROL AREA 3GWP ... LDX 2 G3DOL 3H5B ... LDX 7 JLSWBUF(2) 3H7K ... BNZ 7 PT3 [NOT YET IF DOUBLE BUFFERING 3H#6 SMO G3DOL 3HRQ LDN 2 JLPSMT-CPPTR [2->PAB 3J?B GPERI 1,2,NC 3JR2 PT3 JBUSY 1,PT3 [WAIT ON TERMINATION 3K=L DCA 1,LDEX,7,MODE [GET PERI MODE 3KQ= LDX 2 G3DOL 3L9W SBN 7 7 3LPG BZE 7 PT4 [REWINDS CAN'T FAIL 3M96 ADN 7 3 3MNQ BNZ 7 PT5 [NOT SKIP-TO-TM 3MX2 ... LDN 1 JLPSMT-CPPTR 3N5= ... LDX 0 CPRW1 3N?G ... SLL 0 3 3NFQ ... BNG 0 PT2 [FAILED 3NN2 BRN PT4 [OK 3P7L PT5 LDX 0 JLPSMT+1(2) [GET REPLY WD. 3PM= SRL 0 19 3Q6W ANDN 0 #27 [GET B0 & B2-B4 3QLG ERX 0 5 [SWITCH B4 IF TM EXPECTED 3R66 BNZ 0 PT2 [FAILED 3R8P ...PT4 3RDG ... LDX 7 JLSWBUF(2) 3RH5 ... BZE 7 PT6 [SINGLE BUFFRG DONE ALREADY 3RKN ... SMO G3DOL 3RN? ... LDN 2 JLPSMT-CPPTR [2->PAB 3RQW ... GPERI 1,2,NC 3RTF ... LDX 2 G3DOL 3S2M ...PT6 LDX 0 PTLINK(2) [RELOAD LINK 3S5B EXIT 0 0 3TJ= # 3W3W # 3WHG # S/R TO WRITE AWAY A BLK FROM JLBUFF TO BS. 3X36 # DRUM ADDRESS OF BLK IN X7 3XGQ # CALLED VIA X0 3Y2B # FILE DETAILS AT BSDESC (Q.V.). 3YG2 # DEVICE DETAILS: 3Y^L # 1) PTR TO DEVICE LIST IN JLPSBS 3^F= # 2) DEVICE TYPE (6,9,13,25 OR 26) IN JLBS 3^YW # 3) DEVICE SUBTYPE IN JLBSUB (IF DISC). 42DG # 42Y6 JLWRITE 43CQ STO 0 WRLINK(2) 43N= ... LDX 0 JLSWBUF(2) 43SG ... LDX 5 AJLBUFF(2) 43YQ ... SBX 5 2 [ROUND DATUM PROBLEM - TEMP 44*G ... BZE 0 WR00 [JUMP IF S. BUFF'G 44FQ ... ADX 5 JLTDOUBUF(2) 44Q= ...WR00 STO 5 WRITEAWAY+2(2) [USUAL CTSA 44WL LDX 0 JLBS(2) 45B= ANDN 0 6 45TW BZE 0 WRDRUM 46*G # 46T6 # WRITING TO DISC 47#Q # 47SB LDN 0 512 48#2 STO 0 WRITEAWAY+1(2) [COUNT IN GENERAL 48RL SRL 7 7 [->BLKS 49?= LDX 5 7 [X7]=1ST IN GROUP REL BLKNO 49QW ADN 5 3 [X5]= LAST... 4==G DVS 4 BSDESC+5(2) [/FILEDEPTH 4=Q6 DVS 6 BSDESC+5(2) [/FILEDEPTH 4?9Q TXU 5 7 [FIRST & LAST BLKS IN SMME CYL 4?PB BCC WR01 [YES 4#92 # 4#NL # GROUP SPLIT OVER CYL 4*8= # 4*MW LDX 0 BSDESC+5(2) [FILE DEPTH 4B7G SBX 0 6 [X0]=NO OF BLKS IN 1ST CYL 4BM6 SLL 0 7 [-> WDS 4C6Q STO 0 WRITEAWAY+1(2) [COUNT FOR 1ST TRANSFER 4CLB CALL 0 WRITE [WRITE AWAY 1ST LOT 4D62 LDX 0 WRITEAWAY+1(2) 4DKL ADS 0 WRITEAWAY+2(2) [DTSA FOR 2ND TRANSFER 4F5= SBN 0 512 4FJW NGS 0 WRITEAWAY+1(2) [COUNT FOR 2ND TRANSFER 4G4G LDX 6 4 [REL BLKNO 4GJ6 LDX 7 5 [REL CYLNO 4H3Q # 4HHB WR01 CALL 0 WRITE 4J32 LDX 0 WRLINK(2) 4JGL EXIT 0 0 4K2= # 4KFW # S/R TO WRITE AWAY CHUNKLETS (1,2,3,4 BLKS) 4K^G # EXPECTS CTSA & COUNT FILLED IN & [X6]= BLKNO REL TO FILE 4LF6 # & [X7]= CYLNO REL TO FILE 4LYQ # 4MDB WRITE STO 0 WRLINKA(2) 4MY2 MPY 7 BSDESC+4(2) [REL CYLNO*BLKS/CYL 4NCL ADX 0 BSDESC+2(2) [+START BLKNO OF FILE 4NX= ADX 0 6 [+REL BLKNO 4PBW [GIVES ABS BLKNO REL TO SU 4PWG ... LDX 1 0 4QB6 ... CALL 6 JLCONV2 [-> HA IN X0 4R*B LDN 1 WRITEAWAY(2) 4RT2 STO 0 3(1) [DTSA 4S#L LDX 3 JLPSBS(2) 4SS= CALL 0 JLPDISC 4T?W NULL 4TRG LDX 0 WRLINKA(2) 4W?6 EXIT 0 0 4WQQ # 4X=B # WRITING TO DRUM 4XQ2 # 4Y9L WRDRUM 4YP= LDX 0 JLBS(2) 4^8W SBN 0 9 4^NG BZE 0 WRSD [DETERMINE DRUM TYPE 5286 WRHSD 52MQ SRL 7 7 [BLK ADDR 537B WRSD ADX 7 BSDESC(2) [+ DATUM 53M2 LDN 1 WRITEAWAY+1(2) 546L STO 7 2(1) 54L= LDN 7 512 [COUNT 555W STO 7 0(1) 55KG LDN 4 1 5656 LDX 3 JLPSBS(2) 56JQ LDCT 0 #400 [DON'T IGNORE FIXES OR FAILS 574B CALL 6 JLPDRUM [TRANSFER 57J2 ... 0 583L LDX 0 WRLINK(2) [RESTORE LINK 58H= EXIT 0 0 592W # 59GG # 5=26 # VARIOUS ERROR PATHS 5=FQ # 5=PJ ...JLSUMF 5=^B SUMF 5?F2 LDN 1 SFMESS(2) 5?YL STOZ MTFAILMK(2) [IRRECOVERABLE 5#D= BRN JLER 5#XW ...JLMFE 5*CG ...MFE LDN 1 MFEMESS(2) 5*X6 STOZ MTFAILMK(2) [IRRECOVERABLE 5BBQ BRN JLER 5BLJ ...JLTOOSMALL 5BWB TOOSMALL 5CB2 LDN 1 SMALL(2) 5CTL BRN JLER 5D*= # 5DSW # 5F#G # 5FS6 # 5G?Q # 5GRB K2LOADERMT 5H?2 # 5HQL # WE GET HERE WHEN THE BS FILE HAS BEEN LOCATED, CARRYING 5J== # X3->DL OF DEVICE HOLDING FILE 5JPW # X1->FILE FAC(DISC)/DIR.ENTRY(DRUM). 5K9G # 5KBN ...#SKI G3 5KHW ... STOZ JLSWBUF(2) 5KP6 LDN 2 THEFILE(2) [STORE 5L8Q MOVE 1 5 [ AWAY 5LNB LDX 2 G3DOL [ FOR 5M82 STO 3 JLPSBS(2) [ FUTURE 5MML ... LDX 0 AJLBUFF(2) [SET 5N7= STO 0 MDATA+2(2) [ UP 5NLW LDN 0 MHEADA(2) [ THE 5P6G STO 0 MHEAD+2(2) [ CTSA'S 5PL6 STOZ TMCOUNT(2) 5Q5Q LDX 0 JLBS(2) [GET REAL DEVICE TYPE 5QKB ANDN 0 6 5R52 BNZ 0 VDISC [DISC 5RJL # 5S4= # GET DETAILS OF DRUM FILE FOR JLWRITE 5SHW VDRUM 5T3G LDX 0 0(1) [GET D/L WD 5TH6 LDX 7 JLBS(2) 5W2Q SBN 7 9 5WGB BNZ 7 VHSD [HSD 5X22 # 5XFL LDN 1 0 5X^= SRL 01 10 5YDW SRL 1 4 [WD LENGTH IN X1 5YYG STO 1 VOLFILE(2) [STORE FILE SIZE 5^D6 ANDN 0 #3777 5^XQ SLL 0 10 [WD DATUM IN X0 62CB V01A STO 0 BSDESC(2) [DATUM 62X2 STO 1 BSDESC+1(2) [LENGTH 63BL BRN V01 63W= # 64*W VHSD SRL 01 12 [DATUM IN BLKS IN X1 64TG SRL 1 5 [WD FILE SIZE 65*6 STO 1 VOLFILE(2) [STORE IT 65SQ SRL 1 7 [LENGTH IN BLKS IN X1 66#B BRN V01A 66S2 # 67?L VDISC 67DS ... LDX 7 2(1) [ FULL WIDTH FILE ? 67L2 ... BPZ 7 WID1 67R8 ... LDN 1 WIDTH(2) [ IF NOT PUT OUT A WARNING MESSAGE 67YB ... CALL 6 JLOUT 685J ...WID1 LDX 6 1(1) 68=W ANDX 6 MASKA(2) 68QG STO 6 BSDESC+2(2) [START BLKNO 69=6 LDX 7 2(1) 69PQ ANDX 7 MASKA(2) 6=9B STO 7 BSDESC+3(2) [END BLKNO+1 6=P2 LDX 0 4(1) 6?8L STO 0 BSDESC+4(2) [BLKS/CYL 6?N= SBX 7 6 [BLKSIZE OF FILE 6#7W SLL 7 7 6#MG STO 7 VOLFILE(2) [[STORE WD.SIZE OF FILE 6*76 SRL 7 7 6*LQ DVS 6 0 [/BLKSPERCYL 6B6B BNZ 6 V14 6BL2 LDX 6 BSDESC+4(2) [FULL DEPTH FILE 6C5L V14 STO 6 BSDESC+5(2) [FILE DEPTH 6CK= # 6D4W V01 LDX 0 VOLFILE(2) [GET SIZE OF BS FILE 6DJG TXL 0 VOLPROG(2) [< PROGRAM SIZE? 6F46 BCS TOOSMALL [YESSO WON'T FIT 6FHQ # 6G3B # FOLLOWING COMPACTS THE FS TABLE & STOZZES THE REST , LEAVING A 6GH2 # POINTER TO THE END OF THE LIST. 6H2L LDN 0 FSTABLEN-1 6H*3 ... LDX 1 AJLRTAB(2) 6HMD ... ADN 1 5 6H^W ... LDX 2 AJLRTAB(2) 6JFG TFS20 LDX 4 0(2) 6J^6 BZE 4 TFS21 6KDQ ADN 2 5 6KYB BRN TFS20 6LD2 TFS21 LDX 4 0(1) 6LXL BNZ 4 TFS22 6MC= ADN 1 5 6MWW BCT 0 TFS21 6NBG BRN TFS23 6NW6 TFS22 MOVE 1 5 6P*Q STOZ 0(1) 6PTB BRN TFS20 6Q*2 TFS23 LDX 7 2 6QSL TFS24 TXL 2 1 6R#= BCC TFS25 6RRW STOZ 0(2) 6S?G ADN 2 1 6SR6 BRN TFS24 6T=Q TFS25 LDX 2 G3DOL 6TQB ... SBX 7 AJLRTAB(2) 6W=2 ... STO 7 JLRSW(2) 6WPL # 6X9= # 6XNW V02 LDCT 0 #400 [TRAP DISC/TAPE 6Y8G STO 0 TRAPFAIL(2) [FAILS NOW ON 6YN6 # 6^7Q # FROM THIS POINT THE TAPE HAS MOVED & RECOVERY IS AWKWARD IF A 6^MB # BS FAIL OCCURS & IMPOSSIBLE IF A TAPE FAIL OCCURS. ANY FAIL FROM 7272 # NOW ON CAUSES CONTROL TO PASS TO RECOVERY. 72LL # FIRST POSITION TAPE AT START OF PROGRAM FILE IN GIN DUMP. 736= # 73KW JENG 3,V03 [TAPE STILL THERE 745G LDN 1 VLOST(2) 74K6 BRN CATASTROPHE [GIVE UP 754Q V03 LDN 6 MSKIP(2) 75JB CALL 0 PERITAPE [SKIP TO END OF S/F 7642 LDN 0 1 76HL ADS 0 TMCOUNT(2) 773= LDN 6 MHEAD(2) 77GW CALL 0 PERITAPE [READ END S/F SENT 782G LDCT 0 #400 78G6 ERX 0 MHEADA(2) 78^Q BNZ 0 MFE [NOT CORRECT 79FB V04 CALL 0 PERITAPE+1 [READ A TM 79^2 LDN 0 1 7=DL ADS 0 TMCOUNT(2) 7=Y= CALL 0 PERITAPE [READ START SENT FOR GIN DUMP 7?CW LDX 0 MHEADA(2) 7?XG SBN 0 6 [NOT END OF S/F SENT 7#C6 BNZ 0 MFE 7#WQ LDX 0 MHEADA+2(2) 7*BB LDX 4 MHEADA+3(2) 7*W2 LDX 7 MHEADA+4(2) 7B*L TXU 0 GELLY+1(2) 7BT= TXU 4 GELLY+2(2) 7C#W TXU 7 GELLY+3(2) 7CSG BCS MFE [NOT CORRECT NAME 7D#6 CALL 0 PERITAPE+1 [READ TM 7DRQ LDN 0 1 7F?B ADS 0 TMCOUNT(2) 7FR2 CALL 0 PERITAPE [READ GIN REQUEST SLIP 7G=L LDCH 0 MHEADA(2) 7GQ= SBN 0 #73 7H9W BNZ 0 MFE [NOT BINARY BLK 7HPG LDX 0 MHEADA(2) 7J96 ANDN 0 #77 7JNQ SBN 0 1 7K8B BNZ 0 MFE [NOT REQUEST SLIP 7KN2 V06 CALL 0 PERITAPE [READ TO FIND PROGRAM FILE DUMP 7L7L LDX 0 MHEADA(2) 7LM= TXU 0 MENT(2) 7M6W BCC RNEXT [ENTRY BLK - END OF CORE IMAGE 7MLG TXU 0 MTYPE5(2) 7N66 BCS MFE [NOT TYPE 5 BLK 7NKQ CALL 0 PERITAPE [READ DATA BLK 7P5B BRN V06 7PK2 # 7Q4L # 7QJ= # 7R3W # TAPE NOW POSITIONED TO READ GEORGE TYPE 5 BLKS 7RHG # 7S36 RNEXT LDN 6 MHEAD(2) 7SGQ CALL 0 PERITAPE [READ SPECIFYING BLK PERHAPS 7T2B LDX 0 MHEADA(2) 7TG2 TXU 0 MENT(2) 7T^L BCS V13 [NOT ENTRY BLK 7WF= LDN 7 MHEADA(2) 7WYW SUM 6 3 7XDG BNZ 6 SUMF [CHECKSUM FAIL ON ENTRY BLK 7XY6 LDN 6 MTREW(2) 7YCQ BRN K3LOADERMT [GO & LOAD LOADER 7YXB # 7^C2 # CHECK LAST BLK READ IS TYPE 5 & WRITE IT (OR ZERO BLKS) AWAY. 7^WL # 82B= V13 TXU 0 MTYPE5(2) 82TW BCS MFE [NOT TYPE 5 BLK 83*G LDN 7 MHEADA(2) 83T6 SUM 6 5 84#Q BNZ 6 SUMF [SPECIFYING BLK DOES NOT CHECKSUM 84SB LDN 6 MDATA(2) 85#2 CALL 0 PERITAPE [READ A DTA BLK 85RL LDX 1 MHEADA+2(2) 86?= ANDN 1 #777 [EXTRACT BLK LENGTH 86QW ... LDX 7 AJLBUFF(2) 87=G SUM 6 0(1) [& SUM BLK 87Q6 STO 6 MHEADA+4(2) 889Q LDN 7 MHEADA+3(2) 88PB SUM 6 2 8992 BNZ 6 SUMF [DATA BLK DOES NOT CHECKSUM 89NL # 8=8= # MUST NOW DETERMINE IF ANY ZERO-BLKS HAVE BEEN OMITTED BETWEEN BLK 8=MW # JUST READ & PRECEDING ONE. IF NONE HAVE , BLKS SHOULD BE 8?7G # CONCURRENT. OTHERWISE, IF SOME ZERO-BLKS ARE MISSING, 8?M6 # WE MUST WRITE THEM TO BS , ENSURING THAT FS'S & ALTERS FOR 8#6Q # THEM ARE INCLUDED,. 8#LB # 8*62 LDX 0 VOLFILE(2) 8*KL TXL 0 MHEADA+1(2) [BS ADDRESS 8B5= BCS MFE [NOT IN RANGE 8BJW LDX 0 MHEADA+1(2) [THIS BACKING STORE ADDRESS 8C4G SBX 0 NDADD(2) [ - LAST BS-ADDR. 8CJ6 SBN 0 512 8D3Q BZE 0 VV01 [CONSE CUTIVE BLKS 8DHB SRL 01 9 [SEPARATION/512 8F32 SRL 1 15 8FGL BNZ 1 MFE [SEP(MOD 512) NOT=0, MT FE 8G2= SBN 0 1 8GFW STO 0 SEPAR(2) [NO. OF ZERO-BLKS - 1 8G^G ... LDX 0 AJLBUFF(2) 8HF6 ... LDX 1 AJLBUFF(2) 8HYQ ADN 1 512 8JDB MOVE 0 0 [MOVE DATA BLK OUT OF WAY 8JN8 ... LDX 1 AJLBUFF(2) 8JY2 ... ADN 1 1 8K7S ... LDX 3 AJLBUFF(2) 8KHH ... STOZ 0(3) 8KX= MOVE 0 511 [CLEAR BUFFER 8LBW LDN 0 MHEADA(2) 8LWG ADN 1 1023 8MB6 MOVE 0 5 [MOVE SPEC BLK OUT OF WAY 8MTQ LDCT 0 #400 [SET ZERO-BLK MARK 8N*B STO 0 ZBMARK(2) 8NT2 VV04 LDN 0 512 8P#L STO 0 MHEADA+2(2) [WD COUNT OF BLK 8PS= ADX 0 NDADD(2) 8Q?W STO 0 NDADD(2) [UPDATE 'LAST BS-ADDR.' 8QRG STO 0 MHEADA+1(2) [SET UP SPEC BLK FOR NEXT ZERO-BLK 8R?6 BRN VV02 8RQQ VV01 STOZ ZBMARK(2) [NO ZERO-BLKS 8S=B LDN 0 512 8SQ2 ADS 0 NDADD(2) [UPDATE "LAST D-ADRESS" 8T9L VV02 8TP= # 8W8W # FILL IN ANY FS DESCS & ALTERS FOR BLOCK READ 8WNG # 8X86 ... LDX 3 JLRSW(2) 8XMQ BZE 3 V07 [NO FS'S 8Y7B BPZ 3 V08 8YM2 NGX 3 3 8^2P ... LDX 1 AJLRTAB(2) 8^BD ... LDX 0 0(1) 8^Q7 ... LDX 1 AJLBUFF(2) 925W MOVE 0 0(3) 92KG ... STOZ JLRSW(2) 9356 BRN V07 93JQ # 944B V08 LDX 1 MRFIRS(2) 94J2 LDX 6 MHEADA+1(2) 953L ADX 6 MHEADA+2(2) [END D-ADDR OF BLK 95H= TXL 1 6 962W BCC V07 [THIS BLK TOO LOW 96GG SBX 6 1 [DISTANCE FROM FIRS TO END OF BLK 9726 LDN 3 FSTABLEN+1*5 [COUNT=TOTAL SIZE OF TABLE 97FQ TXL 6 3 97^B BCC V09 [ROOM FOR WHOLE TABLE IN THIS BLK 98F2 LDX 3 6 [ELSE TAKE COUNT TO END OF BLK 98YL V09 SBX 1 MHEADA+1(2) 99D= ... ADX 1 AJLBUFF(2) 99XW ... LDX 0 AJLRTAB(2) 9=CG MOVE 0 0(3) [MOVE IN (PART OF) TABLE 9=X6 ADX 0 3 9?9H ... LDX 1 AJLRTAB(2) 9?HY ... STO 0 0(1) [SET POINTER TO NEXT WD TO MOVE IN 9?WB SBN 3 FSTABLEN+1*5 [X3=-REMAINDER COUNT 9#B2 ... STO 3 JLRSW(2) [NEG TO INDICATE MORE TO GO 9#TL # 9**= # CHECK IF THERE ARE ANY ALTERS FOR THIS BLOCK. 9*SW # 9B7? ...V07 LDX 1 AJLRAT(2) 9BFN ... LDX 7 0(1) 9BS6 BZE 7 V12 [NO ALTERS 9C?Q SRL 7 1 9CRB ... ADN 1 1 [ NEXT WORD 9D?2 LDN 6 0 9DQL V10 LDX 3 0(1) [D-ADDR OF ALTER 9F== BZE 3 V11 [ALREADY DONE 9FDG ... STO 1 X1 9FLQ ... LDX 1 AJLRAT(2) 9FT2 ... LDX 6 0(1) [SET X6, STILL SOME TO DO 9G3= ... LDX 1 X1 9G9G TXL 3 MHEADA+1(2) 9GP6 BCS V11 [THIS BLOCK TOO HIGH 9H8Q SBX 3 MHEADA+1(2) 9HNB TXL 3 MHEADA+2(2) 9J82 BCC V11 [OR TOO LOW 9JML ... ADX 3 AJLBUFF(2) 9K7= LDX 0 1(1) [GET ALTERING WD 9KLW STOZ 0(1) [CLEAR IT & 9L6G STO 0 0(3) [ALTER BUFFER 9LL6 V11 ADN 1 2 9M5Q BCT 7 V10 [NEXT 9MD7 ... LDX 1 AJLRAT(2) 9MQJ ... STO 6 0(1) 9N52 # 9NJL V12 LDX 7 MHEADA+1(2) [D-ADDRESS OF BLOCK 9P4= CALL 0 JLWRITE [WRITE BLK TO BS 9PHW # 9Q3G LDX 0 ZBMARK(2) [HANDLING ZERO-BLKS? 9QH6 BZE 0 RNEXT [NO, READ NEXT BLK-PAIR 9R2Q LDX 0 SEPAR(2) [ALL ZERO-BLKS WRITTEN AWAY? 9RGB BZE 0 VV03 [YES, GO & WRITE AWAY WAITING BLK 9S22 LDN 0 1 9SFL SBS 0 SEPAR(2) [DECREMENT COUNT 9S^= BRN VV04 9TDW # 9TYG VV03 STOZ ZBMARK(2) [CLEAR ZERO-BLK MARK 9WD6 ... LDX 0 AJLBUFF(2) 9WXQ LDX 1 0 9XCB ADN 1 512 9XX2 MOVE 0 0 [REPLACE WAITING DATA BLK 9YBL ADN 1 512 9YW= LDN 0 MHEADA(2) 9^*W MOVE 0 5 [REPLACE WAITING SPEC BLK 9^TG LDX 0 MHEAD+1(2) =2*6 STO 0 NDADD(2) [UPDATE NDADD =2SQ BRN VV02 =3#B # =3S2 # =4?L # =4R= # =5=W # =5QG # WE GET HERE AFTER GEORGE HAS BEEN COPIED FROM MT TO ITS BS FILE. =6=6 # MUST NOW LOAD LOADER FROM THIS FILE & SET UP EVERYTHING TO =6PQ # LOOK AS THOUGH GELL HAS JUST BEEN THROUGH =79B # =7P2 K3LOADERMT =88L # =8N= # RE-CALCULATE CHECKSUMS FOR ALTERED GEORGE SEGMENTS =97W # =9MG LDX 3 ZNEWINST(2) ==76 STO 3 WRSD+5(2) ==LQ NGNC 3 1 =?6B NEXTSUM =?L2 LDN 3 0 =#5L ADX 3 2 =#K= STOZ WRITEAWAY(2) =*4W LDN 5 0 =*JG LDX 7 ZALDS+2(3) =B46 LDX 1 ZALDS(3) =BHQ SBN 1 1 =C3B TXL 1 Z511(2) =CH2 BCS ONEREAD =D2L TXU 1 Z511(2) =DG= BCC ONEREAD =D^W CALL 0 SAVE =FFG CALL 0 JLWRITE =F^6 CALL 0 RESTORE =GDQ ... LDX 6 AJLBUFF(2) =GYB SUM 5 512 =HD2 ADN 7 512 =HXL SBN 1 512 =JC= ONEREAD =JWW CALL 0 SAVE =KBG CALL 0 JLWRITE =KW6 CALL 0 RESTORE =L*Q STO 5 0 =LTB ... LDX 6 AJLBUFF(2) =M*2 SUM 5 0(1) =MSL ADX 5 0 =N#= #SKI 76?-2<1$1 [INCLUDE IF D-ADD IN CHECKSUM =NRW SBX 5 ZALDS+2(3) =P5= ... STO 1 X1(2) =PBL ... LDX 1 AJLBUFF(2) =PN2 ... SMO X1(2) =P^B ... NGS 5 0(1) =Q=Q LDN 5 1 =QQB STO 5 WRITEAWAY(2) =R=2 CALL 0 SAVE =RPL CALL 0 JLWRITE =S9= CALL 0 RESTORE =SNW SBX 3 2 =T8G SBN 3 1 =TN6 BZE 3 NEXTSUM =W7Q LDX 3 ZOLDINST(2) =WMB STO 3 WRSD+5(2) =X72 LDX 7 JLBS(2) [GET G BS DEVICE TYPE =XLL ANDN 7 6 =Y6= BZE 7 OFFDRUM [GEORGE ON DRUM =YKW # =^5G # LOADER DOWN FROM DISC =^K6 # ?24Q OFFDISC ?2JB LDX 0 THEFILE+4(2) ?342 STO 0 JLNOB(2) [BLKS/CYL FOR G FILE ?3HL LDX 1 THEFILE+1(2) [BLK.ADDR OF START OF FILE ?43= ... CALL 6 JLCONV2 [H.A. IN X0 ?52G LDN 1 READOWN(2) ?5G6 STO 0 3(1) [DTSA ?5^Q ... LDN 0 K19 [WAS (X)DLOADERMT ?6FB STO 0 1(1) [COUNT ?6^2 ... LDX 0 BK18X ?7DL SBX 0 2 ?7Y= STO 0 2(1) [CTSA ?8CW LDX 3 JLPSBS(2) [DL PTR ?8XG CALL 0 JLPDISC [BRING DOWN LOADER ?9C6 NULL ?9WQ BRN POLISH ?=BB # ?=W2 # LOADER DOWN FROM DRUM ??*L # ??T= OFFDRUM ?##W LDN 1 READOWN+1(2) ?#SG LDN 4 0 [READ MODE ?*#6 ... LDN 0 K19 [WAS (X)DLOADERMT ?*RQ STO 0 0(1) [COUNT ?B?B ... LDX 0 BK18X ?BR2 SBX 0 2 ?C=L STO 0 1(1) [CTSA ?CQ= LDX 6 BSDESC(2) [G FILE DATUM ?D9W OFF1 STO 6 2(1) [DTSA ?DPG LDX 3 JLPSBS(2) ?F96 LDCT 0 #400 [DON'T IGNORE FIXES OR FAILS ?FNQ CALL 6 JLPDRUM [BRING DOWN LOADER ?G8B NULL ?GN2 LDN 6 THEFILE(2) ?H7L LDX 7 STARTCOMM(2) ?HM= ADN 7 BLDRUM-BLEXEC ?J6W MOVE 6 4 [MOVE DIR ENTRY TO K18-K42 AREA & ?JLG BRN POLISH [JUST ABOUT DONE ?K66 # ?KKQ # READY TO CLEAR CORE & ENTER LOADER ?L5B POLISH ?LK2 STO 3 GEOBSPTR [STORE DL PTR FOR LOADER ?M4L LDN 1 READY(2) ?MJ= CALL 6 JLOUT [LOADED MESSAGE ?N6Q ...NDDME LDX 4 BK18X [FOR ENTRY TO LOADER ?N94 ... EXIT 4 0 [AVOID SUICIDE ?NB= ...# ?NHG LDX 3 4 ?P36 ADN 3 K19 [FOR START OF CLEARING ?PGQ LDN 6 SUICIDE(2) ?Q2B LDN 7 15 ?QG2 MOVE 6 5 [MOVE CLEARING LOOP ?Q^L ... LDX 5 THEEND(2) ?RF= ... ADX 5 2 [THIS IS ENOUGH TO CLEAR SELF OUT ?RYW EXIT 7 0 ?SDG # ?SY6 # SUICIDE LOOP ?TCQ # ?TXB SUICIDE ?WC2 STOZ 0(3) ?WWL ADN 3 1 ?XB= TXL 3 5 ?XTW BCS SUICIDE ?Y*G EXIT 4 0 ?YT6 # ?^#Q # ?^SB # #2#2 # #2RL # #3?= # #3QW # #4=G SAVE #4Q6 STO 1 S(2) #59Q LDN 1 3 #5PB LDN 2 S+1(2) #692 MOVE 1 5 #6NL LDX 2 G3DOL #78= EXIT 0 0 #7MW RESTORE #87G LDX 2 G3DOL #8M6 LDN 1 S+1(2) #96Q LDN 2 3 #9LB MOVE 1 5 #=62 LDX 2 G3DOL #=KL LDX 1 S(2) #?5= EXIT 0 0 #?8N ...K77LOADERMT [ DATA AREA FOR MENDS #?#6 ...#GAP 767-0? #?CL ...# #?JW #END ^^^^ ...320751610002