Files
disasm/_wip/Hogan's Alley (JU)/copilot/locals.inc
T
tmerritt 2ae09f78ce Pass 1 complete for all 14 WIP projects; Pinball (JU) Pass 2 complete; tools fixed
- Pass 1 complete for all 14 WIP projects:
  - Donkey Kong (JU): 76.3% code
  - Donkey Kong Jr. Math (U): 81.9% code
  - Duck Hunt (JUE): 37.5% code
  - Hogan's Alley (JU): 41.8% code (needs CDL reclass for E970-E9C9 branch table)
  - Ice Climber (JE/U): 74.7% code
  - Lode Runner (U): 52.6% code
  - Millipede (U): 74.6% code
  - Pac-Man (Tengen) (U): 19.5% code
  - Pac-Man (U): 19.6% code
  - Pinball (JU): 59.5% code
  - Popeye (JU) PRG 0/1: 72.3% code
  - Raid on Bungeling Bay (U): 64.6% code
  - Raid on Bungeling Bay (U) [a2]: 64.3% code

- Pinball (JU) Pass 2 complete: 4,734 instructions, 196 semantic labels, 150 zero-page aliases, BYTE-IDENTICAL

- Tools fixed:
  - cdl_reclass.py: Fixed override logic to always win over CDL conflicts
  - nesdis.py: Fixed a: prefix parsing for JSR/JMP operands; fixed IND mode emission

- Root OVERVIEW.md updated with all Pass 1 completion statuses
- Pinball (JU) and Urban Champion (JU) project OVERVIEW.md updated

All 17 top-level projects pass verify_pass1.py; 13/14 WIP projects build (Hogan's Alley needs CDL reclass for E970-E9C9 branch table)
2026-10-18 20:52:49 -04:00

172 lines
15 KiB
PHP

; Hogan's Alley (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 ; 49 refs; reads=25 writes=24; used at $C01A, C01E, C22C, C23D, +44 more
Zp01 = $01 ; 34 refs; reads=13 writes=21; used at $C016, C023, C228, C239, +28 more
Zp02 = $02 ; 33 refs; reads=22 writes=11; used at $C31D, C421, C427, C44D, +29 more
Zp03 = $03 ; 21 refs; reads=4 writes=17; used at $C65E, C660, C67B, C69F, +17 more
Zp04 = $04 ; 19 refs; reads=13 writes=6; used at $C42D, C469, C48E, C4A0, +14 more
Zp05 = $05 ; 17 refs; reads=9 writes=8; used at $C425, C442, C4A9, C4D3, +11 more
Zp06 = $06 ; 22 refs; reads=12 writes=10; used at $C444, C452, C5B5, C5B8, +11 more
Zp07 = $07 ; 5 refs; reads=2 writes=3; used at $C5CC, C5D0, D731, D74E, +1 more
Zp08 = $08 ; 14 refs; reads=8 writes=6; used at $C052, C2DE, C2E9, C30B, +10 more
Zp09 = $09 ; 8 refs; reads=4 writes=4; used at $C056, C75B, C75F, C768, +4 more
Zp0A = $0A ; 12 refs; reads=9 writes=3; used at $C3A9, C5BA, CF8C, D02D, +5 more
Zp0B = $0B ; 3 refs; reads=3 writes=0; used at $C3C9, C5D8, D828
Zp0C = $0C ; 2 refs; reads=1 writes=1; used at $D449, D456
Zp0F = $0F ; 2 refs; reads=1 writes=1; used at $CCDD, CCF4
Zp10 = $10 ; 19 refs; reads=12 writes=7; used at $C506, C532, C536, C53B, +15 more
Zp11 = $11 ; 14 refs; reads=10 writes=4; used at $C4ED, C502, C508, C547, +10 more
Zp12 = $12 ; 13 refs; reads=9 writes=4; used at $C551, C557, C586, CE51, +8 more
Zp13 = $13 ; 16 refs; reads=8 writes=8; used at $C510, C515, C51E, C523, +9 more
Zp14 = $14 ; 4 refs; reads=2 writes=2; used at $C351, C356, C35A, C35E
Zp15 = $15 ; 5 refs; reads=1 writes=4; used at $C354, C35C, DB6A, DB76
Zp16 = $16 ; 3 refs; reads=2 writes=1; used at $C0BF, C173, C2AF
Zp18 = $18 ; 7 refs; reads=3 writes=4; used at $CE62, CE64, CE84, D689, +3 more
Zp19 = $19 ; 17 refs; reads=9 writes=8; used at $CEAD, CEBA, CEBC, CED3, +9 more
Zp1A = $1A ; 2 refs; reads=1 writes=1; used at $D26B, D270
Zp1C = $1C ; 2 refs; reads=1 writes=1; used at $C0FD, C272
Zp1D = $1D ; 3 refs; reads=1 writes=2; used at $C10C, C264
Zp1E = $1E ; 2 refs; reads=1 writes=1; used at $C3ED, D826
Zp1F = $1F ; 2 refs; reads=1 writes=1; used at $C3F2, D82A
Zp20 = $20 ; 10 refs; reads=6 writes=4; used at $C07A, C07E, C0AF, C27A, +6 more
Zp21 = $21 ; 6 refs; reads=1 writes=5; used at $C2BD, C302, C41E, C486, +2 more
Zp22 = $22 ; 5 refs; reads=1 writes=4; used at $C07C, C098, C0AD, C27E, +1 more
Zp23 = $23 ; 14 refs; reads=1 writes=13; used at $C24E, C260, C7F9, CA07, +10 more
Zp24 = $24 ; 7 refs; reads=5 writes=2; used at $C043, C065, C0B8, C184, +3 more
Zp25 = $25 ; 13 refs; reads=4 writes=9; used at $C0CE, C0FB, C101, C108, +9 more
Zp26 = $26 ; 9 refs; reads=7 writes=2; used at $C069, C15E, C17D, C199, +4 more
Zp27 = $27 ; 4 refs; reads=3 writes=1; used at $C3B6, C3BE, C3D0
Zp28 = $28 ; 3 refs; reads=2 writes=1; used at $C3DB, D841
Zp29 = $29 ; 5 refs; reads=2 writes=3; used at $C031, C407, D806, D80B, +1 more
Zp2A = $2A ; 6 refs; reads=2 writes=4; used at $C0E6, C190, C26D, C339, +1 more
Zp2B = $2B ; 4 refs; reads=2 writes=2; used at $C343, C347, DB35
Zp2D = $2D ; 7 refs; reads=2 writes=5; used at $C192, C1CD, C1D5, CDEB, +3 more
Zp2F = $2F ; 4 refs; reads=3 writes=1; used at $C076, C6C0, D520
Zp30 = $30 ; 1 refs; reads=1 writes=0; used at $D1CA
Zp3F = $3F ; 15 refs; reads=13 writes=2; used at $C3B0, C3FC, C781, C7C4, +11 more
Zp40 = $40 ; 6 refs; reads=2 writes=4; used at $CBE3, CBF0, D5EF, DC25, +1 more
Zp41 = $41 ; 23 refs; reads=6 writes=17; used at $CA2B, CA61, CA98, CB2F, +15 more
Zp42 = $42 ; 2 refs; reads=0 writes=2; used at $CB8E, DC10
Zp43 = $43 ; 3 refs; reads=0 writes=3; used at $CB90, DAD1, DC12
Zp44 = $44 ; 6 refs; reads=2 writes=4; used at $CB9E, CBA5, CBB1, CDC9, +2 more
Zp45 = $45 ; 32 refs; reads=5 writes=27; used at $C0F6, CA0C, CA5D, CA7D, +27 more
Zp46 = $46 ; 11 refs; reads=5 writes=6; used at $CDC1, CE78, D1A6, D9DC, +6 more
Zp47 = $47 ; 19 refs; reads=10 writes=9; used at $C916, C918, C937, CDC5, +13 more
Zp49 = $49 ; 1 refs; reads=1 writes=0; used at $DB60
Zp4A = $4A ; 6 refs; reads=3 writes=3; used at $C91A, DAE1, DAE8, DB66, +2 more
Zp4B = $4B ; 6 refs; reads=4 writes=2; used at $D599, D5AD, DAEA, DAF0, +2 more
Zp4C = $4C ; 6 refs; reads=4 writes=2; used at $D4E7, D52B, D59E, DB78, +2 more
Zp4D = $4D ; 4 refs; reads=3 writes=1; used at $D4B7, DB7D, DB7F, DB85
Zp4E = $4E ; 1 refs; reads=1 writes=0; used at $D525
Zp4F = $4F ; 3 refs; reads=1 writes=2; used at $DA77, DA7E, DBCD
Zp50 = $50 ; 6 refs; reads=4 writes=2; used at $D5F8, DA61, DA73, DA80, +1 more
Zp51 = $51 ; 5 refs; reads=3 writes=2; used at $C8B8, CA0E, CB28, DB9B
Zp52 = $52 ; 1 refs; reads=1 writes=0; used at $DB97
Zp53 = $53 ; 1 refs; reads=1 writes=0; used at $DBCF
Zp55 = $55 ; 1 refs; reads=1 writes=0; used at $DBCB
Zp57 = $57 ; 2 refs; reads=1 writes=1; used at $D9DA, DBD5
Zp59 = $59 ; 5 refs; reads=3 writes=2; used at $D9FF, DA33, DA37, DBB9
Zp5A = $5A ; 19 refs; reads=12 writes=7; used at $CAA7, CAB3, CB20, CC87, +12 more
Zp5B = $5B ; 11 refs; reads=7 writes=4; used at $CB12, D419, D422, D42A, +6 more
Zp5C = $5C ; 11 refs; reads=6 writes=5; used at $CA6B, CA83, CA85, CAEA, +5 more
Zp5D = $5D ; 12 refs; reads=6 writes=6; used at $CA6F, CA7F, CADB, CAF2, +8 more
Zp5E = $5E ; 4 refs; reads=2 writes=2; used at $CA57, DA07, DA0D
Zp5F = $5F ; 7 refs; reads=3 writes=4; used at $CA8B, DA09, DA12, DA31, +1 more
Zp72 = $72 ; 5 refs; reads=2 writes=3; used at $CA51, CA63, CB16, CB1E
Zp73 = $73 ; 7 refs; reads=4 writes=3; used at $CA53, CA94, D17C, D3A4, +1 more
Zp74 = $74 ; 3 refs; reads=1 writes=2; used at $CA66, D3B5, D3BB
Zp7C = $7C ; 3 refs; reads=0 writes=3; used at $C933, CA03, D17A
Zp7D = $7D ; 4 refs; reads=1 writes=3; used at $C913, D16A, D174, D181
Zp7E = $7E ; 3 refs; reads=1 writes=2; used at $D14E, D166, D17F
Zp7F = $7F ; 2 refs; reads=1 writes=1; used at $D152, D160
Zp80 = $80 ; 7 refs; reads=5 writes=2; used at $C92C, CABC, D372, D382, +2 more
Zp81 = $81 ; 3 refs; reads=2 writes=1; used at $CBDC, CBEC, DB3C
Zp83 = $83 ; 4 refs; reads=2 writes=2; used at $CBB9, CBC5, CBD9
Zp84 = $84 ; 3 refs; reads=2 writes=1; used at $CABF, CBD7, DC29
Zp85 = $85 ; 2 refs; reads=1 writes=1; used at $CBC7, CBD5
Zp86 = $86 ; 6 refs; reads=2 writes=4; used at $CA15, CA9C, CAC6, CACF, +1 more
Zp89 = $89 ; 2 refs; reads=1 writes=1; used at $D66D
Zp8A = $8A ; 1 refs; reads=1 writes=0; used at $DB38
Zp8B = $8B ; 3 refs; reads=2 writes=1; used at $DB2F, DB31, DC27
Zp8C = $8C ; 3 refs; reads=2 writes=1; used at $DA95, DC33
Zp90 = $90 ; 14 refs; reads=9 writes=5; used at $CF8A, CF96, CF9D, CFA4, +7 more
Zp91 = $91 ; 5 refs; reads=3 writes=2; used at $CE7A, CEDB, CF0C, D08A, +1 more
Zp92 = $92 ; 5 refs; reads=3 writes=2; used at $CE82, CEF6, CF10, D08F, +1 more
Zp93 = $93 ; 2 refs; reads=1 writes=1; used at $CECE, CEE9
Zp94 = $94 ; 8 refs; reads=4 writes=4; used at $CDAB, CDBD, CE3B, CEFE, +3 more
Zp95 = $95 ; 2 refs; reads=1 writes=1; used at $CF43, CF47
Zp96 = $96 ; 4 refs; reads=2 writes=2; used at $CF4B, CF4E, CF50
Zp97 = $97 ; 5 refs; reads=1 writes=4; used at $C7FD, CF62, CF70, CF73, +1 more
Zp98 = $98 ; 3 refs; reads=1 writes=2; used at $CF5A, CF5E, CF68
Zp99 = $99 ; 9 refs; reads=4 writes=5; used at $C15C, CA00, CF6C, D3AC, +2 more
Zp9A = $9A ; 1 refs; reads=1 writes=0; used at $CA45
Zp9D = $9D ; 1 refs; reads=1 writes=0; used at $CA49
ZpA6 = $A6 ; 3 refs; reads=2 writes=1; used at $CD55, CD5B
ZpA7 = $A7 ; 4 refs; reads=2 writes=2; used at $CC19, CC27, CC37, CC45
ZpA8 = $A8 ; 2 refs; reads=1 writes=1; used at $C903, C911
ZpA9 = $A9 ; 2 refs; reads=1 writes=1; used at $D7CB, D7D9
ZpAA = $AA ; 4 refs; reads=3 writes=1; used at $D057, D317, D3A8, D7DB
ZpAB = $AB ; 6 refs; reads=4 writes=2; used at $CD38, CD51, D7C3, D7C9, +1 more
ZpAC = $AC ; 10 refs; reads=4 writes=6; used at $D320, D343, D70F, D718, +5 more
ZpAD = $AD ; 2 refs; reads=1 writes=1; used at $D73B, D77B
ZpAE = $AE ; 4 refs; reads=2 writes=2; used at $D6EB, D6F6, D707
ZpAF = $AF ; 10 refs; reads=5 writes=5; used at $D7FA, D811, D839, D83F, +3 more
ZpB0 = $B0 ; 13 refs; reads=9 writes=4; used at $CC29, CC32, CC47, CC50, +8 more
ZpB1 = $B1 ; 7 refs; reads=5 writes=2; used at $CC11, CC13, CD12, CD68, +2 more
ZpB2 = $B2 ; 8 refs; reads=6 writes=2; used at $CC52, CC5C, CC6C, CD43, +3 more
ZpB3 = $B3 ; 7 refs; reads=6 writes=1; used at $CD06, CDE2, CE0B, CE15, +3 more
ZpB4 = $B4 ; 5 refs; reads=3 writes=2; used at $C7BD, C7CC, C7E6, CCE7, +1 more
ZpB5 = $B5 ; 4 refs; reads=3 writes=1; used at $CC96, CC9F, CCBA, CCC2
ZpB6 = $B6 ; 2 refs; reads=1 writes=1; used at $CC8E, CC94
ZpC1 = $C1 ; 10 refs; reads=5 writes=5; used at $F9A3, F9B2, F9BD, F9BF, +4 more
ZpC2 = $C2 ; 4 refs; reads=2 writes=2; used at $FBCD, FBE9, FBEB
ZpC3 = $C3 ; 5 refs; reads=2 writes=3; used at $FB53, FB68, FB6A, FB72
ZpC5 = $C5 ; 3 refs; reads=1 writes=2; used at $FB57, FB64, FB81
ZpC6 = $C6 ; 3 refs; reads=2 writes=1; used at $C219, FA4C, FAD9
ZpC7 = $C7 ; 4 refs; reads=2 writes=2; used at $FC0E, FC11, FC13
ZpC8 = $C8 ; 6 refs; reads=1 writes=5; used at $F9D5, FB0D, FB23, FB34, +2 more
ZpC9 = $C9 ; 4 refs; reads=2 writes=2; used at $FB55, FB79, FB7B
ZpCD = $CD ; 2 refs; reads=2 writes=0; used at $CDD1, CDD3
ZpD0 = $D0 ; 6 refs; reads=3 writes=3; used at $F7E0, F823, F825, F932, +1 more
ZpD1 = $D1 ; 7 refs; reads=4 writes=3; used at $F7E2, F85B, F85D, F866, +1 more
ZpD2 = $D2 ; 4 refs; reads=2 writes=2; used at $F7E4, F892, F894
ZpD3 = $D3 ; 4 refs; reads=2 writes=2; used at $F7E6, F8E5, F8E7
ZpD4 = $D4 ; 2 refs; reads=1 writes=1; used at $F930, F93F
ZpD8 = $D8 ; 3 refs; reads=1 writes=2; used at $F7D4, F813
ZpD9 = $D9 ; 4 refs; reads=1 writes=3; used at $F7D6, F855, F87C
ZpDA = $DA ; 3 refs; reads=1 writes=2; used at $F7D8, F882
ZpDB = $DB ; 3 refs; reads=1 writes=2; used at $F7DA, F8D5
ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $F94D
ZpDD = $DD ; 1 refs; reads=1 writes=0; used at $F87A
ZpE0 = $E0 ; 6 refs; reads=3 writes=3; used at $F92A, F92E, F939, F93B
ZpE4 = $E4 ; 4 refs; reads=1 writes=3; used at $F9DF, FCB4, FCC3
ZpE5 = $E5 ; 2 refs; reads=1 writes=1; used at $F7A8, F947
ZpE6 = $E6 ; 5 refs; reads=2 writes=3; used at $F79F, F9DD, FA1A, FA22, +1 more
ZpE9 = $E9 ; 1 refs; reads=0 writes=1; used at $F7F1
ZpEA = $EA ; 2 refs; reads=1 writes=1; used at $F7F3, F875
ZpEB = $EB ; 5 refs; reads=2 writes=3; used at $FA48, FA4A, FA52, FAE8
ZpEC = $EC ; 4 refs; reads=2 writes=2; used at $FA7D, FA7F, FAEA
ZpED = $ED ; 3 refs; reads=1 writes=2; used at $FA54, FA65, FADB
ZpEE = $EE ; 4 refs; reads=2 writes=2; used at $FA94, FA96, FAEC
ZpEF = $EF ; 3 refs; reads=1 writes=2; used at $FA67, FA7A, FADD
ZpF0 = $F0 ; 6 refs; reads=4 writes=2; used at $D2AF, D2B1, F97F, F9FF, +2 more
ZpF1 = $F1 ; 4 refs; reads=2 writes=2; used at $D2D2, D2D4, F98D, FC48
ZpF2 = $F2 ; 6 refs; reads=4 writes=2; used at $D2F0, D2F2, F98F, FAFC, +2 more
ZpF3 = $F3 ; 33 refs; reads=18 writes=15; used at $F7DE, F9AA, F9B0, F9C5, +29 more
ZpF4 = $F4 ; 2 refs; reads=0 writes=2; used at $F784, F792
ZpF5 = $F5 ; 1 refs; reads=0 writes=1; used at $F788
ZpF6 = $F6 ; 2 refs; reads=1 writes=1; used at $F78A, F790
ZpF7 = $F7 ; 1 refs; reads=0 writes=1; used at $F78C
ZpF8 = $F8 ; 2 refs; reads=1 writes=1; used at $F7AD, F827
ZpF9 = $F9 ; 2 refs; reads=1 writes=1; used at $F7B2, F80F
ZpFA = $FA ; 3 refs; reads=2 writes=1; used at $F7B7, F85F, F86A
ZpFB = $FB ; 2 refs; reads=1 writes=1; used at $F7BC, F851
ZpFC = $FC ; 2 refs; reads=1 writes=1; used at $F7C1, F896
ZpFD = $FD ; 2 refs; reads=1 writes=1; used at $F7C6, F87E
ZpFE = $FE ; 2 refs; reads=1 writes=1; used at $F7CB, F8E9
ZpFF = $FF ; 2 refs; reads=1 writes=1; used at $F7D0, F8D1