diff options
Diffstat (limited to 'src/devices/bus/pc_kbd/ec1841.h')
-rw-r--r-- | src/devices/bus/pc_kbd/ec1841.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/devices/bus/pc_kbd/ec1841.h b/src/devices/bus/pc_kbd/ec1841.h new file mode 100644 index 00000000000..20c8e74a5d6 --- /dev/null +++ b/src/devices/bus/pc_kbd/ec1841.h @@ -0,0 +1,82 @@ +// license:BSD-3-Clause +// copyright-holders:Sergey Svishchev +/********************************************************************** + + EC-1841 92-key keyboard emulation + +*********************************************************************/ + +#pragma once + +#ifndef __PC_KBD_EC_1841__ +#define __PC_KBD_EC_1841__ + +#include "emu.h" +#include "cpu/mcs48/mcs48.h" +#include "pc_kbdc.h" + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> ec_1841_keyboard_device + +class ec_1841_keyboard_device : public device_t, + public device_pc_kbd_interface +{ +public: + // construction/destruction + ec_1841_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // optional information overrides + virtual const rom_entry *device_rom_region() const; + virtual machine_config_constructor device_mconfig_additions() const; + virtual ioport_constructor device_input_ports() const; + + DECLARE_WRITE8_MEMBER( bus_w ); + DECLARE_READ8_MEMBER( p1_r ); + DECLARE_WRITE8_MEMBER( p1_w ); + DECLARE_WRITE8_MEMBER( p2_w ); + DECLARE_READ8_MEMBER( t1_r ); + +protected: + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + // device_pc_kbd_interface overrides + virtual DECLARE_WRITE_LINE_MEMBER( clock_write ); + virtual DECLARE_WRITE_LINE_MEMBER( data_write ); + +private: + required_device<cpu_device> m_maincpu; + required_ioport m_md00; + required_ioport m_md01; + required_ioport m_md02; + required_ioport m_md03; + required_ioport m_md04; + required_ioport m_md05; + required_ioport m_md06; + required_ioport m_md07; + required_ioport m_md08; + required_ioport m_md09; + required_ioport m_md10; + required_ioport m_md11; + required_ioport m_md12; + required_ioport m_md13; + required_ioport m_md14; + required_ioport m_md15; + + UINT8 m_bus; + UINT8 m_p1; + UINT8 m_p2; + int m_q; +}; + + +// device type definition +extern const device_type PC_KBD_EC_1841; + +#endif |