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