--- nono/vm/fuserom.h 2026/04/29 17:04:44 1.1.1.4 +++ nono/vm/fuserom.h 2026/04/29 17:05:29 1.1.1.9 @@ -4,9 +4,14 @@ // Licensed under nono-license.txt // +// +// FuseROM +// + #pragma once #include "device.h" +#include class FuseROMDevice : public IODevice { @@ -16,18 +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 addr); - uint64 Write(uint32 addr, uint32 data); - uint64 Peek(uint32 addr); + 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 {}; }; + +static inline FuseROMDevice *GetFuseROMDevice() { + return Object::GetObject(OBJ_FUSEROM); +}