diff options
Diffstat (limited to 'src/devices/video/hd61603.h')
-rw-r--r-- | src/devices/video/hd61603.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/devices/video/hd61603.h b/src/devices/video/hd61603.h new file mode 100644 index 00000000000..81bfcfa7913 --- /dev/null +++ b/src/devices/video/hd61603.h @@ -0,0 +1,67 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/* + + Hitachi HD61603 LCD Driver + +*/ + +#ifndef MAME_VIDEO_HD61603_H +#define MAME_VIDEO_HD61603_H + +#pragma once + +/* + +quick pinout reference (80-pin QFP) + +pin desc +------------------------------ +1 = VDD +2 = READY +3 = _CS +4 = _WE +5 = _RE +6 = SB +7-10 = D3-D0 (data_w) +11 = VSS +12 = V3 +13 = COM0 +14-77 = SEG63-SEG0: LCD segment outputs +78 = SYNC +79,80 = OSC2,OSC1 + +*/ + + +class hd61603_device : public device_t +{ +public: + hd61603_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + // configuration helpers + auto write_segs() { return m_write_segs.bind(); } + + void data_w(u8 data); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_post_load() override { refresh_output(); } + +private: + void refresh_output(); + + u8 m_count = 0; + u16 m_data = 0; + u64 m_ram = 0; + int m_blank = 0; + + // callbacks + devcb_write64 m_write_segs; +}; + + +DECLARE_DEVICE_TYPE(HD61603, hd61603_device) + +#endif // MAME_VIDEO_HD61603_H |