{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: RESTEND850)}}
====== RESTEND850 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:DELETE|DELETE]], [[george:macro:DOWN|DOWN]], [[george:macro:FILEMOVE|FILEMOVE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:INSERT|INSERT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:OPENINC|OPENINC]], [[george:macro:OPENSYS|OPENSYS]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:REWIND|REWIND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SSEARCH|SSEARCH]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:STEPREWRITE|STEPREWRITE]], [[george:macro:TRACEVER|TRACEVER]], [[george:macro:UP|UP]], [[george:macro:WIND|WIND]]
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