diff options
Diffstat (limited to 'src/mame/machine/qx10kbd.h')
-rw-r--r-- | src/mame/machine/qx10kbd.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mame/machine/qx10kbd.h b/src/mame/machine/qx10kbd.h index b351fd4ef73..a93a53aa80e 100644 --- a/src/mame/machine/qx10kbd.h +++ b/src/mame/machine/qx10kbd.h @@ -9,18 +9,28 @@ #include "machine/keyboard.h" -class qx10_keyboard_device : public buffered_rs232_device<16U>, protected device_matrix_keyboard_interface<16U> +class qx10_keyboard_device + : public device_t + , public device_rs232_port_interface { public: qx10_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ioport_constructor device_input_ports() const override; + virtual DECLARE_WRITE_LINE_MEMBER(input_txd) override; + DECLARE_WRITE8_MEMBER(mcu_p1_w); protected: - virtual void device_reset() override; - virtual void key_make(uint8_t row, uint8_t column) override; + virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_start() override; private: - virtual void received_byte(uint8_t data) override; + required_ioport_array<16> m_rows; + required_device<cpu_device> m_mcu; + emu_timer *m_bit_timer; + u8 m_line, m_rxd, m_clk; + int m_row, m_clk_state; }; DECLARE_DEVICE_TYPE(QX10_KEYBOARD, qx10_keyboard_device) |