Pass 3 _wip: semantic ZP aliases for Sqoon (U) (FrameCounter, PpuCtrlShadow, NmiFrameFlag) and Elevator Action (U) (PpuCtrlShadow, NmiSaveA/X/Y) Pass 3 Slalom (U): semantic ZP aliases (PpuCtrlShadow, PpuMaskShadow) Pass 3 Kung Fu (U): semantic ZP alias (PpuCtrlShadow) Pass 3 Othello (U): semantic ZP alias (PpuCtrlShadow) Pass 3 1942 (JU): semantic ZP alias (PpuCtrlShadow) Pass 3 Galaga (U): semantic ZP aliases (PpuCtrlShadow, PpuMaskShadow) Docs: add power-on flow + data-table inventory to READMEs of 13 promoted NROM projects Pass 3 Elevator Action (U): add NmiFrameFlag alias Pass 3 Elevator Action (U): full ZP naming (23 aliases) + 25 named data tables, 59.4% coverage Pass 1/2/3 re-trace: recover unreached code in 7 NROM projects (Sqoon 56.4%, Elevator Action 59.3%, Kung Fu 52.1%, 1942 52.1%) Pass 3 Sqoon (U): full ZP naming (22 aliases) + 17 named data tables Pass 3 Kung Fu (U): full ZP naming (21 aliases) + 13 named data tables Pass 3 Othello (U): full ZP naming (18 aliases) + 27 named data tables Pass 3 1942 (JU): full ZP naming (14 aliases) + 19 named data tables Pass 3 Galaga (U): full ZP naming (15 aliases) + 14 named data tables Pass 3 Slalom (U): full ZP naming (16 aliases) + 16 named data tables Pass 2/3: re-apply naming to Slalom (U), Othello (U), Galaga (U) after re-seed Pass 1/2/3 re-trace: recover unreached code in 6 more promoted NROM projects Pass 3 Stack-Up (JU): full ZP naming (15 aliases) + 12 named data tables Pass 3 Tag Team Wrestling (U): full ZP naming (20 aliases) + 11 named data tables Pass 3 Kung Fu (U) (a1): full ZP naming (20 aliases) + 12 named data tables Pass 3 Magmax (U): full ZP naming (18 aliases) + 6 named data tables Pass 3 Soccer (JU): full ZP naming (18 aliases) + 9 named data tables Pass 3 Ms Pac-Man (Namco) (U): full ZP naming (18 aliases) + 8 named data tables Docs: refresh coverage numbers and data-table inventories for 13 promoted NROM projects
150 lines
12 KiB
PHP
150 lines
12 KiB
PHP
; Othello (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 ; 18 refs; reads=11 writes=7; used at $8035, 806B, 806F, 80CF, +14 more
|
|
Zp01 = $01 ; 11 refs; reads=6 writes=5; used at $8031, 8E55, 8EBB, 9872, +3 more
|
|
Zp02 = $02 ; 9 refs; reads=3 writes=6; used at $8043, 80F6, 84BF, 998A, +4 more
|
|
Zp03 = $03 ; 5 refs; reads=1 writes=4; used at $8041, 80FA, 8133, 91D3, +1 more
|
|
Zp04 = $04 ; 10 refs; reads=7 writes=3; used at $8E6C, 8ED5, 8F00, 9369, +4 more
|
|
Zp05 = $05 ; 6 refs; reads=2 writes=4; used at $8465, 8642, D6CC, D6E9, +1 more
|
|
Zp06 = $06 ; 28 refs; reads=24 writes=4; used at $844B, 8475, 847D, 869A, +23 more
|
|
Zp07 = $07 ; 8 refs; reads=6 writes=2; used at $8648, 86A0, 8B6B, 9599, +4 more
|
|
Zp08 = $08 ; 10 refs; reads=6 writes=4; used at $80A0, 9888, 9981, 9AB5, +3 more
|
|
Zp09 = $09 ; 1 refs; reads=1 writes=0; used at $DA38
|
|
Zp0A = $0A ; 2 refs; reads=2 writes=0; used at $DA12, DA30
|
|
Zp0D = $0D ; 6 refs; reads=4 writes=2; used at $D787, D78E, D793, D797, +2 more
|
|
Zp0E = $0E ; 4 refs; reads=2 writes=2; used at $D78A, D7A0, D7A2
|
|
Zp0F = $0F ; 61 refs; reads=24 writes=37; used at $84E6, 85AA, 85FF, 8C94, +49 more
|
|
Zp10 = $10 ; 44 refs; reads=15 writes=29; used at $84EA, 85AE, 8C98, 8E48, +36 more
|
|
Zp11 = $11 ; 24 refs; reads=15 writes=9; used at $D790, D7B0, D7B5, D7BA, +17 more
|
|
Zp12 = $12 ; 16 refs; reads=7 writes=9; used at $D795, D7F8, D81C, D848, +7 more
|
|
Zp13 = $13 ; 9 refs; reads=4 writes=5; used at $D719, D71E, D726, D728, +3 more
|
|
Zp14 = $14 ; 17 refs; reads=12 writes=5; used at $B638, D736, D751, D75B, +13 more
|
|
Zp15 = $15 ; 15 refs; reads=10 writes=5; used at $D738, D73A, D763, D7C1, +11 more
|
|
Zp16 = $16 ; 11 refs; reads=9 writes=2; used at $D780, D7AA, D7EE, D812, +7 more
|
|
Zp17 = $17 ; 4 refs; reads=2 writes=2; used at $D8E4, D8F6, D8F9, D902
|
|
Zp18 = $18 ; 7 refs; reads=3 writes=4; used at $D770, D776, D77C, D834, +3 more
|
|
Zp19 = $19 ; 11 refs; reads=5 writes=6; used at $A10E, A12D, A13E, A17B, +7 more
|
|
Zp1A = $1A ; 13 refs; reads=6 writes=7; used at $972D, 973A, A112, A131, +9 more
|
|
Zp1E = $1E ; 9 refs; reads=5 writes=4; used at $8502, D922, D932, D949, +5 more
|
|
Zp20 = $20 ; 18 refs; reads=10 writes=8; used at $803B, 80AE, 80BE, 80C8, +9 more
|
|
Zp21 = $21 ; 8 refs; reads=6 writes=2; used at $8039, 98DB, D8D0, D8D8, +4 more
|
|
Zp22 = $22 ; 12 refs; reads=8 writes=4; used at $98D3, 98DD, 993B, 995B, +6 more
|
|
Zp23 = $23 ; 2 refs; reads=1 writes=1; used at $D90C, D916
|
|
Zp24 = $24 ; 7 refs; reads=5 writes=2; used at $803F, D9F2, DA0C, DA2A, +3 more
|
|
Zp25 = $25 ; 6 refs; reads=3 writes=3; used at $803D, D9F0, DA02, DA0E, +2 more
|
|
Zp26 = $26 ; 3 refs; reads=1 writes=2; used at $D6D1, DA71
|
|
Zp27 = $27 ; 7 refs; reads=5 writes=2; used at $DACF, DAD5, DAD8, DAE0, +2 more
|
|
Zp28 = $28 ; 2 refs; reads=1 writes=1; used at $DAD1
|
|
Zp29 = $29 ; 3 refs; reads=3 writes=0; used at $DAC8, DAEE, DAF2
|
|
Zp2A = $2A ; 25 refs; reads=18 writes=7; used at $DB2D, DBE9, DBF1, DBFF, +19 more
|
|
Zp2B = $2B ; 11 refs; reads=4 writes=7; used at $DB32, DBED, DC36, DC7A, +5 more
|
|
Zp2C = $2C ; 12 refs; reads=5 writes=7; used at $DB7C, DC98, DC9D, DCB1, +8 more
|
|
Zp2D = $2D ; 1 refs; reads=0 writes=1; used at $DB80
|
|
Zp2E = $2E ; 86 refs; reads=60 writes=26; used at $80ED, 8225, 8229, 82CD, +82 more
|
|
Zp2F = $2F ; 45 refs; reads=41 writes=4; used at $8108, 818C, 81A7, 845A, +41 more
|
|
Zp30 = $30 ; 36 refs; reads=20 writes=16; used at $8213, 8217, 82BF, 83A0, +31 more
|
|
Zp31 = $31 ; 70 refs; reads=34 writes=36; used at $8302, 8309, 831B, 83B1, +58 more
|
|
Zp32 = $32 ; 77 refs; reads=39 writes=38; used at $8304, 830B, 8310, 8319, +63 more
|
|
Zp33 = $33 ; 24 refs; reads=8 writes=16; used at $8608, 94F1, 9505, 9C77, +19 more
|
|
Zp34 = $34 ; 30 refs; reads=9 writes=21; used at $94FA, 950E, 9CC9, 9CCB, +26 more
|
|
Zp35 = $35 ; 38 refs; reads=22 writes=16; used at $8DD1, 8E1A, 8F77, 8F7D, +31 more
|
|
Zp36 = $36 ; 58 refs; reads=27 writes=31; used at $82BB, 82EB, 83AF, 8564, +49 more
|
|
Zp37 = $37 ; 91 refs; reads=48 writes=43; used at $82BD, 82ED, 83C3, 83EF, +76 more
|
|
Zp38 = $38 ; 15 refs; reads=5 writes=10; used at $8D16, 8F97, 903A, 904C, +8 more
|
|
Zp39 = $39 ; 21 refs; reads=14 writes=7; used at $8F99, 8FAF, 8FE3, 8FF7, +14 more
|
|
Zp3A = $3A ; 4 refs; reads=2 writes=2; used at $8897, A138, A15D
|
|
Zp3B = $3B ; 30 refs; reads=19 writes=11; used at $82E2, 88A0, 893B, 89B9, +20 more
|
|
Zp3C = $3C ; 4 refs; reads=2 writes=2; used at $889C, A13A, A155
|
|
Zp3D = $3D ; 26 refs; reads=18 writes=8; used at $82E4, 88A3, 8938, 89B6, +19 more
|
|
Zp3E = $3E ; 49 refs; reads=26 writes=23; used at $AFD9, AFF5, B01F, B029, +45 more
|
|
Zp3F = $3F ; 17 refs; reads=6 writes=11; used at $B359, B572, B623, B64A, +8 more
|
|
Zp40 = $40 ; 31 refs; reads=14 writes=17; used at $B228, B260, B277, B292, +27 more
|
|
Zp41 = $41 ; 15 refs; reads=5 writes=10; used at $995F, B29B, B29F, B346, +8 more
|
|
Zp42 = $42 ; 41 refs; reads=29 writes=12; used at $83E7, AF9C, AFFE, B08C, +32 more
|
|
Zp43 = $43 ; 21 refs; reads=11 writes=10; used at $8348, 9876, 993F, A56A, +12 more
|
|
Zp44 = $44 ; 33 refs; reads=8 writes=25; used at $83DE, 8584, 8601, 8951, +27 more
|
|
Zp45 = $45 ; 46 refs; reads=31 writes=15; used at $9941, AF9E, AFC1, AFD0, +41 more
|
|
Zp46 = $46 ; 18 refs; reads=10 writes=8; used at $B2A9, B2AE, B2BF, B2C4, +12 more
|
|
Zp47 = $47 ; 18 refs; reads=10 writes=8; used at $998C, B2B0, B2B5, B2B8, +12 more
|
|
Zp48 = $48 ; 13 refs; reads=7 writes=6; used at $B0CF, B12C, B14F, B178, +6 more
|
|
Zp49 = $49 ; 16 refs; reads=9 writes=7; used at $9983, 998E, B0D1, B140, +8 more
|
|
Zp4A = $4A ; 34 refs; reads=17 writes=17; used at $B03A, B041, B045, B065, +27 more
|
|
Zp4B = $4B ; 65 refs; reads=45 writes=20; used at $83E5, AF9A, AFD4, AFD6, +51 more
|
|
Zp4C = $4C ; 4 refs; reads=3 writes=1; used at $9996, BB6E, BB98, BC70
|
|
Zp4D = $4D ; 7 refs; reads=5 writes=2; used at $BBD9, BBE1, BBE5, BBF1, +2 more
|
|
Zp4E = $4E ; 5 refs; reads=3 writes=2; used at $8194, 819B, BC03, BC25, +1 more
|
|
Zp4F = $4F ; 7 refs; reads=2 writes=5; used at $BA93, BAF2, BC38, BC7A, +3 more
|
|
Zp50 = $50 ; 8 refs; reads=2 writes=6; used at $834D, ADAD, ADBA, AE1E, +4 more
|
|
Zp51 = $51 ; 10 refs; reads=1 writes=9; used at $8343, AE0D, AE22, AE2F, +6 more
|
|
Zp52 = $52 ; 18 refs; reads=3 writes=15; used at $833E, ADA9, ADB6, AE11, +14 more
|
|
Zp53 = $53 ; 43 refs; reads=23 writes=20; used at $858A, 98D9, B022, B375, +32 more
|
|
Zp54 = $54 ; 8 refs; reads=5 writes=3; used at $912D, 916C, BAAD, BAFC, +4 more
|
|
Zp55 = $55 ; 5 refs; reads=3 writes=2; used at $BAB4, BB03, BB07, BB11, +1 more
|
|
Zp56 = $56 ; 9 refs; reads=5 writes=4; used at $BA96, BA98, BAA0, BADD, +5 more
|
|
Zp57 = $57 ; 8 refs; reads=4 writes=4; used at $987A, BA9C, BAD5, BB15, +2 more
|
|
Zp58 = $58 ; 10 refs; reads=5 writes=5; used at $BAA9, BAC0, BAC2, BAE5, +6 more
|
|
Zp59 = $59 ; 10 refs; reads=5 writes=5; used at $BAAB, BAC6, BAE9, BAED, +4 more
|
|
Zp5A = $5A ; 21 refs; reads=11 writes=10; used at $B047, B050, B072, B07B, +16 more
|
|
Zp5B = $5B ; 23 refs; reads=10 writes=13; used at $8500, 8640, B04B, B057, +17 more
|
|
Zp60 = $60 ; 1 refs; reads=1 writes=0; used at $8E6E
|
|
Zp64 = $64 ; 1 refs; reads=0 writes=1; used at $95A6
|
|
Zp67 = $67 ; 2 refs; reads=1 writes=1; used at $8646
|
|
Zp68 = $68 ; 1 refs; reads=1 writes=0; used at $987F
|
|
Zp6C = $6C ; 2 refs; reads=1 writes=1; used at $AC5A
|
|
Zp76 = $76 ; 2 refs; reads=1 writes=1; used at $9922
|
|
Zp84 = $84 ; 5 refs; reads=4 writes=1; used at $83E9, 8467, 84C1, 8586
|
|
Zp85 = $85 ; 4 refs; reads=2 writes=2; used at $8494, 8E67
|
|
Zp86 = $86 ; 8 refs; reads=6 writes=2; used at $8504, 8507, 8606, 8644, +2 more
|
|
Zp88 = $88 ; 2 refs; reads=1 writes=1; used at $814A
|
|
Zp8B = $8B ; 2 refs; reads=1 writes=1; used at $8BA5
|
|
Zp8C = $8C ; 2 refs; reads=1 writes=1; used at $A55C
|
|
Zp8E = $8E ; 2 refs; reads=2 writes=0; used at $874F, A55F
|
|
Zp92 = $92 ; 1 refs; reads=1 writes=0; used at $8588
|
|
Zp95 = $95 ; 3 refs; reads=3 writes=0; used at $9550, 95A8, 977F
|
|
Zp98 = $98 ; 11 refs; reads=5 writes=6; used at $9812, 9828, 9841, 9860, +2 more
|
|
Zp99 = $99 ; 6 refs; reads=3 writes=3; used at $992D, 99B7, 99DD
|
|
Zp9A = $9A ; 6 refs; reads=3 writes=3; used at $9917, 9A40, 9A91
|
|
Zp9B = $9B ; 8 refs; reads=4 writes=4; used at $8397, 8463, 84C3, 8556
|
|
ZpA1 = $A1 ; 1 refs; reads=1 writes=0; used at $84BD
|
|
ZpA2 = $A2 ; 2 refs; reads=1 writes=1; used at $809A
|
|
ZpA4 = $A4 ; 1 refs; reads=0 writes=1; used at $BC20
|
|
ZpA5 = $A5 ; 42 refs; reads=28 writes=14; used at $8916, 8C1C, 8DDA, 8DE3, +38 more
|
|
ZpA7 = $A7 ; 6 refs; reads=5 writes=1; used at $8469, A592, A597, A6FC, +1 more
|
|
ZpA9 = $A9 ; 2 refs; reads=1 writes=1; used at $80C6
|
|
ZpAE = $AE ; 4 refs; reads=3 writes=1; used at $B37F, B598, B5F7, BB63
|
|
ZpAF = $AF ; 8 refs; reads=8 writes=0; used at $AE9F, B3D8, B3E5, B428, +4 more
|
|
ZpB6 = $B6 ; 6 refs; reads=6 writes=0; used at $AEA5, B3DF, B3F0, B3FD, +2 more
|
|
ZpC8 = $C8 ; 2 refs; reads=2 writes=0; used at $8140, 91E0
|
|
ZpCC = $CC ; 1 refs; reads=1 writes=0; used at $815A
|
|
ZpCD = $CD ; 1 refs; reads=0 writes=1; used at $BC2D
|
|
ZpCE = $CE ; 13 refs; reads=6 writes=7; used at $8167, 855B, 8560, 85C9, +3 more
|
|
ZpD6 = $D6 ; 5 refs; reads=2 writes=3; used at $8077, 9999, BC29
|
|
ZpD7 = $D7 ; 4 refs; reads=3 writes=1; used at $954C, 95A4, 977B, BC2F
|
|
ZpEE = $EE ; 6 refs; reads=6 writes=0; used at $AEAB, B412, B418, B423, +2 more
|
|
ZpEF = $EF ; 1 refs; reads=1 writes=0; used at $8582
|
|
ZpF5 = $F5 ; 4 refs; reads=4 writes=0; used at $AEB1, B3F5, B40D, B467
|
|
ZpFB = $FB ; 1 refs; reads=1 writes=0; used at $83DC
|
|
|
|
; Pass 3 semantic aliases (proven from the disassembly):
|
|
PpuCtrlShadow = Zp00
|
|
BoardCursorX = Zp31
|
|
BoardCursorY = Zp32
|
|
CursorMoved = Zp2E
|
|
BoardState = Zp37
|
|
BoardState2 = Zp36
|
|
PlayerSide = Zp2F
|
|
CellPatternIndex= ZpA5
|
|
BoardDataPtrLo = Zp3E
|
|
BoardColumnCount= Zp45
|
|
BoardColumn = Zp4B
|
|
CellCharset = Zp52
|
|
CellType = Zp51
|
|
CellOwner = Zp43
|
|
CellValid = Zp50
|
|
MoveDeltaX = Zp0F
|
|
MoveDeltaY = Zp10
|