Files
disasm/NROM/1942 (JU)/locals.inc
T
tmerritt 6740550ac0 CDL re-trace: 1942 (JU) 46.6%, Galaga (U) 32.3% (Pass 2/3 complete)
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
2026-10-21 16:43:54 -04:00

126 lines
9.6 KiB
PHP

; 1942 (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 ; 19 refs; reads=16 writes=3; used at $8452, 845A, 8462, 846A, +15 more
Zp01 = $01 ; 9 refs; reads=9 writes=0; used at $844C, 8454, 845C, 8464, +5 more
Zp02 = $02 ; 18 refs; reads=11 writes=7; used at $8480, C110, C123, C127, +14 more
Zp03 = $03 ; 4 refs; reads=1 writes=3; used at $C22E, C25F, C283, C2F7
Zp04 = $04 ; 6 refs; reads=6 writes=0; used at $844E, 8450, 8456, 8458, +2 more
Zp05 = $05 ; 4 refs; reads=4 writes=0; used at $846C, 8474, 847C, 848C
Zp07 = $07 ; 7 refs; reads=4 writes=3; used at $846E, 8476, E395, E39E
Zp09 = $09 ; 6 refs; reads=3 writes=3; used at $8470, 8478, 847E
Zp10 = $10 ; 2 refs; reads=2 writes=0; used at $F554, FC87
Zp22 = $22 ; 3 refs; reads=1 writes=2; used at $C115, C119, C269
Zp23 = $23 ; 3 refs; reads=1 writes=2; used at $C11B, C11F, C26D
Zp30 = $30 ; 1 refs; reads=1 writes=0; used at $FC8B
Zp40 = $40 ; 1 refs; reads=1 writes=0; used at $F136
Zp42 = $42 ; 3 refs; reads=1 writes=2; used at $C256, C27A, C300
Zp43 = $43 ; 3 refs; reads=1 writes=2; used at $C259, C27D, C2FD
Zp50 = $50 ; 2 refs; reads=2 writes=0; used at $F13A, FC7F
Zp60 = $60 ; 2 refs; reads=1 writes=1; used at $E39C
Zp62 = $62 ; 4 refs; reads=2 writes=2; used at $C106, C2E8, C2F0
Zp63 = $63 ; 2 refs; reads=1 writes=1; used at $C030, C1AA
Zp64 = $64 ; 2 refs; reads=1 writes=1; used at $C032, C1A8
Zp65 = $65 ; 2 refs; reads=1 writes=1; used at $C034, C1A6
Zp66 = $66 ; 8 refs; reads=4 writes=4; used at $C1F7, C1FD, C242, C248, +4 more
Zp6B = $6B ; 3 refs; reads=0 writes=3; used at $B67D, BC99, BEAE
Zp6C = $6C ; 3 refs; reads=0 writes=3; used at $B681, BC9D, BEB2
Zp6D = $6D ; 3 refs; reads=0 writes=3; used at $B673, BC92, BEA7
Zp6E = $6E ; 3 refs; reads=0 writes=3; used at $B671, BC90, BEA5
Zp6F = $6F ; 2 refs; reads=1 writes=1; used at $A174, A17E
Zp70 = $70 ; 2 refs; reads=1 writes=1; used at $A17A, A184
Zp72 = $72 ; 4 refs; reads=2 writes=2; used at $A105, A113, A120
Zp73 = $73 ; 8 refs; reads=4 writes=4; used at $A1A2, A1AA, A1B0, A1BD, +2 more
Zp74 = $74 ; 13 refs; reads=8 writes=5; used at $A122, A13E, A154, A159, +7 more
Zp75 = $75 ; 4 refs; reads=1 writes=3; used at $9FDD, A001, A239, A322
Zp76 = $76 ; 1 refs; reads=0 writes=1; used at $9FE1
Zp77 = $77 ; 38 refs; reads=12 writes=26; used at $9FE5, A010, A0BE, A0C8, +34 more
Zp78 = $78 ; 1 refs; reads=0 writes=1; used at $9FE9
Zp79 = $79 ; 3 refs; reads=2 writes=1; used at $9FEE, A393, A3A4
Zp7A = $7A ; 1 refs; reads=0 writes=1; used at $9FF3
Zp7B = $7B ; 5 refs; reads=1 writes=4; used at $9FF7, A202, A20C, A20E
Zp7C = $7C ; 1 refs; reads=0 writes=1; used at $9FFB
Zp7D = $7D ; 4 refs; reads=1 writes=3; used at $A0ED, A10F, A18E
Zp7E = $7E ; 4 refs; reads=1 writes=3; used at $A0F2, A10D, A190
Zp7F = $7F ; 4 refs; reads=1 writes=3; used at $A0F7, A10B, A192
Zp80 = $80 ; 6 refs; reads=2 writes=4; used at $A0FC, A109, A194, E399
Zp81 = $81 ; 11 refs; reads=7 writes=4; used at $A101, A107, A21B, A237, +6 more
Zp82 = $82 ; 28 refs; reads=23 writes=5; used at $A162, A17C, A196, A1CF, +24 more
Zp83 = $83 ; 12 refs; reads=5 writes=7; used at $A19C, A1E5, A1EE, A1F4, +7 more
Zp84 = $84 ; 8 refs; reads=3 writes=5; used at $A198, A290, A29A, A2AD, +3 more
Zp85 = $85 ; 9 refs; reads=4 writes=5; used at $818D, 8194, A875, A88E, +4 more
Zp86 = $86 ; 72 refs; reads=31 writes=41; used at $809D, 80A4, 80BB, 80C1, +57 more
Zp87 = $87 ; 119 refs; reads=41 writes=78; used at $803E, 8139, 81A1, 81BE, +102 more
Zp88 = $88 ; 76 refs; reads=21 writes=55; used at $8031, 8140, 815F, 817A, +68 more
Zp89 = $89 ; 56 refs; reads=9 writes=47; used at $802C, 83BA, A021, A760, +50 more
Zp8A = $8A ; 138 refs; reads=54 writes=84; used at $8038, 812E, 8157, 8172, +132 more
Zp8B = $8B ; 111 refs; reads=28 writes=83; used at $8126, 8251, 8257, 825A, +98 more
Zp8C = $8C ; 26 refs; reads=13 writes=13; used at $801B, 801F, 8042, 8046, +22 more
Zp8D = $8D ; 14 refs; reads=7 writes=7; used at $A91E, A922, A927, A92B, +10 more
Zp8F = $8F ; 4 refs; reads=0 writes=4; used at $80AE, B68B, BCF9, BFEA
Zp90 = $90 ; 5 refs; reads=1 writes=4; used at $80B3, B68D, BCFB, BFEF, +1 more
Zp94 = $94 ; 4 refs; reads=1 writes=3; used at $C1B7, C1C1, C1C9, C1D4
Zp95 = $95 ; 8 refs; reads=4 writes=4; used at $C1CE, C1D1, C1DA, C1DC, +3 more
Zp98 = $98 ; 10 refs; reads=9 writes=1; used at $B6C8, B731, C1E0, C1E4, +6 more
Zp99 = $99 ; 2 refs; reads=0 writes=2; used at $C1E6, C1F2
Zp9A = $9A ; 1 refs; reads=1 writes=0; used at $DE8C
Zp9C = $9C ; 9 refs; reads=6 writes=3; used at $C408, C45C, C4AC, C4D3, +4 more
Zp9D = $9D ; 5 refs; reads=2 writes=3; used at $C40C, C51D, C521, C53C
Zp9E = $9E ; 12 refs; reads=3 writes=9; used at $C41B, C426, C431, C43C, +8 more
Zp9F = $9F ; 6 refs; reads=2 writes=4; used at $C41F, C42A, C435, C440, +2 more
ZpA0 = $A0 ; 7 refs; reads=4 writes=3; used at $B65D, C4BD, C4E6, C53F, +1 more
ZpA1 = $A1 ; 3 refs; reads=1 writes=2; used at $C4C2, C543
ZpA2 = $A2 ; 5 refs; reads=3 writes=2; used at $C4A0, C4D0, C4DA, C546
ZpA3 = $A3 ; 3 refs; reads=1 writes=2; used at $C4A5, C54A
ZpB0 = $B0 ; 46 refs; reads=26 writes=20; used at $A962, A970, A97E, A98E, +42 more
ZpB1 = $B1 ; 15 refs; reads=6 writes=9; used at $A9E5, A9FC, AA20, AAA7, +11 more
ZpB2 = $B2 ; 9 refs; reads=3 writes=6; used at $A9E1, A9F8, AA3C, AB05, +5 more
ZpB3 = $B3 ; 9 refs; reads=3 writes=6; used at $A9E9, A9FE, AA59, AAE1, +5 more
ZpB4 = $B4 ; 3 refs; reads=2 writes=1; used at $AAB3, DA36, DA51
ZpB5 = $B5 ; 1 refs; reads=1 writes=0; used at $AAD0
ZpB6 = $B6 ; 1 refs; reads=1 writes=0; used at $AAF4
ZpB7 = $B7 ; 1 refs; reads=1 writes=0; used at $AB11
ZpC9 = $C9 ; 4 refs; reads=1 writes=3; used at $B7EA, D889, DD4A, DD57
ZpCA = $CA ; 3 refs; reads=2 writes=1; used at $81C6, 81EE, 82B9
ZpCB = $CB ; 2 refs; reads=1 writes=1; used at $81F4, 81FF
ZpCC = $CC ; 4 refs; reads=2 writes=2; used at $81FD, 8222, 8227, 8249
ZpCD = $CD ; 3 refs; reads=1 writes=2; used at $81F9, 8229, 822E
ZpCE = $CE ; 1 refs; reads=0 writes=1; used at $8354
ZpCF = $CF ; 1 refs; reads=0 writes=1; used at $C055
ZpD0 = $D0 ; 4 refs; reads=2 writes=2; used at $C010, C08B, C0A4, C0AB
ZpD1 = $D1 ; 4 refs; reads=2 writes=2; used at $C014, C086, C0AD, C0C0
ZpD2 = $D2 ; 4 refs; reads=2 writes=2; used at $C008, C092, C09B, C0A2
ZpD3 = $D3 ; 1 refs; reads=0 writes=1; used at $C00C
ZpD4 = $D4 ; 10 refs; reads=7 writes=3; used at $D97B, D98A, D99F, D9A4, +6 more
ZpD5 = $D5 ; 5 refs; reads=2 writes=3; used at $D981, D9A6, D9AA, DA78, +1 more
ZpD6 = $D6 ; 2 refs; reads=0 writes=2; used at $E015, E061
ZpD7 = $D7 ; 2 refs; reads=0 writes=2; used at $E019, E067
ZpD8 = $D8 ; 2 refs; reads=0 writes=2; used at $E01D, E06D
ZpD9 = $D9 ; 2 refs; reads=0 writes=2; used at $E021, E071
ZpDB = $DB ; 4 refs; reads=2 writes=2; used at $D2C3, D2C5, D2CD
ZpDD = $DD ; 18 refs; reads=5 writes=13; used at $8363, 8388, 838D, 83AB, +13 more
ZpDE = $DE ; 20 refs; reads=6 writes=14; used at $835F, 838F, 8394, AA03, +15 more
ZpDF = $DF ; 14 refs; reads=3 writes=11; used at $BCC7, BCE4, BE0B, BE22, +9 more
ZpE0 = $E0 ; 14 refs; reads=3 writes=11; used at $BCCB, BCE8, BE07, BE1E, +9 more
ZpE1 = $E1 ; 2 refs; reads=1 writes=1; used at $839D, 83A5
ZpE2 = $E2 ; 10 refs; reads=2 writes=8; used at $835A, 8365, BCEA, BE0F, +5 more
; Pass 3 semantic aliases (proven from the disassembly):
PpuCtrlShadow = Zp8C
PpuAddrHigh = Zp89
PpuAddrLow = Zp88
VramWritePtrLo = Zp8A
VramWritePtrHi = Zp8B
PlayerX = Zp87
PlayerY = Zp86
PlayerScore = ZpB0
ScreenPtrLo = Zp77
ScreenPtrHi = Zp78
TilePtrLo = Zp79
TilePtrHi = Zp7A
SpriteIndex = Zp82
PpuMaskShadow = Zp8D