{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: INCCHECK860)}}
====== INCCHECK860 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BC|BC]], [[george:macro:BI|BI]], [[george:macro:BS|BS]], [[george:macro:BSXD|BSXD]], [[george:macro:BWNZ|BWNZ]], [[george:macro:BWZ|BWZ]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:DELETE|DELETE]], [[george:macro:DOWN|DOWN]], [[george:macro:FILEMOVE|FILEMOVE]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FREETAB|FREETAB]], [[george:macro:GEOERR|GEOERR]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:JMBAC|JMBAC]], [[george:macro:MBS|MBS]], [[george:macro:MBSXD|MBSXD]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:NAME|NAME]], [[george:macro:OPENINC|OPENINC]], [[george:macro:OPENSYS|OPENSYS]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:REPLACE|REPLACE]], [[george:macro:REWIND|REWIND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPTAB|SETUPTAB]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:STEPWRITE|STEPWRITE]], [[george:macro:TABSET|TABSET]], [[george:macro:TABULATE|TABULATE]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]]
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