Files
disasm/Urban Champion (JU)/copilot/locals.inc
T
tmerritt 4b9cb7231c Urban Champion (JU): Promote to top-level with full-ROM build
- Moved from _wip/ to top-level
- Added header.s, chr.s (16-byte iNES header + 8KB CHR)
- Updated linker.cfg for HEADER/PRG/CHR segments
- Updated Makefile for full-ROM comparison (reconstructed.nes vs rom.nes)
- Fixed tool paths from ../../../_tools/ to ../../_tools/
- Added data_label_map.tsv for Pass 3 data table naming
- Full-ROM byte-identical verified: make passes, verify_pass1.py passes

Pass 1: Complete (CDL-verified, 33.9% code)
Pass 2: Complete (519 labels renamed, 10 zero-page aliases)
Pass 3: Complete (55 data tables named, 6 major structures documented)
Build: BYTE-IDENTICAL at full-ROM level
2026-10-18 20:10:03 -04:00

160 lines
13 KiB
PHP

; Urban Champion (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 ; 54 refs; reads=33 writes=21; used at $CA1D, CA21, CC72, CC97, +49 more
Zp01 = $01 ; 32 refs; reads=13 writes=19; used at $CA19, CA26, CC6E, CC99, +26 more
Zp02 = $02 ; 15 refs; reads=9 writes=6; used at $CD02, CD33, CD9A, CDB3, +11 more
Zp03 = $03 ; 10 refs; reads=3 writes=7; used at $CED1, CEDC, CEE7, CEF8, +6 more
Zp04 = $04 ; 5 refs; reads=2 writes=3; used at $CE67, CEA3, CEC6, E2D1
Zp05 = $05 ; 5 refs; reads=3 writes=2; used at $CE5F, CE7C, CEE9, CF10, +1 more
Zp06 = $06 ; 6 refs; reads=3 writes=3; used at $CE7E, CE8C, CEDE, CF05, +1 more
Zp07 = $07 ; 7 refs; reads=4 writes=3; used at $CED3, CEFA, CFA6, CFAD, +3 more
Zp08 = $08 ; 11 refs; reads=6 writes=5; used at $CA56, CD4D, CD54, CD88, +7 more
Zp09 = $09 ; 11 refs; reads=5 writes=6; used at $CA5A, CAC2, CAC6, CACE, +7 more
Zp0A = $0A ; 1 refs; reads=1 writes=0; used at $CE44
Zp0B = $0B ; 1 refs; reads=1 writes=0; used at $CE49
Zp0C = $0C ; 7 refs; reads=5 writes=2; used at $E236, E25A, E267, E2A5, +3 more
Zp0D = $0D ; 5 refs; reads=4 writes=1; used at $E238, E25C, E261, E2AE, +1 more
Zp0E = $0E ; 2 refs; reads=1 writes=1; used at $E26C, E294
Zp0F = $0F ; 7 refs; reads=3 writes=4; used at $E2A3, E2B3, E6E6, E6EB, +2 more
Zp10 = $10 ; 5 refs; reads=4 writes=1; used at $E5C2, E5CF, E5E8, E5ED, +1 more
Zp11 = $11 ; 1 refs; reads=0 writes=1; used at $E5C7
Zp12 = $12 ; 8 refs; reads=6 writes=2; used at $E5BA, E5C0, E5C5, E5EB, +4 more
Zp13 = $13 ; 2 refs; reads=0 writes=2; used at $E5BE, E5E5
Zp14 = $14 ; 10 refs; reads=6 writes=4; used at $CDE8, CDED, CDF1, CDF5, +6 more
Zp15 = $15 ; 4 refs; reads=0 writes=4; used at $CDEB, CDF3, E244, E722
Zp16 = $16 ; 5 refs; reads=4 writes=1; used at $CAE1, CBDA, CCFE, CD12, +1 more
Zp18 = $18 ; 10 refs; reads=5 writes=5; used at $CD22, CD24, CD29, CD2F, +6 more
Zp19 = $19 ; 5 refs; reads=1 writes=4; used at $DE0F, DECB, DF75, DF77, +1 more
Zp1A = $1A ; 3 refs; reads=1 writes=2; used at $E5CB, E5CD, E613
Zp1B = $1B ; 13 refs; reads=7 writes=6; used at $E62D, E63A, E63C, E65A, +5 more
Zp1C = $1C ; 3 refs; reads=1 writes=2; used at $CB40, CCBD
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $CB22, CCCB
Zp1E = $1E ; 1 refs; reads=1 writes=0; used at $D062
Zp1F = $1F ; 8 refs; reads=8 writes=0; used at $D313, DE03, DFBC, E0A6, +4 more
Zp20 = $20 ; 4 refs; reads=2 writes=2; used at $CA87, CAB9, D015, D059
Zp21 = $21 ; 3 refs; reads=1 writes=2; used at $CD41, CD82, CE57
Zp22 = $22 ; 3 refs; reads=1 writes=2; used at $CAA5, CAB7, D05B
Zp23 = $23 ; 2 refs; reads=1 writes=1; used at $CC85, CC95
Zp24 = $24 ; 5 refs; reads=2 writes=3; used at $CA42, CA69, CADA, CBE4, +1 more
Zp25 = $25 ; 8 refs; reads=3 writes=5; used at $CAF0, CB20, CB2A, CB3C, +4 more
Zp26 = $26 ; 5 refs; reads=4 writes=1; used at $CA6D, CBCB, CBF7, CC5C, +1 more
Zp27 = $27 ; 2 refs; reads=1 writes=1; used at $CCAF, CCB5
Zp28 = $28 ; 2 refs; reads=1 writes=1; used at $CDE0, CDF7
Zp29 = $29 ; 2 refs; reads=1 writes=1; used at $CDE2, CDF9
Zp2A = $2A ; 8 refs; reads=4 writes=4; used at $CB0F, CBF2, CCC6, CDCC, +3 more
Zp2B = $2B ; 6 refs; reads=4 writes=2; used at $CDD6, CDDA, D7EB, D7F1, +1 more
Zp2D = $2D ; 6 refs; reads=2 writes=4; used at $CBF4, CBFD, CC3C, D05E, +2 more
Zp2E = $2E ; 2 refs; reads=1 writes=1; used at $DD36, DD3B
Zp2F = $2F ; 2 refs; reads=1 writes=1; used at $CA82
Zp30 = $30 ; 4 refs; reads=2 writes=2; used at $D037, D044, D088, E5AC
Zp31 = $31 ; 9 refs; reads=5 writes=4; used at $D216, D248, D256, D2A7, +5 more
Zp32 = $32 ; 14 refs; reads=6 writes=8; used at $D30A, D35C, D3DB, D809, +9 more
Zp33 = $33 ; 10 refs; reads=6 writes=4; used at $D3F4, D3F6, E0C7, E1F1, +6 more
Zp34 = $34 ; 10 refs; reads=5 writes=5; used at $D7F5, D7F7, D801, D821, +6 more
Zp35 = $35 ; 10 refs; reads=3 writes=7; used at $D3E5, D7E7, D805, D80E, +6 more
Zp36 = $36 ; 2 refs; reads=2 writes=0; used at $E207, E5B0
Zp37 = $37 ; 1 refs; reads=1 writes=0; used at $E5D9
Zp38 = $38 ; 1 refs; reads=1 writes=0; used at $E64D
Zp3A = $3A ; 2 refs; reads=1 writes=1; used at $D3D5, E580
Zp3C = $3C ; 1 refs; reads=1 writes=0; used at $E649
Zp3D = $3D ; 3 refs; reads=2 writes=1; used at $CF2F, D31F
Zp3E = $3E ; 9 refs; reads=4 writes=5; used at $D25A, D3C5, D3E9, E49C, +4 more
Zp40 = $40 ; 3 refs; reads=1 writes=2; used at $DE1C, DED3, DFB9
Zp41 = $41 ; 6 refs; reads=3 writes=3; used at $D3FA, E464, E4E2, E4E6, +1 more
Zp42 = $42 ; 4 refs; reads=2 writes=2; used at $D400, E466, E508, E51C
Zp43 = $43 ; 9 refs; reads=6 writes=3; used at $D243, D2A9, D2AD, D3AA, +5 more
Zp44 = $44 ; 5 refs; reads=4 writes=1; used at $D2A0, D33C, D3C9, D42F, +1 more
Zp45 = $45 ; 3 refs; reads=2 writes=1; used at $D206, D20A
Zp46 = $46 ; 3 refs; reads=1 writes=2; used at $D202, D30E, D3DF
Zp47 = $47 ; 2 refs; reads=1 writes=1; used at $D3AE, D3B4
Zp49 = $49 ; 4 refs; reads=2 writes=2; used at $E410, E414, E438
Zp4A = $4A ; 2 refs; reads=1 writes=1; used at $E418, E456
Zp4C = $4C ; 2 refs; reads=1 writes=1; used at $D333, D455
Zp4D = $4D ; 1 refs; reads=1 writes=0; used at $DF97
Zp4F = $4F ; 2 refs; reads=1 writes=1; used at $D267, D295
Zp70 = $70 ; 4 refs; reads=2 writes=2; used at $E05D, E061, E066
Zp71 = $71 ; 1 refs; reads=1 writes=0; used at $DFC7
Zp80 = $80 ; 5 refs; reads=4 writes=1; used at $D18B, E316, E326, E338
Zp81 = $81 ; 8 refs; reads=6 writes=2; used at $D191, DBDD, E301, E312, +3 more
Zp82 = $82 ; 8 refs; reads=7 writes=1; used at $D7E1, DE11, E0CB, E2DC, +3 more
Zp84 = $84 ; 8 refs; reads=5 writes=3; used at $D7DB, DBC6, DBFA, DCFD, +3 more
Zp85 = $85 ; 3 refs; reads=3 writes=0; used at $C5BD, D174, DB86
Zp86 = $86 ; 2 refs; reads=1 writes=1; used at $CA97, D184
Zp87 = $87 ; 5 refs; reads=3 writes=2; used at $D1B4, D1B8, E223, E233
Zp88 = $88 ; 11 refs; reads=8 writes=3; used at $D1EE, D261, D291, D304, +7 more
Zp89 = $89 ; 22 refs; reads=19 writes=3; used at $D1C6, D2B8, D2BD, D2CC, +18 more
Zp8A = $8A ; 1 refs; reads=1 writes=0; used at $DAA9
Zp8B = $8B ; 3 refs; reads=1 writes=2; used at $D1CA, D1F1, E5A0
Zp8D = $8D ; 1 refs; reads=0 writes=1; used at $DECF
Zp8E = $8E ; 2 refs; reads=1 writes=1; used at $DF53
Zp8F = $8F ; 2 refs; reads=1 writes=1; used at $DFD8, DFE2
Zp90 = $90 ; 5 refs; reads=3 writes=2; used at $DCF9, DD00, DD38, DD7A
Zp93 = $93 ; 4 refs; reads=4 writes=0; used at $D2E2, DBBF, E076, E2D8
Zp94 = $94 ; 2 refs; reads=2 writes=0; used at $DB5D, DBB4
Zp95 = $95 ; 2 refs; reads=2 writes=0; used at $DB62, DBB9
Zp96 = $96 ; 7 refs; reads=3 writes=4; used at $CB26, DB48, DB54, DB57, +1 more
Zp97 = $97 ; 3 refs; reads=1 writes=2; used at $DB5B, DB92
ZpA2 = $A2 ; 2 refs; reads=1 writes=1; used at $D030, D040
ZpA3 = $A3 ; 4 refs; reads=2 writes=2; used at $E7FE, E806, E80E
ZpA4 = $A4 ; 1 refs; reads=1 writes=0; used at $CC46
ZpA5 = $A5 ; 4 refs; reads=2 writes=2; used at $CA44, CC4B, E08C
ZpAB = $AB ; 1 refs; reads=1 writes=0; used at $E08A
ZpAC = $AC ; 1 refs; reads=1 writes=0; used at $DECD
ZpB1 = $B1 ; 2 refs; reads=1 writes=1; used at $E5FE, E66A
ZpB2 = $B2 ; 2 refs; reads=1 writes=1; used at $E611, E6BF
ZpB3 = $B3 ; 5 refs; reads=3 writes=2; used at $E64B, E651, E655, E680, +1 more
ZpB4 = $B4 ; 14 refs; reads=9 writes=5; used at $E5B2, E5D5, E66F, E674, +6 more
ZpB9 = $B9 ; 1 refs; reads=0 writes=1; used at $CBC7
ZpBA = $BA ; 1 refs; reads=0 writes=1; used at $CBC9
ZpC0 = $C0 ; 8 refs; reads=5 writes=3; used at $CBE8, CC29, CC2F, CC42, +4 more
ZpC1 = $C1 ; 2 refs; reads=2 writes=0; used at $E73E, E749
ZpC3 = $C3 ; 3 refs; reads=2 writes=1; used at $CECA, CEF1, CF27
ZpC4 = $C4 ; 6 refs; reads=3 writes=3; used at $CEE5, CEEE, CF0C, CF15, +2 more
ZpC5 = $C5 ; 7 refs; reads=4 writes=3; used at $CEDA, CEE3, CF01, CF0A, +3 more
ZpC6 = $C6 ; 8 refs; reads=5 writes=3; used at $CECF, CED8, CEF6, CEFF, +4 more
ZpCC = $CC ; 2 refs; reads=1 writes=1; used at $D2E6, D338
ZpCD = $CD ; 1 refs; reads=0 writes=1; used at $E280
ZpCE = $CE ; 1 refs; reads=0 writes=1; used at $E27A
ZpCF = $CF ; 2 refs; reads=1 writes=1; used at $E272, E29C
ZpD0 = $D0 ; 8 refs; reads=4 writes=4; used at $C1F5, C221, C223, C323, +2 more
ZpD1 = $D1 ; 4 refs; reads=2 writes=2; used at $C1F7, C25F, C261
ZpD2 = $D2 ; 4 refs; reads=2 writes=2; used at $C1F9, C29A, C29C
ZpD3 = $D3 ; 4 refs; reads=2 writes=2; used at $C1FB, C2F0, C2F2
ZpD4 = $D4 ; 2 refs; reads=1 writes=1; used at $C321, C330
ZpD8 = $D8 ; 3 refs; reads=1 writes=2; used at $C1EB, C213
ZpD9 = $D9 ; 3 refs; reads=1 writes=2; used at $C1ED, C251
ZpDA = $DA ; 3 refs; reads=1 writes=2; used at $C1EF, C28C
ZpDB = $DB ; 3 refs; reads=1 writes=2; used at $C1F1, C2E2
ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $C02F
ZpE0 = $E0 ; 6 refs; reads=3 writes=3; used at $C31B, C31F, C32A, C32C
ZpE4 = $E4 ; 2 refs; reads=0 writes=2; used at $C360, C649
ZpE5 = $E5 ; 2 refs; reads=1 writes=1; used at $C029, C1BF
ZpE6 = $E6 ; 10 refs; reads=7 writes=3; used at $C04E, C1B6, C35E, C3B3, +6 more
ZpE9 = $E9 ; 1 refs; reads=0 writes=1; used at $C05E
ZpEA = $EA ; 1 refs; reads=0 writes=1; used at $C060
ZpEB = $EB ; 4 refs; reads=0 writes=4; used at $C21F, C25D, C294, C2EA
ZpEC = $EC ; 1 refs; reads=0 writes=1; used at $C067
ZpED = $ED ; 4 refs; reads=0 writes=4; used at $C21B, C259, C298, C2EE
ZpEE = $EE ; 1 refs; reads=0 writes=1; used at $C065
ZpEF = $EF ; 19 refs; reads=11 writes=8; used at $C074, C078, C095, C099, +15 more
ZpF0 = $F0 ; 7 refs; reads=3 writes=4; used at $C0BD, C34B, C3C9, CC31, +3 more
ZpF1 = $F1 ; 9 refs; reads=5 writes=4; used at $C0B1, C34D, C3C3, C465, +5 more
ZpF2 = $F2 ; 6 refs; reads=2 writes=4; used at $C34F, C5D1, CC35, D19F, +2 more
ZpF3 = $F3 ; 15 refs; reads=8 writes=7; used at $C06E, C072, C0C8, C0CF, +11 more
ZpF4 = $F4 ; 2 refs; reads=0 writes=2; used at $C19B, C1A9
ZpF5 = $F5 ; 1 refs; reads=0 writes=1; used at $C19F
ZpF6 = $F6 ; 2 refs; reads=1 writes=1; used at $C1A1, C1A7
ZpF7 = $F7 ; 1 refs; reads=0 writes=1; used at $C1A3
ZpF8 = $F8 ; 2 refs; reads=1 writes=1; used at $C1C4, C225
ZpF9 = $F9 ; 2 refs; reads=1 writes=1; used at $C1C9, C20F
ZpFA = $FA ; 2 refs; reads=1 writes=1; used at $C1CE, C263
ZpFB = $FB ; 2 refs; reads=1 writes=1; used at $C1D3, C24D
ZpFC = $FC ; 2 refs; reads=1 writes=1; used at $C1D8, C29E
ZpFD = $FD ; 2 refs; reads=1 writes=1; used at $C1DD, C288
ZpFE = $FE ; 2 refs; reads=1 writes=1; used at $C1E2, C2F4
ZpFF = $FF ; 2 refs; reads=1 writes=1; used at $C1E7, C2DE