--- nono/vm/areaset.h 2026/04/29 17:04:28 1.1 +++ nono/vm/areaset.h 2026/04/29 17:05:28 1.1.1.10 @@ -1,29 +1,36 @@ // // nono -// Copyright (C) 2017 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once #include "device.h" -class AreaSetDevice - : public IODevice +class X68kIODevice; + +class AreaSetDevice : public IODevice { - typedef IODevice inherited; - private: - static const int baseaddr = 0xe86000; + using inherited = IODevice; + + static const uint32 baseaddr = 0xe86000; public: AreaSetDevice(); - virtual ~AreaSetDevice(); + ~AreaSetDevice() override; + + bool Init() override; + void ResetHard(bool poweron) 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); + protected: + // BusIO インタフェース + static const uint32 NPORT = 1; + busdata ReadPort(uint32 offset); + busdata WritePort(uint32 offset, uint32 data); + busdata PeekPort(uint32 offset); + bool PokePort(uint32 offset, uint32 data); private: - uint8 limit = 0; + X68kIODevice *x68kio {}; };