Files
SDD 5ef8712960 harness: identify the level-1 video-memory test that raises code 0x100 (VIDEO MEMORY-22)
The dispatch status is 0x100 (printed as '22' in the message). A driver-side
transparent low-RAM write log (VT1200_LOWLOG) shows the slot at bit 0x16F0 is
written by the store at 3FDF9090 from a13(0x10), which L3FA7C050 sets to the
literal 0x100 when the memory test L3F2018B0 returns non-zero. L3F2018B0 is the
level-1 video-memory test (base bit 0x04000000, count 0x20000). Its failing
checks: the 16-bit walking-bit read-back at 0x04000000 (baseline, unmapped) and,
with video RAM mapped, the REFCNT (0xC00001F0) 'must change' check.
2026-10-16 10:55:44 +03:00

34 lines
1.4 KiB
Lua

-- code22_args.lua
--
-- At the memory test L3F2018B0, print the four loaded arguments and, at its
-- walking-bit failure compare, the pointer a5 and the values involved.
--
-- CA_FRAMES=300 <mame> vt1200 ... -autoboot_script harness/mame/code22_args.lua
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
if not dbg then print("ERROR: no debugger"); machine:exit(); return end
dbg:command('bpset 3f201990,,{ printf "MEMTEST-ARGS a13=%08X a7=%08X a3=%08X a4=%08X a14=%08X\\n", a13, a7, a3, a4, a14 ; g }')
dbg:command('bpset 3f201ba0,,{ printf "WALK-WRITE a5=%08X a8=%08X\\n", a5, a8 ; g }')
dbg:command('bpset 3f201c10,,{ printf "WALK-READ a5=%08X a11=%08X expect=%08X\\n", a5, a11, a8 ; g }')
dbg:command('bpset 3f201c80,,{ printf "WALK-FAIL a5=%08X a12=%08X a8=%08X a11=%08X\\n", a5, a12, a8, a11 ; g }')
dbg:command('bpset 3f201e60,,{ printf "REFCNT-INIT a0=%08X\\n", a0 ; g }')
dbg:command('bpset 3f201e90,,{ printf "REFCNT-READ a6=%08X\\n", a6 ; g }')
dbg:command('bpset 3f201ed0,,{ printf "REFCNT-CMP a0=%08X a6=%08X\\n", a0, a6 ; g }')
print("breakpoints armed")
local maxframes = tonumber(os.getenv("CA_FRAMES") or "300")
local n = 0
emu.register_frame_done(function()
n = n + 1
if n >= maxframes then
print("done (" .. n .. " frames)")
machine:exit()
end
end, "vt1200-ca")
dbg.visible_cpu = cpu
dbg.execution_state = 'run'