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