Files
tms-c-compiler/scripts/m1/m1-check.lua
T
2026-11-11 08:31:19 +00:00

37 lines
1.3 KiB
Lua

-- m1-check.lua -- load the M1 COFF with dwt/loader/loader.lua and read the
-- marker words the generated code wrote.
--
-- M1_LOADER_LUA path to vendor/vt1200/dwt/loader/loader.lua
-- M1_EXPECT_LOAD expected load() result (default 0x12345678)
-- M1_EXPECT_SECOND expected &arr[1] in bits
--
-- The marker read runs one frame before loader.lua's inspection/exit frame.
dofile(os.getenv("M1_LOADER_LUA"))
local ENDF = tonumber(os.getenv("LOADER_END") or "2700")
local EXPECT_LOAD = tonumber(os.getenv("M1_EXPECT_LOAD") or "0x12345678")
local EXPECT_SECOND = tonumber(os.getenv("M1_EXPECT_SECOND") or "0x018A9020")
local frames = 0
local checked = false
emu.register_frame_done(function()
frames = frames + 1
if frames == ENDF - 1 and not checked then
checked = true
local prog = manager.machine.devices[':maincpu'].spaces['program']
local add = prog:read_u32(0x018A8000)
local load = prog:read_u32(0x018A8020)
local second = prog:read_u32(0x018A8040)
print(string.format("M1: add=%d load=0x%08X second=0x%08X",
add, load, second))
if add == 42 and load == EXPECT_LOAD and second == EXPECT_SECOND then
print("M1 MAME: PASS")
else
print(string.format(
"M1 MAME: FAIL (want add=42 load=0x%08X second=0x%08X)",
EXPECT_LOAD, EXPECT_SECOND))
end
end
end, "m1-check")