DTSTART867

(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

DTSTART867.txt
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