Pass 1 _wip: additional 11 projects + Circus Charlie reset, byte-identical builds verified

This commit is contained in:
tmerritt committed 2026-10-21 12:50:12 -04:00
1 parent b08d65877f
commit d7eca1e362
20 files changed
+86595 -240

No files matched your search

+4 -6
View File
@@ -2,13 +2,11 @@
## Status
**Pass 1.** The project builds and verifies byte-identical to the
original ROM (with branch-over-data adjustments). `prg.s` is a traced
disassembly classifying bytes as reachable code or data, with every
instruction carrying a trailing audit comment. Unreached bytes remain
as explicit `.byte` blocks; no ROM byte is deleted or reformatted.
**Pass 0 skeleton.** The project builds and verifies byte-identical to the
original ROM, but no disassembly exists yet: `prg.s` is a single
`.incbin "prg.bin"` of the PRG image.
`make` assembles `header.s`, `prg.s`, `chr.s`, links them with `ld65` and compares the
`make` assembles `header.s`, `prg.s`, `chr.s`, `trailer.s`, links them with `ld65` and compares the
result against `rom.nes`:
```
@@ -1,4 +1,30 @@
; Zero-page aliases for this project.
; Empty at Pass 0. Pass 1+ adds proven semantic names here;
; addresses whose role is not yet determined keep the neutral ZpXX
; form.
; Super Mario Bros (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 ; 14 refs; reads=9 writes=5; used at $80BC, 8124, 812B, 81CB, +10 more
Zp01 = $01 ; 3 refs; reads=1 writes=2; used at $80C1, 8EC9, 8ECB
Zp04 = $04 ; 3 refs; reads=2 writes=1; used at $8E07, 8E0D, 8E12
Zp05 = $05 ; 1 refs; reads=0 writes=1; used at $8E0A
Zp06 = $06 ; 3 refs; reads=0 writes=3; used at $8E0F, 90D0, 90DC
Zp07 = $07 ; 2 refs; reads=0 writes=2; used at $8E14, 90D2
Zp09 = $09 ; 2 refs; reads=1 writes=1; used at $8119
Zp82 = $82 ; 1 refs; reads=1 writes=0; used at $8218
ZpF0 = $F0 ; 2 refs; reads=1 writes=1; used at $F6FC, F8CE
ZpF1 = $F1 ; 6 refs; reads=3 writes=3; used at $F302, F41F, F43F, F4A9, +2 more
ZpF2 = $F2 ; 7 refs; reads=4 writes=3; used at $F304, F56F, F57C, F586, +3 more
ZpF3 = $F3 ; 4 refs; reads=1 writes=3; used at $F306, F664, F66B, F675
ZpF4 = $F4 ; 11 refs; reads=8 writes=3; used at $F36A, F69F, F6B1, F6BB, +7 more
ZpF5 = $F5 ; 7 refs; reads=6 writes=1; used at $F701, F743, F784, F7C9, +3 more
ZpF6 = $F6 ; 1 refs; reads=0 writes=1; used at $F706
ZpF7 = $F7 ; 8 refs; reads=4 writes=4; used at $F6EF, F72B, F73F, F741, +2 more
ZpF8 = $F8 ; 5 refs; reads=3 writes=2; used at $F710, F7BC, F7C5, F7C7
ZpF9 = $F9 ; 8 refs; reads=5 writes=3; used at $F70B, F81A, F821, F823, +2 more
ZpFA = $FA ; 4 refs; reads=2 writes=2; used at $81B5, F2E8, F2F3, F365
ZpFB = $FB ; 2 refs; reads=1 writes=1; used at $F359, F698
ZpFC = $FC ; 2 refs; reads=1 writes=1; used at $F35B, F694
ZpFD = $FD ; 6 refs; reads=3 writes=3; used at $F363, F667, F66D, F671
ZpFE = $FE ; 16 refs; reads=8 writes=8; used at $F361, F582, F58A, F58E, +5 more
ZpFF = $FF ; 16 refs; reads=8 writes=8; used at $F35F, F41B, F423, F427, +5 more
File diff suppressed because it is too large. Load diff
@@ -1,4 +1,71 @@
; Zero-page aliases for this project.
; Empty at Pass 0. Pass 1+ adds proven semantic names here;
; addresses whose role is not yet determined keep the neutral ZpXX
; form.
; U-Force Test Cartridge (U) 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 ; 33 refs; reads=16 writes=17; used at $84D0, 84EB, 84F7, 84FF, +29 more
Zp01 = $01 ; 24 refs; reads=9 writes=15; used at $81D6, 81F1, 8318, 8322, +17 more
Zp02 = $02 ; 8 refs; reads=3 writes=5; used at $81D8, 86AD, 86C5, 86F0, +3 more
Zp03 = $03 ; 12 refs; reads=6 writes=6; used at $81E1, 84E9, 8501, 86A6, +8 more
Zp04 = $04 ; 8 refs; reads=3 writes=5; used at $81E7, 86A2, 86B8, 86BC, +4 more
Zp05 = $05 ; 5 refs; reads=2 writes=3; used at $81D0, 81DA, 81DE, 81EF
Zp06 = $06 ; 5 refs; reads=2 writes=3; used at $81D2, 81DC, 81E5, 81EB
Zp07 = $07 ; 2 refs; reads=1 writes=1; used at $81E3, 81ED
Zp09 = $09 ; 4 refs; reads=2 writes=2; used at $85DF, 85E7, 8641, 8649
Zp0A = $0A ; 15 refs; reads=9 writes=6; used at $85B1, 85BF, 85CF, 85D8, +9 more
Zp0B = $0B ; 4 refs; reads=2 writes=2; used at $85C3, 85D4, 8625, 8636
Zp0C = $0C ; 2 refs; reads=1 writes=1; used at $847A
Zp0F = $0F ; 1 refs; reads=0 writes=1; used at $8154
Zp10 = $10 ; 1 refs; reads=1 writes=0; used at $8529
Zp11 = $11 ; 2 refs; reads=2 writes=0; used at $8687, 87D3
Zp12 = $12 ; 2 refs; reads=2 writes=0; used at $8682, 87DA
Zp16 = $16 ; 1 refs; reads=1 writes=0; used at $8589
Zp17 = $17 ; 1 refs; reads=1 writes=0; used at $859A
Zp18 = $18 ; 8 refs; reads=4 writes=4; used at $8170, 8175, 8181, 8183, +2 more
Zp1A = $1A ; 6 refs; reads=3 writes=3; used at $804F, 82E5, 82E9, 82F0, +2 more
Zp1B = $1B ; 3 refs; reads=1 writes=2; used at $82D3, 82D8, 846A
Zp1C = $1C ; 2 refs; reads=1 writes=1; used at $8047, 843C
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $804B, 8441
Zp1F = $1F ; 5 refs; reads=2 writes=3; used at $82E3, 8454, 8458, 849B
Zp20 = $20 ; 2 refs; reads=1 writes=1; used at $8419, 8438
Zp21 = $21 ; 3 refs; reads=1 writes=2; used at $81CB, 8385, 87FC
Zp27 = $27 ; 3 refs; reads=2 writes=1; used at $80C9, 87F0, 87F4
Zp28 = $28 ; 1 refs; reads=0 writes=1; used at $87F8
Zp42 = $42 ; 6 refs; reads=4 writes=2; used at $8680, 8690, 86D1, 8779, +1 more
Zp43 = $43 ; 8 refs; reads=6 writes=2; used at $8685, 868C, 8692, 8698, +4 more
Zp44 = $44 ; 2 refs; reads=2 writes=0; used at $86E6, 870B
Zp57 = $57 ; 4 refs; reads=2 writes=2; used at $868A, 8696, 869C, 86A8
Zp58 = $58 ; 8 refs; reads=4 writes=4; used at $86DA, 86EA, 86F5, 86FF, +2 more
Zp59 = $59 ; 4 refs; reads=2 writes=2; used at $86DE, 86EE, 8703, 8713
Zp5A = $5A ; 3 refs; reads=1 writes=2; used at $84E6, 85B5, 8650
Zp5B = $5B ; 2 refs; reads=0 writes=2; used at $80CB, 87EE
Zp5C = $5C ; 3 refs; reads=1 writes=2; used at $838C, 84B8, 84E2
Zp5D = $5D ; 3 refs; reads=1 writes=2; used at $8391, 84BC, 84CE
Zp5E = $5E ; 2 refs; reads=0 writes=2; used at $84C0, 84D2
Zp5F = $5F ; 2 refs; reads=1 writes=1; used at $8396, 84D6
Zp60 = $60 ; 1 refs; reads=1 writes=0; used at $839B
Zp61 = $61 ; 1 refs; reads=1 writes=0; used at $83A0
Zp62 = $62 ; 1 refs; reads=1 writes=0; used at $83A5
Zp63 = $63 ; 1 refs; reads=1 writes=0; used at $83AA
Zp64 = $64 ; 1 refs; reads=1 writes=0; used at $83AF
Zp65 = $65 ; 1 refs; reads=1 writes=0; used at $83B4
Zp66 = $66 ; 1 refs; reads=1 writes=0; used at $83B9
Zp67 = $67 ; 1 refs; reads=1 writes=0; used at $83BE
Zp68 = $68 ; 1 refs; reads=1 writes=0; used at $83C3
Zp69 = $69 ; 1 refs; reads=1 writes=0; used at $83C8
Zp6A = $6A ; 1 refs; reads=1 writes=0; used at $83CD
Zp6B = $6B ; 1 refs; reads=1 writes=0; used at $83D2
Zp6C = $6C ; 1 refs; reads=1 writes=0; used at $83D7
Zp6D = $6D ; 1 refs; reads=1 writes=0; used at $83DC
Zp6E = $6E ; 1 refs; reads=1 writes=0; used at $83E1
Zp6F = $6F ; 1 refs; reads=1 writes=0; used at $83E6
Zp70 = $70 ; 1 refs; reads=1 writes=0; used at $83EB
Zp71 = $71 ; 1 refs; reads=1 writes=0; used at $83F0
Zp72 = $72 ; 1 refs; reads=1 writes=0; used at $83F5
Zp73 = $73 ; 1 refs; reads=1 writes=0; used at $83FA
Zp74 = $74 ; 1 refs; reads=1 writes=0; used at $83FF
Zp75 = $75 ; 1 refs; reads=1 writes=0; used at $8404
Zp76 = $76 ; 1 refs; reads=1 writes=0; used at $8409
Zp77 = $77 ; 1 refs; reads=1 writes=0; used at $840E
Zp78 = $78 ; 1 refs; reads=1 writes=0; used at $8413
File diff suppressed because it is too large. Load diff