15 22FL SEG BMAPONE,86,EDWARD MOON,BMAP,G252 4 22_= [ 15 23DW [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 13 23YG [ THIS EXCLUDES CODE UNDER #SKI G252 4 24D6 [ 7 24XQ #OPT G252 = 0 6 25CB #SKI G252&1 16 25X2 # WITH UGUG EDIT M252 (RETAIN TO-BE-ERASED STATUS) 12 26BL SEGENTRY K1BMAPONE,Z1BMAPONE 12 26W= SEGENTRY K2BMAPONE,Z2BMAPONE 12 27*W SEGENTRY K4BMAPONE,SKIPTRAPS 11 27TG SEGENTRY K5BMAPONE,SKIPALL 12 28*6 SEGENTRY K11BMAPONE,Z11BMAPONE 12 28SQ SEGENTRY K12BMAPONE,XFILEBENT 12 29#B SEGENTRY K13BMAPONE,XRECHEAD 12 29S2 SEGENTRY K14BMAPONE,READFAIL 6 2=?L #SKI G252&1 4 2=R= ( 11 2?=W [ BIRMINGHAM UNIVERSITY CHANGES: 14 2?QG [ SETS WORD 'EU' OF DIRECTORY ENTRY TO ONE 14 2#=6 [ IF 'ERASE' BIT SET FOR A TERMINAL FILE. 14 2#PQ [ THIS IS TO PREVENT LOSS OF ERASE STATUS 13 2*9B [ FOR FILES TO BE LISTED AFTER A BREAK. 10 2*P2 [ SEE ALSO SEGMENT BMOUTPUT. 4 2B8L [ 13 2BN= [ COPYRIGHT UNIVERSITY OF BIRMINGHAM. 13 2C7W [ USE SUBJECT TO CONDITIONS OF LICENCE. 4 2CMG [ 4 2D76 ) 4 2DLQ [ 12 2F6B [ THIS SEGMENT PERFORMS THE SFTS 20 2FL2 [ BLOCKS ARE MAPPED FOR ALL ONLINE FILES WHICH ARE TO BE RETAINED 21 2G5L [ TEMPORARY DIRECTORIES HAVE THE 'ERASE' BIT SET SO THAT INFERIOR FILES 14 2GK= [ CANNOT LATER BE OPENED.THEY ARE NOT MAPPED 21 2H4W [ PERMANENT DIRECTORIES HAVE THEIR ENTRIES IN THE FUSER BLOCK MARKED. 21 2HJG [ IF THERE IS NO FUSER ENTRY THE ERASE BIT IS SET,OTHERWISE IT IS UNSET 7 2J46 [ IF IT IS SET 7 2JHQ [ TERMINAL FILES 13 2K3B [ THE ERASE BIT IS UNSET IF SET 14 2KH2 [ FREEZECOUNTS ARE ZEROISED IF NON ZERO 19 2L2L [ UNCLEAN BITS ARE REPLACED BY BACKMAP MARKERS-NO MAPPING 4 2LG= [ 2 2L_W 9 2MFG MASKGEN #77770000 10 2M_6 XPRMESS +BMPARTRES 9 2NDQ XBLOCKWRONG +BMREPEAT 12 2NYB NINITIATED 16HINITIATED DUE TO 10 2PD2 NCORRUPTION 12HCORRUPTION 10 2PXL NREADFAIL 12HREAD FAIL 5 2QC= SLAVEACT 8 2QWW #HAL +BSA+AUTOMAP,0 5 2RBG NUJLIST 9 2RW6 4H**** 9 2S*Q SAVELANG 4H#### 9 2STB NSYS 12HSYSTEM 9 2T*2 NMASTER 12HMASTER 8 2TSL [ VITAL SYSTEM FILES 4 2W#= NVSF 9 2WRW 12HSERIAL 10 2X?G 12HINCINDEX 9 2XR6 12HIDF 10 2Y=Q 12HPROPERTY 8 2YQB #DEF NUMF=0?-NVSF/3 4 2_=2 [ 16 2_PL [****************************************** QSTEPC 16 329= [ SUBROUTINE TO 'STEP' TO NEXT RECORD USING QSTEPC 13 32NW [ AND BMCNTRL TO DO READ TRANSFERS. 4 338G [ 5 33N6 QSTEPC 8 347Q SBX 7 FX1 6 34MB QSTEPCRPT 10 3572 QSTEPC ,XBACKREAD 8 35LL ADX 7 FX1 7 366= EXIT 7 0 6 36KW XBACKREAD 9 375G DOWN BMCNTRL,2 9 37K6 BRN QSTEPCRPT 9 384Q BRN XRECHEAD 7 38JB STOZ 3 8 3942 ADX 7 FX1 7 39HL EXIT 7 0 4 3=3= [ 17 3=GW [******************************************** MAPBLOCKS 14 3?2G [ SUBROUTINE TO 'MAP' THE BLOCKS OF A FILE 4 3?G6 [ 6 3?_Q MAPBLOCKS 8 3#FB SBX 7 FX1 10 3#_2 STO 7 ACOMMUNE2(2) 10 3*DL BLOCKMAP NOLF,ZBLOCK1 10 3*Y= LDX 7 ACOMMUNE2(2) 8 3BCW ADX 7 FX1 16 3BXG EXIT 7 0 [IF NORMAL EXIT 17 3CC6 ZBLOCK1 [HERE IF FILE EMPTY 8 3CWQ LDX 2 FX2 10 3DBB LDX 4 ACOMMUNE1(2) 9 3DW2 LDX 0 AWORK1(2) 7 3F*L ADN 0 1 19 3FT= BNZ 0 SKIPTRAPS [IF NOT MAPPING MASTERS FCB 11 3G#W JBS NOMULT,2,AW2PARTRES 10 3GSG GEOERR 1,FS-HELP! 4 3H#6 [ 6 3HRQ STEPREWRITE 8 3J?B STEPREWRITE 7 3JR2 EXIT 7 0 4 3K=L [ 4 3KQ= SUB1 10 3L9W HUNTMISB 2,FI,FLIST 7 3LPG EXIT 1 0 4 3M96 [ 4 3MNQ SUB2 11 3N8B HUNTMISB 2,FI,FRESTUSER 7 3NN2 EXIT 1 0 4 3P7L [ 5 3PM= OUTPACK 8 3Q6W SBX 7 FX1 9 3QLG OUTPACKX 2,5,6 8 3R66 ADX 7 FX1 7 3RKQ EXIT 7 0 4 3S5B [ 5 3SK2 MONOUT 8 3T4L SBX 7 FX1 7 3TJ= MONOUTX 3 8 3W3W ADX 7 FX1 7 3WHG EXIT 7 0 4 3X36 [ 6 3XGQ PUTINFLIST 10 3Y2B BS 2,AW2PUTINFL 7 3YG2 EXIT 7 0 4 3Y_L [ 6 3_F= TOHUNTFLIST 10 3_YW HUNTMISB 1,FI,FLIST 7 42DG EXIT 7 0 4 42Y6 [ 17 43CQ [********************************************* Z1BMAPONE 13 43XB [ ENTRY ACROSS FROM BACKMAP TO 'MAP' 8 44C2 [ :MASTER'S FCB 4 44WL [ 6 45B= Z1BMAPONE 9 45TW STOZ AWORK2(2) 17 46*G [*************:********:*:*:*:************** Z11BMAPONE 15 46T6 [ ENTRY ACROSS FRON BMCNTRL TO 'MAP' THE TOP 13 47#Q [ DIRECTORY OF A RESTORED LIMB'S FCB. 4 47SB [ 6 48#2 Z11BMAPONE 10 48RL STOZ AMAPDEPTH(2) 7 49?= NGN 0 1 21 49QW STO 0 AWORK1(2) [ TO INDICATE MAPPING MASTERS FCB 2 4==G 14 4=Q6 TOPFCB2 3 [MASTER 9 4?9Q LDX 5 FUSEBL(3) 9 4?PB SBN 5 FCBLEN-2 17 4#92 LDX 4 5 [PSEUDO RECORD HEADER 17 4#NL SBN 4 2 [PSEUDO RECORD LENGTH 9 4*8= ADN 3 BSPRE-1 16 4*MW TRACEIF K6BMAPONE,99,299,AWORK1(2),MAPMAST 17 4B7G CALL 7 MAPBLOCKS [TO MAP MASTERS FCB 4 4BM6 [ 17 4C6Q [********************************************: Z2BMAPONE 17 4CLB [ MAIN ENTRY FOR SLAVE ACTIVITIES TO 'MAP7 A DIRECTORY 4 4D62 [ 6 4DKL Z2BMAPONE 4 4F5= [ 4 4FJW [ 8 4G4G LDN 0 FBLKS 19 4GJ6 STO 0 AWORK3(2) [FREADBLOCK FOR FIRST BLOCK 17 4H3Q STOZ AWORK4(2) [USED FOR KEY CHECK 20 4HHB MBC 2,AW2DIRBELOW,AW2DUMP,AW2JOB4ASTR,AW2PUTINFL,AW2MULT 5 4J32 NEXTNAME 9 4JGL CALL 7 QSTEPC 17 4K2= BZE 3 NOMORE [IF END OF DIRECTORY 14 4KFW MBC 2,AW2INDEX,AW2ONLINE,AW2DIR 9 4K_G LDEX 0 FRH(3) 8 4LF6 SBN 0 FRDE 17 4LYQ BNZ 0 XFILEBENT [IF NOT NAMERECORD 9 4MDB LDX 0 ERESN(3) 9 4MY2 BNZ 0 XFILEBENT 9 4NCL LDX 0 EINCN(3) 18 4NX= BNG 0 SKELETON [IF SKELETON FROM GEN RES 17 4PBW JBC NINDEX,3,BNINDEX [JUMP IF UNINDEXED 17 4PWG BS 2,AW2INDEX [IF FILE IS INDEXED 5 4QB6 NINDEX 9 4QTQ LDX 4 ECOPSN(3) 20 4R*B SRL 4 15 [NUMBER OF BLOCKS FOR LATER CHECK 10 4RT2 STO 4 ANUMBLKS(2) 9 4S#L LDX 0 ENUSEN(3) 16 4SS= STO 0 AWORK1(2) [NUMBER OF TRAPS 16 4T?W LDEX 0 ECOPSN(3) [ONLINE MARKER 7 4TRG SBN 0 2 20 4W?6 BPZ 0 XFILEBENT [IF MORE THAN ONE BLOCKS RECORD 7 4WQQ ADN 0 2 9 4X=B BZE 0 NOONLINE 10 4XQ2 BS 2,AW2ONLINE 5 4Y9L NOONLINE 18 4YP= LDX 5 ELOC1N(3) [CALCULATE KEY OF ENTRANT 18 4_8W ADX 5 ELOC2N(3) [ ^ ^ ^ 15 4_NG ADX 5 ELOC3N(3) [ ^ ^ 18 5286 BXL 5 AWORK4(2),XFILEBENT [ ERROR IF < LAST ENTRY 7 52MQ TOPFCA2 1 10 537B LDX 7 FREADBLOCK(1) 12 53M2 BXE 7 AWORK3(2),NONUBLOK 19 546L FFINDEXB 1,1 [ CHECK KEY OF LAST BLOCK IF 19 54L= SBN 7 FBLKS-1 [ JUST GONE ON TO NEW BLOCK 8 555W ADN 1 A1+1 9 55KG LDX 0 AWORK4(2) 7 5656 SMO 7 20 56JQ BXU 0 0(1),XFILEBENT [ ERROR IF NOT SAME AS IN FINDEXF 9 574B ADN 7 FBLKS-1 9 57J2 STO 7 AWORK3(2) 5 583L NONUBLOK 8 58H= LDX 1 FX1 9 592W STO 5 AWORK4(2) 17 59GG JBS TAPE,3,BNLIB [IF LIBRARIAN ENTRANT 19 5=26 LDX 0 ESERN(3) [ZERO FOR NON-TAPE ENTRANT 9 5=FQ BNZ 0 XFILEBENT 9 5=_B LDX 0 ELOC1N(3) 20 5?F2 BPZ 0 XFILEBENT [IF LOCAL NAME CHAR1 = NON ALPHA 19 5?YL LDX 0 EREELN(3) [REEL NUM MUST BE 1 FOR FILE 7 5#D= SBN 0 1 9 5#XW BNZ 0 XFILEBENT 9 5*CG LDX 0 EGENN(3) 10 5*X6 ANDX 0 MASKGEN(1) 9 5BBQ BNZ 0 XFILEBENT 9 5BWB LDX 0 EUSE1N(3) 16 5CB2 BZE 0 TERMINAL [IF TERMINAL FILE 19 5CTL BPZ 0 XFILEBENT [DIRECTORY NAME IS NON ALPHA 4 5D*= [ 15 5DSW [******************************************** 16 5F#G [ ENTRY IS FOR A DIRECTORY - GO ACROSS TO BMAPDIR 15 5FS6 [ TO DO SPECIAL CHECKS AND MARK FUSER ENTRY 4 5G?Q [ 9 5GRB ACROSS BMAPDIR,1 4 5H?2 TAPE 4 5HQL [ 15 5J== [******************************************** 18 5JPW [ ENTRY IS FOR A TAPE - SO GO ACRPSS TO BMAPTAPE TO DO S 14 5K9G [ SPECIAL TAPE CHECKS AND MARK FUSER ENTRY 4 5KP6 [ 10 5L8Q ACROSS BMAPTAPE,1 6 5LNB MAPTERMINAL 9 5M82 CALL 7 QSTEPC 9 5MML BZE 3 XFILEBENT 9 5N7= LDEX 5 FRH(3) 17 5NLW CALL 7 MAPBLOCKS [ MAP BLOCKS RECORD 9 5P6G BRN SKIPTRAPS 4 5PL6 [ 19 5Q5Q [*************************************************** TERMINAL 12 5QKB [ ENTRY IS FOR A TERMINAL FILE 4 5R52 [ 5 5RJL TERMINAL 16 5S4= TRACEIF K6BMAPONE,99,299,ELOC1N(3),TERMINAL 9 5SHW LDX 0 ELANN(3) 12 5T3G BXE 0 NUJLIST(1),SEEIFEMPT 12 5TH6 BXU 0 SAVELANG(1),NOTSAVING 4 5W2Q [ 16 5WGB [************************************************* 16 5X22 [ ENTRY IS FOR SAVING FILE SO MARK FUSER ENTRY BY 9 5XFL [ GOING DOWN TO BMAPDIR 4 5X_= [ 9 5YDW DOWN BMAPDIR,4 7 5YYG STEPAGAIN 6 5_D6 NOTSAVING 4 5_XQ [ 16 62CB [*************************************************** 15 62X2 [ ENTRYIS FOR A USER JOBLLST SO CHECK IF EMPTY, 15 63BL [ UNLESS DOING A GENERAL OR PARTIAL RESTORE. IF 14 63W= [ NON-EMPTY OR DOING A RESTORE MARK FUSER E 18 64*W [ ENTRY BY GOING DOWN TO BMAPDIR.( IN THE CASE OF RESTORE 12 64TG [ THE FILE WILL NEED RE-INDEXING) 4 65*6 [ 16 65SQ JMBAC NOBITS,3,BNONLINE,BNALLINCS,BNPURE 10 66#B ERS 0 EINF2-A1(3) 10 66S2 CALL 7 STEPREWRITE 10 67?L BRN NOCHEKEMPTY 6 67R= SEEIFEMPT 12 68=W BWNZ GINCTSN,NOTEMPTIES 13 68QG JBS NOTEMPTIES,2,AW2PARTRES 9 69=6 LDX 0 ECOPSN(3) 7 69PQ SRL 0 9 10 6=9B BZE 0 NOCHEKEMPTY 6 6=P2 NOTEMPTIES 19 6?8L DOWN BMAPDIR,3 [ TO SET JOBLIST BIT IN FUSER 10 6?N= BS 2,AW2JOB4ASTR 7 6#7W STEPAGAIN 6 6#MG NOCHEKEMPTY 5 6*76 NOBITS 4 6*LQ [ 15 6B6B [********************************************* 14 6BL2 [ CLEAR FREEZECOUNTS AND REMOVE ERASE BITS 4 6C5L [ 10 6CK= JBCC TERM2,3,BNBM 10 6D4W CALL 7 STEPREWRITE 5 6DJG TERM2 11 6F46 LDX 0 EAUTOCOUNTN(3) 11 6FHQ ADX 0 ESAVECOUNTN(3) 16 6G3B BZE 0 NOFREEZE [IF NOT FROZEN 14 6GH2 STOZ EAUTOCOUNTN(3) [UNFREEZE 14 6H2L STOZ ESAVECOUNTN(3) [UNFREEZE 10 6HG= CALL 7 STEPREWRITE 5 6H_W NOFREEZE 6 6JFG #SKI G252&1 4 6J_6 ( 17 6KDQ LDN 0 1 [ SEE IF EU SET TO 1 9 6KYB ANDX 0 EUN(3) 9 6LD2 BZE 0 ZBHAM2 17 6LXL ERS 0 EUN(3) [ CLEAR BIT IF SET 10 6MC= CALL 7 STEPREWRITE 5 6MWW ZBHAM2 4 6NBG ) 18 6NW6 JBCC NERASE,3,BNERASE [UNSET ERASE BIT IF SET 6 6P*Q #SKI G252&1 4 6PTB ( 7 6Q*2 LDN 0 1 20 6QSL ERS 0 EUN(3) [ SET EU TO 1 IF 'ERASE' BIT SET 4 6R#= ) 10 6RRW CALL 7 STEPREWRITE 5 6S?G NERASE 4 6SR6 [ 18 6T=Q [*********************************************************** 16 6TQB [ IF ENTRY IS A MULTIFILE GO DOWN TO BMSTREAM TO 13 6W=2 [ RECORD DETAILS AND CHECK CONSISTENCY 4 6WPL [ 13 6X9= JMBAC NOTSTREAM,3,BNMDF,BNMULT 19 6XNW DOWN BMSTREAM,1 [REMENBER MULTIFILE DETAILS 16 6Y8G STEPAGAIN [ON NAME RECORD 17 6YN6 BS 2,AW2MULT [TO DENOTE MULTIFILE 6 6_7Q NOTSTREAM 17 6_MB JBC TEMPFILE,3,BNTEMP [IF TEMPORARY FILE 10 7272 CALL 7 PUTINFLIST 5 72LL TEMPFILE 4 736= [ 17 73KW [***************************************************** 17 745G [ CHECK IF FILE UNCLEAN - IT WILL NEED TO BE DELETED 16 74K6 [ UNLESS IT IS REVERED OR AN INTER PROCESSOR LINK 15 754Q [ (IPL) FILE WHEN IT SHOULD BE TREATED AS CLEAN 4 75JB [ 17 7642 JBS UNCLEAN,3,BNUWB [IF OPEN UNCLEANLY 20 76HL JBS SKIPALL,3,BNBMUWB [IF WAS PREVIOUSLY OPEN UNCLEANLY 4 773= QIPL 19 77GW JBC SKIPTRAPS,2,AW2ONLINE [DO NOT MAP IF OFFLINE 14 782G TRACEIF K6BMAPONE,99,299,4,MAPTERM 12 78G6 JBC NOTOBEDUMP,3,BNDUMP 9 78_Q BS 2,AW2DUMP 6 79FB NOTOBEDUMP 15 79_2 BRN MAPTERMINAL [ TO MAP IT 5 7=DL UNCLEAN 9 7=Y= BC 3,BNUWB 10 7?CW CALL 7 STEPREWRITE 12 7?XG JMBS QIPL,3,BNIPL,BNREVERE 9 7#C6 BS 3,BNBMUWB 4 7#WQ [ 17 7*BB [********************************************** SKIPALL 17 7*W2 [ ENTRY POINT FROM BMAPDIR TO 'SKIP' BLOCKS RECORD AND 13 7B*L [ GO ON TO CHECK TRAPS RECORDS ETC. 4 7BT= [ 5 7C#W SKIPALL 14 7CSG TRACEIF K6BMAPONE,99,299,1,FLISTADD 10 7D#6 CALL 7 PUTINFLIST 12 7DRQ JBC SKIPTRAPS,2,AW2ONLINE 9 7F?B CALL 7 QSTEPC 16 7FR2 BZE 3 XFILEBENT [VERY NASTY EOF 4 7G=L [ 19 7GQ= [**************************************************** SKIPTRAPS 16 7H9W [ ENTRY POINT FROM BMAPDIR HAVING ALREADY MAPPED 13 7HPG [ BLOCKS RECORD, TO CHECK TRAPS ETC. 4 7J96 [ 6 7JNQ SKIPTRAPS 12 7K8B JBC NOINDEX,2,AW2INDEX 19 7KN2 CALL 7 QSTEPC [ONTO INDEX RECORD 9 7L7L BZE 3 XFILEBENT 17 7LM= LDEX 0 FRH(3) [CHECK BASIC FORMAT 13 7M6W SBN 0 3 [ -OF 14 7MLG SBX 0 ANUMBLKS(2) [ -THE 14 7N66 BNZ 0 XFILEBENT [ -INDEX 14 7NKQ LDCT 0 #200 [ -RECORD 15 7P5B ERX 0 INDEXIDN(3) [ -FOR SIZE 17 7PK2 BNZ 0 XFILEBENT [ -AND IDENTIFICATION 5 7Q4L NOINDEX 9 7QJ= LDX 6 AWORK1(2) 17 7R3W BZE 6 NEXTNAME [IF FILE HAS NO TRAPS 5 7RHG NEXTTRAP 19 7S36 CALL 7 QSTEPC [ONTO TRAPS RECORD 9 7SGQ BZE 3 XFILEBENT 19 7T2B LDEX 0 FRH(3) [CHECK FORMAT OF TRAPS RECORD 13 7TG2 SBN 0 5 [FOR 16 7T_L BNZ 0 XFILEBENT [ - WRONG SIZE 15 7WF= LDX 0 ETRUSER1N(3) [ AND 17 7WYW BPZ 0 XFILEBENT [ - INVALID USERNAME 9 7XDG BCT 6 NEXTTRAP 16 7XY6 BRN NEXTNAME [ AT END OF TRAPS 5 7YCQ NOMORE 4 7YXB [ 15 7_C2 [*****************************************:***: 15 7_WL [ IF ANY MULTIFILES HAVE BEEN FOUND, GO DOWN TO 12 82B= [ BMSTREAM TO CHECK FSMB ENTRIES. 4 82TW [ 11 83*G JBC NOMULT,2,AW2MULT 18 83T6 DOWN BMSTREAM,3 [ TO SORT OUT MULTIFILES 17 84#Q BRN NOMULT [ IF UP - NO FLISTADD 18 84SB CALL 7 PUTINFLIST [ IF UP + 1 - FLISTADD 5 85#2 NOMULT 4 85RL [ 17 86?= [**************************************************** 15 86QW [ NOW CHECK EXPECTED SETTINGS OF DUMPER'S 'NOT 15 87=G [ SEARCHING ALL DIRECTORIES' BITS (FROM FCB) 17 87Q6 [ AGAINST ACTUAL CONTENTS OF DIRECTORY (IN AWORK2 BITS) 4 889Q [ 7 88PB TOPFCB2 3 7 8992 LDN 5 7 13 89NL JBS X4ASTRBIT,3,BFJOB4ASTR 7 8=8= SBN 5 4 6 8=MW X4ASTRBIT 11 8?7G JBS XDUMPBIT,3,BFDUMP 7 8?M6 SBN 5 2 5 8#6Q XDUMPBIT 12 8#LB JBS XDIRBIT,3,BFDIRBELOW 7 8*62 SBN 5 1 5 8*KL XDIRBIT 7 8B5= LDN 7 7 12 8BJW JBS Y4ASTR,2,AW2JOB4ASTR 7 8C4G SBN 7 4 5 8CJ6 Y4ASTR 11 8D3Q JBS YDUMP,2,AW2DUMP 7 8DHB SBN 7 2 5 8F32 YDUMP 12 8FGL JBS YDIR,2,AW2DIRBELOW 7 8G2= SBN 7 1 4 8GFW YDIR 4 8G_G [ 17 8HF6 [******************************************************: 17 8HYQ [ EXPECTED SETTINGS NOW IN X5 - CORRECT SETTINGS IN X7 4 8JDB [ 7 8JY2 ERX 5 7 15 8KCL BZE 5 XNSADOK [ J. IF SAME 7 8KX= LDN 6 4 7 8LBW SBX 6 5 20 8LWG BNZ 6 XNSADRONG [ J. IF OTHER THAN JOB4ASTR WRONG 7 8MB6 LDN 6 4 7 8MTQ ANDS 7 6 20 8N*B BNZ 6 XNSADOK [ J. IF SET WHEN SHOULD BE CLEAR 4 8NT2 [ 17 8P#L [****************************************************** 16 8PS= [ NOW CHECK IF ANY FLIST ENTRY AT ALL IS REQUIRED 14 8Q?W [ (1) FOR N.S.A.D. BITS TO BE CORRECTED 4 8QRG [ 6 8R?6 XNSADRONG 8 8RQQ LDCT 0 #200 7 8S=B ORS 0 7 5 8SQ2 XNSADOK 4 8T9L [ 15 8TP= [********************************************** 4 8W8W [ 16 8WNG [ (2) SO THAT ALL BEPARTRES BITS WILL BE CLEARED 12 8X86 JBC XNOTPR,2,AW2PARTRES 8 8XMQ LDCT 0 #100 7 8Y7B ORS 0 7 5 8YM2 XNOTPR 4 8_6L [ 15 8_L= [**********************************************: 16 925W [ (3) TO DO A FULL SEARCH OF DIRECTORY TO CHECK 16 92KG [ FOR UNCLEAN OR TEMPORARY FILES ETC. TO BE DELETED 4 9356 [ 13 93JQ JBC XCHECKADD,2,AW2PUTINFL 8 944B LDCT 0 #400 7 94J2 ORS 0 7 6 953L XCHECKADD 8 95H= LDCT 0 #700 7 962W ANDX 0 7 18 96GG BZE 0 ZENTFOUND [ J. IF NO ENTRY REQUIRED 9 9726 LDX 4 FME1(3) 9 97FQ LDX 5 FME2(3) 9 97_B LDX 6 FME3(3) 5 98F2 ZADDENT 10 98YL HUNTMISB 1,FI,FLIST 8 99D= LDX 0 A1(1) 19 99XW ADN 0 8 [ 1ST. 4 WORDS + THIS ENTRY 10 9=CG TXL 0 ALOGLEN(1) 19 9=X6 BCS ZNOWADENT [IF THERE IS ROOM FOR ENTRY 17 9?BQ POP ZADDENT,1,FLISTLENWT [ CHECK LENGTHENING 10 9?WB LDX 3 ALOGLEN(1) 8 9#B2 ADN 3 150 18 9#TL ALTLENG 1,3,SUB1 [ADD 150 WORDS TO FLIST 10 9**= HUNTMISB 1,FI,FLIST 10 9*SW VOP 1,FLISTLENWT 10 9B#G HUNTMISB 1,FI,FLIST 6 9BS6 ZNOWADENT 8 9C?Q ADX 1 A1(1) 12 9CRB STO 4 A1+4(1) [ 12 9D?2 STO 5 A1+5(1) [ 15 9DQL STO 6 A1+6(1) [ MAKE ENTRY 12 9F== STO 7 A1+7(1) [ 10 9FPW CALL 7 TOHUNTFLIST 7 9G9G LDN 0 4 8 9GP6 ADS 0 A1(1) 6 9H8Q ZENTFOUND 8 9HNB LDX 1 FX1 9 9J82 LDX 0 ATYPE(2) 19 9JML BXE 0 SLAVEACT(1),SLAVEND [IF END OF A SLAVE ACTIVITY 9 9K7= ACROSS BMCNTRL,1 5 9KLW SLAVEND 16 9L6G TRACEIF K6BMAPONE,99,299,AWORK2(2),SLAVEND 9 9LL6 ACROSS BMCNTRL,3 5 9M5Q NCLOSE 10 9MKB MHUNTW 3,FILE,FTAB 9 9N52 BNG 3 SLAVEND 9 9NJL LDX 0 A1+1(3) 12 9P4= BXU 0 AMAPDEPTH(2),SLAVEND 7 9PHW FREECORE 3 9 9Q3G BRN SLAVEND 4 9QH6 [ 16 9R2Q [******************************************* NOLF 18 9RGB [ THIS SECTION OF CODE DEALS WITH ENTRANTS FOUND TO BE ON 10 9S22 [ UNAVAILABLE RESIDENCES. 4 9SFL [ 4 9S_= NOLF 8 9TDW LDX 2 FX2 16 9TYG LDX 4 1(3) [RESIDENCE NUMBER 16 9WD6 BACKSPACE [TO NAME RECORD 7 9WXQ STEPAGAIN 13 9XCB JMBAC PUTOFF,3,BNDUMP,BNREVERE 4 9XX2 [ 16 9YBL [**************************************************: 15 9YW= [ FILE IS EITHHR TO-BE-DUMPED OR REVERED SO ASK 17 9_*W [ OPERATORS TO LOAD RESIDENCE TO AVOID LOSS OF FILES 4 9_TG [ 6 =2*6 REQUESTRES 10 =2SQ DOWN BMQUEST,3 4 =3#B [ 18 =3S2 [******************************************************** 16 =4?L [ IF IT COMES UP, RESIDENCE IS UNAVAILABLE SO PUT 17 =4R= [ FILE OFFLINE UNLESS MDF(MOVE TO RES. 3 AS ITS EMPTY) 16 =5=W [ OR 'TO-BE-DUMPED' MULTIFILE ELEMENT(NEEDS SPECIAL 9 =5QG [ ACTION BY BBSTREAM). 4 =6=6 [ 5 =6PQ PUTOFF 7 =79B STEPAGAIN 11 =7P2 JBS MULTENT,3,BNMULT 11 =88L JBC NOTSTRM,3,BNMDF 9 =8N= CALL 7 QSTEPC 7 =97W LDN 0 3 8 =9MG STO 0 1(3) 10 ==76 CALL 7 STEPREWRITE 9 ==LQ BRN SKIPTRAPS 5 =?6B MULTENT 9 =?L2 LDX 0 EDLDN(3) 9 =#5L BZE 0 MULTODUMP 11 =#K= JBC NOTSTRM,3,BNDUMP 10 =*4W BRN NOWMULTDOWN 6 =*JG MULTODUMP 11 =B46 JBC NOTSTRM,3,BNDUMP 6 =BHQ NOWMULTDOWN 20 =C3B DOWN BMSTREAM,2 [OTHERWISE CONSIDER AS UNCLEAN 5 =CH2 NOTSTRM 7 =D2L STEPAGAIN 10 =DG= CALL 7 STEPREWRITE 21 =D_W BS 3,BNBM [MARK TO BE PUT OFFLINE IN BMAPTWO 19 =FFG JBCC NOTJRNL,3,BNREVERE [ IF ITS AN SJFILE TELL OPS. 17 =F_6 MONOUT JSJTRUNC [ JOURNAL DATA LOST 5 =GDQ NOTJRNL 8 =GYB LDX 2 FX2 9 =HD2 BRN SKIPALL 4 =HXL [ 19 =JC= [***************************************************** XFILEBENT 16 =JWW [ ENTRY FROM BMAPDIR OR BMAPONE IF DIRECTORY WAS 16 =KBG [ FOUND TO BE CORRUPT. FIRST CHECK IF THIS IS THE 15 =KW6 [ SECOND TIME THIS BLOCK HAS BEEN FOUND CORRUPT 17 =L*Q [ ( I.E. CONFIRM THAT CORRUPTION NOT MISREAD 1ST TIME) 4 =LTB [ 6 =M*2 XFILEBENT 7 =MSL NGN 5 1 7 =N#= TOPFCB2 3 8 =NRW CALL 1 SUB2 8 =P?G LDX 1 A1(2) 6 =PR6 NEXTFRNAME 9 =Q=Q BZE 1 WAITPUT 14 =QQB TESTNAMX 3,FME1(3),FRUSE(2),NOTSAME 7 =R=2 TOPFCA 3 10 =RPL LDX 0 FREADBLOCK(3) 9 =S9= SBN 0 FBLKS-1 9 =SNW LDEX 7 FRFIL(2) 9 =T8G STOZ FRFIL(2) 7 =TN6 SBX 7 0 19 =W7Q BZE 7 RESINIT [ J. IF CORRUPTION CONFIRMED 9 =WMB STO 0 FRFIL(2) 7 =X72 LDX 7 0 8 =XLL CALL 1 SUB2 7 =Y6= LDX 0 7 19 =YKW BRN XBENTRPT [ ELSE WANT TO REPEAT SEARCH 18 =_5G NOTSAME [ TO GET A SECOND CHANCE 7 =_K6 ADN 2 8 7 ?24Q SBN 1 8 10 ?2JB BRN NEXTFRNAME 4 ?342 [ 19 ?3HL [***************************************************** XRECHEAD 15 ?43= [ ENTRY IF CORRUPT RECORD HEADERS WERE FOUND 10 ?4GW [ (EVEN AFTTR REPEATS) 4 ?52G [ 5 ?5G6 XRECHEAD 7 ?5_Q LDN 5 1 9 ?6FB BRN WAITPUT 2 ?6_2 20 ?7DL [******************************************************* READFAIL 17 ?7Y= [ 'READFAIL' HAS OCCURRED - SAVE 'BA' WORDS (TRANSFER 16 ?8CW [ DETAILS) FOR SEGMENT READFAIL TO OUTPUT MESSAGE 4 ?8XG [ 5 ?9C6 READFAIL 9 ?9WQ LDN 7 BA1(2) 10 ?=BB LDN 0 ACOMMUNE1(2) 7 ?=W2 MOVE 7 3 7 ??*L STOZ 5 10 ??T= DOWN READFAIL,4 4 ?##W [ 17 ?#SG [*****************************************************: 16 ?*#6 [ WE ARE GOING TO INITIATEE A RESTORE BY MAKING A 16 ?*RQ [ FRESTUSER ENTRY ( LOCKOUT IS REQUIRED TO PREVENT 12 ?B?B [ TWO LENGTHENERS AT THE SAME TIME) 4 ?BR2 [ 5 ?C=L WAITPUT 9 ?CQ= LDX 2 BSACHAPTR 12 ?D9W POP WAITPUT,2,FTABWAIT 8 ?DPG CALL 1 SUB2 10 ?F96 LDX 0 ALOGLEN(2) 7 ?FNQ ADN 0 8 9 ?G8B ALTLENG 2,0,SUB2 9 ?GN2 LDX 2 BSACHAPTR 10 ?H7L VOP 2,FTABWAIT 8 ?HM= CALL 1 SUB2 7 ?J6W TOPFCB 3 9 ?JLG LDN 6 FME1(3) 8 ?K66 SMO A1(2) 9 ?KKQ LDN 7 FRUSE(2) 17 ?L5B MOVE 6 3 [ PUT IN USERNAME 8 ?LK2 SMO FX2 9 ?M4L LDN 6 ASUPUSER 8 ?MJ= SMO A1(2) 9 ?N3W LDN 7 FRSUP(2) 18 ?NHG MOVE 6 3 [ AND SUPERIOR USERNAME 7 ?P36 NGN 0 1 8 ?PGQ SMO A1(2) 17 ?Q2B STO 0 FRINC(2) [ INCREMENT NO. = -1 8 ?QG2 SMO A1(2) 17 ?Q_L STOZ FRFIL(2) [ AND ZERO FILE NO. 7 ?RF= LDN 0 8 8 ?RYW ADS 0 A1(2) 9 ?SDG ADS 0 FRCNT(2) 19 ?SY6 BPZ 5 RESINIT [ J. IF NOT 'FILEBENT' ENTRY 4 ?TCQ [ 15 ?TXB [*********************************************: 15 ?WC2 [ IF 'FILEBENT' WE WANT TO REPEAT SEARCH SO WE 17 ?WWL [ REMEMBER WHICH BLOCK WE THOUGHT TO BE CORRUPT SO THAT 15 ?XB= [ WE CAN CHECK IF SAME BLOCK CORRUPT NEXT TIME 4 ?XTW [ 7 ?Y*G TOPFCA 3 10 ?YT6 LDX 0 FREADBLOCK(3) 9 ?_#Q SBN 0 FBLKS-1 8 ?_SB LDX 3 A1(2) 7 #2#2 SBN 3 8 18 #2RL SMO 3 [ PUT BLOCK NO. IN FRFIL 21 #3?= STO 0 FRFIL(2) [ SO CAN CHECK IF SAME BLOCK NXT TIME 5 #3QW XBENTRPT 7 #4=G LDX 3 0 7 #4Q6 SBN 3 1 7 #59Q LDN 2 3 7 #5PB LDN 5 1 9 #692 LDN 6 JPDNUMA 9 #6NL CALL 7 OUTPACK 7 #78= TOPFCB2 3 9 #7MW LDN 2 FME1(3) 7 #87G LDN 5 3 10 #8M6 LDN 6 JPDUSERNAME 20 #96Q CALL 7 OUTPACK [ OUTPUT DETAILS OF CORRUPT BLOCK 16 #9LB LDX 3 XBLOCKWRONG(1) [ TO OPERATORS 9 #=62 CALL 7 MONOUT 20 #=KL BRN NCLOSE [ ABANDON MAPPING OF THIS DIR. 5 #?5= RESINIT 7 #?JW LDX 4 5 7 ##4G TOPFCB 3 8 ##J6 LDX 1 FX1 15 #*3Q TESTNAMX 3,FME1(3),NMASTER(1),NOTMASTER 18 #*HB GEOERR 1,MASBENT [ CAN'T RESTORE :MASTER 4 #B32 [ 18 #BGL [******************************************************** 16 #C2= [ INFORM OPERATORS THAT RESTORE HAS BEEN INITIATED 4 #CFW [ 6 #C_G NOTMASTER 9 #DF6 LDN 2 FME1(3) 7 #DYQ LDN 5 3 10 #FDB LDN 6 JPDUSERNAME 9 #FY2 CALL 7 OUTPACK 10 #GCL LDN 2 NINITIATED(1) 7 #GX= LDN 5 4 10 #HBW LDN 6 JPDVARCHAR 9 #HWG CALL 7 OUTPACK 10 #JB6 LDN 2 NREADFAIL(1) 9 #JTQ BZE 4 XRFAIL 11 #K*B LDN 2 NCORRUPTION(1) 5 #KT2 XRFAIL 7 #L#L LDN 5 3 10 #LS= LDN 6 JPDVARCHAR 9 #M?W CALL 7 OUTPACK 10 #MRG LDX 3 XPRMESS(1) 9 #N?6 CALL 7 MONOUT 16 #NQQ SEGENTRY K60BMAPONE [ USED BY PRQUERY 17 #P=B BRN NOQUERY [ RESTORE TIME MACRO 19 #PQ2 DOWN BMQUESTB,5 [ TO ASK IF A 'PM' IS WANTED 5 #Q9L NOQUERY 20 #QP= BRN NCLOSE [ TO ABANDON MAPPING OF THIS DIR. 2 #R8W 5 #RNG SKELETON 10 #S86 GEOERR 1,SKELETON 4 #SMQ XBR 9 #T7B GEOERR 1,BMAPONE 4 #TM2 [ 12 #W6L MENDAREA BMAPGAP,K99BMAPONE 4 #WL= [ 4 #X5W #END 2 #XKG 6 ____ ...335012600001