--- nono/vm/rp5c15.h 2026/04/29 17:04:28 1.1 +++ nono/vm/rp5c15.h 2026/04/29 17:04:53 1.1.1.8 @@ -1,6 +1,7 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once @@ -102,22 +103,24 @@ struct RP5C15 class RP5C15Device : public RTCDevice { - typedef RTCDevice inherited; + using inherited = RTCDevice; public: RP5C15Device(); - virtual ~RP5C15Device(); + virtual ~RP5C15Device() override; - virtual bool InitRTC(); + bool Init() override; - virtual uint64 Read8(uint32 addr); - virtual uint64 Read16(uint32 addr); - virtual uint64 Write8(uint32 addr, uint32 data); - virtual uint64 Write16(uint32 addr, uint32 data); - virtual uint64 Peek8(uint32 addr); - virtual bool MonitorUpdate(); + void MonitorUpdate(TextScreen&) override; // 32Hz クロック入力 - virtual void ClockIn(); + void ClockIn() override; + + protected: + // BusIO インタフェース + static const uint32 NPORT = 16; + uint64 Read(uint32 offset); + uint64 Write(uint32 offset, uint32 data); + uint64 Peek(uint32 offset); private: // レジスタを更新 @@ -128,10 +131,10 @@ class RP5C15Device : public RTCDevice // 現在のバンク // MODE レジスタの BANK ビットが変更された時にこの値も更新すること。 - int bank = 0; + int bank {}; // CLKOUT 端子の状態 (true なら 'H') - bool clkout = false; + bool clkout {}; // ALARM 端子の状態 (true なら 'H') - bool alarmout = false; + bool alarmout {}; };