--- nono/vm/bitmap.h 2026/04/29 17:04:35 1.1.1.3 +++ nono/vm/bitmap.h 2026/04/29 17:04:52 1.1.1.7 @@ -20,8 +20,10 @@ class BitmapDevice static const uint32 fcset7end = 0xb1500000; public: BitmapDevice(); - ~BitmapDevice() override; + virtual ~BitmapDevice() override; + bool Init() override; + bool PowerOn() override; void ResetHard() override; uint64 Read8(uint32 addr) override; @@ -31,7 +33,7 @@ class BitmapDevice uint64 Write16(uint32 addr, uint32 data) override; uint64 Write32(uint32 addr, uint32 data) override; uint64 Peek8(uint32 addr) override; - bool MonitorUpdate() override; + void MonitorUpdate(TextScreen&) override; // プレーン数を取得 int GetPlaneCount() const { return nplane; } @@ -70,14 +72,14 @@ class BitmapDevice static const int MAX_PLANES = 8; // プレーン数 (設定による) - int nplane = 0; + int nplane {}; // RFCNT // b31..b24 b23..b16 b15..b10 b09..b00 // 無効 水平カウンタ 無効 ラスタカウンタ - uint32 rfcnt = 0; - int hscroll = 0; - int vscroll = 0; + uint32 rfcnt {}; + int hscroll {}; + int vscroll {}; // プレーンセレクタ // b31...b4 b3 b2 b1 b0 @@ -85,7 +87,7 @@ class BitmapDevice // | | +----- プレーン1 // | +-------- プレーン2 // +----------- プレーン3 - uint32 bmsel = 0; + uint32 bmsel {}; // ビットマッププレーン。 // ロングワードでホストバイトオーダー。 @@ -103,13 +105,12 @@ class BitmapDevice uint32 mask[MAX_PLANES] {}; // エミュレータによるコンソール出力 - TextScreen *textscr; - std::unique_ptr prev; - int screen_w; // 桁数 - int screen_h; // 行数 - int origin_x; // 原点 X [dot] - int origin_y; // 原点 Y [dot] - + TextScreen *textscr {}; + std::vector prev {}; + int screen_w {}; // 桁数 + int screen_h {}; // 行数 + int origin_x {}; // 原点 X [dot] + int origin_y {}; // 原点 Y [dot] }; extern std::unique_ptr gBitmap;