22FL ... SEG BMQUEST,866,EDWARD MOON,BMAP 22^= SEGENTRY K1BMQUEST,Z1BMQUEST 23DW SEGENTRY K2BMQUEST,Z2BMQUEST 23YG SEGENTRY K3BMQUEST,Z3BMQUEST 24D6 SEGENTRY K4BMQUEST,PRDIRS 24XQ SEGENTRY K5BMQUEST,PRQUERY 25CB SEGENTRY K7BMQUEST,PRERASE 25X2 SEGENTRY K8BMQUEST,Z8BMQUEST 26BL SEGENTRY K9BMQUEST,MOUT [FORCE "RESTORE?" 26W= SEGENTRY K10BMQUEST,MOUTERR 27*W ...[ENTRIES PRQUERY,PRERASE & Z8BMQUEST ARE NOW 27TG ...[CONTAINED IN BMQUESTB 2CMG MESS +3 2D76 8HRESTORE? 2DLQ RELOADING +12,12HRELOADING 2F6B XNOTDUMP 16HUSER NOT DUMPED 2G5L XABANDONED 16HABANDONED : 2GK= USEFUL 8H USEFUL 2H4W XESSENTIAL 12H ESSENTIAL 2HJG NEEDRES +BMRESUNAV 2J46 PRMESS +BMPARTRES 2JHQ MDIRUNAV +BMDIRUNAV 2K3B #SKI EMSJRNL<1$1 2KH2 NULL +2,4H 2L2L SP #20 2LG= Y #71 2L^W N #56 2MFG XCOLON #12 2M^6 NHYPHEN #35 2NDQ TEN +10 2NYB THIRTEEN +13 2PD2 [ 2PXL STEPREWRITE 2QC= STEPREWRITE 2QWW EXIT 7 0 2RBG OUTPACK 2RW6 SBX 7 FX1 2S*Q OUTPACKX 2,5,6 2STB ADX 7 FX1 2T*2 EXIT 7 0 2TSL SUB4 2W#= HUNTMISB 2,FI,FRESUNAV 2WRW EXIT 1 0 2X?G SUB3 2XR6 HUNTMISB 2,FI,FRESTUSER 2Y=Q EXIT 1 0 2YQB SUB2 2^=2 HUNTMISB 3,FI,FRESTUSER 2^PL EXIT 1 0 329= [ 32NW [**************************************************** Z1BMQUEST 338G [ 33N6 [ ENTRY POINT TO ASK 'RESTORE?' AND ANALYSE REPLY 347Q [ 34MB [ RE-ENTER @ K9(MOUT) TO FORCE "RESTORE?" IF BREAK DURING PREVIOUS 3572 [ BACKMAP 35LL [ 366= Z1BMQUEST 36KW [ 375G SEGENTRY K90BMQUEST [FOR THE FSLOAD MACRO 37K6 BRN Z91BMQUEST [ NULLED BY FSLOAD COPY,SAME OR GR 384Q [ RE-INSTATED BY FSLOAD OFF 38JB LDX 7 G3DOL [ RESTORE FLAG LEFT BY LOADER 3942 BZE 7 Z92BMQUEST [ J IF GENERAL RESTORE SUPPRESSED 39HL BRN MOUT [ ELSE ASK THE QUESTION "RESTORE?" 3=3= Z91BMQUEST 3=GW SEGENTRY K91BMQUEST [ FOR FSRELOAD MACRO 3?2G NULL [ BRN K92BMQUEST IF FSRELOAD MACRO IS 3?G6 [ 3?^Q MOUT [K9BMQUEST ENTRY POINT 3#FB [ 3#^2 3*DL STO 1 AWORK1(2) [ NON-ZERO TO INDICATE 'RESTORE?' OUT 3*Y= #SKI EMSJRNL 3BCW DEMMESS BMQUERY 3BXG #SKI EMSJRNL<1$1 3CC6 DEMMESS MESS 3CWQ MHUNTW 3,CONBUFF,EMSIN [ HUNT BLOCK CONTAINING REPLY 3DBB LDX 2 3 3DW2 LDX 4 A1(3) 3F*L BZE 4 NOCH [ JUMP TO REPEAT QUESTION IF NULL 3FT= NCH LDCH 5 A1+1(3) 3G#W BXE 5 SP(1),NCH1 [ IGNORE SPACES 3GSG BXL 5 TEN(1),RESTNUM [ IF FIRST CHAR IS DECIMAL INTEGER 3H#6 BXE 5 XCOLON(1),PARTRES [ IF FIRST CHAR IS ':' 3HRQ FREECORE 2 3J?B BXU 5 N(1),MOUT [ TRY AGAIN IF NOT N(O) 3JR2 [ 3K=L SEGENTRY K92BMQUEST [ FOR FSRELOAD MACRO 3KQ= Z92BMQUEST 3L9W STOZ GINCTSN [ INDICATE NOT A GEN. RES. 3LPG NR 3M96 ACROSS BACKMAP,4 3MNQ NCH1 BCHX 3 £ 3N8B BCT 4 NCH [TRY NEXT CHAR 3NN2 NOCH FREECORE 2 3P7L BRN MOUT [ REPEAT QUESTION 3PM= [ 3Q6W [********************************************************************* 3QLG [ REPLY STARTS WITH A ':' SO WE ASSUME IT IS A STRING OF USENAMES 3R66 [ WHICH MUST BE ALPHA-NUMERIC,SPACE OR HYPHEN CHARS., STARTING WITH 3RKQ [ ALPHA CHAR., WITH NO REDUNDANT SPACES, DELIMITED BY COMMA(,)S, 3S5B [ INTRODUCED BY A ':' AND NOT MORE THAN 12 CHARS EACH LONG. IF NOT 3SK2 [ REPEAT THE QUESTION. 3T4L [ EACH VALID USERNAME IS PUT INTO THE FI/FRESTUSER BLOCK WITH INCR. 3TJ= [ NO. = -2 INDICATING REQUEST BY OPERATOR 3W3W [ 3WHG [ 3X36 PARTRES 3XGQ LDN 2 A1+1(3) [ ADDRESS OF FIRST CHAR 3Y2B MHUNTW 3,CONBUFF,EMSIN 3YG2 LDN 5 A1+1(3) 3Y^L SLC 5 2 3^F= ADX 5 A1(3) [ ADDRESS(IN CHARS) OF END OF BLOCK 3^YW CALL 1 SUB2 [ HUNT FRESTUSER BLOCK 42DG LDX 1 FX1 42Y6 SMO A1(3) 43CQ LDN 3 FRUSE(3) [ START ADDR. FOR CHARS. INTO FRESTUS 43XB NXTUSER 44C2 [ 44WL [******************************************************************* 45B= [ VALIDATE FIRST CHARACTER OF USERNAME 45TW [ 46*G BCHX 2 £ [ POINTER TO NEXT CHAR. IN REPLY 46T6 SLC 2 2 [ CONVERT ADDR. TO CHARS. 47#Q BXGE 2 5,MOUTERR [ UNEXPECTED END OF REPLY WITH ':' 47SB SRC 2 2 [ CONVERT BACK TO POINTER 48#2 LDCH 0 0(2) 48RL SBN 0 #41 49?= BNG 0 MOUTERR [ IF NOT ALPHA 49QW SBN 0 #73-#41 4==G BPZ 0 MOUTERR [ IF NOT ALPHA 4=Q6 ADN 0 #73 [ ELSE CHAR IS ALPHA SO WE 4?9Q DCH 0 0(3) [ TRANSFER IT TO FRESTUSER 4?PB LDN 6 1 [ INITIALISE CHAR. COUNT FOR THIS NAME 4#92 [ 4#NL [********************************************************************** 4*8= [ LOOP TO VALIDATE SUBSEQUENT CHARACTERS. 4*MW [ 4B7G NXCHAR 4BM6 BCHX 3 £ [ UPDATE POINTERS 4C6Q BCHX 2 £ 4CLB SLC 2 2 4D62 BXGE 2 5,XUSEND [ IF END OF REPLY 4DKL SRC 2 2 4F5= LDCH 0 0(2) [ PICK UP NEXT CHAR. 4FJW LDX 1 FX1 4G4G BXL 0 TEN(1),NCHAROK [ O.K. IF NUMERIC 4GJ6 BXE 0 SP(1),NCHAROK [ O.K. IF SPACE 4H3Q BXE 0 NHYPHEN(1),NCHAROK [ O.K. IF HYPHEN 4HHB SBN 0 #34 4J32 BZE 0 XUSEND [ END OF THIS NAME IF COMMA 4JGL SBN 0 #41-#34 4K2= BNG 0 MOUTERR [ ERROR IF NOT ALPHA, REPEAT QUESTION 4KFW SBN 0 #73-#41 4K^G BPZ 0 MOUTERR [ ERROR IF NOT ALPHA 4LF6 ADN 0 #73 4LYQ NCHAROK 4MDB DCH 0 0(3) [ CHAR IS O.K., TRANSFER IT 4MY2 ADN 6 1 [ UPDATE CHAR COUNT 4NCL BRN NXCHAR 4NX= [ 4PBW [********************************************************************* 4PWG [ END OF A USERNAME - CHECK LENGTH,ALTLENG FRESTUSER BLOCK 4QB6 [ AND SPACE FILL NEXT USERNAME FIELD. SET INCREMENT NO. = -2 4QTQ [ IF REPLY NOT YET EXHAUSTED, CHECK NEXT CHAR IS ':' 4R*B [ 4RT2 [ 4S#L XUSEND 4SS= STO 2 4 [ PRESERVE POINTER TO REPLY 4T?W MHUNTW 3,CONBUFF,EMSIN 4TRG SLC 3 2 4W?6 SBX 4 3 [ RELATIVEISE POINTER TO REPLY 4WQQ SBX 5 3 [ RELATIVEISE POINTER TO END 4X=B BXGE 6 THIRTEEN(1),MOUTERR [ CHECK LENGTH LESS THAN 13 CHARS 4XQ2 CALL 1 SUB2 4Y9L LDX 7 ALOGLEN(3) 4YP= ADN 7 8 4^8W ALTLENG 3,7,SUB3 [ LENGTHEN FRESTUSER 4^NG CALL 1 SUB2 5286 NGN 0 2 52MQ SMO A1(3) 537B STO 0 FRINC(3) [ SET INCR. NO. = -2 53M2 SMO A1(3) 546L STOZ FRFIL(3) [ ZEROISE FILE NO. 54L= LDN 0 8 555W ADS 0 A1(3) [ UPDATE RECORD HEADER 55KG ADS 0 FRCNT(3) [ UPDATE COUNT OF USED SPACE 5656 LDX 0 ACES 56JQ SMO A1(3) 574B STO 0 FRUSE(3) [ 57J2 SMO A1(3) [ 583L STO 0 FRUSE+1(3) [ SPACE FILL NEXT USERNAME FIELD 58H= SMO A1(3) [ 592W STO 0 FRUSE+2(3) [ 59GG MHUNTW 2,CONBUFF,EMSIN 5=26 SLC 2 2 [ DERELATIVEISE POINTER TO REPLY 5=FQ ADX 4 2 [ AND END OF REPLY 5=^B ADX 5 2 [ 5?F2 STO 4 2 [ 5?YL BCHX 2 £ 5#D= SLC 2 2 5#XW BXGE 2 5,NRPR [ IF AT END OF REPLY 5*CG SRC 2 2 [ ELSE 5*X6 LDCH 0 0(2) [ CHECK NEXT CHARACTER 5BBQ SBN 0 #12 5BWB BNZ 0 MOUTERR [ IF NOT A ':' 5CB2 SMO A1(3) 5CTL LDN 3 FRUSE(3) [UPDATE PTR TO NXT USER IN FRESTUSER 5D*= BRN NXTUSER 5DSW NRPR 5F#G MFREE CONBUFF,EMSIN [ TREAT AS REPLY 'NO' IF END 5FS6 BRN NR [ OF REPLY AND NO ERRORS FOUND 5G?Q [ 5GRB [********************************************************************* 5H?2 [ 5HQL [ ERROR ROUTINE REINITIALISES FRESTUSER AND DISCARDS REPLY 5J== [ 5JPW MOUTERR 5K9G VFREE CONBUFF,EMSIN 5KP6 CALL 1 SUB2 5L8Q STOZ A1(3) 5LNB STOZ FRCNT(3) 5M82 LDX 0 ACES 5MML STO 0 FRUSE(3) 5N7= STO 0 FRUSE+1(3) 5NLW STO 0 FRUSE+2(3) 5P6G STOZ FRINC(3) 5PL6 ALTLENGD 3,14,SUB3 5Q5Q LDX 2 FX2 5QKB BRN MOUT 5R52 [ 5RJL [*********************************************************************** 5S4= [ ROUTINE TO HANDLE INCREMENT NO. REPLIES 5SHW [ ALL CHARACTERS MUST BE NUMERIC 5T3G [ 5TH6 RESTNO 5W2Q LDCH 5 A1+1(3) 5WGB BXGE 5 TEN(1),NOCH 5X22 RESTNUM 5XFL BCHX 3 £ 5X^= BCT 4 RESTNO 5YDW RESTYES 5YYG ACROSS BACKMAP,3 [ TO DO A GENERAL RESTORE 5^D6 [ 5^XQ [*********************************************************** Z3BMQUEST 62CB [ 62X2 [ ENTRY POINT TO DEAL WITH UNAVAILABLE RESIDENCES 63BL [ ( FROM BMAPONE - 'USEFUL' FILES) 63W= [ 64*W Z3BMQUEST 64TG LDX 2 BSACHAPTR 65*6 POP Z3BMQUEST,2,FTABWAIT [ LOCKOUT ANY OTHER ACTS. WHICH 65SQ LDX 2 FX2 [ FIND UNAV. RESIDENCES 66#B NGN 0 1 66S2 STO 0 AWORK1(2) [ INDICATE 'USEFUL' FILE ENTRY 67?L BRN USEFULENT 67R= [ 68=W [********************************************************* Z2BMQUEST 68QG [ ENTRY POINT TO DEAL WITH UNAVAILABLE RESIDENCES 69=6 [ ('ESSENTIAL' FILES ENTRY FROM BACKMAP) 69PQ [ X4 CONTAINS RESIDENCE NO. AS FOR Z3BMQUEST ENTRY 6=9B [ 6=P2 Z2BMQUEST 6?8L VOP 2,FTABWAIT [CLEAR LOCKOUT SO DICT. & SER. SLAVE FINISH 6?N= STOZ AWORK1(2) [ INDICATE 'ESSENTIAL' FILE ENTRY 6#7W USEFULENT 6#MG CALL 1 SUB4 6*76 BPZ 2 NORESETUP [ IF FRESUNAV EXISTS ALREADY 6*LQ SETNCORE 7,2,FI,FRESUNAV [ ELSE SET ONE UP 6B6B STOZ A1(2) 6BL2 SMO FX2 6C5L STOZ AWORK3 [INITIALISE REL. PTR. DOWN FRESUNAV 6CK= CHAIN 2,BMISC+1 [ CHAIN IN MISCELLANEOUS CHAIN 6D4W CALL 1 SUB4 [ SO ALL SLAVES CAN FIND IT 6DJG STOZ 3 [ INIT. MODIFIER(PTR. TO RES. NO.) 6F46 BRN NOCHEX [ SKIP LENGTHENING IF JUST SET UP 6FHQ NORESETUP 6G3B LDX 0 ALOGLEN(2) 6GH2 SBX 0 A1(2) 6H2L SBN 0 2 6HG= BPZ 0 NOLENFR [ DONT LENGTHEN IF ROOM ENOUGH 6H^W LDX 7 ALOGLEN(2) 6JFG ADN 7 8 6J^6 ALTLENG 2,7,SUB4 [ ELSE LENGTHEN BY 8 WORDS 6KDQ CALL 1 SUB4 6KYB NOLENFR 6LD2 STOZ 3 [ INITIALISE MODIFIER 6LXL NXTNO 6MC= SMO FX2 6MWW STO 3 AWORK3 [ SAVE REL. PTR. TO THIS RES. NO. 6NBG SMO 3 6NW6 LDEX 0 FRESNO(2) [ PICK UP RES. NO. FROM FRESUNAV 6P*Q BXE 0 4,NOASK [ IS IT SAME AS ONE IN QUESTION 6PTB [ IF SO, DONT REPEAT QUESTION 6Q*2 ADN 3 1 [ UPDATE RELATIVE PTR. 6QSL SMO FX2 6R#= STO 3 AWORK3 [ SAVE REL.PTR. TO NEXT RES.NO. 6RRW BXL 3 A1(2),NXTNO [ IF NOT END OF BLOCK 6S?G NOCHEX 6SR6 LDN 0 1 6T=Q ADS 0 A1(2) [ UPDATE RECORD HEADER 6TQB SMO 3 [ AND 6W=2 STO 4 FRESNO(2) [ STORE THIS RESIDENCE NO. 6WPL [ 6X9= [*********************************************************************** 6XNW [ OUTPUT UNAVAILABLE RESIDENCE MESSAGES AND CHECK REPLY 6Y8G [ 6YN6 REPQUEST 6^7Q LDN 2 4 6^MB LDN 5 1 7272 LDN 6 JPDNUMA 72LL CALL 7 OUTPACK [ RESIDENCE NO. 736= LDX 0 AWORK1(2) 73KW BPZ 0 XESSMESS [ IF 'ESSENTIAL' 745G LDN 2 USEFUL(1) 74K6 LDN 5 2 754Q BRN USEMESS [ IF 'USEFUL' 75JB XESSMESS 7642 LDN 2 XESSENTIAL(1) 76HL LDN 5 3 773= USEMESS 77GW LDN 6 JPDVARCHAR 782G CALL 7 OUTPACK [ 'ESSENTIAL' OR 'USEFUL' 78G6 LDX 3 NEEDRES(1) 78^Q #SKI EMSJRNL 79FB DEMMEX 3 [ ASK FOR RESIDENCE 79^2 #SKI EMSJRNL<1$1 7=DL ( 7=Y= MONOUTX 3 [ 7?CW DEMMESS NULL [ ASK FOR RESIDENCE 7?XG ) 7#C6 MHUNTW 3,CONBUFF,EMSIN [ HUNT REPLY BLOCK 7#WQ LDX 2 3 7*BB LDX 6 A1(2) [ CHECK IF NULL REPLY 7*W2 BZE 6 REPFREE [ REPEAT QUESTION IF IT IS 7B*L NEXTCHAR 7BT= LDCH 5 A1+1(3) 7C#W BXE 5 SP(1),NEXTCHARUP [ IGNORE LEADING SPACES 7CSG BXE 5 N(1),RESUNAVAIL [ IF N(O) 7D#6 FREECORE 2 7DRQ BXE 5 Y(1),RELOAD [ IF Y(ES) 7F?B BRN REPFREE [ TO REPEAT QUESTION IF NEITHER 7FR2 NEXTCHARUP 7G=L BCHX 3 £ 7GQ= BRN NEXTCHAR 7H9W REPFREE 7HPG BRN REPQUEST [ TO REPEAT QUESTION 7J96 RELOAD 7JNQ EMSCONWT [ WAIT FOR ALL MESSAGES TO FINISH 7K8B LDX 1 FX1 7KN2 GEOSTOP RELOADING(1) [ TO ALLOW INCLUSION OF RESIDENCE 7L7L RESUNAVAIL 7LM= [ 7M6W [********************************************************************* 7MLG [ RESIDENCE CONFIRMED TO BE UNAVAILABLE. IF FILE IS ESSENTIAL WE 7N66 [ HAVE TO ASK FOR A GENERAL RESTORE - MEANS REINITIALISING 7NKQ [ EVERYTHING AND ASKING 'RESTORE?' AGAIN. 7P5B [ IF THE FILE IS 'USEFUL' WE DO PARTIAL RESTORES OF DIRECTORIES. 7PK2 [ 7Q4L LDX 2 FX2 7QJ= LDX 0 AWORK1(2) 7R3W BNG 0 WANTPR [ WANT TO DO P.R. IF 'USEFUL' 7RHG FILENUMB 7 7S36 XSTART 7SGQ LDX 0 AMAPDEPTH(2) [ CHECK IF DICT. OR SER. SLAVE EXTANT 7T2B BZE 0 NXTCLOSE [ CARRY ON IF THEY'VE FINISHED 7TG2 COOR3 BMAPACT [ ELSE WAIT FOR THEM 7T^L BRN XSTART 7WF= NXTCLOSE 7WYW CLOSEFRBS [ CLOSE ALL FILES OPEN 7XDG BCT 7 NXTCLOSE 7XY6 LDX 3 BFILE [ 7YCQ STOZ FCOMM(3) [ REINITIALISE MASTER'S FCB 7YXB STOZ FINFC(3) [ 7^C2 FREECORE BFILE+1 [ FREE FMAPP 7^WL FREECORE BFILE+1 [ FREE FINDEXF 82B= HUNTMISB 3,FI,FRESUNAV 82TW BNG 3 NOWFUSER 83*G FREECORE 3 [ FREE FRESUNAV IF IT EXISTS 83T6 NOWFUSER 84#Q HUNTMISB 3,FI,FUSER 84SB BNG 3 NOWFTAPE 85#2 FREECORE 3 [ FREE FUSER IF IT EXISTS 85RL NOWFTAPE 86?= HUNTMISB 3,FI,FTAPE 86QW BNG 3 MOUTERR 87=G FREECORE 3 [ FREE FTAPE IF IT EXISTS ELSE 87Q6 BRN MOUTERR [ REINITIALISE FRESTUSER AND 'RESTORE?' 889Q NOASK 88PB SMO 3 8992 LDX 0 FRESNO(2) 89NL BNG 0 XINFORMED [ B0 SET INDICATES MESSAGE ALREADY OUTPUT 8=8= SMO 3 [ FOR THIS RESIDENCE 8=MW LDN 2 FRESNO(2) [ PICK UP RESIDENCE NO. FOR OUTPACK 8?7G BRN NOWINFORM 8?M6 WANTPR 8#6Q CALL 1 SUB4 8#LB SMO FX2 8*62 LDX 3 AWORK3 8*KL SMO 3 8B5= LDN 2 FRESNO(2) [ PICK UP RESIDENCE NO. FOR OUTPACK 8BJW NOWINFORM 8C4G LDN 5 1 8CJ6 LDN 6 JPDNUMA 8D3Q CALL 7 OUTPACK 8DHB LDX 3 MDIRUNAV(1) [ OUTPUT RESTORES INIT. MESSAGE 8F32 MONOUTX 3 [ FOR THIS RESIDENCE 8FGL CALL 1 SUB4 8G2= SMO FX2 8GFW LDX 3 AWORK3 8G^G SMO 3 8HF6 LDN 2 FRESNO(2) 8HYQ LDX 0 GSIGN 8JDB ORS 0 0(2) [ INDICATE MESSAGE OUTPUT 8JY2 XINFORMED 8KCL LDX 2 BSACHAPTR 8KX= VOP 2,FTABWAIT [ CLEAR LOCKOUT 8LBW STEPAGAIN 8LWG LDX 0 EUSE1N(3) 8MB6 BNG 0 PRDIRS [ IF DIRECTORY 8MTQ UPPLUS 1 [ ELSE GO BACK TO BMAPONE 8N*B [ 8NT2 [************************************************************** PRDIRS 8P#L [ 8PS= [ ROUTINE TO INITIATE A PARTIAL RESTORE 8Q?W [ 8QRG [ 8R?6 PRDIRS 8RQQ STEPAGAIN 8S=B CALL 7 STEPREWRITE 8SQ2 MBS 3,BNPARTRES,BNTEMP [ MARK PARTIAL RESTORE INITIATED 8T9L LDX 4 EINCN(3) [ PICK UP INCR. NO. LAST DUMPED 8TP= BZE 4 NOTDUMP [ TO ABANDON RESTORE IF NOT DUMPED 8W8W #UNS AMTGR 8WNG ( 8X86 #UNS B7739 8XMQ ( 8Y7B [********************************************************* 8YM2 [ FIRST CHECK IF THERE IS AN ENTRY FOR THIS USER 8^6L [ ALREADY. IF SO JUST UPDATE IT ELSE MAKE NEW ENTRY. 8^L= [ 925W HUNTMISB 1,FI,FRESTUSER 92KG LDX 0 FRCNT(1) 9356 BZE 0 NOTALREADY [ J. IF NONE AT ALL 93JQ LDX 2 1 944B SBN 2 8 [ INITIALISE POINTER 94J2 ADX 1 A1(1) 953L ADN 1 A1 [ AND PTR. TO END OF BLOCK 95H= NXTNAME 962W ADN 2 8 [ UPDATE PTR. TO NEXT ENTRY 96GG BXGE 2 1,NOTALREADY [ J. IF USER NOT FOUND 9726 TESTNAMX 3,EUSE1N(3),FRUSE(2),NXTNAME [ J. IF NOT THIS ONE 97FQ LDX 0 FRINC(2) [ ENTRY ALREADY HERE SO SEE IF 97^B BPZ 0 TOUP [ ALREADY COMPLETE - IF SO 'UP' 98F2 STO 4 FRINC(2) [ ELSE FILL IN INCR. NO. 98YL LDX 0 EFILNUMN(3) 99D= STO 0 FRFIL(2) [ AND FILE NO. 99XW LDN 7 EUSE1N(3) [ TAKE SUPER'S NAME FROM DIRENT 9=CG JBC NOTSUDUSER,3,BNPSEUDO [ UNLESS PSEUDO USER 9=X6 SMO FX2 9?BQ LDN 7 ASUPUSER [ IN WHICH CASE FROM ACT BLOCK 9?WB NOTSUDUSER 9#B2 LDN 0 FRSUP(2) [ AND UPDATE SUPERIOR'S NAME 9#TL MOVE 7 3 9**= BRN TOUP [ RETURN 'UP' 9*SW NOTALREADY 9B#G ) 9BS6 [ 9C?Q [************************************************ 9CRB [ NOW CHECK IF THIS IS FOR AN OFFLINE DIRECTORY (I.E. A 9D?2 [ MULTI-TAPE RESTORE. IF SO, FOR THE FIRST ONE 9DQL [ OUTPUT THE RESTORES INITIATED MESSAGE. 9F== [ 9FPW LDEX 0 ECOPSN(3) [ CHECK IF FOR OFLINE DIR. 9G9G BNZ 0 WTFORLEN [ J. IF IT ISN'T 9GP6 HUNTMISB 1,FI,FRESTUSER 9H8Q LDCT 0 #200 [ ELSE CHECK IF THE 9HNB ANDX 0 FRNXT(1) [ MESSAGE ALREADY SENT. 9J82 BNZ 0 WTFORLEN [ J. IF WE HAVE ELSE 9JML LDCT 0 #200 9K7= ORS 0 FRNXT(1) [ SET BIT TO SHOW WE HAVE 9KLW MONOUT BMPROFF [ AND OUTPUT MESSAGE 9L6G ) 9LL6 WTFORLEN 9M5Q LDX 2 BSACHAPTR 9MKB POP WTFORLEN,2,FTABWAIT [ LOCKOUT FOR LENGTHENING FRESTUSER 9N52 CALL 1 SUB2 9NJL LDX 7 ALOGLEN(3) 9P4= ADN 7 8 9PHW ALTLENG 3,7,SUB3 [ MAKE ROOM FOR THIS ENTRY 9Q3G LDX 2 BSACHAPTR 9QH6 VOP 2,FTABWAIT [ CLEAR LOCKOUT 9R2Q STEPAGAIN 9RGB LDX 5 EFILNUMN(3) [ PICK UP FILE NO. 9S22 LDN 6 EUSE1N(3) [ POINTER TO USERNAME 9SFL CALL 1 SUB2 9S^= SMO A1(3) 9TDW LDN 7 FRUSE(3) 9TYG MOVE 6 3 [ STORE USERNAME 9WD6 SMO A1(3) 9WXQ STO 4 FRINC(3) [ INCREMENT NO. 9XCB SMO A1(3) 9XX2 STO 5 FRFIL(3) [ AND FILE NO. IN FRESTUSER 9YBL STEPAGAIN 9YW= LDN 4 ASUPUSER(2) [ TAKE SUPERIOR PROPER USERNAME FROM 9^*W JBS SUDUS,3,BNPSEUDO [ ASUPUSER IF THIS IS A PSEUDO 9^TG LDN 4 EUSE1N(3) [ ELSE FRON EUSE1 =2*6 SUDUS =2SQ CALL 1 SUB2 =3#B SMO A1(3) [ STORE SUPERIOR PROPER USERNAME IN =3S2 LDN 5 FRSUP(3) [ FRESTUSER FOR LATER USE IN MAPPING =4?L MOVE 4 3 [ RESTORED LIMB =4R= LDN 0 8 =5=W ADS 0 A1(3) [ UPDATE RECORD HEADER =5QG ADS 0 FRCNT(3) [ AND USED SPACE COUNT =6=6 #UNS B7739 =6PQ TOUP =79B UP =7P2 [ =88L [********************************************************************* =8N= [ IF USER TO BE RESTORED WAS NOT DUMPED, THE RESTORE =97W [ MUST BE ABANDONED, IF THIS IS ALLOWED, OTHERWISE WE RELOAD =9MG [ ==76 NOTDUMP ==LQ LDN 2 EUSE1N(3) [ PICK UP USERNAME =?6B LDN 5 3 =?L2 LDN 6 JPDUSERNAME =#5L CALL 7 OUTPACK =#K= LDN 2 XABANDONED(1) =*4W LDN 5 4 =*JG LDN 6 JPDVARCHAR =B46 CALL 7 OUTPACK =BHQ LDN 2 XNOTDUMP(1) =C3B LDN 5 4 =CH2 LDN 6 JPDVARCHAR =D2L CALL 7 OUTPACK [ OUTPUT ABANDONED =DG= LDX 3 PRMESS(1) [ MESSAGE =D^W MONOUTX 3 =FFG UPPLUS 1 [ =F^6 ...PRQUERY =GDQ ... GEOERR 1,K5BMQEST =GYB ...PRERASE =HD2 ... GEOERR 1,K7BMQEST =HXL ...Z8BMQUEST =JC= ... GEOERR 1,K8BMQEST ##J6 #END ^^^^ ...151207750001