--- nono/vm/interrupt.h 2026/04/29 17:04:45 1.1 +++ nono/vm/interrupt.h 2026/04/29 17:04:55 1.1.1.2 @@ -7,6 +7,7 @@ #pragma once #include "device.h" +#include "monitor.h" // // 割り込みを受け付けるデバイス @@ -18,6 +19,7 @@ class InterruptDevice : public IODevice using inherited = IODevice; public: InterruptDevice(); + InterruptDevice(const std::string& objname_); virtual ~InterruptDevice() override; // 継承クラスの ResetHard() は保持している割り込み情報を全てキャンセルする。 @@ -132,12 +134,14 @@ class X68030Interrupt : public M680x0Int X68030Interrupt(); virtual ~X68030Interrupt() override; - void MonitorUpdate(TextScreen& monitor) override; - int InterruptAcknowledge(int lv) override; private: uint32 GetIntmap(Device *soruce) const override; + + DECLARE_MONITOR_CALLBACK(MonitorUpdate); + + Monitor monitor { this }; }; // @@ -166,12 +170,14 @@ class LunaInterrupt : public M680x0Inter LunaInterrupt(); virtual ~LunaInterrupt() override; - void MonitorUpdate(TextScreen& monitor) override; - int InterruptAcknowledge(int lv) override; private: uint32 GetIntmap(Device *source) const override; + + DECLARE_MONITOR_CALLBACK(MonitorUpdate); + + Monitor monitor { this }; }; // LUNA88K は sysctlr.cpp 参照。