; Stack-Up (JU) 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 ; 34 refs; reads=18 writes=16; used at $8119, 811D, 83CE, 83D1, +30 more Zp01 = $01 ; 27 refs; reads=10 writes=17; used at $8115, 8122, 827B, 8289, +22 more Zp02 = $02 ; 15 refs; reads=8 writes=7; used at $8277, 8297, 8506, 8510, +11 more Zp03 = $03 ; 25 refs; reads=5 writes=20; used at $8279, 82B1, 8508, 8607, +20 more Zp04 = $04 ; 3 refs; reads=1 writes=2; used at $851C, 854C Zp05 = $05 ; 3 refs; reads=2 writes=1; used at $8514, 852B, AAD4 Zp06 = $06 ; 3 refs; reads=1 writes=2; used at $852D, 8535 Zp08 = $08 ; 35 refs; reads=18 writes=17; used at $814A, 819D, 81A3, 81AA, +31 more Zp09 = $09 ; 9 refs; reads=5 writes=4; used at $814E, 8180, 8187, 8190, +5 more Zp0A = $0A ; 7 refs; reads=3 writes=4; used at $894A, 8ED8, 8F23, B05F, +3 more Zp0B = $0B ; 19 refs; reads=8 writes=11; used at $84D5, 890A, 89FE, 8DA1, +13 more Zp0C = $0C ; 21 refs; reads=12 writes=9; used at $836F, 837B, A058, A13C, +14 more Zp0D = $0D ; 11 refs; reads=5 writes=6; used at $8341, 8371, 8379, A4F4, +5 more Zp0E = $0E ; 6 refs; reads=3 writes=3; used at $A05A, A112, ABFA, AC01, +2 more Zp10 = $10 ; 19 refs; reads=12 writes=7; used at $837F, 839E, 83A6, A015, +13 more Zp11 = $11 ; 12 refs; reads=7 writes=5; used at $8562, 856E, AC28, AC4D, +6 more Zp12 = $12 ; 14 refs; reads=8 writes=6; used at $8322, 832B, 8330, 8337, +10 more Zp13 = $13 ; 10 refs; reads=5 writes=5; used at $8327, A011, A114, AC20, +6 more Zp14 = $14 ; 38 refs; reads=24 writes=14; used at $8317, 8320, 8325, 832D, +34 more Zp15 = $15 ; 20 refs; reads=2 writes=18; used at $831E, 8332, 8474, 847C, +14 more Zp16 = $16 ; 51 refs; reads=28 writes=23; used at $857F, 858A, 8C11, 8C14, +43 more Zp17 = $17 ; 10 refs; reads=6 writes=4; used at $9C76, 9C88, AB3F, AB5E, +6 more Zp18 = $18 ; 18 refs; reads=13 writes=5; used at $820E, 83D9, 83F6, 83FA, +14 more Zp19 = $19 ; 2 refs; reads=2 writes=0; used at $8F93, 9067 Zp1A = $1A ; 26 refs; reads=19 writes=7; used at $8239, 83FC, 8A3A, 8AFF, +22 more Zp1B = $1B ; 1 refs; reads=1 writes=0; used at $9069 Zp1C = $1C ; 2 refs; reads=0 writes=2; used at $83FE, 840C Zp1E = $1E ; 3 refs; reads=1 writes=2; used at $8408, 8410 Zp20 = $20 ; 6 refs; reads=3 writes=3; used at $83DD, 83EE, A8F1, A8FC Zp22 = $22 ; 4 refs; reads=2 writes=2; used at $83E1, 83E3, 83F2 Zp24 = $24 ; 2 refs; reads=1 writes=1; used at $83E9, 83F4 Zp28 = $28 ; 3 refs; reads=1 writes=2; used at $8459, 845F Zp29 = $29 ; 9 refs; reads=5 writes=4; used at $8463, 8467, 8921, 8928, +4 more Zp2D = $2D ; 5 refs; reads=1 writes=4; used at $8F3D, 8F55, 8F57, 8FCC, +1 more Zp2F = $2F ; 14 refs; reads=13 writes=1; used at $8111, 816A, 8F95, 9BD0, +9 more Zp30 = $30 ; 3 refs; reads=1 writes=2; used at $8166, 8170, 81D8 Zp31 = $31 ; 4 refs; reads=1 writes=3; used at $8413, 8454, 850C, 857C Zp32 = $32 ; 4 refs; reads=2 writes=2; used at $8161, 816C, 81BC Zp33 = $33 ; 3 refs; reads=1 writes=2; used at $8175, 8178, 81DC Zp34 = $34 ; 18 refs; reads=1 writes=17; used at $82C5, 82D4, 891A, 8974, +14 more Zp38 = $38 ; 4 refs; reads=3 writes=1; used at $88AF, 88C0, 8F2C, 8F4D Zp3A = $3A ; 4 refs; reads=1 writes=3; used at $813B, 81EE, 824C, 8D10 Zp3B = $3B ; 32 refs; reads=6 writes=26; used at $81F2, 8216, 8218, 824E, +24 more Zp3C = $3C ; 14 refs; reads=7 writes=7; used at $813E, 8241, 8251, 8D15, +6 more Zp3D = $3D ; 3 refs; reads=1 writes=2; used at $88B9, 8D4E, 8DD4 Zp3E = $3E ; 9 refs; reads=4 writes=5; used at $8EE3, 8F9A, 8F9E, 8FB9, +3 more Zp3F = $3F ; 9 refs; reads=4 writes=5; used at $8EDF, 8FAA, 8FBC, B1B6, +3 more Zp40 = $40 ; 21 refs; reads=20 writes=1; used at $87C9, 88D4, 88F1, 896E, +17 more Zp44 = $44 ; 59 refs; reads=27 writes=32; used at $88B5, 88EA, 88F5, 8923, +38 more Zp46 = $46 ; 3 refs; reads=1 writes=2; used at $B1DE, B1FC Zp47 = $47 ; 2 refs; reads=1 writes=1; used at $B1E0, B223 Zp48 = $48 ; 8 refs; reads=5 writes=3; used at $81E7, B1E4, B1E7, B1F3, +3 more Zp49 = $49 ; 36 refs; reads=32 writes=4; used at $8712, 87DE, 88D2, 8976, +32 more Zp4A = $4A ; 23 refs; reads=12 writes=11; used at $830A, 9075, 9318, 9321, +19 more Zp4C = $4C ; 6 refs; reads=4 writes=2; used at $867C, 8708, 8726, 872F, +2 more Zp4D = $4D ; 6 refs; reads=4 writes=2; used at $8670, 8706, 871B, 8724, +2 more Zp4E = $4E ; 4 refs; reads=1 writes=3; used at $870C, 8718, 8807 Zp4F = $4F ; 4 refs; reads=2 writes=2; used at $89F0, 8AAA, 8AAE Zp50 = $50 ; 12 refs; reads=9 writes=3; used at $8152, 9C0F, AA50, AA54, +6 more Zp51 = $51 ; 5 refs; reads=3 writes=2; used at $AA44, AA6E, AA74, AA76 Zp52 = $52 ; 4 refs; reads=2 writes=2; used at $AA6A, AA7B, AA80 Zp53 = $53 ; 5 refs; reads=2 writes=3; used at $AA11, AA1E, AA28, AA72 Zp54 = $54 ; 3 refs; reads=1 writes=2; used at $8A1F, 8E5B Zp55 = $55 ; 8 refs; reads=4 writes=4; used at $89F7, 8EDD, B07A, B091, +4 more Zp56 = $56 ; 5 refs; reads=3 writes=2; used at $B095, B0E3, B0FF, B101 Zp57 = $57 ; 2 refs; reads=1 writes=1; used at $B0AD, B12E Zp58 = $58 ; 2 refs; reads=1 writes=1; used at $B09B, B116 Zp59 = $59 ; 6 refs; reads=4 writes=2; used at $89CF, 8C91, 8ED0, A268, +2 more Zp5A = $5A ; 9 refs; reads=5 writes=4; used at $89D7, A279, B150, B158, +3 more Zp5C = $5C ; 6 refs; reads=4 writes=2; used at $8771, 877A, 8781, 8790, +2 more Zp5D = $5D ; 7 refs; reads=4 writes=3; used at $875F, 8768, 876E, 8785, +3 more Zp5E = $5E ; 4 refs; reads=1 writes=3; used at $8756, 875C, 87DB Zp5F = $5F ; 4 refs; reads=2 writes=2; used at $8752, 8794, 87CF, 8A7E Zp60 = $60 ; 7 refs; reads=4 writes=3; used at $8A68, 8A9D, B4F0, B50E, +2 more Zp61 = $61 ; 9 refs; reads=8 writes=1; used at $8BDF, B2EB, B4EA, B502, +5 more Zp62 = $62 ; 2 refs; reads=1 writes=1; used at $8BE7, 8C0C Zp63 = $63 ; 4 refs; reads=2 writes=2; used at $B506, B508, B532 Zp64 = $64 ; 6 refs; reads=2 writes=4; used at $89F5, 8AD9, 8B07, 8C79, +2 more Zp65 = $65 ; 3 refs; reads=1 writes=2; used at $8C77, 8CB7, 8CCE Zp66 = $66 ; 4 refs; reads=1 writes=3; used at $89D3, 8ED4, B06A, B077 Zp67 = $67 ; 3 refs; reads=1 writes=2; used at $8B5D, 8B6B, 8BEF Zp70 = $70 ; 13 refs; reads=8 writes=5; used at $85B4, 85EC, 87E2, 87F1, +9 more Zp80 = $80 ; 5 refs; reads=2 writes=3; used at $8628, 8631, 8637, 865D, +1 more Zp81 = $81 ; 5 refs; reads=2 writes=3; used at $861C, 8626, 8639, 8662, +1 more Zp82 = $82 ; 13 refs; reads=7 writes=6; used at $85F5, 85FF, 8611, 861A, +9 more Zp83 = $83 ; 13 refs; reads=7 writes=6; used at $85F7, 8601, 8605, 860F, +9 more Zp85 = $85 ; 3 refs; reads=2 writes=1; used at $B1DF, B1E3 Zp89 = $89 ; 2 refs; reads=1 writes=1; used at $8221 Zp8F = $8F ; 4 refs; reads=2 writes=2; used at $8256, 8258 Zp90 = $90 ; 2 refs; reads=1 writes=1; used at $9089 ZpA5 = $A5 ; 3 refs; reads=2 writes=1; used at $AAD8, B1EC ZpA9 = $A9 ; 4 refs; reads=2 writes=2; used at $A8E8, B1E1 ZpAA = $AA ; 6 refs; reads=3 writes=3; used at $A3D9, A3DB, A3E6, A3EC, +1 more ZpAD = $AD ; 2 refs; reads=1 writes=1; used at $9D4D ZpB7 = $B7 ; 6 refs; reads=3 writes=3; used at $830E, 8339, 8348, 834A, +2 more ZpB8 = $B8 ; 2 refs; reads=1 writes=1; used at $8353, 8366 ZpB9 = $B9 ; 2 refs; reads=1 writes=1; used at $8358, 8395 ZpD0 = $D0 ; 4 refs; reads=1 writes=3; used at $F3D4, F43F, F4D3 ZpD1 = $D1 ; 1 refs; reads=0 writes=1; used at $F3D6 ZpD2 = $D2 ; 1 refs; reads=0 writes=1; used at $F3D8 ZpD3 = $D3 ; 1 refs; reads=0 writes=1; used at $F3DA ZpD4 = $D4 ; 2 refs; reads=1 writes=1; used at $F47F, F4D1 ZpD8 = $D8 ; 6 refs; reads=3 writes=3; used at $F459, F45D, F468, F46A ZpDC = $DC ; 2 refs; reads=1 writes=1; used at $F3EF, F4C3 ZpDD = $DD ; 1 refs; reads=0 writes=1; used at $F3F1 ZpDE = $DE ; 1 refs; reads=0 writes=1; used at $F4F7 ZpDF = $DF ; 2 refs; reads=1 writes=1; used at $F3C9, F479 ZpE0 = $E0 ; 1 refs; reads=1 writes=0; used at $F430 ZpE1 = $E1 ; 2 refs; reads=2 writes=0; used at $F434, F438 ZpE8 = $E8 ; 9 refs; reads=5 writes=4; used at $F3DE, F443, F445, F461, +3 more ZpE9 = $E9 ; 1 refs; reads=0 writes=1; used at $F3E0 ZpEA = $EA ; 1 refs; reads=0 writes=1; used at $F3E2 ZpEB = $EB ; 1 refs; reads=0 writes=1; used at $F3E4 ZpEC = $EC ; 2 refs; reads=1 writes=1; used at $F45F, F46E ZpF0 = $F0 ; 5 refs; reads=2 writes=3; used at $8878, B275, F5B5, F5CB, +1 more ZpF1 = $F1 ; 5 refs; reads=2 writes=3; used at $887A, B296, F5CD, F722, +1 more ZpF2 = $F2 ; 8 refs; reads=4 writes=4; used at $887C, B2B7, F5CF, F6C6, +4 more ZpF3 = $F3 ; 4 refs; reads=1 writes=3; used at $887E, B2D8, F5D1, F5F2 ZpF5 = $F5 ; 3 refs; reads=2 writes=1; used at $F518, F555, F566 ZpF6 = $F6 ; 1 refs; reads=0 writes=1; used at $F51A ZpF7 = $F7 ; 5 refs; reads=2 writes=3; used at $F4E1, F678, F959, F96A ZpF9 = $F9 ; 3 refs; reads=0 writes=3; used at $908C, F3A2, F3B0 ZpFA = $FA ; 1 refs; reads=0 writes=1; used at $F3A6 ZpFB = $FB ; 2 refs; reads=1 writes=1; used at $F3A8, F3AE ZpFC = $FC ; 1 refs; reads=0 writes=1; used at $F3AA ZpFD = $FD ; 5 refs; reads=3 writes=2; used at $F419, F426, F42B, F4A0, +1 more ZpFE = $FE ; 6 refs; reads=4 writes=2; used at $F432, F447, F48B, F982, +1 more ZpFF = $FF ; 7 refs; reads=5 writes=2; used at $B24F, B251, B253, B255, +2 more ; Pass 3 semantic aliases (proven from the disassembly): PpuCtrlShadow = Zp08 PpuMaskShadow = Zp09 VramWritePtrLo = Zp00 VramWritePtrHi = Zp01 BlockPtrLo = Zp14 BlockPtrHi = Zp15 BlockTileIndex = Zp12 BlockTileIndex2 = Zp13 BlockType = Zp16 PlayerIndex = Zp3B PlayerColumn = Zp3D BoardState = Zp40 GameState = Zp49 BlockIndex = Zp4A FrameCounter = Zp32