INCCHECK860

(George Source)

Macros used: ALTLEN, BC, BI, BS, BSXD, BWNZ, BWZ, BXE, BXGE, BXU, CLOSETOP, DELETE, DOWN, FILEMOVE, FREECORE, FREETAB, GEOERR, JBC, JBS, JMBAC, MBS, MBSXD, MENDAREA, MHUNTW, MONOUT, MONOUTX, NAME, OPENINC, OPENSYS, OUTBLOCN, OUTPACK, READAGAIN, REPLACE, REWIND, SEG, SEGENTRY, SETNCORE, SETUPTAB, STEP, STEPAGAIN, STEPWRITE, TABSET, TABULATE, TESTNAMX, TRACE, UP

INCCHECK860.txt
22FL ...      SEG   INCCHECK,850,MIKE PUTNAM,INCDUMP
22^=    #   
23DW          SEGENTRY K1INCCHECK,X1INCCHECK
23NN ...      SEGENTRY  K2INCCHECK,X2INCCHECK   
23YG    #   
24D6    #  ENTERED DURING BACKMAP IN EMS.   
24XQ    #  CHECKS THAT :SYSTEM.INCINDEX & :DUMPER ARE COMPATIBLE.  IF THEY ARE N
25CB    #  TAKES ACTION AS APPROPRIATE. 
25JJ ...#  BOTH X1 AND X2 ENTRIES ARE USED BUT AT DIFFERENT 
25PQ ...#  STAGES OF EMS
25X2    #   
26BL    #   
26W=    NAME           12HGEO3DUMPTAPE  
27*W    MPROC          12HGEO3PROCTAPE  
27TG    MBOT  ANDN  0  #7777               [THIS 'OBEYED' IF JUMP ADDRESS IN B12
28*6    MTOP  SRL   0  12                  [THIS 'OBEYED' IF JUMP ADDRESS IN  B0
28SQ    MREM           +INCREMOVE          ["ENTRY FOR MT %A REMOVED FROM RECORD
29#B                                       [   FOR INCREMENT %B"
29S2    MMTMARK        +INCMTMARK          ["ENTRY FOR MT %A IN RECORD FOR INCRE
2=?L                                       [   %B MARKED 'NO TSN PRESENT'"  
2=R=    MMISS          +INCMISS            ["ENTRY FOR MT %A PRESENT IN RECORD F
2?=W                                       [   INCREMENT %B BUT NOT IN :DUMPER" 
2?QG    MMARK          +INCMARK            ["MT %A NOT MARKED 'USED BY DUMPER' S
2#=6                                       [   CONTAINS INCREMENTS SUITABLE FOR 
2#PQ                                       [           RETRIEVING"  
2*9B    #   
2*P2    # DECISION TABLE
2B8L    #   
2BN=    MDECIDE        +NC  
2C7W    #FID  0     11 +NA  
2CMG                   +NA  
2D76    #FID  0     11 +NB  
2DLQ                   +ND  
2F6B    #FID  0     11 +NA  
2FL2                   +NE  
2G5L    #FID  0     11 +NA  
2GK=    #   
2H4W    #  SUBROUTINES  
2HJG    #   
2J46    #  JUST TO STEPWRITE TO FILE OPEN AT DEPTH 0.  STEPWRITE EXPANSION TOO  
2JHQ    #  LARGE TO USE IT MORE THAN ONCE   
2K3B    #  ON ENTRY, X3->RECORD BEING STEP-WRITTEN.    S/R LINK IN X6   
2KH2    #  ON EXIT , X1=FX1, X2=FX2, X3->RECORD STEP-WRITTEN. COORS.  USES X0.  
2L2L    #   
2LG=    STEPWRITE   
2L^W          SBX   6  FX1  
2MFG          STEPWRITE                    [REWRITE RECORD IN FILE AT DEPTH 0   
2M^6          ADX   6  FX1  
2NDQ          EXIT  6  0
2NYB    #   
2PD2    #  ASSEMBLES THE PARAMETERS OF A MON. FILE MESSAGE OF WHICH TSN IS 1ST  
2PXL    #  PARAMETER & INCR. NO. 2ND PARAMETER AND OUTPUTS A SPECIFIED MESSAGE. 
2QC=    #  ON ENTRY,X0= UNIVERSAL IDENTIFIER OF MESSAGE, X3-> CURRENT RECORD IN 
2QWW    #           INCINDEX, X7= TSN OF MT.       X6 IS LINK.  
2RBG    #  ON EXIT ,X1=FX1, X2=FX2, X3-> CURRENT RECORD, X7=TSN.
2RW6    #           COORS. USES X0, AWORK1. 
2S*Q    #   
2STB    MESS
2T*2          SBX   6  FX1  
2TSL          LDX   3  AINCNO-A1(3)        [X3= INCR. NO.   
2W#=          SMO      FX2  
2WRW          STO   0  AWORK1              [REMEMBER WHIFH MESSAGE (IN AWORK1)  
2X?G          OUTBLOCN 6
2XR6          OUTPACK  7,1,TSN             [ TSN AS PARAMETER   
2Y=Q          OUTPACK  3,1,INCNUM          [ INC.NO. AS PARAMETER   
2YQB          MONOUTX  AWORK1(2)           [OUTPUT APPROPRIATE MESSAGE  
2^=2                                       [  TO CENTRAL OPS CONSOLE
2^PL          STEPAGAIN                    [X3-> INCINDEX RECORD
329=          ADX   6  FX1  
32NW          EXIT  6  0
338G    #   
33N6    #   
347Q    #  ---------------------------------------------------------------------
34MB    #   
3572    #     OPEN INCINDEX & :DUMPER IN GENERAL MODE & SET UP FINTER BLOCK.
35LL    #     FORMAT OF FILE/FINTER BLOCK :-
366=    #           2-WORD ENTRIES FOR EACH TAPE IN :DUMPER CALLED GEO3DUMPTAPE.
36KW    #              1ST WORD :  TSN  
375G    #              2ND WORD :  B0  TAPE MARKED 'USED' IN :DUMPER
37K6    #                          B1  TAPE MENTIONED IN INCINDEX BUT NOT MARKED
384Q    #                              'RELEASED'   
38JB    #                          B2  TAPE TO BE MARKED AS 'UNUSED' - MARKED AS
3942    #                              RELEASED IN INCINDEX 
39HL    #                          B3  TAPE IS A GEO3DUMPTAPE   
3=3=    #                          B4  TAPE IS A GEO3PROCTAPE   
3=GW    #                          B5  INSERT 'USED BY DUMPER' BIT (GEO3DUMPTAPE
3?2G    #   
3?G6    X1INCCHECK  
3?^Q          OPENINC  ,GENERAL            [OPEN INCINDEX   
3#FB          DOWN  INCTAPES,2             [OPEN :DUMPER IN GENERAL MODE
3#^2          SETNCORE 0,2,FILE,FINTER     [FINTER BLOCK READY FOR MT WORD PAIRS
3*DL                                       [       FOR GEO3DUMPTAPES
3*Y=    #   
3BCW    #     GOES THROUGH :DUMPER PICKING OUT ALL TAPES CALLED GEO3DUMPTAPE & S
3BXG    #     UP AN ENTRY FOR THEM IN FILE/FINTER BLOCK . SETS B0 OF 2ND WORD IN
3CC6    #     IF TAPE MARKED AS USED BY THE DUMPER  
3CWQ    #   
3DBB    PSTEP   
3DW2          STEP                         [X3-> NEXT RECORD IN :DUMPER 
3F*L          BZE   3  PEND                [J IF END OF :DUMPER 
3FT=          LDX   0  ERES-A1(3)   
3G#W          BNZ   0  PSTEP               [J IF NOT NAME RECORD
3GSG          LDX   4  ESER-A1(3)          [X4= SERIAL NO. IF MT
3H#6          BZE   4  PSTEP               [J IF NOT A MT   
3HRQ          TESTNAMX 3,NAME(1),ELOC1-A1(3),PNOTDUMP,2 
3J?B                                       [J IF NOT GEO3DUMPTAPE   
3JR2          LDCT  5  #040               [SET GEO3DUMPTAPE MARKER  
3K=L    POK 
3KQ=          ORX   5  EINCLOOK-A1(3)      [SET "BEING USED BY DUMPER" BIT IF SE
3L9W          MHUNTW   3,FILE,FINTER
3LPG          LDX   6  ALOGLEN(3)   
3M96          ADN   6  2
3MNQ          ALTLEN   3,6,FILE,FINTER     [LENGTHEN FINTER BY 2 WORDS  
3N8B          MHUNTW   3,FILE,FINTER
3NN2          SMO      6
3P7L          STO   4  A1-2(3)             [INSERT TSN IN 1ST WORD OF PAIR IN FI
3PM=          SMO      6
3Q6W          STO   5  A1-1(3)             [INSERT STATE OF TAPE INTO 2ND WORD  
3QLG    #SKI  K6INCCHECK>199-199
3R66    (   
3RKQ          TRACE 4,INCSERDU             [TSN OF GEO3DUMPTAPE 
3S5B          TRACE 5,INCSERST             [STATE OF TAPE (B0 IF USED BY DUMPER)
3SK2    )   
3T4L          BRN      PSTEP
3TJ=    PNOTDUMP
3W3W          TESTNAMX 3,MPROC(1),ELOC1-A1(3),PSTEP,2   
3WHG                                       [J IF NOT GEO3PROCTAPE EITHER
3X36          LDCT  5  #020               [SET GEO3PROCTAPE 
3XGQ          BRN      POK  
3Y2B    PEND
3Y2T ...#   
3Y3# ...#  NOW WE OPEN :SYSTEM.SERIAL AND SET UP THE MTWRONG BITS   
3Y3R ...#  IN THE FINTER STATE WORD FOR EACH TAPE   
3Y4= ...#   
3Y4P ...      OPENSYS  ,SERIAL,READ 
3Y58 ...SSTEP   
3Y5M ...      STEP                         [X3->NEXT SERIAL RECORD  
3Y66 ...      BZE   3  SEND                [J IF EOF
3Y6K ...      TESTNAMX 3,MDUMP(1),2(3),SSTEP,2  
3Y74 ...                                   [J IF NOT DUMPER TAPE
3Y7H ...      LDX   4  1(3)                [TSN OF TAPE 
3Y82 ...      MHUNTW   2,FILE,FINTER
3Y8F ...      LDX   6  ALOGLEN(2)   
3Y8Y ...      SRL   6  1                   [X6=NO OF FINTER ENTRIES 
3Y9C ...      BZE   6  SSTEP               [J IF NONE   
3Y9W ...SNEXT   
3Y=* ...      BXE   4  A1(2),SFOU          [J IF TAPE FOUND IN FINTER   
3Y=S ...      ADN   2  2                   [A1(2) IS NEXT TAPE TSN IN FINTER
3Y?? ...      BCT   6  SNEXT               [J IF MORE TSNS IN FINTER
3Y?Q ...      BRN      SSTEP               [TAPE NOT IN FINTER  
3Y#9 ...SFOU
3Y#N ...      LDCT  0  #030 
3Y*7 ...      ANDX  0  5(3)                [EXTRACT WRONGED BITS
3Y*L ...      BZE   0  SSTEP               [J IF NOT WRONGED
3YB5 ...      SRL   0  18                [GET WRONGED BITS IN B22-23
3YBJ ...      ORS   0  A1+1(2)             [KEEP IN FINTER STATE WORD   
3YC3 ...                                   [STATE WORD  
3YCG ...      BRN      SSTEP
3YC^ ...MDUMP          12HDUMPER
3YDD ...SEND
3YDX ...      CLOSETOP                     [CLOSE SERIAL
3YG2    #   
3Y^L    #  MOVE INCINDEX TO DEPTH 0 SO CAN STEPWRITE AT LEVEL 0 WHEN WANT TO
3^F=    #  CHANGE RECORD IN IT. 
3^YW          FILEMOVE 0,1                 [MOVE INCINDEX TO DEPTH 0 , :DUMPER D
42DG          STOZ     AWORK2(2)           [ZEROISE "INC. NO. IN PREVIOUS RECORD
42Y6    #   
43CQ    #   
43XB    #  ---------------------------------------------------------------------
44C2    #   
44WL    #  NOW GO THROUGH INCINDEX COMPARING THE TAPES MENTIONED & THEIR STATE W
45B=    #  TAPES IN FILE/FINTER BLOCK.  
45TW    #  ACTION IS TAKEN ACCORDING TO THE FOLLOWING DECISION TABLE (ADDRESSES 
46*G    #  BRANCH TO ARE SHOWN):-   
46T6    #   
47#Q    #     ----- :DUMPER    ^  TAPE USED      TAPE NOT USED     TAPE ABSENT  
47SB    #          ----        ^
48#2    #     INCINDEX --------^
48RL    #  --------------------^------------------------------------------------
49?=    #     IN OBSOLETE      ^     NA                NC              NC   
49QW    #     INCREMENT RECORD ^
4==G    #                      ^
4=Q6    #     IN OBSOLETE      ^
4?9Q    #     INCR. REC. &     ^     NB                NA              NA   
4?PB    #     MARKED 'RELEASED'^
4#92    #                      ^
4#NL    #     IN NON-OBS. INCR.^
4*8=    #     SUITABLE FOR     ^     NA                NE              NE   
4*MW    #     RETRIEVING       ^
4B7G    #                      ^
4BM6    #     IN NON-OBS. INCR.^
4C6Q    #     NOT SUITABLE FOR ^     NA                ND              ND   
4CLB    #     RETRIEVING       ^
4D62    #                      ^
4DKL    #   
4F5=    QSTEP   
4FJW    #  READ NEXT INCINDEX RECORD
4G4G          STEP                         [X3-> NEXT RECORD IN INCINDEX
4GJ6          BZE   3  QEND                [J IF END OF INCINDEX
4H3Q          LDEX  0  FRH(3)   
4HHB          SBN   0  AMAG-A1  
4J32          BNG   0  QDEL                [DELETE RECORD IF TOO SHORT & PUT OUT
4JGL                                       [   MESSAGE (INCR. NO. COULD BE GARBL
4K2=          LDX   0  AWORK2(2)
4KFW          BXGE  0  AINCNO-A1(3),QWRONGORD [J IF INC. NOS. IN WRONG ORDER
4K^G          LDX   0  AINCNO-A1(3) 
4LF6          STO   0  AWORK2(2)           [REMEMBER CURRENT INCR. NO.  
4LYQ          LDX   4  AMTS-A1(3)          [X4= NO. OF TAPE ENTRIES IN RECORD   
4MDB          LDN   5  AMAG-A1             [X5= MOD. DOWN RECORD
4MY2    #SKI  K6INCCHECK>199-199
4NCL    (   
4NX=          TRACE AINCNO-A1(3),INC INC   [INCREMENT NO.   
4PBW          TRACE AINCSTATE-A1(3),INCSTATE [STATE OF INCREMENT
4PWG    )   
4QB6    QNEXTTAPE   
4QTQ    #  PICK UP THE TSN & STATE WORD FROM NEXT TAPE ENTRY IN INCINDEX RECORD 
4R*B          BZE   4  QCHECK              [J IF NO MORE MT ENTRIES IN THIS RECO
4RT2          SBN   4  1                   [REDUCE COUNT OF TAPES   
4S#L          SMO      5
4SS=          LDX   7  0(3)                [X7= TSN OF TAPE ENTRY   
4T?W          BPZ   7  REALTAPE            [J IF NOT DUMMY ENTRY
4TRG          JBC   QNTAPE,3,BINSUITRVR    [REMOVE ENTRY UNLESS NSUITRV 
4W?6          BRN      QMOD                [IF NSUITRV,IGNORE IT
4WQQ    REALTAPE
4X=B          SMO      5
4XQ2          LDX   2  AMAGSTATE-AMAG(3)   [STATE WORD OF MT ENTRY  
4^8W          TRACE 7,INC TSN              [TSN OF MT ENTRY 
4^NG          TRACE 2,INCMTSTA             [STATE WORD OF MT ENTRY  
52MQ    #   
537B    #  NOW SEE IF THE TAPE IN X7 IS MENTIONED IN FILE/FINTER BLOCK (I.E. IN 
53M2    #  :DUMPER).
546L    #  IF IT IS PRESENT IN :DUMPER & MARKED 'USED', X2 IS SET TO THE ADDRESS
54L=    #           READY TO PICK UP THE ADDRESS IN THE TOP HALF OF THE REQUIRED
555W    #           IN THE DECISION TABLE.  
55KG    #  IF IT IS NOT PRESENT OR IS NOT MARKED 'USED', X2 IS SET TO MBOT  
5656    #           READY TO PICK UP THE ADDRESS IN THE BOTTOM HALF OF THE REQUI
56JQ    #  ALSO SETS B1 (TAPE PRESENT IN INCINDEX & NOT IN THAT INCR. RECORD MAR
574B    #                 'RELEASED') OF STATE WORD FOR TAPE IN FILE/FINTER BLOC
57J2    #                 APPROPRIATE.  
583L          MHUNTW   1,FILE,FINTER
58H=          LDX   6  ALOGLEN(1)   
592W    QNEXTTSN
59GG          BZE   6  QNOTUSED            [J IF TAPE NOT IN :DUMPER
5=26          SBN   6  2
5=FQ          SMO      6
5=^B          BXU   7  A1(1),QNEXTTSN      [J IF ENTRY FOR TSN NOT YET FOUND
5?24 ...      SMO      FX2  
5?2Q ...      STO   4  AWORK4             [SAVE X4 OVER REUSE   
5?3D ...      SMO      6
5?46 ...      LDEX  4  A1+1(1)             [PICK UP WRONGED BITS
5?4S ...      LDCT   0  #060
5?5G ...      ANDX   0  2                   [EXTRACT BITS FROM AMAGSTATE WORD   
5?68 ...      SRL   0  19   
5?6W ...      BXE   0   4,WREQ             [J IF EQUIVALENT 
5?7J ...      CALL   6 STEPWRITE
5?8= ...      SLL   4  19   
5?8Y ...      LDCT   0  #060
5?9L ...      ERX   0  GMINUS1             [MASK OUT BITS IN REC
5?=# ...      SMO      5
5??2 ...      ANDS  0  AMAGSTATE-AMAG(3)
5??N ...      SMO      5
5?#B ...      ORS   4  AMAGSTATE-AMAG(3)   [MAKE THEM EQUIVALENT
5?*4 ...      LDX   4  AWORK4(2)           [RESTORE SAVED X4
5?*Q ...      BRN      REALTAPE            [LOOP BACK TO REFIND FINTER ENTRY
5?BD ...WREQ
5?C6 ...      SMO      FX2  
5?CS ...      LDX   4  AWORK4                   [RESTORE SAVED X4   
5?F2          SLC   2  2
5?YL          BNG   2  QREL                [J IF TAPE RELEASED  
5#D=          LDCT  0  #200 
5#XW          SMO      6
5*CG          ORS   0  A1+1(1)             [SET "MENTIONED IN INCINDEX" BIT IN T
5*X6    QREL
5BBQ          SMO      6
5BWB          LDX   0  A1+1(1)             [X0= STATE OF TSN IN :DUMPER 
5CB2          LDN   2  MTOP                [OPTIONALLY SET TOP HALF OF DEC. WORD
5CTL          BNG   0  QUSED               [J IF TAPE USED  
5D*=          SLL   0  4
5DSW          BNG   0  QUSED               [J IF PROC TAPE (ALWAYS TREAT AS "USE
5F#G                                       [   BY DUMPER" FOR DECISION TABLE
5FS6    QNOTUSED
5G?Q          LDN   2  MBOT                [NEED BOTTOM HALF OF DECISION TABLE W
5GRB    QUSED   
5H?2    #  DECIDE WHICH WORD IN DECISION TABLE IS NEEDED & BRANCH TO THE ADDRESS
5HQL    #  THE APPROPRIATE HALF OF IT.  
5J==          LDN   1  0                   [CLEAR MODIFIER DOWN DECISION TABLE  
5JPW          LDX   0  AINCSTATE-A1(3)  
5K9G          SLC   0  4
5KP6          SMO      5
5L8Q          LDX   6  AMAGSTATE-AMAG(3)
5LNB          SRC   6  7
5M82          BNG   6  QMTOBS              [J IF TAPE IS MARKED AS OBSOLETE 
5MML          BPZ   0  QNOTOBS             [J IF INCR. NOT OBSOLETE 
5N7=    QMTOBS  
5NLW          SLC   6  9
5P6G          BPZ   6  QDEC                [J IF TAPE NOT MARKED "RELEASED" IN I
5PL6                                       [          (WORD 0 OF DECISION TABLE)
5Q5Q          ADN   1  1                   [WORD 1 OF TABLE 
5QKB          BRN      QDEC 
5R52    QNOTOBS 
5RJL          ADN   1  2
5S4=          SLC   0  1
5SHW          BNG   0  QDEC                [J IF NOT SUITABLE FOR RETRIEVING
5T3G                                       [       (WORD 2 OF DECISION TABLE)   
5TH6          ADN   1  1                   [WORD 3 OF DECISION TABLE FOR RELIABL
5W2Q    QDEC
5WGB          SMO      FX1  
5X22          LDX   0  MDECIDE(1)          [X0= REQUIRED WORD IN DECISION TABLE 
5XFL          SMO      FX1  
5X^=          OBEY     0(2)                [X0= ADDRESS TO BRANCH TO
5YDW          ADX   0  FX1  
5YYG          EXIT  0  0                   [GO TO ACT IN REQUIRED WAY   
5^D6    #   
5^XQ    #  HAVING DEALT WITH RECORD AS NECESSARY, IF ALL TAPES HAVE NOW BEEN REM
62CB    #  FROM THE RECORD, DELETE IT & OUTPUT A MESSAGE.   
62X2    #   
63BL    QCHECK  
63W=          LDX   4  AMTS-A1(3)          [X4= NO. OF TAPES IN RECORD  
64*W          BNZ   4  QSTEP               [J IF TAPES STILL LEFT IN THIS RECORD
64TG    QDEL
65*6 ...      OUTPACK AINCNOR(3),1,INCNUM   
65SQ ...      MONOUT   INCDELETED   
66#B ...      DELETE
67?L          BRN      QSTEP
67R=    QWRONGORD   
68=W          GEOERR   BRIEFPM,INCWRORD    [INCINDEX RECORDS IN WRONG ORDER 
68QG    #   
69=6    #   
69PQ    #   
6=9B    NA                                 [TAPE IS OK  
6=P2    #SKI  K6INCCHECK>199-199
6?8L          TRACE 7,INCTSNOK             [TAPE IS OK - NOTHING TO DO  
6?N=    QMOD
6#7W          ADN   5  INCMAGLEN           [UPDATE MOD. DOWN MT LIST IN RECORD  
6#MG          BRN      QNEXTTAPE
6*76    #   
6*LQ    NB  
6B6B    #  TAPE NO LONGER TO BE MARKED 'USED' IN :DUMPER UNLESS IT HAS BEEN USED
6BL2    #  AGAIN IN ANOTHER NON-OBSOLETE INCREMENT. 
6C5L    #   
6CK=    #  SETS B2 OF STATE WORD FOR TAPE IN FILE/FINTER BLOCK, 
6D4W    #     HAVING FOUND TAPE IS MARKED 'RELEASED' IN INCINDEX.   
6DJG    #SKI  K6INCCHECK>199-199
6F46          TRACE 7,INCNUSED             [TAPE TO BE MARKED NOT "USED" IN :DUM
6FHQ          MHUNTW   1,FILE,FINTER
6G3B          LDX   6  ALOGLEN(1)   
6GH2    NBTSN   
6H2L    #SKI  K6INCCHECK
6HG=          BZE   6  NBGEOERR            [J IF TSN ENTRY NOT IN FINTER BLOCK  
6H^W                                       [       (TSN PREVIOUSLY FOUND IN :DUM
6JFG          SBN   6  2                   [DECREASE MOD. IN FINTER BLOCK   
6J^6          SMO      6
6KDQ          BXU   7  A1(1),NBTSN         [CONTINUE TO LOOK FOR TSN
6KYB          LDCT  0  #100 
6LD2          SMO      6
6LXL          ORS   0  A1+1(1)             [SET "RELEASED IN INCINDEX" BIT IN ST
6MC=                                       [       WORD FOR TSN IN FINTER BLOCK 
6MWW          BRN      QMOD 
6NBG    NBGEOERR
6NW6    #SKI  K6INCCHECK
6P*Q          GEOERR   BRIEFPM,INCNOTSN    [TSN ABSENT FROM FINTER BLOCK
6PTB    #   
6Q*2    NC  
6QSL    #  REMOVE ENTRY FOR THIS MT FROM INCREMENT RECORD   
6R#=    #   
6T=Q    QNTAPE                             [ENTRY TO DELETE TAPE
6TQB                                       [WITHOUT MESSAGE 
6W=2          READAGAIN                    [READ RECORD FOR REPLACE 
6WPL          MHUNTW   3,FILE,FRB   
6X9=          NAME     3,FILE,FWB   
6XNW          LDX   6  A1+FRH(3)           [X6= LENGTH OF RECORD
6Y8G          SBN   6  INCMAGLEN
6YN6          STO   6  A1+FRH(3)           [REDUCE RECORD HEADER BY INCMAGLEN   
6^7Q          LDN   0  1
6^MB          SBS   0  AMTS(3)             [REDUCE NO. OF TAPES BY 1
7272          LDN   2  A1(3)
72LL          ADX   2  5                   [X2-> ELEMENT IN FWB TO REMOVE   
736=          LDN   1  INCMAGLEN(2) 
73KW          SBX   6  5                   [X6= LENGTH OF MOVE  
745G          BZE   6  ZEROMOVE            [J IF ZERO   
74K6          SMO      6
754Q          MOVE  1  0                   [OVERWRITE UNWANTED ELEMENT  
75JB    ZEROMOVE
7642          REPLACE                      [SHORTEN RECORD IN INCINDEX  
76HL          STEPAGAIN                    [X3-> CURRENT RECORD 
773=          BRN      QNEXTTAPE           [NO NEED TO ADD ON INCMAGLEN SINCE MO
77GW                                       [   EVERYTHING BELOW UP  
782G    #   
78G6    ND  
78^Q    #  SET B0 OF TSN FOR THIS TAPE IN THIS RECORD OF INCINDEX - DUMPER WILL 
79FB ...#  LOOK FOR ANOTHER TAPE IN ITS PLACE.  
7=DL          CALL  6  STEPWRITE           [ENSURE INFORMATION WRITTEN TO BS
7=Y=          LDCT  0  #400 
7?CW          SMO      5
7?XG          ORS   0  0(3)                [SET B0 OF TSN WORD IN INCINDEX  
7C#W          BRN      QMOD 
7CSG    #   
7D#6    NE  
7DRQ    #  TO DEAL WITH THIS WOULD BE QUITE INVOLVED & SHOULDN'T HAPPEN UNDER NO
7F?B    #  RUNNING & FUNCTIONING CONDITIONS.  IT COULD HAPPEN HOWEVER THROUGH   
7FR2    #  MALFUNCTIONING OF THE SYSTEM.
7G=L    #   
7GQ=          MHUNTW   1,FILE,FINTER       [X1-> FINTER BLOCK   
7H9W          LDX   6  ALOGLEN(1)   
7HPG    NETSN   
7J96          BZE   6  NEX                 [J IF NO MORE TSNS TO LOOK AT
7JNQ          SBN   6  2
7K8B          SMO      6
7KN2          BXU   7  A1(1),NETSN        [J IF NOT FOUND REQUIRED MT   
7L7L          LDCT  0  #010 
7LM=          SMO      6
7M6W          ORS   0  A1+1(1)             [SET  "USED BY DUMPER" MARKER NEEDS S
7MLG    #SKI  K6INCCHECK>99-99  
7N66          TRACE 7,INCNOTUS             [TAPE NOT MARKED "USED BY DUMPER" EVE
7NKQ                                       [ THOUGH CONTAIN RETRIEVABLE INCRS.  
7P5B          BRN      QMOD 
7PK2    NEX 
7Q4L    #SKI  K6INCCHECK>99-99  
7QJ=          TRACE 7,INCNOTPR             [TAPE NOT PRESENT IN :DUMPER EVEN THO
7R3W                                      [ CONTAINS RETRIEVABLE INCRS. 
7RHG          BRN      QMOD 
7S36    #   
7SGQ    QEND
7T2B          CLOSETOP                     [CLOSE INCINDEX  
7TG2    #   
7T^L    #   
7WF=    #  ---------------------------------------------------------------------
7WYW    #   
7XDG ...#  NOW GO THROUGH FILE/FINTER BLOCK & ALTER MT ENTRIES IN :DUMPER.  
7XY6 ...#     REMOVES 'USED' BIT (B0 OF EINCLOOK) OF DIR. ENTRY FOR TAPE IF 
7^C2    #          1) MARKED 'RELEASED' IN INCINDEX & NOT MARKED ELSEWHERE IN IN
7^WL    #             AS NOT 'RELEASED', BUT MARKED 'USED' IN :DUMPER.  
82B=    #          2) MARKED USED IN :DUMPER, BUT NOT MENTIONED IN INCINDEX (EXC
82TW    #             PERHAPS AS 'RELEASED').   
83*G    #   
83T6          MHUNTW   1,FILE,FINTER
84#Q          LDX   5  ALOGLEN(1)   
84SB    RNEXTTSN
85#2          BZE   5  REND                [J IF ALL TSNS IN :DUMPER LOOKED AT  
85RL          SBN   5  2
86?=          SMO      5
86QW          LDX   0  A1+1(1)             [X0= STATE OF TSNS   
86WR ...      LDCT  4  #010 
872N ...       ANDX  4  0                   [J IF 'USED BY DUMPER' MARKER   
876K ...       BNZ   4  XSET                [NEEDS SETTING  
87=G          SLC   0  1
87Q6          BNG   0  RNEXTTSN            [J IF MENTIONED IN INCINDEX  
889Q          SLC   0  1
88PB          BNG   0  RREM                [J IF MARKED AS 'RELEASED'   
8992          SRC   0  2
89NL          BPZ   0  RNEXTTSN            [J IF NOT USED   
89YD ...XSET
8=8=          SMO      5
8=MW          LDX   7  A1(1)               [X7= TSN TO BE MARKED AS NOT USED
8CJ6          REWIND                       [REWIND :DUMPER  
8D3Q    RSTEP   
8DHB          STEP                         [X3-> NEXT RECORD IN :DUMPER 
8F32    #SKI  K6INCCHECK
8FGL    (   
8G2=          BNZ   3  RNOTEND             [J IF NOT END
8GFW    RGEOERR 
8G^G          GEOERR   BRIEFPM,INC NOMT    [TAPE TO BE MARKED 'UNUSED' EITHER NO
8HF6                                       [   IN :DUMPER OR MARKED 'UNUSED' ALR
8HYQ    RNOTEND 
8JDB    )   
8JY2          LDX   0  ERES-A1(3)   
8KCL          BNZ   0  RSTEP               [J IF NOT NAME RECORD
8KX=          BXU   7  ESER-A1(3),RSTEP    [J IF NOT REQUIRED MT
8LBW          CALL  6  STEPWRITE           [ENSURE RECORD WRITTEN TO BS 
8LLN ...      BNZ   4  SETUSE             [J TO SET 'USED BY DUMPER' BIT.   
8LWG    #SKI  K6INCCHECK
8MB6    (   
8MTQ          LDX   0  EINCLOOK-A1(3)   
8N*B          BPZ   0  RGEOERR             [J IF NO 'USED' BIT PRESENT  
8NT2    )   
8P4S ...SETUSE  
8P#L          LDX   0  GSIGN
8PS=          ERS   0  EINCLOOK-A1(3)      [REMOVE 'USED' BIT   
8Q?W          MHUNTW   1,FILE,FINTER
8QRG          BRN      RNEXTTSN 
8R?6    REND
8RQQ          FREECORE 1                   [FREE FILE/FINTER
8S=B          CLOSETOP                     [CLOSE :DUMPER   
8SQ2          UP
8T9L    RREM
8TP=          SLC   0  9
8W8W          BNG   0  RNEXTTSN            [J IF CALLED GEO3PROCTAPE
8W8^ ...      BRN      (GEOERR) 
8W94 ...#   
8W97 ...#   
8W9= ...#  THE X2 ENTRY CARRIES OUT ANY UPDATING NECESSARY TO INCINDEX AS   
8W9* ...#  AS A RESULT OF A GENRES OR BREAK WHILE DUMPING.  
8W9D ...#   
8W9F ...THIRTYTHOU     30000               [VALUE PUT IN SIZE FIELDS FOR
8W9G ...                                   [INCREMENTS WHICH WE CANNOT FULLY
8W9H ...                                   [UPDATE  
8W9J ...X2INCCHECK  
8W9L ...      OPENINC  ,GENERAL            [OPENINCINDEX
8W9P ...      STOZ     AWORK4(2)           [ZERO 1ST COMPLETE INCR NO   
8W9S ...RSTEP2  
8W9X ...      STEP  
8W=2 ...      BZE   3  REND2                [J IF END OF INCINDEX   
8W=5 ...      JBS   RSTEP2,3,BIOBSR         [J IF OBSOLETE  
8W=8 ...      LDN   0  #17  
8W=? ...      ANDX  0  AINCSTATER(3)       [EXTRACT FORMAT NO   
8W=B ...      SBN   0  4
8W=F ...      BPZ   0  NRED                [J IF NO NEED TO REDUMP  
8W=J ...      CALL  6  STEPWRITE           [ENSURE RECORD REWRITTEN 
8W=M ...      MBS   3,BIREDUMPR,BIDUMPROCR  [MARK AS TO BE REDUMPED 
8W=Q ...NRED
8W=T ...      LDN   6  #4000
8W=Y ...      ANDX  6  AINCSTATER(3)       [X6=0     IF INCR. WAS WRONGED   
8W?3 ...                                   [X6=#4000 IF INCR. WAS AVAILABLE 
8W?6 ...      LDN   5  #4000               [SET OPTIONALLY "INCR. IS NOW AVAILAB
8W?9 ...      LDX   4  AMTSR(3)            [X4= NO. OF MTS IN THIS RECORD   
8W?# ...      BZE   4  RVERIF              [J IF NONE   
8W?C ...      LDX   1  3                   [X1->RECORD  
8W?G ...RNEXT   
8W?K ...      JMBAC RVERIF,1,BMOPWRR,BMUSWRR [J IF TAPE NOT WRONGED 
8W?N ...      ADN   1  INCMAGLEN           [UPDATE TAPE MODIFIER
8W?R ...      BCT   4  RNEXT               [J IF MORE MT STATE WORDS TO LOOK AT 
8W?W ...      BS    ,BWRINC                [SET WRONGED INCRS PRESENT BIT   
8W?^ ...      LDN   5  0                   [SET "INCR. IS NOW WRONGED"  
8W#4 ...RVERIF  
8W#7 ...      ERX   6  5                   [DO WE NEED TO ALTER BIT 
8W#= ...      BZE   6  NFLIP               [BIAVEST.  J IF WE DONT  
8W#* ...      CALL  6  STEPWRITE
8W#D ...      BI    3,BIAVESTR             [INVERT STATE OF AVAILIBILITY
8W#H ...                                   [VERIFIED BIT SO IT IS CORRECT   
8W#L ...                                   [CLEAR -WRONGED,SET-OTHERWISE
8W#P ...NFLIP   
8W#S ...      JBC      NNRV,3,BINSUITRVR [J IF COMPLETED INCR   
8W#X ...      LDX   0  GINCTSN             [NONZERO IF JUST DONE A GENRES   
8W*2 ...      BZE   0  NRESTORE            [J IF HAVENT 
8W*5 ...      LDX   5  AINCNOR(3)          [NO OF INCR  
8W*8 ...      MBSXD    6,BINCGENRES,BINCENDBAT [STATE WORD FOR GENRES INCR  
8W*? ...      BXE   5  JINCLAST,YGRINC     [IF ITS NOT THE INC WE RESTORED FROM 
8W*B ...      BSXD     6,BINCENDBAT       [COULD BE THE PARALLEL FILE INCR  
8W*F ...                                   [SO SET UP X6 ACCORDINGLY
8W*J ...      JBC      NUNFINGR,3,BIUNFINR [J IF NOT AN INCR PRODUCED IN
8W*M ...                                   [PARALLEL WITH THE INC JUST RESTORED 
8W*Q ...YGRINC  
8W*T ...      CALL  4  SETTAB              [KEEP A TAB ON FILE POSN 
8W*Y ...      DOWN     INCEND,3            [CARRY OUT UPDATING RELEVANT TO EMS  
8WB3 ...      CALL  4  UNSETTAB 
8WB6 ...      BRN      NNRV                [LOOP ROUND  
8WB9 ...
8WB= ...NOTSTARTED  
8WB# ...NUNFINGR
8WBC ...      DELETE                       [SCRUB INCS BEING REDUMPED COS OF
8WBG ...                                   [BREAK AS THEY WILL HAVE BEEN
8WBK ...                                   [REDUMPED AS PART OF RESORED INC 
8WBN ...      BRN      RSTEP2   
8WBR ...
8WBW ...NNRV
8WB^ ...      BWNZ     AWORK4(2),RSTEP2     [J IF HAVE ALREADY FOUND
8WC2 ...      STEPAGAIN 
8WC4 ...      LDX   0  AINCNOR(3)          [1ST RVABLE INCR IN INCINDEX 
8WC7 ...      STO   0  AWORK4(2)           [OTHERWISE THIS IS IT
8WC= ...      BRN      RSTEP2   
8WC* ...
8WCD ...NRESTORE
8WCH ...      JBC      NUNFINNGR,3,BIUNFINR[J IF INCR NOT IN PROGRESS   
8WCL ...                                   [AT TIME OF BREAK
8WCM ...      BWZ      AINCDR(3),NOTSTARTED[THIS WORD CLEAR FOR UNFINISHED INC  
8WCN ...                                   [IMPLIES INCR NEVER STARTED, SO WE   
8WCP ...                                   [JUST DELETE THE RECORD. 
8WCQ ...                                   [THE OTHER INCCHECK SCAN WILL CLEAR  
8WCR ...                                   [ANY 'TAPE IN USE' BITS IN :DUMPER   
8WCS ...                                   [FOR TAPES NEWLY OBTAINED FOR THE
8WCT ...                                   [ABORTED INC.
8WCW ...      CALL  6  STEPWRITE
8WCX ...#UNS  FPARTRES  
8WCY ...#SKI
8WC^ ...      BC       3,BIUNFINR          [TAKE OUT BIT
8WD4 ...#UNS  FPARTRES  
8WD# ...(   
8WF# ...      LDX   0  THIRTYTHOU(1)       [SET GUESS VALUE IN SIZE FIELDS  
8WFJ ...      STO   0  AINCSIZER(3) 
8WFS ...      STO   0  AINCFILESR(3)
8WFX ...      LDX   5  AINCNOR(3)          [SET UP INCNO AND STATE WORD FOR 
8WG2 ...      MBSXD    6,BINCEOT,BINCWRFAIL [A WRITE-FAILED INCR AND JUMP   
8WG5 ...      BRN      YGRINC              [TO COMPLETE THE RECORD'S UPDATING   
8WG8 ...                                   [ACCORDINGLY.
8WG# ...)   
8WGJ ...NUNFINNGR   
8WGS ...#  WE USE TO CARRY OUT A COMPLICATED ACTION ON NSUITRV INCRS
8WH4 ...#  BUT IN MARK 860 THESE MUST EITHER HAVE BEEN DEALT WITH BY A PREVIOUS 
8WH# ...#  LOAD OF MK 850 OR MUST HAVE THE UNFINISHED BIT SET, WHICH WILL   
8WHJ ...#  RESULT IN OUR TREATING THEM AS USABLE (SEE ABOVE).   
8WHS ...#  WE THEREFORE IGNORE THEM.
8WJ4 ...#   
8WJ# ...      BRN      RSTEP2   
8WJW ...#   
8WJ^ ...#   
8WK4 ...SETTAB  
8WK7 ...      SBX   4  FX1  
8WK= ...      SETUPTAB  
8WK* ...      TABSET
8WKD ...      ADX   4  FX1  
8WKH ...      EXIT  4  0
8WKL ...#   
8WKP ...UNSETTAB
8WKS ...      SBX   4  FX1  
8WKX ...      TABULATE  
8WL2 ...      FREETAB   
8WL5 ...      ADX   4  FX1  
8WL8 ...      EXIT  4  0
8WL? ...#   
8WLB ...REND2   
8WLF ...      CLOSETOP                     [CLOSE INCINDEX  
8WLJ ...      UP
8WLM ...NOBREAK 
8WLQ ...      GEOERR   BRIEFPM,INCBREAK 
8WLT ...#   
8WLY ...#   
8WNG    #   
8X86          MENDAREA 40,K99INCCHECK   
8XMQ    #   
8Y7B    #END
^^^^ ...07066512001300000000