{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: RESTOREG864)}}
====== RESTOREG864 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BACKREAD|BACKREAD]], [[george:macro:BACKWRITE|BACKWRITE]], [[george:macro:BBUS|BBUS]], [[george:macro:BS|BS]], [[george:macro:BWZ|BWZ]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLEARFAIL|CLEARFAIL]], [[george:macro:CLOSEFRBS|CLOSEFRBS]], [[george:macro:COOR1|COOR1]], [[george:macro:DCA|DCA]], [[george:macro:DOWN|DOWN]], [[george:macro:GETBACK|GETBACK]], [[george:macro:GPERI|GPERI]], [[george:macro:GRINDEX|GRINDEX]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNTMISB|HUNTMISB]], [[george:macro:JBC|JBC]], [[george:macro:JBCC|JBCC]], [[george:macro:LOCKC|LOCKC]], [[george:macro:MBSXD|MBSXD]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:PAIR|PAIR]], [[george:macro:REINDEX|REINDEX]], [[george:macro:RESQUERY|RESQUERY]], [[george:macro:RESTOREN|RESTOREN]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TOPFCA|TOPFCA]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
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