15 22FL ...#SEG LOADERDR86 [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 # 11 24D6 # THIS SEGMENT HANDLES DRUMS 20 24XQ # IT IS ENTERED WHEN MT LOADER RECEIVES ONE OF THE COMMANDS 11 25CB # FI, CL, DE, DR, HD. 4 25X2 # 4 26BL # 20 26W= SWFIX -1 [-VE -> FIX/FAIL ACTION REQUIRED 17 27*W [ZERO -> NO ACTION 18 27TG NONENG +0 [-VE IF NO ONLINE DRUM 17 28*6 QDIR +0,+0,+8,+0,+0,+0,+0,+0 [CLEAN HSD DIR 16 28SQ SDIR +1033,#10000,12HDRUMFREEAREA,#2001 17 29#B [CLEAN SLOW DRUM DIR 15 29S2 SDIRWD #10000 [WD1 OF SDIR 16 2=?L SIZEDRUM +32,+128,+512 [DRUM SIZES IN K 11 2=R= SDRUMCL +6,+SDIR,+1024 10 2?=W QDRUMCL +8,+QDIR,+0 19 2?QG SIZE +0 [BLK SIZE OF REQUESTED FILE 20 2#=6 QFIMAX +4096-8+1 [MAX NO.OF DATA BLKS ON HSD +1 18 2#PQ SFIMAX +1024 [MAX SD FILE K-SIZE + 1 13 2*5F ...# TEMPORARY CONTROL AREAS 21 2*F8 ...QDRUMCA +128,+AENDCHAPS-K18-K19-1024,+0 [COUNT/CTSA/DTSA FOR... 20 2*SX ...SDRUMCA +2048,+AENDCHAPS-K18-K19-1024,+1024 [ACCESSING DIRECTORIES 19 2B8L QFINO +31 [MAX NO. OF HSD DIR ENTRIES 21 2BDD ...JLGHSD 4HGHSD [HIGH SPEED DRUM DIRECTORY IDENTIFIER 19 2BN= MASKA #7776000 [TO EXTRACT DATUM OF SD FILE 9 2C7W MASKD #17774000 9 2CHK ...# TEMPORARY 21 2CX# ...QDECA +0,+AENDCHAPS-K18-K19-1024,+0 [COUNT/CTSA/DTSA FOR... 19 2D?3 ...SDECA +0,+AENDCHAPS-K18-K19-1024,+1024 [FILE RELOCATION 13 2DLQ THREEK +3072 [3K 8 2F6B OCT24 +24 8 2FL2 OCT9 +9 20 2G5L START +0 [TO HOLD DATUM OF FIRST SD FILE 16 2GK= [TO BE RELOCATED 8 2H4W SPACES 4H 19 2HJG QLEN +0 [LENGTH OF FILE TO BE DELETED 20 2J46 QDCNT +0 [COUNT OF BLKS TO BE MOVED OR K 18 2JHQ QDEX4 +0 [DATUM OF DELETED FILE 20 2K3B QDEX3 +0 [DATUM OF NEXT FILE TO BE MOVED 16 2KH2 PDLINK +0 [LINK TO PERIDRUM 17 2L2L SEARCHLK +0 [LINK TO SEARCHDRUM 4 2LG= # 16 2L_W SNRMESS +28,28H NO ROOM ON 1964 DRUM_*_* 14 2MFG QNRMESS +22,22H NO ROOM ON HSD_*_* 17 2M_6 USEDMESS +31,31H FILENAME ALREADY EXISTS_*_* 16 2NDQ TBMESS +30,30H FILE REQUESTED TOO BIG_*_* 16 2NYB NODRMESS +27,27H NO ONLINE 1964 DRUM_*_* 14 2PD2 NOHSDMESS +21,21H NO ONLINE HSD_*_* 17 2PXL REWRIDR +34,34H WHILST REWRITING DIRECTORY_*_* 17 2QC= RELOCFAIL +34,34H DURING RELOCATION OF FILES_*_* 4 2QWW # 10 2RBG SNORM LDN 1 SNRMESS(2) 8 2RW6 BRN JLER 10 2S*Q QNORM LDN 1 QNRMESS(2) 8 2STB BRN JLER 5 2T*2 JLUSED 5 2TSL USEDNAME 10 2W#= LDN 1 USEDMESS(2) 8 2WRW BRN JLER 5 2X?G TOOBIG 9 2XR6 LDN 1 TBMESS(2) 8 2Y=Q BRN JLER 5 2YQB NOOLDR 10 2_=2 LDN 1 NODRMESS(2) 8 2_PL BRN JLER 5 329= NOOLHSD 10 32NW LDN 1 NOHSDMESS(2) 8 338G BRN JLER 4 33N6 # 4 347Q # 11 34MB # S/R TO PERFORM DRUM PERIS. 11 3572 # CALLED VIA X6. 16 35LL # EXPECTS JLPSDR(2) TO CONTAIN DL PTR. 17 366= # X1 -> AREA FOR CA (OVERWRITTEN) 17 36KW # X4 TO CONTAIN MODE (OVERWRITTEN) 15 375G # EXPECTS X0 TO CONTAIN SWFIX(2) 19 37K6 # USES X0. EXITS 1 IF TRANSFER OK, LEAVING X3->DL 15 384Q # OTHERWISE FIX/FAIL ACTION IS : 13 38JB # SWFIX=0 & FIX -> EXIT 0 18 3942 # & FAIL -> OUTPUT FAIL MESS & EXIT 0 21 39HL # SWFIX<0 & FIX -> OUTPUT FIX MESSAGE & WAIT FOR RE-ENGAGE 21 3=3= # & FAIL -> OUTPUT FAIL MESSAGE & ANY AUX. MESSAGE 21 3=GW # & RETURN TO COMMAND LEVEL. THE (UNDATUMISED) ADDRESS OF 20 3?2G # ANY AUXILIARY MESSAGE REQUIRED IN THE EVENT OF FAILS 16 3?G6 # IS IN THE WD AFTER THE RELEVANT CALL. 13 3?_Q # BIT 0 OF THE WD IS SET 4 3#FB # 5 3#_2 PERIDRUM 5 3*DL JLPDRUM 16 3*Y= STO 6 PDLINK(2) [STORE YOUR LINK 9 3BCW STO 0 SWFIX(2) 9 3BXG LDX 3 JLPSDR(2) 10 3CC6 DCA 3,STO,4,MODE 8 3CWQ LDX 4 0(1) 10 3DBB DCA 3,STO,4,COUNT 8 3DW2 LDX 4 1(1) 10 3F*L DCA 3,STO,4,CTSA 16 3FT= DCA 3,ADS,2,CTSA [DATUMISE CTSA 8 3G#W LDX 4 2(1) 10 3GSG DCA 3,STO,4,DTSA 8 3H#6 JDISENG 3,PD1 4 3HRQ PD10 18 3J?B LDN 1 JLPSDR-CPPTR(2) [POINT TO PAB FOR DRUM 17 3JR2 GPERI 3,1,NC [INITIATE TRANSFER 17 3K=L PD2 JBUSY 3,PD2 [WAIT TIL TERMINATED 9 3KGD ... LDX 0 CPRW1(1) 8 3KQ= ... SRL 0 18 15 3L24 ... BNZ 0 PD3 [SOME FAILURE 8 3L9W LDCT 6 #400 15 3LPG STO 6 SWFIX(2) [RESET SWFIX 9 3M96 LDX 6 PDLINK(2) 13 3MNQ EXIT 6 1 [OK 10 3N8B PD3 LDX 4 JLPSDR+1(2) 15 3NN2 ... SLL 4 3 [LOOK AT REPLY 15 3P7L ... BNG 4 PD4 [REAL FAIL 14 3PM= PD1 LDX 0 SWFIX(2) [A FIX 16 3Q6W BPZ 0 PD7 [NO ACTION ON FIX 9 3QLG PD5 LDN 1 JLFIXM(2) 9 3R66 PD6 CALL 0 JLGEOG 16 3RKQ CALL 6 JLOUT [PUTOUT FIX MESS 9 3S5B LDX 3 JLPSDR(2) 17 3SK2 PD9 JDISENG 3,PD9 [WAIT FOR RE-ENGAGE 15 3T4L BRN PD10 [TRY AGAIN 14 3TJ= PD4 LDN 1 JLFAILM(2) [A FAIL 9 3W3W CALL 0 JLGEOG 9 3WHG LDX 0 SWFIX(2) 16 3X36 BNG 0 PD8 [ACTION REQUIRED 14 3XGQ CALL 6 JLOUT [NONE REQ 16 3Y2B PD7 LDX 3 JLPSDR(2) [RESTORE DL PTR. 8 3YG2 LDCT 6 #400 15 3Y_L STO 6 SWFIX(2) [RESET SWFIX 9 3_F= LDX 6 PDLINK(2) 7 3_YW EXIT 6 0 4 42DG # 8 42Y6 PD8 LDCT 7 #400 15 43CQ STO 7 SWFIX(2) [RESET SWFIX 9 43XB SMO PDLINK(2) 18 44C2 LDX 7 0 [ANY AUXILIARY MESSAGE? 19 44WL BZE 7 JLER [NO, JUST OUPUT FAIL MESSAGE 20 45B= CALL 6 JLOUT [YES, OUTPUT FAIL MESSAGE &... 15 45TW LDX 1 7 [... THEN 7 46*G ... SLL 1 1 16 46T6 ... SRL 1 1 [REMOVE BIT 0 & 17 47#Q ADX 1 2 [OUTPUT AUX MESSAGE 8 47SB BRN JLER 4 48#2 # 4 48RL # 19 49?= # S/R TO SEARCH ALL DRUM SYSTEMS WHOSE TYPE IS IN 19 49QW # X7 FOR FILE WHOSE NAME IS IN FINAME; IF FILE FOUND, 19 4==G # RETURNS POINTER TO DIRECTORY ENTRY IN X1 & POINTER 19 4=Q6 # TO RELEVANT DL IN X3. ELSE RETURNS WITH X3 NEGATIVE 10 4?9Q # CALLED VIA X0 21 4?PB # RETURNS A VALUE IN NONENG, -VE IF NO ON-LINE DRUMS FOUND. 4 4#92 # 6 4#NL SEARCHDRUM 15 4*8= STO 0 SEARCHLK(2) [STORE LINK 11 4*MW SE1 FINDPEREC 3,APFOTY,7,SE1A 17 4B7G BNG 3 SE2 [ALL DRUMS SEARCHED 14 4BM6 STO 3 JLPSDR(2) [FOR PAB 15 4C6Q LDN 4 0 [READ MODE 9 4CLB TXU 7 OCT9(2) 15 4D62 BCC SE3 [SLOW DRUM 13 4DKL LDN 1 QDRUMCA(2) [HSD 8 4F5= BRN SE4 10 4FJW SE3 LDN 1 SDRUMCA(2) 7 4G4G SE4 LDN 0 0 16 4GJ6 CALL 6 PERIDRUM [READ DIRECTORY 8 4H3Q BRN SE1A 9 4HHB STOZ NONENG(2) 9 4J32 TXU 7 OCT9(2) 18 4JC6 ... BCC SE5 [J IF SLOW DRUMSLOW DRUM 17 4JR= ... LDX 0 JLGHSD(2) [COMPARE ^GHSD^ WITH 10 4K3# ... LDX 1 AJLBUFF(2) 19 4K?B ... TXU 0 0(1) [WORD 0 OF THE HSD DIRECTORY 20 4KHG ... BCC SE4A [J IF INITIALISATION CHECK IS OK 21 4KXL ... LINT 3,0 [PICK UP THE HSD'S INTERNAL NUMBER 19 4L?Q ... TXU 0 0(1) [AND COMPARE WITH WORD ZERO 19 4LMW ... BCS SE1A [J IF DRUM NOT INITIALISED 18 4M46 ...SE4A LDX 1 AJLBUFF(2) [START OF DIR -4 FOR HSD 17 4MDB LDX 0 1(1) [NO.OF DIR ENTRIES 13 4MY2 SLL 0 2 [*4 17 4NCL ADN 0 4(1) [START OF VACANT DIR 8 4NX= BRN SE6 10 4P?Q ...SE5 LDX 1 AJLBUFF(2) 8 4PN= ... LDX 0 0(1) 17 4Q4Q ... ADX 0 AJLBUFFX1K(2) [START OF VACANT DIR 16 4Q*4 ... LDX 1 AJLBUFF(2) [START OF DIR -4 8 4QKB ... ADN 1 5 9 4QTQ SE6 LDX 4 FINAME(2) 10 4R*B LDX 5 FINAME+1(2) 10 4RT2 LDX 6 FINAME+2(2) 7 4S#L SE7 ADN 1 4 15 4SS= TXU 0 1 [END OF DIR? 17 4T?W BCC SE1A [YES, TRY NEXT UNIT 8 4TRG TXU 4 1(1) 8 4W?6 TXU 5 2(1) 8 4WQQ TXU 6 3(1) 16 4X=B BCS SE7 [NOT THIS ENTRY 10 4XQ2 SE2 LDX 0 SEARCHLK(2) 7 4Y9L EXIT 0 0 4 4YP= # 4 4_8W # 17 4_NG # MT LOADER COMES HERE IF A CL COMMAND IS ENTERED. 17 5286 # ALL OPERABLE DRUM SYSTEMS OF THE SPECIFIED 18 52MQ # TYPE ARE CLEARED BY WRITING AN EMPTY DIRECTORY 8 537B # TO EACH. 4 53M2 # 8 546L JLCL LDCT 0 #400 9 54L= STO 0 NONENG(2) 9 555W CALL 0 JLPOINT 8 55KG LDN 0 #14 9 5656 SBS 0 JLOCT(2) 9 56JQ CALL 0 JLHDDR 15 574B BRN QCL2 [SLOW DRUM 14 57J2 LDN 7 #31 [HSD TYPE 8 583L BRN QCL1 16 58H= QCL2 LDN 7 #11 [SLOW DRUM TYPE 16 592W QCL1 FINDPEREC 3,APFOTY,7,QCL1A [GET DL POINTER 18 59GG BNG 3 QCL5 [FINISHED...(STARTED?) 16 5=26 STO 3 JLPSDR(2) [STORE PSEUDO AB 18 5=FQ JDISENG 3,QCL1A [IGNORE DISENGAGED DRUMS 7 5=_B LDX 6 7 8 5?F2 SBN 6 #31 13 5?YL BZE 6 QCL3 [HSD 17 5#D= LPROP 3,4 [GET SLOW DRUM PROPS 7 5#XW SRL 45 3 16 5*CG SRL 5 21 [DRUM TYPE IN X5 17 5*X6 ANDN 4 #17 [NO. OF DRUMS IN X4 7 5BBQ SMO 5 18 5BWB MPY 4 SIZEDRUM(2) [X5=TOTAL DRUM SIZE IN K 17 5CB2 SBN 5 2 [DRUMFREEAREA IN X5 9 5CTL LDX 4 SDIRWD(2) 9 5D*= STO 4 SDIR+1(2) 19 5DSW ORS 5 SDIR+1(2) [COMPLETE WD 1 OF DIRECTORY 10 5F#G LDN 1 SDRUMCL(2) 8 5FS6 BRN QCL4 19 5G?Q ...QCL3 LDX 4 JLGHSD(2) [MARK THE DRUM AS INITIALISED 20 5GRB ... STO 4 QDIR(2) [BY ^GHSD^ IN DIRECTORY WORD ZERO 10 5H?2 LDN 1 QDRUMCL(2) 15 5HQL QCL4 LDN 4 1 [WRITING MODE 7 5J== LDN 0 0 17 5JPW CALL 6 PERIDRUM [WRITE AWAY DIRECTORY 18 5K9G BRN QCL1A [IGNORE DISENGAGED DRUMS 9 5KP6 STOZ NONENG(2) 15 5L8Q BRN QCL1A [TRANSFER OK 9 5LNB QCL5 LDX 0 NONENG(2) 16 5M82 BZE 0 JLXOK [DRUMS WERE FOUND 7 5MML LDX 0 7 8 5N7= SBN 0 #31 15 5NLW BZE 0 NOOLHSD [ NO ONLINE 17 5P6G BRN NOOLDR [ DRUMS WERE FOUND 4 5PL6 # 4 5Q5Q # 17 5QKB # MT LOADER COMES HERE IF AN FI COMMAND COMES IN. 18 5R52 # AFTER VALIDITY CHECKS ON THE COMMAND THE DRUMS 18 5RJL # ARE SEARCHED TO SEE IF THE FILE ALREADY EXISTS. 17 5S4= # THEY ARE THEN SEARCHED TO FIND ROOM FOR THE 10 5SHW # REQUESTED FILE 4 5T3G # 8 5TH6 JLFI LDCT 0 #400 9 5W2Q STO 0 NONENG(2) 9 5WGB CALL 0 JLPOINT 9 5X22 CALL 0 JLHDDR 15 5XFL BRN SFI1 [SLOW DRUM 13 5X_= LDN 7 #31 [HSD 16 5YDW CALL 0 JLFNAMEC [EXTRACT FILENAME 7 5YYG LDN 4 0 7 5_D6 LDN 5 0 7 5_XQ QFI7 BCHX 1 / 18 62CB CDB 4 0(1) [EXTRACT K-SIZE OF FILE 8 62X2 BCC QFI7 15 63BL SLL 5 3 [K -> BLKS 8 63W= QFI6 LDCH 6 0(1) 18 64*W SBN 6 #20 [NOT TERMINATED BY SPACE 8 64TG BNZ 6 JLWRC 15 65*6 BNZ 4 TOOBIG [HUGE VALUE 9 65SQ TXL 5 QFIMAX(2) 18 66#B BCC TOOBIG [BIGGER THAN AVAILABLE 16 66S2 BZE 5 JLWRC [NULL PARAMETER 17 67?L STO 5 SIZE(2) [FILE SIZE REQUIRED 16 67R= CALL 0 SEARCHDRUM [SEARCH FOR FILE 18 68=W BPZ 3 USEDNAME [FILENAME ALREADY EXISTS 9 68QG LDX 3 NONENG(2) 16 69=6 BNG 3 NOOLHSD [NO ONLINE HSD. 11 69PQ QFI9 FINDPEREC 3,APFOTY,7,QFI9A 16 6=9B BNG 3 QNORM [NO ROOM ON HD 15 6=P2 STO 3 JLPSDR(2) [FOR PERIDRUM 10 6?8L LDN 1 QDRUMCA(2) 15 6?N= LDN 4 0 [READ MODE 7 6#7W LDN 0 0 14 6#MG CALL 6 PERIDRUM [READ DIR 18 6*76 BRN QFI9A [DISENGAGED DRUMS IGNORED 17 6*DW ... LDX 0 JLGHSD(2) [COMPARE ^GHSD^ WITH 10 6*MB ... LDX 1 AJLBUFF(2) 19 6*TW ... TXU 0 0(1) [WORD 0 OF THE HSD DIRECTORY 20 6B4B ... BCC QFI9B [J IF INITIALISATION CHECK IS OK 21 6BB6 ... LINT 3,0 [PICK UP THE HSD'S INTERNAL NUMBER 20 6BMW ... TXU 0 0(1) [AND COMPARE WITH DIR WORD ZERO 19 6B_L ... BCS QFI9A [J IF DRUM NOT INITIALISED 10 6C5_ ...QFI9B LDX 1 AJLBUFF(2) 8 6C=# ... ADN 1 1 19 6CBN ... LDX 4 0(1) [GET EXISTING NUMBER OF FILES 15 6CK= TXL 4 QFINO(2) [MAX IS 31 19 6D4W BCC QFI9A [NOT ENOUGH ROOM HERE IN DIR 9 6DJG LDX 5 QFIMAX(2) 17 6F46 ... SBX 5 1(1) [SPARE ROOM ON DRUM 14 6FHQ ADN 5 7 [INTO X5 9 6G3B TXL 5 SIZE(2) 17 6GH2 BCS QFI9A [NO ROOM ON THIS DRUM 19 6H2L SLL 4 2 [THERE'S ROOM SO DEFINE FILE 17 6H*3 ... ADX 4 AJLBUFF(2) [FIRST EMPTY DIR ENTRY 8 6HMD ... ADN 4 4 7 6H_W LDX 1 4 10 6J#? ... SMO AJLBUFF(2) 15 6JLN ... LDX 4 2 [START BLKNO 8 6J_6 SLL 4 12 17 6KDQ ADX 4 SIZE(2) [DATUM/SIZE IN 12-12 9 6KYB LDX 5 SIZE(2) 10 6L=R ... SMO AJLBUFF(2) 17 6LK8 ... ADS 5 2 [UPDATE UNUSED BLKNO 7 6LXL LDN 5 1 10 6M=3 ... SMO AJLBUFF(2) 19 6MJD ... ADS 5 1 [INCREMENT NO. OF DIR ENTRIES 16 6MWW STO 4 0(1) [WD0 OF DIR ENTRY 7 6NBG ADN 1 1 9 6NW6 LDN 0 FINAME(2) 16 6P*Q MOVE 0 3 [MOVE IN FILENAME 15 6PTB QFI12 LDN 4 1 [WRITE MODE 10 6Q*2 LDN 1 QDRUMCA(2) 7 6QSL LDN 0 0 17 6R#= CALL 6 PERIDRUM [WRITE DIRECTORY BACK 8 6RRW BRN QFI13 13 6S?G BRN JLXOK [OK 4 6SR6 # 16 6T=Q QFI13 LDX 0 JLPSDR+1(2) [GET REPLY WD. 8 6TQB SRL 0 18 15 6W=2 BZE 0 QFI9A [NOT FAILED 10 6WPL LDN 1 REWRIDR(2) 16 6X9= CALL 6 JLOUT [OUTPUT MESSAGE 8 6XNW BRN QFI9A 4 6Y8G # 16 6YN6 SFI1 LDN 7 #11 [SLOW DRUM TYPE 16 6_7Q CALL 0 JLFNAMEC [EXTRACT FILENAME 7 6_MB LDN 4 0 7 7272 LDN 5 0 7 72LL SFI2 BCHX 1 / 18 736= CDB 4 0(1) [EXTRACT FILESIZE IN K 8 73KW BCC SFI2 8 745G LDCH 6 0(1) 8 74K6 SBN 6 #20 18 754Q BNZ 6 JLWRC [NOT TERMINATED BY SPACE 15 75JB BNZ 4 TOOBIG [HUGE SIZE 16 7642 BZE 5 JLWRC [NULL PARAMETER 9 76HL TXL 5 SFIMAX(2) 15 773= BCC TOOBIG [SIZE > 2047K 17 77GW STO 5 SIZE(2) [STORE REQUESTED K 19 782G CALL 0 SEARCHDRUM [CHECK FILE ALREADY EXISTS 14 78G6 BPZ 3 USEDNAME [IT DOES 9 78_Q LDX 3 NONENG(2) 17 79FB BNG 3 NOOLDR [NO ONLINE SLOW DRUN 11 79_2 SFI3 FINDPEREC 3,APFOTY,7,SFI3A 16 7=DL BNG 3 SNORM [NO ROOM ANYWHERE 15 7=Y= STO 3 JLPSDR(2) [FOR PERIDRUM 10 7?CW LDN 1 SDRUMCA(2) 15 7?XG LDN 4 0 [READ MODE 7 7#C6 LDN 0 0 16 7#WQ CALL 6 PERIDRUM [READ DIRECTORY 16 7*BB BRN SFI3A [UNIT DISENGAGED 10 7*NR ... SMO AJLBUFF(2) 7 7B38 ... LDX 0 5 15 7B*L ANDN 0 3 [GET DIR SIZE 7 7BT= ADN 0 1 19 7C#W SLL 0 12 [ADDRESS OF 1ST WD AFTER DIR 10 7CM? ... SMO AJLBUFF(2) 7 7C_N ... LDX 6 0 14 7D#6 BZE 6 SFI3A [DIR FULL 7 7DRQ TXL 6 0 14 7F?B BCC SFI3A [DIR FULL 10 7FR2 ... ADX 6 AJLBUFFX1K(2) 16 7G=L LDX 1 6 [VACANT DIR ENTRY 10 7GK3 ... SMO AJLBUFF(2) 7 7GXD ... LDX 0 1 19 7H9W ANDN 0 #3777 [B13-23 =DRUMFREEAREA SIZE 9 7HPG LDX 5 SIZE(2) 17 7J96 SBX 0 5 [- REQUIRED FILESIZE 16 7JNQ BNG 0 SFI3A [NOT ENOUGH ROOM 8 7K8B LDCT 0 #200 16 7KN2 STO 0 0(1) [SET B1 OF D/L WD 10 7L2C ... SMO AJLBUFF(2) 7 7L#S ... LDX 6 1 17 7LM= ANDX 6 MASKD(2) [ISOLATE DATUM TO BE 7 7M6W SRL 6 1 15 7MLG ORS 6 0(1) [INSERT DATUM 15 7N66 ORS 5 0(1) [INSERT SIZE 7 7NKQ ADN 1 1 9 7P5B LDN 0 FINAME(2) 16 7PK2 MOVE 0 3 [INSERT FILENAME 10 7PXC ... LDX 1 AJLBUFF(2) 16 7Q9S ... SBS 5 1(1) [UPDATE DFA SIZE 8 7QJ= SLL 5 11 16 7R3W ... ADS 5 1(1) [UPDATE DFA DATUM 7 7RHG LDN 5 4 17 7S36 ... ADS 5 0(1) [UPDATE DIR POINTER 15 7SGQ SFI4 LDN 4 1 [WRITE MODE 18 7T2B LDN 0 0 [WITHOUT FIX/FAIL ACTION 10 7TG2 LDN 1 SDRUMCA(2) 15 7T_L CALL 6 PERIDRUM [REWRITE DIR 16 7WF= BRN SFI5 [NOT SUCCESSFUL 14 7WYW BRN JLXOK [ALL OK 4 7XDG # 16 7XY6 SFI5 LDX 0 JLPSDR+1(2) [GET REPLY WORD 8 7YCQ SRL 0 18 18 7YXB BZE 0 SFI3A [DISENGAGED - IGNORE IT 16 7_C2 LDN 1 REWRIDR(2) [FAILED - NOTE IT 8 7_WL CALL 6 JLOUT 16 82B= BRN SFI3A [TRY NEXT DRUM 4 82TW # 4 83*G # 16 83T6 # LOADER COMES HERE ON RECEIPT OF A DE COMMAND 4 84#Q # 8 84SB JLDE LDCT 0 #400 9 85#2 STO 0 NONENG(2) 9 85RL CALL 0 JLPOINT 9 86?= CALL 0 JLHDDR 17 86QW BRN SDE1 [SLOW DRUM DELETION 13 87=G LDN 7 #31 [HSD 16 87Q6 CALL 0 JLFNAME [EXTRACT FILENAME 16 889Q CALL 0 SEARCHDRUM [SEARCH FOR FILE 16 88PB BNG 3 QDE16 [FILE NOT AROUND 15 8992 STO 3 JLPSDR(2) [FOR PERIDRUM 15 89NL LDX 4 0(1) [SAVE D/L WD 8 8=8= SRL 4 12 18 8=MW STO 4 QDEX4(2) [DATUM OF DELETED FILE 7 8?7G LDN 0 1 10 8?FX ... SMO AJLBUFF(2) 17 8?S# ... SBS 0 1 [UPDATE ENTRY COUNT 8 8#6Q LDX 0 0(1) 8 8#LB ANDN 0 #7777 10 8#YR ... SMO AJLBUFF+2(2) 18 8*?8 ... SBS 0 0 [UPDATE 1ST FREE BLKNO 17 8*KL STO 0 QLEN(2) [SAVE LENGTH OF FILE 20 8B5= STOZ QDCNT(2) [CLEAR BLKS-TO-BE-MOVED COUNTER 10 8BCM ... SMO AJLBUFF(2) 7 8BQ4 ... LDX 5 1 18 8C4G BZE 5 QDE9 [NO RELOCATION TO BE DONE 8 8CJ6 LDN 0 4(1) 7 8D3Q LDX 3 5 20 8DHB SLL 3 2 [NO.WDS TO BE MOVED TO CLOSEPACK 15 8F32 MOVE 0 0(3) [DIRECTORY 20 8FGL LDX 3 0(1) [D/L WD OF ENTRY AFTER DELETED 8 8G2= SRL 3 12 21 8GFW STO 3 QDEX3(2) [STO DATUM OF 1ST FILE TO BE MOVED 8 8G_G QDE10 LDX 0 0(1) 18 8HF6 ANDN 0 #7777 [GET LENGTH OF NEXT FILE 15 8HYQ ADS 0 QDCNT(2) [ADD TO TOTAL 8 8JDB LDX 7 0(1) 8 8JY2 SRL 7 12 20 8KCL SBX 7 QLEN(2) [SUBTRACT LENGTH OF DELETED FILE 18 8KX= SLL 7 12 [FROM DATUM OF THIS FILE 17 8LBW DSA 0 7 [INSERT FILE LENGTH 16 8LWG STO 7 0(1) [REPLACE D/L WD 17 8MB6 ADN 1 4 [POINT TO NEXT ENTRY 16 8MTQ BCT 5 QDE10 [MORE TO SHIFT 15 8N*B QDE9 LDN 4 1 [WRITE MODE 18 8NT2 LDCT 0 #400 [FIXES & FAILS IMPORTANT 19 8P#L LDN 1 QDRUMCA(2) [POINTER TO DRUM CONTROL AREA 17 8PS= CALL 6 PERIDRUM [WRITE BACK DIRECTORY 21 8Q?W +REWRIDR [AUXILIARY MESSAGE IF FAILED TRANSFER 6 8QRG #FID 0 0 1 15 8R?6 QDE13 LDX 4 QDCNT(2) [TRANSFER OK 4 8RQQ # 4 8S=B # 14 8SQ2 # THE FILES ARE RELOCATED IN 3K CHUNKS 17 8T9L BZE 4 JLXOK [NO RELOCATION TO DO 9 8TP= STO 4 QDCNT(2) 18 8W8W LDX 5 QDEX4(2) [DESTINATION OF NEXT 3K 17 8WNG LDX 7 QDEX3(2) [SOURCE OF NEXT 3K 18 8X86 TXL 4 OCT24(2) [LESS THAN 3K TO MOVE? 13 8XMQ BCC QDE14 [NO 17 8Y7B STOZ QDCNT(2) [YES, SO CLEAR COUNT 8 8YM2 BRN QDE15 15 8_6L QDE14 LDN 4 24 [TO MOVE 3K 18 8_L= SBS 4 QDCNT(2) [UPDATE STORED BLK COUNT 9 925W QDE15 LDN 1 QDECA(2) 20 92KG STO 4 0(1) [INSERT BLK COUNT THIS TRANSFER 15 9356 LDN 4 0 [READ MODE 17 93JQ STO 7 2(1) [DTSA THIS TRANSFER 19 944B LDCT 0 #400 [FIXES & FAILS ARE IMPORTANT 15 94J2 CALL 6 PERIDRUM [READ A CHUNK 20 953L +RELOCFAIL [AUX. MESSAGE IF TRANSFER FAILS 6 95H= #FID 0 0 1 12 962W LDN 1 QDECA(2) [ 17 96GG STO 5 2(1) [DTSA FOR REWRITING 15 9726 LDN 4 1 [WRITE MODE 18 97FQ LDCT 0 #400 [FIXES & FAILS IMPORTANT 16 97_B CALL 6 PERIDRUM [REWRITE CHUNK 20 98F2 +RELOCFAIL [AUX. MESSAGE IF TRANSFER FAILS 6 98YL #FID 0 0 1 18 99D= ADN 5 24 [UPDATE BS ADDRESSES... 13 99XW ADN 7 24 [... 16 9=CG BRN QDE13 [AND AGAIN ... 9 9=X6 QDE16 LDX 3 NONENG(2) 9 9?BQ BNG 3 NOOLHSD 9 9?WB BRN JLNOFILE 4 9#B2 # 15 9#TL SDE1 LDN 7 #11 [SLOW DRUM 21 9**= CALL 0 JLFNAME [EXTRACT NAME OF FILE TO BE DELETED 16 9*SW CALL 0 SEARCHDRUM [SEARCH FOR FILE 13 9B#G BNG 3 SDE8 [NOT 8 9BS6 LDX 7 0(1) 18 9C?Q ANDN 7 #1777 [EXTRACT K-SIZE OF FILE & 10 9CL7 ... SMO AJLBUFF(2) 19 9CYJ ... ADS 7 1 [UPDATE DRUMFREEAREA SIZE & 8 9D?2 SLL 7 11 10 9DKC ... SMO AJLBUFF(2) 16 9DXS ... SBS 7 1 [DATUM THEREOF 7 9F== SRL 7 1 4 9FPW # 18 9G9G # X7 NOW IN POSN TO UPDATE DATA OF ALL SUCCEEDING FILES. 16 9GP6 # CALCULATE CORE ADDRESS OF END OF DIR ENTRIES. 4 9H8Q # 10 9HJF ... SMO AJLBUFF(2) 15 9HY8 ... LDX 4 0 [DRUM POINTER 10 9J?X ... ADX 4 AJLBUFFX1K(2) 8 9JML LDX 0 4(1) 20 9K7= ANDX 0 MASKA(2) [EXTRACT DATUM OF SUCCEEDING FILE 15 9KLW STO 0 START(2) [& KEEP SAFE. 4 9L6G # 13 9LL6 # UPDATE ALL SUCCEEDING DIR ENTRIES 4 9M5Q # 20 9MKB STOZ QDCNT(2) [RUNNING TOTAL OF K TO BE MOVED 15 9N52 SDE6 LDN 0 4(1) [NEXT ENTRY 10 9NJL # ACCS NOW STAND THUS : 14 9P4= # X0 = POINTER TO NEXT ENTRY. 16 9PHW # X1 = POINTER TO THIS ENTRY (HOLE). 12 9Q3G # X2 = DATUM OF LOADER. 17 9QH6 # X4 = CORE ADDR OF FIRST UNUSED WD IN DIR. 17 9R2Q # X7 = K-LENGTH OF DELETED FILE IN B3-B13. 4 9RGB # 4 9S22 # 7 9SFL TXL 0 4 18 9S_= BCC SDE5 [FINISHED UPDATING DIR 16 9TDW MOVE 0 4 [MOVE ENTRY DOWN 16 9TYG SBS 7 0(1) [DECREMENT DATUM 18 9WD6 LDX 0 0(1) [WANT LENGTH OF THIS FILE 8 9WXQ ANDN 0 #1777 14 9XCB SLL 0 10 [WDS TO K 17 9XX2 ADS 0 QDCNT(2) [ADD TO RUNNING TOTAL 16 9YBL ADN 1 4 [UPDATE POINTER 15 9YW= BRN SDE6 [AND AGAIN... 4 9_*W # 7 9_TG SDE5 LDN 0 4 10 =27X ... SMO AJLBUFF(2) 21 =2G# ... SBS 0 0 [UPDATE ADDR OF 1ST UNUSED WD IN DIR 15 =2SQ LDN 4 1 [WRITING MODE 10 =3#B LDN 1 SDRUMCA(2) 18 =3S2 LDCT 0 #400 [FIXES & FAILS IMPORTANT 17 =4?L CALL 6 PERIDRUM [REWRITE DIRECTORY 21 =4R= +REWRIDR [AUXILIARY MESSAGE IF FAILED TRANSFER 6 =5=W #FID 0 0 1 20 =5QG LDX 5 START(2) [WD.DATUM OF 1ST FILE TO BE MOVED 9 =6=6 SDE7 LDX 0 QDCNT(2) 18 =6PQ BZE 0 JLXOK [NO MORE RELOCATION TO DO 17 =79B STO 0 QDCNT(2) [NEW NO.OF WDS LEFT 9 =7P2 TXL 0 THREEK(2) 16 =88L BCS SDE3 [<3K LEFT TO MOVE 13 =8N= LDN 6 #6000 [3K 8 =97W BRN SDE4 7 =9MG SDE3 LDX 6 0 9 ==76 SDE4 LDN 1 SDECA(2) 16 ==LQ STO 6 0(1) [PLACE IN COUNT 15 =?6B STO 5 2(1) [DTSA ENTERED 15 =?L2 LDN 4 0 [READ MODE 21 =#5L ADX 5 6 [UPDATE D-ADDR OF NEXT WD TO BE MOVED 19 =#K= STO 6 START(2) [KEEP NO.WORDS BEING MOVED 18 =*4W LDCT 0 #400 [FIXES & FAILS IMPORTANT 15 =*JG CALL 6 PERIDRUM [READ A CHUNK 20 =B46 +RELOCFAIL [AUX. MESSAGE IF TRANSFER FAILS 6 =BHQ #FID 0 0 1 9 =C3B LDN 1 SDECA(2) 15 =CH2 SBS 7 2(1) [UPDATE DTSA 15 =D2L LDN 4 1 [WRITE MODE 18 =DG= LDCT 0 #400 [FIXES & FAILS IMPORTANT 16 =D_W CALL 6 PERIDRUM [WRITE CHUNK AWAY 20 =FFG +RELOCFAIL [AUX. MESSAGE IF TRANSFER FAILS 6 =F_6 #FID 0 0 1 9 =GDQ LDX 0 START(2) 20 =GYB SBS 0 QDCNT(2) [SUBTRACT NO.WDS MOVED FROM TOTAL 15 =HD2 BRN SDE7 [AND AGAIN 9 =HXL SDE8 LDX 3 NONENG(2) 9 =JC= BNG 3 NOOLDR 9 =JWW BRN JLNOFILE 4 =KBG # 18 =KW6 # MT LOADER COMES HERE ON RECEIPT OF AN HD/DR COMMAND; 19 =L*Q # IF THE FILE SPECIFIED IS NOT FOUND BY THE SEARCH 17 =LTB # ROUTINE THEN 'FILE NOT FOUND' IS OUTPUT. 19 =M*2 # OTHERWISE -> K2LOADERMT TAKING X3->DL FOR DRUM 20 =MSL # ON WHICH FILE HAS BEEN FOUND & X1->DIRECTORY ENTRY 9 =N#= # FOR FILE. 4 =NRW # 4 =P?G JLHD 4 =PR6 JLDR 20 =Q=Q CALL 0 JLSWAPCH [CHECK SWAP RESIDENCE DECLARED 7 =QQB SMO 1 16 =R=2 LDX 7 JLTTAB-1(2) [GET DEVICE TYPE 9 =RPL STO 7 JLBS(2) 8 =S9= LDCT 0 #400 9 =SNW STO 0 NONENG(2) 9 =T8G CALL 0 JLPOINT 9 =TN6 CALL 0 JLFNAME 10 =W7Q CALL 0 SEARCHDRUM 4 =WMB # 15 =X72 BPZ 3 K2LOADERMT [FILE FOUND 9 =XLL LDX 3 NONENG(2) 16 =Y6= BPZ 3 JLNOFILE [FILE NOT FOUND 9 =YKW LDX 3 JLBS(2) 7 =_5G SBN 3 9 16 =_K6 BZE 3 NOOLDR [ NO DRUM ... 15 ?24Q BRN NOOLHSD [ ONLINE. 4 ?2JB # 4 ?342 # 4 ?3HL # 6 ?43= ...#GAP 767-0? 4 ?4GW # 4 ?52G #END 6 ____ ...546317250001