-- 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 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'