diff options
Diffstat (limited to 'src/mame/machine/itt1700_kbd.h')
-rw-r--r-- | src/mame/machine/itt1700_kbd.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/mame/machine/itt1700_kbd.h b/src/mame/machine/itt1700_kbd.h new file mode 100644 index 00000000000..b8ee3cfd3ee --- /dev/null +++ b/src/mame/machine/itt1700_kbd.h @@ -0,0 +1,47 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#ifndef MAME_MACHINE_ITT1700_KBD +#define MAME_MACHINE_ITT1700_KBD + +#pragma once + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> itt1700_keyboard_device + +class itt1700_keyboard_device : public device_t +{ +public: + // device constructor + itt1700_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); + + // host interface + DECLARE_WRITE_LINE_MEMBER(line1_w); + DECLARE_WRITE_LINE_MEMBER(line2_w); + DECLARE_WRITE_LINE_MEMBER(clock_w); + DECLARE_READ_LINE_MEMBER(sense_r); + +protected: + // device-specific overrides + virtual void device_start() override; + virtual ioport_constructor device_input_ports() const override; + +private: + // internal state + bool m_clock_state; + bool m_line1_state; + bool m_line2_state; + u8 m_scan_counter; + + // key input matrix + required_ioport_array<16> m_keys; +}; + +// device type definition +DECLARE_DEVICE_TYPE(ITT1700_KEYBOARD, itt1700_keyboard_device) + +#endif // MAME_MACHINE_ITT1700_KBD_H |