From 4374bcf1d8d7f00a5ab505d20031b10191af30e4 Mon Sep 17 00:00:00 2001 From: Cyd Date: Sun, 19 Jul 2026 15:02:22 -0500 Subject: [PATCH] =?UTF-8?q?Firmware:=20--e0thresh=20patch=20=E2=80=94=20ga?= =?UTF-8?q?te=20the=20E0=20error=20display=20(default=20N=3D5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stock $D5F2 repaints the cockpit display to the E0 counter readout on the FIRST increment of $3187/$3184/$3185, so one benign give-up shows E0000001 forever. New opt-in make_patch.py edit 5 hijacks the render's LDX #$2038 into a 30-byte cave at $E000: all three counters below N -> exit via the routine's own epilogue (registers restored, display untouched); any >= N -> resume the render. Counters still accumulate. Built + disassembly-verified (not yet burned): RIOv4_2_patched_e0t5.bin (9600) and RIOv4_2_patched_31250v2_e0t5.bin (FastRIO). Docs updated. Co-Authored-By: Claude Fable 5 --- display-board-1408.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/display-board-1408.md b/display-board-1408.md index 2fb40cc6..a42b3afc 100644 --- a/display-board-1408.md +++ b/display-board-1408.md @@ -104,7 +104,11 @@ also the RIO's **error annunciator**: count (`$3185`, `$DA2F`). Each increment site immediately re-renders, so the display live-updates as serial trouble accumulates. If a cockpit's display reads `E0…` instead of `F0000000`, the serial link - has been dropping or retrying. + has been dropping or retrying. Note there is **no threshold in stock + firmware** — the first event paints `E0000001` permanently; the + `_e0t5` patched images (`make_patch.py --e0thresh`, see + [RIOv4_2-ANALYSIS.md](../../rio-firmware/RIOv4_2-ANALYSIS.md)) keep + the display quiet until a counter reaches 5. - **`dEAd` crash screen** (`$DAB8`, loop at `$DAB2`) — the TX-ISR ring drain (`$D8C2`) looks each outgoing command byte up in an 8-entry dispatch table at `$3158`; an unmatched byte means internal state