(George Source)
Macros used: ACROSS, ALTLEN, BBUS, BC, BS, BXE, BXU, CLOSETAPE, COOR1, DOWN, FDTENT, FPUT, GEOERR, JBC, JBS, LF, LONGON, MENDAREA, MFREEW, MHUNTW, MONOUT, OUTPACK, QUICKUNL, REMOVE, SEG, SEGENTRY, SETBIT, STARTACT, SUICIDE, TAPEOPEN, TAPEWRONG, TESTREP, TRACE, UPDOLC
228= ... SEG DTSTART,867,SECT.FILE,SCHEDULER 22BG ...[ 22JQ ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22R2 ...[ 22^= SEGENTRY K1DTSTART,X1DTSTART 23DW SEGENTRY K2DTSTART,X2DTSTART 23YG SEGENTRY K3DTSTART,X3DTSTART 24D6 SEGENTRY K4DTSTART,X4DTSTART 24XQ SEGENTRY K5DTSTART,X5DTSTART 25CB SEGENTRY K7DTSTART,X7DTSTART 25X2 [ 26BL [ 26W= TYPEFGET +0 [FILE/FGET BLOCK 27*W #FID 0 11 FILE+FGET 27TG ...[ 28*6 ...[ S.R.TO FIND FGET BLOCK,AND POINT THE ENTRY FOR THIS ACT'S TSN 28SQ ...[ 2=?L SFGET 2=R= SMO FX1 2?=W LDX 0 TYPEFGET 2?QG LDX 2 BACT 2#2# ... LDN 3 2 [MAY BE 2 BLOCKS IF PARALLEL DUMP 2#=6 SACT LDX 2 FPTR(2) 2#PQ BXU 2 BACT,SACT1 2*9B GEOERR 1,FGOTTEN [NO FGET BLOCK FOUND 2*P2 SACT1 BXU 0 ATYPE(2),SACT [J IF BLOCK NOT FOUND 2B8L ...[ 2BN= ...[ THIS IS THE UNIQUE OCCURRENCE OF THE FGET BLOCK 2C7W ...[ 2CMG SMO FX2 2D76 LDX 0 ADTSN [TSN 2F?J ... LDX 7 INCCOPIES(2) 2H4W NEXTFGET 2HJG BXE 0 FGETSER(2),THISFGET [JUMP IF ENTRY FOUND 2J46 ADN 2 FGETLEN 2K9L ... BCT 7 NEXTFGET 2KL6 ... BCT 3 SACT 2L2L GEOERR 1,NOTNFGET 2MFG THISFGET 2NDQ TRACE 0,FGETHERE 2NYB EXIT 6 0 2PD2 [ 2PXL [ 2QC= [ THIS SUBROUTINE IS DESIGNED TO DO A NON-COORDINATING SEARCH OF THE 2QWW [ OLC,UPDATING ALL THE RELEVANT REQUEST BLOCKS. THERE ARE FOUR 2RBG [ ENTRY POINTS CORRESPONDING TO FOUR SEPERATE ACTIONS TO BE TAKEN 2RW6 [ 2S*Q [ 1 XTAPEM/XTAPEP : SEARCH DOWN THE OFF LINE CHAIN 2STB [ INCREMENTING/DECREMENTING ADTCOUNT IN 2T*2 [ ALL REQUEST BLOCKS WHOSE INC. NO. IS IN 2TSL [ THE RANGE GIVEN BY FILE FDINCS BLOCK 2W#= [ 2WRW ...[ ENTRY : X2 = FX2 2X?G ...[ FILE FDINCS BLOCK PRESENT 2XR6 [ 2Y=Q [ 2 XCOUNT : SEARCH DOWN OLC UPDATING ADTCOUNT WITH A 2YQB ...[ VALUE SPECIFIED IN X0, IN ALL REQUEST 2^=2 [ BLOCKS WHOSE INC. NO. IS SAME AS IN X4 2^FS ...[ AND WHOSE FILESTORE NUMBER IS IN X6. 2^PL [ 3266 ...[ ENTRY : X2 = FX2 32GL ...[ X0 = COUNT OF DTAS AVAILABLE 32X6 ...[ X4 = INC.NO. 33?L ...[ X6 = FILESTORE NUMBER. 33N6 [ 347Q [ 3 XSTATE : SEARCH DOWN OLC SETTING APPROPRIATE BIT IN 34MB [ FDTSTATE WORD IN ALL REQUEST BLOCKS WHOSE 34^R ...[ INC. NO. IS GIVEN IN X4 AND WHOSE FILESTORE 35#8 ...[ NUMBER IS IN X6. 35LL [ 3636 ...[ ENTRY : X2 = FX2 36CL ...[ X0 = STATE WORD 36S6 ...[ X4 = INCREMENT NUMBER 378L ...[ X6 = FILESTORE NUMBER 37K6 [ 384Q ...[ EXIT IN ALL THESE CASES ALL THE ACCUMULATORS ARE C 3942 [ 39HL [ NOTE THE LINK ACCUMULATOR IS X7 3=3= [ 3=GW UPDOLC 3=J? ...[ 3=KN ...[ ****************************************************************** 3=M5 ...[ 3=NG ...[ THIS SUBROUTINE SEARCHES THE FDT FOR A PARTICULAR ENTRY 3=PX ...[ - TSN IN X4, X2 WILL POINT TO ENTRY. IF NO ENTRY FOUND 3=R# ...[ SR WILL GEOERR. 3=SP ...[ 3=W6 ...SEARCHFDT [ 3=XH ... FDTENT 2,4 [ 3=YY ... EXIT 7 0 [LINK IS X7 3?2G [ 3?C? ...[ ****************************************************************** 3?S4 ...[ 3#8T ...[ THIS CHAPTER CONTROLS THE OPENING AND CLOSING OF THE TAPE 3#KL ...[ ASSOCIATED WITH ITS ACTIVITY 3*2C ...[ 3*C8 ...[ ENTRY POINT 1 3*R^ ...[ 3B8Q ...[ A DUMP TAPE ACTIVITY HAS BEEN SET UP BY SCHEDMTX, 'FPUT'ING THIS 3BKH ...[ CHAPTER, WHICH TRIES TO OPEN THE MT WHOSE TSN IS IN ADTSN 3C2# ...[ 3CC6 X1DTSTART 3CLY ...[ 3CWQ [ OPEN THE TAPE WHOSE TSN IS IN ADTSN 3D6J ...[ 3DBB LDX 4 ADTSN(2) 3DGH ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY 3DLN ...#UNS FTS2 3DQT ...( 3DX2 ... LF 2,FDTFSNO,6 [X6 => FILESTORE NUMBER 3F37 ... BZE 6 OPENHOST [J IF HOST FILESTORE 3F7# ... DOWN SCHEDMTA,4 [GO DOWN TO OPEN ALIEN TAPE 3F?F ... BRN REPCHECK [GO TO CHECK REPLY 3FCL ... BRN REPCHECKA [ALIEN TAPE INSECURE(REPLY 'OPWRONG' 3FHR ...OPENHOST [ 3FMY ...) 3FS5 ... JBS OPENREAD,2,BIFDTNW [J IF NO WPR REQUIRED 3FY= ...[ 3G4C ...[ OPEN TAPE FOR WRITING 3G8J ...[ 3G#W TAPEOPEN XBREAKIN,4,WRITE,NOTOL,DUMPER 3GSG BRN REPCHECK 3GYC ...[ 3H4# ...[ OPEN TAPE WITHOUT CARING ABOUT WPR 3H89 ...[ 3H#6 OPENREAD 3HLH ... TAPEOPEN XBREAKIN,4,,NOTOL,DUMPER 3HYY ...[ 3J?B [ CHECK REPLY 3JH8 ...[ 3JR2 REPCHECK 3L9W MFREEW CPAR,GPERCON 3LG? ...REPCHECKA 3LQN ...[ 3M35 ...[ FIND FDT RECORD FOR THIS TAPE 3M?G ...[ 3MHX ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY 3MS# ... TESTREP OK,TAPEOPEN,OPWRONG,SREND 3N4P ... TESTREP NODECKS,NODECKS,USWRONG,SREND 3N*6 ... TESTREP NOTOWN,QUEER,QUERY,QUEER 3NKH ... BNZ 6 TESTALIEN [J IF ALIEN FILESTORE 3NTY ... TESTREP HDDRDIS,MESSAGE,NOTAV,NOTAV 3P6* ...TESTALIEN 3PBQ ... TESTREP HDDRDIS,QUEER,NOTAV,SREND 3PM= GEOERR 1,OPENTAPE [CANT OPEN DUMP TAPE 3Q6W ...[ 3QLG ...[ TAPE HAS BEEN SUCCESSFULLY OPENED 3R66 ...[ 3RKQ ...TAPEOPEN [ 3S5B ... BS 2,BIFDTFO [SET 'TAPE FULLY OPEN' BIT 3T4L ACROSS DTSCAN,1 3W3W [ 3WHG [ REPLY NOTOWN-TAPE IS POOL,WORKTAPE,OR BELONGS TO SOMEONE ELSE 3X36 [ REPLY QUERY-DITTO 3XGQ [ 3XT7 ...QUEER 3Y7J ... DOWN DTSUBSS,9 [TAPEWRONG TAPE AND OUTPUT MESSAGE 3YG2 BRN SREND 3YSC ...[ 3^6S ...[ REPLY HDDRDIS-HEADER READ FAIL 3^F= [ 3^YW NODECKS [NO DECK ON SITE OR ALL WRONGED 42DG LDX 2 FX2 42Y6 TAPEWRONG ADTSN(2) [WRONG THE TAPE 43CQ MFREEW AONBS,GLIST [JUNK TO US 43XB OUTPACK ADTSN(2),1,TSN 44C2 MONOUT AWR [MT %A WRONGED: NO SUITABLE DECK 44WL BRN SREND [AVAILABLE 45B= [ 46*G MESSAGE 46T6 ... DOWN DTSUBSS,3 [MESSAGE,MARK INCINDEX,FDT 47#Q BRN SREND 47SB NOTAV 48#2 ... DOWN DTSUBSS,5 [SHUFFLE INCINDEX 4==G SREND 4=JX ...[ 4=X# ...[ TAPE CANNOT BE USED 4?9Q #SKI K6DTSTART>99-99 4?PB ( 4#92 LDX 2 FX2 4#NL TRACE ADTSN(2),NOTOPEND 4*8= ) 4*MW ...WAKE 4B7G ...[ 4BM6 ...[ WAKE UP ALL ACTIVITIES WAITING FOR FILES ON INCREMENTS IN FDINCS 4C6Q ...[ BLOCK AFTER REMOVING FDT ENTRY FOR THIS TAPE. 4CLB ...[ 4D62 ...[ FIRST REMOVE RECORD FOR THIS TAPE FROM FDT 4DKL ...[ 4K2= LDX 1 BOLC 4KFW LDX 2 A1(1) [NO OF ENTRIES 4K^G LDX 3 2 4LF6 SMO FX2 4LYQ LDX 4 ADTSN [TSN 4MDB NEXTFDSN 4MY2 BXE 4 FDSN(1),REMOVE [J IF ENTRY FOUND 4NCL ADN 1 4 4NX= BCT 2 NEXTFDSN 4PBW #SKI K6DTSTART>99-99 4PWG CALL 0 SKIPERR 4QB6 REMOVE [ENTRY FOUND 4QTQ LDX 5 FDST(1) [PICK UP STATE WORD 4R*B SBN 2 1 4RT2 BZE 2 XALTER 4S#L LDN 0 FDSN+4(1) [X0POINTS TO NEXT ENTRY 4SS= ADN 1 FDSN 4T?W SLL 2 2 4TRG NMOV LDEX 7 2 [REST OF ENTRIES ARE MOVED UP 4W?6 SMO 7 [ALLOWANCE BEING MADE FOR >512 WORDS 4WQQ MOVE 0 0 [MOVE UP TO 512 WORDS 4X=B BNZ 7 RSID [J IF 512 WORDS NOT JUST MOVED 4XQ2 LDN 7 512 4Y9L RSID SBX 2 7 4YP= BNG 2 XALTER [J IF NO 4^8W BZE 2 XALTER [MORE TO MOVE 4^NG ADX 0 7 [UPDATE MOVE 5286 ADX 1 7 [ADDRESSES 52MQ BRN NMOV 537B XALTER 53M2 LDX 2 FX2 546L LDX 1 BOLC 54L= SBN 3 1 [DECREASE NUMBER OF ENTRIES 555W STO 3 A1(1) 55KG BBUS 2,5,NOTDUMP [J IF NOT DUMPERS TAPE 5656 ...[ 56JQ ...[ THIS TAPE WAS REQUESTED BY DUMPER BUT IS NOT SUITABLE 574B ...[ SEARCH FOR FGET BLOCK AND MARK ENTRY UNOBTAINABLE 57J2 ...[ 583L CALL 6 SFGET 58H= SETBIT 2,FGETSTATE(2) [MARK FGET ENTRY AS UNOBTAINABLE 592W LONGON FGOTWAIT [WAKE UP DUMPER 59GG ...[ 5=26 NOTDUMP 5=FQ CALL 7 XTAPEM [DECREMENT ALL APPROPRIATE 5=^B [ REQUEST BLOCKS 5?F2 MFREEW FILE,FDINCS [FREE FILE FDINCS BLOCK 5?YL STARTACT RET [KICK DUMP TAPE SCHEDULER 5#D= SUI 5#XW SUICIDE 5*CG [ 5*NW ...[ ****************************************************************** 5B2= ...[ 5B?L ...[ ENTRY POINT IF TAPE FAILS 5BK2 ...[ 5BWB X4DTSTART 5CB2 #SKI K6DTSTART>99-99 5CTL TRACE ADTSN(2),FAILED 5D*= ... DOWN DTSUBSS,1 [CONSOLE MESSAGE,MARK INCINDEX AND F 5DSW BRN QUICK 5F7? ...[ 5FFN ...[ ****************************************************************** 5FS5 ...[ 5G6G ...[ ENTRY IF TAPE FORMAT ERROR 5GDX ...[ 5GRB X5DTSTART 5H?2 #SKI K6DTSTART>99-99 5HQL TRACE ADTSN(2),FORMATER 5J== ... DOWN DTSUBSS,2 [CONSOLE MESSAGE,MARK INCINDEX AND F 5JPW QUICK QUICKUNL [SO THAT OPS CAN CHANGE DECK IF REQD 5K9G #SKI K6DTSTART>599-599 5KP6 TRACE ADTSN(2),QUICKUNL 5L8Q BRN WAKE 5LHX ...[ 5LX4 ...[ ****************************************************************** 5M=9 ...[ 5MKB ...[ ENTRY POINT 2,TO UNLOAD A TAPE AND WAKE UP ALL ACTIVITIES THAT 5MYH ...[ THOUGHT IT WOULD DO FOR THEM. 5N?N ...[ 5NLW X2DTSTART 5P6G [ 5X22 UNL 5X9S ...[ 5XFL [ CLOSE THE TAPE BUT DONT DISENGAGE,SO THAT IF MORE RESTORE REQUESTS 5X^= [ APPEAR,THE OPS WONT HAVE TO ENAGE THE TAPE 5Y94 ... SEGENTRY K98DTSTART 5YDW CLOSETAPE 5YYG #SKI K6DTSTART>99-99 5^D6 TRACE ADTSN(2),UNLOADMT 5^TG ... BRN WAKE [GO AND REMOVE TAPE ENTRY FROM FDT 62=W ...[ 62N= ...[ ****************************************************************** 635L ...[ 63H2 ...[ ENTRY POINT 3 - DUMPER NEEDS THIS TAPE 63YB ...[ 64*W X3DTSTART 64D5 ...#UNS IDC 64G# ...( 64JH ... LDX 4 ADTSN(2) [X4 => TSN 64LQ ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY 64N^ ... JBC QUICK,2,BIFDTD [J IF DUMP CANCELLED 64R8 ...) 64TG CALL 6 SFGET [FIND FGET ENTRY FOR TSN IN AWORK2 655# ...[ 65*6 ...[ X2 POINTS TO ENTRY 65JY ...[ 65SQ SETBIT 1,FGETSTATE(2) [MARK FGET ENTRY AS POSITIONED 6632 ... LDX 3 FX2 [ PICK UP UNIT NUMBER 669= ... SMO CPPTR(3) [ FROM DEVICE LIST 66CG ... LDX 0 K52+2 [ AND STORE IT IN 66KQ ... DEX 0 FGETSTATE(2) [ THE ENTRY IN THE FGET 66NG ... LDX 2 FX2 66R= ... STOZ AWORK1(2) [MARKER WORD TO REMEMBER FAILS 66W2 ... LONGON FGOTWAIT [WAKE UP DUMPER 66YQ ... COOR1 673G ... GEOERR BRIEFPM,DTA FPUT 676C ...[ 67DS ...[ ****************************************************************** 67R9 ...[ 685L ...[ RETURN FROM DUMPER 68D3 ...[ 68QG X7DTSTART 692# ...[ 69=6 [ X6 CONTAINS NO.OF NEW INCREMENT-NEGATIVE IF UNRELIABLE 69PQ [ THIS MUST BE ADDED TO FDINCS SO THAT REQUESTS FOR FILES IN THIS 6=9B [ INCREMENT WILL ALSO BE WOKEN UP.NORMALLY THE PRESENCE OF REQUESTS 6=P2 [ FOR THIS INC.MEANS THE UNJAMMER HAS BEEN BUSY.ABNORMALLY,IT IS 6?8L [ VERY QUEER 6?DD ...[ 6?N= LDX 4 ADTSN(2) 6#7W ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY 6#MG ... BC 2,BIFDTD [CLEAR 'NEEDED BY DUMPER' BIT 6*LQ BNG 6 QUICK [QUICKUNL ON TAPE IF UNRELIABLE IE 6*WJ ...[ 6B6B [ FAIL,SO THAT IF DUMPER TRIES AGAIN IT DOESNT PICK UP THE SAME 6BL2 [ FAULTY TAPE WITHOUT ASKING THE OPS TO LOAD IT AND SO ALLOW CANTDO. 6C5L [ 6CK= [ ONLY MARK FDINCS IF INC RELIABLE 6CT4 ...[ 6D4W MHUNTW 3,FILE,FDINCS 6DJG ... LDX 4 FDINCNO(3) [X4 => NUMBER OF ENTRIES 6F46 ... ADN 4 5 [EXTRA ENTRY +3 FOR 'RED TAPE' 6FHQ ... [PLUS ONE SPARE 6G3B ALTLEN 3,4,FILE,FDINCS 6GH2 MHUNTW 3,FILE,FDINCS 6GQS ... SBN 4 4 [RESET X4 6H2L SMO 4 6HG= ... STO 6 FDINCINC(3) [STORE INC.NO 6J^6 LDN 0 1 6KDQ ... ADS 0 FDINCNO(3) [INCR.COUNT OF ENTRIES 6KYB BRN UNL 6LD2 #SKI K6DTSTART>99-99 6LXL ( 6MC= SKIPERR 6MWW GEOERR 1,DTSTSKIP 6NBG ) 6NW6 XBREAKIN 6P*Q GEOERR 1,SYSBRKIN [OPENING INCINDEX OR TAPE 6PTB MENDAREA 40,K99DTSTART 6Q*2 #END 6QSL ^^^^ ...16666135000300000000