16 22FL #SEG INSERTFR6 [ TONY HAMILTON 17 22_= #OPT K0INSERTFR=K0INSERT>K0ACCESS>K0FILESTORE>K0ALLGEO 7 23DW #LIS K0INSERTFR 7 23YG 8HINSERTFR 4 24D6 [ 12 24XQ SEGENTRY K1INSERTFR,X1INSERTFR 11 25CB SEGENTRY K2INSERTFR,SFULL 4 25X2 [ 6 26BL # ERRORS 5 26W= ZGEOER6 20 27*W GEOERR 1,MOVEZERO [UNEXPECTED ZERO MOVE IN INSERT 5 27TG ZGEOER7 18 28*6 GEOERR 1,STO ZERO [MOVE OR LESS AS ABOVE 5 28SQ ZGEOER8 17 29#B GEOERR 1,NO BLOCK [INSERT BLOCK MISSING 5 29S2 ZGEOER11 21 2=?L GEOERR 1,ENDBLOCK [INSERT REACHED E.O.B. UNEXPECTEDLY. 5 2=R= ZGEOER12 18 2?=W GEOERR 1,V SET! [CMOD UPDATED INCORRECTLY 4 2?QG # 4 2#=6 SFI1 8 2#PQ #HAL FI+INSERT1,0 4 2*9B SFI2 8 2*P2 #HAL FI+INSERT2,0 4 2B8L SFI3 8 2BN= #HAL FI+INSERT3,0 4 2C7W SFI4 8 2CMG #HAL FI+INSERT4,0 4 2D76 SFI5 8 2DLQ #HAL FI+INSERT5,0 4 2F6B # 8 2FL2 # SUBROUTINES 4 2G5L # 10 2GK= SFCB3 [SET X3-> FCB 8 2H4W SMO FX2 9 2HJG LDX 0 AWORK2 15 2J46 SFSTACK 0,3 [X3 -> FCA 8 2JHQ SMO FX2 14 2K3B STO 3 ACOMMUNE5 [STORE 8 2KH2 PSTAC 3,3 15 2L2L BFCBX 3,3 [X3 -> FCB 7 2LG= EXIT 6 0 4 2L_W # 4 2MFG # 5 2M_6 SFURB 8 2NDQ SMO FX2 17 2NYB LDX 0 AWORK2 [SET X2 - > FSTACK 15 2PD2 SFSTACK 0,2 [X2 -> FCA 8 2PXL SMO FX2 9 2QC= STO 2 ACOMMUNE5 5 2QWW SFFURB 8 2RBG PSTAC 2,2 8 2RW6 BFCBX 2,2 9 2S*Q BRN SFFULP 6 2STB SFINDFURB 20 2T*2 # CALLED BY X1.THE WORD AFTER THE CALL CONTAINS THE TYPE/SUBTYPE 20 2TSL # WANTED.X3 ->FCB,X2 WILL POINT ON EXIT TO THE BLOCK REQUIRED. 17 2W#= LDX 2 FPTR(3) [J OVER FSTACK BLOCK 5 2WRW SFFULP 15 2X?G LDX 2 FPTR(2) [NEXT BLOCK 9 2XR6 LDX 0 ATYPE(2) 7 2Y=Q #SKI K6INSERT 17 2YQB BXE 0 FILEPLUSFCB,ZGEOER8 [ERROR IF NOT FOUND 16 2_=2 BXU 0 0(1),SFFULP [J IF WRONG TYPE 17 2_PL EXIT 1 1 [EXIT ROUND TYPE-WORD 4 329= # 4 32NW # 4 338G # 5 33N6 SFCA2 8 347Q SMO FX2 14 34MB LDX 0 AWORK2 [DEPTH 15 3572 SFSTACK 0,2 [X2 -> FCA 8 35LL SMO FX2 9 366= STO 2 ACOMMUNE5 8 36KW EXIT 6 0 4 375G # 4 37K6 # 21 384Q # THIS S/R DOES THE CAREFUL UPDATING FOR A NEW BLOCK; A BIT HAS TO 20 38JB # BE INSERTED IN THE FMAP BLOCK,AND A BLOCK NO. INSERTED IN THE 6 3942 # FCB 4 39HL # 21 3=3= # OVERWRITES X1,X2,X3,X6,X5; X4 POINTS TO BLOCK NO. BEFORE WHICH THE 21 3=GW # BLOCK IS TO BE INSERTED. IN THE CASE OF NON-CAREFUL FILES,WE 20 3?2G # CAN USE AN UNUSED BL.NO., IF ANY;O/W WE MUST GET A NEW ONE. 11 3?G6 # X2 ON EXIT -> USAGE BLOCK 5 3?_Q SINSERT 5 3#FB SINSERT1 8 3#_2 SBX 7 FX1 9 3*DL DOWN INSERTBL,2 11 3*Y= TESTREP FILEFULL,SFULL 8 3BCW ADX 7 FX1 8 3BXG CALL 1 SFURB 8 3CC6 #HAL FI+INSERT3,0 7 3CWQ EXIT 7 0 4 3DBB # 4 3DW2 # 21 3F*L # THIS SEGMENT COPES WITH A RECORD WHICH INVOLVES 2 BLOX OF OVERFLOW 4 3FT= # 6 3G#W X1INSERTFR 18 3GSG NGN 5 1 [SET X5 -VE IF BACKWARD 8 3H#6 LDCT 0 #40 9 3HRQ ANDX 0 AWORK1(2) 18 3J?B BZE 0 NOTFOR [SET X5 +VE IF FORWARD 7 3JR2 LDN 5 1 5 3K=L NOTFOR 21 3KQ= LDCT 0 #14 [IF ^EMPTY BLOCK ^ BITS SET WE DON'T 20 3L9W ANDX 0 AWORK1(2) [NEED TO SET UP AN INSERT3 BLOCK 19 3LPG BZE 0 NOTEMPT [THERE IS ALREADY ONE THERE 8 3M96 CALL 1 SFURB 8 3MNQ #HAL FI+INSERT3,0 18 3N8B LDX 3 2 [SET X3 -> INSERT3 BLOCK 8 3NN2 LDX 2 FX2 10 3P7L SMO ACOMMUNE5(2) 16 3PM= LDX 4 FREADBLOCK [PICK UP F'BLOCK 9 3Q6W BRN MHUNTW 5 3QLG NOTEMPT 18 3R66 SETNCORE GSBS,3,FI,INSERT3 [SET UP INSERT2 BLOCK. 14 3RKQ CALL 6 SFCA2 [X2->FCA 10 3S5B LDX 4 FREADBLOCK(2) 17 3SK2 PSTAC 2,2 [RECHA&N NEW BLOCK 7 3T4L CHAIN 3,2 5 3TJ= MHUNTW 14 3W3W MHUNTW 2,FILE,FWB [NEW RECO-D 14 3WHG LDEX 1 A1+FRH(2) [SI0E OF MOVE 8 3X36 ADN 2 A1 8 3XGQ ADN 3 A1 7 3Y2B #SKI K6INSERT 9 3YG2 TRACE 1,INTO I3 4 3Y_L # 16 3_F= MOVE 2 0(1) [MOVE IN NEW RECORD 7 3_YW SMO 1 17 42DG STOZ 0(3) [ZEROISE LAST WORD 19 42Y6 BNG 5 NFOR1 [WISH TO INSERT A NEW ONE 18 43CQ ADN 4 1 [=F'WO-D +1 IF FORWARD 5 43XB NFOR1 8 44C2 LDCT 0 #14 8 44WL SMO FX2 21 45B= ANDX 0 AWORK1 [IF^EMPTY BLOCK^ BITS SET,NO NEED TO 21 45TW BZE 0 NEMPT [INSERT BL.NO.AS ONE ALREADY ALLOCATE 16 46*G LDX 2 3 [X2 -> INSERT2 8 46T6 SBN 2 A1 8 47#Q BRN NAME 5 47SB NEMPT 8 47Y? ... LDX 0 BIT9 21 4848 ... SMO FX2 [SET BIT TO INDICATE TWO NEW BLOCKS 21 4885 ... ORS 0 AWORK1 [WILL BE NEEDED TO COMPLETE INSERT. 16 48#2 CALL 7 SINSERT [INSERT BL.NO. 8 48CX ... LDX 0 BIT9 20 48HS ... SMO FX2 [CLEAR BIT AS ONLY ONE MORE BLOCK 15 48MP ... ERS 0 AWORK1 [NEEDED NOW. 4 48RL NAME 17 49?= SETNCORE GSBS,3,FI,INSERT3 [SET UP INSERT5 BLOCK 15 49QW CALL 6 SFCA2 [X2 -> FCA 7 4==G PSTAC 2,2 17 4=Q6 CHAIN 3,2 [CHAIN NEW LOCK IN 21 4?9Q BNG 5 NFOR2 [SIDE OF THE INSERT2 BLOCK FROM THE 14 4?PB ADN 4 1 [CURRENT BLOCK 5 4#92 NFOR2 17 4#NL CALL 7 SINSERT [INSE-T BLOCK NUMBER. 16 4*8= NAME 2,FI,INSERT5 [RENAME BLOCK. 15 4*MW STO 2 4 [X4 -> INSERT5 15 4B7G CALL 6 SFCA2 [X3 -> FCA 7 4BM6 STO 2 3 6 4C6Q #SKI INSB 16 4CLB BNG 5 MOVETOPH [J IF BACKWARDS 15 4D62 CALL 1 SFURB [X2 -> INERT1 8 4DKL #HAL FI+INSERT1,0 8 4F5= SMO FX2 19 4FJW LDEX 1 AWORK3 [AMT.USED IN INSERT1 BLOCK 18 4G4G SBX 1 FREADWORD(3) [AMOUNT TO BE MOVED 7 4GJ6 STOZ 6 17 4H3Q ADX 2 FREADWORD(3) [X2 -> CURRENT RECORD 8 4HHB SMO FX2 9 4J32 LDX 0 AWORK1 15 4JGL BPZ 0 NREP1 [J IF &NSERT 17 4K2= LDEX 6 FRH(2) [STEP OVER REPLACEE 17 4KFW ADX 2 6 [BUT -EMEMBER R.H. 19 4K_G SBX 1 6 [DOWNDATE AMOUNT TO BE MOVED 7 4LF6 #SKI K6INSERT 9 4LYQ BZE 1 ZGEOER6 5 4MDB NREP1 7 4MY2 LDX 3 4 21 4NCL ADN 3 A1 [X3 -> BEGINNING OF DATA IN INSERT5 B 7 4NX= #SKI K6INSERT 9 4PBW TRACE 1,INTO I5 19 4PWG MOVE 2 1(1) [MOVE ACROSS DATA+ZERO WORD 20 4QB6 SBX 2 6 [DEDUCT SIZE OF REPLACEE(ZERO FOR 20 4QTQ STOZ 0(2) [INSE-T).NEW E.O.B. ZERO WORD. 15 4R*B SMO FX2 [X1 -> FCA 9 4RT2 LDX 1 ACOMMUNE5 17 4S#L SBX 2 FREADWORD(1) [X2 -> INSERT1 BLOCK 8 4SS= SBN 3 A1 5 4T?W UPDATERD 18 4TRG LDN 0 2 [STEP ON F'BLOCK TO POINT 17 4W?6 ADS 0 FREADBLOCK(1) [TO INSERTS BBLOCK 8 4WQQ SMO FX2 20 4X=B LDX 0 AWORK1 [READ--ECORD PTR FCB 18 5=FQ CALL 1 SFFULP [GET & RENAME OTHER BLOCK 8 5=_B #HAL FI+INSERT3,0 9 5?F2 NAME 2,FILE,FUWB 5 5?YL UP 6 5#D= #SKI INSB 4 5#XW ( 5 5*CG MOVETOPH 8 5*X6 #SKI K6INSERT>99-99 10 5BBQ TRACE 4,MOVETOPH 17 5BWB LDX 1 FREADWORD(3) [PICK UP FREADWORD 17 5CB2 STO 2 3 [X3 -> INSERT5 BLOCK 19 5CTL CALL 1 SFURB [SET X2 -> FI/INSERT1 BLOCK 8 5D*= #HAL FI+INSERT1,0 16 5DSW [X5 -> INSERT1 18 5F#G SBN 1 A1 [X1 = NO OF WORDS TO MOVE 7 5FS6 #SKI K6INSERT 21 5G?Q BZE 1 ZGEOER7 [ERROR IF NOTHING GOES TO INSERTS BL. 8 5GRB ADN 2 A1 8 5H?2 ADN 3 A1 21 5HQL MOVE 2 0(1) [MOVE ACROSS TOP HALF OF INSERT1 BL. 7 5J== SMO 1 17 5JPW STOZ 0(3) [SET ZERO WORD @ END 8 5K9G SBN 3 A1 20 5KP6 NAME 3,FILE,FUWB [RENAME & FORGET INSERTS BLOCK 21 5L8Q STOZ 4 [SIZE OF REPLA EE,ZERO FOR INSERT, 21 5LNB [NEE4ED FOR RE ALCULATION OF CMOD,&AL 19 5M82 LDX 3 2 [^TO ^ PTR FOR MOVE UP BLOCK 18 5MML ADX 2 1 [^FROM^ PTR FOR INSERT 8 5N7= SMO FX2 19 5NLW LDX 0 AWORK1 [FOR REPLACE ADD IN NEXT R.H. 15 5P6G BPZ 0 SCHENEXRH [J IF &NSERT 15 5PL6 LDEX 4 FRH(2) [NEXT -.H. 7 5Q5Q #SKI K6INSERT 13 5QKB BZE 4 ZGEOER11 [! 7 5R52 ADX 2 4 6 5RJL SCHENEXRH 14 5S4= LDEX 0 FRH(2) [NEXT -.H 7 5SHW #SKI K6INSERT 13 5T3G BZE 0 ZGEOER11 [! 7 5TH6 ADX 4 1 8 5W2Q SMO FX2 19 5WGB LDEX 1 AWORK3 [AMT USED IN INSERT1 BLOCK 7 5X22 SBX 1 4 21 5XFL SBN 1 A1 [MINUS A1,GIVES AMOUNT LEFT TO MOVE U 7 5X_= #SKI K6INSERT 9 5YDW BZE 1 ZGEOER6 16 5YYG MOVE 2 1(1) [+1 FOR ZERO WORD 8 5_D6 LDN 0 A1 8 5_XQ LDX 2 FX2 10 62CB SMO ACOMMUNE5(2) 9 62X2 STO 0 FREADWORD 8 63BL SBN 3 1 10 63W= NAME 3,FILE,FUWB 10 64*W LDX 3 ACOMMUNE5(2) 16 64TG LDX 6 FREADBLOCK(3) [PICK UP 6'WORD 7 65*6 PSTAC 1,3 15 65SQ BFCBX 1,1 [X1 -> FCB 9 66#B SBX 6 FBLMOD(1) 15 66S2 SBN 6 A1-1 [LAST BLOCK / 14 67?L BNZ 6 NOLBLO [J IF NOT 15 67R= SBS 4 CMOD(1) [XPDATE COMD. 7 68=W #SKI K6INSERT 13 68QG BVS ZGEOER12 [?!! 5 69=6 NOLBLO 5 69PQ UP 4 6=9B ) 4 6=P2 # 4 6?8L # 5 6?N= SFULL 4 6#7W # 11 6#MG # FILEFULL ENTRY 4 6*76 # 8 6*LQ CALL 6 SFCA2 8 6B6B PSTAC 3,2 14 6B8_ ... BFCBX 2,3 [X2->FCB 9 6B?J ... LDX 0 FINFC(2) 8 6BB7 ... ANDN 0 #77 16 6BDQ ... BZE 0 SLPP [J IF NOT INDEXED 10 6BH* ... GEOERR 1,INDXFULL 4 6BL2 SLPP 9 6C5L LDX 3 FPTR(3) 9 6CK= BXE 3 CXFI,SLPN 9 6D4W LDX 0 ATYPE(3) 11 6DJG BXE 0 FILEPLUSFCB,SLPN 11 6F46 ... BXE 0 SFI1(1),RNFUWB 10 6FHQ BXE 0 SFI2(1),RN 10 6G3B BXE 0 SFI3(1),RN 10 6GH2 BXE 0 SFI4(1),RN 10 6H2L BXE 0 SFI5(1),RN 10 6HG= BXE 0 FFSFURB,RN 10 6H_W BXE 0 FFSFUWB,SLPP 9 6JFG #SKI K6INSERT>199-199 9 6J_6 TRACE 0,ODD BLOC 8 6KDQ BRN SLPP 5 6KG# ...RNFUWB 8 6KHW ... LDCT 0 #100 8 6KKD ... SMO FX2 9 6KM2 ... ANDX 0 AWORK1 18 6KNJ ... BZE 0 RN [J IF NOT A CAREFUL FILE 21 6KQ6 ... NAME 3,FILE,FUWB [CAREFUL UPDATING DONE ON INSERT1 IN 21 6KRN ... [INSERT SEGMENT SO MUST BE WRITTEN 21 6KT= ... BRN SLPP [AWAY TO NEW B.S. HOME EVEN THOUGH 17 6KWS ... [CONTENTS UNCHANGED. 4 6KYB RN 7 6LD2 FREECORE 3 8 6LXL BRN SFULL 4 6MC= SLPN 9 6MWW SETREP FILEFULL 8 6NBG #SKI K6INSERT>99-99 10 6NW6 TRACE FX2,FILEFULL 5 6P*Q UP 4 6PTB # 14 6Q*2 MENDAREA K6INSERT/5<100>30,K99INSERTFR 4 6QSL # 4 6R#= #END 8 ____ ...73202637000400000000