--- nono/m680x0/testdis.cpp 2026/04/29 17:04:44 1.1.1.5 +++ nono/m680x0/testdis.cpp 2026/04/29 17:05:27 1.1.1.8 @@ -5,6 +5,7 @@ // #include "m68030disasm.h" +#include "debugger_memory.h" #include "mystring.h" #include @@ -829,33 +830,20 @@ struct { static uint8 ram[1024]; static int failed; -uint64 -vm_phys_peek_8(uint32 addr) -{ - assertmsg(addr < sizeof(ram), "addr=0x%x", addr); - - // XXX endian - return ram[addr ^ 1]; -} +#include "test_debugger_memory.cpp" // リンカを通すためのダミー -extern uint64 m68030_mmu_translate_peek(m68kcpu *, uint32, uint); -uint64 -m68030_mmu_translate_peek(m68kcpu *cpu, uint32 addr, uint fc) -{ - return -1; -} -Disasm::~Disasm() { } +DisasmLine::~DisasmLine() { } DebuggerMD::~DebuggerMD() { } int main(int ac, char *av[]) { - saddr_t saddr; + busaddr saddr; // DebuggerMD (の継承クラス)を用意するのは芋づる式に大変なので、 // 中でアクセスする変数だけ強引に用意する。 - DebuggerMD *md = (DebuggerMD *)malloc(sizeof(DebuggerMD)); + DebuggerMD *md = (DebuggerMD *)calloc(1, sizeof(DebuggerMD)); md->inst_bytes = 2; for (int i = 0; i < countof(table); i++) { @@ -875,10 +863,10 @@ main(int ac, char *av[]) *(uint16 *)(ram + 0x100 + j * 2) = inst[j]; } // 検査 - saddr = 0x100; - DebuggerMemoryStream mem(md, saddr, MemoryMode::Physical); - m680x0disasm dis(mem); - dis.Exec(); + saddr = busaddr(0x100); + m680x0disasm dis; + DebuggerMemoryStream mem(NULL, saddr); + dis.Exec(&mem); // 照合 if (dis.text != expected) { printf(">%s expects \"%s\" but \"%s\"\n", inst_str.c_str(),