--- nono/vm/mk48t02.h 2026/04/29 17:05:18 1.1.1.13 +++ nono/vm/mk48t02.h 2026/04/29 17:05:29 1.1.1.15 @@ -10,10 +10,9 @@ #pragma once -#include "device.h" +#include "rtc.h" #include "mappedfile.h" #include "monitor.h" -#include "rtc.h" // MK48T02 の時計部分のレジスタと内部状態 struct MK48T02Clock @@ -117,7 +116,7 @@ class MK48T02Device : public RTCDevice using inherited = RTCDevice; public: MK48T02Device(); - virtual ~MK48T02Device() override; + ~MK48T02Device() override; bool Init() override; @@ -130,13 +129,6 @@ class MK48T02Device : public RTCDevice // 全域をゼロクリアする (内蔵 ROM からのアクセス用) void ClearAll(); - // BusIO インタフェース - // (内蔵 ROM からのアクセス用に特別に public にしてある) - uint64 Read(uint32 offset); - uint64 Write(uint32 offset, uint32 data); - uint64 Peek(uint32 offset); - uint64 Poke(uint32 offset, uint32 data) override; - // 内蔵カウンタへのアクセス。 // ラッチカウンタではないことに注意。 uint GetSec() const override; // 秒(0-59) @@ -148,9 +140,14 @@ class MK48T02Device : public RTCDevice uint GetYear() const override; // 年(西暦) uint GetLeap() const override; // うるう年カウンタ(0..3) - protected: // BusIO インタフェース + // (内蔵 ROM からのアクセス用に特別に public にしてある) + busdata ReadPort(uint32 offset); + busdata WritePort(uint32 offset, uint32 data); + busdata PeekPort(uint32 offset); + protected: static const uint32 NPORT = 2048; + bool PokePort(uint32 offset, uint32 data); // 仮想RTCからのクロック void Tick1Hz() override;