FSERR867

(George Source)

Macros used: CONSERNO, DOWN, EMSCONWT, ENGMESS, FREECORE, GEOERR, HUNT, INFORMX, MHUNT, MHUNTW, OUTMESS, OUTNUM, OUTPARAM, OUTPARAX, RELST, SEG, SEGENTRY, UNLOCKSU, UP, UPPLUS

FSERR867.txt
22FL          SEG      FSERR,866,S.SEXTON   
22^=    #     (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23DW          SEGENTRY K1FSERR,QK1  
23YG          SEGENTRY K2FSERR,QK2  
24D6          SEGENTRY K3FSERR,QK3  
24XQ          SEGENTRY K4FSERR,QK4  
25CB          SEGENTRY K5FSERR,QK5  
25X2          SEGENTRY K7FSERR,QK7  
26BL          SEGENTRY K8FSERR,QK8  
26W=    #     THIS SEGMENT CONTAINS ERROR PATHS USED BY 
27*W    #     FINDFS AND BRADSPLT   
27TG    #     THE FOLLOWING ERROR CASES ARE DEALT WITH AT   
28*6    #     K1FSERR   
28SQ    #               1. FILE OCCUPIES MORE THAN ONE FILE AREA
29#B    #               2. THE FILE AREA IS ON A DIFFERENT DISC 
29S2    #               3. THE RETENTION PERIOD HAS NOT EXPIRED 
2=?L    #               4. THE FILE IS A SYSTEM FILE
2=R=    #               5. BUCKET SIZE IS > 1 BLOCK 
2?=W    #               THE APPROPRIATE MESSAGE IDENTIFIER IS   
2?QG    #               PASSED DOWN IN AWORK2   
2#=6    #               ENTERED FROM FINDFS AND BRADSPLT
2#PQ    #   
2*9B    #     K2FSERR   FILE USED TWICE 
2*P2    #               ENTERED FROM FINDFS 
2B8L    #   
2BN=    #     K3FSERR   FAILURE WHILST REWRITING FIC
2C7W    #               ENTERED FROM FINDFS AND BRADSPLT
2CMG    #   
2D76    #     K4FSERR   NOT OK REPLY FROM EXOPEN
2DLQ    #               ENTERED FROM FINDFS 
2F6B    #   
2FL2    #     K5FSERR   NOT OK REPLY FROM EXOPEN
2G5L    #               ENTERED FROM BRADSPLT   
2GK=    #   
2H4W    #     K7FSERR   FILE NOT FOUND  
2HJG    #               ENTERED FROM FINDFS 
2J46    #               ACOMMUNE9 IS USED TO PASS AMOUNT OF CORE
2JHQ    #               TO BE REMOVED FROM FDTABLE FOR ERASED   
2K3B    #               FILESTORE AND SWAP DEFINITIONS TO FINDFS
2KH2    #   
2L2L    #     K8FSERR   FILE NOT FOUND  
2LG=    #               ENTERED FROM BRADSPLT   
2L^W    #   
2MFG    #SKI  EMSJNL<1$1
2M^6    ZM6            +5,16HIS IT AVAILABLE?   
2NDQ    XN2            #77777   
2NYB    XSUIT          +FIFSSUIT           [NOT SUI0ABLE
2PD2    XUSED          +FIFUSED            [USED TWICE  
2PXL    XFIR           +FIRES              [RESIDENCE N NOT FOUND   
2QC=    XFAIL          +FIFSFAIL           [FAILURE ON  
2QWW    XONL           +FIFSONL         [NOT ONLINE 
2RBG    XNOTF          +FIFSNOTF        [NOT FOUND....  
2RW6    #   
2S*Q    Y     4H000Y
2STB    N     4H000N
2T*2    #   
2TSL    #   
2W#=    #   
2WRW    #   
2X?G    #     S/R TO OUTPUT MESSAGE NO CONTAINING A FILENAME.   
2XR6    #           ON ENTRY  X3 CONTAINS IDENTIFIER OF MESSAGE.
2Y=Q    #           LINK X4, X0 OVERWRITTEN; ON EXIT X1=FX1, X2=FX2.
2YQB    #   
2^=2    #   
2^PL    ROUTE          +1                  [ROUTING PARAMETER   
329=    MESSOUT 
32NW          SBX   4  FX1                 [DATUMISE LINK   
338G          LDX   1  FX1  
33N6          INFORMX  ROUTE(1),3,1 
347Q          CALL  5  XEMSCWT  
34MB          ADX   4  FX1                 [RESET LINK  
3572          EXIT  4  0
35LL    #   
366=    #   
36KW    #     S/R TO OUTPUT MESSAGE CONTAINING FILENAME WHICH IS IN 
375G    #           BSTB/FSTAB BLOCK.   
37K6    #           LINK X4, USES X0 X1 X2 X4, X3 CONTAINS IDENTIFIER OF MESSAGE
384Q    #           ON EXIT X1=FX1, X2=FX2. 
38JB    #   
3942    #   
39HL    #   
3=3=    MESSOUTX
3=GW          SBX   4  FX1  
3?2G          MHUNTW   1,BSTB,FSTAB 
3?G6          SMO      7
3?^Q          LDN   1  FIRSS(1)            [POINT TO FILENAME.  
3#FB          LDN   2  12   
3#^2    XMS2  LDCH  0  0(1)                [GET NEXT CHAR OF FILENAME   
3*DL          BCHX  1  £                   [POINT TO NEXT   
3*Y=          SBN   0  #20  
3BCW          BZE   0  XMS1                [HAVE COME TO END OF NAME
3BXG          NGX   5  2                   [ADJUST COUNT OF CHARS   
3CC6    XMS1  BCT   2  XMS2 
3CWQ          ADN   5  13                  [X5 = NO. OF CHARS IN NAME   
3DBB          SMO      7
3DW2          LDN   1  FIRSS
3F*L          OUTPARAX 5,1,BSTB,FSTAB      [SUPPLY NAME IN BSTB/FSTAB AS %A 
3FT=          INFORMX  ROUTE(1),3,1        [OUTPUT MESSAGE TO OP'S CONSOLE  
3G#W          CALL  5  XEMSCWT  
3GSG          ADX   4  FX1  
3H#6          EXIT  4  0
3HRQ    #   
3J?B    #   
3JR2    #   
3K=L    #     S/R TO WAIT FOR OPS MESSAGE TO BE OUTPUT  
3KQ=    #   
3L9W    XEMSCWT 
3LPG          SBX   5  FX1  
3M96          STO   3  ASUPUSER(2)  
3MNQ          STO   4  ASUPUSER+1(2)
3N8B          EMSCONWT  
3NN2          LDX   3  ASUPUSER(2)  
3P7L          LDX   4  ASUPUSER+1(2)
3PM=          ADX   5  FX1  
3Q6W          EXIT  5  0
3QLG    #   
3R66    #   
3RKQ    #     S/R TO SUPPLY CONTENTS OF X5 AS %A OF NEXT MESSAGE.   
3S5B    #           WILL BE A SERIAL NUMBER. CALLED VIA X4  
3SK2    #   
3T4L    OUTNUM  
3TJ=          SBX   4  FX1  
3W3W          CONSERNO 5,ACOMMUNE1         [CONVERT OCTAL TO CHARS  
3WHG          LDN   0  1
3X36          ADS   0  ACOMMUNE1(2)        [INSERT OUR OWN COUNT
3XGQ          LDX   0  ACOMMUNE2(2) 
3Y2B          LDX   1  ACOMMUNE3(2) 
3YG2          SRL   01 6
3Y^L          STO   0  ACOMMUNE2(2)        [SHIFT CSN   
3^F=          STO   1  ACOMMUNE3(2)        [ALONG A CHAR
3^YW          LDCT  0  #320                [INSERT *
42DG          ORS   0  ACOMMUNE2(2) 
42Y6          OUTPARAM ACOMMUNE1(2),ACOMMUNE2   
43CQ          ADX   4  FX1  
43XB          EXIT  4  0
44C2    #   
44WL    #   
45B=    #     S/R TO UNLOCK & RELEASE STORAGE UNIT  
45TW    #     CALLED VIA X4. EXPECTS SUSN IN ASUSN(3).  
46*G    #   
46T6    UNLKRLST
47#Q          SBX   4  FX1  
47SB          UNLOCKSU ASUSN(3) 
48#2          MHUNTW   3,EWDAS,EXOF 
48RL          RELST    ASUSN(3) 
49?=          ADX   4  FX1  
49QW          EXIT  4  0
4==G    #   
4=Q6    #   
4?9Q    #   
4?PB    XREST   
4#92          SBX   4  FX1  
4#NL          MHUNTW   1,BSTB,FSTAB 
4*8=          LDCT  0  4
4*MW          SMO      7
4B7G          LDX   5  FIRSS+3(1)          [B0-5 TYPE,B6=1 SWAP,B7-23 RESNUM
4BM6          ANDX  0  5
4C6Q          BNZ   0  XRT1                [J IF SWAP   
4CLB          OUTMESS  FIFSTR              [MAKE %A FILESTORE   
4D62          BRN      XRT2 
4DKL    XRT1
4F5=          OUTMESS  FISWAP              [MAKE %A SWAP
4FJW    XRT2
4G4G          ANDN  5  #77  
4GJ6          OUTNUM   5,0                 [RESIDENCE NUMBER
4H3Q          ADX   4  FX1  
4HHB          EXIT  4  0
4J32    #   
4JGL    #   
4K2=    #      ENTRY POINT 1
4KFW    #   
4K^G    QK1 
4LF6          SMO      FX1  
4LYQ          LDX   3  XSUIT               [OUTPUT NOT SUITABLE 
4MDB          CALL  4  MESSOUTX            [MESSAGE 
4MY2          SMO      FX2  
4NCL          LDX   3  AWORK2   
4NX=          CALL  4  MESSOUT             [OUTPUT EXPLANATION  
4PBW          BRN      S3AA 
4PWG    #   
4QB6    #   
4QTQ    #      ENTRY POINT 2
4R*B    #   
4RT2    QK2 
4S#L    S4    SMO      FX1  
4SS=          LDX   3  XUSED               [USED TWICE  
4T?W    S3A   CALL  4  MESSOUTX            [OUTPUT MESSAGE  
4TRG    S3AA  MHUNTW   1,BSTB,FSTAB 
4W?6          SMO      7
4WQQ          LDCH  0  FIRSS+3(1)          [GET TYPE
4X=B          LDN   4  3
4XQ2          STO   4  AWORK1(2)           [COUNT OF CORE TO REMOVE FDTABLE 
4Y9L          SBN   0  9
4YP=          BZE   0  S4B                 [JUMP IF SLOW DRUM   
4^8W          SBN   0  16   
4^NG          BZE   0  S4B                 [OK 2851 
5286          MHUNTW   3,EWDAS,EXOF 
52MQ          ADS   4  AWORK1(2)
537B          CALL  4  UNLKRLST            [UNLOCK & RELEASE SU 
53M2          BRN      S4D  
546L    S4A   MHUNTW   1,BSTB,FSTAB 
54L=          SMO      7
555W          LDCH  0  FIRSS+3(1)          [GET TYPE
55KG          LDN   4  3
5656          STO   4  AWORK1(2)           [COUNT OF CORE TO REMOVE FDTABLE 
56JQ          SBN   0  9
574B          BZE   0  S4B  
57J2          SBN   0  16   
583L          BZE   0  S4B  
58H=          ADS   4  AWORK1(2)
592W    S4D 
59GG          MHUNTW   3,EWDAS,EXOF 
5=26          BRN      S4C  
5=FQ    S4B   MHUNTW   3,EWDAS,FDRUM
5=^B    S4C   FREECORE 3
5?F2          LDX   4  AWORK1(2)           [PASS AMOUNT OF CORE TO BE   
5?YL          STO   4  ACOMMUNE9(2)        [REMOVED FDTABLE UP IN ACOMMUNE9 
5#D=          UP
5#XW    #   
5*CG    #      ENTRY POINT 3
5*X6    #   
5BBQ    QK3 
5BWB    #   
5CB2    #     FAILURE  TO OPEN FILE,OR FAIL WHILST REWRITING FIP
5CTL    #   
5D*=    #   
5DSW    #   
5F#G    #   
5FS6    S5    MHUNT    3,EWDAS,EXOF    [FAIL WHILE REWRITING FIP
5G?Q          LDX   5  ASUSN(3) 
5GRB          CALL  4  UNLKRLST            [UNLOCK & RELEASE SU 
5H?2          BRN      S5A  
5HQL    #   
5J==    #   
5JPW    #      ENTRY POINT 4 & 5
5K9G    #   
5KP6    QK4   NGNC  5  1
5L8Q    QK5   LDN   5  0
5LNB          STO   5  AWORK2(2)
5M82          MHUNTW   3,EWDAS,GEXD 
5MML          LDX   0  EMARK(3)        [CHECK REASON FOR FAIL   
5N7=          ANDN  0  ANONL
5NLW          BNZ   0  U1              [UNIT NOT ONLINE 
5P6G          LDX   0  EMARK(3) 
5PL6          ANDN  0  AFAIL               [TRANSFER  FAIL  
5Q5Q          BNZ   0  U2   
5QKB          LDX   0  EMARK(3) 
5R52          ANDN  0  ANFOUND  
5RJL          BNZ   0  U3              [FILE NOT FOUND  
5S4=          GEOERR   1,WRNGBITS   
5SHW    #   
5T3G    #   
5TH6    U1  
5W2Q          LDX   3  XONL(1)  
5WGB          BZE   5  U1A                 [J IF BRADSPLT ENTRY 
5X22          CALL  4  XREST               [SET %A=FILESTORE OR SWAP %B=RESNO   
5XFL          OUTMESS  FISTUN              [%C=STORAGE UNIT 
5X^=          LDX   3  XFIR(1)  
5YDW    U1A   STO   3  AWORK2(2)
5YYG          MHUNTW   3,EWDAS,EXOF 
5^D6          LDX   5  ASUSN(3)            [GET SERIAL NO.  
5^XQ          SLL   5  6
62CB          SRL   5  6
62X2          CALL  4  OUTNUM              [SET USN AS %A OF MESSAGE
63BL          LDX   3  AWORK2(2)
63W=          CALL  4  MESSOUT             [OUTPUT MESSAGE  
64*W          BRN   U7A                    [WAIT FOR SUMMAT TO HAPPEN   
64TG    U2    MHUNTW   1,BSTB,FSTAB 
65*6          SMO      7
65SQ          LDX   5  FIRSS+4(1)          [GET CSN 
66#B          BZE   5  U3                  [NOT SUPPLIED
66S2    S5A   SLL   5  6
67?L          SRL   5  6
67R=          CALL  4  OUTNUM              [SET USN AS %A OF MESSAGE
68=W          LDX   3  XFAIL(1)            ['FAILURE ON'
68QG          CALL  4  MESSOUT             [OUTPUT TO CONSOLE   
69=6    U3    LDX   4  AWORK2(2)
69PQ          BZE   4  QK8                [J IF BRADSPLT ENTRY  
6=9B    #   
6=P2    #     ENTRY POINT 7 
6?8L    #   
6?N=    QK7 
6#7W          CALL  4  XREST               [SET %A-FILESTORE OR SWAP %B=RESNO   
6#MG          OUTMESS  FIFNAM              [%C-FILENAME 
6*76          SMO      FX1  
6*LQ          LDX   3  XFIR                [RESIDENCE NOT FOUND 
6B6B    U3A 
6BL2          CALL  4  MESSOUTX            [OUTPUT MESSAGE RE FILE NOT FOUND
6C5L    U7A   MHUNTW   1,BSTB,FSTAB        [REQUIRE DEVICE TYPE FROM
6CK=                                       [FSTAB BLK FOR ENGMESS   
6D4W          SMO      7
6DJG          LDCH  5  FIRSS+3(1)          [LEAVE IT IT IN X5   
6F46    #SKI  EMSJNL
6FHQ          ENGMESS  FIFSQUN,2,5,U7AB    [WAIT FOR ENGEGE BUTTOM  
6G3B    #SKI  EMSJNL<1$1
6GH2          ENGMESS  ZM6,2,5,U7AB        [WAIT FOR ENAGAGE BUTTON 
6H2L          BNG   2  U4                  [WE HAVE CONSOLE INPUT   
6HG=          SMO      FX2  
6H^W          STO   2  AWORK3                [STORE D.L.PTR FOR CARTCONT
6JFG          DOWN     CARTCONT,2   
6J^6    U7B   MHUNTW   1,BSTB,FSTAB 
6KDQ          SMO      7
6KYB          LDCH  5  FIRSS+3(1)          [PICK UP DEVICE TYPE AGAIN   
6LD2          BRN      U7AB 
6LXL    #   
6MC=    U4    HUNT     1,CONBUFF,EMSIN  
6MWW          BNG   1  U7B                 [NOTHING DOING   
6NBG          LDCH  4  A1+1(1)             [GET 1ST CHAR OF REPLY - Y OR N  
6NW6          FREECORE 1                   [DISPOSE OF BLK  
6P*Q          TXU   4  N(1) 
6PTB          BCC      S4A                 [JUMP IF NO  
6Q*2          TXU   4  Y(1)                [JUMP IF NOT YES OR NO   
6QSL          BCS      U7A  
6R#=          UPPLUS   1
6RRW    #   
6S?G    #      ENTRY POINT 8
6SR6    #   
6T=Q    QK8   LDX   3  XNOTF(1)            ['NOT FOUND' MSG 
6TQB          BRN      U3A  
6W=2    #   
6WPL    #END
^^^^ ...060055760001