37 lines
1.3 KiB
Lua
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")
|