--- nono/vm/x68kio.h 2026/04/29 17:05:18 1.1.1.1 +++ nono/vm/x68kio.h 2026/04/29 17:05:21 1.1.1.2 @@ -11,6 +11,7 @@ #pragma once #include "device.h" +#include "monitor.h" #include class X68kIODevice : public IOContainerDevice @@ -33,13 +34,16 @@ class X68kIODevice : public IOContainerD // ブートページを切り替える。 void SwitchBootPage(bool isrom); + // デバイスをセット (Nereid からも呼ばれる) + void AddDevice(IODevice *dev, uint devaddr, uint devlen); + protected: IODevice *GetDevice(uint32 addr) const override; private: IODevice *SearchDevice(uint32 addr) const; - void AddDevice(IODevice *dev, uint devaddr, uint devlen); + DECLARE_MONITOR_CALLBACK(MonitorUpdate); std::unique_ptr pADPCM {}; std::unique_ptr pAreaSet {}; @@ -52,6 +56,7 @@ class X68kIODevice : public IOContainerD std::unique_ptr pIPLROM1 {}; std::unique_ptr pIPLROM2 {}; std::unique_ptr pMFP {}; + std::unique_ptr pNereid {}; std::unique_ptr pOPM {}; std::unique_ptr pPlaneVRAM {}; std::unique_ptr pPluto {}; @@ -66,4 +71,10 @@ class X68kIODevice : public IOContainerD std::unique_ptr pVideoCtlr {}; std::array table {}; + + Monitor monitor { this }; }; + +static inline X68kIODevice *GetX68kIODevice() { + return Object::GetObject(OBJ_X68KIO); +}