{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: BSALFAIL)}}
====== BSALFAIL ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BACKREAD|BACKREAD]], [[george:macro:BACKWRITE|BACKWRITE]], [[george:macro:BSON|BSON]], [[george:macro:FINDFAIL|FINDFAIL]], [[george:macro:FON|FON]], [[george:macro:FREEBAX|FREEBAX]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GEOSTOP|GEOSTOP]], [[george:macro:GETBSLIS|GETBSLIS]], [[george:macro:JAMQUERY|JAMQUERY]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NAME|NAME]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TRACE|TRACE]], [[george:macro:UNSETFB|UNSETFB]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
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