{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: BMSTREAM853)}}
====== BMSTREAM853 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BITDEFS|BITDEFS]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXU|BXU]], [[george:macro:FIELDDEF|FIELDDEF]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GETDIR|GETDIR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:JBC|JBC]], [[george:macro:JBCC|JBCC]], [[george:macro:JBS|JBS]], [[george:macro:JMBAC|JMBAC]], [[george:macro:JMBS|JMBS]], [[george:macro:LF|LF]], [[george:macro:MBC|MBC]], [[george:macro:MBS|MBS]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:QKTABSET|QKTABSET]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETENTRY|SETENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:STEPREWRITE|STEPREWRITE]], [[george:macro:STF|STF]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TRACEIF|TRACEIF]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
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 [0ELEMENT,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