summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commitb28ede22ef274037c5ecba26d4e5d66198555b2a (patch)
tree9ddfc3ef1bc07c3f4dedb468f812dfc0afd4d514
parentdad4cb0b1f003aeec026cb66bb2f4d3fa77dc868 (diff)
sun3x.cpp: hook up keyboard
-rw-r--r--src/devices/bus/sunkbd/sunkbd.cpp2
-rw-r--r--src/devices/bus/sunkbd/sunkbd.h6
-rw-r--r--src/mame/drivers/sun3x.cpp8
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))