Commit Graph
4 Commits
Author SHA1 Message Date
CydandClaude Fable 5 9fa5d101e7 RIO firmware: drop stray disasm.stderr, ignore *.stderr
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 20:42:49 -05:00
CydandClaude Fable 5 34383f3f2c RIO firmware: disassemble v4.2, find the reply-wedge root cause
68HC11 recursive-descent disassembler (disasm_6811.py, follows the
pointer-based RX/TX state dispatch) + full disassembly + analysis doc.

Root cause of the stress wedge: an orphaned reply-in-progress latch
($2521). It gates every analog request ($D758); it is set when a reply is
generated ($D84C) but the 4-retry give-up path ($D9DD -> $DA2F) tears down
reply state without clearing it, and the success teardown ($DA00) clears
it only conditionally on $2522. Once leaked, all analog requests are
dropped -> board mute, while RX/event stays alive; only the game-start
host-reset command ($C686) clears it -- matching the field button-resync
ritual exactly. Proposed minimal in-place fix (clear $2521 on every
teardown) documented with byte patches and a hardware validation plan;
untested pending a spare EPROM. RIOv4_2-ANALYSIS.md has the details.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 20:42:37 -05:00
CydandClaude Fable 5 d0b53e93dd RIO firmware notes: exact EPROM part (AM27C512-150) + replacement pick
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 20:22:14 -05:00
CydandClaude Fable 5 673cebf3b8 RIO: firmware v4.2 dump (Toshiba TMP68HC11) + first-look analysis
RIOv4_2.bin dumped from our own board EPROM (64KB, code $C000-$FFFF).
Vector table confirms 68HC11: RESET->$C000, SCI serial interrupt->$D630 =
the protocol state machine entry for the planned disassembly. Board patch
plan steps 1-2 done (RIO-NOTES.md updated); next: disassemble from the
SCI handler, find the reply-path wedge (button/event path survives it),
patch, burn to a fresh EPROM, preserve the original.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 20:21:42 -05:00