mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-30 12:03:54 +02:00
Answers the five sub-questions from the service guide, the linear dis34 dump, the existing reports, and one empirical capture: * level 1 runs unconditionally at power-up; the boot calls the level-1 runner at bit 0x3F204400 (calla L3FDF72D0). The only conditional at the call site is the DUART1 IP3 hardware input bit (firmware @0x64000D0 bit 3), not a stored value. * the host-port test has no 'not installed' sense; only SIMMs (@0x5000000) and the Image Option (@0x62000D0 bit 5) have presence checks. * no persistent test-selection record: the power-up test set is a hard-coded ROM immediate (0x10FEFD80) written into a RAM descriptor; the interactive menu and NCP P3 only modify a run. NVRAM is read only by the user-settings code, never on the level-1 path. * a level-1 failure wedges the boot in the board-LED code loop (0x3F208060, jruc itself); transcript = LEVEL1/2 TESTING, HOST PORT - 15, TYPE 'GO' TO CONTINUE, then the LED loop. * the one in-ROM bypass (0x3F2043B0 -> OS cold-start 0x3F5788C0) is a board-input gate (IP3 high + no 0x55 signature); it skips all of level 1, not just the host port, and is not a firmware setting. Verdict: no persistent/configurable skip; harness must pass level 1 or assert DUART1 IP3 (0x0640000D bit 3) to take the OS branch. Evidence + scratch: reference/l1probe/.
28 lines
1.4 KiB
Plaintext
28 lines
1.4 KiB
Plaintext
# Firmware console transcript, 3000 frames, DUART1 mapped (cap.lua)
|
|
#
|
|
# Command:
|
|
# M=/home/arti/code/k-space/mame0289/vt1200
|
|
# CAP_MAX=3000 VT1200_VRAM=1 VT1200_BOARD_MODEL=handshake \
|
|
# VT1200_BOARD_BUSY_TICKS=2 VT1200_BOARD_SWITCH="0640000D:70:70" \
|
|
# VT1200_DUART=1 VT1200_DUART_SEL=1 \
|
|
# $M vt1200 -rompath harness/mame/roms -video none -sound none -nothrottle \
|
|
# -debug -debugger none -debuglog \
|
|
# -autoboot_script harness/mame/cap.lua -autoboot_delay 0
|
|
#
|
|
# cap.lua breaks on the printer entry (bit 0x3FDE00C0) and prints a9 = the
|
|
# message bit-pointer. Decoded with reference/rom-strings.txt:
|
|
|
|
PRINT a9=3FDCA8E8 -> "LEVEL1/2 TESTING ** " (file 0x17951D)
|
|
PRINT a9=3FDC9C68 -> "LEVEL1/2 ERROR -> HOST PORT - 15 " (file 0x17938D)
|
|
PRINT a9=0080000C -> (RAM pointer: diagnostic dump value, not a ROM string)
|
|
PRINT a9=00C0000C -> (RAM pointer)
|
|
PRINT a9=0100000C -> (RAM pointer)
|
|
PRINT a9=0200000C -> (RAM pointer)
|
|
PRINT a9=3FDCD2A8 -> "TYPE 'GO' TO CONTINUE" (file 0x179A55)
|
|
|
|
# Nothing else is printed in 3000 frames. In particular "CONIINUING THE TESTS"
|
|
# (file 0x179AEE) is NOT printed -- so the runner did not continue to the next
|
|
# level-1 test. A separate run of harness/mame/progress.lua shows the CPU
|
|
# parked in the board-LED blink loop (hottest PCs 0x3F2088B0 / 0x3F208B20 /
|
|
# 0x3F208A80 / 0x3F208950, all inside L3F208060, which ends `jruc L3F208060`).
|