--- nono/vm/sysctlr.h 2026/04/29 17:04:45 1.1.1.3 +++ nono/vm/sysctlr.h 2026/04/29 17:04:56 1.1.1.4 @@ -11,8 +11,7 @@ #include "device.h" #include "interrupt.h" -class SysCtlrDevice - : public InterruptDevice +class SysCtlrDevice : public InterruptDevice { using inherited = InterruptDevice; @@ -33,8 +32,6 @@ class SysCtlrDevice void ResetHard() override; - void MonitorUpdate(TextScreen&) override; - uint64 Read32(uint32 addr) override; uint64 Write32(uint32 addr, uint32 data) override; uint64 Peek8(uint32 addr) override; @@ -54,6 +51,8 @@ class SysCtlrDevice // マスク設定レジスタの書き込み値から内部用マスクを作成 static uint32 MakeIntMask(uint32 data, int n); + DECLARE_MONITOR_CALLBACK(MonitorUpdate); + // 割り込みマップ (M680x0Interrupt::intmap と同じ構造) uint32 intmap {}; @@ -74,6 +73,8 @@ class SysCtlrDevice // 現在の最高位の割り込みレベル int ipl; } cpu[4] {}; + + Monitor monitor { this }; }; // グローバルインスタンスはここではなく gInterrupt を使用する