INCWRITE865

(George Source)

Macros used: ACROSS, ALTLENG, BACKSPACE, BC, BS, BWNZ, BWZ, BXE, BXGE, CLOSETHROW, DOWN, FC, FON, FREECORE, GEOERR, GETDIR, HUNT2, HUNTMISB, HUNTW, JBC, JBCS, JBS, JBSC, JFNZ, JMBS, MBC, MBS, MENDAREA, MFREEW, MHUNTW, NAME, OPEN, OPENRELN, READAGAIN, REWIND, REWRITE, SEG, SEGENTRY, STEP, STEPAGAIN, STEPREWRITE, TESTNAME, TESTNAMX, TESTREP2, TOPFCB, TOPFCB2, TRACEIF

INCWRITE865.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1