--- nono/vm/xiospace.h 2026/04/29 17:04:36 1.1.1.3 +++ nono/vm/xiospace.h 2026/04/29 17:04:53 1.1.1.7 @@ -7,6 +7,7 @@ #pragma once #include "device.h" +#include class XIOSpaceDevice : public IODevice @@ -14,7 +15,9 @@ class XIOSpaceDevice using inherited = IODevice; public: XIOSpaceDevice(); - ~XIOSpaceDevice() override; + virtual ~XIOSpaceDevice() override; + + bool Init() override; uint64 Read8(uint32 addr) override; uint64 Read16(uint32 addr) override; @@ -24,6 +27,9 @@ class XIOSpaceDevice uint64 Write32(uint32 addr, uint32 data) override; uint64 Peek8(uint32 addr) override; + // ブートページを切り替える。 + void SwitchBootPage(bool isrom); + private: // アドレス addr に対応する IODevice* を返す。 // addr は 24bit マスクされていること。 @@ -36,5 +42,7 @@ class XIOSpaceDevice void AddDevice(IODevice *dev); - IODevice *table[2048] {}; + std::array table {}; }; + +extern std::unique_ptr gXIOSpace;