Handoff — ACCP: the priority plan for the one remaining open item (E2)¶
Date: 2026-08-04
From: the ACCP emulation effort (RetroCore Machines.Accp + the ND5000 carves in this folder)
To: whoever picks up ACCP firmware RE next
Reads with: HANDOFF-ACCP-COMMAND-DISPATCH-2026-08-02.md (what is carved) and
CARVE-ANSWER-OCTOBUS-ACCP-COMMAND-DISPATCH-AND-RTEST-2026-08-02.md (the evidence)
1. Why this handoff exists¶
The 2026-08-02 handoff says what landed and what is open. It does not say what to do first. This one does, and nothing else. If you have read the other two documents you can start from section 3 here.
The forward plan
E:\Dev\Repos\Ronny\RetroCore\Nuget\_shared\docs\ACCP-FORWARD-PLAN-2026-08-01.md
ran phases A through F. A, B, C, D, E1, E3 and F are all closed. One item is open: E2.
2. Phase outcomes, in one table¶
| Phase | Outcome |
|---|---|
| A — trust the suite | Closed. The intermittent host crash never reproduced across four clean single-invocation runs (82, 96, 98, 101 tests). The old "memory pressure" hypothesis is unsupported; concurrent runs of the same test project fighting over bin\Debug is better evidenced but still UNVERIFIED |
| B — observability | Closed. B1 (firmware trace) and B2 (Sdl2CliDemo wiring) were already done before the plan was written. B3 was real: chips were invisible to chip.list because MemoryBuilder.Device() does not register for discovery, unlike Chip<T>(). Landed with PeekByte overrides |
| C — CMD-3 traffic | Closed. Real SINTRAN commands driven against the running card; the ack/nak convention settled against ND-05.020.01 |
D — the 0x03 byte |
Closed as still open. Two of three readings eliminated by experiment; the third narrowed but NOT proven, and it cannot be proven from this side |
| E1 — name the commands | Closed. 16 of 46 named from the ND-100 carve, four of those confirmed against the running card |
| E2 — carve the rest | OPEN. The only open item |
| E3 — RTEST discrepancy | Closed. There was no discrepancy; the measurement was contaminated |
| F — housekeeping | Closed. Both items decided |
3. The priority plan for E2¶
P1 — map the 46 arms to command bytes¶
Read the cmpi.b #imm,D0 immediate at each of the 46 enumerated arm addresses (they are listed
in the carve doc). Mechanical, no judgement calls.
Do this first because it is cheap and it sizes everything below it: it turns "~30 unknown handlers" into a named list of exactly which command numbers have no name. It also re-checks the 16 already named from the ND-100 side, so a drift between the two carves surfaces immediately instead of silently.
P2 — carve the unnamed handlers¶
For each: what it reads, what it touches, what it replies. This is the real work and it deserves a focused session, not a squeezed-in half hour.
Order within P2 by what SINTRAN actually sends, not by command number. The commands that matter to a working card should be carved first; a numeric sweep spends the same effort on commands nothing ever issues.
P3 — lock each carved name in a test¶
AccpCommandChannelTests. Do this per handler as you go, not batched at the end. A name with
no test is a claim, not a fact — and CarvedCommandNumbersAgreeWithTheDispatcherChain already
sets the precedent of asserting cross-source agreement rather than remarking on it.
P4 — write the results into this folder¶
Per the product-routing rule. Do not edit ACCP-COMPLETE-REFERENCE.md — it is another
agent's live file. Write your own dated carve doc and request the index pointer in a handoff,
the way section 3 of the 2026-08-02 handoff does.
4. What is deliberately NOT on the priority list¶
The 0x03 content byte. It is narrowed to one reading and cannot be resolved from this
side. It needs the Octobus Driver Programming Guide (DVT, 15 Oct 1986) or a second card's ROM;
neither is in this repository, and OctobusAccp\eprom\51200J.bin / 51201J.bin are the two
halves of octo.bin itself, not a second card. Picking it up again without one of those
documents would re-derive the same ceiling. If either document turns up, this becomes P1.
The index pointer request from the 2026-08-02 handoff is the reference owner's to action, not work for the next RE session.
5. Estimate — and its honest limit¶
P1's cost I am confident about: 46 reads, one immediate each.
P2 I cannot size. It is roughly 30 handlers of unknown individual difficulty, and there is no basis for estimating it until P1 is done and the command list is visible. Do not carry a P2 number forward from anywhere — there isn't one.