Files
disasm/_wip/Popeye (JU) (PRG 1)/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

204 lines
18 KiB
PHP

; Popeye (JU) (PRG 1) 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 ; 122 refs; reads=44 writes=78; used at $C660, C663, C776, C885, +114 more
Zp01 = $01 ; 99 refs; reads=22 writes=77; used at $C65C, C668, C77A, C891, +89 more
Zp02 = $02 ; 101 refs; reads=27 writes=74; used at $C896, CD4D, CE3F, CEFF, +96 more
Zp03 = $03 ; 49 refs; reads=9 writes=40; used at $CE43, CF20, D07C, D0D8, +45 more
Zp04 = $04 ; 37 refs; reads=7 writes=30; used at $CE47, D0DC, D0F1, D821, +32 more
Zp05 = $05 ; 23 refs; reads=8 writes=15; used at $CE7E, CF56, D00A, D3CC, +18 more
Zp06 = $06 ; 23 refs; reads=12 writes=11; used at $CE89, D3D4, D406, D491, +18 more
Zp07 = $07 ; 8 refs; reads=4 writes=4; used at $E745, E8FE, E90C, EA26, +3 more
Zp08 = $08 ; 9 refs; reads=6 writes=3; used at $E2EB, E2FB, E31B, E339, +5 more
Zp09 = $09 ; 4 refs; reads=1 writes=3; used at $E2F2, EA09, EA0B, EA12
Zp0A = $0A ; 23 refs; reads=8 writes=15; used at $D591, D603, D777, D7B6, +18 more
Zp0B = $0B ; 40 refs; reads=22 writes=18; used at $D609, D630, D8EB, D8FF, +33 more
Zp0C = $0C ; 8 refs; reads=4 writes=4; used at $D579, D597, D5F1, D60D, +4 more
Zp0D = $0D ; 4 refs; reads=2 writes=2; used at $E33D, E3DE, E400, E40A
Zp0E = $0E ; 3 refs; reads=1 writes=2; used at $E2B6, E319, E38F
Zp0F = $0F ; 18 refs; reads=10 writes=8; used at $CE72, CE9D, CEA9, E0AA, +13 more
Zp10 = $10 ; 11 refs; reads=5 writes=6; used at $C677, C67E, C6DC, C701, +7 more
Zp11 = $11 ; 7 refs; reads=3 writes=4; used at $C70A, C8B4, C8BE, CCC9, +3 more
Zp12 = $12 ; 3 refs; reads=1 writes=2; used at $C6E3, DDC9, EF12
Zp13 = $13 ; 3 refs; reads=1 writes=2; used at $C6E8, DDD0, EF17
Zp14 = $14 ; 2 refs; reads=1 writes=1; used at $EEB8, EEBC
Zp15 = $15 ; 8 refs; reads=6 writes=2; used at $C7D3, CB96, CC8B, CCAB, +4 more
Zp16 = $16 ; 1 refs; reads=0 writes=1; used at $FFF0
Zp18 = $18 ; 11 refs; reads=8 writes=3; used at $C8F6, CBAD, D1D3, D22E, +6 more
Zp19 = $19 ; 4 refs; reads=2 writes=2; used at $C8F2, EE7E, EE8A
Zp1A = $1A ; 3 refs; reads=1 writes=2; used at $C7A9, CB54, CB60
Zp1B = $1B ; 5 refs; reads=2 writes=3; used at $CB5C, CB6F, CB73, CB7D
Zp1C = $1C ; 4 refs; reads=2 writes=2; used at $CB5A, CB78, CB7F
Zp1D = $1D ; 17 refs; reads=14 writes=3; used at $C7AB, C7CC, C806, C84E, +13 more
Zp1E = $1E ; 6 refs; reads=3 writes=3; used at $C7BA, C808, CB62, CB64, +1 more
Zp1F = $1F ; 4 refs; reads=1 writes=3; used at $C7D5, CCB3, CCB9, CCE7
Zp20 = $20 ; 1 refs; reads=0 writes=1; used at $F065
Zp21 = $21 ; 3 refs; reads=1 writes=2; used at $C870, CDB8, F069
Zp22 = $22 ; 3 refs; reads=1 writes=2; used at $C875, CDBD, F06D
Zp23 = $23 ; 3 refs; reads=1 writes=2; used at $C87A, CDC2, F071
Zp24 = $24 ; 8 refs; reads=6 writes=2; used at $C80A, EF47, EF6E, EFA2, +4 more
Zp25 = $25 ; 10 refs; reads=6 writes=4; used at $C80C, EF62, EF6B, EF89, +6 more
Zp26 = $26 ; 10 refs; reads=6 writes=4; used at $C80E, EF57, EF60, EF7E, +6 more
Zp27 = $27 ; 10 refs; reads=6 writes=4; used at $C810, EF4C, EF55, EF73, +6 more
Zp28 = $28 ; 1 refs; reads=0 writes=1; used at $C812
Zp29 = $29 ; 1 refs; reads=0 writes=1; used at $C814
Zp2A = $2A ; 1 refs; reads=0 writes=1; used at $C816
Zp2B = $2B ; 1 refs; reads=0 writes=1; used at $C818
Zp2C = $2C ; 3 refs; reads=1 writes=2; used at $C79D, CBCC, CBD7
Zp2D = $2D ; 2 refs; reads=1 writes=1; used at $C79F, CC79
Zp2E = $2E ; 4 refs; reads=2 writes=2; used at $C7A1, C9E7, CAB9, E7DD
Zp2F = $2F ; 1 refs; reads=0 writes=1; used at $C7A3
Zp30 = $30 ; 6 refs; reads=1 writes=5; used at $C732, C7A5, C82D, C9F5, +2 more
Zp31 = $31 ; 4 refs; reads=1 writes=3; used at $C73C, C7A7, CB07, CB2E
Zp32 = $32 ; 4 refs; reads=1 writes=3; used at $C7AD, C9DC, CAD5, CAFE
Zp33 = $33 ; 1 refs; reads=0 writes=1; used at $C7AF
Zp34 = $34 ; 3 refs; reads=1 writes=2; used at $EE64, EE6A
Zp35 = $35 ; 6 refs; reads=3 writes=3; used at $D1C8, D1CE, DE41, EE6E, +1 more
Zp36 = $36 ; 4 refs; reads=2 writes=2; used at $CD0D, CD1C, D223, D229
Zp38 = $38 ; 2 refs; reads=1 writes=1; used at $D240, D246
Zp39 = $39 ; 2 refs; reads=1 writes=1; used at $D286, D28C
Zp3A = $3A ; 3 refs; reads=1 writes=2; used at $E06F, E078, E7FF
Zp3B = $3B ; 4 refs; reads=1 writes=3; used at $D151, D364, DB1B, E454
Zp3C = $3C ; 2 refs; reads=1 writes=1; used at $D30E, D314
Zp3D = $3D ; 2 refs; reads=1 writes=1; used at $E494, E4AB
Zp3E = $3E ; 5 refs; reads=3 writes=2; used at $CC39, CC3F, D3DD, E1C0, +1 more
Zp3F = $3F ; 2 refs; reads=1 writes=1; used at $D527, E6F3
Zp40 = $40 ; 3 refs; reads=2 writes=1; used at $D49A, E4C0, E4E4
Zp41 = $41 ; 4 refs; reads=2 writes=2; used at $D5BB, D5C1, E69A, E6A0
Zp42 = $42 ; 2 refs; reads=1 writes=1; used at $E6F8, E705
Zp43 = $43 ; 9 refs; reads=8 writes=1; used at $C72A, C730, D2F4, D7AE, +5 more
Zp44 = $44 ; 2 refs; reads=1 writes=1; used at $DAAD, DACE
Zp45 = $45 ; 2 refs; reads=1 writes=1; used at $E206, E20C
Zp46 = $46 ; 4 refs; reads=1 writes=3; used at $C7B3, C7C4, C7C6, C7E6
Zp47 = $47 ; 2 refs; reads=1 writes=1; used at $CE59, CEA1
Zp49 = $49 ; 6 refs; reads=1 writes=5; used at $C866, C8AE, C980, CAF7, +2 more
Zp4A = $4A ; 5 refs; reads=3 writes=2; used at $CDF4, CE03, CE0F, CE27, +1 more
Zp4C = $4C ; 5 refs; reads=3 writes=2; used at $CEEA, D06C, DF39, E611, +1 more
Zp4D = $4D ; 3 refs; reads=2 writes=1; used at $E416, E423, E446
Zp4F = $4F ; 2 refs; reads=0 writes=2; used at $CC56, CD64
Zp56 = $56 ; 5 refs; reads=1 writes=4; used at $EA84, EA8D, EA9F, EAA5, +1 more
Zp57 = $57 ; 1 refs; reads=1 writes=0; used at $EAC1
Zp58 = $58 ; 1 refs; reads=1 writes=0; used at $EABB
Zp59 = $59 ; 1 refs; reads=1 writes=0; used at $EAD2
Zp5A = $5A ; 2 refs; reads=2 writes=0; used at $EAAC, EABD
Zp5B = $5B ; 2 refs; reads=2 writes=0; used at $EAC3, EAD4
Zp5C = $5C ; 1 refs; reads=1 writes=0; used at $EAB2
Zp5D = $5D ; 1 refs; reads=1 writes=0; used at $EAC9
Zp5E = $5E ; 10 refs; reads=8 writes=2; used at $CF62, D012, EA35, EA54, +5 more
Zp60 = $60 ; 4 refs; reads=1 writes=3; used at $C671, C746, C829, CDED
Zp61 = $61 ; 11 refs; reads=9 writes=2; used at $C784, C7ED, C7EF, C7F7, +6 more
Zp62 = $62 ; 5 refs; reads=1 writes=4; used at $C7E1, C7E8, C801, C84A, +1 more
Zp63 = $63 ; 8 refs; reads=1 writes=7; used at $C675, C74A, C82B, C9FA, +4 more
Zp64 = $64 ; 51 refs; reads=50 writes=1; used at $C944, C95A, C987, C9B7, +47 more
Zp65 = $65 ; 12 refs; reads=11 writes=1; used at $C947, CA0B, CA15, CAE6, +8 more
Zp66 = $66 ; 9 refs; reads=7 writes=2; used at $C833, C83D, C8E1, C969, +5 more
Zp67 = $67 ; 26 refs; reads=23 writes=3; used at $C84C, C8E8, C92F, C9AF, +22 more
Zp68 = $68 ; 4 refs; reads=2 writes=2; used at $C85A, CB00, CBFA
Zp69 = $69 ; 1 refs; reads=0 writes=1; used at $C85C
Zp6A = $6A ; 10 refs; reads=6 writes=4; used at $C81A, C8EA, C9B1, CB0B, +5 more
Zp6C = $6C ; 10 refs; reads=7 writes=3; used at $C822, CB1A, CBD9, CBE1, +4 more
Zp6D = $6D ; 1 refs; reads=0 writes=1; used at $C841
Zp6E = $6E ; 16 refs; reads=9 writes=7; used at $C81C, C8EC, CAE2, CAEA, +9 more
Zp6F = $6F ; 8 refs; reads=5 writes=3; used at $C8F0, D0C2, DAE2, DAF0, +4 more
Zp70 = $70 ; 3 refs; reads=1 writes=2; used at $C912, E6A2, E6B3
Zp71 = $71 ; 5 refs; reads=3 writes=2; used at $C76D, C796, C820, C8A5, +1 more
Zp72 = $72 ; 10 refs; reads=5 writes=5; used at $D147, D35E, D4AA, D4AC, +6 more
Zp73 = $73 ; 5 refs; reads=2 writes=3; used at $CBA0, D149, D360, D69B, +1 more
Zp74 = $74 ; 5 refs; reads=1 writes=4; used at $C82F, C8C0, C952, C984, +1 more
Zp75 = $75 ; 10 refs; reads=6 writes=4; used at $C9AD, C9B5, C9C3, C9CA, +5 more
Zp76 = $76 ; 8 refs; reads=4 writes=4; used at $CC24, CDF0, CDF8, CE17, +4 more
Zp77 = $77 ; 3 refs; reads=1 writes=2; used at $CE1A, DB50, DFD9
Zp78 = $78 ; 9 refs; reads=4 writes=5; used at $C94E, D10F, D337, D33F, +2 more
Zp79 = $79 ; 2 refs; reads=1 writes=1; used at $CC2F, E458
Zp7A = $7A ; 11 refs; reads=10 writes=1; used at $CB98, CD98, CDA0, D757, +7 more
Zp7B = $7B ; 13 refs; reads=12 writes=1; used at $C93F, D108, D1C6, D221, +9 more
Zp7C = $7C ; 19 refs; reads=14 writes=5; used at $C91E, CF6A, CF89, CFBA, +15 more
Zp7D = $7D ; 45 refs; reads=30 writes=15; used at $C90E, CD92, CDA7, CDAB, +41 more
Zp7E = $7E ; 7 refs; reads=4 writes=3; used at $D76B, D779, D7FA, D802, +2 more
Zp7F = $7F ; 18 refs; reads=11 writes=7; used at $D83F, D869, D889, D890, +11 more
Zp80 = $80 ; 4 refs; reads=2 writes=2; used at $D827, D83C, E7A3
Zp81 = $81 ; 9 refs; reads=7 writes=2; used at $D85D, D89C, D8CA, D944, +5 more
Zp82 = $82 ; 23 refs; reads=16 writes=7; used at $CA2B, D17C, D298, D2BB, +19 more
Zp83 = $83 ; 32 refs; reads=20 writes=12; used at $CA2F, D47D, D48C, D4A1, +21 more
Zp84 = $84 ; 9 refs; reads=5 writes=4; used at $D787, D78E, D7A1, D7A8, +5 more
Zp85 = $85 ; 2 refs; reads=1 writes=1; used at $DAB1, DAD0
Zp86 = $86 ; 3 refs; reads=1 writes=2; used at $D23C, D275, D281
Zp87 = $87 ; 1 refs; reads=0 writes=1; used at $C916
Zp88 = $88 ; 3 refs; reads=1 writes=2; used at $D8C8, D946, D9EB
Zp8A = $8A ; 1 refs; reads=0 writes=1; used at $C918
Zp8B = $8B ; 2 refs; reads=1 writes=1; used at $CC28, DB42
Zp8D = $8D ; 3 refs; reads=1 writes=2; used at $D79F, D7A4, E7B0
Zp8E = $8E ; 5 refs; reads=2 writes=3; used at $D6F7, D708, D716, D72F, +1 more
Zp8F = $8F ; 6 refs; reads=4 writes=2; used at $D969, D96B, D9A0, D9A9, +1 more
Zp90 = $90 ; 4 refs; reads=2 writes=2; used at $D87B, D87D, EC8C
Zp91 = $91 ; 4 refs; reads=3 writes=1; used at $DA30, DA5E, DAA0, ECC4
Zp92 = $92 ; 15 refs; reads=12 writes=3; used at $CEF0, D01A, D025, D045, +11 more
Zp93 = $93 ; 33 refs; reads=22 writes=11; used at $CA04, CAC4, CFFF, D130, +29 more
Zp94 = $94 ; 20 refs; reads=8 writes=12; used at $CE30, CFFA, D040, D04B, +16 more
Zp97 = $97 ; 53 refs; reads=36 writes=17; used at $CA38, CF28, D032, D180, +43 more
Zp98 = $98 ; 33 refs; reads=21 writes=12; used at $CA34, D038, D2CA, DBB6, +23 more
Zp99 = $99 ; 3 refs; reads=1 writes=2; used at $DC29, DC2E, E7D5
Zp9A = $9A ; 5 refs; reads=3 writes=2; used at $DC16, DC1D, DC2B, DC32, +1 more
Zp9C = $9C ; 27 refs; reads=17 writes=10; used at $DC67, DC73, DC80, DCBC, +17 more
Zp9D = $9D ; 8 refs; reads=5 writes=3; used at $DBFF, DC06, DC10, DC50, +3 more
Zp9E = $9E ; 11 refs; reads=6 writes=5; used at $DDF4, DE28, DE2A, DE2C, +3 more
Zp9F = $9F ; 3 refs; reads=1 writes=2; used at $DCC5, DCCB, DCF2
ZpA0 = $A0 ; 5 refs; reads=2 writes=3; used at $DED9, DEE0, DEFC, DF15
ZpA3 = $A3 ; 3 refs; reads=1 writes=2; used at $DC63, DC6F, E7CF
ZpA4 = $A4 ; 2 refs; reads=1 writes=1; used at $DFC1
ZpA5 = $A5 ; 3 refs; reads=2 writes=1; used at $DFFE, E033
ZpA6 = $A6 ; 3 refs; reads=1 writes=2; used at $DBCB, DBDC, E7D1
ZpA7 = $A7 ; 5 refs; reads=2 writes=3; used at $DCF5, EBF1, EC39, EC3E, +1 more
ZpA8 = $A8 ; 7 refs; reads=4 writes=3; used at $C922, DD71, DD73, DD7D, +2 more
ZpA9 = $A9 ; 10 refs; reads=7 writes=3; used at $C910, E0AC, E103, E131, +6 more
ZpAA = $AA ; 14 refs; reads=8 writes=6; used at $CA10, E05C, E0BA, E181, +6 more
ZpAB = $AB ; 7 refs; reads=4 writes=3; used at $E07C, E083, E14C, E153, +2 more
ZpAC = $AC ; 3 refs; reads=1 writes=2; used at $E06B, E080, E7F9
ZpAD = $AD ; 5 refs; reads=2 writes=3; used at $C91A, E159, E16A, E177, +1 more
ZpAE = $AE ; 4 refs; reads=2 writes=2; used at $E155, E15E, E163, E803
ZpAF = $AF ; 17 refs; reads=10 writes=7; used at $CA51, CA84, D054, D4B8, +11 more
ZpB0 = $B0 ; 14 refs; reads=7 writes=7; used at $CA55, CA8C, D058, DF79, +8 more
ZpB1 = $B1 ; 4 refs; reads=2 writes=2; used at $D46B, D485, E4BC, E4D7
ZpB2 = $B2 ; 4 refs; reads=2 writes=2; used at $CA4A, E4D0, E4D2, E878
ZpB3 = $B3 ; 5 refs; reads=2 writes=3; used at $D49C, E4E0, E673, E67B, +1 more
ZpB4 = $B4 ; 4 refs; reads=2 writes=2; used at $CF60, D4C9, DA07, E5FD
ZpB5 = $B5 ; 2 refs; reads=1 writes=1; used at $E460, E492
ZpB6 = $B6 ; 5 refs; reads=1 writes=4; used at $D0D2, D44D, DAC3, E066, +1 more
ZpB7 = $B7 ; 5 refs; reads=3 writes=2; used at $D433, E04C, E10B
ZpB8 = $B8 ; 3 refs; reads=2 writes=1; used at $E101, E2E3, E2EE
ZpC0 = $C0 ; 7 refs; reads=4 writes=3; used at $E105, E107, E356, E39D, +3 more
ZpC8 = $C8 ; 2 refs; reads=1 writes=1; used at $E32D, E332
ZpD0 = $D0 ; 11 refs; reads=5 writes=6; used at $E2D7, E39B, E3B6, E3BA, +4 more
ZpD8 = $D8 ; 7 refs; reads=4 writes=3; used at $E2D5, E36E, E393, E399, +2 more
ZpE0 = $E0 ; 18 refs; reads=16 writes=2; used at $CBA7, D0CA, D122, D162, +14 more
ZpE1 = $E1 ; 10 refs; reads=8 writes=2; used at $CD9E, D0AD, D37F, D46F, +6 more
ZpE2 = $E2 ; 6 refs; reads=3 writes=3; used at $D0CE, DE1D, DE21, DE24, +2 more
ZpE7 = $E7 ; 16 refs; reads=9 writes=7; used at $C94C, CAB1, D10D, D2E2, +10 more
ZpE8 = $E8 ; 13 refs; reads=5 writes=8; used at $CA88, CAAD, D0F8, D4D0, +9 more
ZpE9 = $E9 ; 3 refs; reads=1 writes=2; used at $D0FA, E751, E756
ZpEA = $EA ; 4 refs; reads=2 writes=2; used at $D0FC, E70F, E714
ZpEB = $EB ; 1 refs; reads=0 writes=1; used at $D0FE
ZpEC = $EC ; 6 refs; reads=2 writes=4; used at $D100, E56E, E598, E5B5, +1 more
ZpED = $ED ; 1 refs; reads=0 writes=1; used at $D102
ZpEE = $EE ; 1 refs; reads=0 writes=1; used at $D104
ZpEF = $EF ; 1 refs; reads=0 writes=1; used at $D106
ZpF0 = $F0 ; 11 refs; reads=2 writes=9; used at $F99B, F9B1, F9D1, F9DF, +7 more
ZpF1 = $F1 ; 27 refs; reads=10 writes=17; used at $F868, F876, F878, F8CC, +17 more
ZpF2 = $F2 ; 1 refs; reads=0 writes=1; used at $F8D0
ZpF3 = $F3 ; 8 refs; reads=3 writes=5; used at $FAB4, FAC2, FAC8, FB2D, +2 more
ZpF4 = $F4 ; 10 refs; reads=5 writes=5; used at $FAB7, FADB, FADD, FB1A, +5 more
ZpF5 = $F5 ; 11 refs; reads=6 writes=5; used at $FB7D, FB8E, FB90, FBA2, +4 more
ZpF6 = $F6 ; 4 refs; reads=1 writes=3; used at $FB63, FB6B, FB73, FC39
ZpF7 = $F7 ; 8 refs; reads=6 writes=2; used at $FB81, FB92, FBA6, FBE8, +4 more
ZpF8 = $F8 ; 2 refs; reads=0 writes=2; used at $FB85, FBED
ZpF9 = $F9 ; 10 refs; reads=5 writes=5; used at $F891, F898, FAF4, FBF2, +4 more
ZpFA = $FA ; 9 refs; reads=5 writes=4; used at $F8A1, FBF7, FC13, FC27, +3 more
ZpFB = $FB ; 10 refs; reads=1 writes=9; used at $CBDD, CCC2, D070, D14D, +6 more
ZpFC = $FC ; 11 refs; reads=5 writes=6; used at $CB15, CBB7, D176, D3F6, +7 more
ZpFD = $FD ; 7 refs; reads=1 writes=6; used at $C7C0, C9E2, C9F1, CB35, +3 more
ZpFE = $FE ; 12 refs; reads=4 writes=8; used at $DB54, DECF, DFD1, E5E6, +5 more
ZpFF = $FF ; 37 refs; reads=14 writes=23; used at $D134, D3E1, D4B0, D50E, +25 more