--- nono/vm/xpbus.h 2026/04/29 17:05:17 1.1 +++ nono/vm/xpbus.h 2026/04/29 17:05:25 1.1.1.2 @@ -10,16 +10,16 @@ #pragma once -#include "device.h" +#include "mainbus.h" #include class SubRAM2Device; class XPRAMDevice; // XP 外部バス -class XPbusDevice : public IOContainerDevice +class XPbusDevice : public IODevice { - using inherited = IOContainerDevice; + using inherited = IODevice; public: XPbusDevice(); ~XPbusDevice() override; @@ -27,14 +27,14 @@ class XPbusDevice : public IOContainerDe bool Init() override; void ResetHard(bool poweron) override; - // addr はそれぞれアラインされていること。 - uint64 Read8(uint32 addr) override; - uint64 Read16(uint32 addr) override; - uint64 Read32(uint32 addr) override; - uint64 Write8(uint32 addr, uint32 data) override; - uint64 Write16(uint32 addr, uint32 data) override; - uint64 Write32(uint32 addr, uint32 data) override; - uint64 Peek8(uint32 addr) 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; // RAM Control Register (RMCR) を設定/取得 uint32 GetRMCR() const; @@ -42,9 +42,6 @@ class XPbusDevice : public IOContainerDe // 内蔵 RAM の先頭番地を取得 (モニタ用) uint32 GetXPRAMAddr() const { return ram_addr; } - protected: - IODevice *GetDevice(uint32 addr) const override; - private: inline IODevice *SearchDevice(uint32 addr) const; @@ -68,14 +65,14 @@ class XPRAMDevice : public IODevice XPRAMDevice(); ~XPRAMDevice() override; - uint64 Read8(uint32 addr) override; - uint64 Read16(uint32 addr) override; - uint64 Read32(uint32 addr) override; - uint64 Write8(uint32 addr, uint32 data) override; - uint64 Write16(uint32 addr, uint32 data) override; - uint64 Write32(uint32 addr, uint32 data) override; - uint64 Peek8(uint32 addr) override; - uint64 Poke8(uint32 addr, uint32 data) 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; private: std::array ram {};