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