--- nono/m680x0/m68030disasm.cpp 2026/04/29 17:04:49 1.1.1.6 +++ nono/m680x0/m68030disasm.cpp 2026/04/29 17:05:15 1.1.1.7 @@ -5,11 +5,10 @@ // #include "m68030disasm.h" -#include "bus.h" +#include "debugger_memory.h" // コンストラクタ -m680x0disasm::m680x0disasm(DebuggerMemoryStream& mem_) - : inherited(mem_) +m680x0disasm::m680x0disasm() { } @@ -20,9 +19,9 @@ m680x0disasm::~m680x0disasm() // 逆アセンブルを実行 bool -m680x0disasm::Exec() +m680x0disasm::Exec(DebuggerMemoryStream *mem_) { - ExecInit(); + ExecInit(mem_); ir.clear(); name.clear(); @@ -30,7 +29,7 @@ m680x0disasm::Exec() src.clear(); dst.clear(); - pc0 = (uint32)mem.laddr; + pc0 = (uint32)mem->laddr; switch (fetch16() >> 6) { #include "m68030switch.h" @@ -85,14 +84,14 @@ m680x0disasm::Exec() uint32 m680x0disasm::peek16() { - return mem.PeekInst(); + return mem->Peek(2); } // ワードフェッチ uint32 m680x0disasm::fetch16() { - uint16 data = mem.FetchInst(); + uint16 data = mem->Read(2); // IR にも入れる ir.push_back(data); return data; @@ -211,7 +210,7 @@ m680x0disasm::make_ea(uint mmrr) s = addr32(); break; case 0x3a: // d16(pc) - s = addr32((uint32)mem.laddr + (int32)(int16)fetch16()) + + s = addr32((uint32)mem->laddr + (int32)(int16)fetch16()) + "(" + make_reg(Reg::PC) + ")"; break; case 0x3b: // d8(pc,IX) @@ -2980,9 +2979,13 @@ OP_DEF(addq_l) dst = make_ea(); } -// Scc/SF のメイン部分。 -void -m680x0disasm::ops_scc() +// %0101_cccc11_mmmrrr Scc.B +// %0101_cccc11_001yyy DBcc.W Dy,