BSALFAIL

(George Source)

Macros used: ACROSS, BACKREAD, BACKWRITE, BSON, FINDFAIL, FON, FREEBAX, FREECORE, GEOERR, GEOSTOP, GETBSLIS, JAMQUERY, MENDAREA, MHUNT, NAME, SEGENTRY, TRACE, UNSETFB, UP, UPPLUS

BSALFAIL.txt
22FL    #SKI  BSTRANMK3 
22^=    (   
23DW    #LIS  K0BSALFAIL>K0BSTS>K0ALLGEO
23YG    #SEG  BSALFAIL                     [JOHN BAILEY 
24D6          8HBSALFAIL
24XQ    #   
25CB    #     THIS SEGMENT DEALS WITH TRANSFER FAILS IN THE BACKING STORE   
25X2    #     ALLOCATION SYSTEM 
26BL    #     K1BSALFAIL DEALS WITH READ FAILURES   
26W=    #     ON ENTRY ACOMMUNE1 HOLDS THE LOGICAL FILE NUMBER  
27*W    #   
27TG    #              ACOMMUNE2 A MARKER  0 IF OPTIONAL REQUEST
28*6    #              ACOMMUNE3 A MARKER TO DISTINGUISH BETWEEN GETBACK
28SQ    #                                          AND GETBAX   
29#B    #     K2BSALFAIL DEALS WITH WRITE FAILURES  
29S2    #              ACOMMUNE1   AS ABOVE 
2=?L    #              ACOMMUNE2   BLOCK NUMBER BEING FREED 
2=R=    #              ACOMMUNE3   MARKER TO DISTINGUISH BETWEEN FREEBACK   
2?=W    #                                                  AND   FREEBAX
2?QG    #   
2#=6    #   
2#PQ          SEGENTRY K1BSALFAIL,QK1BSALFAIL   
2*9B          SEGENTRY K2BSALFAIL,QK2BSALFAIL   
2*P2          SEGENTRY K3BSALFAIL,QK2BSALFAIL   
2B8L    #   
2BN=    XM1            +25  
2C7W                   25HFILESTORE RESIDENCES FULL 
2CMG    NT1   LDX   2  3                   [RESET BSLIST POINTER
2D76          BRN      NT1A                [TRY AGAIN   
2DLQ    QK1BSALFAIL 
2F6B    #SKI  K6BSALFAIL>199-199
2FL2    (   
2G5L          TRACE    ACOMMUNE1(2),READFAIL
2GK=          TRACE    ACOMMUNE2(2) 
2H4W          TRACE    ACOMMUNE3(2),
2HJG    )   
2J46          LDX   7  ACOMMUNE1(2) 
2JHQ ...      GETBSLIS                     [FIND BSLIST IN X2   
2K3B    NT1A  LDX   3  BSSS                [WORDS/SHEET 
2KH2          LDXC  0  A1+4(2)  
2L2L          BCS      N1                  [JUMP IF SHEETS  
2LG=          LDX   3  BSBS                [OTHERWISE WORDS/BLOCK   
2L^W    N1    LDX   4  BACK2(2)            [FAILING BLOCKLET NUMBER 
2MFG    #SKI  K6BSALFAIL>99-99  
2M^6          TRACE    BACK2(2),BLOCKRD 
2NDQ          SRL   3  7
2NYB          DVS   3  3
2PD2          BZE   3  N2                  [JUMP IF FIRST BLOCKLET FAILED   
2PXL          LDX   0  BSBS4
2QC=          SBS   0  A1+1(2)             [NUMBER OF BLOCKS LOST BY FAILURE
2QWW          LDN   0  1
2RBG          SBS   0  BACK2(2)            [UPDATE 'HOME'   
2RW6          NGS   0  A1(2)
2S*Q          LDN   1  BSRLEN(2)           [CORE ADDRESS
2STB          LDX   3  2                   [SAVE BSLIST POINTER 
2T*2          BACKREAD BSET,BSBS4,NT1,BACK1(2),,1   
2TSL          FON      3                   [WAKE UP ANYBODY WAITING FOR LIST
2W#=          LDX   2  3
2WRW          LDX   1  BSBS4
2X?G          STO   1  A1(2)
2XR6          SMO      FX2  
2Y=Q          LDX   0  ACOMMUNE3
2YQB          BNZ   0  N3                  [JUMP IF GETBAX  
2^=2          SMO      1
2^PL          LDX   7  BSRLEN-1(2)         [GET BLOCK   
329=          SBN   1  1
32NW          STO   1  A1(2)               [RESET POINTER   
338G    #SKI  K6DRUMALL>199-199 
33N6    (   
347Q          STO   1  BSP4 
34MB          LDX   1  7
3572          CALL  0  (BSA4)              [MARK ALLOCATED IN CHECK LIST
35LL    )   
366=          LDN   0  1
36KW          SBS   0  A1+1(2)  
375G          LDXC  0  A1+4(2)  
37K6          BCC      N4                  [JUMP IF NOT SWAP FILE   
384Q          LDCT  0  #200 
38JB          LDX   2  FX2  
3942          ANDX  0  CLONG1(2)
39HL          BZE   0  N5                  [JUMP IF NOT PRIVELEGED  
3=3=          ERS   0  CLONG1(2)           [OTHERWISE UNSET BIT 
3=GW          BRN      N5   
3?2G    N4    JAMQUERY                     [WAKE UP UNJAMMER IF NECESSARY   
3?G6          LDX   2  FX2  
3?^Q    N5    LDX   0  ACOMMUNE2(2) 
3#FB          STO   7  EXEC1(2)            [SAVE BLOCK NUMBER   
3#^2          BZE   0  N6   
3*DL          UPPLUS   1                   [UP ROUND OPTIONAL  BRANCH   
3*Y=    N6    UP                           [OTHERWISE JUST GO UP.   
3BCW    N2    STOZ     A1(2)               [FIRST BLOCKLET FAILED   
3BXG          NGN   0  BWELL               [MAKE FILE LOOK EMPTY (NO BLOCKS LEFT
3CC6          LDXC  4  A1+4(2)  
3CWQ          BCS      N7                  [JUMP IF SWAP FILE   
3DBB ...      NGX   0  BSRESERVE(2) 
3DW2    N7    STO   0  A1+1(2)  
3F*L          NGN   0  1
3FT=          STO   0  BSRLEN(2)
3G#W          STO   0  BACK2(2) 
3GSG          SMO      FX2  
3H#6          LDX   6  ACOMMUNE2
3HRQ          BNZ   6  N8   
3J?B ...      BSON     EMSBIT,N7A              [J IF EMS
3JR2          GEOERR   0,NOSTORE
3K=L    N7A   GEOSTOP  XM1(1)   
3KQ=    N8    LDXC  0  A1+4(2)  
3L9W          BCS      N9                  [JUMP IF SWAP FILE   
3LPG          LDN   0  #6000               [OTHERWISE TRY AND UNJAM 
3M96          ORS   0  A1+4(2)  
3MNQ          FON      9                   [WAKE UP UNJAMMER
3N8B    N9    FON      3                   [AND ANYONE WAITING FOR END OF   
3NN2                                       [TRANSFER
3P7L          LDX   5  ACOMMUNE3(2) 
3PM=          BNZ   5  N10                 [JUMP IF GETBAX  
3Q6W          UP                           [OTHERWISE FINISH
3QLG    N10   MHUNT    3,BSTB,EMPTYB
3R66          SBN   5  2
3RKQ    #SKI  K6BSALFAIL>199-199
3S5B          TRACE    5,BLOCKS 
3SK2          BZE   5  N11                 [JUMP IF NO BLOCKS YET OBTAINED  
3T4L          NAME     3,BSTB,FULLB 
3TJ=          ADN   5  2
3W3W          STO   5  A1(3)               [RECORD HEADER   
3WHG          FREEBAX                      [FREE THESE BLOCKS   
3X36          MHUNT    3,BSTB,EMPTYB
3XGQ    N11   FREECORE 3                   [FREE USELESS BLOCK  
3Y2B          UP                           [FINISH  
3YG2    N3    LDX   2  FX2  
3Y^L          LDX   0  ACOMMUNE2(2) 
3^F=          BNZ   0  N3A                 [JUMP IF OPTIONAL
3^YW          ACROSS   GETBAX,11           [ JUMP TO GET REST OF BLOCKS 
42DG    N3A   MHUNT    3,BSTB,EMPTYB
42Y6          NAME     3,BSTB,FULLB 
43CQ          LDX   0  ACOMMUNE3(2) 
43XB          STO   0  A1(3)               [SET HEADER  
44C2          FREEBAX   
44WL          MHUNT    3,BSTB,EMPTYB
45B=          FREECORE 3
45TW          UP
46*G    QK3BSALFAIL 
46T6    #SKI  K6BSALFAIL>199-199
47#Q          TRACE    ACOMMUNE4(2),GXFAIL  
47SB          LDX   6  ACOMMUNE4(2) 
48#2    QK2BSALFAIL 
48RL    #SKI  K6BSALFAIL>199-199
49?=    (   
49QW          TRACE    ACOMMUNE1(2),WRITFAIL
4==G          TRACE    ACOMMUNE2(2),
4=Q6          TRACE    ACOMMUNE3(2),
4?9Q    )   
4?PB    R7    LDX   7  ACOMMUNE1(2)        [L.FN
4#92 ...      GETBSLIS                     [FIND BSLIST 
4#NL          LDX   1  FX1  
4*8=          CALL  5  SP1  
4*MW          LDX   3  BSSS                [SHEETSIZE   
4B7G          LDXC  0  A1+4(2)  
4BM6          BCS      R1                  [JUMP IF SWAP FILE   
4C6Q          LDX   3  BSBS                [BLOCK SIZE  
4CLB    R1    LDX   4  BACK2(2)            [BLOCKLET NUMBER 
4D62    #SKI  K6BSALFAIL>99-99  
4DKL          TRACE    BACK2(2),BLOCKWR 
4F5=          SRL   3  7
4FJW          DVS   3  3
4G4G          BZE   3  R2                  [JUMP IF FIRST BLOCKLET  
4GJ6          LDX   4  BACK2(2)            [FAILED BLOCKLET NUMBER  
4H3Q          LDX   3  BSRLEN(2)           [SAVE FIRST BLOCK
4HHB          LDCT  0  #400 
4J32          ORS   0  3
4JGL          SMO      FX2  
4K2=          LDX   5  ACOMMUNE2
4KFW          SBN   4  1
4K^G          STO   4  BSRLEN(2)
4LF6    R5    LDX   0  BSRLEN+1(2)  
4LYQ          STO   0  BACK2(2)            [NEW HOME
4MDB          NGN   0  1
4MY2          STO   0  A1(2)               [LOCKOUT 
4NCL          LDN   1  BSRLEN(2)
4NX=          BACKWRITE    BSET,BSBS4,S1,BACK1(2),,1
4PBW ...      GETBSLIS                     [REFIND BSLIST   
4PWG          LDN   0  1
4QB6          ADS   0  BACK2(2) 
4QTQ          STO   5  BSRLEN(2)           [STO FREED BLOCK NUMBER  
4R*B          LDXC  3  3                   [JUMP IF BLOCK USED  
4RT2          BCC      R3   
4S#L          STO   3  BSRLEN+1(2)         [OTHERWISE  STORE
4SS=          ADN   0  1                   [UPDATE POINTER  
4T?W    R3    STO   0  A1(2)
4TRG          BRN      R4   
4W?6 ...S1    GETBSLIS  
4WQQ          LDN   0  1
4X=B          SBS   0  A1+1(2)  
4XQ2          LDX   1  FX1  
4Y9L          CALL  5  SP1  
4YP=          LDXC  3  3
4^8W          BCC      R2                  [JUMP IF USED ORIGINAL BLOCK 
4^NG          STO   3  BSRLEN+1(2)  
5286          SMO      FX2  
52MQ          LDX   5  ACOMMUNE2
537B          LDN   3  0                   [RESET MARKER
53M2          BRN      R5   
546L    R2    SMO      FX2  
54L=          LDX   5  ACOMMUNE2
555W          STO   5  BACK2(2) 
55KG          STO   5  BSRLEN+1(2)         [NEW HOME
5656          LDX   0  BSBS4
56JQ          STO   0  A1(2)               [UPDATE POINTER  
574B    R4  
57J2    #SKI  K6DRUMALL>199-199 
583L    (   
58H=          STO   1  BSP4 
592W          LDX   1  5
59GG          ORX   1  GSIGN
5=26          CALL  0  (BSA4)   
5=FQ    )   
5=^B          FON      3
5?F2          LDX   5  ACOMMUNE3(2) 
5?YL          BNZ   5  R6                  [JUMP IF FREEBAX 
5#D=          UP
5#XW    R6    SMO      FX2  
5*CG          STO   6  ACOMMUNE4
5*X6          ACROSS   GETBAX,10
5BBQ    # S/R TO REMOVE ENTRY FROM CFL AND UNSET FAIL BITS  
5BWB    # X2 POINTS TO BSLIST BLOCK 
5CB2    #     LINK  X5  
5CTL    # USES X3,X4
5D*=    #   
5DSW    SPM   #77777774 
5F#G    NERR  GEOERR 0,CRECLOST 
5FS6    SP1   LDX   4  BACK2(2) 
5G?Q          ANDX  4  SPM(1)   
5GRB          FINDFAIL 3,4,BACK1(2),CFL,NERR
5H?2          NGN   2  1
5HQL    SP2   LDX   0  2(3) 
5J==          STO   0  0(3) 
5JPW          TXU   0  2
5K9G          BCC      SP3  
5KP6          ADN   3  1
5L8Q          BRN      SP2  
5LNB ...SP3   GETBSLIS  
5M82          LDX   3  2
5MML          LDX   1  7
5N7=          SLL   1  1
5NLW          ADX   1  ALFTP
5P6G          LDX   0  A1(1)
5PL6    #SKI  K6BSALFAIL>99-99  
5Q5Q    (   
5QKB          BPZ   0  SP3A 
5R52          GEOERR   0,WRNGLFN
5RJL    SP3A
5S4=    )   
5SHW          SRL   0  12   
5T3G          ANDN  0  #1777
5TH6          MPY   0  ASBSAB   
5W2Q          NGX   1  1
5WGB          ADX   1  ASBSAB   
5X22          ADX   1  BBAC 
5XFL          LDX   1  FPTR(1)  
5X^=          LDN   0  1
5YDW          SBS   0  A1(1)
5YYG          UNSETFB  0,BACK1(2)   
5^D6          LDX   2  3
5^XQ          EXIT  5  0
62CB    #   
62X2          MENDAREA 30,K99BSALFAIL   
63BL    #END
63W=    )   
^^^^ ...46661623000900000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1