{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: INCOBS867)}}
====== INCOBS867 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:DELETE|DELETE]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FDTENT|FDTENT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:FSHSKIP|FSHSKIP]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:OPENDIR|OPENDIR]], [[george:macro:OPENINC|OPENINC]], [[george:macro:OUTINCS|OUTINCS]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPARN|OUTPARN]], [[george:macro:OUTTSNS|OUTTSNS]], [[george:macro:READ|READ]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:REPLACE|REPLACE]], [[george:macro:RESET|RESET]], [[george:macro:RETURNA|RETURNA]], [[george:macro:REWIND|REWIND]], [[george:macro:REWRITE|REWRITE]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SSEARCH|SSEARCH]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:TAPEWRONG|TAPEWRONG]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TRANSFIN|TRANSFIN]]
22FL SEG INCOBS,7,MIKE PUTNAM,INCDUMP
22LS ...[
22S2 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
22^= #
23DW SEGENTRY K1INCOBS,X1INCOBS
23YG #
245N ... FSHSKIP B
24=W ...(
24D6 # CONSTANTS
24XQ #
25CB MOBSOLETE 8HOBSOLETE
25X2 8HDELETED
26BL MRET 8HRETURNED
26W= MREU 12HTO-BE-REUSED
27*W MREUSED 8HREUSED
27TG MT +10
28*6 12HDUMPER
28SQ 0,0,0,0,0,0
29#B 4095
29S2 #
2=?L # THIS SEGMENT OPENS INCINDEX, RETURNS TO POOL "OBSOLETE" TAPES,
2=R= # DELETES FROM INCINDEX THOSE INCREMENTS WHICH CONTAIN ONLY SUCH TAPES
2?=W # AND CLOSES INCINDEX. AN "OBSOLETE" TAPE IS ONE WHICH CONTAINS ONLY
2?QG # OBSOLETE INCREMENTS (BIT 4 OF AINCSTATE SET) OR OBSOLETE VERSIONS OF
2#=6 # INCREMENTS (BIT 17 OF AMAGSTATE SET).
2#PQ # ON ENTRY, X7=0 IF TAPES TO BE RETURNED TO POOL, X7=1 IF TO BE REUSED
2*9B # X6 = NO.OF TAPES TO FREE, X6= -1 IF TO FREE ALL OR TSNS
2*P2 #
2B8L # SUBROUTINES .......
2BN= # "SETFLINC" IS USED TO SET UP A DUMMY FLIB/FLINC BLOCK.
2C7W # "PINSERT" IS USED TO INSERT ANOTHER INCREMENT NUMBER IN THE
2CMG # FLIB/FLINC BLOCK.BOTH ARE CALLED ON X6 AND BOTH MAY COORDINATE
2D76 #
2DLQ #
2F6B SETFLINC
2FL2 SBX 6 FX1
2G5L SETNCORE 2,3,FLIB,FLINC
2GK= LDN 0 1
2H4W STO 0 A1(3) [INITIALISE BLOCK
2HJG ADX 6 FX1
2J46 EXIT 6 0
2JHQ #
2K3B #
2KH2 PINSERT
2L2L SBX 6 FX1
2LG= MHUNTW 3,FLIB,FLINC
2L^W LDX 4 ALOGLEN(3)
2MFG ADN 4 1
2M^6 ALTLEN 3,4,FLIB,FLINC
2NDQ MHUNTW 3,FLIB,FLINC
2NYB LDN 4 1
2PD2 ADS 4 A1(3)
2PXL SMO A1(3)
2QC= STO 5 A1(3) [PUT INCREMENT NUMBER IN BLOCK
2QWW ADX 6 FX1
2RBG EXIT 6 0
2RL# ...)
2RW6 #
2S*Q #
2STB X1INCOBS
2SX# ... FSHCODE B,XFSHBINCOBS
2S^= ...(
2T38 ... BRN (GEOERR) [NEVER OBEYED ON MACHINE B
2T56 ...XFSHBINCOBS
2T74 ...)
2T92 ... FSHSKIP B
2T=Y ...(
2T*2 SETNCORE 0,1,FILE,FINTER2 [FINTER2 BLOCK FOR TSNS IN THESE
2TSL [ INCR. RECORDS
2W#= OPENINC OPBREAK,GENERAL
2WRW BPZ 6 PSTOR
2X?G LDN 6 4095 [SOME LARGE NUMBER IF ALL
2XR6 PSTOR
2Y=Q STO 6 AWORK1(2) [X6 = NO. OF TAPES TO FREE
2YQB STO 7 AWORK2(2) [KEEP RETURN/REUSE MARKER
2^=2 STOZ AWORK3(2) [ "FINISHED" MARKER
2^PL #
329= # READ THROUGH INCINDEX,FORMING IN THE FINTER2 BLOCK,
32NW # A LIST OF POTENTIALLY RETURNABLE TAPES.
338G #
33N6 CALL 6 SETFLINC [SET UP DUMMY FLIB/FLINC BLOCK
347Q PREAD
34MB READ [READ A RECORD INTO FRB
3572 MHUNTW 1,FILE,FRB
35LL LDX 0 A1(1)
366= BZE 0 PFREE [J IF END OF INCINDEX
36KW LDX 6 AMTS(1) [X6 = NO. OF MTS
375G BZE 6 PPEND [J IF NO MTS
37K6 LDN 7 AMAG [TSN MODIFIER DOWN RECORD
384Q PPSEARCH
38JB SMO 7
3942 LDX 5 0(1) [X5 = NEXT TSN IN RECORD
39HL SMO 7
3=3= LDX 0 AMAGSTATE-AMAG(1)
3=GW SLL 0 2
3?2G BNG 0 PSHIFT
3?G6 SLL 0 15
3?^Q BNG 0 PSETT
3#FB LDCT 0 #020
3#^2 ANDX 0 AINCSTATE(1)
3*DL BZE 0 PSHIFT
3*Y= PSETT
3BCW MHUNTW 3,FILE,FINTER2
3BXG LDX 4 ALOGLEN(3)
3CC6 BZE 4 PNONE
3CWQ PFIND
3DBB SMO 4
3DW2 TXU 5 A1-1(3)
3F*L BCC PGOT
3FT= BCT 4 PFIND
3G#W LDX 4 ALOGLEN(3)
3GSG PNONE
3H#6 ADN 4 1
3HRQ ALTLEN 3,4,FILE,FINTER2
3J?B MHUNTW 3,FILE,FINTER2
3JR2 SMO 4
3K=L STO 5 A1-1(3)
3KQ= BRN PGOT
3L9W PSHIFT
3LPG MHUNTW 3,FILE,FRB
3M96 SMO 7
3MNQ LDN 5 0(3)
3N8B LDX 4 5
3NN2 ADN 4 INCMAGLEN
3P7L LDX 0 6
3PM= SBN 0 1
3Q6W BZE 0 PSKIP
3QLG LDN 1 INCMAGLEN
3R66 MPY 0 1
3RKQ MOVE 4 0(1)
3S5B PSKIP
3SK2 LDN 0 INCMAGLEN
3T4L SBS 0 ALOGLEN(3)
3TJ= LDN 0 1
3W3W SBS 0 AMTS(3)
3WHG SBN 7 INCMAGLEN
3X36 PGOT
3XGQ MHUNTW 1,FILE,FRB
3Y2B ADN 7 INCMAGLEN
3YG2 BCT 6 PPSEARCH
3Y^L LDX 6 AMTS(1)
3^F= BNZ 6 PMESS
3^YW BRN PPEND [TO FREE FRB BLOCK
42DG PMESS
42Y6 HUNTW 2,FILE,APROC
43CQ BNG 2 PNOPREV
43XB LDX 6 AMTS(1) [X6 = AMTS IN FRB
44C2 LDX 7 AMTS(2) [X7 = AMTS IN APROC
44WL BXU 7 6,PDIFF [NOT SAME NO. OF TAPES
45B= LDN 4 AMAG [TSN MOD DOWN APROC
45TW LDN 5 AMAG [TSN MOD DOWN FRB
46*G PLOOK
46T6 SMO 5
47#Q LDX 0 0(1) [PICK UP TAPE FROM APROC
47SB SMO 4
48#2 BXE 0 0(2),PSAME [J IF SAME TAPE
48RL ADN 4 INCMAGLEN [STEP INNER MODIFIER
49?= BCT 6 PLOOK [LOOP IF MORE IN APROC
49QW BRN PDIFF
4==G PSAME
4=Q6 LDX 6 AMTS(1) [RESET INNER COUNT
4?9Q ADN 5 INCMAGLEN [STEP OUTER MODIFIER
4?PB BCT 7 PLOOK [LOOP IF MORE IN FRB
4#92 LDX 5 AINCNO(1)
4#NL FREECORE 1
4*8= BRN PIDEN
4*MW PDIFF
4B7G LDN 4 0 [TEMPORARY - TILL DTSUBS CHANGED
4BM6 OUTINCS
4C6Q MFREEW FLIB,FLINC
4CLB OUTTSNS
4D62 MFREEW FILE,APROC
4DKL MONOUT INCOBSMT2 [INCREMENT %A %B OBSOLETE ON MT%C %D
4F5= LDX 6 AWORK3(2)
4FJW BNG 6 PFINI [J IF FINISHED
4G4G CALL 6 SETFLINC [SET UP DUMMY FLIB/FLINC
4GJ6 MHUNTW 1,FILE,FRB
4H3Q PNOPREV
4HHB NAME 1,FILE,APROC
4J32 LDX 5 AINCNO(1)
4JGL PIDEN
4K2= CALL 6 PINSERT
4KFW BRN PREAD
4K^G PPEND
4LF6 FREECORE 1 [FREE FRB BLOCK
4LYQ BRN PREAD [READ DOWN NEXT RECORD OF INCINDEX
4MDB PFREE
4MY2 HUNTW 3,FLIB,FLINC
4NCL BNG 3 PFINI [J IF NO FINAL MESSAGE
4NX= LDX 0 A1(3)
4PBW SBN 0 1
4PWG BNZ 0 PLAST [J IF NOT EMPTY
4QB6 MFREEW FLIB,FLINC
4QTQ BRN PFINI [FINISHED THIS SECTION
4R*B PLAST
4RT2 NGN 6 1
4S#L STO 6 AWORK3(2) [MARKER TO SHOW FINISHED
4SS= BRN PDIFF
4T?W PFINI
4TRG MFREEW FILE,FRB [FREE FRB BLOCK
4W?6 #
4WQQ # NOW READ THROUGH INCINDEX, LOOKING TO SEE IF ANY OF THE TSNS IN THE F
4X=B # BLOCK ARE MENTIONED IN NON-OBSOLETE INCR. RECORDS - IF THEY ARE,
4XQ2 # SET B0=1 IN THE APPROPRIATE TSN ENTRY IN THE FINTER2 BLOCK.
4Y9L #
4YP= PEND
4^8W REWIND [REWIND INCINDEX
4^NG QSTEP
5286 STEP
52MQ BZE 3 QEND [J IF END OF INCINDEX
537B LDCT 0 #020
53M2 ANDX 0 AINCSTATE-A1(3)
546L BNZ 0 QSTEP [J IF INCR. OBSOLETE
54L= MHUNTW 1,FILE,FINTER2
555W LDX 6 AMTS-A1(3) [X6= NO. OF MTS
55KG BZE 6 QSTEP [J IF NO MTS
5656 LDN 0 AMAG-A1 [X0= TSN MOD. DOWN RECORD (INITIAL SE
56JQ QQSEARCH
574B SMO 0
57J2 LDX 5 0(3) [X5= NEXT TSN IN INCINDEX RECORD
583L LDN 4 #100
58H= SMO 0
592W ANDX 4 1(3)
59GG BNZ 4 QCONT [B0 NOT SET IF B17 SET
5=26 LDX 4 ALOGLEN(1)
5=FQ BZE 4 QZERO [J IF FINTER2 BLOCK EMPTY
5=^B QSEARCH
5?F2 SMO 4
5?YL TXU 5 A1-1(1)
5#D= BCC QFOUND [J IF TSN FOUND
5#XW BCT 4 QSEARCH [J IF MORE TSNS TO COMPARE
5*CG QCONT
5*X6 ADN 0 INCMAGLEN [STEP TSN POINTER IN INCINDEX RECORD
5BBQ BCT 6 QQSEARCH [J IF MORE TSNS IN RECORD
5BWB BRN QSTEP
5CB2 QFOUND
5CTL LDCT 5 #400
5D*= SMO 4
5DSW ORS 5 A1-1(1) [SET B0 OF TSN IN FINTER2 BLOCK LIST
5F#G BRN QCONT
5FS6 QZERO
5G?Q #
5GRB # NOW, HAVING ESTABLISHED WHICH TAPES CAN BE RELEASED, TAKE INTO
5H?2 # ACCOUNT WHAT WAS SPECIFIED TO BE RELEASED IN THE INCDUMP (OR DUMP) CO
5HQL # 3 POSSIBILITIES:-
5J== # 1) "ALL" SPECIFIED - LEAVE FINTER2 BLOCK AS IT IS.
5JPW # 2) NUMBER SPECIFIED - SHORTEN FINTER2 IF NECESSARY
5K9G # 3) TSNS SPECIFIED (FINTER1 BLOCK PRESENT) - IF TSNS IN FINTER2 DO N
5KP6 # APPEAR IN FINTER1, REMOVE THEM FROM FINTER2 & SHORTEN IT
5L8Q # APPROPRIATELY. A MESSAG IS OUTPUT FOR ANY TSNS IN FINTER1
5LNB # WHICH DO NOT APPEAR IN FINTER2.
5M82 #
5MML QEND
5N7= MHUNTW 3,FILE,FINTER2
5NLW HUNTW 2,FILE,FINTER1
5P6G BNG 2 ZEND [J IF NO TSNS SPECIFIED.
5PL6 LDX 4 ALOGLEN(3) [X4= NO. OF TAPES IN FINTER2
5Q5Q BZE 4 ZNEG [J IF NONE OBSOLETE
5QKB ZLOOP
5R52 SMO 4
5RJL LDX 5 A1-1(3)
5S4= SLL 5 1
5SHW SRL 5 1 [X5= NEXT TSN IN FINTER2
5T3G LDX 0 ALOGLEN(2) [X0= NO. OF TAPES IN FINTER1
5TH6 BZE 0 ZNONE [J IF NONE PRESENT
5W2Q ZLOOP1
5WGB SMO 0
5X22 BXE 5 A1-1(2),ZFOU [J IF TSN IN FINTER1
5XFL BCT 0 ZLOOP1 [J IF MORE TO SEARCH
5X^= ZNONE
5YDW SMO 4
5YYG LDN 1 A1-1(3) [X1-> TSN IN FINTER2 TO REMOVE
5^D6 LDN 0 1(1)
5^XQ LDX 5 ALOGLEN(3)
62CB SBX 5 4 [X5= NO. OF WORDS TO MOVE
62X2 BZE 5 ZNOMOVE [J IF ZERO
63BL SMO 5 [MOVE UP TSNS BELOW TO-BE-REMOVED TSN
63W= MOVE 0 0 [ IN FINTER2 BY 1 WORD
64*W ZNOMOVE
64TG LDX 5 ALOGLEN(3)
65*6 SBN 5 1
65SQ ALTLEN 3,5,FILE,FINTER2 [REDUCE FINTER2 BY 1 WORD
66#B MHUNTW 2,FILE,FINTER1
66S2 MHUNTW 3,FILE,FINTER2
67?L BRN ZREDU
67R= ZFOU
68=W LDCT 1 #400
68QG SMO 0
69=6 ORS 1 A1-1(2) [SET B0 OF FINTER1 ENTRY FOR THIS TSN
69PQ ZREDU
6=9B BCT 4 ZLOOP [J IF MORE TSNS IN FINTER2 TO DEAL WI
6=P2 BRN ZNEG
6?8L ZLOOP2
6?N= ADN 4 1 [UPDATE MOD. DOWN FINTER1
6#7W SMO 4
6#MG LDX 5 A1-1(2) [X5= NEXT TSN IN FINTER1
6*76 BNG 5 ZNEG [J IF TSN MENTIONED IN FINTER2
6*LQ OUTPACK 5,1,TSN [OUTPUT TSN AS PARAMETER
6B6B MONOUT INCMTNOBS [TO OPS. CONSOLE & MON. FILE :-
6BL2 [ "DUMPER - MT %A HOLDS NO OBSOLETE
6C5L [ INCREMENTS"
6CK= MHUNTW 2,FILE,FINTER1
6D4W ZNEG
6DJG BXU 4 ALOGLEN(2),ZLOOP2 [J IF MORE TSNS TO LOOK AT IN FINTER1
6F46 FREECORE 2 [FREE FINTER1
6FHQ BRN RALL
6G3B ZEND
6GH2 SMO FX2
6H2L LDX 6 AWORK1
6HG= ADN 6 1 [X6 = 1 + NO. OF TAPES TO FREE
6H^W LDX 4 ALOGLEN(3)
6JFG BZE 4 RALL [J IF FINTER2 EMPTY
6J^6 STOZ 4
6KDQ ZLOOP3
6KYB ADN 4 1
6LD2 SMO 4
6LXL LDX 7 A1-1(3) [X7 = TSN FROM FINTER2
6MC= BNG 7 ZSKIP [MUSTN'T RELEASE THIS TAPE
6MWW BCT 6 ZSKIP [DECREASE COUNT OF NO. TO RELEASE
6NBG BRN ZFINI [NOW RESET FINTER2 LENGTH
6NW6 ZSKIP
6P*Q BXL 4 ALOGLEN(3),ZLOOP3 [J IF NOT END OF FINTER2
6PTB BRN RALL
6Q*2 ZFINI
6QSL SBN 4 1 [DON'T NEED LAST TAPE
6R#= ALTLEN 3,4,FILE,FINTER2 [SHORTEN FINTER2
6RRW #
6S?G # READS THROUGH INCINDEX YET AGAIN. RECORDS WHICH CONTAIN ONLY
6SR6 # TAPES ON WHICH ALL INCREMENTS ARE OBSOLETE,ARE DELETED FROM INCINDEX.
6T=Q # FOR OTHER RECORDS, THE ENTRY IN INCINDEX IS DELETED FOR
6TQB # THOSE MTS WHICH CONTAIN ONLY OBSOLETE INCREMENTS, OR OBSOLETE
6W=2 # VERSIONS OF INCREMENTS.
6WPL # IF A TAPE IS TO BE RELEASED BUT YET IT HAS AN FDT ENTRY (I.E. IS BEIN
6X9= # USED BY DUMP TAPE SCHEDULER), A MESSAGE IS OUTPUT & IT IS TREATED AS
6XNW # IT CONTAINED NON-OBSOLETE INCRS.
6Y8G # GOES THROUGH FINTER2 BLOCK RETURNING TO THE POOL ALL MTS WITH +IVE
6YN6 # ENTRIES (I.E. CONTAINING ONLY OBSOLETE INCRS.)
6^7Q #
6^MB RALL
6^NY ...#SKIP JDUMPTW
6^QG ...(
6^S4 ...#
6^TL ...# A FILE/FINTER1 IS SET UP TO HOLD TSNS OF
6^X8 ...# TAPES TO BE TW'D
6^YQ ...#
722# ... SETNCORE 15,1,FILE,FINTER1
723W ... STOZ A1+12(1) [NO. OF TAPES
725D ...)
7272 REWIND
72LL CALL 6 SETFLINC [SET UP DUMMY FLIB/FLINC
736= RSTEP
73KW STEP
745G BZE 3 REND [J IF END OF INCINDEX
74K6 STOZ AWORK3(2) [CLEAR MARKER WORD
754Q REREAD
75JB LDX 6 AMTS-A1(3)
7642 BZE 6 RSTEP [J IF NO TAPES.
76HL LDN 7 AMAG-A1 [MODIFIER DOWN TSNS
773= RRSEARCH
77GW MHUNTW 1,FILE,FINTER2 [X1 -> FINTER2
782G SMO 7
78G6 LDX 5 0(3) [X5= NEXT TSN IN INCINDEX RECORD
78^Q LDCT 0 #100
79FB SMO 7
79^2 ANDX 0 AMAGSTATE-AMAG(3)
7=DL BNZ 0 RRET [J IF TAPE ALREADY RELEASED
7=Y= LDX 4 ALOGLEN(1)
7?CW BZE 4 RBACK [J IF FINTER2 BLOCK EMPTY
7?XG RSEARCH
7#C6 SMO 4
7#WQ LDX 2 A1-1(1) [X2= TSN IN FINTER2 BLOCK
7*BB LDX 0 2
7*W2 SLL 0 1
7B*L SRL 0 1
7BT= BXE 0 5,RFOUND [J IF TSN FOUND
7C#W BCT 4 RSEARCH [J IF MORE TSNS TO COMPARE
7CSG BRN RBACK
7D#6 RFOUND
7DRQ BNG 2 RBACK [J IF TAPE CONTAINS NON-OBS.INCS.
7F?B FDTENT 2,5,RRET [J IF TAPE NOT STILL IN USE
7FR2 LDCT 0 #400
7G=L SMO 4 [SET TSN IN FINTER2 BLOCK -IVE - TAPE
7GQ= ORS 0 A1-1(1) [ NOT RELEASEABLE
7H9W OUTPACK 5,1,TSN [OUTPUT TSN AS PARAMETER
7HPG MONOUT INCMTUSE [TO OPS. CONSOLE & MON. FILE :-
7J96 [ "DUMPER= MT %A NOT RELEASED -STILL
7JNQ STEPAGAIN [X3-> INCINDEX RECORD
7K8B MHUNTW 1,FILE,FINTER2 [X1-> FINTER2 BLOCK
7KN2 BRN RBACK
7L7L RRET
7LM= LDX 2 FX2
7M6W LDX 0 AWORK3(2)
7MLG BNZ 0 RSHIFT [J IF ALREADY READ RECORD AGAIN
7N66 LDN 0 1
7NKQ STO 0 AWORK3(2) [SET MARKER WORD
7P5B READAGAIN
7PK2 MHUNTW 3,FILE,FRB [X3 -> FRB BLOCK
7Q4L ADN 3 A1 [ADD IN RECORD-HEADER
7QJ= BRN REREAD
7R3W RSHIFT
7R4? ...#SKIP JDUMPTW
7R4N ...(
7R55 ...#
7R5G ...# A LIST OF TAPES TO BE TW'D IS COLLATED
7R5X ...#
7R6# ... MHUNTW 2,FILE,FINTER1
7R6P ... SMO 7
7R76 ... LDX 5 1(3) [MAGSTATE
7R7H ... SLL 5 7
7R7Y ... BPZ 5 RTW3 [TSN NOT TO BE TW'D
7R8* ... SMO 7
7R8Q ... LDX 5 0(3) [TSN
7R97 ... LDN 0 A1+13 [PTR DOWN FINTER1
7R9J ... LDX 4 A1+12(2)
7R9^ ... BZE 4 RTW2 [NO TAPES YET IN LIST
7R=B ...RTW1
7R=R ... SMO 0
7R?8 ... BXE 5 0(2),RTW3 [TSN ALREADY IN LST
7R?K ... SBN 4 1 [DECREASE NO OF TSNS
7R#2 ... BZE 4 RTW4
7R#C ... ADN 0 2 [NEXT TSN
7R#S ... BRN RTW1
7R*9 ...RTW4
7R*L ... ADN 0 2
7RB3 ...RTW2
7RBD ... SMO 0
7RBT ... STO 5 0(2) [ADD TSN TO LIST
7RC= ... LDN 0 1
7RCM ... ADS 0 A1+12(2) [UPDATE TAPE COUNT
7RD4 ... LDX 4 ALOGLEN(2)
7RDF ... ADN 4 2 [INCREASE BLOCK SIZE
7RDW ... ALTLEN 2,4,FILE,FINTER1
7RF? ... MHUNTW 3,FILE,FRB
7RFN ... ADN 3 A1
7RG5 ...RTW3
7RGG ...)
7RHG SMO 7
7S36 LDN 5 0(3) [END ADDRESS FOR MOVE IN X5
7SGQ LDX 4 5
7T2B ADN 4 INCMAGLEN [START ADDRESS FOR MOVE IN X4
7TG2 LDX 0 6
7T^L SBN 0 1 [X1= NUMBER OF REMAINING TAPES
7WF= BZE 0 RSKIP [AVOID ZERO MOVE !
7WYW LDN 1 INCMAGLEN
7XDG MPY 0 1 [NUMBER OF WORDS TO MOVE IN X1
7XY6 MOVE 4 0(1)
7YCQ RSKIP
7YXB LDN 0 INCMAGLEN
7^C2 SBS 0 FRH(3) [REDUCE RECORD HEADER
7^WL LDN 0 1
82B= SBS 0 AMTS-A1(3) [REDUCE NUMBER OF MTS
82TW SBN 7 INCMAGLEN [BACKSPACE POINTER
83*G RBACK
83T6 ADN 7 INCMAGLEN [STEP POINTER
84#Q BCT 6 RRSEARCH [J IF MORE TAPES IN RECORD
84SB LDX 2 FX2
85#2 LDX 0 AWORK3(2)
85RL BZE 0 RSTEP [J IF RECORD UNCHANGED.
86?= LDX 0 AMTS-A1(3)
86QW BNZ 0 RESET [J IF SOME MTS STILL LEFT IN RECORD
87=G LDX 5 AINCNO-A1(3)
87Q6 CALL 6 PINSERT [PUT INC. NO. IN FLIB/FLINC
889Q DELETE [DELETE THIS RECORD
88PB MHUNTW 3,FILE,FRB [X3 -> FRB BLOCK
8992 RFREE
89NL FREECORE 3 [FREE BLOCK POINTED TO BY X3
8=8= BRN RSTEP
8=MW RESET
8?7G MHUNTW 3,FILE,FRB
8?M6 NAME 3,FILE,FWB [RENAME AS A WRITE BLOCK
8#6Q REPLACE [MAKE SURE IT'S WRITTEN BACK
8#LB MHUNTW 3,FILE,FWB
8*62 BRN RFREE [FREE FWB BLOCK
8*KL REND
8B5= MHUNTW 3,FLIB,FLINC
8BJW LDX 0 A1(3)
8C4G SBN 0 1
8CJ6 BZE 0 RRFREE [J IF NO DELETED INCS.
8D3Q OUTINCS
8DHB MONOUT INCSDEL [RECORD%A DELETED FOR INC%A %B
8F32 RRFREE
8FGL MFREEW FLIB,FLINC
8G2= STOZ 4 [ZEROISE MOD.
8GFW LDN 6 0 [CLEAR "TAPES RELEASED" MARKER
8G^G LDN 7 AMAG-A1
8HF6 SETUPCORE 7,3,FILE,APROC [GET NEW FILE/APROC BLOCK
8HYQ STO 7 A1(3)
8JDB LDX 7 AWORK2(2) [X7 = RETURNED/REUSED MARKER
8JY2 STOZ AMTS(3)
8KCL BRN STEST
8KX= SSEARCH
8LBW SMO 4
8LWG LDX 5 A1(1)
8MB6 BNG 5 SNOTOBS [J IF TAPE CONTAINS NON-OBSOLETE INCR
8MTQ MHUNTW 3,FILE,APROC
8N*B LDX 7 A1(3)
8NT2 ADN 7 INCMAGLEN
8P#L ALTLEN 3,7,FILE,APROC [LENGTHEN APROC BLOCK
8PS= MHUNTW 3,FILE,APROC
8Q?W STO 7 A1(3)
8QRG LDN 7 1
8R?6 ADS 7 AMTS(3) [INCREASE NO. OF TAPES
8RQQ LDX 7 AWORK2(2) [X7 = RETURNED/REUSED MARKER
8RXY ... SMO A1(3)
8S56 ... STOZ A1-INCMAGLEN+1(3) [ ZEROISE STATE MARKER
8S=B SMO A1(3)
8SQ2 STO 5 A1-INCMAGLEN(3)
8T9L ORN 6 1 [SET "TAPES RELEASED" MARKER
8TP= SETNCORE 12,2,FILE,FABSNB [SET FABSNB FOR TAPE.
8W8W LDN 0 #2401 [SET TSN, RETENTION PERIOD & NON-FILE
8WNG ORS 0 ATYPE(2) [ BITS IN TYPE WORD
8X86 STO 5 A1+11(2) [INSERT SERIAL NO.
8XMQ ADN 1 MT
8Y7B ADN 2 A1
8YM2 MOVE 1 11 [INSERT :DUMPER & ZERO LOCAL NAME
8^6L OPENDIR OPBREAK,CLEAN,QUERY [OPEN :DUMPER
8^L= MFREE FILE,FABSNB
925W TESTREP OK,SREPOK,NOFILE,SNOTOBS,DISAGREE,SNOTOBS
92KG #SKI K6INCOBS
9356 GEOERR BRIEFPM,INC REP
93JQ SREPOK
944B MHUNTW 3,FILE,ENT
94J2 NAME 3,FILE,FWB
953L NGNC 0 1 [WITH ACKNOWLEDGEMENTS TO TERRY COLE
95H= ANDS 0 EINCLOOK(3) [REMOVE TAPE BEING USED BIT
962W REWRITE
96GG MFREEW FILE,FWB
9726 CLOSETOP [CLOSE :DUMPER
97FQ BNZ 7 SNOTOBS [J IF TAPE NOT TO BE RETURNED TO POOL
97^B RETURNA 5 [RETURN TAPE TO POOL
98F2 SNOTOBS
98YL ADN 4 1 [UPDATE MOD.
99D= STEST
99XW MHUNTW 1,FILE,FINTER2
9=CG BXU 4 ALOGLEN(1),SSEARCH [J IF MORE TSNS TO SEARCH
9=X6 CLOSETOP [CLOSE INCINDEX
9?BQ MFREEW FILE,FINTER2
9?WB BNZ 6 SOMEREL [J IF AT LEAST 1 TAPE RELEASED
9#B2 LDN 3 ACOMMUNE1(2)
9#TL LDN 2 MRET(1)
9**= BZE 7 SRETURN [J IF RETURNED & NOT REUSED
9*SW LDN 2 MREUSED(1)
9B#G SRETURN
9BS6 MOVE 2 2 [SET PARAM IN ACOMMUNE WORDS
9C?Q OUTPARN 8,ACOMMUNE1 [OUTPUT "RETURNED" OR "REUSED" AS PAR
9CRB MONOUT INCNOREL [ TO OPS. CONSOLE & MON. FILE :-
9D?2 [ "NO DUMP TAPES CAN BE %A"
9DQL BRN SNOREL
9F== SOMEREL
9FPW OUTTSNS
9G9G LDN 3 ACOMMUNE1(2)
9GP6 LDN 2 MRET(1)
9H8Q LDN 0 8
9HNB BZE 7 SRET
9J82 LDN 2 MREU(1)
9JML LDN 0 12
9K7= SRET
9KLW MOVE 2 3
9L6G OUTPARAM 0,ACOMMUNE1
9LL6 MONOUT JMTSREL [MT%A %B %C - INCREMENT(S) OBS.
9M5Q SNOREL
9MKB MFREEW FILE,APROC
9MKD ...#SKIP JDUMPTW
9MKG ...(
9MKJ ...#
9MKL ...# IF FINTER1 CONTAINS ANY TSNS THEY ARE TW'D
9MKN ...# AND A MESSAGE OUTPUT TO OPERATORS
9MKQ ...#
9MKS ... MHUNTW 1,FILE,FINTER1
9MKW ... LDX 4 A1+12(1) [ANY TAPES
9MKY ... BZE 4 STW4 [IN TW LIST
9ML2 ... LDN 5 A1+13
9ML4 ...STW1
9ML6 ... SMO 5
9ML8 ... LDX 6 0(1)
9ML= ... TAPEWRONG 6
9ML# ... SBN 4 1
9MLB ... BZE 4 STW2
9MLD ... ADN 5 2
9MLG ... MHUNTW 1,FILE,FINTER1
9MLJ ... BRN STW1
9MLL ...STW4
9MLN ... MFREEW FILE,FINTER1
9MLQ ... BRN STW3
9MLS ...STW2
9MLW ... MHUNTW 1,FILE,FINTER1
9MLY ... NAME 1,FILE,APROC
9MM2 ... OUTTSNS ARE
9MM4 ... MONOUT INCOBSTW
9MM6 ... MFREEW FILE,APROC
9MM8 ...STW3
9MM= ...)
9MM^ ... FSHCODE A,XFSHAEND
9MQJ ...(
9MT7 ... TRANSFIN ,,ALIEN [RETURN IF CAME FROM MACHINE B
9MXQ ...XFSHAEND
9N2* ...)
9N52 ENDCOM
9Q3G OPBREAK
9Q65 ... FSHCODE A,XFSHACOM
9Q8N ...(
9Q?? ... TRANSFIN ,,ALIEN [RETURN IF CAME FROM MACHINE B
9Q*W ...XFSHACOM
9QDF ...)
9QH6 COMBRKIN
9R2Q #
9R=J ...)
9RGB MENDAREA 40,K99INCOBS
9S22 #
9SFL #END
^^^^ ...75042512000100000000