14 22FL ... SEG INCWRITE,864,FILESTORE,INCDUMP 4 22_= # 12 23DW SEGENTRY K1INCWRITE,X1INCWRITE 4 24XQ # 4 25CB # 18 25X2 # AWORK1 USED TO HOLD FILE NUMBER OF FILE BEING DUMPED 19 26BL # ALSO USED BY WRITESFS SR TO DISTINGUISH BETWEEN 21 26W= # COMPOSITE ESF AND SIMPLE ESF- NEEDS TO KNOW WHETHER TO 13 27*W # OUTPUT FILEDUMPED MESSAGE 4 27TG # 16 28*6 # AWORK2 HOLDS THE ECOPS WORD OF THE NAME REC 17 28SQ # FOR CHECKING AGAINST THE BLOCKS RECORD. 4 29#B # 17 29S2 # AWORK3 HOLDS ZERO OR THE INDEX NO. OF THE FILE 19 2=?L # FOR CHECKING AGAINST THE INDEX RECORD.ALSO USED 13 2=R= # BY THE FILE DUMPING CODE 4 2?=W # 16 2?QG # AWORK4 HOLDS NO. OF TRAPS RECORDS EXPECTED. 18 2#=6 # FOR CHECKING AGAINST ACTUAL TRAPS RECORDS. 4 2#PQ # 15 2*9B # X6 HOLDS SIZE OF FILE BEING DUMPED. 4 2*P2 # 4 2B8L # 6 2BN= # CONSTANTS 4 2C7W # 17 2CMG YB5B1 4HB5B1 [LANGUAGE FOR JDFS 19 2D76 MLANCOMP 4HC1 [LANGUAGE FOR COMPOSITE S/F 18 2DLQ NCLEANDAY +864000/K9*100 [NO. OF CLEANCTS PER DAY 7 2DQM ...#UNS AMTGR 4 2DWJ ...#SKI 4 2F2F ...( 9 2F6B MDUMP 12HDUMPER 9 2FL2 MMAST 12HMASTER 4 2FPX ...) 6 2FTS ...#UNS AMTGR 9 2F_P ...MSYST 12HSYSTEM 4 2G5L # 7 2GK= # SUBROUTINES 4 2H4W # 4 2HJG # 21 2J46 XFDUMPCOM [ GETS POINTER IN X1 TO FI FDUMPCOM 8 2JHQ SMO FX2 15 2K3B STO 0 ACOMMUNE1 [ SAVE LINK 21 2KH2 HUNTMISB 1,FI,FDUMPCOM [ FIND FDUMPCOM IN MISCELLAN. CHAIN 8 2L2L SMO FX2 9 2LG= LDX 0 ACOMMUNE1 7 2L_W EXIT 0 0 14 2MFG XLOCFINC [SR TO LOCATE FINC BLOCK 8 2M_6 SMO FX2 15 2NDQ STO 0 ACOMMUNE1 [SAVE LINK 10 2NYB MHUNTW 1,FILE,FINC 20 2PD2 JBC NFLINC2,,BFILEINC [J IF WE DONT WANT THE 2ND FINC 17 2PXL HUNT2 1,FILE,FINC,1 [LOOK FOR 2ND FINC 5 2QC= NFLINC2 8 2QWW SMO FX2 18 2RBG LDX 0 ACOMMUNE1 [RESTORE LINK AND EXIT 7 2RW6 EXIT 0 0 4 2S*Q # 4 2STB # 4 2T*2 # 4 2TSL # 18 2W#= SFINDQUAL [S/R USED TO LOCATE FQUAL BLOCK FOR LOCKC 15 2WRW [X2 -> BLOCK . CALLED ON X1 10 2X?G MHUNTW 2,FILE,FQUAL 7 2XR6 EXIT 1 0 4 2Y=Q # 4 2YQB # 4 2_=2 # 18 2_PL SFINDFABS [S/R USED TO LOCATE FABSNB FOR ALTLENG 14 329= [X2->BLOCK. CALLED ON X1. 10 32NW MHUNTW 2,FILE,FABSNB 7 338G EXIT 1 0 4 33N6 # 4 347Q # 17 34MB XCHECKBAT [S/R TO CHECK WHETHER A GIVEN INCR NO 17 3572 [IS A PREVIOUS INCR OF CURRENT BATCH 18 35LL LDX 2 INCUNFIN(1) [POSN OF LIST IN VARIABLE 18 366= [PART OF FILE FINC BLOCK 10 36KW ADX 2 FINCTRD(1) 20 375G LDX 0 INCBATCH(1) [NO. OF PREVIOUS INCRS IN BATCH 9 37K6 BRN XCHECK 2 384Q 19 38JB XCHECKREL [S/R TO CHECK WHETHER A GIVEN INCR NO IS AN 15 3942 [INCOMPLETE (UNRELIABLE) INCR 10 39HL LDX 2 FINCTRD(1) 18 3=3= LDX 0 INCUNFIN(1) [NO OF INCOMPLETE INCRS 9 3=GW BRN XCHECK 2 3?2G 20 3?G6 XCHECKRD [SR TO CHECK WHTHER TTTP WANTS AN INCR REDUMPED 20 3?_Q LDN 2 0 [OFFSET OF LIST WITHIN LIST AREA 15 3#FB [OF FINCPROC 17 3#_2 LDX 0 FINCTRD(1) [NO OF INCS IN LIST 2 3*DL 19 3*Y= XCHECK [COMMON CODE TO BOTH S/RS. ON ENTRY TO BOTH 19 3BCW [X1->FINC BLOCK, X5=INCR NO, X4 IS S/R LINK 12 3BXG [USES X0 AND X2 21 3CC6 [IF INCR NO IS IN APPROPRIATE LIST ROUTINE EXITS 4 0 14 3CWQ [OTHERWISE IT EXITS 4 1 2 3DBB 21 3DW2 ADN 2 INCLISTS-1(1) [X2->WORD BEFORE START OF APPR. LIST 15 3F*L BZE 0 NRELBAT [J IF EMPTY 5 3FT= MOREIN 7 3G#W SMO 0 15 3GSG BXE 5 0(2),RELBAT [J IF IN LIST 17 3H#6 BCT 0 MOREIN [J IF MORE IN LIST 5 3HRQ NRELBAT 15 3J?B EXIT 4 1 [NOT IN LIST 5 3JR2 RELBAT 14 3K=L EXIT 4 0 [IN LIST 4 3KQ= # 4 3L9W # 21 3LPG XCHECKTTTP [ FINDS WHETHER THERE ARE ANY TO BE R 15 3M96 [ INCREMENTS 12 3MNQ JBS NOREDUMPED,,BATCHFIN 19 3N8B # DONT SEARCH FOR REDUMPED INCRS IF WE HAVE FINISHED A BATCH 13 3NN2 # OR HAVE NOT STARTED FROM BEGINNING 13 3P7L JBC NOREDUMPED,,BATCHSTART 18 3PM= LDX 0 INCUNFIN(1) [ NO OF T B REDUMPED INCS 8 3Q6W SMO FX2 18 3QLG STO 1 ACOMMUNE1 [ SAVE POINTER TO FINC 21 3R66 MHUNTW 1,FILE,FINCPROC [ POINTER TO FINCPROC FOR P D CASE 10 3RKQ LDX 0 INCUNFIN(1) 20 3S5B ADX 0 FINCTRD(1) [ NO OF TTTP REDUMPED INCREMENTS 8 3SK2 SMO FX2 9 3T4L LDX 1 ACOMMUNE1 20 3TJ= BNZ 0 REDUMPED [ JUMP IF TO BE REDUMPED INCREMENTS 6 3W3W NOREDUMPED 20 3WHG EXIT 4 1 [ EXIT 1 IF NO INCS T B REDUMPED 5 3X36 REDUMPED 17 3XGQ EXIT 4 0 [ OTHERWISE EXIT 0 18 3Y2B TIMESTART [SR TO START TIMING A DELAY FOR STATS. 16 3YG2 [CALLED ON X7. ON EXIT X1->FINC 14 3Y_L CALL 0 XLOCFINC [X1->FINC 9 3_F= LDX 0 CLEANCT 10 3_YW STO 0 INCTIMING(1) 7 42DG EXIT 7 0 4 42Y6 # 4 43CQ # 18 43XB TIMEND [SR TO WIND UP TIMING OF DELAY FOR STATS. 18 44C2 [CALLED ON X7,ON EXIT X1->FINC,X0=TIME 14 44WL CALL 0 XLOCFINC [X1->FINC 9 45B= LDX 0 CLEANCT 10 45TW SBX 0 INCTIMING(1) 21 46*G BPZ 0 NMIDNIGHT [J IF IT DIDNT HAPPEN OVER MIDNIGHT 8 46T6 SMO FX1 17 47#Q ADX 0 NCLEANDAY [ADD A DAYS CLEANCTS 6 47SB NMIDNIGHT 7 48#2 EXIT 7 0 4 48RL # 4 49?= # 21 49QW NEXTNAME [S/R TO SKIP BLOCK INDEX AND TRAP RECS OF A DIR ENT 15 4==G [ON ENTRY, X3->NAME RECORD 11 4=Q6 [CALLED ON X4 19 4?9Q [ON EXIT, DIR POSITIONED BEFORE NEXT NAME REC 12 4?PB [USES X0 AND X5 18 4#92 LDEX 5 ECOPSN(3) [GET NO OF BLOCKS RECS 16 4#NL ADX 5 ENUSEN(3) [ADD NO OF TRAPS 16 4*8= JBC NOTIND,3,BNINDEX [J IF NOT INDEXED 17 4*MW ADN 5 1 [ADD 1 FOR INDEX REC 5 4B7G NOTIND 18 4BM6 BZE 5 XPOS [J IF ALREADY POSITIONED 8 4C6Q SBX 4 FX1 5 4CLB MSKIP 16 4D62 STEP [STEP A RECORD 17 4DKL BZE 3 XCORRUPT [J IF UNEXPECTED EOF 18 4F5= BCT 5 MSKIP [J IF MORE RECS TO SKIP 8 4FJW ADX 4 FX1 4 4G4G XPOS 7 4GJ6 EXIT 4 0 4 4H3Q # 4 4HHB # 4 4J32 # 20 4NX= RESTARTFREE [FREES ALL RESTART BLOCKS SET UP BY RESTARTDATA 11 4PBW [CALLED ON X4 10 4PWG HUNTW 3,FI,FDUMPFAB 8 4QB6 BNG 3 (4) 7 4QTQ FREECORE 3 10 4R*B BRN RESTARTFREE 4 4RT2 # 4 4S#L # 4 4SS= # 4 4T?W # 17 4TRG TREEDECR [DECREASE NO. OF LEVELS IN FABSNB BY 1 . 19 4W?6 [ON ENTRY, X4 IS S/R LINK. 15 4WQQ [ON EXIT, X1->FABSNB. USES X0. 20 4X=B [BRANCHES TO END OF INCREMENT IF WOULD EMPTY FABS. 15 4XQ2 MHUNTW 1,FILE,FABSNB [X1-> FABSNB 8 4Y9L LDX 0 A1(1) 17 4YP= SBN 0 6 [DECREASE REC. HEADER 17 4_8W BNG 0 MASFIN [J IF FABSNB EMPTY 8 4_NG STO 0 A1(1) 7 5286 EXIT 4 0 4 52MQ # 4 537B # 21 5PL6 SETESFS [SETS UP WORD A1(ESF SENT),WORD A1+1 & ZEROISES LOCAL NAM 12 5Q5Q [OF QUALIFIER BLOCK. 21 5QKB [ON ENTRY, X6= NO. OF BLOCKS WRITTEN SINCE LAST SENTINEL. 16 5R52 [ X4 IS S/R LINK. 21 5RJL [ON EXIT, X3->QUALIFIER BLOCK, X6= NO. OF BLOCKS WRITTEN. 13 5S4= [ USES X0 & X1. 16 5SHW MHUNTW 3,FILE,FQUAL [X3-> FQUAL BLOCK 8 5T3G LDCT 0 #400 20 5TH6 STO 0 ESENTYP(3) [SET 'END OF SUBFILE SENTINEL' 19 5W2Q STOZ ESENBP(3) [ZEROISE WORD 1 OF SENTINEL 9 5WGB LDN 0 ESENBP(3) 10 5X22 LDN 1 ESENBP+1(3) 18 5XFL MOVE 0 18 [ZEROISE REST OF SENTINEL 8 5X_= SMO FX2 21 5YDW LDX 0 AWORK1 [SET BLOCK NO. IN ESFS SAME AS IN BSF 9 5YYG STO 0 ESENFN(3) 19 5_D6 STO 6 ESENBP(3) [SET UP NO. OF BLOCKS WRITTEN 7 5_XQ EXIT 4 0 4 62CB # 4 62X2 # 21 63BL # FINDS A FILE/ENT BLOCK, WRIITES TO IT DUMPING INFORMATION, REMOVES 14 63W= # TO-BE-DUMPED BIT & SETS MK 6+ FORMAT BIT. 19 64*W # IT THEN REWRITES THE RECORD, ASSUMING THE DIR TO BE POSITONED 19 64TG # ON ENTRY, X4 IS S/R LINK. 5 65*6 PINFORM 8 65SQ SBX 4 FX1 8 66#B LDX 2 FX2 16 66S2 MHUNTW 3,FILE,ENT [X3-> ENT BLOCK 17 67?L NAME 3,FILE,FWB [RENAME ENTRY AS FWB 14 67R= CALL 0 XLOCFINC [X1->FINC 21 68=W ... JBS NOUPDATE,1,BINCRFAIL [DONT UPDATE DIRENT IF FAILED FILE 17 68QG JBS PMISS,3,BEREVERE [J IF ^REVERE^ FILE 18 69=6 MBC 3,BEDUMP,BEDIRDUMP [CLEAR ^TO-BE-DUMPED^ & 21 69PQ [ ^DUMP EVEN IN DIR. ONLY INCR.^ BI 5 6=9B PMISS 19 6=P2 BC 3,BEPFCC [CLEAR ^PFCCS REQUIRED^ BIT 19 6?8L BS 3,BEDUMP6 [SET ^MK6+ DUMP FORMAT^ BIT 18 6#7W FC 3,FEFSNO [CLEAR 'ALIEN FILE' FIELD 2 6#MG 8 6*76 LDX 0 EDATE 19 6*LQ STO 0 EDLD(3) [SET _UP DATE OF LAST DUMP 9 6B6B LDX 0 CLEANCT 18 6BL2 STO 0 ETLD(3) [ AND TIME 9 6C5L LDX 5 INCNO(1) 9 6CK= LDX 0 EUSE1(3) 16 6D4W BZE 0 NDIR [J IF NOT A DIR 19 6DJG DOWN INCVFCHK,5 [ FINDFCB AND CLEAR BIT 10 6F46 MHUNTW 3,FILE,FWB 16 6FHQ CALL 0 XLOCFINC [ POINTER TO FINC 18 6G3B STO 5 EINCLOOK(3) [UPDATE INCR LAST SCANNED 17 6GH2 JBC NGENR,1,BINCGENRES [J IF NOT POT GEN RES 6 6GKK ...#UNS AMTGR 20 6GN8 ... BRN NRESTART [ NO LONGER ANY RESTART FOR DIRS 6 6GQR ...#UNS AMTGR 4 6GTB ...#SKI 4 6GX_ ...( 20 6H2L JBC NRESTART,1,BINCDUMP [UNLESS WE HAVE DUMPED :DUMPER 20 6HG= [WE DO NOT TAKE RESTART DATA FOR 15 6H_W [DIRECTORIES. 4 6J9N ...) 4 6JFG NDIR 19 6J_6 JBC NRESTART,,BPARALLEL [J IF NOT IN PARALLEL MODE 19 6KDQ JBS NRESTART,,BFILEINC [IF WE HAVE DUMPED A 21 6KYB DOWN INCEOT,9 [FILE ON THE RESTORABLE INCR 21 6LD2 MHUNTW 3,FILE,FWB [OF A PARALLEL DUMP WE MUST RECORD 21 6LXL ... CALL 0 XLOCFINC [THE PREVIOUS DUMPING DETAILS IN CASE 21 6MC= [A TAPE EVENT ON THE FILE-ONLY INCR 20 6MWW [FORCES US TO UNDUMP THE FILE. 5 6NBG NRESTART 18 6NW6 STO 5 EINC(3) [UPDATE INCR LAST DUMPED 9 6P*Q LDX 0 AWORK1(2) 17 6PTB STO 0 EFILNUM(3) [UPDATE FILE NUMBER 7 6Q*2 LDN 0 1 19 6QSL ADS 0 INCFILNUM(1) [UPDATE COUNT OF FILES DUMPED 5 6R#= NGENR 17 6RRW REWRITE [REWRITE NAME REC. 5 6S?G NOUPDATE 8 6SR6 ADX 4 FX1 7 6T=Q EXIT 4 0 4 6TQB # 4 7S36 # 4 7SGQ # 19 7T2B XKEEPBUFS [SETS KEEP USAGE BLOCKS MARKER FOR TOP FILE 16 7TG2 [ON ENTRY X2=FX2, ON EXIT X2=FCB 7 7T_L TOPFCB2 2 20 7WF= LDX 0 FBLMOD(2) [IF DIR TOO BIG DONT KEEP U.B. S 19 7WYW SEGENTRY INCDIRLIM [ALLOW MODIFICATION OF LIMIT 10 7XDG SBN 0 FBLKS-A1+1 16 7XY6 BPZ 0 (4) [EXIT IF TOO BIG 9 7YCQ BS 2,BFCORE 7 7YXB EXIT 4 0 4 7_C2 # 4 7_WL # 6 82B= X1INCWRITE 19 82TW MHUNTW 3,FILE,FINC [CHECK EOT/FAIL DIDNT OCCURR 21 83*G [WHILE WRITING ANY START SENTINELS 9 83T6 LDX 0 INCACT(3) 16 84#Q BNZ 0 MTEOT [J IF TAPE EVENT 16 84SB JBC NEOT1,,BPARALLEL [J IF TWO INCS 15 85#2 HUNT2 3,FILE,FINC [X3->2ND FINC 9 85RL LDX 0 INCACT(3) 17 86?= BNZ 0 MTEOT [J IF ENDOF TAPE/FAIL 5 86QW NEOT1 20 87=G BC ,BFILEINC [ENSURE FILE INCR MARKER CLEAR 20 87Q6 LDN 5 0 [SET UP ENVIRONMENT TO ENTER MAIN 20 889Q LDN 6 0 [LOOP CODE AS IF CLIMBING UP TREE 16 88PB STOZ AWORK1(2) [FROM INFERIOR 8 8992 BRN X1ENT 2 89NL 4 8=8= # 15 8=MW # PASS 1 SCANS THROUGH THE DIR OPEN ON ENTRY 16 8?7G # IF IT FINDS ANY INFERIOR USERS, IT CLOSES THE DIR 12 8?M6 # AND GOES DOWN TO DEAL WITH THEM 4 8#6Q # 5 8#LB PASS1 14 8*62 # SKIP FIRST PASS IF THERE NO INFERIORS 20 8*KL TOPFCB 3 [ X3 POINTS TO FCB OF DIRECTORY 15 8B5= TRACEIF K6INCWRITE,199,299,FME1(3),USER 15 8BJW TRACEIF K6INCWRITE,199,299,COMM(3),COMM 17 8C4G JBC PASS2,3,BFDIRBELOW [ JUMP IF TERMINAL 15 8CJ6 TRACEIF K6INCWRITE,199,299,FME1(3),PASS1 6 8D3Q PASS1NXTREC 17 8DHB STEP [X3->NEXT NAME REC 18 8F32 PASS1B [OCCASIONAL RE-ENTRY HERE 15 8FGL [FROM PASS 3 14 8G2= BZE 3 PASS2 [J IF EOF 17 8GFW BWNZ ERESN(3),XCORRUPT [J IF NOT NAME REC 16 8G_G BWZ EUSE1N(3),NODUMP1 [J IF NOT A DIR 16 8HF6 JBS NODUMP1,3,BNTEMP [J IF TEMPORARY 18 8HYQ JBS XERASDIR,3,BNERASE [J IF MARKED TO-BE-ERASED 10 8JDB MHUNTW 1,FILE,FINC 20 8JY2 LDX 5 EINCLOOKN(3) [GET INCR NO WE LAST LOOKED HERE 18 8KCL BXE 5 INCNO(1),NODUMP1 [J IF IT WAS THIS INCR 6 8KF* ...#UNS AMTGR 4 8KH4 ...( 10 8KJR ... JBC NMTGR,,BMTGR 8 8KLG ... LDX 1 FX1 18 8KN9 ... TESTNAME 3,EUSE1N(3),MSYST(1) [TEST DIR = SYSTEM 17 8KPY ... BNZ 7 NEXTDOWN [J. DIR = SYSTEM 5 8KRM ...NMTGR 4 8KTB ...) 11 8KX= MHUNTW 1,FILE,FINCPROC 19 8LBW CALL 4 XCHECKBAT [WAS IT A PREV. INCR IN BATCH 18 8LWG BRN RELI [IF IT WAS, J TO CHECK 17 8MB6 [ON ITS RELIABILITY 18 8MTQ NEXTDOWN [NO, SO WE DEAL WITH IT 20 8N*B # ON NON-RESTOREABLE INCREMENTS WE DO NOT OPEN EMPTY DIRECTORIES 17 8NT2 # OR TERMINAL DIRECTORIES WITH NO TO BE DUMPED FILES 10 8P#L MHUNTW 1,FILE,FINC 15 8PS= JMBS PASS1DOWN,1,BINCGENRES,BINCTOTD 20 8Q?W [ JUMP IF RESTOREABLE INCREMENT 16 8QRG [ OR DUMP TOTAL 9 8R?6 LDX 0 ECOPSN(3) 8 8RQQ SRL 0 15 18 8S=B BZE 0 NODUMP1 [ SKIP EMPTY DIRECTORY 14 8SQ2 JMBS PASS1DOWN,3,BNDIRBELOW,BNDUMP 15 8T9L # JUMP IF INFERIORS OR FILES TO BE DUMPED 8 8TP= # OPEN DIRECTORY 20 8W8W CALL 4 XCHECKTTTP [ ANY TTTP-REDUMPED INCREMENTS ? 17 8WNG BRN PASS1DOWN [ YES OPEN DIRECTORY 15 8X86 BRN NODUMP1 [ NO SKIP IT 6 8XMQ PASS1DOWN 10 8Y7B MHUNTW 1,FILE,FINC 19 8YM2 JBS NOSENT1,1,BINCCMPSENT [J IF COMP S/F SENT ALEADY 17 8_6L JBC NOSENT1,1,BINCGENRES [J IF NOT POT GEN RES 18 8_G* ... DOWN INCMON,4 [SET UP START OF COMP S/F 15 8_W4 ... [AND WRITE IT 8 923X ... BRN MTEOT1 10 929R ... MHUNTW 1,FILE,FINC 5 92KG NOSENT1 17 9356 BC 1,BINCCMPSENT [CLEAR COMP S/F BIT 20 93JQ READAGAIN [GET FILE/ENT FOR USE IN OPENREL 10 944B MHUNTW 3,FILE,FRB 9 94J2 NAME 3,FILE,ENT 4 953L # 16 95H= # SET UP FLOCNB FROM ENT AND OPEN INFERIOR DIR 4 962W # 15 96GG MHUNTW 2,FILE,FLOCNB [X2->FLOCNB 16 9726 TRACEIF K6INCWRITE,199,299,EUSE1(3),INC DIR 9 97FQ LDX 1 HCOLUSER 18 97_B STO 1 A1(2) [A1 OF FLOCNB ) 4H000: 9 98F2 LDN 0 EUSE1(3) 9 98YL LDN 1 A1+1(2) 17 99D= MOVE 0 3 [MOVE ACROSS USERNAME 9 99XW STOZ A1+4(2) 9 9=CG STOZ A1+5(2) 7 9=X6 TOPFCB 3 20 9?BQ BC 3,BFCORE [CLEAR THIS BIT A S CLOSE DOESNT 18 9?WB CALL 7 TIMESTART [START TIMING OPEN DELAY 10 9#B2 OPENRELN NOBREAK,CLEAN 20 9#TL CALL 7 TIMEND [UPDATE TIME SPENT WAITING FOR DIRS 10 9**= ADS 0 INCDIRWAIT(1) 17 9*SW CALL 4 XKEEPBUFS [KEEP ITS SAGE BLOCKS 14 9B#G MHUNTW 3,FILE,FABSNB [X3->FABS 17 9BS6 LDX 5 A1(3) [X5 IS RECORD HEADER 10 9C?Q LDX 0 ALOGLEN(3) 7 9CRB ADN 5 6 17 9D?2 BXGE 0 5,NAMESUFF [J IF FABS BIG ENOUGH 16 9DQL ALTLENG 3,5,SFINDFABS [INCREASE FABS 15 9F== MHUNTW 3,FILE,FABSNB [X3->FABSNB 5 9FPW NAMESUFF 17 9G9G STO 5 A1(3) [UPDATE RECORD HEADER 7 9GP6 SMO 5 9 9H8Q LDN 2 A1-6(3) 10 9HNB MHUNTW 1,FILE,FLOCNB 8 9J82 ADN 1 A1 19 9JML MOVE 1 6 [UPDATE FABS WITH NEW NAME 20 9K7= BRN PASS1 [START PASS 1 FOR THIS NEW DIR 5 9KLW NODUMP1 18 9L6G CALL 4 NEXTNAME [SKIP TO NEXT NAME REC 10 9LL6 BRN PASS1NXTREC 19 9M5Q RELI CALL 4 XCHECKREL [CHECK IF INCR WAS RELIABLE 20 9MKB BRN NEXTDOWN [IF NOT (MARKED AS UNRELIABLE) 18 9N52 [GO DOWN AND DEAL WITH IT 19 9NJL BRN NODUMP1 [IF IT WAS, SKIP DIRECTORY 5 9P4= XERASDIR 19 9PHW JBC NODUMP1,,BFERUS [IGNORE T.B.ERASED DIRS IF 20 9Q3G [FERUS NOT SET UP. CAN HAPPEN IF 20 9QH6 [INCREMENT NOT POTENTIALLY SUIT 15 9R2Q [FOR GENRES 20 9RGB DOWN INCEOT,3 [GO TO DEAL WITH TO-BE-ERASED USER 15 9S22 STEPAGAIN [X3->ENTRY 20 9SFL BRN NODUMP1 [GO TO EXAMINE MORE DIR ENTRIES 4 9S_= # 16 9TDW # PASS 2 DUMPS ANY TERMINAL FILES NEEDING DUMPING 14 9TYG # IT DOES NOT CLOSE THE DIR AS IT DOES SO. 4 9WD6 # 5 9WXQ PASS2 15 9XCB REWIND [REWIND DIR. 16 9XX2 TOPFCB2 3 [X3->FCB OF DIR 21 9YBL BS 3,BFFREZ [SET 'FROZEN BY DUMPER' BIT IN FCB 7 9YW= FON 6 21 9_*W [WAIT UP ANY WAITERS SOTHEY CAN OUTPU 16 9_TG [WAITING MESSAGE 10 =2*6 MHUNTW 1,FILE,FINC 16 =2SQ MBC 1,BINCGETDIR,BINCTERMINL,BINCMDUMP 21 =3#B # CLEAR ALL BITS - WE HAVE7NT DUMPED A TERMINAL FILE OR ^GETDIR^ EDA 12 =3S2 JBS PASS2YES,1,BINCTOTD 18 =4?L [ SEARCH IF DUMP TOTAL 14 =4R= # SEARCH IF THERE ARE TO BE DUMPED FILES 20 =5=W JBS PASS2YES,3,BFDUMP [ FILES TO BE DUMPED ?? 19 =5QG CALL 4 XCHECKTTTP [ TTTP REDUMPED INCREMENTS 15 =6=6 BRN PASS2YES [ YES SEARCH 20 =6PQ JBC PASS3,1,BINCGENRES [ NO - SKIP IF NOT RESTOREABLE 21 =79B JBS PASS2YES,3,BFALLINCS [ MUST SEARCH - ALWAYS DUMP 21 =7P2 JBC PASS3,3,BFJOB4ASTR [ NO USER JOBLIST DONT SEAR 21 =88L DOWN INCVFCHK,7 [DOES A GETDIR TO FIND JOBL 17 =8N= TOPFCB2 3 [ GET FCB AGAIN 5 =97W PASS2YES 15 =9MG TRACEIF K6INCWRITE,199,299,FME1(3),USER 15 ==76 TRACEIF K6INCWRITE,199,299,COMM(3),PASS2 17 ==LQ TRACEIF K6INCWRITE,199,299,INCREPLY(1),INCREPLY 17 =?6B TRACEIF K6INCWRITE,199,299,INCUNFIN(1),INCUNFIN 12 =?L2 JBS NAME2,1,BINCGENRES 21 =#5L BC 3,BFCORE [IF LAST PASS DONT KEEP USAGE BLOCKS 5 =#K= NAME2 17 =*4W STEP [X3->NEXT NAME REC 20 =*JG BZE 3 PASS2STATS [ CALCULATE INFO ON PASS2 DIRS 9 =B46 LDX 0 ELANN(3) 8 =BHQ SMO FX1 18 =C3B BXE 0 YB5B1,YJDF [ TREAT JDF AS PERMANENT 17 =CH2 JBS NODUMP2,3,BNTEMP [ JUMP IF TEMPORARY 4 =D2L YJDF 19 =DG= BWZ EUSE1N(3),TERMINAL [ JUMP IF A TERMINAL FILE 5 =D_W NODUMP2 17 =FFG CALL 4 NEXTNAME [ SKIP TO NEXT ENTRY 8 =F_6 BRN NAME2 5 =GDQ XCORRUPT 19 =GYB GEOERR BRIEFPM,DIRWRONG [ UNEXPECTED END OF DIRECTORY 18 =HD2 TERMINAL [WE HAVE A TERMINAL FILE 7 =HXL LDN 1 0 17 =JC= JBC NINDEX2,3,BNINDEX [ JUMP IF NOT INDEXED 17 =JWW LDX 1 EINDEXN(3) [ PICK UP INDEX NO 5 =KBG NINDEX2 21 =KW6 STO 1 AWORK3(2) [ STORE INDEX NO IN AWORK3 OR ZERO 21 =L*Q BWNZ ESAVECOUNTN(3),SVFRZ [T-B-E FILES DUMPED IF SAVEFROZEN 17 =LTB JBS NODUMP2,3,BNERASE [J IF TO-BE-ERASED 5 =M*2 SVFRZ 11 =MSL MHUNTW 1,FILE,FINCPROC 17 =N#= LDX 5 EINCN(3) [X5=INCR LAST DUMPED 15 =NRW JBS TGENR,3,BNALLINCS [J IF A VSF 19 =P?G JBS YDUMP2,3,BNDIRDUMP [J IF MUST DUMP EVEN IF ITS 16 =PR6 [A DIR ONLY DUMP 7 =Q=Q #UNS FTS2REVERT 21 =QQB JFNZ ZALIENFILE1,3,FNFSNO [DONT CHECK INCNUM OF ALIEN FILES 20 =R=2 CALL 4 XCHECKREL [IS IT IN A TO-BE-REDUMPED INCR 21 =RPL [IE AN INCOMPLETE OR UNRELIABLE INCR 14 =S9= BRN NOTFIN [J IF SO 20 =SNW CALL 4 XCHECKRD [IS INCR TO BE REDUMPED FOR TTTP 14 =T8G BRN YDUMP2 [J IF SO 6 =TN6 ZALIENFILE1 18 =TXY ... JBS YDUMP2,3,BNDUMP [ALWAYS DUMP IF T.B.D. 10 =W7Q MHUNTW 1,FILE,FINC 21 =WF6 ... JBC NODUMP2,1,BINCTOTD [OTHERWISE DUMP IF AND ONLY IF TOTAL 20 =WQG ... MHUNTW 1,FILE,FINCPROC [DUMP AND FILE NOT ALREADY DUMPED 18 =X3W ... CALL 4 XCHECKBAT [IN THIS BATCH OF INCS 9 =X*= ... BRN NODUMP2 20 =XDB ... MHUNTW 1,FILE,FINC [ THE PARALLEL FILES ONLY INCS 20 =XHG ... BXGE 5 INCNO(1),NODUMP2 [ AREN'T COUNTED AS IN THIS BATCH 5 =XLL YDUMP2 17 =Y6= LDN 5 0 [FILE OFFLINE MARKER 9 =YKW LDEX 0 ECOPSN(3) 15 =YP2 ...# THIS CODE IS TO CORRECT BUG 1878 18 =YS6 ...# IF A DIRECTORY CONTAINS OFF-LINE FILES MARKED 18 =YX= ...# TO-BE-DUMPED , ENSURE THE TO-BE-DUMPED BIT IS 18 =_2B ...# NOT CLEARED IN THE DIRECTORY'S DIR. ENTRY. 4 =_5G ...# 21 =_8L ... BNZ 0 NOTOFL [FILE IS ON-LINE AND NEEDS DUMPING 5 =_?Q ...YDUMP6 17 =_BW ... CALL 0 XFDUMPCOM [X1 -> FI/FDUMPCOM 21 =_G2 ... BS 1,BFDUMPCOM [SET TO STOP 'BEDUMP'BEING CLEARED 10 =_K6 ... MHUNTW 1,FILE,FINC 10 =_N= ... BS 1,BINCMDUMP 7 =_RB ... LDN 5 0 9 =_WG ... BRN XOFFLINE 20 =__L ...# ---------------------------------------------------- 5 ?24Q NOTOFL 13 ?2JB JMBS REVCARE,3,BNREVERE,BNCARE 18 ?342 [J IF CAREFUL OR REVERED 17 ?3HL JBS XOPEN,3,BNUWB [J IF OPEN UNCLEANLY 4 ?43= # 4 ?4GW # 17 ?52G REVCARE [ONLINE AND MUST DUMP 19 #87G DOWN INCMON,2 [DOWN TO DUMP FILE NOT OPEN 17 #8M6 ... BRN XINCEND [EOT OR FAIL EXIT 15 #96Q ... LDX 0 ACOMMUNE1(2) [RESET AWORK1 15 #9LB ... STO 0 AWORK1(2) [FROM INCMON 21 #=62 POSIT [BACKSPACE OVER BLOCKS AND INDEX RECS 19 #=KL BACKSPACE [A B/SPACE FOR THE BLOCKS REC 16 #?5= BWZ AWORK3(2),POSOK [J IF NOT INDEXED 19 #?JW BACKSPACE [A B/SPACE FOR THE INDEX REC 5 ##4G POSOK 19 ##J6 CALL 4 PINFORM [REWRITE UPDATED DIR ENTRY 19 #*3Q BC ,BFILEINC [CLEAR FILEONLY INCR MARKER 9 #*HB MFREEW FILE,FWB 18 #B32 STEPAGAIN [ GET POINTER TO RECORD 10 #BGL MHUNTW 1,FILE,FINC 21 #C2= JBS PASS3,1,BINCGETDIR [ SKIP REST OF SEARCH I 20 #C7D ... CALL 0 XLOCFINC [IF CORRUPT FILE,ENSURE PREVIOUS 21 #C#L ... JBSC XOFFLINE,1,BINCRFAIL [INCREMENT FOR FILE NOT OBSOLETE 9 #CFW BRN NODUMP2 5 #C_G NOTFIN 19 #DF6 LDN 5 0 [SET ^FILE OFFLINE^ MARKER 9 #DYQ LDEX 0 ECOPSN(3) 16 #FDB ... BZE 0 YDUMP6 [J IF FILE OFFLINE 21 #FY2 STEPREWRITE [REWRITE DIR. ENTRY (CLEAN - NOT CARE 21 #GCL [DON'T WANT AUTON. CLOSE ACTS. SET UP 18 #GX= BS 3,BNDUMP [SET ^TO-BE-DUMPED^ BIT 21 #HBW [- HAS TO BE SET THEN SINCE OTHERWISE 21 #HWG [FILE IS OPEN FOR WRITING WE FORGET I 21 #JB6 [IS TO BE REDUMPED (INCR. RECORD DELE 16 #JTQ [AT END OF BATCH) 10 #K*B MHUNTW 1,FILE,FINC 9 #KT2 BS 1,BINCMDUMP 19 #L#L BRN NOTOFL [J TO DUMP FILE IF POSSIBLE 5 #LS= TGENR 10 #M?W MHUNTW 1,FILE,FINC 18 #MRG JBS YDUMP2,1,BINCGENRES [DUMP VSF IF POT GEN RES 17 #N?6 BRN NODUMP2 [BUT NOT OTHERWISE 5 #NQQ XOPEN 17 #P=B CALL 0 XFDUMPCOM [ X1-> FI FDUMPCOM 14 #PQ2 # FILE WAS OPEN UNCLEANLY SO WE HAVE TO 21 #Q9L # SET BFDUMPCOM BIT TO PREVENT BEDUMP BIT IN DIRECTORY BEING CLEARED 10 #QP= BS 1,BFDUMPCOM 21 #R8W LDN 5 1 [SET ^FILE OPEN FOR WRITING^ MARKER 5 #RNG XOFFLINE 7 #S86 #UNS FTS2REVERT 17 #SMQ JFNZ NODUMP2,3,FNFSNO [IGNORE IF ALIEN FILE 19 #T7B HUNTW 1,FILE,FINCPROC [X1-> FINCPROC BLOCK (IF ANY) 9 #TM2 BNG 1 NODUMP2 18 #W6L LDX 7 FINCTRD(1) [NO OF TTP REDUMPED INCS 15 #WL= BZE 7 NODUMP2 [J IF NONE 15 #X5W LDX 4 EINCN(3) [X4=INCR NO 5 #XKG NPROC 7 #Y56 SMO 7 21 #YJQ BXE 4 INCLISTS-1(1),PROC [J IF INCR TO BE REDUMPED FOR TTTP 21 #_4B BCT 7 NPROC [J IF MORE PROCESSED INCR. NOS. TO SE 9 #_J2 BRN NODUMP2 4 *23L PROC 21 *2H= DOWN INCPROC,1 [DEAL WITH FILE DUMPED IN PROCESSED I 7 *32W STEPAGAIN 10 *3GG BRN NODUMP2 6 *426 PASS2STATS 10 *4FQ MHUNTW 1,FILE,FINC 12 *4_B TOPFCB 2 [ 12 *5F2 LDX 6 FBLMOD(2) [ 17 *5YL SBN 6 FBLKS-A1 [ SIZE OF DIRECTORY 13 *6D= JBS TERMIFILES,1,BINCTERMINL 16 *6XW # DIRECTORY SEARCHED IN VAIN FOR FILES TO DUMP 12 *7CG ADS 6 INCDIRNVAIN(1) [ 6 *7X6 TERMIFILES 12 *8BQ ADS 6 INCDIRSRCH(1) [ 4 *8WB # 18 *9B2 # PASS 3 DUMPS THE DIR AND CLOSES IT, RETURNING UP THE TREE 17 *9TL # TO RESUME PASS 1 OF THE SUP DIR(IF IT STILL EXISTS) 4 *=*= # 5 *=SW PASS3 8 *?#G LDX 2 FX2 10 *?S6 MHUNTW 1,FILE,FINC 17 *#?Q JBC NODUMP3,1,BINCGENRES [J IF NOT POT GEN RES 17 *#RB JBC NOPLL3,,BPARALLEL [J IF NOT IN PLL MODE 6 *#X? ...#UNS AMTGR 4 **38 ...#SKI 4 **75 ...( 10 **?2 MHUNTW 2,FILE,FABSNB 8 **QL ADX 2 A1(2) 8 *B== LDX 3 FX1 18 *BPW TESTNAMX 3,MDUMP(3),A1-5(2),NDUMPER [J IF NOT :DUMPER 19 *C9G BS 1,BINCDUMP [SHOW DUMPER HAS BEEN DUMPED 9 *CP6 BRN YDUMPER 5 *D8Q NDUMPER 18 *DNB TESTNAMX 3,MMAST(3),A1-5(2),NMASTER [J IF NOT : ASTER 19 *F82 BC 1,BINCDUMP [FORGET HAVE DUMPED :DUMPER 5 *FML NMASTER 20 *G7= JBS YDUMPER,1,BINCDUMP [UNLESS HAVE DUMPED DUMPER OR ARE 20 *GLW CALL 4 RESTARTFREE [ABOUT TO FORGET ANY RESTARTDATA 9 *H6G BRN RFREEDATA 20 *HL6 YDUMPER [ONCE FILES UNDER :DUMPER ARE DUMPED NO FILE ONLY INCR 19 *J5Q [CAN BE SET UP WITHOUT REWINDING RESTORABLE INCR TO 20 *JKB [BEFORE DUMPER AS DUMPER MIGHT NOT REFLECT ITS EXISTENCE 20 *K52 [THEREFORE ONCE DUMPER IS PASSED WE REMEMBER ALL DUMPED 17 *KJL [FILES AND DIRS WHICH MAY NEED DEUPDATING 10 *L4= CALL 4 RESTARTDATA 4 *L87 ...) 6 *L#4 ...#UNS AMTGR 10 *LC_ ... CALL 4 RESTARTFREE 6 *LHW RFREEDATA 10 *M3G MHUNTW 1,FILE,FINC 8 *MH6 LDX 2 FX2 5 *N2Q NOPLL3 18 *XSQ DOWN INCMON,1 [DOWN TO DUMP FILE OPEN 17 *Y9= ... BRN XINCEND [EOT OR FAIL EXIT 16 *YKQ ... LDX 0 ACOMMUNE1(2) [RESET AWORK1 15 *_2= ... STO 0 AWORK1(2) [FROM INCMON 10 *_BQ ... MHUNTW 1,FILE,FINC 5 *_R= NODUMP3 19 B2=W BS 1,BINCCMPSENT [SET COMP S/F BIT FOR SUP DIR 14 B2QG TOPFCB2 1 [X1->FCB 19 B3=6 BC 1,BFFREZ [REMOVE FROZEN BY DUMPER BIT 15 B3PQ MHUNTW 2,FILE,FLOCNB [X2->FLOCNB 8 B49B ADN 1 FLOC1 8 B4P2 ADN 2 A1 18 B58L MOVE 1 3 [SET UP FLOCNB FROM FCB 7 B5N= LDN 0 1 14 B67W STO 0 3(2) [REEL=1 14 B6MG STO 0 4(2) [LANG=1 8 B776 SMO FX1 9 B7LQ LDX 0 MLANCOMP 14 B86B STO 0 5(2) [LANG=C1 17 B8L2 CALL 0 XFDUMPCOM [ XI -> FI FDUMPCOM 10 B95L BC 1,BFDUMPCOM 7 B9K= TOPFCB 2 16 B=4W LDN 0 FREEL(2) [ MOVE LOCAL NAME 18 B=JG LDN 1 FDUMPUSER(1) [ INTO FDUMPCOM 12 B?46 MOVE 0 3 [ 17 B?HQ CALL 7 TIMESTART [START TIMING DELAY 16 B#3B CLOSETHROW [CLOSE THE DIR 19 B#H2 LDN 5 1 [SET DIR JUST CLOSED MARKER 5 B*2L UPTREE 20 B*G= CALL 4 TREEDECR [SHRINK FABS FINISHING IF JUST 16 B*_W [CLOSED MASTER 19 BBFG X1ENT [X1 EVENTUALLY ENTERS HERE 17 BB_6 OPEN NOBREAK,CLEAN,QUERY [TRY AND OPEN SUP DIR 10 BCDQ TESTREP2 OK,REPOK3 17 BCYB [SUP DIR(S) ERASED 16 BD88 ... MHUNTW 1,FILE,FINC [HUNT FINC BLOCK 20 BDD2 LDN 5 0 [REMOVE DIR JUST CLOSED MARKER 17 BDXL JBC UPTREE,1,BINCGENRES [J IF NOT POT GEN RES 20 BFC= JBCS UPTREE,1,BINCCMPSENT [NECESSARY IF WE ENTER FRON X1 21 BFWW LDN 6 0 [ZERO FILE SIZE (FOR END C SF SENT 16 BGBG STOZ AWORK1(2) [ZERO FILE NUMBER 18 BGW6 CALL 4 SETESFS [SET UP END COMP S/F SENT 16 BH*Q ... DOWN INCMON,3 [WRITE AN ESFS 9 BHTB BRN UPTREE 5 BJ*2 REPOK3 16 BJSL CALL 4 XKEEPBUFS [KEEP USAGE BLOCKS 19 BK#= BZE 5 PASS1 [J IF HAVE COME UP >1 LEVEL 21 BKRW GETDIR 1 [POSITION DIR ON BLOCKS REC OF DIR 15 BL?G [JUST DUMPED 17 BLR6 CALL 7 TIMEND [ UPDATE TIME WAITING 10 BM=Q ADS 0 INCDIRWAIT(1) 19 BMQB TESTREP2 OK,XCHECKDIR [IF OK, CHECK ITS STILL A DIR 5 BN=2 TOPASS1 19 BNPL STEPAGAIN [X3->NEXT NAME REC FOR PASS1 8 BP9= BRN PASS1B 6 BPNW XCHECKDIR 16 BQ8G MHUNTW 3,FILE,ENT [X3->FILE/ ENT 10 BQN6 MHUNTW 1,FILE,FABSNB 7 BR7Q LDN 2 3 21 BRMB ADX 1 A1(1) [NOW A1+1(1)-A1+3(1) IS USERNAME DUMP 17 BS72 USNAMCH [CHECK STILL SAME DIR 7 BSLL SMO 2 8 BT6= LDX 0 A1(1) 7 BTKW SMO 2 10 BW5G ERX 0 EUSE1-1(3) 18 BWK6 BNZ 0 NOT [J IF USERNAME CHANGED 9 BX4Q BCT 2 USNAMCH 18 BXJB CALL 4 PINFORM [REWRITE UPDATED FILE/ENT 10 BY42 MHUNTW 3,FILE,FWB 15 BYHL ADN 3 A1 [X3->NAME REC 18 B_3= CALL 4 NEXTNAME [SKIP TO NEXT NAME REC 9 B_GW MFREEW FILE,FWB 16 C22G BRN PASS1 [RE ENTER PASS1 19 C2G6 NOT [DIRECTORY HAS BEEN REPLACED 21 C2_Q MFREEW FILE,ENT [BY FILE OR DIR OF SAME LOCAL NAME 16 C3FB BRN TOPASS1 [RE-ENTER PASS1 4 C3_2 # 4 C4DL # 15 C4Y= MASFIN [END OF BATCH 10 C5CW MHUNTW 1,FILE,FINC 20 C5XG MBS 1,BINCENDBAT,BINCFIN [SHOW INC FINISHED AND EN BATCH 20 C6C6 JBC NPLLFIN,,BPARALLEL [DO SAME FOR 2ND INC IF PLL DUMP 10 C6WQ HUNT2 1,FILE,FINC,1 12 C7BB MBS 1,BINCENDBAT,BINCFIN 5 C7W2 NPLLFIN 9 C8*L ... DOWN INCMON,5 5 C8T= ...XINCEND 9 C9#W ... ACROSS INCEND,1 4 CY?= # 4 D29Q # 4 D2PB # 5 D392 MTEOT 9 D3DR ... DOWN INCMON,7 5 D3NK ...MTEOT1 9 D3TS ... ACROSS INCEND,1 4 D48= # 5 D4MW NOBREAK 19 D57G GEOERR BRIEFPM,INCBREAK [DUMPER CANT BE BROKEN IN ON 4 D5M6 # 11 D66Q MENDAREA 40,K99INCWRITE 4 D6LB #END 6 ____ ...547320420008