--- nono/vm/bt454.h 2026/04/29 17:04:28 1.1 +++ nono/vm/bt454.h 2026/04/29 17:04:41 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 @@ -47,37 +48,36 @@ struct BT454 class BT454Device : public IODevice { - typedef IODevice inherited; + using inherited = IODevice; friend BitmapDevice; // Monitor は Bitmap を間借りしている public: BT454Device(); - virtual ~BT454Device(); - virtual bool Init(); + ~BT454Device() override; - virtual void ResetHard(); - - virtual uint64 Read8(uint32 addr); - virtual uint64 Read16(uint32 addr); - virtual uint64 Read32(uint32 addr); - virtual uint64 Write8(uint32 addr, uint32 data); - virtual uint64 Write16(uint32 addr, uint32 data); - virtual uint64 Write32(uint32 addr, uint32 data); - virtual uint64 Peek8(uint32 addr); + bool Init() override; + void ResetHard() override; // ホストパレットのアドレスを取得 const uint8 *GetHostPalette() const { return reg.hostcolor; } + protected: + // BusIO インタフェース + static const uint32 NPORT = 4; + uint64 Read(uint32 addr); + uint64 Write(uint32 addr, uint32 data); + uint64 Peek(uint32 addr); + private: // レジスタ値からホストパレットを作成 void MakeHostColor(int addr); BT454 reg {}; - int nplane = 0; // ビットマップのプレーン数 + int nplane {}; // ビットマップのプレーン数 // ログ出力用 static const char rgbstr[3]; }; -extern BT454Device *gBT454; +extern std::unique_ptr gBT454;