--- nono/debugger/memdump.h 2026/04/29 17:05:24 1.1.1.3 +++ nono/debugger/memdump.h 2026/04/29 17:05:58 1.1.1.6 @@ -10,7 +10,7 @@ #pragma once -#include "monitor.h" +#include "object.h" #include "debugger_memory.h" class DisasmLine; @@ -29,19 +29,21 @@ class Memdump : public Object M68030PageShort, M68030PageLong, + M68040TableDesc, + M68040PageDesc, M88200Page, - M68030Disasm, + M680x0Disasm, M88100Disasm, HD64180Disasm, }; protected: // 継承クラスから呼ばれるほう。bus, md は後から指定するので不要。 - Memdump(int objid_); + explicit Memdump(uint objid_); public: // メモリダンプ用にデバッガから呼ばれるほう - Memdump(DebuggerMD *md_); + explicit Memdump(DebuggerMD *md_); // 逆アセンブル用にデバッガから呼ばれるほう Memdump(DebuggerMD *md_, CPUArch asm_arch); @@ -106,6 +108,8 @@ class Memdump : public Object IODevice *bus {}; static const char * const dtname[4]; + static const char * const udtname[4]; + static const char * const pdtname[4]; }; // メモリダンプ/逆アセンブルモニタ @@ -113,18 +117,20 @@ class MemdumpMonitor : public Memdump { using inherited = Memdump; public: - MemdumpMonitor(int objid_, int monid_); + MemdumpMonitor(uint objid_, int monid_); ~MemdumpMonitor() override; int GetLineOffset(int n) const; int GetPageOffset(int n) const; private: - DECLARE_MONITOR_CALLBACK(MonitorUpdate); + DECLARE_MONITOR_SCREEN(MonitorScreen); - void MonitorUpdateMemdump(TextScreen&, DebuggerMemoryStream&); - void MonitorUpdateDisasm(TextScreen&, DebuggerMemoryStream&); + void MonitorScreenMemdump(TextScreen&, DebuggerMemoryStream&); + void MonitorScreenDisasm(TextScreen&, DebuggerMemoryStream&); void Update68030PageShort(TextScreen&, int, int, const std::vector&); + void Update68040TableDesc(TextScreen&, int, int, const std::vector&); + void Update68040PageDesc(TextScreen&, int, int, const std::vector&); void Update88200Page(TextScreen&, int, int, const std::vector&); // 命令開始アドレス。 @@ -136,5 +142,5 @@ class MemdumpMonitor : public Memdump // を指している。 std::vector nextaddr {}; - Monitor monitor { this }; + Monitor *monitor {}; };