summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-08-27 18:17:39 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2018-08-27 18:17:39 +0200
commit21c7546c918b0ac1175dd6fcf13f80be4aa6b9f5 (patch)
tree501038ea27ffeeba2884f32e6d6944e8331ae811
parent1a10a84a366a1ca59d6897e24a6e3a3f2ea993e2 (diff)
z80scc.cpp, z80sio.cpp: deMCFGfied; 8530scc.cpp: removed macros which weren't already needed (nw)
-rw-r--r--src/devices/bus/interpro/sr/edge.cpp22
-rw-r--r--src/devices/bus/isa/eis_sad8852.cpp2
-rw-r--r--src/devices/bus/nubus/quadralink.cpp36
-rw-r--r--src/devices/bus/vme/vme_mzr8300.cpp10
-rw-r--r--src/devices/machine/8530scc.h4
-rw-r--r--src/devices/machine/z80scc.cpp9
-rw-r--r--src/devices/machine/z80scc.h60
-rw-r--r--src/devices/machine/z80sio.h60
-rw-r--r--src/mame/drivers/apple2gs.cpp20
-rw-r--r--src/mame/drivers/atarist.cpp2
-rw-r--r--src/mame/drivers/aussiebyte.cpp24
-rw-r--r--src/mame/drivers/bigbord2.cpp12
-rw-r--r--src/mame/drivers/c900.cpp10
-rw-r--r--src/mame/drivers/codata.cpp12
-rw-r--r--src/mame/drivers/decstation.cpp12
-rw-r--r--src/mame/drivers/dsb46.cpp10
-rw-r--r--src/mame/drivers/ft68m.cpp12
-rw-r--r--src/mame/drivers/hk68v10.cpp12
-rw-r--r--src/mame/drivers/hotstuff.cpp8
-rw-r--r--src/mame/drivers/indigo.cpp2
-rw-r--r--src/mame/drivers/isbc.cpp2
-rw-r--r--src/mame/drivers/jade.cpp10
-rw-r--r--src/mame/drivers/mbee.cpp2
-rw-r--r--src/mame/drivers/mc8030.cpp9
-rw-r--r--src/mame/drivers/mccpm.cpp10
-rw-r--r--src/mame/drivers/mes.cpp2
-rw-r--r--src/mame/drivers/micro3d.cpp4
-rw-r--r--src/mame/drivers/mvme147.cpp14
-rw-r--r--src/mame/drivers/octopus.cpp14
-rw-r--r--src/mame/drivers/onyx.cpp45
-rw-r--r--src/mame/drivers/p8k.cpp28
-rw-r--r--src/mame/drivers/pm68k.cpp14
-rw-r--r--src/mame/drivers/sun2.cpp20
-rw-r--r--src/mame/drivers/sun3.cpp44
-rw-r--r--src/mame/drivers/sun3x.cpp42
-rw-r--r--src/mame/drivers/sun4.cpp53
-rw-r--r--src/mame/drivers/sys2900.cpp4
-rw-r--r--src/mame/drivers/systec.cpp10
-rw-r--r--src/mame/drivers/ts816.cpp40
-rw-r--r--src/mame/drivers/v102.cpp4
-rw-r--r--src/mame/drivers/v550.cpp4
-rw-r--r--src/mame/drivers/x68k.cpp5
-rw-r--r--src/mame/machine/ioc2.cpp28
-rw-r--r--src/mame/machine/iteagle_fpga.cpp22
44 files changed, 323 insertions, 446 deletions
diff --git a/src/devices/bus/interpro/sr/edge.cpp b/src/devices/bus/interpro/sr/edge.cpp
index 68a64e69d6e..55d31fbc42a 100644
--- a/src/devices/bus/interpro/sr/edge.cpp
+++ b/src/devices/bus/interpro/sr/edge.cpp
@@ -477,11 +477,11 @@ MACHINE_CONFIG_START(mpcb828_device::device_add_mconfig)
MCFG_DEVICE_ADD("ramdac", BT458, 83'020'800)
- MCFG_DEVICE_ADD("scc", SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(DEVICE_SELF, mpcb828_device, scc_irq))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("kbd", interpro_keyboard_port_device, write_txd))
+ SCC8530N(config, m_scc, 4.9152_MHz_XTAL);
+ m_scc->out_int_callback().set(FUNC(mpcb828_device::scc_irq));
+ m_scc->out_txda_callback().set("kbd", FUNC(interpro_keyboard_port_device::write_txd));
- INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set("scc", FUNC(z80scc_device::rxa_w));
+ INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set(m_scc, FUNC(z80scc_device::rxa_w));
MACHINE_CONFIG_END
/*
@@ -506,11 +506,11 @@ MACHINE_CONFIG_START(mpcb849_device::device_add_mconfig)
MCFG_DEVICE_ADD("ramdac", BT458, 0) // unconfirmed clock
- MCFG_DEVICE_ADD("scc", SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(DEVICE_SELF, mpcb849_device, scc_irq))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("kbd", interpro_keyboard_port_device, write_txd))
+ SCC8530N(config, m_scc, 4.9152_MHz_XTAL);
+ m_scc->out_int_callback().set(FUNC(mpcb849_device::scc_irq));
+ m_scc->out_txda_callback().set("kbd", FUNC(interpro_keyboard_port_device::write_txd));
- INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set("scc", FUNC(z80scc_device::rxa_w));
+ INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set(m_scc, FUNC(z80scc_device::rxa_w));
MACHINE_CONFIG_END
/*
@@ -555,9 +555,9 @@ MACHINE_CONFIG_START(msmt094_device::device_add_mconfig)
//MCFG_DEVICE_ADD("dsp3", TMS32030, 40_MHz_XTAL)
// FIXME: actually Z0853006VSC
- MCFG_DEVICE_ADD("scc", SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(DEVICE_SELF, msmt094_device, scc_irq))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("kbd", interpro_keyboard_port_device, write_txd))
+ scc8530_device& scc(SCC8530N(config, "scc", 4.9152_MHz_XTAL));
+ scc.out_int_callback().set(FUNC(msmt094_device::scc_irq));
+ scc.out_txda_callback().set("kbd", FUNC(interpro_keyboard_port_device::write_txd));
INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set("scc", FUNC(z80scc_device::rxa_w));
MACHINE_CONFIG_END
diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp
index e7d64f06f2c..4f2b5a0c856 100644
--- a/src/devices/bus/isa/eis_sad8852.cpp
+++ b/src/devices/bus/isa/eis_sad8852.cpp
@@ -204,7 +204,7 @@ MACHINE_CONFIG_START(isa16_sad8852_device::device_add_mconfig)
MCFG_DEVICE_PROGRAM_MAP( sad8852_mem )
MCFG_DEVICE_IO_MAP(sad8852_io)
- MCFG_DEVICE_ADD("terminal", I8274_NEW, XTAL(12'000'000) / 3) // Needs verification
+ I8274_NEW(config, "terminal", XTAL(12'000'000) / 3); // Needs verification
MACHINE_CONFIG_END
isa16_sad8852_device::isa16_sad8852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
diff --git a/src/devices/bus/nubus/quadralink.cpp b/src/devices/bus/nubus/quadralink.cpp
index 28eb2fdf025..f38a0f3b57b 100644
--- a/src/devices/bus/nubus/quadralink.cpp
+++ b/src/devices/bus/nubus/quadralink.cpp
@@ -38,33 +38,33 @@ DEFINE_DEVICE_TYPE(NUBUS_QUADRALINK, nubus_quadralink_device, "nb_qdlink", "Appl
//-------------------------------------------------
MACHINE_CONFIG_START(nubus_quadralink_device::device_add_mconfig)
- MCFG_DEVICE_ADD("scc1", SCC8530N, 3.6864_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("serport0", rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("serport1", rs232_port_device, write_txd))
+ SCC8530N(config, m_scc1, 3.6864_MHz_XTAL);
+ m_scc1->out_txda_callback().set("serport0", FUNC(rs232_port_device::write_txd));
+ m_scc1->out_txdb_callback().set("serport1", FUNC(rs232_port_device::write_txd));
- MCFG_DEVICE_ADD("scc2", SCC8530N, 3.6864_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("serport2", rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("serport3", rs232_port_device, write_txd))
+ SCC8530N(config, m_scc2, 3.6864_MHz_XTAL);
+ m_scc2->out_txda_callback().set("serport2", FUNC(rs232_port_device::write_txd));
+ m_scc2->out_txdb_callback().set("serport3", FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD("serport0", RS232_PORT, isa_com, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE("scc1", z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE("scc1", z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE("scc1", z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD("serport1", RS232_PORT, isa_com, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE("scc1", z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE("scc1", z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE("scc1", z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, z80scc_device, ctsb_w))
MCFG_DEVICE_ADD("serport2", RS232_PORT, isa_com, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE("scc2", z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE("scc2", z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE("scc2", z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD("serport3", RS232_PORT, isa_com, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE("scc2", z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE("scc2", z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE("scc2", z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w))
MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/vme/vme_mzr8300.cpp b/src/devices/bus/vme/vme_mzr8300.cpp
index 158845770e4..ab6f70857e3 100644
--- a/src/devices/bus/vme/vme_mzr8300.cpp
+++ b/src/devices/bus/vme/vme_mzr8300.cpp
@@ -125,12 +125,12 @@ DEFINE_DEVICE_TYPE(VME_MZR8300, vme_mzr8300_card_device, "mzr8300", "Mizar 8300
//-------------------------------------------------
MACHINE_CONFIG_START(vme_mzr8300_card_device::device_add_mconfig)
- MCFG_DEVICE_ADD("sio0", UPD7201_NEW, XTAL(4'000'000))
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232p1", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232p1", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232p1", rs232_port_device, write_rts))
+ upd7201_new_device& sio0(UPD7201_NEW(config, "sio0", XTAL(4'000'000)));
+ sio0.out_txdb_callback().set("rs232p1", FUNC(rs232_port_device::write_txd));
+ sio0.out_dtrb_callback().set("rs232p1", FUNC(rs232_port_device::write_dtr));
+ sio0.out_rtsb_callback().set("rs232p1", FUNC(rs232_port_device::write_rts));
- MCFG_DEVICE_ADD("sio1", UPD7201_NEW, XTAL(4'000'000))
+ UPD7201_NEW(config, "sio1", XTAL(4'000'000));
MCFG_DEVICE_ADD("rs232p1", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio0", upd7201_new_device, rxb_w))
diff --git a/src/devices/machine/8530scc.h b/src/devices/machine/8530scc.h
index c95d2d7bdc7..d0a41a6af96 100644
--- a/src/devices/machine/8530scc.h
+++ b/src/devices/machine/8530scc.h
@@ -11,9 +11,6 @@
#ifndef MAME_MACHINE_8530SCC_H
#define MAME_MACHINE_8530SCC_H
-#define MCFG_Z8530_INTRQ_CALLBACK(_write) \
- downcast<scc8530_t &>(*device).set_intrq_wr_callback(DEVCB_##_write);
-
class scc8530_t : public device_t
{
public:
@@ -31,7 +28,6 @@ public:
scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_intrq_wr_callback(Object &&cb) { return intrq_cb.set_callback(std::forward<Object>(cb)); }
auto intrq_callback() { return intrq_cb.bind(); }
uint8_t get_reg_a(int reg);
diff --git a/src/devices/machine/z80scc.cpp b/src/devices/machine/z80scc.cpp
index a4a9c3ebe68..dd967d6af27 100644
--- a/src/devices/machine/z80scc.cpp
+++ b/src/devices/machine/z80scc.cpp
@@ -390,10 +390,11 @@ DEFINE_DEVICE_TYPE(SCC8523L, scc8523l_device, "scc8523l", "Zilog Z85
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(z80scc_device::device_add_mconfig)
- MCFG_DEVICE_ADD(CHANA_TAG, Z80SCC_CHANNEL, 0)
- MCFG_DEVICE_ADD(CHANB_TAG, Z80SCC_CHANNEL, 0)
-MACHINE_CONFIG_END
+void z80scc_device::device_add_mconfig(machine_config &config)
+{
+ Z80SCC_CHANNEL(config, CHANA_TAG, 0);
+ Z80SCC_CHANNEL(config, CHANB_TAG, 0);
+}
//**************************************************************************
diff --git a/src/devices/machine/z80scc.h b/src/devices/machine/z80scc.h
index b4c92f01385..259536290da 100644
--- a/src/devices/machine/z80scc.h
+++ b/src/devices/machine/z80scc.h
@@ -44,57 +44,6 @@
#define Z80SCC_USE_LOCAL_BRG 0
-#define MCFG_Z80SCC_OFFSETS(_rxa, _txa, _rxb, _txb) \
- downcast<z80scc_device &>(*device).configure_channels(_rxa, _txa, _rxb, _txb);
-
-#define MCFG_Z80SCC_OUT_INT_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_int_callback(DEVCB_##_devcb);
-
-// Port A callbacks
-#define MCFG_Z80SCC_OUT_TXDA_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_txd_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_DTRA_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_dtr_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_RTSA_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_rts_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_WREQA_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_wreq_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_SYNCA_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_sync_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_RXDRQA_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_rxdrq_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_TXDRQA_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_txdrq_callback<0>(DEVCB_##_devcb);
-
-// Port B callbacks
-#define MCFG_Z80SCC_OUT_TXDB_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_txd_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_DTRB_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_dtr_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_RTSB_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_rts_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_WREQB_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_wreq_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_SYNCB_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_sync_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_RXDRQB_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_rxdrq_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SCC_OUT_TXDRQB_CB(_devcb) \
- downcast<z80scc_device &>(*device).set_out_txdrq_callback<1>(DEVCB_##_devcb);
-
-
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -378,15 +327,6 @@ class z80scc_device : public device_t, public device_z80daisy_interface
friend class z80scc_channel;
public:
- template <unsigned N, class Object> devcb_base &set_out_txd_callback(Object &&cb) { return m_out_txd_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_dtr_callback(Object &&cb) { return m_out_dtr_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_rts_callback(Object &&cb) { return m_out_rts_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_wreq_callback(Object &&cb) { return m_out_wreq_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_sync_callback(Object &&cb) { return m_out_sync_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_rxdrq_callback(Object &&cb) { return m_out_rxdrq_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_txdrq_callback(Object &&cb) { return m_out_txdrq_cb[N].set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_cb.set_callback(std::forward<Object>(cb)); }
-
auto out_txda_callback() { return m_out_txd_cb[0].bind(); }
auto out_dtra_callback() { return m_out_dtr_cb[0].bind(); }
auto out_rtsa_callback() { return m_out_rts_cb[0].bind(); }
diff --git a/src/devices/machine/z80sio.h b/src/devices/machine/z80sio.h
index 3c629208d64..eff587dc281 100644
--- a/src/devices/machine/z80sio.h
+++ b/src/devices/machine/z80sio.h
@@ -66,57 +66,6 @@
#define SIO_CHANA_TAG "cha"
#define SIO_CHANB_TAG "chb"
-/* Generic macros */
-#define MCFG_Z80SIO_OUT_INT_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_int_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_CPU(_cputag) \
- downcast<z80sio_device &>(*device).set_cputag(_cputag);
-
-// Port A callbacks
-#define MCFG_Z80SIO_OUT_TXDA_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_txd_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_DTRA_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_dtr_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_RTSA_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_rts_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_WRDYA_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_wrdy_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_SYNCA_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_sync_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_RXDRQA_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_rxdrq_callback<0>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_TXDRQA_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_txdrq_callback<0>(DEVCB_##_devcb);
-
-// Port B callbacks
-#define MCFG_Z80SIO_OUT_TXDB_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_txd_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_DTRB_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_dtr_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_RTSB_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_rts_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_WRDYB_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_wrdy_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_SYNCB_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_sync_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_RXDRQB_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_rxdrq_callback<1>(DEVCB_##_devcb);
-
-#define MCFG_Z80SIO_OUT_TXDRQB_CB(_devcb) \
- downcast<z80sio_device &>(*device).set_out_txdrq_callback<1>(DEVCB_##_devcb);
-
//**************************************************************************
// TYPE DEFINITIONS
@@ -338,15 +287,6 @@ public:
// construction/destruction
z80sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <unsigned N, class Object> devcb_base &set_out_txd_callback(Object &&cb) { return m_out_txd_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_dtr_callback(Object &&cb) { return m_out_dtr_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_rts_callback(Object &&cb) { return m_out_rts_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_wrdy_callback(Object &&cb) { return m_out_wrdy_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_sync_callback(Object &&cb) { return m_out_sync_cb[N].set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_cb.set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_rxdrq_callback(Object &&cb) { return m_out_rxdrq_cb[N].set_callback(std::forward<Object>(cb)); }
- template <unsigned N, class Object> devcb_base &set_out_txdrq_callback(Object &&cb) { return m_out_txdrq_cb[N].set_callback(std::forward<Object>(cb)); }
-
auto out_txda_callback() { return m_out_txd_cb[0].bind(); }
auto out_txdb_callback() { return m_out_txd_cb[1].bind(); }
auto out_dtra_callback() { return m_out_dtr_cb[0].bind(); }
diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp
index 9f78a00f45a..fcea7a31d80 100644
--- a/src/mame/drivers/apple2gs.cpp
+++ b/src/mame/drivers/apple2gs.cpp
@@ -4665,20 +4665,20 @@ MACHINE_CONFIG_START( apple2gs_state::apple2gs )
ADDRESS_MAP_BANK(config, A2GS_B04000_TAG).set_map(&apple2gs_state::rb4000bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x8000);
/* serial */
- MCFG_DEVICE_ADD(SCC_TAG, SCC85C30, A2GS_14M/2)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, apple2gs_state, scc_irq_w))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
+ SCC85C30(config, m_scc, A2GS_14M/2);
+ m_scc->out_int_callback().set(FUNC(apple2gs_state::scc_irq_w));
+ m_scc->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, z80scc_device, ctsb_w))
/* slot devices */
MCFG_DEVICE_ADD("a2bus", A2BUS, 0)
diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp
index 9783c49ee86..8712e0f1ee4 100644
--- a/src/mame/drivers/atarist.cpp
+++ b/src/mame/drivers/atarist.cpp
@@ -2305,7 +2305,7 @@ MACHINE_CONFIG_START(megaste_state::megaste)
MCFG_DEVICE_MODIFY(M68000_TAG)
MCFG_DEVICE_PROGRAM_MAP(megaste_map)
MCFG_DEVICE_ADD(RP5C15_TAG, RP5C15, XTAL(32'768))
- MCFG_DEVICE_ADD(Z8530_TAG, SCC8530, Y2/4)
+ SCC8530(config, Z8530_TAG, Y2/4);
/* internal ram */
m_ram->set_default_size("4M") // Mega STe 4
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index 4ac252dac0f..74e90812a9b 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -559,18 +559,18 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
m_pio2->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
m_pio2->out_pa_callback().set(FUNC(aussiebyte_state::port20_w));
- MCFG_DEVICE_ADD("sio1", Z80SIO, 16_MHz_XTAL / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(*this, aussiebyte_state, sio1_rdya_w))
- MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(*this, aussiebyte_state, sio1_rdyb_w))
-
- MCFG_DEVICE_ADD("sio2", Z80SIO, 16_MHz_XTAL / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(*this, aussiebyte_state, sio2_rdya_w))
- MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(*this, aussiebyte_state, sio2_rdyb_w))
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ z80sio_device& sio1(Z80SIO(config, "sio1", 16_MHz_XTAL / 4));
+ sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ sio1.out_wrdya_callback().set(FUNC(aussiebyte_state::sio1_rdya_w));
+ sio1.out_wrdyb_callback().set(FUNC(aussiebyte_state::sio1_rdyb_w));
+
+ z80sio_device& sio2(Z80SIO(config, "sio2", 16_MHz_XTAL / 4));
+ sio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ sio2.out_wrdya_callback().set(FUNC(aussiebyte_state::sio2_rdya_w));
+ sio2.out_wrdyb_callback().set(FUNC(aussiebyte_state::sio2_rdyb_w));
+ sio2.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio2.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio2.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio2", z80sio_device, rxa_w))
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index c42788ffbe7..88abd275837 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -573,18 +573,18 @@ MACHINE_CONFIG_START(bigbord2_state::bigbord2)
MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, bigbord2_state, io_read_byte))
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, bigbord2_state, io_write_byte))
- MCFG_DEVICE_ADD("sio", Z80SIO, MAIN_CLOCK)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80SIO_OUT_SYNCA_CB(WRITELINE("ctc1", z80ctc_device, trg2))
- MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(*this, bigbord2_state, sio_wrdya_w))
- MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(*this, bigbord2_state, sio_wrdyb_w))
+ Z80SIO(config, m_sio, MAIN_CLOCK);
+ m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_sio->out_synca_callback().set("ctc1", FUNC(z80ctc_device::trg2));
+ m_sio->out_wrdya_callback().set(FUNC(bigbord2_state::sio_wrdya_w));
+ m_sio->out_wrdyb_callback().set(FUNC(bigbord2_state::sio_wrdyb_w));
MCFG_DEVICE_ADD("ctc1", Z80CTC, MAIN_CLOCK)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
MCFG_DEVICE_ADD("ctc2", Z80CTC, MAIN_CLOCK)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80CTC_ZC0_CB(WRITELINE("sio", z80sio_device, rxtxcb_w)) // to SIO Ch B
+ MCFG_Z80CTC_ZC0_CB(WRITELINE(m_sio, z80sio_device, rxtxcb_w)) // to SIO Ch B
MCFG_Z80CTC_ZC1_CB(WRITELINE(*this, bigbord2_state, ctc_z1_w)) // to SIO Ch A
MCFG_Z80CTC_ZC2_CB(WRITELINE("ctc2", z80ctc_device, trg3))
diff --git a/src/mame/drivers/c900.cpp b/src/mame/drivers/c900.cpp
index 8f7433e29ce..40ba63b7b8a 100644
--- a/src/mame/drivers/c900.cpp
+++ b/src/mame/drivers/c900.cpp
@@ -105,12 +105,12 @@ MACHINE_CONFIG_START(c900_state::c900)
Z8036(config, "cio", 6'000'000);
- MCFG_DEVICE_ADD("scc", SCC8030, 6'000'000) // 5'850'000 is the ideal figure
+ scc8030_device& scc(SCC8030(config, "scc", 6'000'000)); // 5'850'000 is the ideal figure
/* Port B */
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_DTRB_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SCC_OUT_RTSB_CB(WRITELINE("rs232", rs232_port_device, write_rts))
- //MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, c900_state, scc_int))
+ scc.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ scc.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ scc.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts));
+ //scc.out_int_callback().set("rs232", FUNC(c900_state::scc_int));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER (WRITELINE ("scc", scc8030_device, rxb_w))
diff --git a/src/mame/drivers/codata.cpp b/src/mame/drivers/codata.cpp
index 7fa5f64e27c..c98605ee3ee 100644
--- a/src/mame/drivers/codata.cpp
+++ b/src/mame/drivers/codata.cpp
@@ -67,12 +67,12 @@ MACHINE_CONFIG_START(codata_state::codata)
MCFG_DEVICE_ADD("maincpu",M68000, XTAL(16'000'000) / 2)
MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_ADD("uart", UPD7201_NEW, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs423a", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs423a", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs423a", rs232_port_device, write_rts))
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs423b", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_5))
+ upd7201_new_device& uart(UPD7201_NEW(config, "uart", 16_MHz_XTAL / 4));
+ uart.out_txda_callback().set("rs423a", FUNC(rs232_port_device::write_txd));
+ uart.out_dtra_callback().set("rs423a", FUNC(rs232_port_device::write_dtr));
+ uart.out_rtsa_callback().set("rs423a", FUNC(rs232_port_device::write_rts));
+ uart.out_txdb_callback().set("rs423b", FUNC(rs232_port_device::write_txd));
+ uart.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5);
am9513_device &timer(AM9513A(config, "timer", 16_MHz_XTAL / 4));
timer.out1_cb().set_nop(); // Timer 1 = "Abort/Reset" (watchdog)
diff --git a/src/mame/drivers/decstation.cpp b/src/mame/drivers/decstation.cpp
index 43d4973902c..5593bad0c25 100644
--- a/src/mame/drivers/decstation.cpp
+++ b/src/mame/drivers/decstation.cpp
@@ -228,13 +228,13 @@ MACHINE_CONFIG_START(decstation_state::kn02da)
MCFG_MC146818_IRQ_HANDLER(WRITELINE("ioga", dec_ioga_device, rtc_irq_w))
MCFG_MC146818_BINARY(true)
- MCFG_DEVICE_ADD("scc0", SCC85C30, XTAL(14'745'600)/2)
- //MCFG_Z80SCC_OUT_INT_CB(WRITELINE("ioga", dec_ioga_device, scc0_irq_w))
+ SCC85C30(config, m_scc0, XTAL(14'745'600)/2);
+ //m_scc0->out_int_callback().set("ioga", FUNC(dec_ioga_device::scc0_irq_w));
- MCFG_DEVICE_ADD("scc1", SCC85C30, XTAL(14'745'600)/2)
- //MCFG_Z80SCC_OUT_INT_CB(WRITELINE("ioga", dec_ioga_device, scc1_irq_w))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("rs232a", rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("rs232b", rs232_port_device, write_txd))
+ SCC85C30(config, m_scc1, XTAL(14'745'600)/2);
+ //m_scc1->out_int_callback().set("ioga", FUNC(dec_ioga_device::scc1_irq_w));
+ m_scc1->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
+ m_scc1->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("scc1", z80scc_device, rxa_w))
diff --git a/src/mame/drivers/dsb46.cpp b/src/mame/drivers/dsb46.cpp
index b837f49e93e..ea34b754a7f 100644
--- a/src/mame/drivers/dsb46.cpp
+++ b/src/mame/drivers/dsb46.cpp
@@ -123,11 +123,11 @@ MACHINE_CONFIG_START(dsb46_state::dsb46)
ctc_clock.signal_handler().append("ctc1", FUNC(z80ctc_device::trg2));
/* Devices */
- MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(24'000'000) / 6)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ z80sio_device& sio(Z80SIO(config, "sio", 24_MHz_XTAL / 6));
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ sio.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w))
diff --git a/src/mame/drivers/ft68m.cpp b/src/mame/drivers/ft68m.cpp
index dfeb86ae78e..5de78e3389b 100644
--- a/src/mame/drivers/ft68m.cpp
+++ b/src/mame/drivers/ft68m.cpp
@@ -89,12 +89,12 @@ MACHINE_CONFIG_START(ft68m_state::ft68m)
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(19'660'800) / 2)
MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, 0)
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232a", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232a", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232a", rs232_port_device, write_rts))
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232b", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_5))
+ upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 0));
+ mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
+ mpsc.out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
+ mpsc.out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
+ mpsc.out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd));
+ mpsc.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5);
am9513_device &stc(AM9513A(config, "stc", XTAL(19'660'800) / 8));
stc.out2_cb().set_inputline(m_maincpu, M68K_IRQ_6);
diff --git a/src/mame/drivers/hk68v10.cpp b/src/mame/drivers/hk68v10.cpp
index e0641938d19..fbacf6cebf6 100644
--- a/src/mame/drivers/hk68v10.cpp
+++ b/src/mame/drivers/hk68v10.cpp
@@ -345,14 +345,14 @@ MACHINE_CONFIG_START(hk68v10_state::hk68v10)
Z8536(config, "cio", SCC_CLOCK);
/* Terminal Port config */
- MCFG_DEVICE_ADD("scc", SCC8530N, SCC_CLOCK)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("rs232trm", rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_DTRA_CB(WRITELINE("rs232trm", rs232_port_device, write_dtr))
- MCFG_Z80SCC_OUT_RTSA_CB(WRITELINE("rs232trm", rs232_port_device, write_rts))
+ SCC8530N(config, m_sccterm, SCC_CLOCK);
+ m_sccterm->out_txda_callback().set("rs232trm", FUNC(rs232_port_device::write_txd));
+ m_sccterm->out_dtra_callback().set("rs232trm", FUNC(rs232_port_device::write_dtr));
+ m_sccterm->out_rtsa_callback().set("rs232trm", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal")
- MCFG_RS232_RXD_HANDLER(WRITELINE("scc", scc8530_device, rxa_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE("scc", scc8530_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_sccterm, scc8530_device, rxa_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_sccterm, scc8530_device, ctsa_w))
MCFG_VME_DEVICE_ADD("vme")
MCFG_VME_SLOT_ADD("vme", 1, hk68_vme_cards, nullptr)
diff --git a/src/mame/drivers/hotstuff.cpp b/src/mame/drivers/hotstuff.cpp
index c649b6f7bd7..8f09949a8de 100644
--- a/src/mame/drivers/hotstuff.cpp
+++ b/src/mame/drivers/hotstuff.cpp
@@ -115,11 +115,11 @@ MACHINE_CONFIG_START(hotstuff_state::hotstuff)
MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_DEVICE_ADD("scc1", SCC8530N, 4915200)
- MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_4))
+ scc8530_device& scc1(SCC8530N(config, "scc1", 4915200));
+ scc1.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_4);
- MCFG_DEVICE_ADD("scc2", SCC8530N, 4915200)
- MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_5))
+ scc8530_device& scc2(SCC8530N(config, "scc2", 4915200));
+ scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5);
MCFG_DEVICE_ADD("rtc", MC146818, XTAL(32'768))
MCFG_MC146818_IRQ_HANDLER(INPUTLINE("maincpu", M68K_IRQ_1))
diff --git a/src/mame/drivers/indigo.cpp b/src/mame/drivers/indigo.cpp
index e856147d46c..9f9fbf94df1 100644
--- a/src/mame/drivers/indigo.cpp
+++ b/src/mame/drivers/indigo.cpp
@@ -603,7 +603,7 @@ MACHINE_CONFIG_START(indigo_state::indigo3k)
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("scc", SCC8530, 7000000)
+ SCC8530(config, m_scc, 7000000);
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "cdrom", SCSICD, SCSI_ID_6)
diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp
index ac51247f888..7b10f99a956 100644
--- a/src/mame/drivers/isbc.cpp
+++ b/src/mame/drivers/isbc.cpp
@@ -484,7 +484,7 @@ MACHINE_CONFIG_START(isbc_state::isbc286)
m_uart8274->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd));
m_uart8274->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr));
m_uart8274->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
-// MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, isbc_state, isbc_uart8274_irq))
+// m_uart8274->out_int_callback().set(FUNC(isbc_state::isbc_uart8274_irq));
m_uart8274->out_int_callback().set("pic_0", FUNC(pic8259_device::ir6_w));
#endif
diff --git a/src/mame/drivers/jade.cpp b/src/mame/drivers/jade.cpp
index 2210bff7fb2..bd96121266e 100644
--- a/src/mame/drivers/jade.cpp
+++ b/src/mame/drivers/jade.cpp
@@ -77,11 +77,11 @@ MACHINE_CONFIG_START(jade_state::jade)
CLOCK(config, "trg0", 4_MHz_XTAL / 2).signal_handler().set("ctc2", FUNC(z80ctc_device::trg0));
/* Devices */
- MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000))
- //MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // no evidence of a daisy chain because IM2 is not set
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ z80sio_device& sio(Z80SIO(config, "sio", 4_MHz_XTAL));
+ //sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // no evidence of a daisy chain because IM2 is not set
+ sio.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w))
diff --git a/src/mame/drivers/mbee.cpp b/src/mame/drivers/mbee.cpp
index 6324fe929b7..dbe2515160e 100644
--- a/src/mame/drivers/mbee.cpp
+++ b/src/mame/drivers/mbee.cpp
@@ -847,7 +847,7 @@ MACHINE_CONFIG_START(mbee_state::mbeett)
MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbeett)
MCFG_DEVICE_REMOVE("quickload")
MCFG_DEVICE_REMOVE("quickload2")
- MCFG_DEVICE_ADD("scc", SCC8530, 4000000) // clock unknown
+ SCC8530(config, "scc", 4000000); // clock unknown
MACHINE_CONFIG_END
/* Unused roms:
diff --git a/src/mame/drivers/mc8030.cpp b/src/mame/drivers/mc8030.cpp
index 6a12da64087..be216b3e7df 100644
--- a/src/mame/drivers/mc8030.cpp
+++ b/src/mame/drivers/mc8030.cpp
@@ -231,12 +231,11 @@ MACHINE_CONFIG_START(mc8030_state::mc8030)
uart_clock.signal_handler().set("asp_sio", FUNC(z80sio_device::txca_w));
uart_clock.signal_handler().append("asp_sio", FUNC(z80sio_device::rxca_w));
- MCFG_DEVICE_ADD("asp_sio", Z80SIO, 4800)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80sio_device& sio(Z80SIO(config, "asp_sio", 4800));
// SIO CH A in = keyboard; out = beeper; CH B = IFSS (??)
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ sio.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(WRITELINE("asp_sio", z80sio_device, rxa_w))
diff --git a/src/mame/drivers/mccpm.cpp b/src/mame/drivers/mccpm.cpp
index 218a0f34a1d..302c89cc0c0 100644
--- a/src/mame/drivers/mccpm.cpp
+++ b/src/mame/drivers/mccpm.cpp
@@ -91,11 +91,11 @@ MACHINE_CONFIG_START(mccpm_state::mccpm)
uart_clock.signal_handler().set("sio", FUNC(z80sio_device::txca_w));
uart_clock.signal_handler().append("sio", FUNC(z80sio_device::rxca_w));
- MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000))
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'000'000)));
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ sio.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w))
diff --git a/src/mame/drivers/mes.cpp b/src/mame/drivers/mes.cpp
index 4a2476cfe29..d6d3a8ed9de 100644
--- a/src/mame/drivers/mes.cpp
+++ b/src/mame/drivers/mes.cpp
@@ -150,7 +150,7 @@ MACHINE_CONFIG_START(mes_state::mes)
MCFG_DEVICE_ADD("ctc", Z80CTC, 0)
MCFG_DEVICE_ADD("pio", Z80PIO, 0)
- MCFG_DEVICE_ADD("sio", Z80SIO, 0)
+ Z80SIO(config, "sio", 0);
MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0)
MCFG_GENERIC_KEYBOARD_CB(PUT(mes_state, kbd_put))
diff --git a/src/mame/drivers/micro3d.cpp b/src/mame/drivers/micro3d.cpp
index 5a619db197c..158e4b3ca16 100644
--- a/src/mame/drivers/micro3d.cpp
+++ b/src/mame/drivers/micro3d.cpp
@@ -318,8 +318,8 @@ MACHINE_CONFIG_START(micro3d_state::micro3d)
MCFG_DEVICE_PROGRAM_MAP(drmath_prg)
MCFG_DEVICE_DATA_MAP(drmath_data)
- MCFG_DEVICE_ADD("scc", SCC8530N, 32_MHz_XTAL / 2 / 2)
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("monitor_drmath", rs232_port_device, write_txd))
+ scc8530_device& scc(SCC8530N(config, "scc", 32_MHz_XTAL / 2 / 2));
+ scc.out_txdb_callback().set("monitor_drmath", FUNC(rs232_port_device::write_txd));
rs232_port_device &monitor_drmath(RS232_PORT(config, "monitor_drmath", default_rs232_devices, nullptr));
monitor_drmath.rxd_handler().set("scc", FUNC(z80scc_device::rxb_w));
diff --git a/src/mame/drivers/mvme147.cpp b/src/mame/drivers/mvme147.cpp
index acece7fa57b..f4ceba450a3 100644
--- a/src/mame/drivers/mvme147.cpp
+++ b/src/mame/drivers/mvme147.cpp
@@ -658,16 +658,16 @@ MACHINE_CONFIG_START(mvme147_state::mvme147)
MCFG_DEVICE_ADD("m48t18", M48T02, 0) /* t08 differs only in accepted voltage levels compared to t18 */
/* Terminal Port config */
- MCFG_DEVICE_ADD("scc", SCC85C30, SCC_CLOCK)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("rs232trm", rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_DTRA_CB(WRITELINE("rs232trm", rs232_port_device, write_dtr))
- MCFG_Z80SCC_OUT_RTSA_CB(WRITELINE("rs232trm", rs232_port_device, write_rts))
+ SCC85C30(config, m_sccterm, SCC_CLOCK);
+ m_sccterm->out_txda_callback().set("rs232trm", FUNC(rs232_port_device::write_txd));
+ m_sccterm->out_dtra_callback().set("rs232trm", FUNC(rs232_port_device::write_dtr));
+ m_sccterm->out_rtsa_callback().set("rs232trm", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal")
- MCFG_RS232_RXD_HANDLER (WRITELINE ("scc", scc85c30_device, rxa_w))
- MCFG_RS232_CTS_HANDLER (WRITELINE ("scc", scc85c30_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER (WRITELINE(m_sccterm, scc85c30_device, rxa_w))
+ MCFG_RS232_CTS_HANDLER (WRITELINE(m_sccterm, scc85c30_device, ctsa_w))
- MCFG_DEVICE_ADD("scc2", SCC85C30, SCC_CLOCK)
+ SCC85C30(config, m_sccterm2, SCC_CLOCK);
MACHINE_CONFIG_END
/* ROM definitions */
diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp
index 31f82a117a5..d5c7bb0621f 100644
--- a/src/mame/drivers/octopus.cpp
+++ b/src/mame/drivers/octopus.cpp
@@ -969,7 +969,7 @@ MACHINE_CONFIG_START(octopus_state::octopus)
MCFG_PIT8253_CLK0(2457500) // DART channel A
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(*this, octopus_state,serial_clock_w)) // being able to write both Rx and Tx clocks at one time would be nice
MCFG_PIT8253_CLK1(2457500) // DART channel B
- MCFG_PIT8253_OUT1_HANDLER(WRITELINE("serial",z80sio_device,rxtxcb_w))
+ MCFG_PIT8253_OUT1_HANDLER(WRITELINE(m_serial,z80sio_device,rxtxcb_w))
MCFG_PIT8253_CLK2(2457500) // speaker frequency
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, octopus_state,spk_freq_w))
@@ -977,12 +977,12 @@ MACHINE_CONFIG_START(octopus_state::octopus)
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_DEVICE_ADD("serial", Z80SIO, 16_MHz_XTAL / 4) // clock rate not mentioned in tech manual
- MCFG_Z80SIO_OUT_INT_CB(WRITELINE("pic_master",pic8259_device, ir1_w))
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("serial_a",rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("serial_b",rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("serial_a",rs232_port_device, write_rts))
- MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("serial_b",rs232_port_device, write_rts))
+ Z80SIO(config, m_serial, 16_MHz_XTAL / 4); // clock rate not mentioned in tech manual
+ m_serial->out_int_callback().set("pic_master", FUNC(pic8259_device::ir1_w));
+ m_serial->out_txda_callback().set("serial_a", FUNC(rs232_port_device::write_txd));
+ m_serial->out_txdb_callback().set("serial_b", FUNC(rs232_port_device::write_txd));
+ m_serial->out_rtsa_callback().set("serial_a", FUNC(rs232_port_device::write_rts));
+ m_serial->out_rtsb_callback().set("serial_b", FUNC(rs232_port_device::write_rts));
rs232_port_device &serial_a(RS232_PORT(config, "serial_a", default_rs232_devices, nullptr));
serial_a.rxd_handler().set(m_serial, FUNC(z80sio_device::rxa_w));
diff --git a/src/mame/drivers/onyx.cpp b/src/mame/drivers/onyx.cpp
index db135958d7e..fc08a2b0856 100644
--- a/src/mame/drivers/onyx.cpp
+++ b/src/mame/drivers/onyx.cpp
@@ -162,14 +162,14 @@ MACHINE_CONFIG_START(onyx_state::c8002)
MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL(16'000'000) /4)
MCFG_DEVICE_ADD("ctc2", Z80CTC, XTAL(16'000'000) /4)
MCFG_DEVICE_ADD("ctc3", Z80CTC, XTAL(16'000'000) /4)
- MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(16'000'000) /4)
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
- MCFG_DEVICE_ADD("sio2", Z80SIO, XTAL(16'000'000) /4)
- MCFG_DEVICE_ADD("sio3", Z80SIO, XTAL(16'000'000) /4)
- MCFG_DEVICE_ADD("sio4", Z80SIO, XTAL(16'000'000) /4)
- MCFG_DEVICE_ADD("sio5", Z80SIO, XTAL(16'000'000) /4)
+ Z80SIO(config, m_sio[0], XTAL(16'000'000) /4);
+ m_sio[0]->out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ m_sio[0]->out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ m_sio[0]->out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
+ Z80SIO(config, m_sio[1], XTAL(16'000'000) /4);
+ Z80SIO(config, m_sio[2], XTAL(16'000'000) /4);
+ Z80SIO(config, m_sio[3], XTAL(16'000'000) /4);
+ Z80SIO(config, m_sio[4], XTAL(16'000'000) /4);
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio1", z80sio_device, rxa_w))
@@ -183,10 +183,10 @@ MACHINE_CONFIG_START(onyx_state::c8002)
sio1s_clock.signal_handler().set("sio1s", FUNC(z80sio_device::rxtxcb_w));
//sio1s_clock.signal_handler().append("sio1s", FUNC(z80sio_device::txca_w));
- MCFG_DEVICE_ADD("sio1s", Z80SIO, XTAL(16'000'000) /4)
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232s", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232s", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232s", rs232_port_device, write_rts))
+ z80sio_device& sio1s(Z80SIO(config, "sio1s", XTAL(16'000'000) /4));
+ sio1s.out_txdb_callback().set("rs232s", FUNC(rs232_port_device::write_txd));
+ sio1s.out_dtrb_callback().set("rs232s", FUNC(rs232_port_device::write_dtr));
+ sio1s.out_rtsb_callback().set("rs232s", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232s", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio1s", z80sio_device, rxb_w))
@@ -257,8 +257,8 @@ MACHINE_CONFIG_START(onyx_state::c5000)
//MCFG_MACHINE_RESET_OVERRIDE(onyx_state, c8002)
MCFG_DEVICE_ADD("sio1_clock", CLOCK, 614400)
- MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("sio1", z80sio_device, rxtxcb_w))
- //MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("sio1" ,z80sio_device, txca_w))
+ MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(m_sio[0], z80sio_device, rxtxcb_w))
+ //MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(m_sio[0] ,z80sio_device, txca_w))
/* peripheral hardware */
//MCFG_DEVICE_ADD("pio1", Z80PIO, XTAL(16'000'000)/4)
@@ -268,17 +268,18 @@ MACHINE_CONFIG_START(onyx_state::c5000)
//MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL(16'000'000) /4)
//MCFG_DEVICE_ADD("ctc2", Z80CTC, XTAL(16'000'000) /4)
//MCFG_DEVICE_ADD("ctc3", Z80CTC, XTAL(16'000'000) /4)
- MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(16'000'000) /4)
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+
+ Z80SIO(config, m_sio[0], XTAL(16'000'000) /4);
+ m_sio[0]->out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ m_sio[0]->out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ m_sio[0]->out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
- MCFG_RS232_RXD_HANDLER(WRITELINE("sio1", z80sio_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE("sio1", z80sio_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE("sio1", z80sio_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio[0], z80sio_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_sio[0], z80sio_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_sio[0], z80sio_device, ctsb_w))
- //MCFG_DEVICE_ADD("sio2", Z80SIO, XTAL(16'000'000) /4)
+ //MCFG_DEVICE_ADD(m_sio[1]", Z80SIO, XTAL(16'000'000) /4)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp
index cadcf6628f9..4e94c0b5d90 100644
--- a/src/mame/drivers/p8k.cpp
+++ b/src/mame/drivers/p8k.cpp
@@ -448,18 +448,18 @@ MACHINE_CONFIG_START(p8k_state::p8k)
// Baud Gen 0, Baud Gen 1, Baud Gen 2,
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000))
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232", rs232_port_device, write_rts))
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'000'000)));
+ sio.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts));
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsb_w))
- MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(4'000'000))
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(4'000'000)));
+ sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD("pio0", Z80PIO, 1229000)
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
@@ -505,18 +505,18 @@ MACHINE_CONFIG_START(p8k_state::p8k_16)
MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL(4'000'000))
MCFG_Z80CTC_INTR_CB(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt))
- MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000))
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232", rs232_port_device, write_rts))
- MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt))
+ z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'000'000)));
+ sio.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts));
+ sio.out_int_callback().set(FUNC(p8k_state::p8k_16_daisy_interrupt));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsb_w))
- MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(4'000'000))
- MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt))
+ z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(4'000'000)));
+ sio1.out_int_callback().set(FUNC(p8k_state::p8k_16_daisy_interrupt));
MCFG_DEVICE_ADD("pio0", Z80PIO, XTAL(4'000'000))
MCFG_Z80PIO_OUT_INT_CB(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt))
diff --git a/src/mame/drivers/pm68k.cpp b/src/mame/drivers/pm68k.cpp
index c8020e6c8d9..ec009f21cb8 100644
--- a/src/mame/drivers/pm68k.cpp
+++ b/src/mame/drivers/pm68k.cpp
@@ -63,13 +63,13 @@ MACHINE_CONFIG_START(pm68k_state::pm68k)
MCFG_DEVICE_ADD("maincpu", M68000, 8000000)
MCFG_DEVICE_PROGRAM_MAP(pm68k_mem)
- MCFG_DEVICE_ADD("mpsc", I8274_NEW, 0)
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232a", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232a", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232a", rs232_port_device, write_rts))
- MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232b", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232b", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232b", rs232_port_device, write_rts))
+ i8274_new_device& mpsc(I8274_NEW(config, "mpsc", 0));
+ mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
+ mpsc.out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
+ mpsc.out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
+ mpsc.out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd));
+ mpsc.out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr));
+ mpsc.out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
am9513_device &stc(AM9513(config, "stc", 4000000));
stc.out4_cb().set("mpsc", FUNC(i8274_new_device::rxca_w));
diff --git a/src/mame/drivers/sun2.cpp b/src/mame/drivers/sun2.cpp
index c6a32ed90f9..4d0ffe3503a 100644
--- a/src/mame/drivers/sun2.cpp
+++ b/src/mame/drivers/sun2.cpp
@@ -647,11 +647,11 @@ MACHINE_CONFIG_START(sun2_state::sun2vme)
MCFG_INPUT_MERGER_ANY_HIGH("irq5") // 74LS05 open collectors
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", M68K_IRQ_5))
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 19.6608_MHz_XTAL / 4)
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 19.6608_MHz_XTAL / 4)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_6))
+ SCC8530N(config, SCC1_TAG, 19.6608_MHz_XTAL / 4);
+ scc8530_device& scc2(SCC8530N(config, SCC2_TAG, 19.6608_MHz_XTAL / 4));
+ scc2.out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ scc2.out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
+ scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_6);
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
@@ -700,11 +700,11 @@ MACHINE_CONFIG_START(sun2_state::sun2mbus)
MCFG_INPUT_MERGER_ANY_HIGH("irq5") // 74LS05 open collectors
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", M68K_IRQ_5))
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 39.3216_MHz_XTAL / 8)
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 39.3216_MHz_XTAL / 8)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_6))
+ SCC8530N(config, SCC1_TAG, 39.3216_MHz_XTAL / 8);
+ scc8530_device& scc2(SCC8530N(config, SCC2_TAG, 39.3216_MHz_XTAL / 8));
+ scc2.out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ scc2.out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
+ scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_6);
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
diff --git a/src/mame/drivers/sun3.cpp b/src/mame/drivers/sun3.cpp
index df958ac6cfe..a77c9a523fd 100644
--- a/src/mame/drivers/sun3.cpp
+++ b/src/mame/drivers/sun3.cpp
@@ -999,24 +999,24 @@ MACHINE_CONFIG_START(sun3_state::sun3)
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", sun3_state, sun3_timer, attotime::from_hz(100))
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd))
+ SCC8530N(config, m_scc1, 4.9152_MHz_XTAL);
+ m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd));
SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type3hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w));
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
+ SCC8530N(config, m_scc2, 4.9152_MHz_XTAL);
+ m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w))
MACHINE_CONFIG_END
// Sun 3/60
@@ -1083,24 +1083,24 @@ MACHINE_CONFIG_START(sun3_state::sun3_50)
// MMU Type 3 device space
ADDRESS_MAP_BANK(config, "type3").set_map(&sun3_state::vmetype3space_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000);
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd))
+ SCC8530N(config, m_scc1, 4.9152_MHz_XTAL);
+ m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd));
SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type3hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w));
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
+ SCC8530N(config, m_scc2, 4.9152_MHz_XTAL);
+ m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w))
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp
index cc901cf8d88..1607affc44a 100644
--- a/src/mame/drivers/sun3x.cpp
+++ b/src/mame/drivers/sun3x.cpp
@@ -595,24 +595,24 @@ MACHINE_CONFIG_START(sun3x_state::sun3_80)
MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0)
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd))
+ SCC8530N(config, m_scc1, 4.9152_MHz_XTAL);
+ m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd));
SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type3hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w));
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
+ SCC8530N(config, m_scc2, 4.9152_MHz_XTAL);
+ m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w))
MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0)
MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_6)
@@ -641,20 +641,20 @@ MACHINE_CONFIG_START(sun3x_state::sun3_460)
MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0)
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
+ SCC8530N(config, m_scc1, 4.9152_MHz_XTAL);
+ SCC8530N(config, m_scc2, 4.9152_MHz_XTAL);
+ m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w))
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp
index a670d1e38e3..20b6e9762ef 100644
--- a/src/mame/drivers/sun4.cpp
+++ b/src/mame/drivers/sun4.cpp
@@ -1923,27 +1923,28 @@ MACHINE_CONFIG_START(sun4_state::sun4)
ADDRESS_MAP_BANK(config, "type1").set_map(&sun4_state::type1space_s4_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000);
// Keyboard/mouse
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc1_int))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd))
+ SCC8530N(config, m_scc1, 4.9152_MHz_XTAL);
+ m_scc1->out_int_callback().set(FUNC(sun4_state::scc1_int));
+ m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd));
SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type4hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w));
// RS232 serial ports
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc2_int))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
+ SCC8530N(config, m_scc2, 4.9152_MHz_XTAL);
+ m_scc2->out_int_callback().set(FUNC(sun4_state::scc2_int));
+ m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
+
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w))
MCFG_NSCSI_BUS_ADD("scsibus")
MCFG_NSCSI_ADD("scsibus:0", sun_scsi_devices, "harddisk", false)
@@ -1977,27 +1978,27 @@ MACHINE_CONFIG_START(sun4_state::sun4c)
ADDRESS_MAP_BANK(config, "type1").set_map(&sun4_state::type1space_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000);
// Keyboard/mouse
- MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc1_int))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd))
+ SCC8530N(config, m_scc1, 4.9152_MHz_XTAL);
+ m_scc1->out_int_callback().set(FUNC(sun4_state::scc1_int));
+ m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd));
SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type5hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w));
// RS232 serial ports
- MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc2_int))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
+ SCC8530N(config, m_scc2, 4.9152_MHz_XTAL);
+ m_scc2->out_int_callback().set(FUNC(sun4_state::scc2_int));
+ m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w))
MCFG_NSCSI_BUS_ADD("scsibus")
MCFG_NSCSI_ADD("scsibus:0", sun_scsi_devices, "harddisk", false)
diff --git a/src/mame/drivers/sys2900.cpp b/src/mame/drivers/sys2900.cpp
index 52ba62ba3ab..090749163dc 100644
--- a/src/mame/drivers/sys2900.cpp
+++ b/src/mame/drivers/sys2900.cpp
@@ -160,8 +160,8 @@ MACHINE_CONFIG_START(sys2900_state::sys2900)
MCFG_DEVICE_ADD("ctc", Z80CTC, 0)
MCFG_DEVICE_ADD("pio", Z80PIO, 0)
- MCFG_DEVICE_ADD("sio1", Z80SIO, 0)
- MCFG_DEVICE_ADD("sio2", Z80SIO, 0)
+ Z80SIO(config, "sio1", 0);
+ Z80SIO(config, "sio2", 0);
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/systec.cpp b/src/mame/drivers/systec.cpp
index 1c5122376f4..cce923910d7 100644
--- a/src/mame/drivers/systec.cpp
+++ b/src/mame/drivers/systec.cpp
@@ -95,11 +95,11 @@ MACHINE_CONFIG_START(systec_state::systec)
uart_clock.signal_handler().append("sio", FUNC(z80sio_device::rxca_w));
/* Devices */
- MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000))
- //MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // no evidence of a daisy chain because IM2 is not set
- MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'000'000)));
+ //sio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // no evidence of a daisy chain because IM2 is not set
+ sio.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w))
diff --git a/src/mame/drivers/ts816.cpp b/src/mame/drivers/ts816.cpp
index 759b8e5b9a4..c1706da9907 100644
--- a/src/mame/drivers/ts816.cpp
+++ b/src/mame/drivers/ts816.cpp
@@ -274,26 +274,26 @@ MACHINE_CONFIG_START(ts816_state::ts816)
MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0)
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts816_state, kbd_put))
- //MCFG_DEVICE_ADD("sio0", Z80SIO, XTAL(16'000'000) / 4)
- //MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio2", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio3", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio4", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio5", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio6", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio7", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio8", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("sio9", Z80SIO, XTAL(16'000'000) / 4)
- MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ //z80sio_device& sio0(Z80SIO(config, "sio0", XTAL(16'000'000) / 4));
+ //sio0.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(16'000'000) / 4));
+ sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio2(Z80SIO(config, "sio2", XTAL(16'000'000) / 4));
+ sio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio3(Z80SIO(config, "sio3", XTAL(16'000'000) / 4));
+ sio3.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio4(Z80SIO(config, "sio4", XTAL(16'000'000) / 4));
+ sio4.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio5(Z80SIO(config, "sio5", XTAL(16'000'000) / 4));
+ sio5.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio6(Z80SIO(config, "sio6", XTAL(16'000'000) / 4));
+ sio6.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio7(Z80SIO(config, "sio7", XTAL(16'000'000) / 4));
+ sio7.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio8(Z80SIO(config, "sio8", XTAL(16'000'000) / 4));
+ sio8.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ z80sio_device& sio9(Z80SIO(config, "sio9", XTAL(16'000'000) / 4));
+ sio9.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL(16'000'000) / 4)
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/v102.cpp b/src/mame/drivers/v102.cpp
index de8d3508eeb..0feb16f30cc 100644
--- a/src/mame/drivers/v102.cpp
+++ b/src/mame/drivers/v102.cpp
@@ -93,8 +93,8 @@ MACHINE_CONFIG_START(v102_state::v102)
EEPROM_2804(config, "eeprom");
- MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, XTAL(18'575'000) / 5) // divider not verified
- MCFG_Z80SIO_OUT_INT_CB(WRITELINE("mainirq", input_merger_device, in_w<0>))
+ upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", XTAL(18'575'000) / 5)); // divider not verified
+ mpsc.out_int_callback().set("mainirq", FUNC(input_merger_device::in_w<0>));
MCFG_DEVICE_ADD("usart", I8251, XTAL(18'575'000) / 5) // divider not verified
MCFG_I8251_RXRDY_HANDLER(WRITELINE("mainirq", input_merger_device, in_w<1>))
diff --git a/src/mame/drivers/v550.cpp b/src/mame/drivers/v550.cpp
index 5c030b6248f..e140b347155 100644
--- a/src/mame/drivers/v550.cpp
+++ b/src/mame/drivers/v550.cpp
@@ -120,8 +120,8 @@ MACHINE_CONFIG_START(v550_state::v550)
MCFG_DEVICE_ADD("usart", I8251, 34.846_MHz_XTAL / 16) // NEC D8251AC
MCFG_I8251_RXRDY_HANDLER(WRITELINE("mainint", input_merger_device, in_w<1>))
- MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, 34.846_MHz_XTAL / 16) // NEC D7201C
- MCFG_Z80SIO_OUT_INT_CB(WRITELINE("mainint", input_merger_device, in_w<0>))
+ upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 34.846_MHz_XTAL / 16)); // NEC D7201C
+ mpsc.out_int_callback().set("mainint", FUNC(input_merger_device::in_w<0>));
INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp
index 9f70168cd64..7218c0d5b40 100644
--- a/src/mame/drivers/x68k.cpp
+++ b/src/mame/drivers/x68k.cpp
@@ -1634,7 +1634,7 @@ MACHINE_CONFIG_START(x68k_state::x68000)
MCFG_HD63450_DMA_READ_0_CB(READ8("upd72065", upd72065_device, mdma_r))
MCFG_HD63450_DMA_WRITE_0_CB(WRITE8("upd72065", upd72065_device, mdma_w))
- MCFG_DEVICE_ADD("scc", SCC8530, 40_MHz_XTAL / 8)
+ SCC8530(config, m_scc, 40_MHz_XTAL / 8);
MCFG_DEVICE_ADD("rp5c15", RP5C15, 32.768_kHz_XTAL)
MCFG_RP5C15_OUT_ALARM_CB(WRITELINE("mc68901", mc68901_device, i0_w))
@@ -1756,8 +1756,7 @@ MACHINE_CONFIG_START(x68k_state::x68030)
MCFG_DEVICE_MODIFY("hd63450")
MCFG_DEVICE_CLOCK(50_MHz_XTAL / 4)
- MCFG_DEVICE_MODIFY("scc")
- MCFG_DEVICE_CLOCK(20_MHz_XTAL / 4)
+ m_scc->set_clock(20_MHz_XTAL / 4);
MCFG_DEVICE_MODIFY("mb89352")
MCFG_DEVICE_CLOCK(20_MHz_XTAL / 4)
MACHINE_CONFIG_END
diff --git a/src/mame/machine/ioc2.cpp b/src/mame/machine/ioc2.cpp
index 390a50dc443..a3366cfac65 100644
--- a/src/mame/machine/ioc2.cpp
+++ b/src/mame/machine/ioc2.cpp
@@ -49,24 +49,24 @@ ioport_constructor ioc2_device::device_input_ports() const
}
MACHINE_CONFIG_START(ioc2_device::device_add_mconfig)
- MCFG_DEVICE_ADD(SCC_TAG, SCC85230, SCC_PCLK)
- MCFG_Z80SCC_OFFSETS(SCC_RXA_CLK.value(), SCC_TXA_CLK.value(), SCC_RXB_CLK.value(), SCC_TXB_CLK.value())
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_DTRA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80SCC_OUT_RTSA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_rts))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_DTRB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80SCC_OUT_RTSB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_rts))
+ SCC85230(config, m_scc, SCC_PCLK);
+ m_scc->configure_channels(SCC_RXA_CLK.value(), SCC_TXA_CLK.value(), SCC_RXB_CLK.value(), SCC_TXB_CLK.value());
+ m_scc->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc->out_dtra_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_dtr));
+ m_scc->out_rtsa_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_rts));
+ m_scc->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc->out_dtrb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_scc->out_rtsb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, scc85230_device, ctsa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, dcda_w))
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, rxa_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, scc85230_device, ctsa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, scc85230_device, dcda_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, scc85230_device, rxa_w))
MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, scc85230_device, ctsb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, dcdb_w))
- MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, rxb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, scc85230_device, ctsb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, scc85230_device, dcdb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, scc85230_device, rxb_w))
PC_LPT(config, m_pi1, 0);
diff --git a/src/mame/machine/iteagle_fpga.cpp b/src/mame/machine/iteagle_fpga.cpp
index 3b9db40f5ad..f7f80cffae6 100644
--- a/src/mame/machine/iteagle_fpga.cpp
+++ b/src/mame/machine/iteagle_fpga.cpp
@@ -57,21 +57,21 @@ MACHINE_CONFIG_START(iteagle_fpga_device::device_add_mconfig)
// RS232 serial ports
// The console terminal (com1) operates at 38400 baud
- MCFG_DEVICE_ADD(AM85C30_TAG, SCC85C30, 7.3728_MHz_XTAL)
- MCFG_Z80SCC_OFFSETS((7.3728_MHz_XTAL).value(), 0, (7.3728_MHz_XTAL).value(), 0)
- MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, iteagle_fpga_device, serial_interrupt))
- MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(COM2_TAG, rs232_port_device, write_txd))
- MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(COM1_TAG, rs232_port_device, write_txd))
+ SCC85C30(config, m_scc1, 7.3728_MHz_XTAL);
+ m_scc1->configure_channels((7.3728_MHz_XTAL).value(), 0, (7.3728_MHz_XTAL).value(), 0);
+ m_scc1->out_int_callback().set(FUNC(iteagle_fpga_device::serial_interrupt));
+ m_scc1->out_txda_callback().set(COM2_TAG, FUNC(rs232_port_device::write_txd));
+ m_scc1->out_txdb_callback().set(COM1_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(COM1_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, scc85c30_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, scc85c30_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, scc85c30_device, ctsb_w))
MCFG_DEVICE_ADD(COM2_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, scc85c30_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, scc85c30_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, scc85c30_device, ctsa_w))
MACHINE_CONFIG_END
void iteagle_fpga_device::device_start()