--- nono/vm/fuserom.h 2026/04/29 17:05:10 1.1.1.6 +++ nono/vm/fuserom.h 2026/04/29 17:05:29 1.1.1.9 @@ -11,6 +11,7 @@ #pragma once #include "device.h" +#include class FuseROMDevice : public IODevice { @@ -20,20 +21,25 @@ class FuseROMDevice : public IODevice static const uint32 SRCBYTES = 128; public: FuseROMDevice(); - virtual ~FuseROMDevice() override; + ~FuseROMDevice() override; bool Init() override; protected: // BusIO インタフェース static const uint32 NPORT = SRCBYTES * 2; // XXX 未調査 - uint64 Read(uint32 offset); - uint64 Write(uint32 offset, uint32 data); - uint64 Peek(uint32 offset); + busdata ReadPort(uint32 offset); + busdata WritePort(uint32 offset, uint32 data); + busdata PeekPort(uint32 offset); + bool PokePort(uint32 offset, uint32 data); private: + uint8 GetByte(uint32 offset) const; + // バイトデータで保持しておく - uint8 src[SRCBYTES] {}; + std::array src {}; }; -extern FuseROMDevice *gFuseROM; +static inline FuseROMDevice *GetFuseROMDevice() { + return Object::GetObject(OBJ_FUSEROM); +}