229S ... SEG INCTAPES,867,P.SMITH,INCDUMP 22FL ...[ 22PD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 22^= # 23DW SEGENTRY K1INCTAPES,X1INCTAPES 23YG SEGENTRY K2INCTAPES,X2INCTAPES 24D6 SEGENTRY K3INCTAPES,X3INCTAPES 24PW ... SEGENTRY K31INCTAPES,(GEOERR) 253M ... SEGENTRY K4INCTAPES,X4INCTAPES 257J ... SEGENTRY K5INCTAPES,(GEOERR) 25?F ... SEGENTRY K7INCTAPES,(GEOERR) 25CB ... SEGENTRY K8INCTAPES,(GEOERR) 25H? ...# 25M8 ... 25R5 ... 25X2 USER +10 [PRESET FABSNB O FOR OPENING TAPE 26BL 12HDUMPER 26W= MTNAME 27*W 12HGEO3DUMPTAPE 27TG #10000000 [REEL NO. 0 28*6 #10000000 [GEN. NO. 0 28SQ 4H 29#B MIN 14HUNAVAILABILITY [2ND PARAMETERS 29S2 MFAIL 15HFAILURE HISTORY [ TO MONFILE MESSAGE "I 2=3S ...MTW 16HTW DUMP [2ND PARAMETER TO MONFILE MESS 2=?L # 2=DS ...XFILE 23HA FILES-ONLY INCREMENT 2=L2 ...XREST 23HA RESTORABLE INCREMENT 2=PG ... BITDEFS AWORK1,3,XBDTSABWT,XBCDPOOL 2=PP ...# B4 SET IFF CD LOAD POOL TAPE ISSUED 2=PY ... 2=QK ...# B3 SET IF DTS HAS BEEN KICKED DURING ABANDONMENT OF A DUMP 2=R= # AWORK1 USED AS FOLLOWS:- B0=1 HAVE ASKED FOR A POOL TAPE 2?=W # B1=1 RECORD FOR THIS INCR. INSERTED IN 2?QG # (AT END OF) INCINDEX 2#=6 # B2=1 INCINDEX ALREADY OPEN (K3 ENTRY ONLY) 2#PQ # AWORK2 USED AS FOLLOWS:- B0=1 2*9B # 2*P2 # SUBROUTINES 2B8L # 2BN= # SEARCHES THROUGH DIRECTORY FOR MT WHOSE SERIAL NO. IS IN X5 & PRODUCE 2C7W # POINTER TO ITS DIR. ENTRY (IN X3). 1ASSUMES DIRECTORY IS REWOUND (IF 2CMG # NEEDS TO BE) & CHANGES STATUS OF THE MT (I.E. FREE TO USED OR VICE VE 2D76 # IF HITS END OF :DUMPER, JUST OUTPUTS A MESSAGE & EXITS AS NORMAL WITH 2DLQ # CHANGING ANYTHING (BUT X3=0). 2F6B # ON ENTRY, X5=SERIAL NO. TO BE FOUND. X4 IS S/R LINK. 2FL2 # ON EXIT, X1=FX1, X2=FX2, X3->RECORD FOUND(STEP POINTER), X5=SERIAL NO 2G5L # X3=0(IF TAPE NOT FOUND). USES X0. 2GK= SERLOOK 2H4W SBX 4 FX1 2H#N ... REWIND 2HJG SSTEP 2J46 STEP [X3-> NEXT RECORD 2JHQ BZE 3 SEOF [J IF END OF :DUMPER 2K3B LDX 0 ERESN(3) 2KH2 BNZ 0 SSTEP [J IF NOT NAME RECORD 2L2L BXU 5 ESERN(3),SSTEP [J IF NOT SERIAL NO. REQUIRED 2LG= ADX 4 FX1 2L^W STCHANGE [ENTRY IF RECORD ALREADY FOUND 2MFG SBX 4 FX1 2M^6 CALL 7 STEPWRITE [ENSURE INFORMATION WRITTEN TO BS 2NDQ BI 3,BNUSEDUMP [CHANGE STATUS OF MT (FREE TO USED OR 2NYB [ 2PD2 #SKI K6INCTAPES>99-99 2PXL ( 2QC= TRACE ESERN(3),INC SER [SERIAL NO. OF MT 2QWW TRACE EINCLOOKN(3),INC MTST [STATUS OF MT 2RBG ) 2RW6 SOUT 2S*Q ADX 4 FX1 2STB EXIT 4 0 2T*2 SEOF [THIS SHOULD BE GEOERR SOMETIMES (E.G 2TSL [ ENTRY FROM THIS SEGMENT). HOWEVER,I 2W#= [ ENTRY FROM INCCANT, POSSIBLE FOR MT 2WRW [NOT TO BELONG TO DUMPER (GEORGE BROK 2X?G [MT BEING GOT & SERIAL & DIR. CHANGED 2XR6 [CLOSED BUT RENAME PERI NOT YET DONE. 2Y=Q [RESTARTED, WHEN MT LOADED ,MT RETURN 2YQB [SINCE CALLED POOL TAPE. 2^=2 CONSERNO 5,ACOMMUNE1 [CONVERT TSN TO CHARS. 2^PL OUTPARAM ACOMMUNE1(2),ACOMMUNE2 [TSN AS PARAM. 329= MONOUT INCNDUMP [COMMENT "MT %A NOT OWNED BY :DUM 32NW BRN SOUT 338G # 33N6 # OPENS :DUMPER IN GENERAL MODE 347Q # ON ENTRY, X4 IS S/R LINK. 34MB # ON EXIT, X1=FX1, X2=FX2. USES X0. 3572 # 35LL OPENDUMPER 366= SBX 4 FX1 36KW SETNCORE 4,2,FILE,FABSNB 375G LDN 0 4 37K6 STO 0 A1(2) [SET LENGTH OF NAME 384Q ADN 1 USER+1 38JB ADN 2 A1+1 3942 MOVE 1 3 [INSERT DUMPER 39HL OPEN NOBREAK,GENERAL [OPEN :DUMPER IN GENERAL MODE 3=3= MFREEW FILE,FABSNB 3=GW ADX 4 FX1 3?2G EXIT 4 0 3?G6 # 3?^Q # THIS SUBROUTINE SIMPLY DOES A STEPWRITE (EXPANSION >40 WORDS). 3#FB # ON ENTRY,X3-> RECORD TO STEPWRITE. X7 IS S/R LINK. 3#^2 # ON EXIT, X1=FX1, X2=FX2, X3->CURRENT RECORD. USES X0. MAY COORDINATE. 3*DL # 3*Y= STEPWRITE 3BCW SBX 7 FX1 3BXG STEPWRITE 3CC6 ADX 7 FX1 3CWQ EXIT 7 0 3DBB # 3DW2 # THIS SUBROUTINE SEARCHES DOWN FGET BLOCK FOR AN ENTRY WHICH DOES NOT 3F*L # HAVE A TAPE (I.E. THE TSN IS -IVE). 3FT= # ON ENTRY, X4 IS S/R LINK. 3G#W # ON EXIT, X2-> LOCATION (IN FGET BLOCK) WHERE TSN NEEDED (IF ANY). 3GSG # USES X0,X1 & X7. NO COORDINATION. 3H#6 # EXITS+0 IF NO TAPE NEEDED : EXITS+1 IF TAPE NEEDED. 3HRQ # 3J?B TNEEDMT 3JR2 MHUNTW 2,FILE,FGET 3K=L ... LDX 0 INCCOPIES(2) [X0= NO OF MTS 3KQ= BZE 0 TNOFGET [J IF NO MTS IN FGET (CAN HAPPEN IF 3L9W [ ABOUT TO ABANDON & OBLITERATE INC 3MNQ ADN 2 FGETSER [X2-> FIRST TSN 3N8B TMOREFGET 3NN2 LDX 1 0(2) [X1= NEXT TSN IN FGET 3P7L BNG 1 TFGET [J IF MT NEEDED HERE 3PM= ADN 2 FGETLEN [UPDATE POINTER TO NEXT TSN 3Q6W BCT 0 TMOREFGET [J IF MORE TSNS TO TEST 3QLG TNOFGET 3R66 EXIT 4 0 [NO MT NEEDED 3RKQ TFGET 3S5B EXIT 4 1 [MT NEEDED 3SK2 # 3T4L # 3T#Y ...# THIS SUBROUTINE SEARCHES THE FDUCOM FOR A TSN SUPPLIED AS A 3TK= ...# PARAMETER TO THE DUMP COMMAND WHICH HAS NOT ALREADY BEEN TRIED 3TTJ ...# X4 IS LINK 3W5W ...# EXITS +0 IF NO TAPES AVAILABLE 3WB8 ...# EXITS +1 IF TAPE AVAILABLE, ..X3-> TSN 3WLG ...TGIVENMT 3WWS ... HUNTW 3,FI,FDUCOM 3X76 ... BNG 3 TFDUCOM [ IF NO FDUCOM- CAN BE NO TAPES 3XCD ... LDX 0 FDUTSNCT(3) [ NO OF TAPES 3XMQ ... BZE 0 TFDUCOM [ J IF NO TAPES 3XY4 ...TMOREFDUCOM 3Y8B ... LDX 1 FDUTSN(3) 3YDN ... BPZ 1 TISFDUCOM [ FOUND A SUITABLE TAPE 3YP2 ... ADN 3 1 3Y^# ... BCT 0 TMOREFDUCOM [ TRY NEXT TAPE 3^9L ...TFDUCOM 3^FY ... EXIT 4 0 [ NO TAPES LEFT 3^Q= ... [** ***** **** 422J ...TISFDUCOM 42=W ... EXIT 4 1 [ FOUND A TAPE 42H8 ... [ ***** * **** 42RG ...# 433S ...# THIS SUBROUTINE GETS A POINTER GETS A POINTER TO A SPERA 43#6 ...# TAPE IN A FDUMPTAPES 43JD ... 43SQ ...TFDUMPTAPES 4454 ... HUNTW 3,FI,FDUMPTAPES 44*B ... BNG 3 NOFDUMPTAPE [ J IF NO FDUMPTAPES 44KN ... LDX 0 ALOGLEN(3) [ OR IF NO SPARE TAPES 44W2 ... BZE 0 NOFDUMPTAPE [ 456# ...TFDUMP 45BL ... LDX 1 FDTTAPE(3) [ NEXT TAPE 45LY ... BPZ 1 TISFDUMP [ FOUND A SPARE TAPE 45X= ... ADN 3 1 467J ... BCT 0 TFDUMP [ TRY NEXT TAPES 46CW ...NOFDUMPTAPE 46N8 ... EXIT 4 0 [ NO TAPES LEFT 46YG ... [ ** ***** **** 478S ...TISFDUMP 47F6 ... EXIT 4 1 [ FOUND A TAPE 47PD ... [ ***** * **** 47^Q ...# # # # # 48=4 ...# 48GB ...# 48QN ...# THIS THE MAIN ENTRY POINT TO THE SEGMENT ( FROM INCSTART) 4932 ...# WE DECIDE IF WE HAVE ENOUGH TAPES , IF NOT WE TRY TO OBTAIN SOME 49?# ...# FROM SPECIFIED TAPES ,SPARE TAPES THEN POOL TAPES 49HL ...X1INCTAPES 49MR ... BC 2,XBCDPOOL 49RY ... SETNCORE 0,1,FI,FREJTAPES [ SET UP AN EMPTY LIST OF CD'ED TAPES 4=4= ... BRN X1INC [ JUMP INTO MAIN LOOP 4=#J ...MTCHECK 4=JW ... OPENINC ,GENERAL [ OPEN INCINDEX 4=T8 ...X1INC 4?5G ... JBS ZINSREC,,BDUMPAB [ JUMP IF DUMP CANCELLED 4?*S ... CALL 4 OPENDUMPER [ OPEN :DUMPER 4?L6 ... JBS XCLOSE,,BDUMPAB [ JUMP TO DELETE RECORD AND A 4?WD ...NEXTGIVEN 4#6Q ... CALL 4 TNEEDMT [ SEE IF WE NEED ANY MORE TAPES 4#C4 ... BRN XCLOSE [ J IF EE HAVE ENOUGH 4#MB ... CALL 4 TGIVENMT [ SEE IF WE CAN USE ANY SPECIFIED TAP 4#XN ... BRN SPARETAPES [ NO ... TRY USING SPARE TAPES 4*82 ... LDX 5 FDUTSN(3) [ PICK UP SPARE TAPE 4*D# ... BS 3,FDUTSNUSED [ MARK AS USED IN FDUCOM 4*NL ... STO 5 0(2) [ STICK IN FGET 4*YY ... [ CLEAR STATE WORD 4B9= ... STOZ FGETSTATE-FGETSER(2) 4BFJ ... CALL 4 SERLOOK [ FIND TAPE IN :DUMPER 4BPW ... BZE 3 SPARETAPES [ JUMP IF TAPE DEADED 4C28 ... BS 3,BNUSEDUMP [ ENSURE MARKED AS USED 4C=G ... BRN NEXTGIVEN [ SEE IF WE STILL NEED TAPES 4CGS ... [ **** 4CR6 ...# EITHER THERE ARE NO TAPES LEFT IN FDUCOM 4D3D ...# OR WE ARE NOT ALLOWED TO USE CURRENT TAPES 4D?Q ...SPARETAPES 4DJ4 ... HUNTW 3,FI,FDUCOM [ GET FDUCOM IF ANY 4DSB ...# *********************** **************************************** 4F4N ... SEGENTRY K80INCTAPES [ NULLED BY ON 4F*2 ... BRN NUDTPLOFF [ RESTORED BY OFF 4FK# ...# THE FOLLOWING FEW LINES ARE INVOKED BY THE NEWDTPOOL MACRO 4FTL ... BNG 3 XCLOSE [ NO DU COMMAND SO USE POOL 4G5Y ... JBC XCLOSE,3,BFDSPARE [ USE POOL UNLESS DU SPARE 4GB= ...NUDTPLOFF 4GLJ ... SEGENTRY K81INCTAPES 4GWW ... BNG 3 SPARE2 [ IF NO FDUCOM WE CAN USE SPARE TAPE 4H78 ... JBS XCLOSE,3,BFDPOOL [J IF WE HAVE BEEN TOLD TO UES POOL 4HCG ...SPARE2 4HMS ... CALL 4 SFDUMPTAPES [ SET UP LIST OF SPARE DUMPTAPES 4HY6 ...NEXTSPARE 4J8D ... CALL 4 TNEEDMT [ DO WE STILL NEED MTS 4JDQ ... BRN XCLOSE 4JP4 ... CALL 4 TFDUMPTAPES [ GET A POINTER TO NEXT SPARE TAPE 4J^B ... BRN XCLOSE [ NONE LEFT TRY POOL 4K9N ... LDX 5 FDTTAPE(3) [ PICK UP TAPE 4KG2 ... STO 5 0(2) [ STICK IT IN FGET 4KQ# ... STOZ FGETSTATE-FGETSER(2) [ CLEAR STATE WORD 4L2L ... 4L=Y ... BS 3,FDTTAPEUSED [ M MARK AS USED IN FDTUMPTAPES 4LH= ... CALL 4 SERLOOK [ SET USED BIT IN :DUMPER 4LRJ ... CALL 4 TNEEDMT [ ANY MORE TAPES EYT 4M3W ... BRN XCLOSE [ GOT ENUFF TAPES 4M#8 ... BRN NEXTSPARE [ TRY AGAIN 4MJG ...# 4MSS ...# POOL 4N56 ... 4N*D ...# ****************************************************************** 4NKQ ...WAITCCDU [ DUMP HAS BEEN CANCELLED 4NW4 ... OPENINC ,GENERAL [ OPEN INCINDEX 4P6B ... BRN ZINSREC 4PBW XCLOSE 4PWG CLOSETOP [CLOSE :DUMPER 4QB6 LDCT 0 #400 4QTQ ORS 0 AWORK2(2) 4R*B ERS 0 AWORK2(2) [ENSURE "FREE MT FOUND" BIT NOT SET 4RT2 # 4S#L ZINSREC 4SS= WIND [POSITION INCINDEX AFTER LAST RECORD 4T?W LDCT 0 #200 4TRG ANDX 0 AWORK1(2) 4W?6 BZE 0 ZINS [J IF NO REC. FOR THIS INCR. PREVIOUS 4WQQ [ INSERTED 4X=B DELETE [DELETE CURRENT REC. FOR THIS INCR. 4XQ2 ZINS 4XT6 ... JBCC NOTCANCEL,,BDUMPAB [ J IF DUMP NOT CANCELLED 4XY= ... CLOSETOP 4Y3B ... UP 4Y6G ...NOTCANCEL 4Y9L LDCT 0 #200 4YP= ORS 0 AWORK1(2) [SET "RECORD FOR THIS INCR. INSERTED" 4^8W MHUNTW 3,FILE,FWB 4^NG MHUNTW 2,FILE,FGET 5286 ... LDX 0 AMTS(3) [X0= NO. OF TSNS TO MOVE 53M2 ZTAPE 546L LDX 1 FGETSER(2) [MOVE TSN FROM FGET BLOCK 54L= STO 1 AMAG(3) [ TO NEXT POSITION IN FWB 555W STOZ AMAGSTATE(3) [CLEAR TAPE STATE WORD 55KG ADN 2 FGETLEN [UPDATE MODIFIERS IN FGET BLOCK 5656 ADN 3 INCMAGLEN [ & FWB 56JQ BCT 0 ZTAPE [J IF MORE TSNS TO MOVE 574B STEP 57J2 INSERT [INSERT REC. FOR THIS INCR. AT END OF 583L [INCINDEX - APPEND NOT ALLOWED FOR 58H= [ INDEXED SERIAL FILES. 592W ZNOMTS 59GG CLOSETOP [CLOSE INCINDEX 5=26 ... CALL 4 TNEEDMT [ 5=FQ ... BRN YCHECK [ J IF WE HAVE ENOUGH TAPES 5#XW POOL 5*54 ... LDX 2 FX2 5*== ... JBS NOPOOL,2,XBCDPOOL [ J IF JUST CD'D POOL TAPE 5*CG SETNCORE 10,2,FILE,FABSNB 5*X6 ADN 2 A1 5BBQ ADN 1 USER 5BWB MOVE 1 10 [MOVE :DUMPER.GEO3DUMPTAPE TO FABSNB 5CB2 MONOUT INCPOOL [OUTPUT "DUMPER REQUIRES A POOL TAPE" 5DSW GET [GET POOL TAPE NOW 5F#G MHUNT 1,FILE,FABSNB [NOW LENGTH OF FABSNB = REC. HEAD +2 5FS6 SMO A1(1) 5G?Q LDX 5 A1+1(1) [X5= TSN OF TAPE JUST GOT 5GRB FREECORE 1 [FREE FABSNB 5H?2 ... TESTREP2 NOTAV,NOPOOL [J IF CANTDO ON POOL TAPE REQUEST 5HGS ... TESTREP2 NODECKS,NOPOOL1 [NO DECKS AVAILABLE 5HQL CALL 4 OPENDUMPER [OPEN :DUMPER IN GENERAL MODE 5J== CALL 4 SERLOOK [MARK DIR. ENTRY OF TAPE AS "USED BY 5JPW CLOSETOP [CLOSE :DUMPER 5K9G ... BZE 3 MTCHECK [J IF TAPE NOT ACTUALLY IN :DUMPE 5LNB CALL 4 TNEEDMT [FIND POSITON IN FGET OF REQUIRED TAP 5M82 BRN NFGET [GEOERR IF NO TAPE NEEDED 5MML STO 5 0(2) [INSERT TSN INTO FGET 5N7= STOZ FGETSTATE-FGETSER(2)[CLEAR STATE WORD 5NLW ... BRN MTCHECK [ 5P6G ...NOPOOL 5PL6 ... JBCS MTCHECK,2,XBCDPOOL [ J IF FIRST CD LOAD POOL 5PTY ...NOPOOL1 5Q5Q ... BS ,BDUMPAB [ SIMULATE CC DU 5QKB ... BRN MTCHECK [ BACK TO SEE IF ANY NEW DUMP TAPES 5R52 ...# 5SHW # 5T3G [ THE DUMPER MAKES KNOWN ITS REQUIREMENTS TO THE SCHEDULER. 5TH6 [ THE TAPES TO BE DUMPED ON ARE MOVED FROM THE FILE/FINC BLOCK TO 5W2Q [ THE FILE/FGET BLOCK AND THE SCHEDULER WOKEN UP. THE SCHEDULER THEN 5WGB [ POSITIONS THE MTS AND THEN WAKES UP THE DUMPER EACH TIME A TAPE 5X22 [ IS POSITIONED.THE DUMPER THEN LOOKS TO SEE IF ALL TAPES ARE 5XFL [ POSITIONED AND IF NOT GOES BACK TO SLEEP. IF THE SCHEDULER FINDS 5X^= [ THAT A TAPE IS UNOBTAINABLE IT INFORMS THE DUMPER. THE DUMPER 5YDW [ THEN FINDS OUT WHETHER OR NOT DUMPING ON THE SAME NO OF TAPES IS 5YYG [ REQUIRED AND IF SO FINDS A NEW TAPE,THE FILE/FGET BLOCK BEING 5^D6 [ ALTERED ACCORDINGLY. 5^XQ # 62CB REQMT 62D* ... JBS WAITCCDU,,BDUMPAB [ JUMP IF DUMP CANCELLED 62F# ... MHUNTW 1,FILE,FGET 62H= ... JBC NPLL,,BPARALLEL [FIRST PARAM ONLY IF PLL MODE 62K8 ... LDN 2 XFILE ["A FILES-ONLY INCR" 62M6 ... JBC NREST,1,BINCGENRES [J UNLESS RESTABLE 62P4 ... LDN 2 XREST ["A RESTORABLE INCR" 62R2 ...NREST 62SY ... MHUNTW 3,FILE,FQUAL [MOVE PARAM INTO CONVENIENT 62WW ... LDN 3 A1(3) [BLOCK 62YS ... ADX 2 FX1 632Q ... MOVE 2 6 634N ... OUTPARN 23,A1,FILE,FQUAL [OUTPUT IT 636L ... BRN PARAM2 638J ...NPLL OUTNULL [NON PLL SO OUTPUT NULL 1ST PARAM 63=G ...PARAM2 63=N ...# DUMPER INTENDS TO DUMP %A ON MT%B %C 63=W ... MHUNTW 1,FILE,FWB [ COPY OF NEW INC RECORD 63?4 ... NAME 1,FILE,APROC [ RENAMED APROC FOR OUTTSNS TO 63?= ... OUTTSNS [ OUTPUT LIST OF TSNS AS PARAMETER 63?D ... MHUNTW 1,FILE,APROC 63?L ... NAME 1,FILE,FWB [ BACK TO FWB AGAIN 6M8C ...# MARK ALL TAPES AS REQUESTED 6M9B ... MHUNTW 3,FILE,FGET 6M=* ... LDX 1 INCCOPIES(3) 6M?# ...NEXTREQ 6M#? ... BS 3,BFGETREQ 6M*= ... ADN 3 FGETLEN 6MB9 ... BCT 1 NEXTREQ 6MC= MONOUT INCINTENT [OUTPUT "DUMPER INTENDS TO DUMP ON MT 6MM4 ... BC 2,XBCDPOOL [ NOT JUST DONE CD LOAD POOL TAPE 6MWW BS ,BMTSREQ [SET "DUMPER TAPE REQUESTS NEED SERVIC 6NBG [ MARKER FOR DUMP TAPE SCHEDULER 6NW6 STARTACT RET [KICK DTS IF NECESSARY 6P*Q YFGOT 6PKJ ... JBS WAITCCDU,,BDUMPAB [ JUMP IF DUMP CANCELLED 6PTB COOR3 FGOTWAIT [WAIT UNTIL SOME MORE TAPES POSITIONE 6Q*2 [ (IF WOKEN UP WITHOUT ANY TAPES HAVI 6QSL [ REACHED A TERMINAL STATE) 6R#= # 6RRW YCHECK 6S?G ... MHUNTW 3,FILE,FGET 6SR6 LDX 7 INCCOPIES(3) [X7= NO. OF MTS DUMPING ON 6T=Q ... LDN 5 FGETSER [OFFSET DOWN FGET 6W=2 LDN 6 0 [CLEAR MARKER WORD 6WPL YSTATE 6X9= SMO 5 6XNW LDX 4 FGETSTATE-FGETSER(3)[X4= FGET STATE WORD FOR TAPE 6Y8G BZE 4 YNEW [J IF NOT NOTIFIED TO RETRIEVAL SYSTE 6Y=D ...#SKIP JDUMPTW 6Y#B ...( 6YB# ... SLL 4 5 [GET BIT 5 6YD= ... BNG 4 YTAPETW [BRANCH IF TAPE MARKED"TO BE TW'D" 6YG8 ... SMO 5 [MODIFIER DOWN FGET 6YJ6 ... LDX 4 FGETSTATE-FGETSER(3)[RELOAD FGETSTATE WORD FOR TAPE 6YL4 ...) 6YN6 SLL 4 1 6^7Q BNG 4 YUPMOD [J IF TAPE POSITIONED 6^MB SLL 4 1 7272 BNG 4 YTAPEUN [J IF TAPE UNOBTAINABLE 72LL ORN 6 1 [SET "TAPE NOT DEALT WITH" MARKER (RE 736= [ SYSTEM MUST BE REQUESING OR 73KW [ POSITIONING TAPE) 745G YUPMOD 74K6 ADN 5 FGETLEN [UPDATE MOD DOWN FGET 754Q BCT 7 YSTATE [J IF MORE STATE WORDS TO INSPECT 75JB BNG 6 REQMT [J IF TO TELL RETRIEVAL SYSTEM ABOUT 7642 [ SOME NEW TAPES 76HL SRC 6 1 773= BPZ 6 YPOS [J IF ALL TAPES SUCCESSFULLY POSITION 77GW BRN YFGOT [GO & WAIT 782G YNEW 78G6 ORX 6 GSIGN [SET "NEW TAPES TO TELL RETRIEVAL SYS 78^Q BRN YUPMOD [ ABOUT" MARKER 79FB # 79H# ...#SKIP JDUMPTW 79K= ...( 79M8 ...YTAPETW 79P6 ... LDN 4 #6467 [LOAD INDICATOR "TW" TO SHOW THAT 79R4 ... [THIS TAPE IS MARKED "TO BE TW'D" 79T2 ... BRN YTAP1 79WY ...) 79^2 YTAPEUN 7=DL SLL 4 1 7=ND ...YTAP1 7=Y= SMO 5 7?CW LDX 6 0(3) [X6= TSN OF OFFENDING TAPE 7?XG CONSERNO 6,ACOMMUNE1 [CONVERT TSN TO CHARS. 7#C6 OUTPARAM ACOMMUNE1(2),ACOMMUNE2 [OUTPUT TSN AS PARAM. 7#WQ LDN 1 MIN [SET "INAVAILABILITY" AS PARAMETER 7*BB BPZ 4 YNOHIST [J IF NOT HISTORIC FAIL 7*W2 LDN 1 MFAIL [SET "FAILURE HISTORY" AS PARAMETER 7B*L YNOHIST 7BC* ...#SKIP JDUMPTW 7BF4 ...( 7BGR ... SBN 4 #6467 7BJG ... BNZ 4 YNOH2 [TAPE NOT MARKED TO BE TW'D 7BL9 ...# TAPE IS MARKED "TO BE TW'D" 7BMY ... LDN 1 MTW [SET "TW DUMP" AS PARAMETER 7BPM ...YNOH2 7BRB ...) 7BT= ADX 1 FX1 7C#W ADN 2 ACOMMUNE1 7CSG MOVE 1 4 [PUT 2ND PARAMETER IN ACT. BLOCK 7D#6 OUTPARN 16,ACOMMUNE1 [OUTPUT INAVAILABILITY OR 7DRQ [ FAILURE HISTORY 7F?B MONOUT INCHIST [OUTPUT "DUMPER= MT %A NOT RE-USED 7FR2 [ DUE TO %B" 7FW8 ...# ADD TSN TO LIST OF CD'ED TAPES 7F^B ... MHUNTW 1,FI,FREJTAPES 7G4J ... LDX 3 ALOGLEN(1) [ INCREASE LENGTH BY 1 7G7Q ... ADN 3 1 7G=Y ... ALTLENG 1,3,SFREJTAPES 7GB6 ... MHUNTW 3,FI,FREJTAPES 7GF# ... SMO ALOGLEN(3) [ STORE TSN AT END OF LIST 7GJG ... STO 6 FRJTAPE-1(3) [ 7GMN ...# ################################################################## 7GQW ...# 7GW4 ...# THE FOLLOWING FEW LINES ARE ALL THAT REMAIN OF INCCANT 7G^= ...# 7H4D ... LDX 7 5 [ X5 IS POINTER DOWN FGET 7H7L ... HUNTW 1,FILE,FINTER 7H=S ... BNG 1 YNONECPL [J IF NO RETRIEVABLE INCRS. 7HB2 ... LDX 4 AMTS(1) [X4= NO. OF TAPES WITH LAST RETRIEVAB 7HF8 ...YSER 7HJB ... BXE 6 AMAG(1),YRET [J IF TAPE CANTDONE CONTAINS LAST RET 7HMJ ... ADN 1 INCMAGLEN [UPDATE MOD DOWN FINTER 7HQQ ... BCT 4 YSER [J IF MORE TSNS TO TEST 7HTY ...YNONECPL 7HX2 ... OPENINC ,GENERAL 7HX= ... STO 7 AWORK3(2) 7HXG ... LDX 7 AWORK1(2) 7HXQ ... STO 7 AWORK4(2) 7HY4 ... STOZ AWORK1(2) 7J28 ... CALL 7 R1 [REMOVE "MT USED BY DUMPER" BIT FROM 7J2P ... LDX 7 AWORK4(2) 7J3= ... STO 7 AWORK1(2) 7J3R ... LDX 7 AWORK3(2) 7J4# ... [DIR. ENTRY & ALSO SEARCH INCINDEX FO 7J7G ... [SETTING THE TSN -IVE & MAGSTATE WORD 7J=N ... [ZERO IF FOUND 7J*W ...YRET 7JF4 ... MHUNTW 3,FILE,FGET [X3-> FGET BLOCK 7JJ= ... LDCT 0 #400 7JMD ... SMO 7 [SET TSN -IVE IN FGET BLOCK TO SHOW N 7JQL ... STO 0 0(3) [ TAPE NOW PRESENT IN THIS ELEMENT 7JTS ... [WE LEAVE THE STATE WORD SET UP 7J^2 ... [SO AS TO STOP SCHED LOOKING AT 7K48 ... [OUR NEGATIVE TSN 7K7B ... BRN MTCHECK [ TRY.TRY . TRY AGAIN 7K=J ...# 7K*Q ...SFREJTAPES [ SUBROUTINE FOR ALTLENG 7KDY ... MHUNTW 2,FI,FREJTAPES 7KJ6 ... EXIT 1 0 [ 7KK5 ...# 7KL4 ...# 89DN ...YPOS 89F3 ... MHUNTW 1,FILE,FGET 89FB ... LDX 3 INCCOPIES(1) [NO OF MTS 89FP ... SLL 3 1 [NO OF WORDS IN TSN LIST 89G4 ...UNITNO 89GC ... SMO 3 89GQ ... LDX 7 FGETSER-FGETLEN(1) 89H5 ... SMO 3 89HD ... LDEX 6 FGETSTATE-FGETLEN(1) 89HR ... LDN 5 1 [LENGTH OF MESSAGE PARAMS 89J6 ... LDN 4 JPDTSN [THE FIRST PARAM IS A TSN 89JF ... LDN 0 7 89JS ... OUTPACKX 0,5,4 89K7 ... LDN 4 JPDNUMA [THE SECOND THE UNIT NO. 89KG ... LDN 0 6 89KT ... OUTPACKX 0,5,4 89L8 ... MONOUT ADUMPUNIT 89LH ... MHUNTW 1,FILE,FGET 89LW ... SBN 3 FGETLEN 89M9 ... BNZ 3 UNITNO 89MJ ... UPPLUS 1 [ ALL TAPES POSITIONED 8=8= NFGET 8=MW #SKI K6INCTAPES 8?7G GEOERR BRIEFPM,INC FGET [NO TAPE NEEDED WHEN THOUGHT DID 8?M6 # 8#6Q NOBREAK 8#LB #SKI K6INCTAPES 8*62 GEOERR BRIEFPM,INCBREAK [DUMPER CAN'T BE BROKEN-IN ON SINCE O 8*KL [ SYSTEM-INITIATED JOB 8B5= # 8BJW # 8C4G X2INCTAPES 8CJ6 CALL 4 OPENDUMPER [OPEN :DUMPER IN GENERAL MODE 8D3Q UP 8DHB UP 8F32 # 8F=S ...# SUBROUTINE R1 8FGL # 8G2= # MARK THE DIR. ENTRY FOR TAPE IN X6 AS "NOT USED BY DUMPER" (I.E. REMO 8GFW # B0 OF EINCLOOK) & IF IT IS MENTIONED IN INCINDEX (AS IT SHOULD BE,IN 8G^G # INCR. NOT SUITABLE FOR RETRIEVING) SET B0 OF ITS TSN & ZEROISE ITS 8HF6 # MAGSTATE WORD. NEED TO SEARCH INCINDEX SINCE IF GEORGE BROKE WHEN ABO 8HYQ # TO DUMP INCR. N & UPON RESTART INCR. N+1 WAS ABANDONED & OBLITERATED, 8JDB # WOULD NEXT DUMP ON SAME TAPES AS IN INCR. N EVEN THOUGH THOSE NOT IN 8JY2 # 'SUITABLE FOR RETRIEVING' INCR. WOULD NOT BE MARKED "USED BY DUMPER" 8KCL # (BUG 3879 IN MK 7). 8KX= # WE LOOK FOR TSN IN MORE INCINDEX RECORDS THAN WE STRICTLY SHOULD DO, 8LBW # IT SHOULD NOT BE IN THESE OTHER RECORDS & ROUTINE IS ONLY RARELY ENTE 8LWG # 8P#L X3INCTAPES [INCINDEX OPEN - ENTRY FROM INCSTART 8PS= SETBIT 2,AWORK1(2) [SET "INCINDEX OPEN" MARKER 8Q?W REWIND 8QF4 ... CALL 7 R1 8QL= ... UP 8QRG R1 8R3# ... SBX 7 FX1 8R?6 LDX 5 6 [X5= TSN 8RQQ CALL 4 OPENDUMPER [OPEN :DUMPER IN GENERAL MODE 8RXY ... STO 7 6 8S56 ... 8S=B CALL 4 SERLOOK [REMOVE "USED BY DUMPER" BIT FOR TAPE 8S?Y ... LDX 7 6 8S*G ... BZE 3 (GEOERR) 8SDL ... BC 3,BNUSEDUMP [[ ENSURE USED BIT CLEAR 8SHQ ...#UNS IDCTRACE 8SLW ... TRACEVER 5,X3INCT 8SQ2 CLOSETOP [CLOSE :DUMPER 8T9L RSTEP 8TP= STEP [NEXT RECORD IN INCINDEX 8W8W BZE 3 RZERO [J IF END 8WNG JBC RSTEP,3,BINSUITRVR [J IF INCR SUITABLE FOR RETRIEVING (T 8X86 [SHOULD NOT APPEAR IN SUCH INCRS, BUT 8XMQ [IF IN INCINDEX TWICE (B 7351 IN MK7) 8Y7B LDX 6 AMTSR(3) [X6= NO. OF MTS IN RECORD 8YM2 BZE 6 RSTEP [J IF NONE 8^6L LDN 4 0 [CLEAR MOD DOWN RECORD 8^L= RNEXT 925W SMO 4 92KG BXE 5 AMAGR(3),RFOUND [J IF TSN FOUND 9356 ADN 4 INCMAGLEN 93JQ BCT 6 RNEXT [J IF MORE TSNS TO LOOK AT 944B BRN RSTEP 94J2 RFOUND 94RS ... STO 7 6 953L CALL 7 STEPWRITE [STEPWRITE INFORMATION 95?D ... LDX 7 6 95H= LDCT 0 #400 962W SMO 4 96GG ORS 0 AMAGR(3) [SET TSN -IVE (I.E. "NO TSN PRES&NT") 9726 SMO 4 97FQ STOZ AMAGSTATER(3) [CLEAR MAGSTATE 97^B BRN RSTEP 98F2 RZERO 98YL BBS 2,AWORK1(2),REND [J IF INCINDEX TO BE LEFT OPEN 99D= CLOSETOP 99XW REND 9==? ... ADX 7 FX1 9=JN ... EXIT 7 0 9=X6 # 9=X7 ...SFINDFDUMP [ SUBROUTINE FOR ALTLENG 9=X8 ... MHUNTW 2,FI,FDUMPTAPES 9=X9 ... EXIT 1 0 9=X= ...# 9=X? ...# THIS ENTRY POINT IS USED BY DUMP TAPES TO SET UP A LIST OF SPARE T 9=X# ...# 9=X* ...# 9=XB ...X4INCTAPES 9=XC ... CALL 4 OPENDUMPER [ OPEN : DUMPER 9=XD ... CALL 4 SFDUMPTAPES [ SET UP AND FILL THE LIST OF TAPES 9=XF ... CLOSETOP [ CLOSE :DUMPER 9=XG ... UP [ UP UP AND AWAY 9=XH ...# 9=XJ ...# THIS SUBROUTINE SETS UP THE LIST OF TAPES 9=XK ...SFDUMPTAPES [ 9=XL ... SBX 4 FX1 [ RELATIVISE LINK 9=XM ... HUNTW 3,FI,FDUMPTAPES [ IF A FDUMPTAPES DOES NOT 9=XN ... BPZ 3 NOFD [ ALREADY EXIST SET ONE UP 9=XP ... SETNCORE 0,3,FI,FDUMPTAPES [ EMPTY OF COURSE 9=XQ ...NOFD 9=XR ... ALTLENGD 3,0,SFINDFDUMP [ RESET LENGTH TO ZERO 9=XS ... REWIND [ :DUMPER 9=XT ...STEPSPARE 9=XW ... STEP 9=XX ... BZE 3 SPAREND 9=XY ... BWNZ ERESN(3),STEPSPARE 9=X^ ... JBC STEPSPARE,3,BNLIB 9=Y2 ... JMBS STEPSPARE,3,BNERASE,BNUSEDUMP 9=Y3 ... BWNZ EREELN(3),STEPSPARE 9=Y4 ... TESTNAMX 3,ELOC1N(3),MTNAME(1),STEPSPARE 9=Y5 ...# IF THERE IS A FREJTAPES MAKE SORE THE TAPE IS NOT IN IT 9=Y6 ... LDX 5 ESERN(3) [ PICK UP TSN 9=Y7 ... HUNTW 2,FI,FREJTAPES [ 9=Y8 ... BNG 2 NOFREJ [ JUMP IF NO FREJTAPES 9=Y9 ... LDX 0 ALOGLEN(2) [ J IF EMPTY FREJTAPES 9=Y= ... BZE 0 NOFREJ 9=Y? ...NEXTFREJ 9=Y# ... BXE 5 FRJTAPE(2),STEPSPARE [ J IF THIS TAPE HAS BEEN CD'ED 9=Y* ... ADN 2 1 [ MOVE POINTER 9=YB ... BCT 0 NEXTFREJ [ CHECK NEXT TAPE 9=YC ...NOFREJ 9=YD ... MHUNTW 3,FI,FDUMPTAPES [ LENGTHEN 9=YF ... LDX 6 ALOGLEN(3) [ THE FDUMPTAPE BY 9=YG ... ADN 6 2 [ TWO WORDS 9=YH ... ALTLENG 3,6,SFINDFDUMP 9=YJ ... STEPAGAIN 9=YK ... MHUNTW 1,FI,FDUMPTAPES 9=YL ...# 9=YM ... LDX 0 EWRITDAYN(3) [ PICK UP DATE WWRITTEN 9=YN ... SBN 6 2 [ FIND NO OF USED WORDS 9=YP ... BZE 6 NOWINSERT [ JUMP IF NONE USED 9=YQ ...NEXT 9=YR ... SBN 6 2 [ JUMP IF OFF START OF BLOCK 9=YS ... BNG 6 MOVETSNS 9=YT ... SMO 6 [ JUMP IF NOT YET REACHED THE PLACE 9=YW ... BXL 0 FDTDATE(1),NEXT [ 9=YX ...# FOUND THE POSITION FOR THE TAPE 9=YY ...MOVETSNS 9=Y^ ... LDX 0 ALOGLEN(1) [ FIND THE NUMBER 9=^2 ... SBX 0 6 [ OF WORDS TO MOVE 9=^3 ... SBN 0 4 9=^4 ... BZE 0 MOVENONE [ JUMP IF NO WORDS TO MOVE 9=^5 ... ADX 1 ALOGLEN(1) 9=^6 ... SBN 1 4 9=^7 ...NEXTWORD 9=^8 ... LDX 2 FDTDATE(1) [ MOVE THE WORD 9=^9 ... STO 2 FDTDATE+2(1) 9=^= ... SBN 1 1 [ MOVE THE POINTERS 9=^? ... BCT 0 NEXTWORD 9=^# ...MOVENONE 9=^* ... ADN 6 2 [ X6 POINTS TO POSN TO INSETR 9=^B ...NOWINSERT 9=^C ... MHUNTW 1,FI,FDUMPTAPES [ 9=^D ...#UNS IDCTRACE 9=^F ... TRACEVER 6,6 9=^G ...#UNS IDCTRACE 9=^H ... BLOCKTRACE 1,FDUMPFB 9=^J ... LDX 0 ESERN(3) [ PICK UP TSN 9=^K ... SMO 6 9=^L ... STO 0 FDTTAPE(1) [ IN BLOCK 9=^M ... LDX 0 EWRITDAYN(3) [ DATE LAST WRITTEN 9=^N ... SMO 6 [ 9=^P ... STO 0 FDTDATE(1) [ IN BLOCK 9=^Q ...#UNS IDCTRACE 9=^R ... BLOCKTRACE 1,FDUMPTAP 9=^S ... BRN STEPSPARE 9=^T ...SPAREND 9=^W ...# THE FDUMPTAPES CONSISTS OF TWO WORDS FOR 9=^X ...# EACH TAPE - WE HAVE TO SHORTEN IT 9=^Y ... MHUNTW 1,FI,FDUMPTAPES 9=^^ ... LDX 3 ALOGLEN(1) [ LENGTH 9?22 ... BZE 3 NOSPARET 9?23 ... SRL 3 1 [ NUMBER OF TAPES 9?24 ... LDN 2 0 [ MODIFIER TO TSN TO MOVE 9?25 ...NEXTM 9?26 ... SMO 2 9?27 ... LDX 0 FDTTAPE(1) [ PICK UP TSN 9?28 ... STO 0 FDTTAPE(1) 9?29 ... ADN 2 1 9?2= ... ADN 1 1 [ INCREASE POINTERS 9?2? ... BCT 3 NEXTM [ BACK FOR NEXT TAPE 9?2# ... MHUNTW 3,FI,FDUMPTAPES [ 9?2* ... LDX 6 ALOGLEN(3) [ LENGTH OF BLOCK 9?2B ... SRL 6 1 [ DIVIDED BY TWO IS NEW LENGTH 9?2C ... ALTLENG 3,6,SFINDFDUMP [ 9?2D ...NOSPARET 9?2F ... ADX 4 FX1 [ 9?2G ... EXIT 4 0 9?B7 ...# 9?B? ...# ****************************************************************** 9?BC ...# 9?BQ MENDAREA 30,K99INCTAPES 9?WB # 9#B2 #END ^^^^ ...37170752000200000000