BMSTREAM853

(George Source)

Macros used: ALTLEN, BITDEFS, BS, BXE, BXGE, BXU, FIELDDEF, FREECORE, GETDIR, HUNTW, JBC, JBCC, JBS, JMBAC, JMBS, LF, MBC, MBS, MFREEW, MHUNTW, QKTABSET, SEG, SEGENTRY, SETENTRY, SETNCORE, STEP, STEPAGAIN, STEPREWRITE, STF, TESTNAMX, TRACEIF, UP, UPPLUS

BMSTREAM853.txt
22FL ...[   
22^= ...[ NEW VERSION 853 CONTAINS MAJOR ALTERATIONS TO:
23DW ...[1. DISPENSE WITH BIT-MAPPING METHOD BY RELYING ON DESCENDING   
23YG ...[   GENERATION ORDER OF DIRECTORY   
24D6 ...[2. DEAL WITH THE 'BEING APPENDED' CASE WITHOUT ERASING WHOLE MULTIFILE 
24XQ ...[3. TRUNCATE AT LOWEST MISSING GENERATION IN EVENT OF ELEMENTS BEING ON 
25CB ...[   UNAVAILABLE RESIDENCES  
25X2 ...[   
26BL ...      SEG      BMSTREAM,83,FILE,BMAP
26W= ...[   
27*W ...      SEGENTRY K1BMSTREAM,MAPELEMENT
27TG ...      SEGENTRY K2BMSTREAM,NOMULTRES 
28*6 ...      SEGENTRY K3BMSTREAM,MULTCHECK 
28SQ ...      SEGENTRY K4BMSTREAM,MDFERASE  
29#B ...[   
29S2 ...[  THIS SEGMENT IS ENTERED FROM BACKMAP TO ENSURE THE CONSISTENCY   
2=?L ...[ OF MULTIFILES.
2=R= ...[  WHEN ENTERED AT K1 & K2 FROM BMAPONE IT RECORDS INFORMATION ABOUT THE
2?=W ...[ ELEMENTS OF EACH MULTIFILE IN THE DIRECTORY IN 6-WORD ENTRIES IN A
2?QG ...[ FILE/FSMB BLOCK DEFINED BELOW. WHEN THE MDF IS FOUND THE CONSISTENCY  
2#=6 ...[ OF THE COLLECTED INFORMATION & THE DETAILS GIVEN IN THE MDF DIRECTORY 
2#PQ ...[ ENTRY IS CHECKED. IF NO FURTHER ACTION IS NECESSARY THE FSMB ENTRY
2*9B ...[ IS OBLITERATED.   
2*P2 ...[  WHEN BMAPONE REACHES THE END OF THE DIRECTORY IT ENTERS K3BMSTREAM   
2B8L ...[ TO MAKE A SECOND TIDY-UP PASS OF THE DIRECTORY IF THE FSMB CONTAINS   
2BN= ...[ LEGIBLE ENTRIES.  
2C7W ...[  IT IS ENTERED AT K4 FROM BMAPTWO IF THE MULTIFILE IS BEING ERASED, TO
2CMG ...[ UPDATE THE MDF'S DIRECTORY ENTRY IN THE EVENT OF ERASURE OF UNFROZEN  
2D76 ...[ TEMPORARY ELEMENTS BY BMAPTWO.
2DLQ ...[  IT DEPENDS ON THE FACT THAT ELEMENTS OF A MULTIFILE ARE FOUND IN O   
2F6B ...[ ORDER OF DECREASING GENERATION NUMBER AND COPES WITH MULTIFILES WITH  
2FL2 ...[ THE SAME LOCAL NAME BUT DIFFERENT LANGUAGES.  
2G5L ...[   
2GK= ...[ BECAUSE OF THE PLACE OF ENTRY FROM BMAPONE, ANY UNCLEAN   
2H4W ...[ ELEMENTS MAY HAVE EITHER BNBMUWB OR BNUWB SET.
2HJG ...[   
2J46 ...[ N.B. X1->FSMB ENTRY; X3->NAME RECORD  
2JHQ ...[   
2K3B ...[  FSMB FORMAT  
2KH2 ...[   
2L2L ...#DEF  SENTDEPTH=A1                 [FILESTORE LEVEL @ WHICH APPLICABLE  
2LG= ...[     WORD,FIELD & BIT IDENTIFIERS IN FSMB ENTRIES  
2L^W ...#DEF  SENTLEN=6                    [LENGTH OF FSMB ENTRY
2MFG ...#DEF  SLOC=A1+1                    [POSITION OF 1ST WORD OF LOCAL NAME  
2M^6 ...#DEF  SLANG=A1+4                   [   LANGUAGE CODE
2NDQ ...#DEF  STREND=A1+5                  [   ESTREND COPY ETC.
2NYB ...      FIELDDEF PHIRST,9,STREND,8   [      FIRST GEN FOUND(=HIGHEST) 
2PD2 ...      BITDEFS  STREND,13,UNCLELEMENT,MAKETEMP   
2PXL ...      FIELDDEF TOPGEN,9,STREND,23  [      NHGN FROM ESTREND 
2QC= ...#DEF  SGAP=A1+6                    [   GAP DETAILS  
2QWW ...      FIELDDEF PREGAPGEN,9,SGAP,8  [      GAP BEYOND HERE   
2RBG ...      FIELDDEF NEXTGEN,9,SGAP,23   [      MOST RECENT GEN FOUND -1  
2RW6 ...[   
2S*Q ...[     FIELD & BIT IDENTIFIERS IN ESTREND (MDF DIRECTORY ENTRY)  
2STB ...      BITDEFS  ESTRENDN,0,MULTUNCLEAN [USEROPEN UNCLEAN WRITING BIT 
2T*2 ...      FIELDDEF OHGN,8,ESTRENDN,8      [OLD HIGHEST GEN  
2TSL ...      BITDEFS  ESTRENDN,14,MULTERASE  [MULTIFILE BEING ERASED   
2W#= ...      FIELDDEF NHGN,9,ESTRENDN,23     [NEW HIGHEST GEN  
2WRW ...[   
2X?G ...#DEF  MAXGEN=128                   [MAXIMUM GENERATION OF ELEMENT   
2XR6 ...[   
2Y=Q ...#DEF  TRACE=K6BMSTREAM  
2YQB ...[   
2^=2 ...[   
2^PL ...SENT           [SUBROUTINE TO LOCATE ENTRY IN FSMB  
329= ...[ LINK X7; EXPECTS X3->NAME RECORD; DESTROYS X0,X1,X4,X5
32NW ...[ EXIT+0:NO FSMB:  EXIT+1:NO ENTRY:  EXIT+2:X1->ENTRY:  
338G ...
33N6 ...      HUNTW    1,FILE,FSMB  
347Q ...      BNG   1  (7)                 [EXIT IF NOT FOUND   
34MB ...      LDX   0  SENTDEPTH(1) 
3572 ...      BXU   0  AMAPDEPTH(2),(7)    [EXIT IF WRONG LEVEL 
35LL ...      ADN   7  1                   [INCREMENT LINK  
366= ...      LDX   4  ALOGLEN(1)   
36KW ...      SBN   4  1
375G ...SENTLOOP
37K6 ...      BZE   4  (7)                 [EXIT+1 IF ENTRY NOT FOUND   
384Q ...      TESTNAMX 3,ELOC1N(3),SLOC(1),SENTDIFF,5   
38JB ...      LDX   0  ELANN(3) 
3942 ...      BXE   0  SLANG(1),SENTFOUND  [J IF MATCHING ENTRY FOUND   
39HL ...SENTDIFF
3=3= ...      ADN   1  SENTLEN             [INCREMENT POINTER   
3=GW ...      SBN   4  SENTLEN             [DECREMENT COUNT 
3?2G ...      BRN      SENTLOOP 
3?G6 ...SENTFOUND   
3?^Q ...      EXIT  7  1                   [EXIT+2: X1->ENTRY   
3#FB ...[   
3#^2 ...[   
3*DL ...STEPREWRITE    [SUBROUTINE TO ENSURE CLEANLY ALTERED BLOCK REWRITTEN
3*Y= ...[ LINK X7; EXPECTS X3->NAME RECORD; DESTROYS X0; RESETS X2=FX2  
3BCW ...
3BXG ...      STEPREWRITE   
3CC6 ...      EXIT  7  0
3CWQ ...[   
3DBB ...[   
3DW2 ...[   
3F*L ...[   
3FT= ...MAPELEMENT     [NORMAL ENTRY FROM BMAPONE IF BNMDF OR BNMULT IS SET 
3G#W ...[   
3GSG ...      STEPAGAIN                    [RECOVER X3->NAME RECORD 
3H#6 ...[   
3HRQ ...[ CHECK THAT GENERATION NUMBER SENSIBLE 
3J?B ...[   
3JR2 ...      LDX   7  EGENN(3) 
3K=L ...      SBN   7  MAXGEN+1            [0<MULT GEN<MAXGEN+1 
3KQ= ...      BNG   7  NOTBIGGEN           [J IF GEN NOT TOO BIG
3L9W ...WRONGBITS                          [CAN'T BE MULTIFILE: REMOVE BITS 
3LPG ...      MBC      3,BNMDF,BNMULT   
3M96 ...      CALL  7  STEPREWRITE  
3MNQ ...      UP
3N8B ...[   
3NN2 ...NOTBIGGEN   
3P7L ...      ADN   7  MAXGEN   
3PM= ...      BNZ   7  NOTGEN1             [J IF GEN=>ELEMENT,I.E. NOT=1
3Q6W ...      JBS      WRONGBITS,3,BNMULT  [J IF ILLEGAL GEN FOR ELEMENT
3QLG ...      BRN      OKGEN
3R66 ...NOTGEN1 
3RKQ ...      JBS      WRONGBITS,3,BNMDF   [J IF ILLEGAL GEN FOR MDF
3S5B ...[   
3SK2 ...OKGEN   
3T4L ...[   
3TJ= ...[ RECORD DETAILS IN FSMB ENTRY  
3W3W ...[   
3WHG ...      TRACEIF  TRACE,199,299,EGENN(3),MULT GEN  
3X36 ...      CALL  7  SENT                [LOCATE FSMB ENTRY   
3XGQ ...      BRN      SETUPFSMB           [NO FSMB: J TO SET UP FSMB & ENTRY   
3Y2B ...      BRN      SETUPENTRY          [NO ENTRY: J TO SET UP ENTRY 
3YG2 ...UPDATENTRY                         [X1->ENTRY   
3Y^L ...      LF       1,NEXTGEN,7         [X7=EXPECTED GEN 
3^F= ...      BXE   7  EGENN(3),XPECTED    [J IF EXPECTED GEN FOUND 
3^YW ...      LDX   7  EGENN(3)            [OTHERWISE MAKE A RECORD 
42DG ...      STF      1,PREGAPGEN,7       [ OF THE GAP 
42Y6 ...      LDX   7  EGENN(3) 
43CQ ...XPECTED 
43XB ...      SBN   7  1                   [SET NEXT EXPECTED GEN   
44C2 ...      STF      1,NEXTGEN,7  
44WL ...      JBCC     NOTTEMP,3,BNTEMP    [J IF NOT TEMP ELSE  
45B= ...      CALL  7  STEPREWRITE         [ CLEAR TEMP BIT (PREVIOUS BACKMAP)  
45TW ...NOTTEMP 
46*G ...      JBS      MDF,3,BNMDF         [J IF MDF
46T6 ...      JMBAC    UP,3,BNBMUWB,BNUWB  [J TO EXIT IF NOT UNCLEAN ELEMENT
47#Q ...      BS       1,UNCLELEMENT       [REMEMBER UNCLEAN ELEMENT
47SB ...      UP                           [ & EXIT 
48#2 ...[   
48RL ...[   
49?= ...MDF 
49QW ...[   
4==G ...[  AT THIS STAGE WE KNOW THE HIGHEST GENERATION OF THE MULTIFILE
4=Q6 ...[ (PHIRST), THE LOWEST MISSING GENERATION (PREGAPGEN+1) IF ANY, & IF ANY
4?9Q ...[ ELEMENTS (SHOULD BE THHE HIGHEST) WERE OPEN FOR WRITING. WE NOW   
4?PB ...[ ATTEMPT TO RECONCILE THESE FACTS WITH THE EXPECTED STATE DESCRIBED BY 
4#92 ...[ ESTREND. (THE ESTREND UNCLEAN BIT SHOULD NEVER BE SET & IS IGNORED)   
4#NL ...[   
4*8= ...      TRACEIF  TRACE,99,299,ESTRENDN(3),ESTREND [MULTIFILE ESTREND  
4*MW ...      TRACEIF  TRACE,199,299,STREND(1),STREND   
4B7G ...      TRACEIF  TRACE,199,299,SGAP(1),SGAP   
4BM6 ...      JBCC     NOESTRUWB,3,MULTUNCLEAN  
4C6Q ...      CALL  7  STEPREWRITE         [CLEAR USEROPEN UNCLEAN BIT IF SET   
4CLB ...NOESTRUWB   
4D62 ...      LF       3,NHGN,6            [X6=NHGN 
4DKL ...      LF       3,OHGN,7            [X7=OHGN 
4F5= ...      BXE   6  7,SAMEGENS          [J IF NHGN=OHGN (SHOULD ALWAYS BE)   
4FJW ...      STF      3,OHGN,6            [SET OHGN=NHGN   
4G4G ...      CALL  7  STEPREWRITE  
4GJ6 ...SAMEGENS
4H3Q ...      STF      1,TOPGEN,6          [REMEMBER NHGN   
4HHB ...[   
4J32 ...[ TREAT MULTIFILE AS UNCLEAN IF MDF OR ANY ELEMENT IS UNCLEAN   
4JGL ...[   
4K2= ...      JMBS     UNCLEAN,3,BNBMUWB,BNUWB [J IF MDF UNCLEAN
4KFW ...      JBC      MDFCLEAN,1,UNCLELEMENT   
4K^G ...      BS       3,BNBMUWB           [MAKE MDF UNCLEAN AS WELL
4LF6 ...      CALL  7  STEPREWRITE  
4LYQ ...[   
4MDB ...UNCLEAN 
4MY2 ...[   
4NCL ...[  UNCLEAN PATH. IGNORE ALL ERASE BITS - EVEN IN THE APPEND CASE (HENCE 
4NX= ...[ AS(APPE)/LF/ER/EN/BREAK RETAINS ALL ORIGINAL ELEMENTS UP TO LOWEST A  
4PBW ...[ ALREADY LISTED & ERASED - A DEBATABLE MERIT). 
4PWG ...[   
4QB6 ...      JBCC     NOTERASED,3,MULTERASE
4QTQ ...      CALL  7  STEPREWRITE  
4R*B ...NOTERASED   
4RT2 ...      LF       1,TOPGEN,0          [X0=NHGN 
4S#L ...      SBN   0  1
4SS= ...      BZE   0  NOTAPPEND           [J IF = 1, I.E. NOT APPEND CASE  
4T?W ...[   
4TRG ...[  APPEND CASE.(THERE IS NO OVERWRITE CASE AS USEROPEN ERASES ALL BUT   
4W?6 ...[ MDF ANYWAY.) THE OBJECT IS TO DISCARD APPENDED ELEMENTS ONLY. 
4WQQ ...[   
4X=B ...      MBC      3,BNBMUWB,BNUWB     [MAKE MDF CLEAN - TO ENABLE REVERSION
4XQ2 ...      BS       3,BNREVERT          [ TO PRE-APPEND STATE
4Y9L ...      CALL  7  STEPREWRITE  
4YP= ...[   
4^8W ...NOTAPPEND                          [NOW CLEAN UP
4^NG ...[   
5286 ...[  UNCLEAN & CLEAN(NOT ERASING) CASES.  
52MQ ...[ IF THERE ARE GAPS IN THE MULTIFILE IT IS TRUNCATED BEFORE THE GAP 
537B ...[ (POSSIBLY LEAVING EXCESS ELEMENTS).   
53M2 ...[ IF THERE ARE EXCESS ELEMENTS (FOR ANY REASON), THE FSMB ENTRY IS  
546L ...[ LEFT INTACT & RE-ENTRY AT K3 CAUSES THE EXCESS ELEMENTS TO BE MARKED  
54L= ...[ "TO BE ERASED" (THUS PREVENTING REFREEZING BY BMOUTPUT ETC.) AND  
555W ...[ "TEMPORARY" (THUS CAUSING ERASURE BY BMAPTWO AS THEY ARE NOT FROZEN). 
55KG ...[   
5656 ...      LF       1,PREGAPGEN,6       [X6=GEN BEFORE GAP   
56JQ ...      BZE   6  NOGAPS              [J IF NO GAPS AT ALL 
574B ...      LF       1,TOPGEN,7          [X7=NHGN 
57J2 ...      BXGE  6  7,NOGAPS            [J IF GAPS ONLY IN EXCESS ELEMENTS   
583L ...      TRACEIF  TRACE,99,299,6,TRUNCATE [NEW HIGHEST MULTIFILE GEN   
58H= ...      STF      1,TOPGEN,6          [TRUNCATE MULTIFILE @ LOWEST GAP 
592W ...      STF      3,OHGN,6 
59GG ...      STF      3,NHGN,6 
5=26 ...      CALL  7  STEPREWRITE  
5=FQ ...NOGAPS  
5=^B ...      LF       1,PHIRST,6          [X6=HIGHEST GEN FOUND
5?F2 ...      LF       1,TOPGEN,7          [HIGHEST GEN ALLOWED 
5?YL ...      SBX   7  6
5#D= ...      BNG   7  XCESS               [J IF EXCESS ELEMENTS FOUND  
5#XW ...      STOZ     SLOC(1)             [OBLITERATE ENTRY - NO FURTHER ACTION
5*CG ...UP    UP
5*X6 ...[   
5BBQ ...XCESS   
5BWB ...      TRACEIF  TRACE,99,299,7,EXCESS [HIGHEST EXCESS MULTIFILE GEN FOUND
5CB2 ...      UP
5CTL ...[   
5D*= ...[   
5DSW ...MDFCLEAN
5F#G ...      JBC      NOTAPPEND,3,MULTERASE [J UNLESS BEING ERASED 
5FS6 ...[   
5G?Q ...[  GAPS ARE LEGITIMATE IN THIS CASE (I.E. BEING ERASED).
5GRB ...[ THE FSMB ENTRY IS RETAINED THUS CAUSING RE-ENTRY AT K3 TO MARK ALL
5H?2 ...[ NON-EXCESS ELEMENTS AS "TEMPORARY" (BECAUSE MAKETEMP IS SET) WHICH
5HQL ...[ ALLOWS REFREEZING. BMAPTWO WILL DELETE UNFROZEN ELEMENTS & MARK FROZEN
5J== ...[ ELEMENTS "TO BE ERASED". EXCESS ELEMENTS WILL BE DELETED BY BMAPTWO AS
5JPW ...[ IN THE NON-ERASING CASE.  
5K9G ...[   
5KP6 ...      BS       1,MAKETEMP          [K3 ENTRY WILL MARK ALL ELEMENTS TEMP
5L8Q ...      BS       3,BNERASE           [ENSURE MDF IS ERASED
5LNB ...      CALL  7  STEPREWRITE  
5M82 ...      UP                           [EXIT LEAVING ENTRY IN FSMB  
5MML ...[   
5N7= ...[   
5NLW ...SETUPFSMB   
5P6G ...      SETNCORE SENTLEN+1,3,FILE,FSMB [NEW FSMB WITH ROOM FOR ONE ENTRY  
5PL6 ...      LDX   0  AMAPDEPTH(2) 
5Q5Q ...      STO   0  SENTDEPTH(3) 
5QKB ...      BRN      SETENTRY 
5R52 ...[   
5RJL ...SETUPENTRY  
5S4= ...      MHUNTW   3,FILE,FSMB  
5SHW ...      LDX   4  ALOGLEN(3)          [MAKE ROOM FOR NEW ENTRY 
5T3G ...      ADN   4  SENTLEN  
5TH6 ...      ALTLEN   3,4  
5W2Q ...SETENTRY
5WGB ...      STEPAGAIN                    [RECOVER X3->NAME RECORD AFTER COOR  
5X22 ...      MHUNTW   1,FILE,FSMB  
5XFL ...      ADX   1  ALOGLEN(1)   
5X^= ...      SBN   1  SENTLEN+1
5YDW ...      TRACEIF  K6BMSTREAM,99,299,EGENN(3),NEW MULT  
5YYG ...      LDN   4  ELOC1N(3)
5^D6 ...      LDN   5  SLOC(1)  
5^XQ ...      MOVE  4  3                   [LOCAL NAME  
62CB ...      LDX   0  ELANN(3) 
62X2 ...      STO   0  SLANG(1)            [& LANGUAGE IN ENTRY 
63BL ...      LDX   7  EGENN(3) 
63W= ...      STOZ     SGAP(1)  
64*W ...      STOZ     STREND(1)
64TG ...      STF      1,NEXTGEN,7         [EXPECTED GEN = THIS ONE 
65*6 ...      STF      1,PHIRST,7          [FIRST ELEMENT FOUND IS HIGHEST GEN  
65SQ ...      BRN      UPDATENTRY   
66#B ...[   
66S2 ...[   
67?L ...[   
67R= ...NOMULTRES     [ENTRY FROM BMAPONE IF ELEMENT ON LOST RESIDENCE  
68=W ...[ AND MARKED "TO BE DUMPED" (I.E. NO DUMPED COPY EXISTS)
68QG ...[ THE OBJECT IS TO FORGET ABOUT THE ELEMENT THUS CREATING A GAP.
69=6 ...[   
69PQ ...      STEPAGAIN 
6=9B ...      TRACEIF  K6BMSTREAM,99,299,EGENN(3),MULTLOST [UNAVAILABLE MULT GEN
6=P2 ...      CALL  7  SENT                [RELOCATE ENTRY  
6?8L ...      BRN      (GEOERR) 
6?N= ...      BRN      (GEOERR) 
6#7W ...      LF       1,PHIRST,0   
6#MG ...      BXU   0  EGENN(3),NOTFIRST   [J UNLESS THIS IS ONLY ELEMENT SO FAR
6*76 ...      MHUNTW   3,FILE,FSMB  
6*LQ ...      LDX   7  ALOGLEN(3)   
6B6B ...      SBN   7  SENTLEN  
6BL2 ...      ALTLEN   3,7                 [DELETE ENTRY
6C5L ...      UP
6CK= ...[   
6D4W ...NOTFIRST
6DJG ...      LF       1,NEXTGEN,7  
6F46 ...      ADN   7  1                   [RESET EXPECTED GEN TO IGNORE THIS   
6FHQ ...      STF      1,NEXTGEN,7  
6G3B ...      UP
6GH2 ...[   
6H2L ...[   
6HG= ...[   
6H^W ...MULTCHECK      [ENTRY FROM BMAPONE @ END OF DIRECTORY WITH MULTIFILES   
6JFG ...[   
6J^6 ...      NGN   6  SENTLEN-1           [ALLOW FOR SENTDEPTH WORD
6KDQ ...      MHUNTW   1,FILE,FSMB  
6KYB ...SMBLOOP 
6LD2 ...      ADN   6  SENTLEN  
6LXL ...      BXE   6  ALOGLEN(1),SCRAPFSMB[J IF ONLY DELETED ENTRIES   
6MC= ...      SMO      6
6MWW ...      LDX   0  SLOC-1(1)           [LOOK AT NEXT ENTRY  
6NBG ...      BZE   0  SMBLOOP             [J TO IGNORE IF OBLITERATED  
6NW6 ...[   
6P*Q ...[ VALID ENTRY FOUND:  READ THROUGH DIRECTORY
6PTB ...[   
6Q*2 ...      FASTREWI 1
6QSL ...NEXTNAME
6R#= ...      STEP  
6RRW ...      BZE   3  XFLISTADD           [J IF END OF FILE
6S?G ...      LDX   0  EDESCRIBE(3) 
6SR6 ...      BNZ   0  NEXTNAME            [J UNLESS NAME REC   
6T=Q ...      JBC      NEXTNAME,3,BNMULT
6TQB ...      CALL  7  SENT 
6W=2 ...      BRN      (GEOERR) 
6WPL ...      BRN      NEXTNAME 
6X9= ...      LF       1,TOPGEN,0   
6XNW ...      BXGE  0  EGENN(3),TEMP       [J UNLESS XS COMP
6Y8G ...      MBS      3,BNTEMP,BNERASE    [PREVENT FREEZING & ENSURE   
6YN6 ...      CALL  7  STEPREWRITE         [ DELETION IN BMAPTWO IF EXCESS  
6^7Q ...      BRN      NEXTNAME            [ ELEMENT
6^MB ...[   
7272 ...TEMP
72LL ...      JBC      NEXTNAME,1,MAKETEMP  
736= ...      BS       3,BNTEMP 
73KW ...      CALL  7  STEPREWRITE  
745G ...      BRN      NEXTNAME 
74K6 ...[   
754Q ...SCRAPFSMB   
75JB ...      FREECORE 1
7642 ...      UP
76HL ...[   
773= ...XFLISTADD   
77GW ...      MFREEW   FILE,FSMB
782G ...      UPPLUS   1                   [FLISTADD REQUIRED   
78G6 ...[   
78^Q ...[   
79FB ...MDFERASE                           [ENTRY FROM BMAPTWO TO SEE IF MDF
79^2 ...[                                   CAN BE ERASED   
7=DL ...      QKTABSET FILERING(2),5,6     [REMEMBER POSITION IN DIR
7=Y= ...      STEPAGAIN                    [RECOVER X3->NAME RECORD OF MDF  
7?CW ...      MHUNTW   1,FILE,FLOCNB       [SET UP FLOCNB FOR GETDIR
7?XG ...      LDX   0  ELANN(3) 
7#C6 ...      STO   0  A1+5(1)             [LANGUAGE
7#WQ ...      STOZ     A1+4(1)             [ANY GEN 
7*BB ...      LDN   0  ELOC1N(3)           [LOCAL NAME & REEL   
7*W2 ...      ADN   1  A1   
7B*L ...      MOVE  0  4
7BT= ...      GETDIR   6
7C#W ...      MFREEW   FILE,ENT            [FROM GETDIR 
7CSG ...      QKTABULA FILERING(2),5,6  
7D#6 ...      STEPAGAIN                    [REPOSITION ON MDF NAME RECORD   
7DRQ ...      MHUNTW   1,FILE,FLOCNB
7F?B ...      LDX   0  A1+4(1)  
7FR2 ...      SBN   0  1
7G=L ...      BNZ   0  NOTONE              [J IF ELEMENT EXISTS 
7GQ= ...      BS       3,BNTEMP            [MARK MDF TO ENSURE  
7H9W ...      CALL  7  STEPREWRITE         [  DELETION IN BMAPTWO   
7HPG ...      UP
7J96 ...[   
7JNQ ...NOTONE  
7K8B ...      LF       3,NHGN,0            [X0=NHGN 
7KN2 ...      BXE   0  A1+4(1),UP          [J TO EXIT UNLESS ESTREND
7L7L ...      LDX   7  A1+4(1)             [HIGHEST             NEEDS RESET 
7LM= ...      STF      3,OHGN,7            [ REMAINING  
7M6W ...      STF      3,NHGN,7            [  GENERATION
7MLG ...      BS       3,MULTERASE  
7N66 ...      CALL  7  STEPREWRITE  
7NKQ ...      UP
7P5B ...[   
7PK2 ...#END
^^^^ ...377674560009