--- nono/debugger/debugger_private.h 2026/04/29 17:05:16 1.1.1.11 +++ nono/debugger/debugger_private.h 2026/04/29 17:05:49 1.1.1.14 @@ -11,9 +11,9 @@ #pragma once #include "debugger_defs.h" -#include "saddr.h" +#include "bus.h" -class IOContainerDevice; +class IODevice; enum class CPUState { @@ -38,9 +38,9 @@ class DebuggerMD // アドレス変換をする。 // MMUEnabled() が true であることは呼び出し側が確認すること。 - // lookup が true ならテーブルサーチまで行う。 - // 変換できなければ (uint64)-1 を返す。 - virtual uint64 TranslateAddr(saddr_t laddr, bool lookup) const = 0; + // 変換出来なければ BusAddr::BusErr を返す。 + // テーブルサーチを行ったら BusAddr::TableSearched を立てる。 + virtual busaddr TranslateAddr(busaddr laddr) const = 0; // 現在の命令先頭アドレスを返す virtual uint32 GetPC() const = 0; @@ -77,11 +77,14 @@ class DebuggerMD // mem.laddr の位置の命令を一つ逆アセンブルする。 virtual std::string Disassemble(DebuggerMemoryStream& mem) = 0; + // ニーモニックに対応する機械語文字列を返す。(cmd_bi 用) + virtual std::string ParseInst(const std::string&) const = 0; + // 機種名を取得する const std::string& GetName() const { return name; } // この CPU のバスを返す - IOContainerDevice *GetBus() const { return bus; } + IODevice *GetBus() const { return bus; } // このバスの論理アドレス幅 (ビット数) を返す int GetLASize() const { return lasize; } // このバスの物理アドレス幅 (ビット数) を返す @@ -104,9 +107,9 @@ class DebuggerMD std::string name {}; // 機種名 - IOContainerDevice *bus {}; // 対応する外部バス - int lasize {}; // バスの論理アドレス幅 - int pasize {}; // バスの物理アドレス幅 + IODevice *bus {}; // 対応する外部バス + int lasize {}; // バスの論理アドレス幅 + int pasize {}; // バスの物理アドレス幅 }; #define NORM "\x1b[0m"