14 22FL ... SEG BMAPDIR,864,EDWARD MOON,BMAP 12 22_= SEGENTRY K1BMAPDIR,Z1BMAPDIR 12 23?M ... SEGENTRY K2BMAPDIR,XBR 3 23L4 ... 11 23YG SEGENTRY K3BMAPDIR,UPJOBCT 12 24D6 SEGENTRY K4BMAPDIR,SETSAVEBIT 5 24XQ SLAVEACT 8 25CB #HAL +BSA+AUTOMAP,0 10 29S2 RESMESS +BMRESTUSER 10 2=?L PRMESS +BMPARTRES 11 2=R= STRINGABAND 16HABANDONED : 12 2?=W STRNOTDUMP 16HUSER NOT DUMPED 8 2#PQ NFIVE +5 9 2B8L NSYS 12HSYSTEM 4 2BN= [ 4 2C7W [ 4 2CMG [ 4 2D76 [ 19 2DLQ [ THUIS ROUTINE SETS UP A GMON ASET BLOCK FOR MESSAGE PARAMETERS 4 2F6B [ 12 2FL2 [ ON ENTRY X5=> SIZE OF BLOCK 10 2G5L [ X7 =>LINK 4 2GK= [ 5 2H4W OUTBLOCK 8 2HJG SBX 7 FX1 7 2J46 OUTBLOCK 5 7 2JHQ STEPAGAIN 8 2K3B ADX 7 FX1 7 2KH2 EXIT 7 0 4 2L2L [ 4 2LG= [ 17 2L_W [ THIS ROUTINE PACKS A PARAMETER INTO A GMOM ASET BLOCK 15 2MFG [ ON ENTRY X2 [ ADDRESS OF PARAMATER DATA 12 2M_6 [ X5 = LENGTH OF DATA 12 2NDQ [ X6 = LPDC CHARACTER 9 2NYB [ X7 = LINK 5 2PD2 OUTPACK 8 2PXL SBX 7 FX1 8 2QC= OUTPACKX 2,5,6 8 2QWW ADX 7 FX1 7 2RBG EXIT 7 0 4 2RW6 [ 5 2S*Q MONOUT 8 2STB SBX 7 FX1 7 2T*2 MONOUTX 3 8 2TSL ADX 7 FX1 7 2W#= EXIT 7 0 4 2WRW [ 18 2X?G [********************************************: MAPBLOCKS 10 2XR6 [ SUBROUTINE TO MAP A FILE 15 2Y=Q [ EXITS +0 IF FILE ON UNAVAILABLE RESIDENCE 11 2YQB [ +1 IF FILE IS EMPTY 10 2_=2 [ +2 IF ALL O. K. 4 2_PL [ 6 329= MAPBLOCKS 8 32NW SBX 7 FX1 10 338G STO 7 ACOMMUNE2(2) 10 33N6 BLOCKMAP MAPLB1,MAPLB2 10 347Q LDX 7 ACOMMUNE2(2) 9 34MB BRN MAPXIT 5 3572 MAPLB1 16 35LL SBN 7 1 [ IF UNAVAILABLE 5 366= MAPLB2 15 36KW SBN 7 1 [ IF EMPTY 8 36TN ... LDX 2 FX2 5 375G MAPXIT 7 37K6 ADN 7 2 8 384Q ADX 7 FX1 16 38JB EXIT 7 0 [IF NORMAL EXIT 4 3942 [ 19 39HL [************************************************** SERCHFENTRY 18 3=3= [ ROUTINE TO BINARY CHOP A FUSER BLOCK TO FIND A REQUIRED 5 3=GW [ ENTRY 13 3?G6 [ X5 => KEY OF ENTRY THAT WE REQUIRE 4 3?_Q [ 6 3#FB SERCHFENTRY 10 3#_2 HUNTMISB 3,FI,FUSER 20 3CWQ STO 4 ACOMMUNE2(2) [WE WISH TO SAVE THIS (BMAPONE) 7 3DW2 LDX 4 5 16 3F*L LDX 0 A1(3) [USED DATA 'V' 7 3FT= LDX 6 3 7 3G#W ADX 6 0 21 3GSG ADN 6 A1+1 [DISTANCE MARKER FOR LIMIT OF SEARCH 8 3H#6 LDN 5 A1+1 20 3HRQ ADX 5 3 [HOME MARKER FOR START OF SEARCH 5 3J?B NEXTCHOP 16 3JR2 SRL 0 1 [DIVIDE V BY 2 15 3PM= [******************************************** 19 3Q6W [ THIS SECTION ROUNDS DOWN THE NEW 'V' FOR A FUSER BLOCK TO BE 19 3QLG [ DIVISIBLE BY FIVE,THUS POINTING IT AT WORD 0 OF A FUSER ENTRY 4 3R66 [ 7 3S5B STO 0 2 9 3SK2 DVS 1 NFIVE(1) 7 3T4L SBX 0 1 8 3TJ= LDX 1 FX1 18 3WHG STO 0 3 [PUT'V' INTO A MODIFIER 7 3_YW SMO 5 8 42DG LDX 2 3(3) 19 43CQ BXE 2 4,WEHAVEIT [IF THIS IS THE ENTRY WE WANT 10 43XB BNZ 3 NOCHOPAGAIN 14 44C2 TRACEIF K6BMAPONE,99,299,4,DIRNDICT 7 44WL LDN 2 0 9 45B= BRN WAYOUT 6 45TW NOCHOPAGAIN 9 46*G BXL 2 4,MOREBIG 7 46T6 STO 5 6 18 47#Q ADX 6 0 [NEW'DISTANCE' = 0D+V 16 47SB BRN NEXTCHOP [TO CHOP AGAIN 5 48#2 MOREBIG 17 48RL ADX 5 0 [NEW 'HOME' = OH +V 7 49?= LDX 0 6 7 49QW SBX 0 5 16 4==G BRN NEXTCHOP [TO CHOP AGAIN 5 4=Q6 WEHAVEIT 4 4?9Q [ 18 4?PB [**********************************************:************ 10 4#92 [ WE HAVE CORRECT KEY, BUT 15 4#NL [ WE MUST NOW LOCATE THE CORRECT USERNAME AS 12 4*8= [ KEYS ARE NOT NECESSARILY UNIQUE. 4 4*MW [ 19 4B7G ADX 3 5 [POINTER TO ENTRY IN BLOCK 8 4C6Q LDX 2 FX2 5 4CLB TRYBACK 7 4D62 SBN 3 5 8 4DKL LDX 0 3(3) 9 4F5= BXE 0 4,TRYBACK 7 4FJW ADN 3 5 5 4G4G NEXTSLOT 8 4GJ6 LDX 0 3(3) 9 4H3Q BXU 0 4,NOTFND 7 4HHB LDN 5 2 8 4J32 STOZ 1 5 4JGL NEXTWORD 8 4K2= LDX 0 0(3) 10 4KFW SMO ACOMMUNE1(2) 9 4K_G TXU 0 EUSE1N(1) 9 4LF6 BCS NOTHIS 7 4LYQ ADN 3 1 7 4MDB ADN 1 1 7 4MY2 SBN 5 1 9 4NCL BPZ 5 NEXTWORD 7 4NX= SBN 3 3 9 4PBW BRN NOWOUT 5 4PWG NOTHIS 7 4QB6 ADN 5 3 7 4QTQ ADS 5 3 9 4R*B BRN NEXTSLOT 5 4RT2 NOTFND 4 4S#L [ 16 4SS= [*************************************************** 11 4T?W [ EXIT +0 IF ENTRY NOT FOUND 4 4TRG [ 7 4W?6 STOZ 2 9 4WQQ BRN WAYOUT 5 4X=B NOWOUT 4 4XQ2 [ 19 4Y9L [************************************************************* 10 4YP= [ EXIT +1 IF ENTRY FOUND 4 4_8W [ 7 4_NG LDN 2 1 5 5286 WAYOUT 8 53M2 SMO FX2 9 546L LDX 4 ACOMMUNE2 7 54L= ADX 7 2 7 555W EXIT 7 0 4 55KG [ 18 5656 [************************************************* STEPAGAIN 4 56JQ [ 6 574B STEPAGAIN 8 57J2 SBX 7 FX1 7 583L STEPAGAIN 8 58H= ADX 7 FX1 7 592W EXIT 7 0 4 59GG [ 19 5=26 [************************************************* STEPREWRITE 4 5=FQ [ 6 5=_B STEPREWRITE 8 5?F2 STEPREWRITE 7 5?YL EXIT 7 0 4 5#D= [ 4 5#XW [ 17 5*CG [************************************************* SUB1 15 5*X6 [ SUBROUTINE TO HUNT FTAB BLOCK (FOR ALTLENG) 4 5BBQ [ 4 5BWB SUB1 10 5CB2 MHUNTW 2,FILE,FTAB 7 5CTL EXIT 1 0 4 5D*= [ 19 5DSW [************************************************ PUTINFLIST 12 5F#G [ SET 'FLIST ENTRY REQUIRED' BIT 4 5FS6 [ 6 5G?Q PUTINFLIST 10 5GRB BS 2,AW2PUTINFL 7 5H?2 EXIT 7 0 4 5HQL [ 19 5J== [***************************************************** SFUSER 14 5JPW [ ROUTINE TO HUNT FUSER BLOCK (FOR ALTLENG) 4 5K9G [ 5 5KP6 SFUSER 10 5L8Q CALL 7 TOHUNTFUSER 7 5LNB LDX 2 3 7 5M82 EXIT 1 0 4 5MML [ 19 5N7= [************************************************** TOHUNTFUSER 13 5NLW [ ROUTINE TO HUNT FUSER BLOCK (GENERAL) 4 5P6G [ 6 5PL6 TOHUNTFUSER 10 5Q5Q HUNTMISB 3,FI,FUSER 7 5QKB EXIT 7 0 4 5R52 [ 18 5RJL [*********************************************** TOHUNTFLIST 4 5S4= [ 6 5SHW TOHUNTFLIST 10 5T3G HUNTMISB 3,FI,FLIST 7 5TH6 EXIT 7 0 4 5W2Q [ 4 5WGB [ 21 5WJ# ...[**************************************************************TOHUNTFRE 4 5WL= ...[ 6 5WN8 ...TOHUNTFREST 11 5WQ6 ... HUNTMISB 1,FI,FRESTUSER 7 5WS4 ... EXIT 7 0 4 5WW2 ...[ 4 5WXY ...[ 21 5X22 [*********************************************************************** 19 5XFL [ ENTRY (ACROSS) FROM BMAPONE TO PROCESS ENTRY FOR A DIRECTORY 4 5X_= [ 2 5YDW 6 5YYG Z1BMAPDIR 9 5_D6 CALL 7 STEPAGAIN 15 5_XQ TRACEIF K6BMAPONE,99,299,EUSE1N(3),DIRENT 12 62CB JBCC NOTPROC,3,BNINFPROC 10 62X2 CALL 7 STEPREWRITE 5 63BL NOTPROC 12 63W= JBCC NOALINC,3,BNALLINCS 10 64*W CALL 7 STEPREWRITE 5 64TG NOALINC 15 64TR ... JMBACC NOBITS,3,BNPURE,BNWORK,BNVIRGINDA 10 64W4 ... CALL 7 STEPREWRITE 5 64W* ...NOBITS 4 64WN ...[ 16 64XW ...[*************************************************** 16 64_4 ...[ A DIRECTORY SHOULDNT BE 'FROZEN', BUT, IF IT IS 12 652= ...[ WE JUST CLEAR THE FREEZECOUNTS. 4 653D ...[ 11 654L ... LDX 0 EAUTOCOUNTN(3) 11 655S ... ADX 0 ESAVECOUNTN(3) 16 6572 ... BZE 0 NOTFROZ [ IF NOT 'FROZEN' 13 6588 ... STOZ EAUTOCOUNTN(3) [ ELSE 16 659B ... STOZ ESAVECOUNTN(3) [ ZEROISE BOTH. 10 65=J ... CALL 7 STEPREWRITE 5 65?Q ...NOTFROZ 6 65?S ...#UNS AMTGR 4 65?W ...( 4 65?Y ...[ 15 65#2 ...[*********************************************** 12 65#4 ...[ NOW CHECK FOR OFFLINE DIRECTORIES 4 65#6 ...[ 17 65#8 ... JBS NOTOFF,2,AW2ONLINE [ J. IF NOT OFFLINE 4 65#= ...[ 17 65## ...[****************************************************** 11 65#B ...[ DIRECTORY OFFLINE - WANT TO 12 65#D ...[ INITIATE A PARTIAL RESTORE OF IT 4 65#G ...[ 17 65#J ... DOWN BMQUEST,4 [ TO INITIATE RESTORE 17 65#L ... BRN PARTREPEAT [ IF INITIATED O.K. 19 65#N ... BRN NOTPRUSFAIL [ IF FAILED BECAUSE NOT DUMPED 5 65#Q ...NOTOFF 4 65#S ...) 4 65*6 [ 19 65SQ [************************************************************ 17 66#B [ NOW CHECK IF A RESTORE NEEDS TO BE REINITIATED FOR 15 66S2 [ THIS DIRECTORY,IF WE JUST NEED TO TIDY UP A 17 67?L [ PREVIOUSLY RESTORED DIRECTORY OR IF ALL IS 'NORMAL' 17 67R= [ IF MAPPING A RESTORED LIMB, SET PARTIALLY RESTORED 15 68=W [ BIT TO SHOW THAT DIRECTORY HAS BEEN RESTORED. 4 68QG [ 13 69=6 JBC NOPARTRES,2,AW2PARTRES 10 69PQ BS 3,BNPARTRES 10 6=9B CALL 7 STEPREWRITE 9 6=P2 BRN PRCLEAR 6 6?8L NOPARTRES 4 6?N= [ 18 6#7W [********************************************************** 16 6#MG [ FAILED IN PREVIOUS RESTORE IF 'BFPARTRES' SET IN 8 6*76 [ :MASTER'S FCB. 4 6*LQ [ 8 6B6B LDX 1 BFILE 12 6BL2 JBC PRCLEAR,1,BFPARTRES 4 6C5L [ 17 6CK= [******************************************************* 17 6D4W [ PREVIOUS RESTORE FAILED AFTER FREEING BACKING STORE. 17 6DJG [ IF 'PARTRES' AND 'TEMP' BITS SET THIS DIRECTORY WAS 17 6F46 [ BEING RESTORED SO WE NEED TO REINITIATE THE RESTORE. 4 6FHQ [ 14 6G3B JMBAS PRREINIT,3,BNPARTRES,BNTEMP 4 6GH2 [ 18 6H2L [******************************************************** 17 6HG= [ IF 'PARTRES' AND 'TEMP' ARE CLEAR, THIS DIRECTORY IS 18 6H_W [ 'NORMAL' ELSE J. TO GET A FLIST ENTRY MADE AS DIR. WILL 8 6JFG [ NEED TIDYING UP. 4 6J_6 [ 13 6KDQ JMBAC NOFLAD,3,BNPARTRES,BNTEMP 9 6KYB BRN PRCLEAR 5 6LD2 PRREINIT 4 6LXL [ 17 6MC= [******************************************************* 17 6MWW [ RESTORE NEEDS TO BE REINITIATED - CHECK IF 'RESTORES 18 6NBG [ REINITIATED' MESSAGE HAS ALREADY BEEN OUTPUT (FRNXT < 0) 4 6NW6 [ 10 6P*Q ... CALL 7 TOHUNTFREST 9 6PTB LDX 0 FRNXT(1) 9 6Q*2 BNG 0 MOUTDONE 6 6QBY ...#UNS AMTGR 4 6QDW ...( 8 6QGS ... LDX 0 GSIGN 9 6QJQ ... ORS 0 FRNXT(1) 4 6QLN ...) 6 6QNL ...#UNS AMTGR 4 6QQJ ...#SKI 9 6QSL NGS 1 FRNXT(1) 9 6R#= MONOUT BMPRAGAIN 5 6RRW MOUTDONE 4 6S?G [ 18 6SR6 [******************************************************** 18 6T=Q [ GO DOWN TO BMQUEST TO REINITIATE THE RESTORE. IF IT COMES 16 6TQB [ 'UP' A FRESTUSER ENTRY HAS BEEN MADE. IF 'UP +1' 13 6W=2 [ RESTORE ABANDONED - USER NOT DUMPED 4 6WPL [ 9 6X9= DOWN BMQUEST,4 15 6XNW NGN 2 1 [ IF 'UP' 18 6Y8G SBN 2 1 [IF 'UP+1' : STILL +VE 7 6YN6 STO 2 5 9 6_7Q CALL 7 STEPAGAIN 18 6_MB BNG 5 PARTREPEAT [ J. IF RESTORE INITIATED 18 7272 BRN TEMPDIR [ ELSE TREAT AS TEMPORARY 17 72LL PRCLEAR [ TO GET IT ERASED 7 736= TOPFCB2 1 12 73KW JBC NOFLAD,1,BFPARTRES 10 745G BS 2,AW2PARTRES 5 74K6 NOFLAD 18 754Q JBS TEMPDIR,3,BNTEMP [IF TEMPORARY DIRECTORY 6 75JB PARTREPEAT 6 75N? ...#UNS AMTGR 4 75S8 ...#SKI 4 75Y5 ...( 4 7642 [ 18 76HL [*********************************************************** 15 773= [ IF DIRECTORY IS OFFLINE (SHOULDN'T HAPPEN) 8 77GW [ GET IT ERASED 4 782G [ 18 78G6 JBC SERDIR,2,AW2ONLINE [J IF OFFLINE DIRECTORY 4 78PY ...) 4 78_Q [ 19 79FB [************************************************************* 15 79_2 [ NEXT MARK FUSER ENTRY 'FOUND'. IF IT DOESN'T 16 7=DL [ EXIST J. TO INSERT NEW ONE AND CREATE SKELETON 16 7=Y= [ DICTIONARY ENTRY. IF IT IS ALREADY MARKED FOUND 16 7?CW [ THER IS AN INCONSISTENCY - IF MAPPING A RESTORED 17 7?XG [ LIMB IT'S THE RESTORED ONE WHICH IS WRONG SO GET IT 14 7#C6 [ ERASEE, ELSE J. TO DO P. R. OF THIS USER 4 7#WQ [ 9 7*6J ... CALL 7 STEPAGAIN 9 7*BB LDX 5 EUSE1N(3) 9 7*W2 ADX 5 EUSE2N(3) 17 7B*L ADX 5 EUSE3N(3) [KEY FOR FUSER SEARCH 10 7BT= STO 3 ACOMMUNE1(2) 13 7C#W TRACEIF K6BMAPONE,99,299,5,FUSKEY 10 7D#6 CALL 7 SERCHFENTRY 21 7DRQ BRN NOTFOUND [EXIT FROM FUSER SEARCH IF NO ENTRY 5 7F?B NEWENT 4 7FR2 [ 16 7G=L [*************************************************** 15 7GQ= [ ENTRY LOCATED - NOW CHECK IF MARKED ALREADY 4 7H9W [ 8 7HPG LDCT 0 #400 8 7J96 ANDX 0 4(3) 17 7JNQ BZE 0 NFUSENT [ J. IF NOT MARKED 8 7K8B LDX 2 FX2 4 7KN2 [ 18 7L7L [********************************************************* 17 7LM= [ ENTRY MARKED ALREADY - IF MAPPING RESTORED LIMB GET 16 7M6W [ RESTORED USER ERASED ELSE INITIATE PART. RES. OF 9 7MLG [ CURRENT DIRECTORY. 4 7N66 [ 12 7NKQ JBS SETERASE,2,AW2PARTRES 21 7P5B BRN XFILEBENT [ REPEATED USERNAME - TREAT AS BENT 5 7PK2 SETERASE 10 7Q4L CALL 7 PUTINFLIST 9 7QJ= CALL 7 STEPAGAIN 17 7R3W BRN NOTPRUSFAIL [ J. TO GET IT ERASED 5 7RHG NFUSENT 4 7S36 [ 18 7SGQ [********************************************************* 17 7T2B [ NOT ALREADY MARKED - MARK IT 'FOUND' THEN CHECK IF 15 7TG2 [ USER IS 'FROZEN'. IF SO MARK FUSER ENTRY FOR 12 7T_L [ LATER CHECKING WITH DICTIONARY. 4 7WF= [ 8 7WYW LDCT 0 #400 20 7XDG ORS 0 4(3) [SET USER FOUND IN FUSER ENTRY 10 7XY6 HUNTMISB 2,FI,FUSER 7 7YCQ SBX 3 2 21 7YXB STO 3 6 [REL POS OF NAME IN FUSER FOR TAPES 9 7_C2 CALL 7 STEPAGAIN 17 7_WL JBC NOFROZUS,3,BNUSERFREZ [ J. IF NOT FROZENZ 10 82B= CALL 7 TOHUNTFUSER 7 82TW ADX 3 6 17 83*G LDCT 0 #100 [ ELSE MARK AS FROZEN 16 83T6 ORS 0 4(3) [ IN FUSER ENTRY 9 84#Q CALL 7 STEPAGAIN 5 84SB NOFROZUS 18 85#2 JBCC MAP,3,BNERASE [ CLEAR ERASE BIT IF SET 12 85RL CALL 7 STEPREWRITE [ 4 86?= MAP 7 86QW #UNS FPARTRES 4 87=G ( 4 87Q6 [ 18 889Q [*********************************************************** 18 88PB [ BEFORE MAPPING THE ENTRY WE MUST CHECK IF THE DIRECTORY 16 8992 [ IS TO BE RESTORED. IF IT IS IT WILL BE OMITTED 15 89NL [ FROM THIS SEARCH SO IT MUST NOT BE MAPPED. 4 8=8= [ 10 8=MW ... CALL 7 TOHUNTFREST 17 8?7G LDX 0 FRCNT(1) [ NO P. R.'S TO DO IF 16 8?M6 BZE 0 NOPART [ FRESTUSER EMPTY 7 8#6Q LDX 2 1 7 8#LB SBN 2 8 8 8*62 ADX 1 A1(1) 8 8*KL ADN 1 A1 4 8B5= [ 18 8BJW [*********************************************************** 18 8C4G [ SEE IF THIS USER IS IN FRESTUSER BLOCK. IF NOT IT'S NOT 16 8CJ6 [ BEING RESTORED. IF IT IS CHECK IF ENTRY IS FOR 17 8D3Q [ 'FILEBENT' TYPE CORRUPTION (FRFIL NOT ZERO - CONTAINS 17 8DHB [ REL. BLOCK NO. THOUGHT CORRUPT).IF SO MAP ENTRY AS 17 8F32 [ USUAL AND INCLUDE IN SEARCH TO GET SECOND ATTEMPT. 4 8FGL [ 5 8G2= NEXTUSER 7 8GFW ADN 2 8 9 8G_G BXGE 2 1,NOPART 14 8HF6 TESTNAMX 3,EUSE1N(3),FRUSE(2),NEXTUSER 4 8HYQ [ 18 8JDB [******************************************************** 17 8JY2 [ ENTRY FOUND - IF FULL ENTRY ALREADY (FRINC +VE.) JUST 8 8KCL [ OMIT FROM SEARCH. 4 8KX= [ 9 8LBW LDX 0 FRINC(2) 10 8LWG BPZ 0 PARTRESUSER 4 8MB6 [ 16 8MTQ [************************************************** 14 8N*B [ INCOMPLETE ENTRY - CHECK IF 'FILEBENT' 4 8NT2 [ 9 8P#L LDX 0 FRFIL(2) 9 8PS= BZE 0 NOTBENT 8 8Q?W ORX 0 GSIGN 9 8QRG STO 0 FRFIL(2) 16 8R?6 BRN NOPART [ J. IF FILEBENT 5 8RQQ NOTBENT 4 8S=B [ 18 8SQ2 [********************************************************* 17 8T9L [ INCOMPLETE ENTRY - NOT 'FILEBENT' TYPE. SET 'PARTRES' 16 8TP= [ AND 'TEMP' TO SHOW RESTORE INITIATED AND FILL IN 15 8W8W [ FRESTUSER ENTRY. IF USER NOT DUMPED JUMP TO 9 8WNG [ ABANDON THE RESTORE. 4 8X86 [ 12 8XMQ MBS 3,BNPARTRES,BNTEMP 9 8Y7B LDX 0 EINCN(3) 15 8YM2 STO 0 FRINC(2) [ INCR. NO. 17 8_6L BZE 0 USNODUMP [ J. IF NOT DUMPED 10 8_L= LDX 0 EFILNUMN(3) 15 925W STO 0 FRFIL(2) [ FILE NO. 17 92KG LDN 7 EUSE1N(3) [ USERNAME OF THIS 18 9356 JBC NOTSUDUSR,3,BNPSEUDO [ USER IF A PROPER USER 14 93JQ SMO FX2 [ ELSE 19 944B LDN 7 ASUPUSER [ SUPERIOR PROPER USERNAME 6 94J2 NOTSUDUSR 9 953L LDN 0 FRSUP(2) 7 95H= MOVE 7 3 10 962W CALL 7 STEPREWRITE 4 96GG [ 16 9726 [************************************************ 17 97FQ [ IF THE USER TO BE RESTORED IS :SYSTEM WE MUST STILL 17 97_B [ MAP INCINDEX AND SERIAL AS THEY ARE BEING RETAINED. 17 98F2 [ THIS IS DONE FROM THEIR FCB'S SINCE THEY ARE OPEN TO 19 98YL [ THIS ACTIVITY (MUST BE MASTER ACT. IF LOOKING AT ENTRY FOR 14 99D= [ :SYSTEM) AT DEPTHS -1 AND -3 RESPECTIVELY 4 99XW [ 8 9=CG LDX 1 FX1 15 9=X6 TESTNAMX 3,NSYS(1),EUSE1N(3),PARTRESUSER 7 9?BQ NGN 6 1 5 9?WB NEXTMAP 8 9#B2 SFCB 6,3 12 9#TL LDX 5 FBLMOD(3) [ 19 9**= SBN 5 FCBLEN-2 [ GET PSEUDO POINTERS TO FCB 17 9*SW LDX 4 5 [ SO IT LOOKS LIKE A 16 9B#G SBN 4 2 [ BLOCKS RECORD 9 9BS6 ADN 3 BSPRE-1 15 9C?Q CALL 7 MAPBLOCKS [ MAP BLOCKS 21 9CRB BRN XBR [ ALREADY CHECKED FOR UNAVAIL. RES. 17 9D?2 BRN MPT [ EMPTY - UNLIKELY ! 4 9DQL MPT 7 9F== ADN 6 1 17 9FPW BNZ 6 PARTRESUSER [ J. IF MAPPED BOTH 19 9G9G NGN 6 3 [ ELSE RESET DEPTH FOR NEXT 16 9GP6 BRN NEXTMAP [ AND MAP THAT 5 9H8Q USNODUMP 4 9HNB [ 19 9J82 [*************************************************** USNODUMP 18 9JML [ USER NOT DUMPED - ZERO ALREADY PUT IN FRINC TO 'DELETE' 16 9K7= [ ENTRY. NOW REDUCE USED SPACE COUNT BY 8. OUTPUT 16 9KLW [ 'ABANDONED' MESSAGE TO OPS. AND J. TO OMIT DIR. 7 9L6G [ FROM SEARCH 4 9LL6 [ 10 9M5Q ... CALL 7 TOHUNTFREST 7 9MKB LDN 0 8 9 9N52 SBS 0 FRCNT(1) 9 9NJL LDN 2 EUSE1N(3) 7 9P4= LDN 5 3 10 9PHW LDN 6 JPDUSERNAME 15 9Q3G CALL 7 OUTPACK [ USERNAME 11 9QH6 LDN 2 STRINGABAND(1) 7 9R2Q LDN 5 4 10 9RGB LDN 6 JPDVARCHAR 9 9S22 CALL 7 OUTPACK 10 9SFL LDN 2 STRNOTDUMP(1) 7 9S_= LDN 5 4 10 9TDW LDN 6 JPDVARCHAR 9 9TYG CALL 7 OUTPACK 9 9WD6 LDX 3 PRMESS(1) 9 9WXQ CALL 7 MONOUT 9 9XCB CALL 7 STEPAGAIN 10 9XX2 CALL 7 PUTINFLIST 17 9YBL BRN NOTPRUSFAIL [ J. TO GET IT ERASED 6 9YW= PARTRESUSER 4 9_*W [ 19 9_TG [************************************************* PARTRESUSER 18 =2*6 [ USER BEING RESTORED - MAKE FLIST ENTRY SO BMAPTWO WILL 17 =2SQ [ CHECK IF LIMB WAS JOINED UP O.K. THEN J. TO OMIT DIR. 4 =3#B [ 9 =3S2 CALL 7 STEPAGAIN 10 =4?L BS 2,AW2DIRBELOW 10 =4R= CALL 7 PUTINFLIST 9 =5=W BRN SKIPALL 5 =5QG NOPART 4 =6=6 [ 17 =6PQ [************************************************ NOPART 17 =79B [ IF MAPPING RESTORED LIMB - SEND RESTORED 9 =7P2 [ MESSAGE TO JOURNAL. 4 =88L [ 8 =8N= LDX 2 FX2 13 =97W JBC NORESMESS,2,AW2PARTRES 6 =9*4 ...#UNS AMTGR 19 =9G= ... BWNZ GINCTSN,NORESMESS [ NO MESS. IF MULTI-TAPE G.R. 9 =9MG LDN 2 EUSE1N(3) 7 ==76 LDN 5 3 10 ==LQ LDN 6 JPDUSERNAME 9 =?6B CALL 7 OUTPACK 10 =?L2 LDX 3 RESMESS(1) 7 =#5L MONOUTX 3 6 =#K= NORESMESS 4 =*4W ) 4 =*JG [ 16 =B46 [*************************************************** 17 =BHQ [ REMEMBER (IN AWORK2) THAT INFERIOR DIRECTORY FOUND 4 =C3B [ 17 =CH2 MBS 2,AW2DIRBELOW,AW2DIR [ DIRECTORY MARKER 15 =D2L TRACEIF K6BMAPONE,99,299,AWORK2(2),MAPDIR 6 =DG= MAPTERMINAL 4 =D_W [ 16 =FFG [************************************************** 11 =F_6 [ NOW 'MAP' THE BLOCKS RECORD 4 =GDQ [ 17 =GYB QSTEPC ,XBACKREAD [ TO BLOCKS RECORD 19 =HD2 BRN NOBACKREAD [ IF NO BACKREAD NECESSARY 14 =HXL XBACKREAD [ ELSE 17 =JC= DOWN BMCNTRL,2 [ TO READ NEXT BLOCK 17 =JWW BRN MAPTERMINAL [ 'UP' IF O.K. 21 =KBG BRN XRECHEAD [ 'UP+1' IF CORRUPT REC.HEADDR. 19 =KW6 STOZ 3 [ 'UP+2' IF END OF FILE 10 =L*Q BRN NOBACKREAD 5 =LTB XRECHEAD 18 =M*2 ACROSS BMAPONE,13 [ TO INITIATE PART. RES. 6 =MSL NOBACKREAD 9 =N#= BZE 3 XFILEBENT 9 =NRW LDEX 5 FRH(3) 15 =P?G CALL 7 MAPBLOCKS [ MAP BLOCKS 15 =PR6 BRN NOLF [ UNAVAILABLE 17 =PTP ... BRN XCHEKPRES [EMPTY DIRECTORY 16 =PY# ... BRN SETFTAB [NORMAL CASE 4 =Q2X ...[ 21 =Q5G ...[******************************************************************** 20 =Q85 ...[FOR EMPTY DIRECTORY WHICH IS PART OF PARTIALLY RESTORED LIMB FTAB 20 =Q=N ...[ENTRY REQUIRED SO THAT BMAPONE WILL PROCESS THIS DIRECTORY AND SET 7 =Q*? ...[UP FLIST ENTRY 4 =QCW ...[ 6 =QGF ...XCHEKPRES 12 =QK4 ... JBS SETFTAB,2,AW2PARTRES 8 =QMM ... BRN SKIP 4 =QQB [ 18 =R=2 [********************************************************: 17 =RKP ...[ A NON-EMPTY DIRECTORY HAS JUST HAD ITS BLOCKS MAPPED 15 =R_D ...[OR EMPTY DIRECTORY IS BEING PARTIALLY RESTORED. 15 =S*7 ...[ WE NOW NEED TO MAKE A FTAB BLOCK ENTRY FOR 16 =SNW [ IT TO ENSURE THAT A SLAVE IS SET UP TO 'MAP' IT. 16 =T8G [ SET UP FTAB IF ONE DOES NOT ALREADY EXIST AT THIS 8 =TN6 [ FILESTORE LEVEL. 4 =W7Q [ 5 =WCJ ...SETFTAB 18 =WMB BACKSPACE [DIRECTORY TO NAME RECORD 10 =X72 HUNTW 3,FILE,FTAB 17 =XLL BNG 3 SETUPTABLK [ J. IF NONE PRESENT 9 =Y6= LDX 0 A1+1(3) 19 =YKW BXE 0 AMAPDEPTH(2),TABEXISTS [ J. IF RIGHT DEPTH ELSE 6 =_5G SETUPTABLK 15 =_K6 SETNCORE 20,3,FILE,FTAB [ SET ONE UP 7 ?24Q LDN 0 0 19 ?2JB STO 0 A1(3) [INITIALISE USED DATA WORD 10 ?342 LDX 0 AMAPDEPTH(2) 16 ?3HL STO 0 A1+1(3) [DEPTH OF FTAB 6 ?43= TABEXISTS 15 ?4GW LDX 0 A1(3) [USED DATA 10 ?52G LDX 7 ALOGLEN(3) 7 ?5G6 SBN 7 5 17 ?5_Q BXL 0 7,NOFTABLEN [ J. IF LONG ENOUGH 8 ?6FB ADN 7 17 17 ?6_2 ALTLENG 3,7,SUB1 [ ELSE LENGTHEN IT 6 ?7DL NOFTABLEN 9 ?7Y= CALL 7 STEPAGAIN 18 ?8CW STOZ 2 [ X2 = 0 IF PROPER USER 11 ?8XG JBC NOTSUD,3,BNPSEUDO 18 ?9C6 NGN 2 1 [ X2 = -1 IF PSEUDO USER 5 ?9WQ NOTSUD 17 ?=BB LDN 7 EUSE1N(3) [ POINTER TO USERNAME 10 ?=W2 MHUNTW 3,FILE,FTAB 8 ??*L LDX 0 A1(3) 7 ??T= LDN 5 6 20 ?##W ADS 5 A1(3) [UPDATE USED DATA FOR NEW ENTRY 7 ?#SG ADX 3 0 20 ?*#6 ADN 3 A1+2 [X3 POSITION FOR NEW FTAB ENTRY 7 ?*RQ TOPFCA 1 10 ?B?B LDX 0 FREADBLOCK(1) 18 ?BR2 STO 0 0(3) [BLOCK POINTER INTO FTAB 10 ?C=L LDX 0 FREADWORD(1) 18 ?CQ= STO 0 1(3) [RECORD POINTER INTO FTAB 17 ?D9W BPZ 2 PROPUS [ J. IF PROPER USER 14 ?DPG LDX 2 FX2 [ ELSE 18 ?F96 LDN 7 ASUPUSER(2) [ USE SUP. PROPER USER 5 ?FNQ PROPUS 8 ?G8B LDN 0 2(3) 15 ?GN2 MOVE 7 3 [ INTO FTAB 6 ?H7L STEP 20 ?HM= BRN SKIPTRAPS [TO CHECK INDEX AND TRAPS RECORDS 4 #B32 [ 19 #BGL [****************************************************** SERDIR 15 #C2= [ WE WANT TO GET DIRECTORY ERASED BY BMAPTWO 4 #CFW [ 5 #C_G SERDIR 21 #DF6 BS 3,BNTEMP [SET TEMP BIT TO ENSURE BMAPTWO ERAS 10 #DYQ CALL 7 STEPREWRITE 9 #FDB BRN TEMPDIR 4 #FY2 [ 20 #GCL [******************************************************** NOTFOUND 16 #GX= [ FUSER ENTRY NOT FOUND - WANT TO INSERT A NEW ONE 16 #HBW [ AND CREATE A SKELETON DICTIONARY ENTRY FOR LATER 9 #HWG [ INSERTION BY ADDICT. 18 #JB6 [ FIRST LOCATE POSITION AT WHICH ENTRY IS TO BE INSERTED 4 #JTQ [ 5 #K*B NOTFOUND 7 #KT2 #UNS FPARTRES 4 #L#L ( 9 #LS= CALL 7 STEPAGAIN 9 #M?W LDX 4 EUSE1N(3) 9 #MRG ADX 4 EUSE2N(3) 16 #N?6 ADX 4 EUSE3N(3) [ REQUIRED KEY 10 #NQQ CALL 7 TOHUNTFUSER 17 #P=B LDN 1 A1-1(3) [ => START OF FUSER 8 #PQ2 LDX 7 A1(3) 16 #Q9L ADN 7 A1+1(3) [ => END OF FUSER 5 #QP= NXTKEY 17 #R8W ADN 1 5 [ => TO NEXT ENTRY 16 #RNG BXGE 1 7,XATEND [ J. IF PAST END 8 #S86 LDX 0 0(1) 18 #SMQ BXL 0 4,NXTKEY [ J. IF KEY < REQUIRED 5 #T7B XATEND 7 #TM2 LDX 5 1 19 #W6L SBN 5 3 [ => TO POSITION FOR ENTRY 5 #WL= WAITLEN 9 #X5W LDX 2 BSACHAPTR 19 #XKG POP WAITLEN,2,FTABWAIT [ LOCKOUT OTHER LENGTHENERS 10 #Y56 CALL 7 TOHUNTFUSER 17 #YJQ SBX 5 3 [ RELATIVEISE POINTER 10 #_4B LDX 7 ALOGLEN(3) 7 #_J2 ADN 7 5 16 *23L ALTLENG 3,7,SFUSER [ LENGTHEN FUSER 9 *2H= LDX 2 BSACHAPTR 16 *32W VOP 2,FTABWAIT [ CLEAR LOCKOUT 10 *3GG CALL 7 TOHUNTFUSER 8 *426 LDX 6 A1(3) 9 *4FQ ADN 6 A1+1(3) 17 *4_B ADX 5 3 [ DATUMISE POINTER 20 *5F2 BXE 5 6,NOWPUTUSIN [ J. IF INSERT IS AT END OF BLOCK 4 *5YL [ 18 *6D= [********************************************************** 16 *6XW [ INSERT IS REQUIRED SOMEWHERE IN MIDDLE OF BLOCK. 17 *7CG [ MOVE ALL ENTRIES OF KEY > OR = REQUIRED DOWN BLOCK 16 *7X6 [ TO MAKE ROOM FOR ENTRY ( START WITH LAST ONE IN 13 *8BQ [ BLOCK FIRST TO AVOID OVERWRITE !). 4 *8WB [ 5 *9B2 NEXTMOVE 7 *9TL STO 6 7 7 *=*= SBN 6 5 7 *=SW MOVE 6 5 10 *?#G BXU 5 6,NEXTMOVE 6 *?S6 NOWPUTUSIN 4 *#?Q [ 17 *#RB [***************************************************** 16 **?2 [ THERE IS NOW ROOM FOR THE ENTRY TO BE INSERTED. 16 **QL [ PUT IN KEY AND USERNAME AND MAKE BIT WORD ZERO. 4 *B== [ 7 *BPW LDX 1 5 8 *C9G STO 4 3(1) 8 *CP6 STOZ 4(1) 7 *D8Q SBX 5 3 9 *DNB CALL 7 STEPAGAIN 9 *F82 LDN 6 EUSE1N(3) 10 *FML CALL 7 TOHUNTFUSER 7 *G7= ADX 5 3 7 *GLW LDX 1 5 8 *H6G LDN 7 0(1) 7 *HL6 MOVE 6 3 7 *J5Q LDN 0 5 18 *JKB ADS 0 A1(3) [ UPDATE RECORD HEADER 21 *K52 SBX 5 3 [ SAVE REL. PTR. TO NEW ENTRY IN X5 4 *KJL [ 18 *L4= [******************************************************** 15 *LHW [ FUSER ENTRY DONE - NOW SET UP FWB TO CONTAIN 19 *M3G [ SKELETON DICTIONARY ENTRY LONG ENOUGH FOR PROPER USER WITH 8 *MH6 [ SPACEMT BUDGET). 4 *N2Q [ 11 *NGB SETNCORE FLOG+4,3,FILE,FWB 9 *P22 LDN 0 FLOG-1 8 *PFL STO 0 A1(3) 9 *P_= STOZ A1+1(3) 9 *QDW LDN 1 A1+1(3) 9 *QYG LDN 2 A1+2(3) 8 *RD6 SMO A1(3) 16 *RXQ MOVE 1 510 [ ZEROISE BLOCK 7 *SCB LDN 0 1 17 *SX2 STO 0 CNEWZ(3) [ DICT. REC. MARKER 7 *TBL TOPFCB 1 9 *TW= LDN 6 FME1(1) 10 *W*W LDN 7 CSUPUSER(3) 17 *WTG MOVE 6 3 [ SUPERIOR USERNAME 9 *X*6 CALL 7 STEPAGAIN 18 *XSQ LDX 4 ECOPSN(3) [ RESET X4 FOR BMAPONE 18 *Y#B SRL 4 15 [ NO LOMGER NECESSARY !!! 10 *YS2 MHUNTW 2,FILE,FWB 9 *_?L LDN 6 ELOC1N(3) 9 *_R= LDN 7 CLOCN(2) 15 B2=W MOVE 6 3 [ LOCAL NAME 9 B2QG LDN 6 EUSE1N(3) 9 B3=6 LDN 7 CUSER(2) 15 B3PQ MOVE 6 3 [ USERNAME 17 B49B JBC NOTSUDO,3,BNPSEUDO [ J. IF PROPER USER 14 B4P2 LDX 0 GSIGN [ ELSE 16 B58L ORS 0 CPSEU(2) [ SET PSEUDO BIT 17 B5N= ALTLENGD 2,FPSEU [ AND SHORTEN FWB TO 15 B67W MHUNTW 2,FILE,FWB [ LENGTH FOR 16 B6MG LDN 0 FPSEU [ PSEUDO ENTRY 8 B776 STO 0 A1(2) 5 B7LQ NOTSUDO 18 B86B CHAIN 2,BMISC+1 [ CHAIN IN MISC. CHAIN 4 B8L2 [ 17 B95L [******************************************************* 16 B9K= [ FUSER SITUATION IS NOW SAME AS THOUGH ENTRY HAD 16 B=4W [ ALREADY EXISTED SO J. BACK TO CARRY ON AND MARK 9 B=JG [ ENTRY AS 'FOUND' ETC. 4 B?46 [ 10 B?HQ CALL 7 TOHUNTFUSER 7 B#3B ADX 3 5 9 B#H2 BRN NEWENT 4 B*2L ) 5 B*G= TEMPDIR 4 B*_W [ 20 BBFG [********************************************************* TEMPDIR 18 BB_6 [ DIRECTORY IS MARKED 'TEMPORARY'. CHECK IF IT NEEDS TO BE 19 BCDQ [ ERASED. - IF SO SET 'ERASE' BIT TO GET IT ERASED BY BMAPTWO 4 BCYB [ 8 BDD2 LDX 1 BFILE 4 BDXL [ 18 BFC= [********************************************************** 16 BFWW [ IF 'PARTRES' IS CLEAR, THIS IS A NORMAL TEMPORARY 13 BGBG [ DIRECTORY SO IT NEEDS TO BE ERASED 4 BGW6 [ 13 BH*Q JBC NOTPRUSFAIL,3,BNPARTRES 4 BHTB [ 18 BJ*2 [******************************************************** 17 BJSL [ 'PARTRES' AND 'TEMP' SET - IF FAILED IN LAST RESTORE 15 BK#= [ AFTER FREEING BACKING STORE ( INDICATED BY 17 BKRW [ 'BFPARTRES' SET IN :MASTER'S FCB) RESTORE HAS BEEN 17 BL?G [ REINITIATED SO JUST SKIP ENTRY - DONT SET ERASE BIT. 4 BLR6 [ 12 BM=Q JBS SKIPALL,1,BFPARTRES 4 BMQB [ 18 BN=2 [******************************************************** 17 BNPL [ 'BFPARTRES' CLEAR SO LAST RESTORE FAILED BEFORE THE 17 BP9= [ BACKING STORE WAS FREED. - JUST CLEAR 'PARTRES' AND 14 BPNW [ 'TEMP' AND J. TO TREAT AS NORMAL ENTRY. 4 BQ8G [ 12 BQN6 MBC 3,BNPARTRES,BNTEMP 10 BR7Q CALL 7 STEPREWRITE 9 BRMB BRN PRCLEAR 6 BS72 NOTPRUSFAIL 9 BSBS ... CALL 7 STEPAGAIN 16 BSLL BS 3,BNERASE [SET ERASE BIT 10 BT6= CALL 7 STEPREWRITE 21 BW5G BRN SKIPALL [TO DEAL WITH INDEX,BLOCKS AND TRAPS 17 CY?= [*********************************************** SKIP 17 CYQW [ RECOVER X6 FROM ACOMMUNE3 - PUT THERE BY 'BLOCKMAP' 13 C_=G [ MACRO - MAY NO LONGER BE NEEDED !! 4 C_Q6 [ 4 D29Q SKIP 8 D2PB LDX 2 FX2 10 D392 LDX 6 ACOMMUNE3(2) 6 D3NL SKIPTRAPS 4 D48= [ 20 D4MW [******************************************************** SKIPTRAPS 16 D57G [ GO BACK (ACROSS) TO BMAPONE TO CHECK TRAPS AND 16 D5M6 [ INDEX RECORDS ETC. (HAVING MAPPED BLOCKS REC.) 4 D66Q [ 9 D6LB ACROSS BMAPONE,4 5 D762 SKIPALL 4 D7KL [ 20 D85= [********************************************************** SKIPALL 16 D8JW [ GO BACK (ACROSS) TO BMAPONE TO SKIP BLOCKS RECORD 11 D94G [ AND CHECK TRAPS RECORDS ETC. 4 D9J6 [ 9 D=3Q ACROSS BMAPONE,5 6 D=HB SETSAVEBIT 4 D?32 [ 21 D?GL [******************************************************** SETSAVEBIT 16 D#2= [ ENTRY TO SET 'DIRECTORY CONTAINS SAVING FILE' BIT 13 D#FW [ IN FUSER ENTRY FOR CORRENT DIRECTORY. 4 D#_G [ 19 D*F6 NGS 2 AWORK1(2) [ SHOW 'SAVING FILE' ENTRY 9 D*YQ BRN SAVENTRY 4 DBDB [ 19 DBY2 [******************************************************* UPJOBCT 17 DCCL [ ENTRY TO SET 'DIRECTORY CONTAINS USER JOBLIST' BIT 13 DCX= [ IN FUSER ENTRY FOR CURRENT DIRECTORY 4 DDBW [ 5 DDWG UPJOBCT 18 DFB6 STOZ AWORK1(2) [ SHOW 'JOBLIST' ENTRY 5 DFTQ SAVENTRY 16 DG*B TOPFCB2 3 [ SET UP PSEUDO 16 DGT2 LDN 3 ASUPUSER-EUSE1N(2) [ POINTERS TO FCB 17 DH#L STO 3 ACOMMUNE1(2) [ SO IT LOOKS LIKE 15 DHS= LDX 5 ASUPUSER(2) [ NAME RECORD 10 DJ?W ADX 5 ASUPUSER+1(2) 20 DJRG ADX 5 ASUPUSER+2(2) [ CALC. KEY OF REQUIRED ENTRY AND 19 DKQQ CALL 7 SERCHFENTRY [ LOCATE IT IN FUSER BLOCK 8 DL=B BRN XBR 8 DLQ2 LDX 2 FX2 9 DM9L LDX 1 AWORK1(2) 16 DMP= BZE 1 ZJOBBIT [ J. IF JOBLIST 19 DN8W LDCT 0 #40 [ SET UP 'SAVING FILE' BIT 9 DNNG BRN ZSAVEBIT 5 DP86 ZJOBBIT 19 DPMQ LDCT 0 #200 [ ELSE SET UP 'JOBLIST' BIT 5 DQ7B ZSAVEBIT 18 DQM2 ORS 0 4(3) [ PUT IT IN FUSER ENTRY 5 DR6L UP 4 DRL= [ 18 DS5W [**************************************************** NOLF 18 DSKG [ THIS SECTION OF CODE DEALS WITH ENTRANTS FOUND TO BE ON 10 DT56 [ UNAVAILABLE RESIDENCES. 4 DTJQ [ 4 DW4B NOLF 16 DWJ2 LDX 4 1(3) [RESIDENCE NUMBER 7 DX3L BACKSPACE 9 DXH= CALL 7 STEPAGAIN 9 DY2W LDX 0 ECOPSN(3) 8 DYGG SRL 0 15 16 D_26 BNZ 0 REQUESTRES [ J. IF NON-EMPTY 6 D_FQ STEP 18 D__B BZE 3 XBR [ ELSE PUT ON RESIDENCE 18 F2F2 LDN 0 3 [ 3 BY CHANGEING 'ERES' 17 F2YL STO 0 1(3) [ IN BLOCKS RECORD 10 F3D= CALL 7 STEPREWRITE 7 F3XW BACKSPACE 9 F4CG BRN SKIPALL 4 F4X6 [ 18 F5BQ [********************************************************* 15 F5WB [ NON-EMPTY DIRECTORY ON UNAVAILABLE RESIDENCE 15 F6B2 [ GO DOWN TO ASK FOR RESIDENCE TO BE LOADED AND 14 F6TL [ GET RESTORE INITIATED IF UNAVAILABILITY 15 F7*= [ CONFIRMED. COMES 'UP' IF RESTORE INITIATED 14 F7SW [ COMES 'UP+1' IF ABANDONED - NOT DUMPED 4 F8#G [ 6 F8S6 REQUESTRES 9 F9?Q DOWN BMQUEST,3 9 F9RB BRN SKIPALL 10 F=?2 BRN NOTPRUSFAIL 6 F=QL XFILEBENT 10 F?== ACROSS BMAPONE,12 4 F#P6 XBR 3 F#YY ... 9 F*8Q GEOERR 1,BMAPDIR 4 F*NB [ 12 FB82 MENDAREA BMAPGAP,K99BMAPDIR 4 FBML [ 4 FC7= #END 2 FCLW 6 ____ ...600443110005