harness: paste verbatim sweep/differential/INTENB evidence into BRINGUP_LOG

This commit is contained in:
SDD committed 2026-10-16 02:07:05 +03:00
1 parent 2d7747a20d
commit 8e18d81cef
1 file changed
+55 -4
+55 -4
View File
@@ -642,6 +642,31 @@ BUSY_W3=1` → still `PC=3FDCE400`, 5 distinct. So the knobs are wired *and* the
critical handshake is isolated to the `0x06200000` window: arming only WIN2
leaves gate 1, arming only WIN3 does not.
Raw runs, verbatim:
```
$ VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_TICKS=0 \
$ VT1200_BOARD_SWITCH="0640000D:70:70" \
$ COV_FRAMES=600 COV_WINDOW=300 timeout 600 $M vt1200 -rompath harness/mame/roms -video none \
$ -sound none -nothrottle -debug -debugger none -autoboot_script harness/mame/coverage.lua -autoboot_delay 0 2>&1 \
$ | grep -E "^frame" | tail -1
BUSY_TICKS=0 -> frame 600 new= 2 total_distinct= 5 PC=3FDCE400
$ VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_TICKS=0 VT1200_BOARD_BUSY_W2=1 \
$ VT1200_BOARD_SWITCH="0640000D:70:70" \
$ COV_FRAMES=600 COV_WINDOW=300 timeout 600 $M vt1200 -rompath harness/mame/roms -video none \
$ -sound none -nothrottle -debug -debugger none -autoboot_script harness/mame/coverage.lua -autoboot_delay 0 2>&1 \
$ | grep -E "^frame" | tail -1
BUSY_TICKS=0 BUSY_W2=1 -> frame 600 new= 2 total_distinct= 56 PC=3F208950
$ VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_TICKS=0 VT1200_BOARD_BUSY_W3=1 \
$ VT1200_BOARD_SWITCH="0640000D:70:70" \
$ COV_FRAMES=600 COV_WINDOW=300 timeout 600 $M vt1200 -rompath harness/mame/roms -video none \
$ -sound none -nothrottle -debug -debugger none -autoboot_script harness/mame/coverage.lua -autoboot_delay 0 2>&1 \
$ | grep -E "^frame" | tail -1
BUSY_TICKS=0 BUSY_W3=1 -> frame 600 new= 2 total_distinct= 5 PC=3FDCE400
```
### Sweep: `BUSY_W2` in {1,2,4,8}
`W3=2`, `DMA=2`, `MODEL=handshake`, `SWITCH=0640000D:70:70`,
@@ -654,6 +679,24 @@ leaves gate 1, arming only WIN3 does not.
| 4 | 59 | `3F208B20` |
| 8 | 59 | `3F208B20` |
Raw run, verbatim (cwd `harness/mame`-repo root,
`M=/home/arti/code/k-space/mame0289/vt1200`):
```
$ for N in 1 2 4 8; do
$ printf "W2=%s -> " "$N"
$ VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_W2=$N VT1200_BOARD_BUSY_W3=2 \
$ VT1200_BOARD_DMA_TICKS=2 VT1200_BOARD_SWITCH="0640000D:70:70" \
$ COV_FRAMES=900 COV_WINDOW=300 timeout 600 $M vt1200 -rompath harness/mame/roms -video none \
$ -sound none -nothrottle -debug -debugger none -autoboot_script harness/mame/coverage.lua -autoboot_delay 0 2>&1 \
$ | grep -E "^frame" | tail -1
$ done
W2=1 -> frame 900 new= 3 total_distinct= 59 PC=3F208B20
W2=2 -> frame 900 new= 3 total_distinct= 59 PC=3F208B20
W2=4 -> frame 900 new= 3 total_distinct= 59 PC=3F208B20
W2=8 -> frame 900 new= 3 total_distinct= 59 PC=3F208B20
```
**The sweep is flat.** No `BUSY_W2` value moves the firmware further than any
other, and none leaves the park loop. The reason is structural, not a bug:
`tick()` runs **once per frame** (last visible scanline), while the gate polls
@@ -697,14 +740,22 @@ level 1.
### `INTENB` — still never non-zero
`intr.lua`, boundary config, 900 frames:
`intr.lua`, boundary config, 900 frames, verbatim:
```
$ VT1200_BOARD_MODEL=handshake VT1200_BOARD_BUSY_W2=2 VT1200_BOARD_BUSY_W3=2 \
$ VT1200_BOARD_DMA_TICKS=2 VT1200_BOARD_SWITCH="0640000D:70:70" \
$ INT_FRAMES=900 INT_EVERY=300 timeout 600 $M vt1200 -rompath harness/mame/roms -video none \
$ -sound none -nothrottle -debug -debugger none -autoboot_script harness/mame/intr.lua -autoboot_delay 0 2>&1 \
$ | grep -E "CHANGED|distinct|INTENB="
f 1 INTENB CHANGED -> 0000 (DI=0)
f 1 INTPEND CHANGED -> 0000
f 2 INTPEND CHANGED -> 0400
f 300 DPYCTL=E008 INTENB=0000(DI=0) INTPEND=0400 DI=1
f 900 DPYCTL=E008 INTENB=0000(DI=0) INTPEND=0400 DI=1
distinct INTENB values seen: 0000 (900 frames)
f 300 DPYCTL=E008 INTENB=0000(DI=0) INTPEND=0400 DI=1 DPYINT=0000 VCOUNT=0383 VTOTAL=0384 HTOTAL=004F HSBLNK=004C
f 600 DPYCTL=E008 INTENB=0000(DI=0) INTPEND=0400 DI=1 DPYINT=0000 VCOUNT=0383 VTOTAL=0384 HTOTAL=004F HSBLNK=004C
f 900 DPYCTL=E008 INTENB=0000(DI=0) INTPEND=0400 DI=1 DPYINT=0000 VCOUNT=0383 VTOTAL=0384 HTOTAL=004F HSBLNK=004C
distinct INTENB values seen:
INTENB=0000 DI=0 (900 frames)
```
`INTENB` never becomes non-zero, so the level-0 boundary is **not** crossed: