|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2018 [email protected] ! 4: // ! 5: ! 6: #pragma once ! 7: ! 8: #include "device.h" ! 9: ! 10: class LCDDevice : public Device ! 11: { ! 12: typedef Device inherited; ! 13: public: ! 14: LCDDevice(); ! 15: virtual ~LCDDevice(); ! 16: ! 17: virtual bool PowerOff(); ! 18: ! 19: // リセット信号はない ! 20: ! 21: // R/~W を val にセットします。%1=R、%0=W です。 ! 22: void SetRW(bool val); ! 23: ! 24: // RS を val にセットします。 ! 25: // %0=コマンド(W)/ステータス(R)レジスタ ! 26: // %1=データレジスタ ! 27: void SetRS(int); ! 28: ! 29: // E を val にセットします。 ! 30: void SetE(bool); ! 31: ! 32: // E, RS, R/W 線の状態を取得する。 ! 33: // PIO1 のポートC 読み込み用。 ! 34: uint8 Get() const; ! 35: ! 36: // 読み込みます。 ! 37: uint8 Read(); ! 38: ! 39: // 書き込みます。 ! 40: void Write(uint8 data); ! 41: ! 42: virtual bool MonitorUpdate(); ! 43: ! 44: private: ! 45: bool en = false; // Enable ! 46: bool rw = false; // R/~W ! 47: int rs = 0; // レジスタセレクト ! 48: ! 49: bool addr_inc = false; // アドレス・インクリメント ! 50: bool disp_char = false; // 文字表示をするか ! 51: int addr = 0; // アドレスカウンタ ! 52: uint8 ddram[0x40 * 2] {}; ! 53: }; ! 54: ! 55: extern LCDDevice *gLCD;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.