From 0c3d24b93b3d7aeb62308550023c984847bca29c Mon Sep 17 00:00:00 2001 From: SDD Date: Sun, 18 Oct 2026 00:55:12 +0300 Subject: [PATCH] tools/tms34010-sdk: the two dis34 bugs are fixed (af7d3565a502) -- record it, with the 2623/6235-line scale of the correction --- tools/tms34010-sdk/README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/tms34010-sdk/README.md b/tools/tms34010-sdk/README.md index 0a17a90..5ff186e 100644 --- a/tools/tms34010-sdk/README.md +++ b/tools/tms34010-sdk/README.md @@ -61,8 +61,14 @@ fallback**, and `DOSBOX.md` documents its verified headless invocation. ## Traps worth knowing -* **`dis34` prints long relative branches as `JA`** and **hides the B-file `SP`** — - correctness bugs in our disassembler, not in the assembler. +* **`dis34` misreported two encodings** — long relative branches as `JA` and the + B-file `SP` as plain `sp`. **Both fixed** (`af7d3565a502`): `0x00` + a 16-bit + displacement is `JRcc` (2 words), only `0x80` + a 32-bit address is `JAcc` (3 + words), and register field `0x1F` is `b15`. The round-trip fixup list dropped + from **5 to 3** as a result. For scale: the correction changes **2623** ROM + lines for `sp`→`b15` and **6235** for `JA`→`JR`, so disassembly read before + that date may have misreported those branches. The proof is reproducible — + the harness is committed at `harness/sdk-roundtrip/`. * **`gsprom`'s hex addresses wrap at 64 KB** — use the COFF file or the map for placement. * **GSPA's `MOVI` auto-shortening can silently change sign extension.**