(George Source)
Macros used: ACROSS, ALTLEND, BBS, BBUS, BC, BS, BXE, BXL, BXU, DFSET, DOWN, FDTENT, GEOERR, HUNTW, JBC, JBS, JBSC, JBSS, JMBS, LF, MBC, MBS, MENDAREA, MFREEW, MHUNTW, MTREW, MTSKIP, REWIND, SEG, SEGENTRY, SETNCORE, STARTACT, TESTREP2, TESTRPN2, TRACE, UNLOAD
22#C ... SEG DTSCAN,860,C.R.JOHNSON,SCHEDULER 22LS ...[ 22^= SEGENTRY K1DTSCAN,X1DTSCAN 23DW ...[ 24D6 SFEND 4H@000 25X2 SENTEND 4H0007 26BL SENTST 4H0006 26W= NAMEINC 12HGEORGE3DUMP 27*W ...[ 27TG [ S.R.TO SEARCH OFLC FOR FREQ WHOSE INC.NO IS IN X4,FILE NO.IN X5 28*6 ...[ AND FILESTORE NUMBER IN X6 - IF FOUND,X2 POINTS TO IT,EXIT+0 28SQ ...[ IF NOT FOUND,EXIT+1 29#B ...[ 29S2 SOFLC LDX 2 BOLC 2=?L LDN 0 BOLC 2=R= M1SFOLC 2?=W LDX 2 0(2) 2?QG ... BXE 2 0,XIT1 [J IF END OF CHAIN 2#=6 ... BXL 4 FDTINCNUM(2),XIT1 [J IF INC NOT THERE 2#PQ ... BXU 4 FDTINCNUM(2),M1SFOLC [J IF INC NOT YET REACHED 2*9B ... BXL 6 FDTFILSTR(2),XIT1 [J IF FILESTORE NOT THERE 2*P2 ... BXU 6 FDTFILSTR(2),M1SFOLC [J IF FILESTORE NOT YET REACHED 2B8L ... BXL 5 FDTFILNUM(2),XIT1 [J IF FILE NOT THERE 2BN= ... BXU 5 FDTFILNUM(2),M1SFOLC [J IF FILE NOT YET REACHED 2C7W ... EXIT 7 0 [FILE REQUEST FOUND 2CMG ...XIT1 EXIT 7 1 [REQUEST NOT FOUND 2D76 ...[ 2DLQ ...[ SR TO FREEBLOCKS 2F6B ...[ 2FL2 SRFREE 2G5L MFREEW FILE,FRB 2GK= MFREEW FILE,FABSNB 2H4W EXIT 7 0 2HJG [ 2J46 [ SR TO POINT TO FDT ENTRY IN X2 2JHQ [ 2K3B POINTFDT 2KH2 SMO FX2 2L2L ... LDX 0 ADTSN 2LG= ... FDTENT 2,0 2L^W ... EXIT 7 0 2MFG [ 2M^6 [ 2NDQ ...[ 2NYB ...[ THIS SEGMENT POSITIONS ITS TAPE READY TO RESTORE A FILE,AND THEN 2PD2 ...[ GOES'DOWN'TO DTREST FOR RESTORING.THE FILE TO BE RESTORED IS THE 2PXL ...[ NEAREST UNRESTORED FILE ON THE TAPE WHICH WILL BE FOUND DURING A 2QC= ...[ FORWARD READ AND FOR WHICH THERE IS A REQUEST IN THE OFLC 2QWW ...[ IF THE DUMPER WANTS THE TAPE,IT IS LEFT POSITIONED AT END OF TAPE 2RBG ...[ IF THERE ARE NO REQUESTS,AND THE DUMPER DOES NOT REQUIRE THE TAPE, 2RW6 ...[ CONTROL PASSES TO DTSTART TO UNLOAD IT 2S*Q ...[ 2STB ...[ ENTRY POINT 1 2T*2 ...[ 2TSL X1DTSCAN 2W#= SETNCORE 10,3,FILE,FABSNB [SET UP FABSNB 2WRW SETNCORE 20,3,FILE,FRB,1 2X?G SEARCH 2XR6 LDX 1 FX1 [RESET X1 2Y=Q ... CALL 7 POINTFDT [X2 POINTS TO FDT ENTRY 2YQB ... MBC 2,BIFDTCA,BIFDTPF [CLEAR 'CHAIN ALTERED' AND 'PASSED FI 2^=2 ... SMO FX2 [JUST BECAUSE 2^PL ... STO 2 AWORK2 [PRESERVE POINTER TO FDT ENTRY 32NW MHUNTW 3,FILE,FDINCS 338G ... LDX 0 FDINCNO(3) [X0 => NUMBER OF INCREMENTS ON TAPE 33N6 BZE 0 NEWTAPE [J IF NEW TAPE 33XY ... LF 3,FDINCFSNO,6 [X6 => FILESTORE NUMBER 347Q LDX 2 BOLC 34MB SCHAIN 3572 LDN 0 BOLC 35LL LDX 2 0(2) [NEXT BLOCK IN OFLC 366= BXE 2 0,MTFIN [J IF END OF CHAIN 36F4 ... JMBS SCHAIN,2,BFILBRES,BTERMST [J IF FILE 'BEING' OR 'HAS BEEN 36RW ...[ 376N ...[ SEARCH FDINCS TO SEE IF THIS FILSTORE AND INCREMENT ARE ON THIS TA 37FG ...[ SEARCH ASSUMES INCREMENTS IN FDINCS ARE IN ASCENDING ORDER 37S# ...[ X2 -> FREQ BLOCK 3876 ...[ X3 -> FDINCS BLOCK 38FY ...[ 38SQ ... LDX 0 FDTFILSTR(2) [X0 => FILESTORE NUMBER OF THIS FILE 397J ... BXU 0 6,SCHAIN [J IF WRONG FILESTORE NUMBER 39GB ... LDX 0 FDTINCNUM(2) [X0 => INCREMENT NUMBER OF THIS FILE 39T8 ... LDX 1 3 [X1 -> FDINCS BLOCK 3=82 ... LDX 5 FDINCNO(3) [X5 => NO OF ENTRIES 3=GW NXTFD 3?2G ... BXE 0 FDINCINC(1),THISINC [J IF THE INC IS ON TAPE 3?G6 ... BXL 0 FDINCINC(1),SCHAIN [J IF THE INC IS NOT ON THIS TAPE 3?^Q ... ADN 1 FDINCLEN [INCREMENT MODIFIER 3#FB BCT 5 NXTFD [LOOK AT NEXT INC ON TAPE 3#^2 BRN SCHAIN 3*DL THISINC 3*ND ...[ 3*Y= ...[ FILESTORE AND INCREMENT LOOK OK,NOW CHECK WHETHER TAPE BEFORE OR A 3B84 ...[ 3BCW ... SMO FX2 [ 3BMN ... LDX 1 AWORK2 [RESET POINTER TO FDT ENTRY 3BXG LDX 4 FDTINCNUM(2) [INC.NO.OF THIS FILE 3CC6 ... LDX 5 FDTFILNUM(2) [FILE NUMBER OF THIS FILE 3CWQ BXL 4 FDINC(1),PASSED [J IF TAPE HAS PASSED THIS INCREMENT 3DBB BXU 4 FDINC(1),MTBEFORE [J IF NOT YET AT THIS INC 3DW2 BXL 5 FDFILE(1),PASSED [J IF TAPE HAS PASSED THIS FILE 3F*L BXU 5 FDFILE(1),MTBEFORE [J IF TAPE NOT YET AT FILE 3FM2 ...[ 3FYB ...[ REQUEST IS TOO LATE TO PICK UP THE FILE IF THE TAPE IS ALREADY 3G9Q ...[ POSITONED AT IT 3GH6 ...[ 3GSG TRACE 5,TOO LATE 3H4# ...[ 3H#6 ...[ TAPE HAS PASSED THE FILE IN THIS REQUEST-FIND ANOTHER REQUEST 3HHY ...[ 3HRQ PASSED 3J?B ... BS 1,BIFDTPF [SET 'PASSED FILE' BIT 3JR2 BRN SCHAIN 3K4B ...[ 3K*Q ...[ TAPE CANNOT SATISFY ANY MORE REQUESTS ON THIS PASS,SO CHECK 3KM6 ...[ WHETHER DUMPER WANTS IT OR NOT (AWORK2 CONTAINS POINTER TO FDT ENT 3KYG ...[ 3L9W MTFIN 3LFN ... SMO FX2 [ 3LPG ... LDX 1 AWORK2 [RESET POINTER TO FDT ENTRY 3L^# ... JBSC MTFORMAT,1,BIFDTFE [J IF FORMAT ERROR WHILE RV 'FILEHAND 3M96 ... JBS MTDUMP,1,BIFDTD [J IF DUMPER NEEDS TAPE 3MDY ...[ 3MNQ ...[ TAPE IS ASSUMED TO BE REWOUND IF INC.NO IN FDT IS ZERO 3MYJ ...[ 3N8B LDX 0 FDINC(1) 3NN2 BNZ 0 REWIND [J TO REWIND TAPE,SINCE NOT DUMPER'S 3NXS ...[ 3P7L [ TAPE IS REWOUND,SO UNLOAD 3PCD ...[ 3PM= UNLOAD 3Q6W CALL 7 SRFREE 3QLG ACROSS DTSTART,2 3QXW ...[ 3R9= ...[ DUMPER DOES NOT NEED TAPE,AND IT CAN SATISFY NO MORE REQUESTS ON 3RGL ...[ THIS PASS,SO REWIND AND TRY AGAIN 3RS2 ...[ 3S5B REWIND 3SK2 LDX 3 FDSN(1) [GET TSN AGAIN 3T4L STOZ FDINC(1) [RESET INC.NO. 3TJ= STOZ FDFILE(1) [ AND FILE NO. 3W3W MTREW [REWIND THE TAPE 3WHG TESTRPN2 OK,REWFAIL 3X36 ... CALL 7 POINTFDT [X2 -> FDT ENTRY 3XGQ ... JMBS SEARCH,2,BIFDTCA,BIFDTPF [J IF 'CHAIN ALTERED' OR 'PASSED 3Y2B ...[ 3YG2 ...[ THE TAPE IS NOW REWOUND,AND THERE IS NO RESTORING TO DO 3Y^L ...[ TEST AGAIN TO SEE WHETHER DUMPER WANTS IT BEFORE UNLOADING 3^F= ...[ 3^YW ...MTJAM [ 42DG ... JBC UNLOAD,2,BIFDTD [J IF DUMPER DOESNT NEED TAPE 44C2 MTDUMP 45TW LDN 4 0 46*G MTBEFORE 46LW ... CALL 7 POINTFDT [X2 -> FDT ENTRY 46Y= ...[ 479L ...[ IF TAPE AT BEGINNING,A SPECIAL ENTRY POINT IS USED 47H2 ...[ 47SB LDX 7 FDINC(2) 48#2 BZE 7 STARTPOS [IF INC.NO.ZERO,TAPE AT START 48M7 ...[ 492# ...[ THERE IS SOMETHING FOR THE TAPE TO DO.IF X4=0,IT IS NEEDED BY THE 49*F ...[ DUMPER,OTHERWISE X4=INC.NO,X5=FILE NO.OF FILE TO BE RESTORED. 49NL ...[ POSITION THE TAPE,WHILE TAKING NOTICE OF THE CHAIN ALTERED BIT,AND 4=3R ...[ REASSESSING THE SITUATION IF IT GETS SET 4=BY ...[ 4=Q6 POSITION 4?9Q NOWAIT 4?PB CALL 6 SKIPSR [READ NEXT SENTINEL 4#92 LDX 6 ESENTYP(3) [PICK UP SENTINEL TYPE 4#NL BXE 6 SFEND(1),TESTINC [J IF END OF SUBFILE 4*8= BXE 6 SENTEND(1),MTFORMAT [J IF END OF TAPE 4*MW BXU 6 SENTST(1),MTFORMAT [J IF STARTDATASENTINEL 4*XN ...[ 4B7G [ IS IT START OF COMPOSITE SUBFILE? 4BM6 [ OR START OF DIRECTORY? 4BWY ...[ 4C6Q BBS 0,ESENB(3),POSITION [J IF CSF OR DIRECTORY 4CBJ ...[ 4CLB [ START OF FILE 4D2W ...[ FIND FDTENTRY AGAIN 4DCB ...[ 4DRW ... CALL 7 POINTFDT [X2 -> FDT ENTRY 4F8B ... JBS POSITION,2,BIFDTJ [J IF IN A BSJAM 4FJW LDX 6 ESENFN(3) [FILE NUMBER FROM TAPE 4G4G STO 6 FDFILE(2) [ TO UPDATE FDT ENTRY 4G*W ... JMBS UNLOAD,2,BIFDTOW,BIFDTUW [J IF WRONGED 4GM= ...[ 4GYL ...[ IF X4 IS ZERO,THEN THE TAPE IS BEING POSITIONED FOR DUMPING 4H=2 ...[ 4HHB BZE 4 SKIPAGAIN 4HR8 ...[ 4J32 ...[ X4 NON-ZERO,SO A FILE IS BEING RESTORED.IS TAPE POSITIONED YET? 4J=S ...[ 4JGL BXL 4 FDINC(2),MTFORMAT [J IF INC NO IN X4 LESS THAN IN FDT 4K2= BXU 4 FDINC(2),SKIPAGAIN [NOT YET POSITIONED 4KFW ... BXL 5 FDFILE(2),TESTFH [J IF HAVE GONE TOO FAR 4K^G BXE 5 FDFILE(2),MTPOS [J IF TAPE POSITIONED FOR RESTORE 4L9# ...[ 4LF6 ...[ CHECK WHETHER CHAIN OF REQUESTS HAS BEEN ALTERED 4LNY ...[ 4LYQ SKIPAGAIN 4MDB ... JBS SEARCH,2,BIFDTCA [J IF CHAIN ALTERED 4MY2 BRN POSITION 4M^L ...TESTFH [TEST FOR 'FILEHANDLERED' BIT 4N3= ... LF 2,FDTFSNO,6 [X6 => FILESTORE NUMBER 4N4W ... CALL 7 SOFLC [GO FIND FREQ 4N6G ... BRN TESTFH1 [FREQ STILL THERE 4N86 ... BRN SEARCH [FREQ GONE ... START AGAIN 4N9Q ...TESTFH1 [ 4N?B ... JBC MTFORMAT,2,BFHCE [J IF NOT 'FILEHANDLERED' 4N*2 ... JBSS SECONDFE,2,BFORMERR [SET 'FORMAT ERROR' BIT 4NBL ... CALL 7 POINTFDT [X2 -> FDT ENTRY 4ND= ... BS 2,BIFDTFE [SET 'FORMAT ERROR' BIT 4NFW ... BRN SEARCH [START AGAIN 4NHG ...SECONDFE [SECOND FORMAT ERROR FOR THIS FILE 4NK6 ... MBS 2,BTEMLOST,BTERMST [SET 'TEMPORARILY LOST' BIT 4NLQ ... STARTACT RET [KICK DTS 4NNB ... BRN SEARCH [START AGAIN 4NQ2 ...[ 4NRL ...[ END OF SUBFILE SENTINEL-IS IT THE END OF AN INCREMENT 4NT= ...[ 4NX= TESTINC 4PBW BBUS 1,ESENGR(3),POSITION [J IF NOT END OF INCREMENT 4PLN ...[ 4PWG [ END OF INC,IS IT THE LAST ON TAPE ? SEARCH FDINCS 4Q6# ...[ 4QB6 MHUNTW 3,FILE,FDINCS 4QTQ ... LDN 6 FDINCLEN [X6 => LENGTH OF ENTRY 4R*B ... MPY 6 FDINCNO(3) [X7 => LENGTH*NUMBER OF ENTRIES 4RT2 ... SBN 7 FDINCLEN [ADJUST MODIFIER 4S#L ... SMO 7 [ 4SS= ... LDX 3 FDINCINC(3) [X3 => LAST INCREMENT IN FDINCS BLOCK 4T?W ... CALL 7 POINTFDT [X2 -> FDT ENTRY 4WQQ BXE 3 FDINC(2),MTEND [J IF LAST ENTRY ON TAPE 4X2J ...[ 4X=B ...[ READ START OF INCREMENT SENTINEL. 4XG8 ...[ 4XQ2 STARTPOS 4Y9L CALL 6 SKIPSR [READ NEXT SENTINEL 4YP= #SKI K6DTSCAN>99-99 4^8W ( 4^NG LDX 6 ESENTYP(3) 5286 BXU 6 SENTST(1),MTFORMAT [J IF NOT STARTDATA SENTINEL 52MQ LDX 6 ESENLOC1(3) [CHECK NAME 537B BXU 6 NAMEINC(1),MTFORMAT 53M2 LDX 6 ESENLOC2(3) 546L BXU 6 NAMEINC+1(1),MTFORMAT 54L= LDX 6 ESENLOC3(3) 555W BXU 6 NAMEINC+2(1),MTFORMAT 55KG ) 5656 ... CALL 7 POINTFDT [X2 -> TO FDT ENTRY 56JQ STOZ FDFILE(2) [ZEROISE FILE NUMBER IN FDT ENTRY 574B LDX 6 ESENFG(3) [PICK UP INCREMENT NUMBER 57J2 STO 6 FDINC(2) [AND UPDATE FDT 57MF ... SMO FX2 57QY ... STOZ AWORK1 [CLEAR INCREMENT FORMAT MARKER 57WC ... LDX 6 ESENB(3) [PICK UP FORMAT VERSION NUMBER 57^W ... SLL 6 15 [ BITS 15 TO 18 HAVE FOLLOWING MEAN 585* ... SRL 6 20 [ 0 IS MK 5 FORMAT 588S ... SMO FX2 [ 1 IS MK 6 & 7 FORMAT 58#? ... STO 6 AWORK1 [ 2 IS MK 8.20+ FORMAT 58CQ ... BRN POSITION [**** AWORK1 NOW CONTAINS INC FORMAT 58FG ...[ 58H= [ NEW TAPE-LEAVE POSITIONED AFTER HEADER LABEL 58R4 ...[ 592W NEWTAPE 59GG ...[ 5=26 ...[ TAPE POSITIONED AFTER LAST INCREMENT 5=FQ ...[ 5?F2 MTEND 5?GY ...#UNS IDC 5?JW ...( 5?LS ... LDX 1 2 [X1 -> FDT ENTRY FOR REWIND 5?NQ ... JBC REWIND,2,BIFDTD [DUMP CANCELLED? 5?QN ...) 5?SL ...#UNS IDC 5?WJ ...#STR 5?YL ... JBC MTFORMAT,2,BIFDTD [END OF TAPE BUT NOT DUMPERS TAPE 5#8D ...[ 5#D= ...[ TAPE READY FOR DUMPER 5#N4 ...[ 5#XW POSDUMP 5*CG ... JMBS UNLOAD,2,BIFDTOW,BIFDTUW [J IF WRONGED 5*X6 ... BC 2,BIFDTJ [CLEAR 'BSJAM' BIT 5CB2 CALL 7 SRFREE 5CTL ACROSS DTSTART,3 [GO TO WAKE UP DUMPER 5D4P ...[ 5D?S ...[ TAPE IS POSITIONED TO RESTORE FILE 5DGX ...[ CHECK THAT FREQ FOR THIS FILE IS STILL IN OFLC 5DQ2 ...[ 5D^5 ...MTPOS [ 5F88 ... LF 2,FDTFSNO,6 [X6 => FILESTORE NUMBER 5FC? ... CALL 7 SOFLC [GO FIND FREQ 5FLB ...[ 5FTF ...[ FILE FOUND 5G4J ...[ 5G?Q BRN RESTORE 5GHJ ...[ 5GRB ...[ FILE NOT FOUND 5H38 ...[ 5H?2 BRN SEARCH 5HJB ...[ 5HTQ ...[ X2 POINTS TO REQUEST BLOCK FOR THIS FILE 5J76 ...[ X3 POINTS TO SENTINEL BUFFER. 5JDG ...[ 5JPW RESTORE 5JTR ...#UNS FTS2 5J^N ...#STR 5K5K ...( 5K9G LDX 7 ESENLOC1(3) 5KP6 BXU 7 FLOC1(2),UNEQUAL 5L8Q LDX 7 ESENLOC2(3) 5LNB BXU 7 FLOC2(2),UNEQUAL 5M82 LDX 7 ESENLOC3(3) 5MML BXU 7 FLOC3(2),UNEQUAL 5N7= ...) 5NLW ... JMBS SEARCH,2,BFILBRES,BTERMST [J IF FILE 'BEING' OR 'HAS BEEN 5P6G ...[ 5PL6 ...[ THIS FILE HAS NOT BEEN RESTORED-MARK IT'BEING RESTORED',AND SET 5Q5Q ...[ CHAIN ALTERED BITS 5QKB ...[ 5T3G MTREST 5TH6 ... BS 2,BFILBRES [SET 'BEING RESTORED' BIT 5W2Q MHUNTW 1,FILE,FABSNB 5WGB LDN 6 10 5X22 STO 6 A1(1) 5XFL ... LDN 6 FFUSER1(2) 5X^= LDN 7 A1+1(1) 5YDW ... MOVE 6 9 [USER NAME FROM FREQ IN OFLC 64*W LDX 2 BOLC 65*6 LDX 1 A1(2) [COUNT OF FDT ENTRIES 65SQ BZE 1 SACT2 6677 ...SET8 66FJ ... BS 2,BIFDTCA [SET 'CHAIN ALTERED' BIT 66S2 ADN 2 FDTLEN [NEXT ENTRY 67?L BCT 1 SET8 67HD ...[ 67R= ...[ GO DOWN TO RESTORE FILE 6834 ...[ 68=W SACT2 68QG DOWN DTREST,1 69=6 LDX 7 ACOMMUNE1(2) [AUX REPLY IN X7 69PQ HUNTW 3,FILE,FABSNB 6=9B BNG 3 NOTEX5 [ J IF COPYFILE HAS GNT F/FABSNB 6=P2 ALTLEND 3,10 6?8L XFILEREST 6?N= [ 6#7W [ CHECK AUXILIARY REPLY 6#MG [ 6*76 LDX 0 7 6*LQ BZE 0 XMAINREP [IF OK,CHECK MAIN REPLY 6B6B SBN 0 ANSFAIL [IF TAPE FAIL,GO TO MTFAIL 6BL2 BZE 0 MTFAIL 6C5L BRN MTFORMAT 6CK= NOTEX5 6DJG SETNCORE 10,3,FILE,FABSNB [SET UP FABSNB AGAIN 6F46 BRN XFILEREST 6FHQ XMAINREP 6G3B TESTREP2 OK,SEARCH,FAIL,MTFAIL,NOBAC,NOBAC,NOUSER,SEARCH 6GH2 TESTREP2 NOFILE,SEARCH,NAME,SEARCH,OLDDUMP,SEARCH,ONLINE,SEARCH 6GQS ... TESTREP2 VRYWRONG,SEARCH 6H^W CALL 0 SKIPERR 6JFG ...[ 6J^6 ...[ NO BACKING STORE TO RESTORE FILE 6KDQ ...[ 6KYB ...NOBAC CALL 7 POINTFDT 6LD2 ... BS 2,BIFDTJ [SET 'BSJAM' BIT 6LXL ... BRN MTJAM 6PTB SKIPERR 6Q*2 GEOERR 1,SCANSKIP 6R#= REWFAIL 6RRW MTFAIL 6S?G CALL 7 SRFREE 6SR6 ACROSS DTSTART,4 [TAPE FAIL 6T=Q ...[ 6TQB ...[ FORMAT ERROR ON MAG TAPE 6W=2 ...[ 6WPL UNEQUAL 6X9= MTFORMAT 6XNW CALL 7 SRFREE 6Y8G ACROSS DTSTART,5 6YN6 [ 6^7Q [ S.R TO SKIP TO NEXT SENTINEL,READ QUAL.BLOCK AND TEST REPLIES 6^MB [ 7272 SKIPSR 72LL SBX 6 FX1 72PQ ... SEGENTRY K98DTSCAN 72SW ... BRN K99DTSCAN [THIS LINE SHOULD BE 'NULL' 72Y2 ... DFSET ,DUMP [IF MULTIPLE READS ARE REQUIRED ALWAY 7336 ... SEGENTRY K99DTSCAN 736= MTSKIP FILE,FRB 73KW TESTREP2 FAIL,MTFAIL,SENT,MTFORMAT 745G ADX 6 FX1 74K6 EXIT 6 0 754Q MENDAREA 20,K99DTSCAN 75JB #END 7642 ^^^^ ...73766521000400000000