diff --git a/harness/mame/run.sh b/harness/mame/run.sh index bdb2f16..88130cd 100755 --- a/harness/mame/run.sh +++ b/harness/mame/run.sh @@ -57,7 +57,13 @@ case "$MODE" in # IP3 high -> the boot gate at 3F2042D0 jumps to the OS cold-start, # skipping all 15 level-1 tests. Also flips DUART1's IRQ to INT2, which # is the routing the OS's DUART driver expects (POST uses INT1). - exec env VT1200_SKIP_LEVEL1=1 \ + # + # DUART2 (keyboard/mouse) is modelled as well, and is REQUIRED for the OS: + # with it unmodelled the board write-back latch echoes the OS's IWR write + # when the OS reads DUART2's ISR (0x06200005), producing a phantom + # interrupt that can never clear -- the OS spins forever at the X11 weave. + # With it real, the Terminal Manager appears. + exec env VT1200_SKIP_LEVEL1=1 VT1200_DUART2=1 \ "$MAME" vt1200 "${COMMON[@]}" -window "$@" ;;