--- nono/vm/lcd.h 2026/04/29 17:04:28 1.1 +++ nono/vm/lcd.h 2026/04/29 17:04:36 1.1.1.3 @@ -1,6 +1,7 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once @@ -9,37 +10,39 @@ class LCDDevice : public Device { - typedef Device inherited; + using inherited = Device; public: LCDDevice(); - virtual ~LCDDevice(); + ~LCDDevice() override; - virtual bool PowerOff(); + bool PowerOff() override; + bool MonitorUpdate() override; // リセット信号はない - // R/~W を val にセットします。%1=R、%0=W です。 + // R/~W を val にセットする。%1=R、%0=W void SetRW(bool val); - // RS を val にセットします。 + // RS を val にセットする。 // %0=コマンド(W)/ステータス(R)レジスタ // %1=データレジスタ void SetRS(int); - // E を val にセットします。 + // E を val にセットする。 void SetE(bool); // E, RS, R/W 線の状態を取得する。 // PIO1 のポートC 読み込み用。 uint8 Get() const; - // 読み込みます。 + // 読み込む。 uint8 Read(); - // 書き込みます。 + // 書き込む。 void Write(uint8 data); - virtual bool MonitorUpdate(); + // PIO1 のポートA ピーク用 + uint8 Peek() const; private: bool en = false; // Enable @@ -52,4 +55,4 @@ class LCDDevice : public Device uint8 ddram[0x40 * 2] {}; }; -extern LCDDevice *gLCD; +extern std::unique_ptr gLCD;