{{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