RESTOREG864

(George Source)

Macros used: ACROSS, ALTLEN, ALTLENG, BACKREAD, BACKWRITE, BBUS, BS, BWZ, BXE, BXL, BXU, CHAIN, CLEARFAIL, CLOSEFRBS, COOR1, DCA, DOWN, GETBACK, GPERI, GRINDEX, HUNT, HUNTMISB, JBC, JBCC, LOCKC, MBSXD, MENDAREA, MFREE, MHUNT, MHUNTW, MONOUT, OUTPACK, PAIR, REINDEX, RESQUERY, RESTOREN, SEG, SEGENTRY, SETNCORE, SETREP, TESTNAMX, TOPFCA, UNLOCK, UP, UPPLUS

RESTOREG864.txt
22FL ...      SEG   RESTOREG,864,PETER CAMPBELL,RESTORE 
22^=    #   
23DW          SEGENTRY K1RESTOREG,RESTOREG  
23L4 ...      SEGENTRY K2RESTOREG,RESTOREG2 
23YG    #   
24D6    #   THE PURPOSE OF THIS SEGMENT IS TO RESTORE THE FILESTORE COMPLETELY  
24XQ    #   FROM AN INCREMENTAL DUMP TAPE.  
25CB    #     ENTRY    ENTERED IN EARLY MORNING START FROM RESTOREA 
25X2    #              A TAPE HAS BEEN ENGAGED  
26BL    #     METHOD   SEGMENT USES RESTLIMB AND RESTMERG AND RESTEND   
26W=    #              IT FIRST CHECKS THAT THE CORRECT INCREMENT DUMP TAPE HAS 
27*W    #              BEEN ENGAGED 
27TG    #              IT SETS UP FILE BLOCKS   
28*6    #                  FWB USED BY RESTOREG,RESTLIMB
28SQ    #                  FLOCNB   
29#B    #                  FAPB USED BY RESTLIMB,RESTMERG   
29S2    #                  FRESTOR USED BY RESTMERG 
2=?L    #           RESTLIMB IS USED TO RESTORE ALL FILES UNDER MASTER AND  
2=R=    #              LEAVES SKELETON DIRECTORIES FOR DICTIONARY,MANAGER AND   
2?=W    #              SYSTEM FILES 
2?QG    #           RESTMERG IS USED TO MERGE SKELETON ENTRIES SETUP BY 
2#=6    #              RESTLIMB WITH THE FILE OF MASTER ON THE TAPE.
2#PQ    #              THE SEGMENT THEN CREATES MASTERS DIRECTORY ENTRY 
2*9B    #           RESTEND IS USED TO INSERT THE TAPE SERIAL NUMBER INTO FILES 
2*P2    #              INCINDEX,SERIAL AND DUMPER.  
2B8L    #     EXIT     UP      NORMAL RETURN WHEN RESTORE COMPLETED 
2BN=    #   
2CMG    SFS            12HGEORGE3DUMP   
2D76    MAST           4HMAST   
2DLQ    SLINK                              [ENTRY LINK FOR REWIND ACTIVITY  
2F6B          PAIR     LIBLOAD,1
2LG=    TDUMP          12HGEO3DUMPTAPE  
2L^W    XTHOU          +1000000 
2MFG ...#     ******************************************************************
2M^6 ...#                                  SFRESTUSER2  
2NDQ ...#                                  ***********  
2NYB ...#     ( LINK IN X1 )
2PD2 ...#     SUBROUTINE TO GET POINTER TO FRESTURER IN X2  
2PXL ...SFRESTUSER2 
2QC= ...      HUNTMISB   2,FI,FRESTUSER    [ SEARCH MISC CHAIN FOR FRESTUSER
2QWW ...      BNG   2  (GEOERR)            [ BREAK IF NOT THERE 
2RBG ...      EXIT  1  0                   [AND BACK
2RW6 ...#   
2S*Q ...#     ******************************************************************
2STB ...#                                  SFRESTUSER3  
2T*2 ...#                                  ***********  
2TSL ...#     (LINK IN X1 ) 
2W#= ...#     SUBROUTINE TO GET POINTER TO FRESTUSER IN X3  
2WRW ...#   
2X?G ...SFRESTUSER3 
2XR6 ...      HUNTMISB   3,FI,FRESTUSER    [
2Y=Q ...      BNG   3  (GEOERR)            [
2YQB ...      EXIT  1  0                   [ AND BACK   
2^=2 ...#   
2^PL ...#     ******************************************************************
329= ...
32NW ...#     ******************************************************************
338G ...#   
33N6 ...#                                  NEXTINC  
347Q ...#                                  *******  
34MB ...#     USES X6 AS LINK   
3572 ...#   
35LL ...#     THIS SUBROUTINE READS DOWN THE TAPE UNTIL IT FINDS THE
366= ...#     NEXT START OF INCREMENT SENTINEL  
36KW ...#     IT LEAVES THE INCREMENT NUMBER IN X5  
375G ...#     ******************************************************************
37K6 ...NEXTINC 
384Q ...      SBX   6  FX1                 [
38JB ...NEXTINC2
3942 ...      CALL  5  TM                  [ SKIP TO TAPE MARK  
39HL ...      CALL  5  READP               [ READ SENTINEL  
3=3= ...      LDX   0  ESENTYP(3)          [
3=GW ...      SBN   0  7                   [
3?2G ...      BZE   0  NOTINC              [ JUMP IF END OF TAPE
3?G6 ...      ADN   0  1                   [
3?^Q ...      BNZ   0  NEXTINC2            [ JUMP UNLESS START SENTINEL 
3#FB ...      TESTNAMX   3,SFS(1),ESENLOC1(3),NEXTINC2  
3#^2 ...                                   [ JUMP IF NOT GEORGE3DUMP
3*DL ...      BBUS     1,ESENB(3),NEXTINC2   [ JUMP IF NOT START OF INCREMENT   
3*Y= ...      LDX   5  ESENFG(3)           [ X5 IS INCREMENT NUMBER 
3BCW ...      ADX   6  FX1                 [
3BXG ...      EXIT  6  0                   [ AND AWAY   
3CC6 ...#   
3CWQ ...[***********************************************************************
3DBB ...#                                  READHDDR 
3DW2 ...#                                  ******** 
3F*L ...#     LINK = X5 
3FT= ...#     LEAVES TSN IN X6  
3G#W ...#     THIS SUBROUTINE REWINDS THE TAPE,READS THE HEADER LABEL   
3GSG ...#     CHECKS THAT THE NAME IS GEO3DUMPTAPE AND THAT TSN IS NON-ZERO 
3H#6 ...#   
3HRQ ...#     X6 WILL CONTAIN THE TSN ON EXOT   
3J?B ...READHDDR
3JR2 ...      SBX   5  FX1                 [
3K=L ...      LDN   0  7                   [
3KQ= ...      DCA      ,STO,0,MODE         [REWIND THE TAPE 
3L9W ...      CALL  4  PERI                [
3LPG ...      LDN   6  0                   [ NO TAPE READ YET   
3M96 ...      SETNCORE   20,3,FILE,FINTER6  
3MNQ ...      STOZ     A1(3)               [ SET UP EMPTY FINTER6   
3N8B ...      SETNCORE 20,3,FILE,FWB       [SET UP AND LOCK FWB 
3NN2 ...      LOCKC    3,XLOCK             [
3P7L ...      MHUNTW   3,FILE,FWB   
3PM= ...      LDN   0  A1(3)               [ START ADDRESS  
3Q6W ...      DCA      ,STO,0,CTSA         [ SET DESTINATION ADDRESS
3QLG ...      LDN   0  20                  [ LENGTH OF TRANSFER 
3R66 ...      DCA      ,STO,0,COUNT        [
3RKQ ...      DCA      ,STOZ,,MODE         [ READ MODE  
3S5B ...      CALL  4  PERI                [ FORE OF REPI   
3SK2 ...      UNLOCK   3                   [UNLOCK FWB  
3T4L ...      LDCT  0  #440                [
3TJ= ...      ANDX  0  CPRW1(2)            [ CHECK REPLY WORD   
3W3W ...      BNZ   0  XER19               [ JUMP IF BIT 0 OR BIT 3 SET 
3WHG ...      LDX   6  A1+1(3)             [ PICK UP TSN
3X36 ...      TESTNAMX   3,TDUMP(1),A1+2(3),NOTDTAPE
3XGQ ...                                   [ JUMP IF NOT GEO3DUMPTAPE   
3Y2B ...      BZE   6  XNOTSN              [ JUMP IF ZORO TSN   
3YG2 ...      ADX   5  FX1  
3Y^L ...      EXIT  5  0                   [ AND AWAY   
3^F= ...#     ******************************************************************
3^YW ...#                                  XNOTSN   
42DG ...#                                  ******   
42Y6 ...#     THIS SECTION IS ENTERED IN THE UNLIKELY EVENT OF A TAPE WITH  
43CQ ...#     A ZERO TSN BEING LOADED   
43XB ...#   
44C2 ...XNOTSN  
44WL ...      MONOUT   GRZEROTSN           [ TAPE HAS A ZERO TSN
45B= ...      BRN      XER30
45TW ...#   
46*G ...#     ******************************************************************
46T6 ...#                                  NOTDTAPE 
47#Q ...#                                  ******** 
47SB ...#     THIS SECTION IS ENTERED IF THE LOADED TAPE IS NOT CALLED "GEO3DUMP
48#2 ...NOTDTAPE
48RL ...      OUTPACK  6,1,TSN             [
49?= ...      MONOUT   GRNOTDT             [%A IS NOT A DUMP TAPE   
49QW ...      BRN      XER30
4==G ...#   
4=Q6 ...#     ******************************************************************
4?9Q ...#                                  NOTINC   
4?PB ...#                                  ******   
4#92 ...#     THIS SECTION IS ENTERED WHEN THE REQUIRED INC IS NOT ON THE TAPE L
4#NL ...NOTINC  
4*8= ...#   
4*?B ...#UNS AMTGR  
4*BG ...      JBC     RONGTAPE,,BGENRES 
4*FL ...#UNS AMTGR  
4*JQ ...#SKI
4*MW ...      BWZ      JINCLAST,RONGTAPE2   
4B7G ...#     JUMP IF PARTIAL RESTORE   
4BM6 ...      OUTPACK  JINCLAST,1,INCNUM
4C6Q ...      OUTPACK  GINCTSN,1,TSN
4CLB ...      MONOUT   GRWRONGDT           [ INCREMENT %A IS NOT ON %B  
4D62 ...      BRN      XER30
4DKL ...#   
4F5= ...#     ******************************************************************
4FJW ...#                                  NOTSUIT  
4G4G ...#                                  *******  
4GJ6 ...#     THIS SECTION IS ENTERED IF AN INCREMENT IS UNSUITABLE FOR A   
4H3Q ...#     GENERAL RESTORE. - B0 OF WORD 19 IS SET IF IT SUITABLE
4HHB ...#   
4J32 ...NOTSUIT 
4JGL ...      OUTPACK  GINCTSN,1,TSN       [
4K2= ...      MONOUT   GRNOTSUIT           [ MT %A IS NOT SUITABLE FOR A GENERAL
4KFW ...      BRN      XER30
4K^G ...
4LF6 ...#   
4LYQ ...#     ******************************************************************
4MDB ...#                                  PERI 
4MY2 ...#                                  **** 
4NCL ...#     THIS SUBROUTINE LOCKS THE ACTIVITY BLOCK  
4NX= ...#     DOES A GPERI , COORDINATES UNLOCKS THE ACTIVITY BLOCK AND EXITS   
4PBW ...#     IT USES X4 AS THE LINK ACCUMULATOT
4PWG ...#   
4QB6 ...PERI
4QTQ ...      SBX   4  FX1                 [
4R*B ...      LOCKC    2,£                 [LOCK THE ACTIVITY   
4RT2 ...      GPERI    ,2                  [ FIRE OFF THE PERI  
4S#L ...      COOR1                        [
4SS= ...      UNLOCK   2                   [ UNLOCK IT AGAIN
4T?W ...      ADX   4  FX1                 [
4TRG ...      EXIT  4  0                   [
4W?6 ...#   
4WQQ ...#     ******************************************************************
4X=B ...#                                  SFINTER  
4XQ2 ...#                                  *******  
4Y9L ...#     SUBROUTINE FOR USE BY ALTLENG ( LINK X1 ) 
4YP= ...SFINTER 
4^8W ...      MHUNTW   2,FILE,FINTER       [
4^NG ...      EXIT  1  0                   [
5286 ...#   
52MQ ...#     ******************************************************************
5H?L ...#   
5H?N ...#                                  RESTOREG   (GENERAL RESTORE) 
5H?Q ...#                                  ******** 
5H?S ...#   
5H?W ...#     THE FOLLOWING SECTION OF GENERAL RESTORE READS THE HEADDER
5H?Y ...#     OF THE TAPE JUST LOADED ANDS WINDS DOWN UNTIL IT FINDS
5H#2 ...#     THE REQUIRED INCREMENT
5H#4 ...#   
5H#6 ...#   
5H#8 ...RESTOREG
5H#= ...      CALL  5  READHDDR            [ REWIND AND READ THE HEADER LABEL   
5H## ...      STO   6  GINCTSN             [ STORE THE TSN OF TAPE BEING USED   
5H#B ...      OUTPACK   6,1,TSN            [OUTPUT TSN  
5H#D ...      MONOUT   GRTAPENGD           [ DUMP TAPE %A IS ENGAGED
5H#G ...      SETNCORE   0,3,FILE,FINTER   [ BLOCK FOR INCREMENTS ON TAPE   
5H#J ...      SETNCORE   AMAGS-A1FINT7,3,FILE,FINTER7   
5H#L ...                                   [ BLOCK FOR ODD INFORMATION  
5H#N ...#     A FEW LINES OF CODE FOR PARALLEL DUMPER   
5H#Q ...      STOZ     GRPINCSIZE(3)       [ CLEAR SIZE 
5H#S ...      STOZ     GRPINCFILES(3)      [ AND NUMBER OF FILES IN PARALLEL INC
5H#W ...      LDX   0  JINCLAST            [
5H#Y ...      SBN   0  1                   [ FINAL INCREMENT MUST BE
5H*2 ...                                   [ > = JINCLAST - 1   
5H*4 ...      STO   0  GRPINCNUM(3)        [
5H*6 ...#     END OF FEW LINES OF PARALLEL DUMPER CODE  
5H*8 ...      STO   6  CURRTSN(3)          [ STORE TSN OF RESTORED TAPR 
5H*= ...      MHUNTW   2,FILE,FWB          [
5H*# ...      LDX   0 A1+5(2)              [ HEADER LABEL   
5H*B ...      STO   0  BMEREEL(3)          [ STORE REEL NUMBER  
5H*D ...      LDX   0  A1+6(2)             [ STORE GEN NUMBER   
5H*G ...      STO   0  BMEGEN(3)
5H*J ...#     ******************************************************************
5H*L ...#     WE NOW READ DOWN THW TAPE UNTIL WE FIND THE REQUIRED INCREMENT
5H*N ...NEXTINCR
5H*Q ...      CALL  6  NEXTINC  
5H*S ...      MHUNTW   3,FILE,FINTER       [
5H*W ...      LDX   4  ALOGLEN(3)          [ LENGTH BLOCK BY 1 WORD 
5H*Y ...      ADN   4  1                   [
5HB2 ...      ALTLENG  3,4,SFINTER         [
5HB4 ...      CALL  1  SFINTER             [ RE-HUNT FINTER 
5HB6 ...      SMO      4                   [
5HB8 ...      STO   5  FIRSTINC-1(2)       [ ADD INCREMENT TO LIST  
5HB= ...      BXL   5  JINCLAST,NEXTINCR   [ JUMP IF NOT YET REACHED INCR   
5HB# ...      BXU   5  JINCLAST,NOTINC     [JUMP IF PAST INCREMENT  
5HBB ...
5HBD ...#     ******************************************************************
5HBG ...#     WE HAVE NOW FOUND THE CORRECT INCREMENT   
5HBJ ...[     CLEAR :MASTERS DIRENT IN CASE OF TAPEFAILS IN GENERAL RESTORE 
5HBL ...      SETNCORE GSBS,3,BSTB,BWRITE   
5HBN ...      LDN   0  BTHREE   
5HBQ ...      STO   0  BACK1(3) 
5HBS ...      LDN   0  ADMASTDIR
5HBW ...      STO   0  BACK2(3) 
5HBY ...      STOZ     A1(3)
5HC2 ...      LDN   1  A1(3)
5HC4 ...      LDN   2  A1+1(3)  
5HC6 ...      MOVE  1  GSBS-1   
5HC8 ...      LDX   0  GVERSION 
5HC= ...      STO   0  EVERSION(3)  
5HC# ...      LDCT  0  1
5HCB ...      STO   0  EINF1(3) 
5HCD ...      BACKWRITE  FREE,BSBS  
5HCG ...      CLEARFAIL                    [CLEAR FAILED BLOCKS LIST
5HCJ ...      LDX   3  BFILE
5HCL ...      LDN   0  FBLKS-A1 
5HCN ...      STO   0  ALOGLEN(3)   
5HCQ ...      STO   0  FUSEBL(3)
5HCS ...      STO   0  FBLMOD(3)
5HCW ...      STOZ     BSPRE(3) 
5HCX ...#UNS AMTGR  
5HCY ...(   
5HC^ ...      JBCC XLEAVBSGR,,BFREEBS   
5HD2 ...       DOWN BACKROOM,11 
5HD3 ...XLEAVBSGR   
5HD4 ...)   
5HD5 ...#UNS AMTGR  
5HD6 ...#SKI
5HD7 ...      DOWN  BACKROOM,11 
5HD8 ...
5HD9 ...#     NOW PLUNGE INTO GENERAL RESTORE ITSELF
5HD= ...#   THE TAPE IS NOW POSITIONED BEFORE THE SFS FOR MASTER
5HD? ...#   'OPEN MASTER BY ALTERING LENGTH OF FCB AND SETTING UP IN CORRECT
5HD# ...#    FORMAT AND SETTING UP FILE CONTROL AREA
5HD* ...      MHUNTW   3,FILE,FWB   
5HDB ...      LDX   7  ESEN10(3)            [ KEEP GMT OF DUMP  
5HDD ...      LDX   0  ESENRL(3)            [ KEEP FILESTORE MARK VERSION   
5HDG ...      LDX   2  FX2  
5HDJ ...      STO   0  AWORK3(2)
5HDL ...      ALTLEN   3,BSBS,FILE,FWB  
5HDN ...      SETNCORE GSBS,3,FILE,FAPB    [SET UP BLOCKS ONE OF WHICH WILL BE  
5HDQ ...      SETNCORE GSBS,3,FILE,FRESTOR [NEEDED THROUGHOUT   
5HDS ...      SETNCORE 6,3,FILE,FLOCNB  
5HDW ...      CALL  5  TM                  [SKIP PAST TM
5HDY ...      CALL  5  READP               [READ QB 
5HF2 ...#  ASSUME :MASTER MAY BE ALLOCATED TO A SPECIAL RESIDENCE . UP TO & INCL
5HF4 ...#  MARK 7 THIS IS NOT POSSIBLE(INDEED :MASTER IS PUT ON RESIDENCE 3).   
5HF6 ...      LDX   6  ESENAL(3)
5HF8 ...      ANDN  6  #77  
5HF= ...      SBN   6  3
5HF# ...      BPZ   6  YAL                 [J IF :MASTER ALLOCATED  
5HFB ...Y3    LDN   6  BTHREE              [PUT IT ON RESIDENCE 3   
5HFD ...YGET
5HFG ...      GETBACK  6                   [GET 1 BLOCK ON REQUIRED RESIDENCE   
5HFJP...#SKI IFS
5HFLP...      MASFCB   3
5HFNP...#SKI IFS<1$1
5HFQ ...      LDX   3  BFILE               [X3-> MASTER'_ FCB   
5HFS ...      LDN   4  FBLKS-A1+1   
5HFW ...      ALTLENG  3,4,XALT            [ALTER LENGTH OF MASTER'S FCB TO CONT
5HFYP...#SKI IFS
5HG2P...      MASFCB   3
5HG4P...#SKI IFS<1$1
5HG6 ...      LDX   3  BFILE               [                   1 BLOCK  
5HG8 ...      LDN   0  FBLKS-A1 
5HG= ...      STO   0  FBLMOD(3)           [SET UP   BLOCK POINTERS 
5HG# ...      STO   4  FUSEBL(3)
5HGB ...      STO   6  BSPRE(3)            [      & RESIDENCE NO.   
5HGD ...      LDX   0  ACOMMUNE7(2) 
5HGG ...      STO   0  FBLKS(3)            [      & BLOCK NO.   
5HGJ ...      LDCT  0  #400 
5HGL ...      STO   0  CTOPEN(3)           [OPEN IN GENERAL MODE
5HGN ...      STO   0  CMOD(3)             [CMOD -IVE   
5HGQ ...      MBSXD    0,BFDIR,BFHALF   
5HGS ...      STO   0  COMM(3)               [ SET APPROPRIATE BITS IN COMM 
5HGW ...      STOZ     FWAITCOUNT(3)       [NO ONE WAITING  
5HGY ...      LDN   0  FILESIZE 
5HH2 ...      STO   0  FSIZE(3)            [MAX. FILE SIZE  
5HH4 ...      STO   7  FGMTBS(3)           [GMT 
5HH6 ...      STO   7  FLASTJAM(3)         [RESET GMT OF LAST JAM TO TIME OF
5HH8P...#SKI IFS
5HH=P...(   
5HH#P...      LDX   1  FPTR(3)             [ X1 - MASTER'S  FSTACK SET UP BY
5HHBP...[                                  BACKMAP  
5HHDP...      SETFCAGR  GENERAL,1          [ RING IN NEW ELEMENT
5HHGP...)   
5HHJP...#SKI IFS<1$1
5HHL ...      RESTOREN GENERAL             [SET UP & RING FSTACK BLOCK  
5HHN ...      STOZ     AWORK1(2)           [AWK1 AND ACOM2 = NO.OF FILES
5HHQ ...      STOZ     AWORK2(2)
5HHS ...      STOZ     ACOMMUNE2(2)        [AWK2 AND ACOM3 = ACCUMULATED SIZE   
5HHW ...      STOZ     ACOMMUNE3(2) 
5HHY ...SFS0
5HJ2 ...      LDX   0  ACOMMUNE2(2) 
5HJ4 ...      ADS   0  AWORK1(2)           [NO. OF FILES IN THIS INCR. ACCUMULAT
5HJ6 ...                                   [       IN AWORK1
5HJ8 ...      LDX   0  ACOMMUNE3(2) 
5HJ= ...      ADS   0  AWORK2(2)           [SIZE OF INCREMENT ACCUMULATED IN AWO
5HJ# ...      CALL  5  TM   
5HJB ...SFS1  CALL  5  READP               [READ OB 
5HJD ...      LDN   5  6
5HJG ...      BXE   5  ESENTYP(3),SFS2     [J IF START SENTINEL 
5HJJ ...      LDCT  5  #400 
5HJL ...      BXE   5  ESENTYP(3),SKEL     [J IF END SENTINEL   
5HJN ...      ACROSS   RESTERR,1
5HJQ ...YAL 
5HJS ...      ADN   6  3
5HJW ...      RESQUERY 6,Y3                [J IF SPECIAL RESIDENCE NOT AVAILABLE
5HJY ...      BRN      YGET 
5HK2 ...XALT                               [SUBROUTINE FOR ALTLEN   
5HK4P...#SKI IFS
5HK6P...      MASFCB   2
5HK8P...#SKI IFS<1$1
5HK= ...      LDX   2  BFILE
5HK# ...      EXIT  1  0
5HKB ...SFS2
5HKD ...      MHUNTW   1,FILE,FINTER6      [STORE S/F SENTINEL IN FINTER6   
5HKG ...      LDN   0  A1(3)
5HKJ ...      ADN   1  A1   
5HKL ...      MOVE  0  20   
5HKN ...      DOWN     RESTLIMB,1          [RESTORE ALL FILES BENEATH THIS ONE  
5HKQ ...      BRN      SFS0 
5HKS ...      BRN      UPPLUS              [ERROR HAS OCCURRED-RETURNING TO 
5HKW ...                                   [   RESTOREA TO CLEAR B/STORE
5HKY ...#   ALL FILES UNDER MASTER HAVE BEEN RESTORED.  
5HL2 ...#   TAPE IS POSITIONED AFTER MASTER SENTINEL ON TAPE AND RESTMERG   
5HL4 ...#   WILL MERGE MASTER FILE ON TAPE WITH THE SKELETON ENTRIES SET UP BY  
5HL6 ...#   RESTLIMB.   
5HL8 ...SKEL  CALL  5  TM   
5HL= ...      CALL  5  READP               [READ NEXT SENTINEL  
5HL# ...      LDN   0  #2000
5HLB ...      SMO      FILERING(2)         [SET B13 [1ST OPEN REEL] 
5HLD ...      ORS   0  FGENERAL1
5HLG ...      LDX   0  A1+2(3)  
5HLJ ...      BXE   0  MAST(1),TBM  
5HLL ...      ACROSS   RESTERR,2
5HLN ...TBM   DOWN      RESTMERG,1  
5HLQ ...      BRN      TOK  
5HLS ...UPPLUS  
5HLW ...      UPPLUS 1                     [ERROR HAS OCCURRED - RETURNING TO   
5HLY ...                                   [  RESTOREA TO CLEAR B/STORE 
5HM2 ...TOK 
5HM4 ...      CALL  5  TM                  [THIS SECTION CHECKS THAT A DUMP 
5HM6 ...      CALL  5  READP               [TAPE IS SUITABLE FOR A GENERAL  
5HM8 ...      HUNT     1,FILE,FINTER7   
5HM= ...      LDX   5  AWORK1(2)
5HM# ...      ADN   5  1
5HMB ...      STO   5  BMINTO1(1)   
5HMD ...      LDX   5  AWORK2(2)           [ STORE THE SIZE OF THE DUMP IN  
5HMG ...      ADN   5  1
5HMJ ...      STO   5  BMINTO2(1)          [          BMINTO2   
5HML ...      BBUS  0,ESENGR(3),NOTSUIT    [ERROR IF INCR. NOT GENERAL RESTOREAB
5HNL ...      DOWN     RESTOREA,4          [ DOWN TO RESTOREA TO SET UP 
5HPL ...                                   [ ACTIVITY TO UNLOAD TAPE
5HQL    #   THIS SECTION OF PROGRAM CREATES A DIRECTORY ENTRY FOR MASTER AND
5J==    #   STORES IT IN THE SECTION OF BACKING STORE RESERVED FOR IT   
5JPW    #   UNIT NO. BTHREE,BLOCK NO ADMASTDIR. 
5K9G    #   
5KP6          GRINDEX M 
5L8Q          CLOSEFRBS 
5LNB          LDX   0  AWORK3(2)
5M82          STO   0  ACOMMUNE1(2) 
5MML    #   AFTER MASTER HAS BEEN CLOSED VARIOUS ROUTINES ARE ENTERED   
5N7=    #   TO TIDY UP THE FILESTORE.   
5NLW    #              RESTEND      INSERTS THE TAPE NO. OF THE TAPE USED INTO  
5P6G    #                          INCINDEX,SERIAL AND DUMPER   
5PL6    #              INCEND      CLEARS UNRELIABLE INCREMENTS FROM INCINDEX.  
5PYY ...
5Q?Q ...
5QLJ ...MFREE   
5Q^B ...
5R#8 ...      MFREE    FILE,FLOCNB  
5RM2 ...      MFREE    FILE,FRESTOR 
5R^S ...      MFREE    FILE,FAPB
5S#L ...      MFREE    FILE,FWB 
5SMD ...      UP
5T2= ...#   
5T*4 ...#   
5TMW ...#   THIS SUBROUTINE READS A BLOCK FROM TAPE (UNIT IN X4) AND TESTS ITS  
5W2Q    #   REPLY   
5WGB    READP   
5X22          SBX   5  FX1  
5XFL          MHUNTW   3,FILE,FWB   
5X^=          LOCKC 3,XLOCK                [LOCK FWB
5YDW          MHUNTW   3,FILE,FWB   
5YYG          LDN   0  A1(3)
5^D6          DCA   ,STO,0,CTSA            [SET DESTINATION ADDRESS 
5^XQ          LDN   0  20   
62CB          DCA ,STO,0,COUNT             [ TRANSFER LENGTH
62X2          DCA   ,STOZ,,MODE            [SET 'READ& MODE 
63BL          CALL  4  PERI                [READ PERI (FROM MT) 
63W=          UNLOCK   3
64*W          LDCT  0  #640 
64TG          ANDX  0  CPRW1(2) 
65*6          BNZ   0  XER19               [J IF B0,B1 OR B3 SET IN REPLY WORD  
65SQ          ADX   5  FX1  
66#B          EXIT  5  0
66S2    XLOCK                              [SUBROUTINE ENTERED IF FWB MOVED WHIL
67?L          MHUNTW   2,FILE,FWB          [BEING LOCKED
67R=          EXIT  1  0
68=W    #   
68QG    #   THIS SUBROUTINE POSITIONS THE TAPE AFTER THE NEXT TAPEMARK  
69=6    #   (UNIT IN X4)
69PQ    TM    SBX   5  FX1                 [FOR CO-ORDINATION   
6=9B          LDX   2  FX2  
6=P2          LDN   0  4                   [SKIP TO TAPE-MARK MODE  
6?8L          DCA ,STO,0,MODE   
6?N=          CALL  4  PERI                [SKIP TO TAPE-MARK   
6#7W          ADX   5  FX1  
6#MG          EXIT  5  0
6*76    #   
6*D? ...#   
6*PD ...#     ******************************************************************
6B2K ...#   
6B?Q ...#                                  RESTOREG2
6BJX ...#                                  *********
6BW4 ...#   
6C79 ...#     THIS THE ENTRY POINT FOR PARTIAL RESTORE  
6CDB ...#   
6CPH ...RESTOREG2   
6D2N ...#     SET UP BLOCKS NEEDE FOR RESTORE   
6D?T ...#   
6DK2 ...      SETNCORE   GSBS,3,FILE,FAPB   
6DW7 ...      SETNCORE   GSBS,3,FILE,FRESTOR
6F7# ...      SETNCORE   6,3,FILE,FLOCNB
6FDF ...      SETNCORE 20,3,FILE,FWB
6FPL ...      CALL  1  SFRESTUSER3  
6G2R ...#   
6G?Y ...#   
6GK5 ...      SMO      FRNXT(3)            [ POINTER TO NEXT LIMB   
6GW= ...      LDX   0  FRINC(3)            [ INCREMENT NUMBER OF NEXT   
6H7C ...                                   [ LIMB TO BE RESTORED
6HDJ ...      BXE   0  FRLST(3),RIGHTINC   [ JUMP IF ALREADY ON INC 
6HPP ...#   
6J2W ...#     EITHER THE TAPE HAS JUST BEEN LOADED OR IT IS 
6J#3 ...#     POSITIONED ON A LATER INCREMENT ON THE TAPE   
6JK8 ...#     IN EITHER CASE WE REWIND THE TAPE AND CHECK THE HEADDED   
6JW* ...#   
6K7G ...      CALL  5  READHDDR            [ REWIND AND READ
6KDM ...      MFREE    FILE,FWB 
6KPS ...      MHUNTW   2,FILE,APROC        [
6L2^ ...      LDX   0  AMTS(2)             [ COUNT OF NUMBER OF TAPES   
6L#6 ...NEXTAPE                            [
6LK? ...      BXE   6  AMAG(2),RIGHTTAPE   [ JUMP IF A SUITABLE TAPE IS UP  
6LWD ...      ADN   2  INCMAGLEN           [ OTHERWISE COMPARE  
6M7K ...      BCT   0  NEXTAPE             [WITH NEXT TAPE IN RECORD
6MDQ ...RONGTAPE                           [
6MPX ...#     THE TAPE LOADED DOES NOT CONTAIN THE INCREMENT
6N34 ...      OUTPACK  6,1,TSN             [ OUTPUT TSB 
6N#9 ...      MONOUT   GRPRNOTSUIT           [MT %A NOT SUITABLE FOT THIS PARTIA
6NKB ...                                   [ RESTORE
6NWH ...      DOWN     RESTOREA,4          [ DOWN TO UNLOAD TAPE
6P7N ...      CALL  1  SFRESTUSER3         [ POINTER TO FRESTUSER IN X3 
6PDT ...      STOZ     FRTSN(3)            [ CLEAR TSN LOADED WORD  
6PQ2 ...      STOZ     FRLST(3)            [ CLEAR INCREMENT NUMBER AND 
6Q37 ...      STOZ     FRLST+1(3)          [ FILE NUMBER OF LIMB LAST RESTOERED 
6Q## ...      BRN      XER30               [ ACCROSS TO RESTERR TO FREE BLOSCKS 
6QKF ...#   
6QWL ...RONGTAPE2   
6R7R ...      CALL  1  SFRESTUSER3  
6RDY ...      LDX   6  FRTSN(3) 
6RQ5 ...      BRN      RONGTAPE 
6S3= ...#      SET UP TSN FOR MESSAGE   
6S#C ...#   
6SKJ ...#     ******************************************************************
6SWP ...#   
6T7W ...#     THE RIGHT TAPE IS NOW LOADED - TSN IN X6  
6TF3 ...RIGHTTAPE                          [
6TQ8 ...      CALL  1  SFRESTUSER3  
6W3* ...      BXE   6  FRTSN(3),OLREADYUP  [ J IF THIS TAPE USED LAST TIME  
6W#G ...      STO   6  FRTSN(3)            [ OTHERWISE UPDATE TSN WORD  
6WKM ...      OUTPACK  6,1,TSN             [ DUMPTAPE %A IS ENGAGED 
6WWS ...      MONOUT   GRTAPENGD           [
6X7^ ...OLREADYUP   
6XF6 ...#     ******************************************************************
6XQ? ...#                                  OLREADYUP
6Y3D ...#                                  *********
6Y#K ...      CALL  6  NEXTINC             [SKIP TO NEXT START OF INCREMENT SENT
6YKQ ...      CALL  1  SFRESTUSER3         [
6YWX ...      SMO      FRNXT(3)            [ POINTER TO NEXT INC
6^84 ...      LDX   4  FRINC(3)            [
6^F9 ...      STO   5  FRLST(3) 
6^QB ...      BXL   5  4,OLREADYUP         [ JUMP IF NOT YET REACHED INCREMENT  
723H ...      BXE   5  4,RIGHTINC          [ JUMP IF  INC   
72#N ...#     WE APPEAR TO HAVE MISSED THE INCREMENT
72KT ...      OUTPACK  4,1,INCNUM          [
72X2 ...      CALL  1  SFRESTUSER3  
7387 ...      OUTPACK  FRTSN(3),1,TSN      [
73F# ...      MONOUT   GRWRONGDT           [ INCREMENT %A NOT ON %B 
73QF ...      BRN      RONGTAPE            [JUMP TO OUTPUT  
743L ...#     MT %A NOT SUITABLE FOR THIS PARTIAL RESTORE   
74#R ...#     ******************************************************************
74KY ...#     WE ARE NOW POSITIONED AT THE CORRECT INCREMENT
74X5 ...#     WE NOW HAVE TO READ TO FIND THE CORRECT SUBFILE   
758= ...#                                  RIGHTINC 
75FC ...#                                  ******** 
75QJ ...RIGHTINC                           [
763P ...      CALL  5  TM                  [ SKIP TO NEXT TM
76#W ...      CALL  5  READP               [AND READ QB 
76L3 ...      LDN   0  7                   [
76X8 ...      BXE   0  ESENTYP(3),RONGTAPE2  [ JUMP IF EOT  
778* ...      LDN   0  6                   [
77FG ...      BXU   0  ESENTYP(3),RIGHTINC   [ JUMP IF NOT START SENT   
77QM ...#     IS THIS THE CORRECT START OF SUBFILE ?
783S ...      CALL  1  SFRESTUSER2        [ POINTER TO FRESTUSER IN X2  
78#^ ...      ADX   2  FRNXT(2)            [ POINTER TO NEXT USER   
78L6 ...      TESTNAMX   3,FRUSE(2),ESENUSE1(3),RIGHTINC
78X? ...#     JUMP IF THIS NOT THE TO BE RESTORED SUBFILE   
798D ...#   
79FK ...#     ******************************************************************
79QQ ...#   
7=3X ...#     WE HAVE FOUND THE REQUIRED LIMB   
7=*4 ...#     THE TAPE IS POSITIONED JUST AFTER THE START OF SUBFILE SENTINEL   
7=L9 ...      LDX   6  ESENFN(3)           [ PICK UP FILE NUMBER
7=XB ...#   
7?8H ...
7?FN ...#   
7?QT ...      MHUNT    3,FILE,FWB          [
7#42 ...      ALTLEN   3,BSBS,FILE,FWB     [
7#*7 ...#     ******************************************************************
7#L# ...#     SET DOING PARTIAL RESTORE BIT IN MASTER'S DIR ENT 
7#XF ...      LDN   1  BTHREE   
7*8L ...      LDN   2  ADMASTDIR
7*FR ...      BACKREAD ,BSBS,,1            [ READ MASTER'S DIR ENT  
7*QY ...      MHUNTW   3,BSTB,BREAD 
7B45 ...      BS       3,BEPARTRES         [ INDICATE PR'S INITIATED AND BS FREE
7B*= ...      LDCT  0  #200                [
7BLC ...      ERS   0  EREC(3)             [ INVERT SWITCH  
7BXJ ...      LDN   4  A1(3)
7C8P ...      LDN   5  GSBS/2+A1(3)        [ COPY FIRST HALF INTO SECOND
7CFW ...      MOVE  4  GSBS/2              [
7CR3 ...      BS       BFILE,BFPARTRES     [ SET PR'S BIT IN MASTER'S FCB   
7D48 ...      BACKWRIT FREE,BSBS           [ REWRITE DIRENT 
7D** ...#   
7DB* ...#UNS AMTGR  
7DC* ...(   
7DD* ...     JBCC XLEAVBSPR,,BFREEBS
7DF* ...      DOWN    BACKROOM,11   
7DG* ...XLEAVBSPR   
7DH* ...)   
7DJ* ...#UNS AMTGR  
7DK* ...#SKI
7DLG ...      DOWN     BACKROOM,11         [ CLEAR BS   
7DXM ...      DOWN     RESTLIMB,1           [ DOWN TO RESTORE THE LIMB  
7F8S ...      BRN      RESTORED                     [ J IF SUCCESSFUL   
7FF^ ...      UPPLUS   1                      [ NO GOOD TRY AGAIN   
7FR6 ...RESTORED
7G4? ...#     ******************************************************************
7G*D ...#                                  RESTORED 
7GLK ...#                                  ******** 
7GXQ ...#   
7H8X ...#     THE LIMB HAS NOW BEEN RESTORED
7HG4 ...
7HR9 ...      REINDEX                      [ INDEX THE TOP FILE OPEN
7J4B ...                                   [ AND SET UP A FI FINFEXF FOR IT IN A
7J*H ...      TESTREPN  OK,(GEOERR) 
7JLN ...      TOPFCA   3                   [ FIND PLACE FOR FINDEXF IN FILE CHAI
7JXT ...      ADX   3  FBACKPOINT(3)       [
7K92 ...      MHUNT    2,FI,FINDEXF        [
7KG7 ...      CHAIN    2,3                 [ CHIAN IN THE FILE CHAIN
7KR# ...      SETREP   OK                  [SET OK REPLY
7L4F ...      BRN      MFREE                 [ JUMP TO FREE BLOCKS AND UP TO BAC
7L*L ...UP                                 [ AND BACK UP TO BACKMAP 
7LLR ...      UP
7LXY ...#     AND BACK TO BACKMAP   
7M95 ...#     ******************************************************************
7MG= ...#   
7MRC ...#   
7N66    XER19   
7NKQ          ACROSS   RESTERR,19          [B0, B1 OR B3 SET IN REPLY WORD ON RE
7P5B    XER30   
7PK2          ACROSS   RESTERR,30          [GO TO CLOSE FILES OPEN & FREE BLOCKS
7Q4L    #   
7QJ=          MENDAREA 30,K99RESTOREG   
7R3W    #   
7RHG    #END
^^^^ ...26613111000100000000