--- nono/vm/xiospace.h 2026/04/29 17:04:36 1.1.1.3 +++ nono/vm/xiospace.h 2026/04/29 17:04:56 1.1.1.8 @@ -7,14 +7,16 @@ #pragma once #include "device.h" +#include -class XIOSpaceDevice - : public IODevice +class XIOSpaceDevice : public IODevice { 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 +26,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 +41,7 @@ class XIOSpaceDevice void AddDevice(IODevice *dev); - IODevice *table[2048] {}; + std::array table {}; }; + +extern std::unique_ptr gXIOSpace;