--- nono/m680x0/m68030disasm.h 2026/04/29 17:04:40 1.1.1.4 +++ nono/m680x0/m68030disasm.h 2026/04/29 17:05:19 1.1.1.8 @@ -10,18 +10,20 @@ #include "m68030.h" // 逆アセンブル -class m680x0disasm : public Disasm +class m680x0disasm final : public DisasmLine { - using inherited = Disasm; + using inherited = DisasmLine; public: - m680x0disasm(DebuggerMD *md); + m680x0disasm(); ~m680x0disasm() override; // 逆アセンブルを実行 - bool Exec(saddr_t laddr) override; + bool Exec(DebuggerMemoryStream *mem_) override; + + // IOCS コール名を返す。なければ NULL を返す。(分岐履歴から呼ばれる) + static const char *GetIOCSName(int n) { return x68k_iocscall[n]; } private: - saddr_t pc {}; // 現在の PC uint32 pc0 {}; // 命令先頭アドレス enum Reg { @@ -72,8 +74,8 @@ class m680x0disasm : public Disasm None, }; - virtual uint32 fetch16(); - virtual uint32 peek16(); // PC を進めずワードを取得 (IOCSコール用) + uint32 fetch16(); + uint32 peek16(); // PC を進めずワードを取得 (IOCSコール用) uint32 fetch32(); std::string make_reg(Reg); @@ -134,7 +136,6 @@ class m680x0disasm : public Disasm void ops_btst_imm_ea(); void ops_move(Size sz); void ops_movem_ext(Size sz); - void ops_scc(); void ops_bcc(); void ops_sub(Size sz); void ops_add(Size sz);