--- nono/vm/bankram.h 2026/04/29 17:05:24 1.1.1.2 +++ nono/vm/bankram.h 2026/04/29 17:05:50 1.1.1.4 @@ -11,26 +11,22 @@ #pragma once #include "device.h" -#include +#include "mainbus.h" class BankRAMDevice : public IODevice { using inherited = IODevice; public: - BankRAMDevice(int objid_, int ram_size_MB); + BankRAMDevice(uint objid_, int ram_size_MB); ~BankRAMDevice() override; 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 Read(busaddr addr) override; + busdata Write(busaddr addr, uint32 data) override; + busdata Peek1(uint32 addr) override; + bool Poke1(uint32 addr, uint32 data) override; // バンクページ取得・設定 uint32 GetPage() const { return page; } @@ -55,9 +51,12 @@ class BankRAMDevice : public IODevice // ページ番号をリニアアドレスにした状態で保持。 uint32 pageaddr {}; + // ウェイト [nsec] + busdata wait {}; + // アクセス状況 - std::array accstat_read {}; - std::array accstat_write {}; + alignas(8) uint8 accstat_read[AccStat::BANKLEN] {}; + alignas(8) uint8 accstat_write[AccStat::BANKLEN] {}; }; // GetBankRAMDevice() は用意していない。