; Raid on Bungeling Bay (U) application-specific RAM aliases - Pass 1 ; Generated from every direct zero-page operand in reachable code: ; ref counts are reads/writes, `where` lists the referencing addresses. ; ZpXX names indicate storage with a role not yet unique enough for a behavioral name; ; Pass 2 replaces them with names derived from observed usage. Zp00 = $00 ; 50 refs; reads=21 writes=29; used at $C44B, C482, C5D3, C5EA, +42 more Zp01 = $01 ; 24 refs; reads=10 writes=14; used at $C523, C532, C5DB, C5F7, +15 more Zp02 = $02 ; 24 refs; reads=10 writes=14; used at $C525, C536, C5D7, C5DD, +17 more Zp03 = $03 ; 69 refs; reads=35 writes=34; used at $CA06, CA19, CA1B, CAF5, +47 more Zp04 = $04 ; 2 refs; reads=1 writes=1; used at $D7B0, D7BB Zp05 = $05 ; 13 refs; reads=7 writes=6; used at $D7B7, D7BF, D7C7, D7D7, +8 more Zp06 = $06 ; 5 refs; reads=2 writes=3; used at $D7DB, DA17, DA4F, DE4A, +1 more Zp07 = $07 ; 7 refs; reads=2 writes=5; used at $D1F5, D2EB, D301, D32E, +3 more Zp08 = $08 ; 8 refs; reads=6 writes=2; used at $D2F1, D2FC, D30A, D317, +2 more Zp09 = $09 ; 11 refs; reads=9 writes=2; used at $D74A, DC94, E193, E32E, +7 more Zp0A = $0A ; 6 refs; reads=2 writes=4; used at $D352, D455, D499, D4BF, +1 more Zp0B = $0B ; 4 refs; reads=2 writes=2; used at $D490, D4D4, E923 Zp0C = $0C ; 4 refs; reads=1 writes=3; used at $E2A8, EEC9, EED8, EF3A Zp0D = $0D ; 4 refs; reads=2 writes=2; used at $CE21, CE2D, CE83, D06F Zp0E = $0E ; 4 refs; reads=2 writes=2; used at $CE25, CE31, CE40 Zp0F = $0F ; 5 refs; reads=3 writes=2; used at $D35C, D832, D836, DD2E Zp10 = $10 ; 11 refs; reads=5 writes=6; used at $D136, D170, D18B, D459, +4 more Zp11 = $11 ; 19 refs; reads=9 writes=10; used at $CF7F, D13C, D142, D31F, +11 more Zp12 = $12 ; 9 refs; reads=8 writes=1; used at $D183, D265, D83E, D840, +4 more Zp13 = $13 ; 4 refs; reads=1 writes=3; used at $CED9, CF13, E77C, E85D Zp14 = $14 ; 2 refs; reads=0 writes=2; used at $CEDC, CF15 Zp15 = $15 ; 5 refs; reads=2 writes=3; used at $CED5, E85F, E861, E868, +1 more Zp16 = $16 ; 1 refs; reads=0 writes=1; used at $CED7 Zp1B = $1B ; 3 refs; reads=0 writes=3; used at $E809, EB13, EB33 Zp1C = $1C ; 3 refs; reads=0 writes=3; used at $E80E, EB18, EB38 Zp1D = $1D ; 8 refs; reads=4 writes=4; used at $E28E, E290, E890, E8A2, +2 more Zp1E = $1E ; 5 refs; reads=2 writes=3; used at $E29A, E29C, E82F Zp1F = $1F ; 3 refs; reads=2 writes=1; used at $D488, D70E, F0EE Zp20 = $20 ; 3 refs; reads=2 writes=1; used at $D48C, D712, F0F2 Zp21 = $21 ; 4 refs; reads=2 writes=2; used at $EB54, EB6A, EB98, EBC4 Zp22 = $22 ; 4 refs; reads=2 writes=2; used at $EB5A, EB70, EB7D, EBA9 Zp23 = $23 ; 2 refs; reads=0 writes=2; used at $EB1F, EB3F Zp24 = $24 ; 2 refs; reads=0 writes=2; used at $EB25, EB45 Zp25 = $25 ; 55 refs; reads=34 writes=21; used at $C9D5, C9DC, C9DE, C9E4, +51 more Zp26 = $26 ; 36 refs; reads=19 writes=17; used at $CA08, CA22, CA29, D8FA, +29 more Zp27 = $27 ; 40 refs; reads=23 writes=17; used at $CB11, CB24, D374, D378, +36 more Zp28 = $28 ; 30 refs; reads=17 writes=13; used at $D37C, D383, D8EF, D909, +24 more Zp29 = $29 ; 53 refs; reads=32 writes=21; used at $D424, D42C, D530, D536, +46 more Zp2A = $2A ; 19 refs; reads=9 writes=10; used at $D589, D595, D77C, D786, +15 more Zp2B = $2B ; 1 refs; reads=0 writes=1; used at $E337 Zp2C = $2C ; 1 refs; reads=0 writes=1; used at $E340 Zp2D = $2D ; 3 refs; reads=1 writes=2; used at $CD94, CDAB, CDF7 Zp2E = $2E ; 5 refs; reads=2 writes=3; used at $CD99, CDA4, CDFE, CE04 Zp2F = $2F ; 4 refs; reads=2 writes=2; used at $D9F4, DD76, DD7A Zp30 = $30 ; 4 refs; reads=2 writes=2; used at $D9F6, DD6E, DD72 Zp31 = $31 ; 3 refs; reads=1 writes=2; used at $E951, E9D4, ED19 Zp32 = $32 ; 4 refs; reads=3 writes=1; used at $E95A, ECD8, ECE0, ECE2 Zp33 = $33 ; 7 refs; reads=4 writes=3; used at $E948, E94A, E95C, E95E, +3 more Zp34 = $34 ; 5 refs; reads=4 writes=1; used at $D72E, E961, ECC2, ECCA, +1 more Zp35 = $35 ; 8 refs; reads=5 writes=3; used at $D753, E94D, E94F, E963, +4 more Zp36 = $36 ; 7 refs; reads=5 writes=2; used at $D7A3, E091, E587, E929, +3 more Zp37 = $37 ; 6 refs; reads=3 writes=3; used at $D79F, E92B, E943, E945, +2 more Zp38 = $38 ; 3 refs; reads=1 writes=2; used at $D470, E720, E727 Zp39 = $39 ; 4 refs; reads=2 writes=2; used at $D942, D946, D990 Zp3A = $3A ; 3 refs; reads=2 writes=1; used at $EECE, EED0 Zp3B = $3B ; 3 refs; reads=1 writes=2; used at $E4AA, E4E4 Zp3C = $3C ; 4 refs; reads=2 writes=2; used at $D008, D220, E70F, E713 Zp3D = $3D ; 4 refs; reads=3 writes=1; used at $D3C1, D43E, D492, F168 Zp3E = $3E ; 2 refs; reads=1 writes=1; used at $D494, D4C8 Zp3F = $3F ; 10 refs; reads=6 writes=4; used at $CF6E, CF8B, CFAE, CFB6, +4 more Zp40 = $40 ; 6 refs; reads=2 writes=4; used at $D7D3, DA11, DA47, DE86, +2 more Zp41 = $41 ; 1 refs; reads=0 writes=1; used at $DC53 Zp42 = $42 ; 1 refs; reads=0 writes=1; used at $DC58 Zp43 = $43 ; 1 refs; reads=0 writes=1; used at $E1E0 Zp44 = $44 ; 1 refs; reads=0 writes=1; used at $E1E5 Zp45 = $45 ; 6 refs; reads=3 writes=3; used at $D3E9, E732, E736, E73A, +1 more Zp46 = $46 ; 6 refs; reads=3 writes=3; used at $D3FB, E72C, E730, E738, +1 more Zp47 = $47 ; 3 refs; reads=2 writes=1; used at $D3CD, D3DE, D3E7 Zp48 = $48 ; 10 refs; reads=6 writes=4; used at $D3C9, D3D5, D3D7, D3F0, +3 more Zp49 = $49 ; 20 refs; reads=8 writes=12; used at $C581, C61B, C907, C90E, +16 more Zp4A = $4A ; 13 refs; reads=5 writes=8; used at $C572, C5FD, CE60, D05D, +9 more Zp4B = $4B ; 19 refs; reads=4 writes=15; used at $C577, C607, CE65, D061, +14 more Zp4C = $4C ; 14 refs; reads=4 writes=10; used at $C5CF, C5E5, C901, C909, +9 more Zp4D = $4D ; 11 refs; reads=2 writes=9; used at $C57C, C611, D055, D0D6, +7 more Zp4E = $4E ; 15 refs; reads=7 writes=8; used at $C539, C541, C6A1, C750, +9 more Zp4F = $4F ; 7 refs; reads=1 writes=6; used at $C53D, C6A5, C84F, C8DD, +2 more Zp50 = $50 ; 10 refs; reads=8 writes=2; used at $C19B, C1B0, C43F, C77D, +5 more Zp51 = $51 ; 7 refs; reads=5 writes=2; used at $C19D, C1A5, E0FF, E110, +2 more Zp52 = $52 ; 6 refs; reads=3 writes=3; used at $C56D, C586, C59C, C5A1, +2 more Zp53 = $53 ; 2 refs; reads=1 writes=1; used at $C59E, C5A3 Zp54 = $54 ; 10 refs; reads=5 writes=5; used at $CE4C, CE6D, CE72, D953, +5 more Zp55 = $55 ; 8 refs; reads=4 writes=4; used at $C077, C07B, C520, D226, +2 more Zp56 = $56 ; 3 refs; reads=2 writes=1; used at $D12E, D130 Zp5B = $5B ; 1 refs; reads=1 writes=0; used at $F243 Zp5C = $5C ; 1 refs; reads=1 writes=0; used at $F22C Zp5D = $5D ; 2 refs; reads=2 writes=0; used at $F1F5, F201 Zp5E = $5E ; 1 refs; reads=1 writes=0; used at $F1F9 Zp5F = $5F ; 6 refs; reads=3 writes=3; used at $F239, F24D, F280, F2AC Zp60 = $60 ; 5 refs; reads=2 writes=3; used at $F23D, F251, F2B0 Zp61 = $61 ; 7 refs; reads=3 writes=4; used at $F241, F27A, F282, F293, +2 more Zp62 = $62 ; 4 refs; reads=2 writes=2; used at $F2A6, F2B4, F2B8 Zp63 = $63 ; 4 refs; reads=2 writes=2; used at $F28C, F29C, F29E, F2B6 Zp64 = $64 ; 3 refs; reads=1 writes=2; used at $F291, F2A2 Zp65 = $65 ; 10 refs; reads=7 writes=3; used at $CD3C, CD47, D4F1, D62C, +6 more Zp6D = $6D ; 2 refs; reads=1 writes=1; used at $CD49, D740 Zp75 = $75 ; 1 refs; reads=1 writes=0; used at $EF69 Zp85 = $85 ; 3 refs; reads=3 writes=0; used at $D7B5, E46C, EF61 Zp95 = $95 ; 4 refs; reads=3 writes=1; used at $CD3E, D78F, E47A, EF65 ZpA5 = $A5 ; 14 refs; reads=9 writes=5; used at $CD7C, CEE7, CFAA, D199, +9 more ZpA6 = $A6 ; 5 refs; reads=3 writes=2; used at $CE29, CE87, CF58, CFCF, +1 more ZpA7 = $A7 ; 2 refs; reads=1 writes=1; used at $E870, E8C8 ZpA9 = $A9 ; 12 refs; reads=8 writes=4; used at $CEE0, CF01, CF0D, D44E, +8 more ZpAA = $AA ; 7 refs; reads=3 writes=4; used at $CEE3, CF03, CF0F, D447, +3 more ZpAB = $AB ; 7 refs; reads=3 writes=4; used at $CF96, D307, D314, D334, +3 more ZpAC = $AC ; 4 refs; reads=1 writes=3; used at $D338, F133, F139 ZpAD = $AD ; 7 refs; reads=5 writes=2; used at $C268, CEEC, CF05, CF3F, +3 more ZpAE = $AE ; 11 refs; reads=11 writes=0; used at $D366, D399, D58C, EA05, +7 more ZpAF = $AF ; 12 refs; reads=12 writes=0; used at $D33B, D360, D38F, D593, +8 more ZpB0 = $B0 ; 6 refs; reads=6 writes=0; used at $D3A3, E972, EB1B, EB2A, +2 more ZpB1 = $B1 ; 7 refs; reads=7 writes=0; used at $CA98, D395, E979, EB08, +3 more ZpB2 = $B2 ; 6 refs; reads=3 writes=3; used at $CFA4, F13B, F14B, F152, +1 more ZpB3 = $B3 ; 4 refs; reads=2 writes=2; used at $CFA6, D444, DCCB, E061 ZpB4 = $B4 ; 7 refs; reads=6 writes=1; used at $D452, D486, D578, D61B, +3 more ZpB5 = $B5 ; 6 refs; reads=5 writes=1; used at $D44B, D48A, D61F, E261, +2 more ZpB6 = $B6 ; 17 refs; reads=9 writes=8; used at $CF79, CF7D, D138, D13A, +7 more ZpB7 = $B7 ; 5 refs; reads=2 writes=3; used at $C286, C8EA, E26E, E272, +1 more ZpB8 = $B8 ; 2 refs; reads=1 writes=1; used at $C28E, C299 ZpB9 = $B9 ; 4 refs; reads=1 writes=3; used at $C44D, C49A, D001, D222 ZpBA = $BA ; 4 refs; reads=2 writes=2; used at $D28A, D650, D656 ZpBB = $BB ; 18 refs; reads=10 writes=8; used at $C819, D255, D269, D26F, +10 more ZpBC = $BC ; 6 refs; reads=3 writes=3; used at $C81B, D251, D286, D648, +1 more ZpBD = $BD ; 10 refs; reads=8 writes=2; used at $C82C, D260, D2DE, D882, +6 more ZpBE = $BE ; 4 refs; reads=2 writes=2; used at $C9C2, CA74, CA82, D876 ZpBF = $BF ; 3 refs; reads=1 writes=2; used at $C9C6, D87B, E16A ZpC0 = $C0 ; 3 refs; reads=1 writes=2; used at $C9CA, D880, E05D ZpC1 = $C1 ; 13 refs; reads=10 writes=3; used at $C0B2, C0CB, C134, C169, +7 more ZpC2 = $C2 ; 15 refs; reads=8 writes=7; used at $C0AA, C0C3, C0D7, C0DB, +11 more ZpC3 = $C3 ; 14 refs; reads=9 writes=5; used at $C0EA, C122, C183, C3FB, +8 more ZpC4 = $C4 ; 5 refs; reads=3 writes=2; used at $C051, C073, C17A, C3E9, +1 more ZpC5 = $C5 ; 7 refs; reads=4 writes=3; used at $C12C, C13B, C15A, C172, +2 more ZpC6 = $C6 ; 12 refs; reads=6 writes=6; used at $C120, C127, C12A, C12F, +5 more ZpC7 = $C7 ; 9 refs; reads=4 writes=5; used at $C78B, C7A8, C7AC, C7B0, +3 more ZpC8 = $C8 ; 4 refs; reads=2 writes=2; used at $D17A, D189, D18E ZpC9 = $C9 ; 7 refs; reads=6 writes=1; used at $C7BC, C7C5, C7C7, D86D, +3 more ZpCA = $CA ; 12 refs; reads=10 writes=2; used at $C1B9, C2D0, C2ED, C319, +7 more ZpCB = $CB ; 7 refs; reads=4 writes=3; used at $C1BD, C1BF, C1C9, C24F, +1 more ZpCC = $CC ; 7 refs; reads=4 writes=3; used at $C1EA, C1EC, C278, C27A, +1 more ZpCD = $CD ; 10 refs; reads=5 writes=5; used at $C1CF, C1D7, C20C, C21A, +3 more ZpCE = $CE ; 14 refs; reads=5 writes=9; used at $C1CB, C1FD, C21C, C23C, +7 more ZpCF = $CF ; 12 refs; reads=5 writes=7; used at $C1F2, C1F4, C257, C264, +5 more ZpD0 = $D0 ; 12 refs; reads=4 writes=8; used at $C1E1, C202, C2A3, C2B9, +6 more ZpD1 = $D1 ; 5 refs; reads=2 writes=3; used at $C23E, C832, CF70, CF89 ZpD2 = $D2 ; 3 refs; reads=1 writes=2; used at $C280, D1C1, D1E4 ZpD3 = $D3 ; 8 refs; reads=6 writes=2; used at $C7EF, C858, CF5C, D861, +3 more ZpD4 = $D4 ; 14 refs; reads=12 writes=2; used at $C1B5, C791, C798, C838, +9 more ZpD5 = $D5 ; 9 refs; reads=5 writes=4; used at $C7F3, C873, C8C5, CD86, +3 more ZpD6 = $D6 ; 6 refs; reads=4 writes=2; used at $C09A, C4A5, C4C7, C830, +2 more ZpD7 = $D7 ; 4 refs; reads=2 writes=2; used at $C7FC, C8B0, D242 ZpD8 = $D8 ; 6 refs; reads=3 writes=3; used at $C7F7, D1AE, D1B2, D23A, +1 more ZpD9 = $D9 ; 4 refs; reads=1 writes=3; used at $C7FA, D989, DD30 ZpDA = $DA ; 4 refs; reads=2 writes=2; used at $C834, D6D9, D6DB ZpDB = $DB ; 4 refs; reads=1 writes=3; used at $C4D0, C89C, D343, D6E3 ZpDC = $DC ; 3 refs; reads=2 writes=1; used at $F050, F052 ZpDD = $DD ; 5 refs; reads=3 writes=2; used at $E105, E10E, E116, E11F, +1 more ZpDE = $DE ; 3 refs; reads=2 writes=1; used at $E0F7, E0F9 ZpDF = $DF ; 10 refs; reads=6 writes=4; used at $C836, D041, D048, D04A, +5 more ZpE0 = $E0 ; 3 refs; reads=2 writes=1; used at $D4E1, D4E3 ZpE1 = $E1 ; 3 refs; reads=1 writes=2; used at $C8BC, D03B, D03F ZpE2 = $E2 ; 3 refs; reads=2 writes=1; used at $C4B5, C4B7 ZpE3 = $E3 ; 5 refs; reads=2 writes=3; used at $C723, CA51, CA57, CA59 ZpEA = $EA ; 8 refs; reads=5 writes=3; used at $C412, C41C, C424, C438, +2 more ZpEB = $EB ; 5 refs; reads=3 writes=2; used at $C414, C41A, C426, C435 ZpEC = $EC ; 3 refs; reads=2 writes=1; used at $C432, C43D, EBCA ; Semantic aliases (Pass 3, 2026-10-20) ; Based on observed usage in the disassembly ; 16-bit pointer (RAM clear) PtrLo = $00 ; semantic alias for Zp00 PtrHi = $01 ; semantic alias for Zp01 ; Indirect dispatch pointers (jmp (zp)) IndDispatch1B = $1B ; semantic alias for Zp1B (jmp ($001B) at $E7A3) IndDispatch17 = $17 ; semantic alias for Zp17 (jmp ($0017) at $E79D) IndDispatch19 = $19 ; semantic alias for Zp19 (jmp ($0019) at $E7A0) IndDispatch01 = $01 ; semantic alias for Zp01 (jmp ($0001) at $E2EC) Zp17 = $17 ; 1 ref; reads=0 writes=1; used at $E895 (absolute RAM $0017 via the 'a:' prefix) Zp18 = $18 ; 1 ref; reads=0 writes=1; used at $E89B (absolute RAM $0018 via the 'a:' prefix) Zp19 = $19 ; 1 ref; reads=0 writes=1; used at $E7A0 (jmp ($0019)) ; Frame/timer state FrameSubCounter = $55 ; semantic alias for Zp55 PpuCtrlShadow = $C2 ; semantic alias for ZpC2 NmiPathSelector = $C4 ; semantic alias for ZpC4 (0=minimal, !=0=full) GameState = $D6 ; semantic alias for ZpD6 (2 = palette) ; Pseudo-random generator state. The update routine at $C412 does the ; classic 6502 scrambler (eor / asl / php / lsr / plp / rol, twice) over ; $EB and $EC and folds $EA in twice; its callers ask for random bytes ; ($CDF4/$CDF9 call it twice in a row and mask the second result with ; #$07). $EA is therefore a phase/period counter for the scrambler, not a ; frame timer - the name `VBlankWaitCounter` that this slot carried before ; 2026-10-20 did not survive the evidence and was renamed. PrngPeriodCounter = $EA ; semantic alias for ZpEA PrngSeedB = $EB ; semantic alias for ZpEB PrngState = $EC ; semantic alias for ZpEC