--- nono/vm/rp5c15.h 2026/04/29 17:04:39 1.1.1.4 +++ nono/vm/rp5c15.h 2026/04/29 17:04:55 1.1.1.9 @@ -7,6 +7,7 @@ #pragma once #include "device.h" +#include "monitor.h" #include "rtc.h" struct RP5C15 @@ -106,11 +107,9 @@ class RP5C15Device : public RTCDevice using inherited = RTCDevice; public: RP5C15Device(); - ~RP5C15Device() override; + virtual ~RP5C15Device() override; - bool InitRTC() override; - - void MonitorUpdate(TextScreen&) override; + bool Init() override; // 32Hz クロック入力 void ClockIn() override; @@ -118,23 +117,27 @@ class RP5C15Device : public RTCDevice protected: // BusIO インタフェース static const uint32 NPORT = 16; - 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: // レジスタを更新 void UpdateReg(uint32); + DECLARE_MONITOR_CALLBACK(MonitorUpdate); + // レジスタ RP5C15 reg {}; // 現在のバンク // MODE レジスタの BANK ビットが変更された時にこの値も更新すること。 - int bank = 0; + int bank {}; // CLKOUT 端子の状態 (true なら 'H') - bool clkout = false; + bool clkout {}; // ALARM 端子の状態 (true なら 'H') - bool alarmout = false; + bool alarmout {}; + + Monitor monitor { this }; };