--- nono/vm/opm.h 2026/04/29 17:04:45 1.1.1.1 +++ nono/vm/opm.h 2026/04/29 17:05:10 1.1.1.4 @@ -4,15 +4,18 @@ // Licensed under nono-license.txt // +// +// OPM (YM2151) +// + #pragma once #include "device.h" -class OPMDevice - : public IODevice +class OPMDevice : public IODevice { using inherited = IODevice; - private: + static const int baseaddr = 0xe90000; public: @@ -22,9 +25,12 @@ class OPMDevice protected: // BusIO インタフェース static const uint32 NPORT = 2; - uint64 Read(uint32 addr); - uint64 Write(uint32 addr, uint32 data); - uint64 Peek(uint32 addr); + uint64 Read(uint32 offset); + uint64 Write(uint32 offset, uint32 data); + uint64 Peek(uint32 offset); + + private: + int reg {}; // アクセスレジスタ番号 }; -extern std::unique_ptr gOPM; +extern OPMDevice *gOPM;