e0test: check-exchange acceptance stage for edit 6; record RC1 first-light
After the flip leaves counters over threshold, the tool now sends a CheckRequest (ACKing every status frame) — edit-6 chips must repaint and re-render the E0 readout; 04000000 marks a pre-rc1 chip. Analysis records the stock-chip archaeology (stock also leaves 04000000, but the ungated E0 readout papered over it in period — our fixes exposed it) and RC1's below-threshold first-light PASS (version+check -> F0). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -125,8 +125,10 @@ internal static class E0Test
|
||||
{
|
||||
if (--frameCountdown > 0) continue;
|
||||
repliesSeen++;
|
||||
if (ackMode == AckMode.Immediate && !ackSent)
|
||||
if (ackMode == AckMode.Immediate)
|
||||
{
|
||||
// ACK every completed frame (check replies
|
||||
// arrive as several 0x85 frames in a row).
|
||||
ackSent = true;
|
||||
respond = 0xFC;
|
||||
}
|
||||
@@ -204,6 +206,23 @@ internal static class E0Test
|
||||
for (int k = 0; k < flipEvents && ok; k++)
|
||||
ok = await RunEvent(AckMode.Never, "flip");
|
||||
|
||||
if (ok)
|
||||
{
|
||||
// Edit-6 acceptance (rc1/RIO4.3 chips): a CheckRequest self-test
|
||||
// must repaint the display afterwards — F0000000 when healthy,
|
||||
// or the E0 readout when counters are over threshold (they are
|
||||
// now, after the flip). Chips without edit 6 show 04000000 here.
|
||||
PhaseReset(AckMode.Immediate, 0x85, 4); // check replies: cmd+2+ck
|
||||
await transport.WriteAsync(new byte[] { 0x80, 0x00 }, CancellationToken.None);
|
||||
byte[] chk = await Collect(4000, _ => false); // self-test ~1-2s, lamps flash
|
||||
int checkReplies = Count(chk, 0x85);
|
||||
Console.WriteLine($"[check ] CheckRequest sent: self-test ran (lamps flash), {checkReplies} status frame(s).");
|
||||
Console.WriteLine($" Edit-6 chips repaint, then re-render the over-threshold E0 readout.");
|
||||
Console.WriteLine($" >>> DISPLAY SHOULD NOW READ: {Expected(cycles, teardowns)} (may run one higher in the last pair;");
|
||||
Console.WriteLine($" 04000000 here = no edit 6 on this chip) <<<");
|
||||
await Task.Delay(3000);
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("== done ==");
|
||||
Console.WriteLine($" final predicted counters: $3184=${cycles:X2} $3185=${teardowns:X2} -> display {Expected(cycles, teardowns)}");
|
||||
|
||||
Reference in New Issue
Block a user