(George Source)
Macros used: BC, BITDEFS, BLOCKTRACE, BS, BXE, BXGE, BXU, CHAINACT, CLOSETOP, COOR3, DELETE, DOWN, FDTENT, FINDACTFB, FPUT, FREECORE, GEOERR, HUNT2, JBC, JBS, JBSS, JMBS, LINKSET, MENDAREA, MFREE, MFREEW, MHUNTW, NAME, OPENINC, PAIR, READBACK, RINGACT, SEG, SEGENTRY, STEP, STEPAGAIN, TRACEVER, UP, WIND
22FL ... SEG INCDTA,865,P.SMITH,INCDUMP 22^= # 23DW ... SEGENTRY K1INCDTA,X1INCDTA 23YG ... SEGENTRY K2INCDTA,X2INCDTA 24D6 ... SEGENTRY K3INCDTA,X3INCDTA 2=LM ...TYPEFINC 2=M# ...#HAL FILE+FINC,0 [ TYPE OF FINC BLOCK 2=M^ ...TYPEFGET 2=NL ...#HAL FILE+FGET,0 [ ATYPE OF FGET BLOCK 2=NT ...TBLINK 2=P4 ...#HAL BLINK,0 [ATYPE OF BLINK 2=P? ...PFIN PAIR DTSTART,7 [ LINK TO RETURN DTA'S TO RETRIEVAL S 2?8X ... BITDEFS AWORK1,3,XBDTSABWT 2?NH ...X1INCDTA 7KN2 # 7L7L # NOW GATHER THE REQUIRED DUMP TAPE ACTIVITIES (DTAS) (WITH TAPES NOW 7LM= # POSITIONED FOR DUMPING) AND THEIR ASSOCIATED BLOCKS IN FRONT OF DUMPE 7M6W # ACT. BLOCK. RE-RING THE DTAS AS WELL AS RE-CHAINING THEM. 7MLG # 7MPL ...# ***************************************************** 7MSQ ...# IN THIS LOOP TO RECHAIN THE DTA'S - WE USE - 7MXW ...# X1 -> FGET , X4 IS MODIFIER DOWN FINC,X7 IS COUNT OF DTA'S 7N32 ... 7N=S ... STOZ AWORK1(2) 7NGL ... MHUNTW 1,FILE,FINC [X1-> FINC BLOCK 7NQD ... NAME 1,FILE,FGET [ NAME FGET TO REMEMBER IT 7P2= ...X8ST LDX 7 INCCOPIES(1) [X7= NO. OF DTAS TO SEARCH FOR 7PK2 ... LDN 4 0 [ INITIALISE MODIFIER 7Q4L ...NEXTTSNC 7QJ= ... LDX 2 FX2 7R3W ... SMO 4 7RHG ... LDX 3 FGETSER(1) 7S36 ...NEXTACTC 7SGQ ... FINDACTFB 2,,ACTDOC,ADUMPT,,BPTR [ GO BACK ALONG CHAIN UNTIL 7T2B ... BXU 3 ADTSN(2),NEXTACTC [ THE CORRECT DTA IS FOUND 7^FK ... SMO CPPTR(2) 7^J8 ... LDEX 0 K52+2 [OPS NO OF DECK 7^LR ... SMO 4 7^PB ... DEX 0 FGETSTATE(1) [KEEP IN FGETSTATE WORD 7^R^ ... [FOR LATER MESSAGE 7^WL LDX 3 FPTR(2) [REMEMBER NEXT BLOCK IN CHAIN 82B= ... LDX 5 FX2 82TW ... RINGACT 2,5 83*G S19 83T6 LDX 0 ATYPE(3) 84#Q BXGE 0 CACT,S19A [J IF NEXT ACT. BLOCK 84SB LDX 3 FPTR(3) [X3-> NEXT BLOCK IN CHAIN 85#2 CHAINACT BPTR(3) [RE-CHAIN BLOCK ASSOCIATED WITH DTA 85RL [ TO CURRECT ACT. BLOCK 86?= BRN S19 86QW S19A 87=G ... ADN 4 FGETLEN [ UPDATE POINTER DOWN FGET 87Q6 ... MHUNTW 1,FILE,FGET [X1-> FGET BLOCK 88FX ... BCT 7 NEXTTSNC [J IF MORE DTAS NEEDED BY DUMPER 898R ... JBC NOPLL,,BPARALLEL [J. NOT PARALLEL 899S ... LDX 0 AWORK1(2) 89=T ... BNZ 0 NOPLL [ALL BLKS LOOKED AT 89?8 ... MHUNTW 1,FILE,FGET [ FIRST FINC RENAMED 89?H ... NAME 1,FILE,FINC [ BACK AGAIN 89?W ... HUNT2 1,FILE,FINC [HUNT NEXT FINC 89#B ... NAME 1,FILE,FGET [ AND TEMPORARILY NAME FGET 89#X ... STO 1 AWORK1(2) 89*Y ... BRN X8ST 89B^ ...NOPLL 89C# ... MHUNTW 1,FILE,FGET [ NAME FGET BACK TO 89CM ... NAME 1,FILE,FINC [ NORMAL FINC 89D2 ... 89D* ... UP [ DUMP TAPE ACTIVITIES ALL RE-CHAINED 9?2H ...# ****************************************************************** 9?2J ...# X2INCDTA 9?2K ...# ******** 9?2L ...# 9?2M ...# THIS THE ENTRY POINT FOR THE FREEFINC MACRO 9?2N ...# AN INCREMENT HAS JUST BEEN COMPLETED ... AND THE DTA'S HAVE TO BE 9?2P ...# RETURNED TO THE RETRIEVAL SYSTEM 9?2Q ...X2INCDTA 9?2R ... LDX 3 FPTR(2) [ POINTER TO FINC 9?2S ... LDX 5 INCNO(3) [ INCREMENT NUMBER 9?2T ... BRN XCHECKFINC [ 9?2W ...# 9?2X ...# ****************************************************************** 9?2Y ...# X3INCDTA 9?2^ ...# ******** 9?32 ...# THIS THE ENTRY FOR FREEFINC %A,NODUMP 9?33 ...# AN INCREMENT HAS JUST BEEN ABANDONED ... WE HAVE TO RETURN DTA'S 9?34 ...# WE MAY HAVE TO MARK SOME OF THE TAPES AS NO LONGER IN USE BY DUMPE 9?35 ...# A COPY OF THE LAST RELIABLE INCREMENT ID SET UP AS A FINTER 9?36 ...# 9?37 ...X3INCDTA 9?38 ... OPENINC ,GENERAL 9?39 ... WIND 9?3= ... STEP [ POSITION AFTER LAST RECORD 9?3? ...YBACK2 9?3# ... READBACK [READ PREV RECORD 9?3* ... MHUNTW 2,FILE,FRB 9?3B ... JBC YRVABLE,2,BINSUITRV [J IF USEFUL INCR 9?3C ... FREECORE 2 9?3D ... BRN YBACK2 [TRY PREV REC 9?3F ...YRVABLE 9?3G ... NAME 2,FILE,FINTER 9?3H ... LDX 3 FPTR(2) [ POINTER TO FGET(FINC) 9?3J ... LDX 5 GSIGN [ TO SHOW AN INC HAS BEEN AB'D 9?3K ...# ****************************************************************** 9?3L ...# XCHECKFINC 9?3M ...# ********** 9?3N ...# CHECK THAT IS A FINC OR FGET 9?3P ...XCHECKFINC 9?3Q ... LDX 0 ATYPE(3) [ 9?3R ... BXE 0 TYPEFINC(1),YESFINC [ JUMP IF A FINC 9?3S ... BXE 0 TYPEFGET(1),YESFGET [ JUMP IF A FGET 9?3T ... BXE 0 TBLINK(1),YBLINK [ JUMP IF A BLINK BLOCK HAS APPEARED 9?3W ... GEOERR BRIEFPM,FREEFINC [ TRYING TO FREE A NOT FINC BLOCK 9?3^ ...YBLINK LDX 3 FPTR(3) [ CHECK BLOCK AFTER BLINK 9?42 ... BRN XCHECKFINC 9?43 ...YESFINC 9?44 ... NAME 3,FILE,FGET [ FOR EASE OF HUNTING 9?45 ...YESFGET 9?46 ...#UNS IDCTRACE 9?47 ... BLOCKTRACE 3,FREEFINC 9?48 ...# 9?49 ... 9?4= ...# ****************************************************************** 9?4? ...# FREE THE FGET'S DTAS 9?4# ...# 9?4* ...STARTFREE 9?4B ... MHUNTW 3,FILE,FGET [ GET POINTER TO GET 9?4C ... LDX 4 INCCOPIES(3) [ PICK UP NO OF TAPES 9?4D ... LDN 7 0 9?4F ...NEXTTAPE1 [ 9?4G ... LDX 6 FGETSER(3) [ PICK UP TSN 9?4H ... BNG 6 NOTAPE [ JUMP IF NO TSN 9?4J ... LDX 2 FX2 9?4K ... JMBS NOTUSED,3,BFGETUNAV,BFGETFH 9?4L ... [ IGNORE REJECTED TAPES 9?4M ... JBS POSND,3,BFGETPOS [ JUMP IF TAPE POSITIONED 9?4N ... BPZ 5 POSND [ JUMP IF COMPLETED INCREMENT 9?4P ... JBC NOTUSED,3,BFGETREQ [ IGNORE UNREQUESTED TAPES 9?4R ...# 9?4X ... FDTENT 1,6,NOFDTENT [ [ FIND ENTRY IN FDT - JUMP IF NOT T 9?53 ... 9?57 ... JBC NOFDTENT,1,BIFDTD [ JUMP IF NOT REQUESTED BY DUMPER 9?5? ... BC 1,BIFDTD [ CLEAR DUMPER BIT 9?5C ... BS 1,BIFDTCA [ SET CHAIN ALTERED BIT 9?5H ... BRN NOTUSED [ JUMP TO CLEAR USED BY DUMPER BITS 9?5M ...# 9?5R ...# WAIT TIL DTS STOPS LOOKING AT FGET 9?5X ...NOFDTENT 9?63 ... LDX 2 FX2 9?67 ... JBSS NOTUSED,2,XBDTSABWT [ WAKE DTS ONCE 9?6? ... BS ,BMTSCAN [ TELL DTS THAT DUMP CANCELLED 9?6C ...NOFDTENT2 9?6F ... CLOSETOP [ MUSN'T WAIT WITH INCINDEX OPEN 9?6H ... COOR3 FGOTWAIT [ WAIT TIL IT FINISHES 9?6K ... OPENINC ,GENERAL [ OPEN FILE AGAIN 9?6M ... JBS NOFDTENT2,,BMTSCAN [ JUMP IF SPURIOUS WAKE UP 9?6N ... MHUNTW 3,FILE,FGET [RESET PTR TO FGET ENTRY 9?6P ... ADX 3 7 9?6R ... BRN NOTUSED 9?6X ...# 9?73 ...# 9?77 ...POSND [ 9?7? ...# TAPE IS POSITIONED WE HAVE TO FIND THE DTA AND RETURN IT 9?7C ... FINDACTFB 2,,ACTDOC,ADUMPT,,BPTR 9?7H ... 9?7M ... BXU 6 ADTSN(2),POSND [ JUMP IF NOT THIS DTA 9?7R ... 9?7X ... STO 5 ACC6(2) [ SET MARKER IN X6 INC NO OR -VE 9?83 ... LDX 1 FX1 9?87 ... LINKSET 2,PFIN(1) [ LINK TO DTSTART,7 9?8? ... FPUT [ KICK DTA 9?8C ... 9?8H ... BPZ 5 NOTAPE [ JUMP IF SUCCESSFUL INC 9?8M ...# 9?8R ...NOTUSED 9?8X ...# 9?93 ...# THE DUMP HAS BEEN CANCELLED THE USED BY DUMPER BIT MAY HAVE TO NE 9?97 ...# THE FINTER CONTAINS A COPY OF THE LAST RETRIEVABLE INCREAMENT 9?9? ...# 9?9C ... MHUNTW 1,FILE,FINTER 9?9H ... LDX 0 AMTS(1) [ NO OF TAPES 9?9M ...#UNS IDCTRACE 9?9R ... TRACEVER 6,NOTUSD 9?9X ...NEXTTAPE2 [ 9?=3 ... BXE 6 AMAG(1),NOTAPE [ JUMP IF TAPE ALREADY USED 9?=7 ... ADN 1 INCMAGLEN 9?=? ... BCT 0 NEXTTAPE2 [ BACK FOR NEXT TAPE 9?=C ...# 9?=H ... DOWN INCTAPES,3 [ TO CLEAR NBIT 9?=M ... MHUNTW 3,FILE,FGET 9?=R ... ADX 3 7 [ RESET POINTER TO FGET ENTRERY 9?=X ...NOTAPE [ 9??3 ... ADN 7 FGETLEN 9??7 ... ADN 3 FGETLEN [ 9??? ... BCT 4 NEXTTAPE1 [ TRY NEXT TAPE IN FINC 9??C ...# ****************************************************************** 9??H ...# ALL TAPES HAVE BEEN RETURNED TO THE RETRIEVALL SYSTEM 9??M ...# WE NOW FREE THE FINC 9??R ...# IF THE INCREMENT JUST CANCELLED IS THE FIRST FILES INCREMENT IN O 9??X ...# PARALLEL DUMP , THE RECORD IN INCINDEX HAS TO BE DELETED 9?#3 ... BPZ 5 NOREC [ JUMP IF NOT FROM CC DU 9?#7 ... WIND [ 9?#? ... STEPAGAIN [ THE LAST RECORD 9?#C ... MHUNTW 2,FILE,FGET [ 9?#H ... LDX 0 AINCNOR(3) 9?#M ... BXU 0 INCNO(2),NOTINC [ JUMP IF THE INC IS NOT IN INCINDEX 9?#R ... DELETE [ THE RECORD 9?#X ...NOTINC 9?*3 ... CLOSETOP [ CLOSE INCINDEX 9?*7 ... MFREE FILE,FINTER [ 9?*? ...NOREC 9?*C ... MHUNTW 3,FILE,FGET 9?*H ...#UNS IDCTRACE 9?*M ... BLOCKTRACE 3,FREED 9?*R ... MFREEW FILE,FGET [ 9?*X ... UP 9?B3 ...# 9?B7 ...# 9?B? ...# ****************************************************************** 9?BC ...# 9?LB ... MENDAREA 30,K99INCDTA 9?WB # 9#B2 #END ^^^^ ...23147315000100000000