--- nono/vm/xpbus.h 2026/04/29 17:05:25 1.1.1.2 +++ nono/vm/xpbus.h 2026/04/29 17:05:50 1.1.1.5 @@ -13,10 +13,12 @@ #include "mainbus.h" #include +class NopIODevice; +class SubRAMDevice; class SubRAM2Device; class XPRAMDevice; -// XP 外部バス +// XP 物理バス class XPbusDevice : public IODevice { using inherited = IODevice; @@ -27,14 +29,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 +51,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 +63,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 {};