diff options
author | Vas Crabb <vas@vastheman.com> | 2017-02-28 17:55:06 +1100 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2017-03-01 16:36:41 +1100 |
commit | b28ede22ef274037c5ecba26d4e5d66198555b2a (patch) | |
tree | 9ddfc3ef1bc07c3f4dedb468f812dfc0afd4d514 | |
parent | dad4cb0b1f003aeec026cb66bb2f4d3fa77dc868 (diff) |
sun3x.cpp: hook up keyboard
-rw-r--r-- | src/devices/bus/sunkbd/sunkbd.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/sunkbd/sunkbd.h | 6 | ||||
-rw-r--r-- | src/mame/drivers/sun3x.cpp | 8 |
3 files changed, 12 insertions, 4 deletions
diff --git a/src/devices/bus/sunkbd/sunkbd.cpp b/src/devices/bus/sunkbd/sunkbd.cpp index 2809bef5b16..c6d43e0751d 100644 --- a/src/devices/bus/sunkbd/sunkbd.cpp +++ b/src/devices/bus/sunkbd/sunkbd.cpp @@ -69,7 +69,7 @@ void sun_keyboard_port_device::device_start() WRITE_LINE_MEMBER( sun_keyboard_port_device::write_txd ) { - if(m_dev) + if (m_dev) m_dev->input_txd(state); } diff --git a/src/devices/bus/sunkbd/sunkbd.h b/src/devices/bus/sunkbd/sunkbd.h index 3137cfb5559..2e270812f18 100644 --- a/src/devices/bus/sunkbd/sunkbd.h +++ b/src/devices/bus/sunkbd/sunkbd.h @@ -24,7 +24,6 @@ class sun_keyboard_port_device : public device_t, public device_slot_interface public: sun_keyboard_port_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); - sun_keyboard_port_device(machine_config const &mconfig, device_type type, char const *name, char const *tag, device_t *owner, uint32_t clock, char const *shortname, char const *source); virtual ~sun_keyboard_port_device(); // static configuration helpers @@ -35,6 +34,8 @@ public: DECLARE_READ_LINE_MEMBER( rxd_r ) { return m_rxd; } protected: + sun_keyboard_port_device(machine_config const &mconfig, device_type type, char const *name, char const *tag, device_t *owner, uint32_t clock, char const *shortname, char const *source); + virtual void device_start() override; virtual void device_config_complete() override; @@ -52,7 +53,6 @@ class device_sun_keyboard_port_interface : public device_slot_card_interface friend class sun_keyboard_port_device; public: - device_sun_keyboard_port_interface(machine_config const &mconfig, device_t &device); virtual ~device_sun_keyboard_port_interface() override; virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) { } @@ -60,6 +60,8 @@ public: DECLARE_WRITE_LINE_MEMBER( output_rxd ) { m_port->m_rxd = state; m_port->m_rxd_handler(state); } protected: + device_sun_keyboard_port_interface(machine_config const &mconfig, device_t &device); + sun_keyboard_port_device *m_port; static constexpr int START_BIT_COUNT = 1; diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp index a1b34b48752..79125a1fffa 100644 --- a/src/mame/drivers/sun3x.cpp +++ b/src/mame/drivers/sun3x.cpp @@ -7,7 +7,6 @@ status: 3/80 POSTs, 3/460 needs its unique RTC chip (also used by non-3x Sun 3s). TODO: - - Z8530 SCC needs to actually speak serial so we can hook up the mouse and keyboard. - Improve interrupt controller emulation. - Figure out how the IOMMU works. - Intersil 7170 device for 3/460 and 3/480 (they use the same PROMs). @@ -142,6 +141,7 @@ #include "machine/z80scc.h" #include "bus/rs232/rs232.h" +#include "bus/sunkbd/sunkbd.h" #include "screen.h" @@ -153,6 +153,7 @@ #define FDC_TAG "fdc" #define RS232A_TAG "rs232a" #define RS232B_TAG "rs232b" +#define KEYBOARD_TAG "keyboard" class sun3x_state : public driver_device { @@ -581,6 +582,11 @@ static MACHINE_CONFIG_START( sun3_80, sun3x_state ) MCFG_M48T02_ADD(TIMEKEEPER_TAG) MCFG_SCC8530_ADD(SCC1_TAG, XTAL_4_9152MHz, 0, 0, 0, 0) + MCFG_Z80SCC_OUT_TXDA_CB(DEVWRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd)) + + MCFG_SUNKBD_PORT_ADD(KEYBOARD_TAG, default_sun_keyboard_devices, "type3hle") + MCFG_SUNKBD_RXD_HANDLER(DEVWRITELINE(SCC1_TAG, z80scc_device, rxa_w)) + MCFG_SCC8530_ADD(SCC2_TAG, XTAL_4_9152MHz, 0, 0, 0, 0) MCFG_Z80SCC_OUT_TXDA_CB(DEVWRITELINE(RS232A_TAG, rs232_port_device, write_txd)) MCFG_Z80SCC_OUT_TXDB_CB(DEVWRITELINE(RS232B_TAG, rs232_port_device, write_txd)) |