- Decoded the VramWrite ($E1CC) stream format: <addr hi> <addr lo> <count> <bytes>, $00 terminator - Named all 9 payload streams ($E4CC-$E7C2, no gaps/overlaps) plus VramWriteSourcePointerTable at $F000 - Split PadBitTableLives into Player1TileTable ($E4B4) and Player2TileTable ($E4C0), 12 entries each (Y=0..11) - Decoded CHR font (digits $30-$39, letters $3A-$52, space $5F; 'W' missing from the A-Z run) and recovered on-screen text including 'PRESS A TO TEST SIDE-A' / 'SIDE-B' - Documented that the 16 KiB PRG is two byte-identical 8 KiB halves; $C000 copy is dead - Documented 7 unreached subroutines inside the live code region (kept as .byte per Pass-1 policy) - Fixed a stray duplicate sentence and stale _wip paths in root OVERVIEW.md Byte-identical ROM verified.
457 B
457 B
| 1 | # MUSCLE (U) reused zero-page bytes - Pass 3 | ||||
|---|---|---|---|---|---|
| 2 | # Zero page $14/$15 is the 16-bit block counter for the compressed-VRAM transfer path and | ||||
| 3 | # the collision-bit accumulator for the overlap test. locals.inc names both roles; this | ||||
| 4 | # file applies the counter name only inside AdvanceCountWord and the two block-count | ||||
| 5 | # set-ups, so the same byte is not mislabelled at every site. | ||||
| 6 | # kind<TAB>start<TAB>end<TAB>old<TAB>new | ||||
| 7 | zprange | 0xACD7 | 0xACE2 | Zp15 | StreamBlockCountHi |