RESTEND850

(George Source)

Macros used: ACROSS, ALTLEN, BACKSPACE, BXE, BXU, CLOSETOP, DELETE, DOWN, FILEMOVE, GEOERR, HUNT, INSERT, MENDAREA, MFREE, MFREEW, MHUNTW, NAME, OPENINC, OPENSYS, READAGAIN, REWIND, SEG, SEGENTRY, SSEARCH, STEP, STEPAGAIN, STEPREWRITE, TRACEVER, UP, WIND

RESTEND850.txt
22FL ...      SEG   RESTEND,850,PETER CAMPBELL,RESTORE  
22^=    #   
23DW          SEGENTRY K1RESTEND
23YG    #   
24D6    #   THIS SEGMENT ENABLES COPIES OF INCREMENT DUMP TAPES TO BE MADE  
24XQ    #     IT USES THE NUMBER OF THE INCREMENT DUMP TAPE USED TO RESTORE THE 
25CB    #   FILESTORE. IT CHECKS WHETHER THE NUMBER ALREADY EXISTS IN FILE  
25X2    #   SYSTEM.INCINDEX AND IF NOT FINDS A TAPE WHICH MAY BE A COPY OF THIS 
26BL    #   TAPE AND REPLACES IT IN INCINDEX,SERIAL AND DUMPER FILES UNDER  
26W=    #   SYSTEM. 
27*W    #   
27TG    #     ENTRY    THIS SEGMENT IS ENTERED FROM RESTOREG WHEN THE   
28*6    #              FILESTORE HAS BEEN RESTORED. 
28SQ    #              A BLOCK TYPE FILE/FINTER7 HAS BEEN SET UP CONTAINING 
29#B    #              A1      FIRST INCREMENT ON TAPE  
29S2    #              A1+1    CURRENT INCREMENT ON TAPE
2=?L    #              A1+2    CURRENT TSN OF DUMP TAPE 
2=R=    #   
2?=W    #     EXIT     INCINDEX CONTAINS THE TSN OF THIS TAPE AS THE FIRST  
2?QG    #              TSN IN THE RECORD FOR EACH INCREMENT UP TO THE CURRENT   
2#=6    #              ONE. 
2#PQ    #              IT MAY HAVE REPLACED AN EXISTING TSN.
2*9B    #              THE TAPE NUMBER WILL ALSO EXIST IN SYSTEM.SERIAL AND 
2*P2    #              SYSTEM.DUMPER
2B8L    #   
2BN=    #     ERRORS   IF THE CURRENT TAPE IS NOT COMPATIBLE WITH THE EXISTING  
2C7W    #              FILESTORE AN ERROR MESSAGE WILL BE OUTPUT AND THE ROUTINE
2CMG    #              WILL EXIT UPPLUS 1 TO REPEAT THE MESSAGE 
2D76    #   
2DLQ    #   
2F6B    #   THIS SEGMENT IS ENTERED FROM RESTOREG   
2FL2    #    THIS SECTION OPENS INCINDEX AND CHECKS WHETHER THE INCREMENTSON
2G5L    #    THE TAPE ARE COMPATIBLE WITH THOSE IN INCINDEX AND WHETHER THIS
2GK=    #    TAPE IS ALREADY IN INCINDEX
2H4W    #    IF PRESENT X7=1
2HJG    #    IF NOT     X7=0
2J46    #   
2JHQ          STOZ     AWORK4(2)           [ NEW TAPE INDICATOR 
2K3B          OPENINC  ,GENERAL            [OPEN INCINDEX   
2KH2          OPENSYS  XERROR2,SERIAL,GENERAL  [OPEN SERIAL 
2L2L          FILEMOVE 0,1                 [SERIAL NOW AT DEPTH 1   
2LG=                                       [INCINDEX AT DEPTH 0 
2L^W          STOZ     7                   [SWITCH  
2MFG    STEP1   
2M^6          STEP                         [READ NEXT RECORD
2NDQ          BZE   3  TEST1               [END OF FILE 
2NYB          LDX   4  AINCNO-A1(3) 
2PD2          MHUNTW   1,FILE,FINTER
2PXL          TXU   4  FIRSTINC(1)  
2QC=          BCS      NOTFIRST 
2QWW          LDEX  4  FRH(3)              [ALTER BLOCK LENGTH  
2RBG          SBN   4  AMAG-A1             [AND STORE TAPE NOS. FROM INCINDEX   
2RW6          LDX   6  4
2S*Q          MHUNTW   3,FILE,FINTER7   
2STB          ADX   4  ALOGLEN(3)   
2T*2          ALTLEN   3,4,FILE,FINTER7 
2TSL          STEPAGAIN 
2W#=          MHUNTW   2,FILE,FINTER7      [MOVE TSNS & STATE INFORM. TO FINTER7
2WRW          LDN   0  AMAG-A1(3)   
2X?G          LDN   1  AMAGS(2) 
2XR6          SMO      6
2Y=Q          MOVE  0  0
2YQB    NOTFIRST
2^=2          MHUNTW   2,FILE,FINTER7   
2^PL          LDX   6  CURRTSN(2)   
329=          CALL  2  TSN                 [SEE IF CURRENT TSN IN RECORD
32NW          BRN      STEP1               [NO  
338G          LDN   7  1                   [YES SET SWITCH  
33N6    #SKI   K6RESTEND>100-100
347Q          TRACEVER 4,INC1   
34MB          BRN      STEP1
3572    #    THIS SECTION TESTS WHETHER TAPE IS ALREADY KNOWN TO INCINDEX   
35LL    #    IF SO GOES TO X1   
366=    TEST1                              [END OF FILE 
36KW    #SKI   K6RESTEND>100-100
375G    (   
37K6          TRACEVER 7,ISTHERE?   
384Q          MHUNTW   1,FILE,FINTER7   
38JB          BLOCKTRA 1,FINTER7
3942          MHUNTW   1,FILE,FINTER
39HL          BLOCKTRA 1,FINTER 
3=3=    )   
3=GW          BNZ   7  X1                  [TAPE ALREADY THERE  
3?2G    #    IF TAPE IS NOT IN INCINDEX FURTHER CHECKING IS DONE
3?G6    #    THE NEXT FEW LINES CHECK WHETHER THE TAPE IS IN SYSTEM.SERIAL  
3?^Q          MHUNTW   1,FILE,FINTER7   
3#FB          LDX   6  CURRTSN(1)   
3#^2          CALL  4  SSER                [SEARCH SERIAL FOR NEW TAPE  
3*DL          BRN      NOTINSER            [  J IF NOT KNOWN
3*Y=    XER13   
3BCW          ACROSS   RESTERR,13          [NEW TAPE ALREADY KNOWN TO SERIAL
3BXG    #    THIS SECTION OF PROGRAM DETERMINES WHETHER THERE IS A TAPE NO. 
3CC6    #    IN INCINDEX WHICH MAY BE A COPY OF THE CURRENT TSN.
3CWQ    #    IF ONE IS NOT FOUND AN ERROR IS REPORTED   
3DBB    #    OTHERWISE THE NO. IS HELD IN X6.   
3DW2    #   
3F*L    NOTINSER
3FT=          LDN   7  0                   [CLEAR SWITCH
3G#W          NGN   4  INCMAGLEN           [TSN MODIFIER
3GSG    REWIND  
3H#6          REWIND                       [REWIND INCINDEX 
3HRQ          ADN   4  INCMAGLEN           [ADD MODIFIER
3J?B          MHUNTW   1,FILE,FINTER7   
3JR2          LDX   0  ALOGLEN(1)   
3K=L          SMO      4
3KQ=          SBN   0  AMAGS-A1 
3L9W          BZE   0  XER14               [ERROR IF CAN'T FIND TAPE WITH SAME I
3LPG                                       [   AS THAT RESTORED FROM
3M96          SMO      4
3MNQ          LDX   6  AMAGS(1)            [PICK UP NEXT TSN
3N8B          LDN   5  0                   [SET INC. MODIFIER   
3NN2    STEP2   
3P7L          STEP                         [NEXT RECORD (INCREMENT) 
3PM=          BZE   3  TEST2
3Q6W          CALL  2  TSN                 [IS THIS TSN IN THIS RECORD? 
3QLG          BRN      STEP2               [NO  
3R66          MHUNTW   1,FILE,FINTER
3RKQ          SMO      5
3S5B          LDX   0  FIRSTINC(1)  
3SK2          BXU   0  AINCNO-A1(3),REWIND [J IF THIS TAPE DOES NOT CONTAIN REQU
3T4L                                       [   INCRS.   
3TJ=          LDN   7  1                   [SET SWITCH  
3W3W          ADN   5  1                   [ADD 1 TO INC. MODIFIER  
3WHG          BRN      STEP2
3X36    TEST2   
3XGQ          BZE   7  REWIND              [TSN AS COPY NOT YET FOUND   
3Y2B    #    THE TAPE SERIAL NO. FOUND AS A COPY IS REPLACED BY THE CURRENT 
3YG2    #    TSN IN SYSTEM.SERIAL AND SYSTEM.DUMPER.
3Y^L          CALL  4  SSER                [FIND THIS TAPE IN SERIAL
3^F=          BRN      XERROR3             [ERROR IF NOT THERE  
3^YW          READAGAIN 1   
42DG          MHUNTW   3,FILE,FRB   
42Y6          NAME     3,FILE,FWB   
43CQ          MHUNTW   1,FILE,FINTER7   
43XB          LDX   5  6                   [X5= TAPE TO BE REPLACED 
44C2          LDX   6  CURRTSN(1)   
44WL          STO   6  A1+1(3)             [REPLACE TSN 
45B=          DELETE   1
45TW          CALL  4  SSER                [FIND PLACE FOR NEW TAPE IN SERIAL   
46*G          BRN      XCOPY
46T6          BRN      XER13               [ERROR  -COPY TAP5 KNOWN TO SERIAL   
47#Q    XCOPY   
47SB          INSERT  1                    [INSERT NEW TAPE RECORD  
48#2          MFREEW   FILE,FWB 
48RL          DOWN  INCTAPES,2             [OPEN :DUMPER IN GENERAL MODE
49?=    STEP4   
49QW          STEP  
4==G          BZE   3  XERROR5             [J IF TSN NOT IN :DUMPER 
4=Q6          LDX   0  ERES-A1(3)   
4?9Q          BNZ   0  STEP4               [J IF NOT NAME RECORD
4?PB          BXU   5  ESER-A1(3),STEP4    [J 96 NOT R5QU9R5D TSN   
4#92          MHUNTW   1,FILE,FINTER7   
4#NL          LDX   0  BMEREEL(1)          [PICK UP THE REEL NO 
4*8=          STO   0  EREEL-A1(3)         [ & INSERT IN DIR. ENTRY 
4*MW          LDX   0  BMEGEN(1)           [ PICK UP THE GENERATION NO. 
4B7G          STO   0  EGEN-A1(3)          [ & INSERT IN DIR. ENTRY 
4BM6          STO   6  ESER-A1(3)          [REPLACE TSN 
4C6Q          LDX   6  5                   [X6= TAPE BEING REPLACED 
4CLB          STEPREWRITE                  [REWRITE RECORD  
4D62          CLOSETOP                     [CLOSE :DUMPER   
4DKL          LDN   0  1
4F5=          STO   0  AWORK4(2)           [ COPY TAPE  
4FJW    #    IN THE FILE SYSTEM.ININDEX THE RECORD FOR EACH INCREMENT ON THE
4G4G    #    CURRENT TAPE IS ALTERED.   
4GJ6    #    THE TSN FOR THE COPY OR THE CURRENT TSN ITSELF IF IT EXISTS IS 
4H3Q    #    REMOVED AND THE CURRENT TSN INSERTED AS THE FIRST TSN. 
4HHB    X1  
4J32          REWIND                       [REWIND INCINDEX 
4JGL    STEP3   
4K2=          STEP  
4KFW          BZE   3  XER14               [ERROR IF NOT IN INCINDEX
4K^G          MHUNTW   1,FILE,FINTER
4LF6          LDX   0  AINCNO-A1(3) 
4LYQ          TXU   0  FIRSTINC(1)  
4MDB          BCS      STEP3
4MY2          BRN      STOTSN   
4NCL    NEXT
4NX=          STEP  
4PBW          BZE   3  XEND1               [END OF  
4PWG    STOTSN  
4QB6          LDEX  0  FRH(3)              [X0= NO. OF TAPES IN THIS INCREMENT  
4QTQ          SBN   0  AMAG-A1  
4R*B          LDN   7  0                   [CLEAR SWITCH
4RT2    SEARCH                             [LOOK FOR THIS TAPE -COPY
4S#L          SBN   0  INCMAGLEN
4SS=          BNG   0  XEND 
4T?W          BNZ   7  MOVE 
4TRG          SMO      0
4W?6          TXU   6  AMAG-A1(3)   
4WQQ          BCS      SEARCH   
4X=B          LDN   7  1                   [TAPE FOUND  
4XQ2          BRN      SEARCH   
4Y9L    MOVE
4YP=          SMO      0
4^8W          LDN   1  AMAG-A1(3)   
4^NG          LDN   2  INCMAGLEN(1) 
5286          LDN   4  INCMAGLEN
52MQ          SMO      FX2  
537B          STO   0  ACOMMUNE2
53M2    TSNMOVE 
546L          LDX   5  0(2)                [MOVE TSNS DOWN LIST 
54L=          LDX   0  0(1)                [MOVING UP COPY TSN  
555W          STO   0  0(2) 
55KG          STO   5  0(1) 
5656          ADN   2  1
56JQ          ADN   1  1
574B          BCT   4  TSNMOVE  
57J2          SMO      FX2  
583L          LDX   0  ACOMMUNE2
58H=          BRN      SEARCH   
592W    XEND
59GG          BZE   7  XER18               [ERROR IF NOT COPY OF CURRENT DUMP TA
5=26          HUNT     1,FILE,FINTER7   
5=FQ          LDX   4  JINCLAST 
5=^B          SBX   4  AINCNO-A1(3) 
5?F2          BNZ   4  XNOTSN   
5?YL          LDX   4  BMINTO1(1)   
5#D=          STO   4  AINCFILES-A1(3)  
5#XW          LDX   4  BMINTO2(1)   
5*CG          STO   4  AINCSIZE-A1(3)   
5*X6    XNOTSN  
5BBQ          SMO      FX2  
5BWB          LDX   0  AWORK4   
5CB2          BZE   0  WRITE
5CTL          HUNT     1,FILE,FINTER7   
5D*=          LDCT  0  #400 
5DSW          ANDX  0  AMAGSTATE-A1(3)  
5F#G          ERS   0  AMAGSTATE-A1(3)     [REMOVE B0 OF STATE WORD IF SET  
5FS6          LDX   0  CURRTSN(1)   
5G?Q          STO   0  AMAG-A1(3)   
5GRB    WRITE   
5H?2          LDX   2  FX2  
5HQL          STEPREWRITE   
5HXS ...#UNS  FPD   
5J52 ...#SKI
5J==          BRN      NEXT 
5J=R ...#UNS  FPD   
5J?# ...(   
5J?T ...      LDX   4  JINCLAST            [ IF WE HAVE NOT UPDATED RESTORED INC
5J#B ...      BXU   4  AINCNO-A1(3),NEXT   [ CONTINUE STEPPING THROUGH INCINDEX 
5J#X ...#     THE RESTORED INCREMENT HAS BEEN UPDATED - WAS IT PARALLEL 
5J*D ...      MHUNTW   1,FILE,FINTER7   
5J*^ ...      LDX   4  GRPINCNUM(1)        [ IF GRPINCNUM IS ZERO INCREMENT WAS 
5JBG ...      BZE   4  NOTPARALLEL         [ PARALLEL INCREMENT 
5JC3 ...      WIND                         [ GO TO END OF INCINDEX  
5JCJ ...      STEPAGAIN                    [ AND READ LAST RECORD   
5JD5 ...      BXE   4  AINCNO-A1(3),PARALLELINC 
5JDL ...#     JUMP - WE HAVE FOUND THE PARALLEL INCREMENT   
5JF7 ...      BACKSPACE                    [ READ PENULTIMATE INCREMENT 
5JFN ...      STEPAGAIN                    [
5JG9 ...      BXU   4  AINCNO-A1(3),PARALLELEND 
5JGQ ...#     IF THIS IS NOT THE PARALLEL INCREMENT GIVE UP 
5JH? ...PARALLELINC                        [ WE HAVE FOUND THE PARALLEL INCREMEN
5JHS ...      MHUNTW   1,FILE,FINTER7   
5JJ* ...      LDX   0  AINCSIZE-A1(3)      [ IF THE SIZE HAS ALREADY BEEN INSERT
5JJW ...      BNZ   0  NOTPARALLEL         [ DONT UPDATE THE RECORG 
5JKC ...      LDX   0  GRPINCFILES(1)      [ UPDATE NO OF FILES IN INCREMENT
5JKY ...      STO   0  AINCFILES-A1(3)     [
5JLF ...      LDX   0  GRPINCSIZE(1)       [ UPDATE SIZE OF INCREMENT   
5JM2 ...      STO   0  AINCSIZE-A1(3)   
5JMH ...      STEPREWRITE                  [ REWRITES RECORD FOR PARALLEL FILES 
5JN4 ...NOTPARALLEL 
5JNK ...PARALLELEND 
5JP6 ...)   
5JPW    XEND1   
5K9G          CLOSETOP                     [CLOSE INCINDEX  
5KP6          CLOSETOP                     [CLOSE SERIAL
5L8Q          MFREEW   FILE,FINTER  
5LNB          MFREE    FILE,FINTER7 
5M82          UP
5MML    #   
5N7=    #   
5NLW    XER14       ACROSS RESTERR,14   
5P6G    XERROR3   ACROSS   RESTERR,15   
5PL6    XERROR5   ACROSS   RESTERR,17   
5Q5Q    XER18       ACROSS RESTERR,18   
5QKB    #   
5R52    XERROR2 
5RJL          GEOERR   BRIEFPM,GRBREAK     [BREAK-IN IMPOSSIBLE 
5S4=    #   
5SHW    #   THIS SUBROUTINE CHECKS WHETHER A TSN IS IN A RECORD OF INCINDEX 
5T3G    #   ON ENTRY   X3=STEP POINTER TO RECORD
5TH6    #              X6=TSN   
5W2Q    #              X2=CALL ACC  
5WGB    #   EXIT  0                            IF NOT PRESENT   
5X22    #   EXIT  1                            IF PRESENT   
5XFL    TSN 
5X^=          LDEX  0  FRH(3)   
5YDW          SBN   0  AMAG-A1             [X0= LENGTH OF MT PART OF RECORD 
5YYG    TSN1
5^D6          SMO      0
5^XQ          LDX   1  AMAG-A1-INCMAGLEN(3) 
62CB          TXU   1  6
62X2          BCC      TSN2                [IF EQUAL EXIT+1 
63BL          SBN   0  INCMAGLEN
63W=          BNZ   0  TSN1 
64*W          EXIT  2  0                   [NOT EQUAL EXIT  
64TG    TSN2
65*6          EXIT  2  1
65SQ    #   
66#B    #  THIS SUBROUTINE SEARCHES :SYSTEM.SERIAL FOR THE TSN IN X6
66S2    #  EXITS +1 IF TSN FOUND
67?L    #  EXITS +0 IF TSN NOT FOUND
67R=    SSER
68=W          SBX   4  FX1  
68QG          SSEARCH  SNOTSN,6,1          [SEARCH FOR TSN  
69=6          ADX   4  FX1  
69PQ          EXIT  4  1
6=9B    SNOTSN  
6=P2          ADX   4  FX1  
6?8L          EXIT  4  0
6?N=    #   
6#7W          MENDAREA 30,K99RESTEND
6#MG    #   
6*76    #END
^^^^ ...26562220000100000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1