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