mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-30 12:03:54 +02:00
25 lines
912 B
Lua
25 lines
912 B
Lua
-- probe_end.lua -- frame clock + PC/SP/ST and hook-state sampler.
|
|
local machine = manager.machine
|
|
local cpu = machine.devices[':maincpu']
|
|
local prog = cpu.spaces['program']
|
|
local clock = os.getenv("FRAME_CLOCK")
|
|
local stop = tonumber(os.getenv("FRAME_STOP") or "0")
|
|
local f = 0
|
|
local function rw(b) return prog:read_u16(b) end
|
|
local function rl(b) return prog:read_u32(b) end
|
|
emu.register_frame_done(function()
|
|
f = f + 1
|
|
if clock then
|
|
local fh = io.open(clock, "w")
|
|
if fh then fh:write(f .. "\n"); fh:close() end
|
|
end
|
|
if f >= 3480 and f % 10 == 0 then
|
|
print(string.format(
|
|
"END f=%d PC=%08X SP=%08X ST=%08X counter=%04X state=%04X orig=%08X box=%04X%04X",
|
|
f, cpu.state['PC'].value, cpu.state['SP'].value, cpu.state['ST'].value,
|
|
rw(0x01840E00), rw(0x01840E10), rl(0x01840E20),
|
|
rw(0x04064100), rw(0x04064110)))
|
|
end
|
|
if stop > 0 and f >= stop then machine:exit() end
|
|
end, "vt1200-probe-end")
|