--- nono/vm/sio.h 2026/04/29 17:04:28 1.1 +++ nono/vm/sio.h 2026/04/29 17:04:36 1.1.1.4 @@ -1,6 +1,7 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once @@ -11,22 +12,22 @@ class SIODevice : public uPD7201Device { - typedef uPD7201Device inherited; + using inherited = uPD7201Device; public: SIODevice(); - virtual ~SIODevice(); + ~SIODevice() override; - virtual void ResetHard(); + void ResetHard() override; - virtual uint64 Read8(uint32); - virtual uint64 Read16(uint32); - virtual uint64 Write8(uint32, uint32); - virtual uint64 Write16(uint32, uint32); - - void RxCh1(int); + protected: + // BusIO インタフェース + static const uint32 NPORT = 4; + uint64 Read(uint32 addr); + uint64 Write(uint32 addr, uint32 data); + uint64 Peek(uint32 addr); private: - virtual void Interrupt(); + void Interrupt() override; }; -extern SIODevice *gSIO; +extern std::unique_ptr gSIO;