diff options
Diffstat (limited to 'src/devices/bus/uts_kbd/400kbd.h')
-rw-r--r-- | src/devices/bus/uts_kbd/400kbd.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/devices/bus/uts_kbd/400kbd.h b/src/devices/bus/uts_kbd/400kbd.h new file mode 100644 index 00000000000..8e73bc10dbd --- /dev/null +++ b/src/devices/bus/uts_kbd/400kbd.h @@ -0,0 +1,44 @@ +// license:BSD-3-Clause +// copyright-holders:AJR + +#ifndef MAME_BUS_UTS_KBD_400KBD_H +#define MAME_BUS_UTS_KBD_400KBD_H + +#pragma once + +#include "bus/uts_kbd/uts_kbd.h" + +class uts_400_keyboard_device : public device_t, public device_uts_keyboard_interface +{ +public: + uts_400_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + +protected: + virtual DECLARE_WRITE_LINE_MEMBER(ready_w) override; + + virtual ioport_constructor device_input_ports() const override; + virtual void device_start() override; + virtual void device_add_mconfig(machine_config &config) override; + virtual const tiny_rom_entry *device_rom_region() const override; + +private: + u8 bus_r(); + void p1_w(u8 data); + void p2_w(u8 data); + DECLARE_READ_LINE_MEMBER(t1_r); + DECLARE_WRITE_LINE_MEMBER(prog_w); + + void ext_map(address_map &map); + + required_ioport_array<16> m_keys; + output_finder<> m_shift_led; + + u8 m_p2_output; + u8 m_input_select; + bool m_ready_line; + bool m_prog_line; +}; + +DECLARE_DEVICE_TYPE(UTS_400_KEYBOARD, uts_400_keyboard_device) + +#endif // MAME_BUS_UTS_KBD_400KBD_H |