{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: RESTMERG864)}}
====== RESTMERG864 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BITDEFS|BITDEFS]], [[george:macro:BS|BS]], [[george:macro:BWNZ|BWNZ]], [[george:macro:BWZ|BWZ]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:COOR1|COOR1]], [[george:macro:DCA|DCA]], [[george:macro:DELETE|DELETE]], [[george:macro:FIELDDEF|FIELDDEF]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GPERI|GPERI]], [[george:macro:HUNTMISB|HUNTMISB]], [[george:macro:JBC|JBC]], [[george:macro:JBCC|JBCC]], [[george:macro:JBS|JBS]], [[george:macro:JFNZ|JFNZ]], [[george:macro:LF|LF]], [[george:macro:LOCK|LOCK]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:REWIND|REWIND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:STF|STF]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:UP|UP]]
22FL ... SEG RESTMERG,864,PETER CAMPBELL,RESTORE
22^= #
23DW SEGENTRY K1RESTMERG,X1RESTMERG
23YG SEGENTRY K2RESTMERG,X2RESTMERG
24D6 #
24XQ # THIS SEGMENT IS USED BY THE RESTORING ROUTINES RESTOREG & RESTLIMB
25CB # TO MERGE A DIRECTORY READ FROM AN INCREMENT DUMP TAPE WITH THE
25X2 # 'SKELETON' DIRECTORY FOR ITS FILES PREVIOUSLY READ FROM TAPE
26BL # ENTRY A MAGNETIC TAPE IS POSITIONED AFTER THE START SENTINEL FO
26W= # DIRECTORY TO BE MERGED.
27*W # THE TOP FILE OPEN CONTAINS THE SKELETON ENTRIES TO BE MER
27TG # METHOD EACH ENTRY IN THE BLOCKS ON TAPE IS EXAMINED (READ INTO F
28*6 # BLOCK). FOR THOSE FILES DUMPED IN THE CURRENT INCREMENT
28SQ # CORRESPONDING SKELETON ENTRY IS FOUND IN THE TOP FILE
29#B # OPEN.THE ECOPS WORD IN THE ENTRY IS REPLACED BY THAT IN
29S2 # THE SKELETON ENTRY WHICH IS DELETED AND THE ENTRY IS
2=?L # APPENDED, THE NEW BLOCKS RECORD IS APPENDED AND
2=R= # THEN A TEST IS MADE TO SEE IF AN INDEX RECORD
2?=W # NEEDS APPENDING. FINALLY THE OLD USER TRAPS ARE
2?QG # APPENDED AND PROCESS REPEATED FOR EACH DIRECTORY ENTRY.
2#=6 # MAGNETIC TAPE ENTRIES AND ENTRIES WHICH DO NOT HAVE A
2#PQ # CORRESPONDING SKELETON ENTRY ARE MARKED AS HAVING NO
2*9B # COPIES.
2*P2 # EXIT THE DIRECTORY HAS BEEN MERGED
2B8L # THE TAPE IS POSITIONED AFTER EFS OF DIRECTORY
2BN= # UP NORMAL EXIT
2C7W # ANY ANAMOLY CAUSES ENTRY INTO RESTERR SEGMENT
2CMG #
2D76 #
2DLQ #
2F6B # USE OF ACCS. AND AWORK WORDS
2FL2 # ----------------------------
2G5L #
2GK= BITDEFS 4,0,XBINDEX,XBBLOCKS,XBDIR
2H4W FIELDDEF NUMTRAPS,9,4,23
2HJG # X4 USED AS A BIT & FIELD WORD. DEFINED AS FOLLOWS:
2J46 # XBINDEX CURRENT DIR. ENTRY IS INDEXED (IN SKELETON ENTRY)
2JHQ # XBBLOCKS CURRENT DIR. ENTRY HAS A BLOCKS RECORD (I.E. WAS DU
2K3B # THIS INCR.)
2KH2 # XBDIR DIR. ENTRY CURRENTLY BEING DEALT WITH IS FOR A DIRE
2L2L # NUMTRAPS NO. OF TRAP RECORDS IN TAPE DIR. ENTRY (ASSUMED TO
2LG= # X3 USED VARIOUSLY AS POINTER TO FILE/FRESTOR BLOCK, POINTER TO
2L^W # RECORD WITHIN THAT BLOCK, STEP & STEP-APPEND POINTERS
2MFG # X5 MODIFIER (-A1) DOWN FILE/FRESTOR FOR CURRENT RECORD AND ALSO
2M^6 # X6 SHORT TIME WORKING WORD
2NDQ # X7 LINK ACCUMULATOR AND WORK WORD
2NYB # AWORK1 NO. OF RECORDS TO SKIP IN TAPE DIR. (BLOCKS AND/OR INDEX REC
2PD2 # OR NEITHER)
2PXL #
2QC= #
2QWW # SUBROUTINES
2RBG #
2RW6 #
2S*Q # READS A BLOCK FROM MT EXAMINING THE REPLY WORD FOR UNEXPECTED BITS.
2STB # GOES TO RESTERR IF B0, B1 OR B3 OF MT REPLY WORD SET.
2T*2 # ON ENTRY, X0= NO. OF WORDS TO READ, X3->BUFFER TO READ INTO. X5 IS S
2TSL # ON EXIT, X1=FX1, X2=FX2, X3-> BUFFER BLOCK. USES X0.
2W#= #
2WRW SREADMT
2X?G SBX 5 FX1
2XR6 LDX 2 FX2
2Y=Q DCA ,STO,0,COUNT [INSERT COUNT OF WORDS
2YQB DCA ,STOZ,,MODE [ READ MODE
2^=2 LDN 0 A1(3)
2^PL DCA ,STO,0,CTSA [SET START OF BUFFER ADDRESS
329= LOCK 3 [LOCK DOWN BUFFER
32NW LOCK 2
338G GPERI ,2
33N6 COOR1
347Q UNLOCK 2
34MB UNLOCK 3
3572 LDCT 0 #640
35LL ANDX 0 CPRW1(2)
366= BNZ 0 XER19 [ERROR IF B0, B1 OR B3 SET IN REPLY W
36KW ADX 5 FX1
375G EXIT 5 0
37K6 #
384Q # GETS A POINTER TO THE NEXT RECORD IN THE DIRECTORY ON TAPE (UPDATING
38JB # X5). JUMPS OUT IF THE END OF DIRECTORY IS REACHED.
3942 # ON ENTRY, X5=MOD. DOWN FRECTOR BLOCK OF CURRENT RECORD (-A1). X7 IS
39HL # ON EXIT, X3->FILE/FRESTOR BLOCK, X5= MOD(-A1) DOWN BLOCK OF NEW RECOR
3=3= #
3=GW SGETREC
3?2G MHUNTW 3,FILE,FRESTOR
3?G6 SMO 5
3?^Q LDEX 0 FRH+A1(3) [X0= LENGTH OF CURRENT RECORD
3#FB ADX 5 0
3#^2 SMO 5
3*DL LDEX 0 FRH+A1(3) [X0= LENGTH OF NEW RECORD
3*Y= BNZ 0 SNLAST [J IF NOT LAST RECORD IN BLOCK
3BCW SGETBL
3BXG SBX 7 FX1
3CC6 LDN 0 GSBS
3CWQ CALL 5 SREADMT [READ NEXT BLOCK FROM TAPE
3DBB ADX 7 FX1
3DW2 LDCT 0 #020
3F*L ANDX 0 CPRW1(2)
3FT= BNZ 0 ZTM [J IF TM DETECTED
3G#W LDEX 0 FRH+A1(3)
3GSG BZE 0 SGETBL [GET NEXT BLOCK IF THIS ONE IS EMPTY
3H#6 [SHOULDN'T HAPPEN BUT MIGHT POSSIBLY
3HRQ LDN 5 0 [INITIALISE POINTER DOWN BLOCK
3J?B SNLAST
3JR2 EXIT 7 0
3K=L #
3KQ= # DOES A STEP-APPEND ON THE FILE AT DEPTH 0.
3L9W # ON ENTRY, X2->RECORD WANT TO APPEND. X7 IS S/R LINK
3LPG # ON EXIT, X1=FX1, X2=FX2, X3->WHERE TO APPEND RECORD. USES X0.
3M96 #
3MNQ SAPPEND
3N8B SBX 7 FX1
3NN2 LDEX 1 FRH(2) [X1= LENGTH OF RECORD
3P7L STEP ,0(1) [STEP-APPEND
3PM= ADX 7 FX1
3Q6W EXIT 7 0
3QLG #
3R66 # RESETS UP POINTER TO CURRENT RECORD IN TAPE DIR.
3RKQ # ON ENTRY, X5= MOD. DOWN CURRENT TAPE BLOCK. X7 IS S/R LINK.
3S5B # ON EXIT, X2->RECORD TO APPEND. USES X0.
3SK2 #
3T4L SFRESTOR
3TJ= MHUNTW 2,FILE,FRESTOR
3W3W ADX 2 5
3WHG ADN 2 A1
3X36 EXIT 7 0
3XGQ #
3Y2B # MOVES A RECORD FROM TAPE OR DUMMY DIR. TO MAKE REAL DIR.
3YG2 # ON ENTRY, X2->RECORD TO MOVE, X3->WHERE TO MOVE IT. X7 IS S/R LINK.
3Y^L # ON EXIT, X1= LENGTH OF RECORD, X2 & X3 AS ON ENTRY.
3^F= #
3^YW SMOVE
42DG LDEX 1 FRH(2)
42Y6 MOVE 2 0(1)
43CQ EXIT 7 0
43XB #
44C2 #
44WL #
45B= # ENTERED FROM RESTOREG & RESTLIMB.
45TW # INITIALISE BUFFER & POINTERS.
46*G X1RESTMERG
46T6 MHUNTW 3,FILE,FRESTOR
47#Q STOZ A1(3) [INITIALISE 1ST WORD OF BUFFER
47SB LDN 5 0 [ AND MODIFIER DOWN BLOCK
48#2 #
48RL # READS A NAME RECORD FROM TAPE (GEOERRS IF IT ISN'T AND NOTES WHAT REC
49?= # ARE PRESENT ON TAPE. CLEARS THE INDEXED BIT & FIELD.
49QW XNAMEREC
4==G LDN 4 0 [CLEAR MARKER WORD
4=Q6 CALL 7 SGETREC [READ (STEP) NAME RECORD FROM TAPE
4?9Q ADX 3 5 [X3-> (RECORD FROM TAPE)-A1
4?PB LDX 0 ERES(3)
4#92 BNZ 0 XGEO [GEOERR IF NOT NAME RECORD
4#NL LDX 2 ENUSE(3)
4*8= STF ,NUMTRAPS,2 [REMEMBER NO. OF TRAPS
4*MW LDX 2 FX2
4B7G STOZ AWORK1(2) [CLEAR "NO. OF TAPE RECS TO SKIP"
4BM6 LDN 7 0 [ AND AGAIN
4C6Q LDX 0 ESER(3)
4CLB BNZ 0 XNCOP [J IF MT ENTRY
4D62 JBCC XNINDEX,3,BEINDEX [CLEAR "INDEXED" BIT
4DKL ADN 7 1 [UPDATE NO. OF TAPE RECORDS TO SKIP
4F5= NGN 0 #100
4FJW ANDS 0 EINDEX(3) [CLEAR INDEX FIELD (B18-23 OF EINDEX)
4G4G [PROBABLY NO NEED FOR THIS, BUT NOT S
4GJ6 XNINDEX
4H3Q LDEX 0 ECOPS(3)
4HHB BZE 0 XNBLOCKS [J IF NO BLOCKS REC ON TAPE
4J32 ADN 7 1 [UPDATE SKIP COUNT
4JGL XNBLOCKS
4K2= STO 7 AWORK1(2) [REMEMBER NO. OF RECORDS TO SKIP IN T
4KFW #
4K^G # BRANCHES IF ENTRANT IS A MT OR IS NOT DUMPED IN THE CURRENT INCREMENT
4LF6 # OTHERWISE LOCATES THE DUMMY NAME RECORD - FOR A TERMINAL FILE IT MUST
4LYQ # 1ST TERMINAL FILE RECORD BUT FOR DIRS. THE ORDER OF DIR. ENTRIES IS N
4MDB # NECESSARILY THE ORDER OF DIRS. DUMPED (IN MK. 8.20+, DUMMY RECORDS FO
4MY2 # PRECEDE THOSE FOR TERMINALS FILES WHICH AGAIN PRECEDE ALL REAL ENTRIE
4NCL # GEOERRS IF DOESN'T FIND THE ENTRY. REMEMBER THAT SEVERAL DIRS. WITH
4NX= # LOCAL NAME (BUT DIFFERENT USER NAMES) AND ONE TERMINAL FILE WITH THAT
4PBW # MAY BE DUMPED IN THE SAME INCR.. SETS INDEXED BIT & INDEX NO. FIELD
4PWG # APPROPRIATE AND ALSO ECOPS.
4PX* ...#UNS FTS2REVERT
4PY8 ...(
4P^3 ... JFNZ XNCOP,3,FEFSNO [ IF ALIEN MUST BE OFFLINE
4P^W ... LDEX 0 ECOPS(3) [ MAY HAVE MESSED UP BY FILE HANDLER
4Q2P ... BZE 0 XNCOP [
4Q3J ...)
4Q44 ...#UNS AMTGR
4Q4J ... JBS NOTPARTRES,,BGENRES
4Q54 ...#UNS AMTGR
4Q5J ...#SKI
4Q65 ... BWNZ GINCTSN,NOTPARTRES
4Q6Y ... HUNTMISB 1,FI,FRESTUSER
4Q7R ... SMO FRNXT(1) [ POINTER TO USER
4Q8L ... LDX 0 FRINC(1)
4Q9F ... BXU 0 EINC(3),XNCOP
4Q=# ...# JUMP IF THIS FILE NOT DUMPED IN THIS INCREMENT
4Q?7 ... BRN PRES
4Q#2 ...NOTPARTRES
4QB6 LDX 0 EINC(3)
4QTQ SBX 0 JINCLAST
4R*B BNZ 0 XNCOP [J IF NOT DUMPED IN THIS INCR.
4RK8 ...PRES
4RT2 BS ,XBBLOCKS [SET "BLOCKS REC PRESENT" BIT
4S#L LDX 0 EUSE1(3)
4SS= BZE 0 XNOTDIR [J IF NOT A DIR.
4T?W BS ,XBDIR [SET "CURRENT ENTRY IS A DIR." BIT
4TRG XNOTDIR
4W?6 REWIND
4WQQ XSTEP
4X=B STEP
4X*G ...#UNS FTS2REVERT
4XDL ... BZE 3 XNCOP [ FH ????????
4XHQ ...#UNS FTS2REVERT
4XLW ...#SKI
4XQ2 BZE 3 XGEO [GEOERR IF NO DUMMY ENRTY
4Y9L LDX 0 ERESN(3)
4YP= BNZ 0 XSTEP [J IF NOT NAME REC.
4^8W MHUNTW 2,FILE,FRESTOR
4^NG ADX 2 5 [X2 -> (RECORD FROM TAPE)-A1
5286 JBS XDIR,,XBDIR [J IF LOOKING FOR A DIR.
52MQ LDX 0 EUSE1N(3)
537B BNZ 0 XSTEP [J IF NOT FOUND TERMINAL FILE YET
53M2 XTESTDUM
546L LDX 0 EINCN(3)
549Q ...#UNS FTS2REVERT
54#W ... BPZ 0 XNCOP [ FH ?
54D2 ...#UNS FTS2REVERT
54H6 ...#SKI
54L= BPZ 0 XGEO [GEOERR IF NOT DUMMY ENTRY
54PB ...#UNS FTS2REVERT
54SG ... TESTNAMX 5,ELOC1(2),ELOC1N(3),XSTEP,6 [ FH ???? IF WRONG DU
54XL ...#UNS FTS2REVERT
552Q ...#SKI
555W TESTNAMX 5,ELOC1(2),ELOC1N(3),XGEO,6 [GEOERR IF WRONG DUMMY ENTRY
55KG LDX 6 ECOPSN(3)
5656 STO 6 ECOPS(2) [TRANSFER BLOCKS WORD TO REAL ENTRY
56JQ JBC XXNINDEX,3,BNINDEX [J IF NOT INDEXED
574B BS 2,BEINDEX [SET INDEX BIT IN REAL DIR. ENTRY
57J2 BS ,XBINDEX [REMEMBER INDEX RECORD PRESENT
583L LDX 0 EINDEXN(3)
58H= ANDN 0 #77
592W ORS 0 EINDEX(2) [MOVE INDEX NO. TO DIR. ENTRY
59GG #
5=26 # APPENDS NAME RECORD IN TAPE DIR. TO DIR. & DELETES DUMMY NAME RECORD
5=FQ # IF PRESENT
5=^B XXNINDEX
5?F2 ADN 2 A1 [X2-> RECORD TO APPEND
5?YL CALL 7 SAPPEND [X3-> STEP-APPEND POSITION
5#D= CALL 7 SFRESTOR [SET UP X2 AGAIN
5#XW CALL 7 SMOVE [MOVE RECORD FROM TAPE DIR. TO DIR.
5*CG BZE 6 XNODUM [J IF NO DUMMY ENTRY
5*X6 DELETE [DELETE SKELETON NAME RECORD
5BBQ #
5BWB # APPENDS AND DELETES DUMMY BLOCKS & INDEX RECORDS IF PRESENT. COPES I
5CB2 # COORDINATION OCCURS DURING STEP AND/OR STEP-APPEND.
5CTL XNODUM
5D*= JBC YNOCOP,,XBBLOCKS [J IF NO BLOCKS RECORD
5DSW YSTEP
5F#G STEP
5FS6 YSTEP1
5G?Q LDX 2 3 [X2-> RECORD TO APPEND
5GRB LDX 6 3 [RETAIN POINTER TO RECORD
5H?2 CALL 7 SAPPEND [X3-> STEP-APPEND POSITION
5HQL TESTREP2 COORED,YCOOR
5J== LDX 2 6 [RELOAD POINTER TO RECORD
5JPW CALL 7 SMOVE [MOVE REC TO DIR.
5K9G DELETE [DELETE DUMMY BLOCKS OR INDEX RECORD
5KP6 YNOCOP
5L8Q JBCC YNOINDEX,,XBINDEX [J IF NO INDEX RECORD (CLEAR INDEX MA
5LNB [ THERE I
5M82 BRN YSTEP
5MML YCOOR
5N7= STEPAGAIN [X3-> BLOCKS OR INDEX RECORD AGAIN
5NLW BRN YSTEP1
5P6G #
5PL6 # SKIPS BLOCKS AND INDEX RECORDS ON TAPE AND TRANSFERS TRAP RECORDS FRO
5Q5Q # TAPE DIR. TO DIR..
5QKB YNOINDEX
5R52 SMO FX2
5RJL LDX 6 AWORK1 [X6= NO. OF RECORDS TO SKIP ON TAPE
5S4= BZE 6 YNOSKIP
5SHW YSKIP
5T3G CALL 7 SGETREC [SKIP BLOCKS OR INDEX RECORD
5TH6 BCT 6 YSKIP
5W2Q YNOSKIP
5WGB LF ,NUMTRAPS,6 [X6= NO. OF TRAPS
5X22 BZE 6 XNAMEREC [J IF NO TRAPS
5XFL YTRAP
5X^= CALL 7 SGETREC [GET NEXT TRAP RECORD
5YDW SMO 5
5YYG LDN 2 A1(3) [X2-> TRAPS RECORD ON TAPE
5^D6 CALL 7 SAPPEND [X3-> STEP-APPEND POSITION
5^XQ CALL 7 SFRESTOR [RESET X2
62CB CALL 7 SMOVE [MOVE TRAPS RECORD FROM TAPE DIR. TO
62X2 BCT 6 YTRAP
63BL BRN XNAMEREC
63W= #
64*W XDIR
64TG TESTNAMX 3,EUSE1(2),EUSE1N(3),XSTEP,6 [USERS MAY BE IN DIFFERENT
65*6 [DUE TO ERASURE OF DIRS. SEARCH BY US
65SQ [SINCE DIR. WITH SAME LOCAL NAME BUT
66#B [DIFFERENT USER NAME MAY HAVE BEEN CR
66S2 [(AND BOTH DUMPED)
67?L BRN XTESTDUM
67R= #
68=W # MT ENTRANT OR FILE NOT IN THIS INCR.. SHOW FILE OFFLINE.
68QG XNCOP
68QK ...#UNS FTS2REVERT
68QN ... JFNZ NOTPARALLEL,3,FEFSNO [ IF ALIEN MUST BE OFFLINE
68QP ...#UNS AMTGR
68QQ ... JBC NOTPARALLEL,,BGENRES
68QR ...#UNS AMTGR
68QS ...#SKI
68QW ... BWZ GINCTSN,NOTPARALLEL [ JUMP IF PARTIAL RESTORES
68R4 ...#UNS FPD
68RL ...(
68S8 ...# THE FILE WAS NOT DUMPED IN THE RESTORED INCREMENT
68SQ ... LDEX 0 ECOPS(3) [ IF THE FILE WAS OFFLINE AT THE TIME
68T# ... BZE 0 NOTPARALLEL [ IGNORE IT
68TW ... MHUNTW 1,FILE,FINTER7
68WD ... LDX 0 EINC(3)
68X2 ... BXL 0 GRPINCNUM(1),NOTPARALLEL
68XJ ...# IF THE FILE WAS DUMPED IN AN INCREMENT LOWER THAN GRPINCNUM IT CAN
68Y6 ...# HAVE BEEN DUMPED IN THE PARALLEL INCREMENT
68YN ... BXE 0 GRPINCNUM(1),PARALLELINC
68^= ...# JUMP IF THE FILE APPEARS TO HAVE BEEN DUMPED IN THE PARALLEL INC
68^S ...#
692B ...# THE FILE MAY HAVE BEEN DUMPED IN A NEW PARALLEL INCREMENT
692Y ...# RESET THE FILE FINTER7
693G ... STO 0 GRPINCNUM(1) [ NEW INCREMENT NUMBER
6944 ... STOZ GRPINCFILES(1) [ CLEAR NO AND SIZE OF FILES IN INCRE
694L ... STOZ GRPINCSIZE(1) [
6958 ...PARALLELINC
695Q ... LDN 0 1
696# ... ADS 0 GRPINCFILES(1) [ UPDATE NUMBER AND SIZE OF INCREMENT
696W ... LDX 0 ECOPS(3)
697D ... SRL 0 15 [ PICK OUT SIZE OF FILE
6982 ... ADS 0 GRPINCSIZE(1) [ UPDATE NO AND SIZE OF INCREMENT
698J ...NOTPARALLEL
6996 ...)
69=6 LDX 2 3 [X2->NAME RECORD IN TAPE DIR.
69PQ LDN 6 0
6=9B DLA 6 ECOPS(2) [CLEAR FILE ONLINE FIELD
6=P2 BRN XXNINDEX
6?8L #
6?N= # END OF DIR. REACHED (TAPE-MARK READ). READ QUALIFIER BLOCK - CHECK
6#7W # IF IT IS END SENTINEL.
6#MG ZTM
6*76 BNZ 4 XGEO [GEOERR IF NOT TRYING TO READ NAME RE
6*LQ [NON-STANDARD BUT EFFECTIVE USE (X4 I
6B6B [ BIT WO
6BL2 LDN 0 20
6C5L CALL 5 SREADMT [READ QUALIFIER BLOCK
6CK= LDCT 0 #020
6D4W ANDX 0 CPRW1(2)
6DJG BNZ 0 XER21 [ERROR MESSAGE IF TM READ
6F46 LDCT 0 #400
6FHQ BXU 0 ESENTYP(3),XER4 [ERROR MESSAGE IF NOT READ END SENTIN
6G3B #
6GH2 # FOR MARK 8.20+ INCREMENTS, SPARE DUMMY ENTRIES FOR DIRS. MAY BE PRESE
6H2L # (BUT NOT FOR TERMINAL FILES). DELETE THESE.
6HG= X2RESTMERG
6H^W REWIND
6JFG ZSTEP
6J^6 STEP
6KDQ ZSTEP1
6KYB BZE 3 ZEND [J IF NO MORE ENTRIES AT ALL
6LD2 LDX 0 EINCN(3)
6LXL BPZ 0 ZEND [J IF NO MORE DUMMY ENTRIES
6MC= LDX 0 EUSE1N(3)
6MWW ... BZE 0 XSKELETON
6NBG LDN 7 3
6NW6 ZDEL
6P*Q DELETE [DELETE NAME, BLOCKS & INDEX RECORDS
6PTB STEP
6Q*2 BCT 7 ZDEL
6QSL BRN ZSTEP1
6R#= ZEND
6RRW UP
6RXR ...XSKELETON
6S3N ... LDN 7 2 [ ERASE DUMMY SKELETON ENTRYAND BLO
6S7K ... BRN ZDEL
6S?G XGEO
6SR6 GEOERR BRIEFPM,DUMPORD [ ONE OF THE FOLLOWING :
6T=Q [1. NAME REC EXPECTED IN TAPE DIR BUT
6TQB [2. ENTRY NOT FOUND WHEN LOOKING FOR
6W=2 [3. REAL ENTRY FOUND WHEN LOOKING FOR
6WPL [ DUMMY ENTRY
6X9= [4. WRONG DUMMY ENTRY FOUND
6XNW [5. TM DETECTED BUT NOT TRYING TO REA
6Y8G [ NAME RECORD
6YN6 [6. SUPERFLUOUS DUMMY ENTRY NOT A DIR
6^7Q #
6^MB XER4 ACROSS RESTERR,4 [END SENTINEL EXPECTED BUT NOT FOUND
7272 XER19 ACROSS RESTERR,19 [B0, B1 OR B3 SET IN MT REPLY WORD
72LL XER21 ACROSS RESTERR,21 [SUPERFLUOUS TAPE MARK DETECTED
736= #
73KW MENDAREA 30,K99RESTMERG
745G #
74K6 #END
^^^^ ...24131731000100000000