12 22FL #OPT K6FILEMAP=K6ALLGEO>K6FILESTORE 12 22_= #OPT K0FILEMAP=K0ALLGEO>K0FILESTORE 7 23DW #LIS K0FILEMAP 16 23YG #SEG FILEMAP [ TONY HAMILTON 7 24D6 8HFILEMAP 4 24XQ [ 12 25CB SEGENTRY K1FILEMAP,XMAPBINS 12 25X2 SEGENTRY K21FILEMAP,ZMAPBINS 4 26BL # 10 26W= # USE OF WORKING SPACE 13 27*W # AWORK1 =NO OF BITS TO BE INSERTED 19 27TG # AWORK2 =NO OF BIT BEFORE WHICH BITS ARE TO BE INSERTED 10 28*6 # AWORK3 =FILE DEPTH 5 28SQ NOBITS 5 29#B NOBIT 19 29S2 GEOERR 1,MAPBIT?? [PARAMETERS FOR MAPBIN WRONG. 5 2=?L MODBIT 16 2=R= GEOERR 1,FMAPP??? [NO FMAPP BLOCK. 5 2?=W SFMAP 8 2?QG #HAL FILE+FMAPP,0 4 2#=6 # 20 2#PQ # MAPBIN INSERTS [EXEC1] BITS BEFORE THE [EXEC2]TH BIT IN THE 20 2*9B # FMAPP BLOCK OF THE FILE AT DEPTH [EXEC3].THESE BITS ARE SET. 4 2*P2 # 21 2B8L # WE VALIDATE THE PARAMETERS,FIND THE FMAPP BLOCK,UPDATE FBCOMM & 17 2BN= # FBITMOD,AND ALTLEN THE FMAPP BLOCK IF NECESSARY. 4 2C7W # 17 2CMG # IN THE COMMENTS WE USE THE FOLLOWING TERMINOLOGY: 4 2D76 # 20 2DLQ # ^THE INSERT BIT^ IS THE BIT BEFORE WHICH WE ARE INSERTING THE 7 2F6B # NEW BIT 4 2FL2 # 20 2G5L # WN IS THE WORD IN WHICH THE INSERT BIT IS IN ON ENTRY 20 2GK= # BN IS THE BIT IN WN WHICH IS THE INSERT BIT (RANGE 1-24) 19 2H4W # WNM IS THE WORD IN WHICH THE INSERT BIT ENDS UP IN 19 2HJG # BNM IS THE BIT IN WNM WHERE THE INSERT BIT ENDS UP. 18 2J46 # W1 IS THE INITIAL SIZE OF THE MAP IN WORDS -1 17 2JHQ # W2 IS THE FINAL SIZE OF THE MAP IN WORDS-1 4 2K3B # 5 2KH2 SFINDMAP 13 2L2L # REQUIRES AWORK3 TO HOLD FILE DEPTH 8 2LG= # GIVES X1->MAP 12 2L_W # X0 DESTROYED X7=LINK 8 2MFG SMO FX2 9 2M_6 LDX 0 AWORK3 15 2NDQ SXFCB 0,1 [GET X1->FCB 9 2NYB LDX 1 FPTR(1) 5 2PD2 SFLOOP 9 2PXL LDX 1 FPTR(1) 10 2QC= BXE 1 CXFI,MODBIT 9 2QWW LDX 0 ATYPE(1) 12 2RBG BXE 0 FILEPLUSFCB,MODBIT 8 2RW6 SMO FX1 8 2S*Q TXU 0 SFMAP 16 2STB BCS SFLOOP [CHECK FOR FMAP 7 2T*2 EXIT 7 0 4 2TSL [ 11 2W#= ZMAPBINS [TOP LEVEL FILE 4 2WRW [ 9 2X?G STOZ AWORK3(2) 9 2XR6 BRN MERJMAP 4 2Y=Q [ 5 2YQB XMAPBINS 4 2_=2 [ 17 2_PL LDX 6 ACOMMUNE9(2) [PICK UP FILE DEPTH 20 329= BPZ 6 POS [J.UNLESS NEGATIVE DEPTH GIVEN 18 32NW FILENUMB 0 [GET X0=NO OF FILES OPEN 7 338G ADX 6 0 4 33N6 POS 18 347Q STO 6 AWORK3(2) [SET POSITIVE FILE DEPTH 5 34MB MERJMAP 10 3572 LDX 0 ACOMMUNE7(2) 19 35LL BZE 0 NOBITS [ERROR IF NONE OR TOO MANY 10 366= BXGE 0 BSBS,NOBITS 20 36KW STO 0 AWORK1(2) [SET NO. OF BITS TO BE INSERTED 10 375G LDX 0 ACOMMUNE8(2) 9 37K6 BZE 0 NOBITS 19 384Q BXGE 0 BSBS,NOBITS [ERROR IF NONE OR TOO MANY 8 38JB #SKI K6FILEMAP>99$99 9 3942 TRACE 0,BIT INS 16 39HL STO 0 AWORK2(2) [SET BIT ADDRESS 9 3=3= CALL 7 SFINDMAP 9 3=GW #SKI K6FILEMAP>299$299 9 3?2G BLOCKTRA 1,FMAP1 7 3?G6 LDN 5 3 21 3?_Q ORS 5 FBCOMM(1) [SET CAREFUL MODE MARKER FOR CLOSE 10 3#FB LDX 5 FBITMOD(1) 8 3#_2 #SKI K6FILEMAP>99$99 9 3*DL TRACE 5,FBITMOD 17 3*Y= BNG 5 MODBIT [ERROR IF NEGATIVE 17 3BCW BXGE 5 BSBS,NOBITS [ERROR IF TOO LARGE 19 3BD2 ...#SKI 1 [CORRECTION FOR B3932: REPLACES REST OF CHAPTER 4 3BD6 ...( 21 3BD= ...[ THIS METHOD ROUNDS UP THE NUMBER OF BITS TO BE INSERTED(N) TO A MULTIP 19 3BDB ...[OF 24. THEN DOES MAPBDELS IN A LOOP TO DELETE THE EXTRA BITS 21 3BDG ...[ W IS THE ADDRESS RELATIVE TO FBITS OF THE WORD CONTAINING THE 1ST NEW 21 3BDL ...[ D IS THE ADDRESS RELATIVE TO FBITS OF THE LAST WORD IN THE EXTENDED MA 16 3BDQ ...[ X IS NUMBER OF BITS IN W BEFORE INSERT POSITION 12 3BDW ...[ AWORK4 HOLDS THE ROUNDING FACTOR 21 3BF2 ...# NOTE WELL: WE DO NOT USE B0 OF FBITS.[FBITMOD]= NO OF BLOCKS IN 21 3BF6 ...# THE FILE,I.E. THE NUMBER OF SIGNIFICANT BITS.THUS WHEN WE DIVIDE 21 3BF= ...# [FBITMOD]BY 24,IF IT IS AN EXACT MULTIPLE,THE LAST BIT GOES INTO 11 3BFB ...# THE LAST WORD ON ITS OWN. 7 3BFG ... ADN 5 1 19 3BFL ... BXL 5 AWORK2(2),MODBIT [ERROR IF AWORK2>FBITMOD+1 9 3BFQ ... STOZ AWORK4(2) 13 3BFW ... LDX 6 AWORK1(2) [N 14 3BG2 ... TRACEIF K6FILEMAP,199,199,6,FILEMAPN 8 3BG6 ... LDN 5 24 19 3BG= ... DVS 5 5 [X6 HAS NUMBER OF WHOLE WORDS 17 3BGB ... BZE 5 ROUNDNUMBER [J IF NO REMAINDER 15 3BGG ... ADN 6 1 [ROUND UP X6 8 3BGL ... SBN 5 24 17 3BGQ ... NGX 5 5 [GET ROUNDING FACTOR 15 3BGW ... ADS 5 AWORK1(2) [ROUND UP N 17 3BH2 ... STO 5 AWORK4(2) [SAVE ROUNDING FACTOR 6 3BH6 ...ROUNDNUMBER 14 3BH= ... TRACEIF K6FILEMAP,99,199,6,FILEMAPP 9 3BHB ... LDX 5 AWORK1(2) 18 3BHG ... ADX 5 FBITMOD(1) [NEW SIZE OF MAP IN BITS 16 3BHL ... STO 5 FBITMOD(1) [UPDATE FBITMOD 13 3BHQ ... TRACEIF K6FILEMAP,99,,5,FBITMODN 8 3BHW ... LDN 4 24 13 3BJ2 ... DVS 4 4 [X5=D 14 3BJ6 ... TRACEIF K6FILEMAP,99,199,5,FILEMAPD 7 3BJ= ... SMO 5 18 3BJB ... LDN 4 FBITS-A1+1 [REQUIRED LOGICAL LENGTH 18 3BJG ... BXE 4 ALOGLEN(1),NOALTLEN [J IF BLOCK BIG ENOUGH 16 3BJL ... LDX 3 1 [FMAPP ADDRESS 10 3BJQ ... ALTLENG 3,4,SFMAPP 9 3BJW ... CALL 7 SFINDMAP 5 3BK2 ...NOALTLEN 9 3BK6 ...#SKI K6FILEMAP>199$199 4 3BK= ...( 10 3BKB ... LDX 0 ALOGLEN(1) 7 3BKG ... ADN 0 2 10 3BKL ... BLOCKTRA 1,BEFORE,0 4 3BKQ ...) 17 3BKW ... LDX 4 AWORK2(2) [POSITION FOR INSERT 8 3BL2 ... LDN 3 24 15 3BL6 ... DVS 3 3 [X4=W: X3=X 14 3BL= ... TRACEIF K6FILEMAP,99,199,3,FILEMAPX 14 3BLB ... TRACEIF K6FILEMAP,99,199,4,FILEMAPW 7 3BLL ... LDX 7 5 7 3BLQ ... SBX 7 6 14 3BLW ... SBX 7 4 [D-P-W 18 3BM2 ... BZE 7 NOWORDMOVE [W IS LAST WORD OF MAP 20 3BM6 ... BNG 7 NDOFFILE [J IF APPEND &N A MULTIPLE OF 24 7 3BM= ... LDX 2 5 13 3BMB ... SBX 2 6 [D-P 17 3BMG ... STO 1 GEN1 [SAVE FMAPP ADDRESS 5 3BML ...MOVEWORD 13 3BMQ ... SMO 2 [D-P 16 3BMW ... LDX 0 FBITS(1) [OLD LAST WORD 13 3BN2 ... SMO 5 [D 16 3BN6 ... STO 0 FBITS(1) [NEW LAST WORD 19 3BN= ... BCT 1 / [STEP BACK TO PREVIOUS WORD 16 3BNB ... BCT 7 MOVEWORD [LOOP ON D-P-W 18 3BNG ... LDX 1 GEN1 [RECOVER FMAPP ADDRESS 6 3BNL ...NOWORDMOVE 13 3BNQ ... SMO 4 [W 14 3BNW ... LDX 0 FBITS(1) [LOAD [W] 15 3BP2 ... NGN 7 1 [#77777777 17 3BP6 ... SLC 70 0(3) [ MOVE X BITS INTO X7 17 3BP= ... SRC 7 0(3) [MOVE X BITS TO TOP 21 3BPB ... SRC 0 0(3) [MOVE DISPLACED BITS TO BOTTOM OF X0 7 3BPG ... SMO 4 19 3BPL ... STO 7 FBITS(1) [REPLACE W WITH X BITS + 1'S 7 3BPQ ... NGN 7 1 5 3BPW ...NEWWORD 7 3BQ2 ... SMO 4 17 3BQ6 ... STO 7 FBITS+1(1) [INSERT EXTRA WORDS 15 3BQ= ... BUX 1 / [STEP FORWARD 17 3BQB ... BCT 6 NEWWORD [LOOP ON COUNT OF P 7 3BQG ... SMO 4 21 3BQL ... STO 0 FBITS(1) [OVERWRITE LAST WORD WITH OVERFLOW FR 4 3BQQ ...XTRA 8 3BQW ... LDX 2 FX2 9 3BR2 ... LDX 7 AWORK4(2) 16 3BR6 ... BZE 7 UP [NO DELETES TO DO 6 3BR= ...NEXTMAPBDEL 10 3BRB ... SXFCB AWORK3(2),3 10 3BRG ... MAPBDEL AWORK2(2),3 10 3BRL ... BCT 7 NEXTMAPBDEL 4 3BRQ ...UP 9 3BRW ...#SKI K6FILEMAP>199$199 4 3BS2 ...( 9 3BS6 ... CALL 7 SFINDMAP 10 3BS= ... LDX 0 ALOGLEN(1) 7 3BSB ... ADN 0 2 9 3BSG ... BLOCKTRA 1,AFTER,0 4 3BSL ...) 5 3BSQ ... UP 18 3BSW ...NDOFFILE [APPEND CASE ONLY & X=0 9 3BT2 ... BNZ 3 (GEOERR) 7 3BT6 ... NGN 7 1 5 3BT= ...NDAPPEND 7 3BTB ... SMO 4 20 3BTG ... STO 7 FBITS(1) [STORE P WORDS STARTING FROM W 7 3BTL ... BUX 1 / 9 3BTQ ... BCT 6 NDAPPEND 8 3BTW ... BRN XTRA 4 3BW2 ...[ 5 3BW6 ...SFMAPP 15 3BW= ... LDX 3 1 [ALTLENG LINK 9 3BWB ... CALL 7 SFINDMAP 7 3BWG ... LDX 2 1 7 3BWL ... EXIT 3 0 4 3BWQ ...) 5 3BWW ...#SKI 0 4 3BX2 ...( 7 3BXG ADN 5 2 11 3CC6 BXL 5 AWORK2(2),MODBIT 7 3CWQ SBN 5 2 21 3DBB LDX 3 AWORK1(2) [PICK UP NO.OF BITS TO BE INSERTED 7 3DW2 ADX 3 5 15 3F*L STO 3 FBITMOD(1) [UPDATE TOTAL 4 3FT= # 21 3G#W # NOTE WELL: WE DO NOT USE B0 OF FBITS.[FBITMOD]= NO OF BLOCKS IN 21 3GSG # THE FILE,I.E. THE NUMBER OF SIGNIFICANT BITS.THUS WHEN WE DIVIDE 21 3H#6 # [FBITMOD]BY 24,IF IT IS AN EXACT MULTIPLE,THE LAST BIT GOES INTO 11 3HRQ # THE LAST WORD ON ITS OWN. 21 3J?B # THUS W1 & W2 ARE ALWAYS ONE LESS THAN THE NUMBER OF WORDS IN THE 6 3JR2 # MAP 19 3K=L # (I'M ONLY WRITING THIS DOWN BECAUSE I GOT IT WRONG. DMB) 4 3KQ= # 8 3L9W LDN 2 24 21 3LPG DVS 2 2 [CALC W2 = FINAL LENGTH OF MAP - 1 8 3M96 LDN 4 24 20 3MNQ DVS 4 4 [CALC W1=INITIAL LENGTH OF MAP-1 8 3N8B LDX 2 FX2 7 3NN2 TXU 3 5 20 3P7L BCC NOALTLEN [J.UNLESS FMAP NEEDS LENGTHENING 7 3PM= LDX 7 1 9 3Q6W #SKI K6FILEMAP>99$99 9 3QLG TRACE 3,NGN MAP 11 3R66 ALTLEND 7,FBITS-A1+1(3) 16 3RKQ CALL 7 SFINDMAP [RESET X1->MAP 5 3S5B NOALTLEN 4 3SK2 # 10 3T4L # WE NOW EXTEND THE MAP 4 3TJ= # 21 3W3W # WE SHALL ILLUSTRATE THE CODE BY THREE EXAMPLES (WHICH ARE REASON- 8 3WHG # ABLY SIMILAR) 4 3X36 # 9 3XGQ # THE EXAMPLES ARE: 20 3Y2B # INSERTING (A) SIX BITS ) BEFORE I (THE INSERT BIT) IN A BIT 20 3YG2 # (B) 30 BITS > PATTERN WE SHALL REPRESENT BY:- 18 3Y_L # (B) 54 BITS ) XXXXXXXXIYYYYYYYYYYYYYYY 4 3_F= # 21 3_YW LDX 7 AWORK2(2) [PICK UP THE BIT NUMBER FOR INSERT 16 42DG LDX 2 5 [SAVE W1 IN X2 8 42Y6 SMO FX2 21 43CQ LDX 5 AWORK1 [PICK UP NO.OF BIT TO BE INSERTED. 19 43XB ADX 5 7 [ADD ON BIT ADDR FOR INSERT 4 44C2 # 20 44WL # WE HAVE TO MOVE A PATTERN OF BITS ALONG TO MAKE ROOM FOR THE 20 45B= # NEW ONES. WN,BN IS THE ADDRESS OF THE INSERT BIT,THE FIRST OF 20 45TW # THOSE TO BE MOVED,AND WNM,BNM IS THE ADDRESS IT IS TO BE MOVED 5 46*G # TO 4 46T6 # 19 47#Q LDN 6 24 [CALC BN AND WN IN X6 AND X7 7 47SB DVS 6 6 8 48#2 LDN 4 24 20 48RL DVS 4 4 [CALC BNM AND WNM IN X4 AND X5 7 49?= NGN 0 1 7 49QW SBX 5 7 9 4==G #SKI K6FILEMAP>99$99 9 4=Q6 TRACE 5,NEWWORDS 17 4?9Q # THE TWO ADDRESS MAY BE IN THE SAME WORD(CASE A), 20 4?PB BZE 5 NODIFF [J.IF NEW BITS FIT IN ONE WORD 7 4#92 SBN 5 1 12 4#NL # OR IN ADJACENT WORDS(CASE B), 20 4*8= BZE 5 ONEDIFF [J.IF NEW BITS EXTEND OVER 1 WORD 16 4*MW [BOUNDARY ONLY 13 4B7G # OR IN NONADJACENT WORDS(CASE C). 19 4BM6 ADN 7 1(1) [SET UP X7 FOR TEST IN LOOP 4 4C6Q # 20 4CLB # [X7] IS NOW AN ABSOLUTE ADDRESS OF THE 1ST WORD AFTER THE ONE 14 4D62 # CONTAINING THE INSERT BIT( I.E WN +1) 4 4DKL # 19 4F5= ADX 2 1 [ADD ON FMAP POINTER TO W1 5 4FJW MSKLOOPA 4 4G4G # 21 4GJ6 # THIS CODE MOVES DOWN THE BIT PATTERN FROM THE WORD AFTER THE ONE 21 4H3Q # CONTAINING THE INSERT BIT (I E WN+1) BY ENOUGH WORDS TO FIT IN ALL 9 4HHB # THE EXTRA BITS. 4 4J32 # 18 4JGL LDX 0 FBITS(2) [PICK UP NEXT WORD DOWN 7 4K2= SMO 5 20 4KFW STO 0 FBITS(2) [AND MOVE IN FORWARD BY WNM-WN-1 18 4K_G TXU 2 7 [J.OUT WHEN X2=WN+FMAP+1 8 4LF6 BCC XFINA 7 4LYQ SBN 2 1 9 4MDB BRN MSKLOOPA 5 4MY2 XFINA 4 4NCL # 21 4NX= # WE NOW FILL IN THE WNM-WN-1 WORDS OF GAP WE HAVE CREATED WITH BITS 8 4PBW # (I.E -1'S ) 4 4PWG # 17 4QB6 NGN 0 1 [SET UP MASK OF BITS 15 4QTQ SBX 7 1 [[X7]= WN+1. 15 4R*B ADX 5 7 [[X5]= WNM. 16 4RT2 SBN 7 1 [RESET X7 TO WN 21 4S#L ADX 5 1 [AND X5 TO FMAP+WNM FOR TEST IN LOOP 5 4SS= MSKLOOPB 18 4T?W STO 0 FBITS(2) [SET BITS IN NEXT WORD 7 4TRG ADN 2 1 18 4W?6 TXU 2 5 [J.OUT WHEN GAP IS FILLED 9 4WQQ BCS MSKLOOPB 4 4X=B # 21 4XQ2 # WE SHOULD NOW HAVE REDUCED THE ^ADJACENT^ & ^NON-ADJACENT^ CASES 17 4Y9L # TO SIMILARITY (I.E. CASE B & C ARE NOW SIMILAR. 4 4YP= # 13 4_8W # REENTRY POINT FOR^ADJACENT^CASE. 4 4_NG # 5 5286 SMERJONE 4 52MQ # 14 537B # [X7] = WN,[X5]=WNM,[X6]=BN,[X7]=BNM. 4 53M2 # 21 546L # WE NOW SET UP X1 TO CONTAIN THE NEW MASK FOR WORD'WN'; I.E WITH 21 54L= # ALL BITS BEFORE THE INSERT BIT AS BEFORE, THEN AS MANY SET BITS 19 555W # AS WE CAN FIT IN.X0 CONTAINS THE COMPLEMENTARY PATTERN. 4 55KG # 13 5656 # IN OUR EXAMPLE (CASES B & C ). 4 56JQ # 14 574B # [X1] = XXXXXXXX1111111111111111 14 57J2 # [X0] = 11111111IYYYYYYYYYYYYYYY 4 583L # 15 58H= LDX 2 1 [SET X2->FMAP 7 592W SMO 7 15 59GG LDX 1 FBITS(2) [PICK UP WN 8 5=26 SBN 6 24 15 5=FQ NGX 6 6 [SET X6=24-BN 7 5=_B SMO 6 7 5?F2 SRC 1 0 7 5?YL SMO 6 21 5#D= SLC 01 0 [PICK UP BITS AT END OF WORD (BN ON) 18 5#XW ADX 6 4 [RESET X6 TO Q= 24+BNM-BN 9 5*CG BRN MERJALL 4 5*X6 # 18 5BBQ # THE BITS ARE TO BE MOVED TO AN ADJACENT WORD (CASE B). 20 5BWB # WE READJUST THE POINTERS AND REENTER THE CODE FOR CASE C (OF 14 5CB2 # WHICH CASE B IS A DEGENERATE EXAMPLE 4 5CTL # 5 5D*= ONEDIFF 16 5DSW ADX 5 7 [RESET X5 TO WN 18 5F#G ADX 5 1 [AND ADD IN FMAP POINTER 9 5FS6 BRN SMERJONE 5 5G?Q NODIFF 4 5GRB # 21 5H?2 # CASE A . IN THIS ENTRY,THE TO-BE-INSERTED BITS ALL FIT INTO THE 7 5HQL # SAME WORD. 4 5J== # 9 5JPW #SKI K6FILEMAP>99$99 9 5K9G TRACE 4,NODIFF 17 5KP6 ADX 5 7 [RESET X5 TO WNM=WN 16 5L8Q LDX 2 1 [PICK UP ->FMAP 16 5LNB ADN 5 1(1) [SET X5=FMAP+WN+1 7 5M82 SMO 7 15 5MML LDX 1 FBITS(2) [PICK UP WN 7 5N7= SMO 6 14 5NLW SLC 01 0 [SHIFT BN 7 5P6G SBX 4 6 7 5PL6 SMO 4 15 5Q5Q SLC 0 0 [SHIFT BNM-BN 7 5QKB ADX 4 6 7 5R52 SMO 4 15 5RJL SRC 01 0 [SHIFT BNM 7 5S4= SBX 4 6 7 5SHW SMO 4 15 5T3G SLC 0 0 [SHIFT BNM-BN 16 5TH6 LDX 6 4 [SET X6=Q=BNM-BN 4 5W2Q # 10 5WGB # IN OUR EXAMPLE NOW : 4 5X22 # 13 5XFL # [X1]= XXXXXXXX111111IYYYYYYYYY 13 5X_= # [X0]= 111111111111111111YYYYYY 4 5YDW # 5 5YYG MERJALL 4 5_D6 # 21 5_XQ # ALL CASES MERGE HERE. X0 CONTAINS THE BIT PATTERN LEFT OVER FROM 13 62CB # WN AFTER WE'VE INSERTED THE BITS. 13 62X2 # WE STORE THE CONTENTS OF X1 IN WN 21 63BL # X6 CONTAINS THE NUMBER OF BITS OVERFLOWED FROM WN WHICH WE HAVE TO 9 63W= # MOVE INTO WNM+1. 4 64*W # 8 64TG #SKI K6FILEMAP>99$99 4 65*6 ( 9 65SQ TRACE 0,OVERFLOW 9 66#B TRACE 1,NEWFBITS 4 66S2 ) 7 67?L SMO 7 16 67R= STO 1 FBITS(2) [RE-STORE NEW WN 19 68=W ADN 3 1(2) [SET X3=FMAP+W2+1 FOR TEST 16 68QG LDX 2 5 [PICK X2=FMAP+WNM 4 69=6 # 21 69PQ # WE PICK UP WNM+1 IN X1,MOVE IN [X6] BITS FROM X0,AND PRESERVE THE 21 6=9B # BITS MOVED OUT IN X0. WE STORE X1 BACK IN WNM+1,AND RECURSE THIS 10 6=P2 # PROCESS UNTIL THE END 4 6?8L # 5 6?N= MOVELOOP 8 6#7W #SKI K6FILEMAP>99$99 9 6#MG TRACE 6,RESTALNG 7 6*76 TXU 2 3 20 6*LQ BCC XDONE [J.OUT WHEN END OF BLOCK REACHED 18 6B6B LDX 1 FBITS(2) [PICK UP NEXT WORD IN MAP 7 6BL2 SMO 6 15 6C5L SRC 01 0 [SHIFT BY Q 17 6CK= STO 1 FBITS(2) [STORE NEW VERSION 7 6D4W ADN 2 1 7 6DJG SMO 6 18 6F46 SLC 0 0 [RESET MASK FOR NEXT TIME 9 6FHQ BRN MOVELOOP 5 6G3B XDONE 9 6GH2 #SKI K6FILEMAP>299$299 4 6H2L ( 9 6HG= CALL 7 SFINDMAP 9 6H_W BLOCKTRA 1,FMAPEND 4 6JFG ) 5 6J_6 UP 4 6KDQ [ 4 6KNJ ...) 10 6KYB MENDAREA 20,K99FILEMAP 4 6LD2 #END 8 ____ ...51145334000900000000