--- nono/vm/xpbus.h 2026/04/29 17:05:25 1.1.1.2 +++ nono/vm/xpbus.h 2026/04/29 17:05:29 1.1.1.3 @@ -13,6 +13,7 @@ #include "mainbus.h" #include +class SubRAMDevice; class SubRAM2Device; class XPRAMDevice; @@ -27,14 +28,10 @@ class XPbusDevice : public IODevice bool Init() override; void ResetHard(bool poweron) override; - busdata Read8(uint32 addr) override; - busdata Read16(uint32 addr) override; - busdata Read32(uint32 addr) override; - busdata Write8(uint32 addr, uint32 data) override; - busdata Write16(uint32 addr, uint32 data) override; - busdata Write32(uint32 addr, uint32 data) override; - busdata Peek8(uint32 addr) override; - bool Poke8(uint32 addr, uint32 data) override; + busdata Read1(uint32 addr) override; + busdata Write1(uint32 addr, uint32 data) override; + busdata Peek1(uint32 addr) override; + bool Poke1(uint32 addr, uint32 data) override; // RAM Control Register (RMCR) を設定/取得 uint32 GetRMCR() const; @@ -53,8 +50,8 @@ class XPbusDevice : public IODevice // XP 内蔵 512 バイト RAM の位置 uint32 ram_addr {}; - IODevice *subram {}; // 共有 SRAM - IODevice *nopio {}; + SubRAMDevice *subram {}; // 共有 SRAM + NopIODevice *nopio {}; }; // XP 内蔵 RAM @@ -65,14 +62,10 @@ class XPRAMDevice : public IODevice XPRAMDevice(); ~XPRAMDevice() override; - busdata Read8(uint32 addr) override; - busdata Read16(uint32 addr) override; - busdata Read32(uint32 addr) override; - busdata Write8(uint32 addr, uint32 data) override; - busdata Write16(uint32 addr, uint32 data) override; - busdata Write32(uint32 addr, uint32 data) override; - busdata Peek8(uint32 addr) override; - bool Poke8(uint32 addr, uint32 data) override; + busdata Read1(uint32 addr) override; + busdata Write1(uint32 addr, uint32 data) override; + busdata Peek1(uint32 addr) override; + bool Poke1(uint32 addr, uint32 data) override; private: std::array ram {};