--- nono/vm/sysclk.h 2026/04/29 17:05:17 1.1.1.9 +++ nono/vm/sysclk.h 2026/04/29 17:05:29 1.1.1.11 @@ -21,17 +21,20 @@ class SysClkDevice : public IODevice using inherited = IODevice; public: SysClkDevice(); - virtual ~SysClkDevice() override; + ~SysClkDevice() override; bool Init() override; void ResetHard(bool poweron) override; + uint GetFreq() const { return freq; } + protected: // BusIO インタフェース static const uint32 NPORT = 1; - 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: // イベントコールバック @@ -42,14 +45,20 @@ class SysClkDevice : public IODevice // 割り込み状態をレジスタイメージにして返す uint8 GetInt() const; + // 割り込み信号線の状態を変える。 + void ChangeInterrupt(); + // システムクロック割り込み有りなら true。 bool sysint {}; // 割り込みイベント Event event { this }; + // システムクロック周波数 [Hz] + uint freq {}; + // 本来のイベント間隔。機種によって異なる。 - uint period {}; + uint64 period {}; // システムクロックが刻んでいる時刻 uint64 stime {};