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)
This commit is contained in:
tmerritt committed 2026-10-18 20:52:49 -04:00
1 parent 4b9cb7231c
commit 2ae09f78ce
58 files changed
+204873 -401

No files matched your search

+180 -2
View File
@@ -1,2 +1,180 @@
; Duck Hunt (JUE) zero-page aliases (declared during Pass 2).
; These intentionally conservative names will be refined in Passes 2 and 3.
; Duck Hunt (JUE) 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 ; 24 refs; reads=13 writes=11; used at $C01A, C01E, C236, C25B, +20 more
Zp01 = $01 ; 21 refs; reads=8 writes=13; used at $C016, C023, C232, C25D, +15 more
Zp02 = $02 ; 13 refs; reads=8 writes=5; used at $C318, C331, C3D4, C3DA, +9 more
Zp03 = $03 ; 11 refs; reads=3 writes=8; used at $C44A, C455, C460, C471, +7 more
Zp04 = $04 ; 5 refs; reads=2 writes=3; used at $C3E0, C41C, C43F, CF88
Zp05 = $05 ; 5 refs; reads=3 writes=2; used at $C3D8, C3F5, C462, C489, +1 more
Zp06 = $06 ; 6 refs; reads=3 writes=3; used at $C3F7, C405, C457, C47E, +1 more
Zp07 = $07 ; 5 refs; reads=3 writes=2; used at $C44C, C473, C58D, C594, +1 more
Zp08 = $08 ; 7 refs; reads=3 writes=4; used at $C04E, C2CB, C2D2, C306, +3 more
Zp09 = $09 ; 12 refs; reads=6 writes=6; used at $C052, C0E9, C0F0, C0FF, +8 more
Zp0A = $0A ; 3 refs; reads=1 writes=2; used at $C3C2, D19B, D23E
Zp0B = $0B ; 1 refs; reads=1 writes=0; used at $C3C7
Zp0C = $0C ; 23 refs; reads=10 writes=13; used at $C67C, C6D6, C6DA, C9C3, +19 more
Zp0D = $0D ; 9 refs; reads=5 writes=4; used at $C69E, C6A9, D4B4, D7CE, +5 more
Zp0E = $0E ; 11 refs; reads=5 writes=6; used at $C6A6, C6BB, CB09, CB4B, +5 more
Zp0F = $0F ; 11 refs; reads=3 writes=8; used at $CAEF, CB0B, D117, D11C, +6 more
Zp10 = $10 ; 10 refs; reads=7 writes=3; used at $C683, C68E, C6A1, D02D, +6 more
Zp11 = $11 ; 4 refs; reads=1 writes=3; used at $C688, D032, D8DD, D8F6
Zp12 = $12 ; 10 refs; reads=7 writes=3; used at $D025, D02B, D030, D056, +6 more
Zp13 = $13 ; 4 refs; reads=1 writes=3; used at $D029, D050, D855, D88F
Zp14 = $14 ; 10 refs; reads=6 writes=4; used at $C366, C36B, C36F, C373, +6 more
Zp15 = $15 ; 8 refs; reads=2 writes=6; used at $C369, C371, D47A, D841, +3 more
Zp16 = $16 ; 4 refs; reads=3 writes=1; used at $C0BA, C16E, C2B1, CA76
Zp17 = $17 ; 1 refs; reads=1 writes=0; used at $CA7C
Zp1A = $1A ; 3 refs; reads=1 writes=2; used at $D036, D038, D072
Zp1B = $1B ; 14 refs; reads=7 writes=7; used at $D08C, D099, D09B, D0B9, +6 more
Zp1C = $1C ; 3 refs; reads=1 writes=2; used at $C10E, C271
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $C0F4, C27F
Zp1E = $1E ; 2 refs; reads=1 writes=1; used at $C629, C62E
Zp1F = $1F ; 8 refs; reads=8 writes=0; used at $C6CE, C93F, C99A, C9F4, +4 more
Zp20 = $20 ; 6 refs; reads=4 writes=2; used at $C07C, C0AA, C5DC, C620, +2 more
Zp21 = $21 ; 3 refs; reads=1 writes=2; used at $C2BF, C300, C3D0
Zp22 = $22 ; 3 refs; reads=1 writes=2; used at $C096, C0A8, C622
Zp23 = $23 ; 11 refs; reads=1 writes=10; used at $C249, C259, C845, C8E8, +7 more
Zp24 = $24 ; 5 refs; reads=3 writes=2; used at $C03F, C061, C0B3, C178, +1 more
Zp25 = $25 ; 13 refs; reads=3 writes=10; used at $C0C9, C0F2, C0F8, C10A, +9 more
Zp26 = $26 ; 4 refs; reads=4 writes=0; used at $C065, C159, C189, C222
Zp27 = $27 ; 7 refs; reads=3 writes=4; used at $C263, C269, CFA9, D1EF, +3 more
Zp28 = $28 ; 2 refs; reads=1 writes=1; used at $C35E, C375
Zp29 = $29 ; 2 refs; reads=1 writes=1; used at $C360, C377
Zp2A = $2A ; 6 refs; reads=2 writes=4; used at $C0E1, C184, C27A, C34A, +1 more
Zp2B = $2B ; 8 refs; reads=4 writes=4; used at $C354, C358, C7FB, C80F, +3 more
Zp2D = $2D ; 6 refs; reads=2 writes=4; used at $C186, C1B9, C217, C220, +2 more
Zp2F = $2F ; 5 refs; reads=4 writes=1; used at $C077, CA19, CA67, CABF
Zp30 = $30 ; 2 refs; reads=1 writes=1; used at $C5FE, C60B
Zp31 = $31 ; 19 refs; reads=8 writes=11; used at $C902, CA16, CB69, CC8D, +11 more
Zp32 = $32 ; 21 refs; reads=13 writes=8; used at $CA49, CA8D, CAD1, CAD7, +15 more
Zp33 = $33 ; 19 refs; reads=10 writes=9; used at $C976, CA99, CAE3, CAE9, +13 more
Zp34 = $34 ; 10 refs; reads=7 writes=3; used at $CB83, CB9A, CBA6, CEBD, +4 more
Zp35 = $35 ; 3 refs; reads=1 writes=2; used at $CECC, D01F, D725
Zp36 = $36 ; 6 refs; reads=5 writes=1; used at $CC8F, D01B, D795, D7C9, +2 more
Zp37 = $37 ; 2 refs; reads=1 writes=1; used at $D044, D818
Zp38 = $38 ; 2 refs; reads=1 writes=1; used at $CE34, D0AC
Zp39 = $39 ; 2 refs; reads=1 writes=1; used at $CF7F, D00F
Zp3A = $3A ; 2 refs; reads=0 writes=2; used at $C9E2, D745
Zp3B = $3B ; 2 refs; reads=0 writes=2; used at $CA12, D6C3
Zp3C = $3C ; 2 refs; reads=1 writes=1; used at $C980, D0A8
Zp3F = $3F ; 3 refs; reads=2 writes=1; used at $C996, C9CA, CF79
Zp40 = $40 ; 8 refs; reads=6 writes=2; used at $C64F, CE58, CE9F, CEBB, +4 more
Zp41 = $41 ; 3 refs; reads=1 writes=2; used at $CF0D, D8BC, D8BE
Zp42 = $42 ; 11 refs; reads=3 writes=8; used at $C9E8, CB6D, CE4D, CE51, +6 more
Zp43 = $43 ; 10 refs; reads=5 writes=5; used at $CE56, CE5E, CE72, CECF, +5 more
Zp44 = $44 ; 12 refs; reads=7 writes=5; used at $C95F, C971, CB5F, CB66, +8 more
Zp45 = $45 ; 1 refs; reads=0 writes=1; used at $C964
Zp46 = $46 ; 12 refs; reads=5 writes=7; used at $C9E6, CA37, CB59, CB70, +6 more
Zp47 = $47 ; 7 refs; reads=2 writes=5; used at $C974, CB5D, CB75, CE92, +3 more
Zp48 = $48 ; 5 refs; reads=4 writes=1; used at $CADB, CAF1, CB77, CB85, +1 more
Zp49 = $49 ; 7 refs; reads=5 writes=2; used at $CB7D, CBD7, CBFF, D6E4, +3 more
Zp4A = $4A ; 3 refs; reads=1 writes=2; used at $CB7F, CBE1, D6AE
Zp4B = $4B ; 5 refs; reads=3 writes=2; used at $C9F0, CA45, CA51, CBE9, +1 more
Zp4C = $4C ; 7 refs; reads=3 writes=4; used at $CA08, CA55, CA5D, CA6C, +2 more
Zp4D = $4D ; 5 refs; reads=4 writes=1; used at $CC3D, CC41, D82F, D843
Zp4E = $4E ; 6 refs; reads=4 writes=2; used at $C9EA, CA2D, CA33, D70A, +2 more
Zp4F = $4F ; 1 refs; reads=0 writes=1; used at $C9EC
Zp50 = $50 ; 6 refs; reads=4 writes=2; used at $D799, D93C, D942, D9B5, +1 more
Zp51 = $51 ; 1 refs; reads=1 writes=0; used at $D955
Zp52 = $52 ; 3 refs; reads=2 writes=1; used at $D65E, D9C7
Zp53 = $53 ; 7 refs; reads=4 writes=3; used at $D7A7, D977, D97D, D9C9, +2 more
Zp54 = $54 ; 3 refs; reads=1 writes=2; used at $D7A2, D7C0, D9BC
Zp55 = $55 ; 3 refs; reads=1 writes=2; used at $D7B0, D7C2, D9D7
Zp56 = $56 ; 1 refs; reads=0 writes=1; used at $D72C
Zp57 = $57 ; 5 refs; reads=4 writes=1; used at $D7B5, D93A, D953, D9F6
Zp58 = $58 ; 4 refs; reads=2 writes=2; used at $D6D0, D6D5, D6D9
Zp5E = $5E ; 4 refs; reads=1 writes=3; used at $C9D0, D6FB, D81B, D82B
Zp5F = $5F ; 3 refs; reads=1 writes=2; used at $D6C9, D6EE, D6F2
Zp60 = $60 ; 4 refs; reads=4 writes=0; used at $D7D8, D7F3, D965, D9A0
Zp61 = $61 ; 4 refs; reads=3 writes=1; used at $D969, D9A4, DAB6, DAC2
Zp80 = $80 ; 5 refs; reads=3 writes=2; used at $CFC5, CFC9, CFFB, D018
Zp81 = $81 ; 3 refs; reads=1 writes=2; used at $CFCF, CFD3, D006
Zp82 = $82 ; 3 refs; reads=1 writes=2; used at $CFD1, CFED, D00D
Zp83 = $83 ; 2 refs; reads=1 writes=1; used at $CFDB, D014
Zp91 = $91 ; 1 refs; reads=1 writes=0; used at $D880
Zp92 = $92 ; 1 refs; reads=1 writes=0; used at $D882
Zp93 = $93 ; 5 refs; reads=3 writes=2; used at $D874, D87E, D914, D92A
Zp94 = $94 ; 3 refs; reads=2 writes=1; used at $D87C, D919, D92F
Zp95 = $95 ; 7 refs; reads=3 writes=4; used at $D8DF, D8E9, D90D, D921, +1 more
Zp96 = $96 ; 12 refs; reads=6 writes=6; used at $D8E3, D8EE, D8F2, D8FD, +6 more
Zp97 = $97 ; 12 refs; reads=6 writes=6; used at $D8E5, D8F4, D8F8, D8FB, +6 more
Zp98 = $98 ; 1 refs; reads=1 writes=0; used at $C984
Zp99 = $99 ; 3 refs; reads=2 writes=1; used at $C97A, C982
Zp9A = $9A ; 4 refs; reads=3 writes=1; used at $D430, D43A, D461
Zp9B = $9B ; 4 refs; reads=3 writes=1; used at $D3D6, D3FB, D403
Zp9C = $9C ; 4 refs; reads=2 writes=2; used at $C946, C958, D68E, D697
Zp9D = $9D ; 5 refs; reads=1 writes=4; used at $C7FF, C812, C81A, CD0B, +1 more
Zp9F = $9F ; 3 refs; reads=2 writes=1; used at $C8B8, C8C5, CA22
ZpA1 = $A1 ; 8 refs; reads=3 writes=5; used at $C897, C8A9, CC9B, CE74, +2 more
ZpA2 = $A2 ; 2 refs; reads=1 writes=1; used at $C5F7, C607
ZpA6 = $A6 ; 10 refs; reads=6 writes=4; used at $C8FB, C8FF, C936, C96D, +4 more
ZpA7 = $A7 ; 2 refs; reads=1 writes=1; used at $D805, D80B
ZpA8 = $A8 ; 1 refs; reads=1 writes=0; used at $D6F5
ZpA9 = $A9 ; 2 refs; reads=0 writes=2; used at $CE20, D642
ZpAA = $AA ; 2 refs; reads=1 writes=1; used at $D246
ZpAD = $AD ; 2 refs; reads=1 writes=1; used at $C6C4, C6CA
ZpAE = $AE ; 5 refs; reads=3 writes=2; used at $C9F2, CA70, CA86, CBED, +1 more
ZpAF = $AF ; 4 refs; reads=1 writes=3; used at $CA0C, CA84, CAA8, CAAC
ZpB0 = $B0 ; 9 refs; reads=5 writes=4; used at $D197, D1A5, D1B7, D1D8, +5 more
ZpB1 = $B1 ; 4 refs; reads=2 writes=2; used at $C696, D05E, D0C1, D295
ZpB2 = $B2 ; 4 refs; reads=2 writes=2; used at $C6A4, D070, D0FF, D29A
ZpB3 = $B3 ; 5 refs; reads=3 writes=2; used at $D0AA, D0B0, D0B4, D0D7, +1 more
ZpB4 = $B4 ; 17 refs; reads=10 writes=7; used at $D01D, D040, D0C6, D0CB, +9 more
ZpB5 = $B5 ; 4 refs; reads=1 writes=3; used at $D15C, D166, D169, D179
ZpB6 = $B6 ; 3 refs; reads=1 writes=2; used at $D14F, D153, D159
ZpB7 = $B7 ; 2 refs; reads=1 writes=1; used at $D136, D13A
ZpB8 = $B8 ; 4 refs; reads=2 writes=2; used at $D13E, D141, D143
ZpB9 = $B9 ; 8 refs; reads=4 writes=4; used at $C155, C8B4, C8F6, C932, +4 more
ZpBA = $BA ; 9 refs; reads=7 writes=2; used at $C157, C6FD, C8BE, CA29, +4 more
ZpBB = $BB ; 8 refs; reads=6 writes=2; used at $CA0E, CA10, CE18, D636, +2 more
ZpBC = $BC ; 6 refs; reads=4 writes=2; used at $C8C7, CA14, D612, D6C5
ZpBD = $BD ; 4 refs; reads=3 writes=1; used at $C8DD, CF96, D248
ZpBE = $BE ; 3 refs; reads=1 writes=2; used at $C6F5, C6FB, D175
ZpC1 = $C1 ; 9 refs; reads=9 writes=0; used at $C998, C9BB, C9D2, C9F8, +5 more
ZpC3 = $C3 ; 6 refs; reads=5 writes=1; used at $C443, C46A, C49E, C4A2, +2 more
ZpC4 = $C4 ; 7 refs; reads=4 writes=3; used at $C45E, C467, C485, C48E, +3 more
ZpC5 = $C5 ; 7 refs; reads=4 writes=3; used at $C453, C45C, C47A, C483, +3 more
ZpC6 = $C6 ; 7 refs; reads=4 writes=3; used at $C448, C451, C46F, C478, +3 more
ZpD0 = $D0 ; 6 refs; reads=3 writes=3; used at $F3C4, F423, F425, F532, +1 more
ZpD1 = $D1 ; 7 refs; reads=4 writes=3; used at $F3C6, F45B, F45D, F466, +1 more
ZpD2 = $D2 ; 4 refs; reads=2 writes=2; used at $F3C8, F492, F494
ZpD3 = $D3 ; 4 refs; reads=2 writes=2; used at $F3CA, F4E5, F4E7
ZpD4 = $D4 ; 2 refs; reads=1 writes=1; used at $F530, F53F
ZpD5 = $D5 ; 2 refs; reads=1 writes=1; used at $D65C
ZpD8 = $D8 ; 3 refs; reads=1 writes=2; used at $F3B8, F413
ZpD9 = $D9 ; 4 refs; reads=1 writes=3; used at $F3BA, F455, F47C
ZpDA = $DA ; 4 refs; reads=2 writes=2; used at $DA03, F3BC, F482
ZpDB = $DB ; 3 refs; reads=1 writes=2; used at $F3BE, F4D5
ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $F54D
ZpDD = $DD ; 1 refs; reads=1 writes=0; used at $F47A
ZpE0 = $E0 ; 7 refs; reads=4 writes=3; used at $C228, F52A, F52E, F539, +1 more
ZpE4 = $E4 ; 2 refs; reads=0 writes=2; used at $F694, F83B
ZpE5 = $E5 ; 2 refs; reads=1 writes=1; used at $F38C, F547
ZpE6 = $E6 ; 3 refs; reads=1 writes=2; used at $F383, F692, F7F5
ZpE9 = $E9 ; 1 refs; reads=0 writes=1; used at $F3D8
ZpEA = $EA ; 2 refs; reads=1 writes=1; used at $F3DA, F475
ZpEB = $EB ; 9 refs; reads=5 writes=4; used at $F5C8, F5E7, F5E9, F6AB, +3 more
ZpEC = $EC ; 14 refs; reads=6 writes=8; used at $F5D4, F5EF, F5F1, F5F3, +6 more
ZpED = $ED ; 10 refs; reads=6 writes=4; used at $F5CA, F602, F611, F613, +4 more
ZpEE = $EE ; 10 refs; reads=4 writes=6; used at $F5CC, F5DB, F5DD, F5E5, +4 more
ZpEF = $EF ; 8 refs; reads=4 writes=4; used at $F5D0, F5EB, F5FB, F600, +3 more
ZpF0 = $F0 ; 5 refs; reads=3 writes=2; used at $D500, D502, F58A, F621, +1 more
ZpF1 = $F1 ; 4 refs; reads=2 writes=2; used at $D523, D525, F58C, F7CC
ZpF2 = $F2 ; 5 refs; reads=3 writes=2; used at $D546, D548, F58E, F591, +1 more
ZpF3 = $F3 ; 20 refs; reads=9 writes=11; used at $F3C2, F5D8, F61E, F62F, +16 more
ZpF4 = $F4 ; 2 refs; reads=0 writes=2; used at $F36C, F37A
ZpF5 = $F5 ; 1 refs; reads=0 writes=1; used at $F370
ZpF6 = $F6 ; 2 refs; reads=1 writes=1; used at $F372, F378
ZpF7 = $F7 ; 1 refs; reads=0 writes=1; used at $F374
ZpF8 = $F8 ; 2 refs; reads=1 writes=1; used at $F391, F427
ZpF9 = $F9 ; 2 refs; reads=1 writes=1; used at $F396, F40F
ZpFA = $FA ; 3 refs; reads=2 writes=1; used at $F39B, F45F, F46A
ZpFB = $FB ; 2 refs; reads=1 writes=1; used at $F3A0, F451
ZpFC = $FC ; 2 refs; reads=1 writes=1; used at $F3A5, F496
ZpFD = $FD ; 2 refs; reads=1 writes=1; used at $F3AA, F47E
ZpFE = $FE ; 2 refs; reads=1 writes=1; used at $F3AF, F4E9
ZpFF = $FF ; 2 refs; reads=1 writes=1; used at $F3B4, F4D1