RESTOREA866

(George Source)

Macros used: BC, BS, BUTTON, BXE, BXGE, BXU, COOR1, DCA, DEMMESS, DOWN, ENGMESS, FILECOUNT, FPUT, GETACT, GPERI, HUNTMISB, LINKSET, LOCKC, MENDAREA, MFREE, MFREEW, MHUNTW, MONOUT, OUTNULL, OUTPACK, OUTPARN, OUTTSNS, PAIR, SEG, SEGENTRY, SETREP, SUICIDE, UNLOAD, UNLOCK, UP

RESTOREA866.txt
22FL ...      SEG   RESTOREA,864,PETER CAMPBELL,RESTORE 
22^=    #   
23DW          SEGENTRY K1RESTOREA,X1RESTOREA
23YG          SEGENTRY K2RESTOREA,X2RESTOREA
24D6          SEGENTRY K3RESTOREA,X3RESTOREA
24XQ          SEGENTRY K4RESTOREA,X4RESTOREA
257J ...      SEGENTRY K5RESTOREA,X5RESTOREA
25CB    #   
25X2    #   THIS SUBROUTINE IS USED IN THE RELEASE VERSION OF GEORGE 3  
26BL    #   IT ASKS FOR THE LATEST INCREMENT NUMBER FROM WHICH TO RESTORE   
26W=    #   THE ONLINE FILESTORE
27*W    #   IT WSES THE EMS BLANKET ACTIVITY WHICE WILL WAKE UP ACTIVITIES  
27TG    #   WAITING FOR INPUT EITHER FROM THE CONSOLE OR FROM A MAGNETIC TAPE   
28*6    #   ENGAGE BUTTON   
28SQ    #   
294J ...REST5   PAIR   RESTOREA,5   
29#B    MCANTDO        8HCANTDO 
29S2    MCD            4HCD 
2=?L    ONEOF          8HONE OF 
2BN=    #   
2C7W ...#     ******************************************************************
2CMG    #   
2D76    #     THE FOLLOWING SUBROUTINE EXAMINES THE REPLY IN A CONBUFF EMSIN
2DLQ    #     IT EXITS +0 IF THE REPLY IS NEITHER CD NOR CAMTDO 
2F6B    #     IT EXITS +1 IF THE REPLY IS CD OR CANTDO  
2FL2    #     IT USES X4 AS THE LINK ACCUMULATOR
2G5L    REPLYCD                            [
2GK=          SBX   4  FX1  
2H4W          MHUNTW   3,CONBUFF,EMSIN  
2J46          LDX   6  A1(3)               [X6= NO. OF CHARS. IN REPLY  
2JHQ    QSPACE  
2K3B          SBN   6  1
2KH2          BNG   6  XNCD                [J IF NO NON-SPACE CHARS. IN REPLY   
2L2L          LDCH  0  A1+1(3)  
2LG=          SBN   0  #20  
2L^W          BCHX  3  £
2MFG          BZE   0  QSPACE              [J IF LEADING SPACE CHAR.
2M^6          ADN   0  #20  
2NDQ          LDN   2  ACOMMUNE1(2) 
2NYB          LDN   5  6                   [MOVE 6 CHARS. FROM REPLY
2PD2    QDCH
2PXL          DCH   0  0(2)                [INSERT CHARS. IN ACOMMUNE1 & 2  
2QC=          LDCH  0  A1+1(3)  
2QWW          SBN   6  1                   [REDUCE COUNT OF CHARS. REMAINING
2RBG          BCHX  2  £
2RW6          BCHX  3  £
2S*Q          BCT   5  QDCH                [J IF MORE TO MOVE   
2STB          ADN   6  1
2T*2          LDX   2  FX2  
2TSL          LDX   0  ACES 
2W#=          LDX   3  ACOMMUNE1(2)        [X3= SIGNIFICANT 1ST WORD OF ENTRY   
2WRW          BNG   6  QTESTCD             [J IF <6 SIGNIFICANT CHARS.  
2X?G          LDX   5  ACOMMUNE2(2)        [X5= SIGNIFICANT 2ND WORD OF REPLY   
2XR6          DSA   0  5
2Y=Q          BXU   5  MCANTDO+1(1),QTESTCD     [J IF NO MATCH  
2YQB          BXE   3  MCANTDO(1),QCD      [J IF CANTDO COMMAND 
2^=2    QTESTCD 
2^PL          ADN   6  4
329=          BNG   6  XNCD                [ERROR IF <2 SIGNIFICANT CHARS. IN RE
32NW          DSA   0  3
338G          BXE   3  MCD(1),QCD          [J IF CD COMMAND 
33N6    XNCD
347Q          MONOUT   GRCOMWR             ["WRONG COMMAND" MESSAGE 
34MB ...      SBN   4  1                   [ ADJUST LINK TO EXIT 4 0
3572    QCD 
35LL          MFREE    CONBUFF,EMSIN       [
366=          ADX   4  FX1  
36KW          EXIT  4  1                   [ REPLY CANTDO   
375G    #   
37K6 ...#     ******************************************************************
384Q    #   
38JB    #     THE FOLLOWING SUBROUTINE EXAMINES THE CONBUFF EMSIN   
3942    #     IT EXITS +2 IF THE REPLY IS "Y"   
39HL    #     IT EXITS +1 IF THE REPLY IS "N"   
3=3=    #     IT EXITS +0 IF THE REPLY IS NEITHER   
3=GW    #     IT USES X4 AS A LINK ACCUMULATOT  
3?2G    REPLYYES                           [
3?G6          SBX   4  FX1  
3?^Q          MHUNTW   3,CONBUFF,EMSIN  
3#^2    YSPACE  
3*?C ...      LDCH  0  A1+1(3)             [ PICK UP NEXT CHAR. 
3*KS ...      BCHX  3  £                   [ MOVE POINTER   
3*Y=          SBN   0  #20                 [
3BCW          BZE   0  YSPACE              [ IGNORE LEADING SPACES  
3BXG          SBN   0  #56-#20             [
3CC6          BZE   0  XITN                [ JUMP IF "N"
3CWQ          SBN   0  #71-#56             [
3DBB          BZE   0  XITY                [ JUMP IF "Y"
3DW2          MONOUT   GRCOMWR             [ COMMAND NOT RECOGNISED 
3F*L ...      SBN   4  1                   [ ADJUST LINK TO EXIT 4 0
3FT=    XITN
3G#W ...      SBN   4  1                   [ ADJUST LINK TO EXIT 4 1
3GSG    XITY
3H#6          MFREEW   CONBUFF,EMSIN
3HRQ          ADX   4  FX1  
3J?B          EXIT  4  2                   [ "Y"
3JH8 ...#     ******************************************************************
3JR2    X1RESTOREA  
3K=L
3L9W          DEMMESS  GRINC               [ASK  INCREMENT?  AND WAIT FOR REPLY 
3P7L    #     THE SEGMENT MAY HAVE BEEN WAKENED BY AN ENGAGE BUTTON ON  
3PM=    #     THE DECK BEING PRESSED BEFORE THE CONSOLE "ACCEPT" KEY
3Q6W    #   
3QLG    X2RESTOREA  
3R66          MHUNTW   3,CONBUFF,EMSIN  
3RKQ ...      BNG   3  X1RESTOREA            [ JUMP IF NO CONBUFF EMSIN #   
3S5B ...#       HAPPENS IF BACKMAP GOES DOWN TO THE WRONG ENTR  
3S7^ ...#UNS AMTGR  
3S=J ...(   
3S*7 ...      BS ,BGENRES   
3SCQ ...      BS ,BFREEBS   
3SG* ...)   
3SK2          LDN   7  0                   [CLEAR INCREMENT NO. 
3T4L          LDN   5  10   
3TJ=          LDX   4  A1(3)               [X4= NO. OF CHARS. IN REPLY  
3W3W          BZE   4  XERR                [ERROR IF NONE   
3WHG ...PNEXTCH                            [ CONSTRUCT INC NO   
3X36          LDCH  0  A1+1(3)             [X0= NEXT CHAR.  
3XGQ          BXGE  0  5,PNNUM             [J IF NOT NUMERIC
3Y2B          MPA   7  5                   [NO. X 10 + CHAR 
3YG2          BNZ   7  XERR                [J IF NUMBER TOO LARGE   
3Y^L          LDX   7  0                   [X7= ACCUMULATED NO. 
3^F=    PUPCH   
3^YW          BCHX  3  £
42DG          BCT   4  PNEXTCH             [J IF MORE CHARS.
42Y6          BZE   7  XERR                [ERROR IF ZERO   
43XB          STO   7  JINCLAST            [REMEMBER INCREMENT NO.  
44C2          MFREEW   CONBUFF,EMSIN
44LS ...NEWTAPE 
44WL          LDN   4  5                   [TYPE = 5 (MT)   
45B=          BUTTON   3,4                 [SEE IF ANY DECK ENGAGED 
46*G          BPZ   3  RENG                [J IF THERE IS ONE   
46T6    QMESS   
474Y ...      LDN   4  5
47#Q          OUTPACK  7,1,INCNUM          [INCR. NO. AS PARAMETER  
48#2          ENGMESS  GRENGINC,3,4        [ASK FOR TAPE TO BE ENGAGED  
4?PB          BPZ   3  RENG                [J IF MT ENGAGED 
4#92          CALL  4  REPLYCD             [ TEST REPLY 
4#NL          BRN      QMESS               [ NOT RECOGNISED - ASK FOR TAPE AGAIN
4*8=          BRN      X1RESTOREA          [ CANTDO - ASK INCREMENT ?   
4*MW    PNNUM   
4B7G          SBN   0  #20  
4BM6          BNZ   0  XERR                [ERROR IF NOT SPACE  
4C6Q          BZE   7  PUPCH               [J IF LEADING SPACE  
4CLB    XERR
4D62          MONOUT   GRNUMFORM           [ERROR MESSAGE IF :  
4DKL                                       [1. NO CHARS. IN MESSAGE 
4F5=                                       [2. CHAR. NOT NUMBER OR SPACE
4FJW                                       [3. SPACE CHAR. NOT A LEADING SPACE  
4G4G                                       [4. NUMBER TOO LARGE (I.E. OVERFLOW) 
4GJ6                                       [5. NUMBER IS ZERO   
4H3Q          MFREEW   CONBUFF,EMSIN
4HHB          BRN      X1RESTOREA          [ BACK TO ASK INREMENT   
4J32    RENG
4JGL          STO   3  CPPTR(2)            [LINK THIS ACT. WITH DECK ENGAGED
4K2=          DOWN  RESTOREG,1  
4KFW          UP
4K^G          BRN      XCLEANUP            [ERROR SO CLEANUP
4LF6    #   
4LYQ    #     ENTRY IS MADE TO VARIOUS POINTS IN BACKMAP IN ORDER TO CLEAN UP   
4MDB    #     THE FILESTORE. AFTER THIS IS COMPLETED A BRANCH IS MADE BACK  
4MY2    #     TO THE START OF RESTOREA  
4NCL    #   
4NX=    XCLEANUP
4PBW    #   
4PWG          CALL  4  UNLOAD             [  UNLOAD TAPE
4QB6 ...      BRN      NEWTAPE          [J TO START OF RESTOREA 
4S#L    #   
4SS=    #     SUBROUTINE TO UNLOAD  TAPE
4T?W    #   
4TRG    UNLOAD  
4W?6          LDX   2  FX2  
4WQQ          SBX   4  FX1  
4WRT ...#   
4WSY ...#     SET UP ACTIVITY TO UNLOAD TAPE
4WW3 ...#   
4WX6 ...      GETACT   ACTDOC,,1
4WY9 ...      LDX   3  CPPTR(2) 
4W^# ...      LDX   2  BPTR(2)              [ POINTS TO ACTDOC  
4X2C ...      STO   3  CPPTR(2) 
4X3G ...      LINKSET  2,REST5(1)           [ GIVE IT LINK TO RESTOREA,5
4X4K ...      FPUT     2                    [ AND SET IT GOING  
4X5N ...      ADX   4  FX1  
4X6R ...      EXIT  4  0                    [ AND BACK TO CALLING SEGMENT   
4X7W ...#   
4X8^ ...X5RESTOREA  
4X=B          LDN   0  9
4XQ2          DCA   ,STO,0,MODE            [SET "REWIND & DE-ALLOCATE" MODE 
4Y7B ...      LOCKC   2,£                [ LOCK THE ACTIVITY
4YJQ ...      GPERI   ,2
4^26 ...      COOR1 
4^CG ...      UNLOCK  2 
4^SW ...      SUICIDE                       [ TAPE SAFELY UNLOADED SO SUICIDE   
52== ...#   
52MQ    #   
537B    #   
53M2    #     ENTRY POINT FTO UNLOAD TAPE   
546L    X4RESTOREA  
54L=          CALL  4  UNLOAD   
555W          UP
55KG ...#     ******************************************************************
5656    #                                  SFRESTUSER3  
56JQ ...#                                  ***********  
574B    #     (LINK = X1 )  
57J2    #     SUBROUTINE TO SEARCH FOR FRESTUSER
583L    #   
58H=    SFRESTUSER3 
592W          HUNTMISB   3,FI,FRESTUSER    [
59GG          BNG   3  (GEOERR)            [BREAK IF NOT THERE  
5=26          EXIT  1  0                   [ OTHERWISE EXIT 
5=FQ    #   
5=^B    #   
5?F2 ...#   ********************************************************************
5?YL    #   
5#D=    #     HERE FOLLOWS THE CODE FOR PARTIAL RESTORE 
5#XW    #   
5*CG    X3RESTOREA  
5*GL ...#UNS AMTGR  
5*KQ ...(   
5*NW ...      BC ,BGENRES   
5*S2 ...)   
5*X6          FILECOUNT  3                 [ COUNT OF NUMBER OF FILES OPEN  
5BBQ ...      STO   3  AWORK2(2)           [ STORE  -VE COUNT IN AWORK2 
5BWB    #   
5CB2    #     IS A TAPE ALREADY LOADED ?
5CTL    #   
5D*=          CALL  1  SFRESTUSER3       [ FIND FRESTUSER   
5DSW          LDX   5  FRTSN(3)            [ TSN OF TAPE IF ANY 
5F#G          BZE   5  NOTAPE              [ JUMP IF NO TAPE
5FS6    #   
5G?Q    #     IS THE TAPE SUITABLE  
5GRB    #   
5H?2          MHUNTW   2,FILE,APROC 
5HQL          LDX   0  AMTS(2)             [ CONT OF NUMBER OF TAPES SUITACLE   
5J==    NEXTTSN 
5JPW ...      BXE   5  AMAG(2),RESTOREG2B   [ JUMP IF A TAPE LOADED WILL DO 
5K9G          ADN   2  INCMAGLEN             [ OTHERWISE TRY NEXT TAPE  
5KP6          BCT   0  NEXTTSN  
5L8Q    #   
5LNB    #     UNSUITABLE TAPE SO UNLOAD IT  
5M82    #   
5M*8 ...      STOZ     FRLST(3) 
5MGB ...      STOZ     FRTSN(3)          [ MARK AS UNLOADED 
5MML          CALL  4  UNLOAD              [ REWIND AND UNLOAD  
5N7=    #   
5NLW    #     ASK FOR TAPE TO BE LOADED 
5P6G    #   
5PL6    NOTAPE                             [
5PP= ...#      SEE IF TAPE IS LOADED BEFORE ASKING FOR IT   
5PSB ...      LDN   4  5                [ MT - TYPE 5   
5PXG ...      BUTTON  3,4         [ 
5Q2L ...      BPZ   3  RESTOREG2       [ JUMP IF ENGAGED
5Q5Q          MHUNTW   2,FILE,APROC 
5QKB          LDX   0  AMTS(2)             [ NO OF MTS  
5R52          SBN   0  1
5RJL          BNZ   0  TAPE1               [ JUMP IF MORE THAN ONE TAPE 
5S4=          OUTNULL                      [ NULL PARAMETER IF ONE TAPE 
5SHW          BRN      TAPE2
5T3G    TAPE1   
5T?# ...      LDX   1  FX1  
5TH6          LDN   0  ONEOF(1)            [ "ONE OF " OUTPUT IF SEVERAL TAPES  
5TTH ...      LDX   2  FX2  
5W7Y ...      LDN   1  ACOMMUNE2(2)        [
5WGB          MOVE  0  2
5X22          OUTPARN  7,ACOMMUNE2         [
5XFL    TAPE2   
5X^=          OUTTSNS                      [ GIVE LIST OF TSNS  
5Y94 ...      LDN   4  5                   [ DEVICE TYPE 5 (*MT)
63BL          ENGMESS   GRPRTAPEREQ,3,4 
63W=    #   
64*W    #   
64TG          BPZ   3  RESTOREG2           [ IF A TAPE HAS BEEN LOADED  
65*6    #     GO DOWN TO RESTOREG2  
65SQ          CALL  4  REPLYCD             [ OTHERWISE CHECK REPLY  
66#B          BRN      NOTAPE              [ NOT RECOGNISED - REPEAT  REQUEST   
66S2    #   
67?L    #     REPLY CANTDO TO REQUEST TO LOAD MT
67R=    #   
68=W    #     ASK DO YOU WISH TO ERASE %A?  
68QG    #   
69=6    REFUSED 
69PQ ...      DOWN    BMQUESTB,8
6=9B ...#     GO DOWM TO CHECK IF WE CAN ERASE THIS USER
6FHQ          SETREP   NOTUP               [
6G3B          UP
6GH2    RESTOREG2   
6GLX ...      LDX   2  FX2  
6GQS ...      STO   3  CPPTR(2)                [  STORE POINTER TO DEVICE LIST  
6GWP ...RESTOREG2B  
6H2L          DOWN     RESTOREG,2          [ TAPE LOADED - TRY RESTORE  
6H48 ...      BRN      RESTORED            [
6H5Q ...      CALL  1  SFRESTUSER3  
6H7# ...      STOZ     FRLST(3) 
6H8W ...      STOZ     FRTSN(3) 
6H=D ...#     SHOW NO USEABLE TAPE LOADED   
6H#2 ...      BRN      X3RESTOREA          [ TRY AGAIN  
6H*J ...RESTORED
6HC6 ...      SETREP   OK                  [ SET REPLY FOR BACKMAP  
6HDN ...      UP                           [ AND UP 
6HG=          MENDAREA 20,K99RESTOREA   
6H^W    #   
6JFG    #END
^^^^ ...714217430001
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1