1 // license:BSD-3-Clause 2 // copyright-holders:Patrick Mackinlay 3 #ifndef MAME_DEVICES_INTERPRO_KEYBOARD_LLE_H 4 #define MAME_DEVICES_INTERPRO_KEYBOARD_LLE_H 5 6 #pragma once 7 8 #include "keyboard.h" 9 10 #include "machine/keyboard.h" 11 #include "cpu/mcs48/mcs48.h" 12 #include "machine/bankdev.h" 13 #include "sound/spkrdev.h" 14 15 namespace bus { namespace interpro { namespace keyboard { 16 17 class lle_device_base 18 : public device_t 19 , public device_interpro_keyboard_port_interface 20 { 21 protected: 22 // constructor/destructor 23 lle_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock); 24 25 // device overrides 26 virtual void device_add_mconfig(machine_config &config) override; 27 virtual void device_start() override; 28 virtual void device_reset() override; 29 30 virtual void io_map(address_map &map); 31 virtual void ext_map(address_map &map); 32 DECLARE_WRITE_LINE_MEMBER(input_txd)33 DECLARE_WRITE_LINE_MEMBER(input_txd) override { m_txd = state; } 34 35 DECLARE_READ_LINE_MEMBER(t0_r); 36 DECLARE_READ_LINE_MEMBER(t1_r); 37 void p1_w(u8 data); 38 void p2_w(u8 data); 39 u8 bus_r(); 40 void bus_w(u8 data); 41 42 private: 43 required_device<i8049_device> m_mcu; 44 required_device<address_map_bank_device> m_ext; 45 required_ioport_array<15> m_upper; 46 required_ioport_array<11> m_lower; 47 required_device<speaker_sound_device> m_speaker; 48 49 output_finder<8> m_leds; 50 51 u8 m_txd; 52 u8 m_p1; 53 u8 m_p2; 54 u8 m_bus; 55 56 u8 m_row; 57 u8 m_count; 58 }; 59 60 class lle_en_us_device : public lle_device_base 61 { 62 public: 63 lle_en_us_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); 64 65 virtual ioport_constructor device_input_ports() const override; 66 virtual tiny_rom_entry const *device_rom_region() const override; 67 }; 68 69 } } } // namespace bus::interpro::keyboard 70 71 DECLARE_DEVICE_TYPE_NS(INTERPRO_LLE_EN_US_KEYBOARD, bus::interpro::keyboard, lle_en_us_device) 72 73 #endif // MAME_DEVICES_INTERPRO_KEYBOARD_LLE_H 74