summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2013-12-23 11:23:58 +0000
committer smf- <smf-@users.noreply.github.com>2013-12-23 11:23:58 +0000
commit5b2f60d1fe14985d9af309f1accd29ca248e273b (patch)
treedea74333a3a292f0565bfa1be43ae0eb0b5601d1
parent144fcca53525d1692dac160f796c073fd3092f22 (diff)
removed unused rxd callback from mos6551 and made devcb2 consistent with other implementations [smf]
-rw-r--r--src/emu/bus/a2bus/a2ssc.c5
-rw-r--r--src/emu/bus/c64/swiftlink.c5
-rw-r--r--src/emu/bus/c64/turbo232.c5
-rw-r--r--src/emu/bus/pet/superpet.c5
-rw-r--r--src/emu/machine/mos6551.c37
-rw-r--r--src/emu/machine/mos6551.h36
-rw-r--r--src/mess/drivers/aim65_40.c2
-rw-r--r--src/mess/drivers/apple3.c2
-rw-r--r--src/mess/drivers/cbm2.c21
-rw-r--r--src/mess/drivers/clcd.c2
-rw-r--r--src/mess/drivers/concept.c4
-rw-r--r--src/mess/drivers/digel804.c2
-rw-r--r--src/mess/drivers/dragon.c6
-rw-r--r--src/mess/drivers/ec65.c2
-rw-r--r--src/mess/drivers/microtan.c2
-rw-r--r--src/mess/drivers/oric.c2
-rw-r--r--src/mess/drivers/plus4.c10
-rw-r--r--src/mess/drivers/rvoice.c2
-rw-r--r--src/mess/drivers/thomson.c2
-rw-r--r--src/mess/machine/coco_232.c2
20 files changed, 84 insertions, 70 deletions
diff --git a/src/emu/bus/a2bus/a2ssc.c b/src/emu/bus/a2bus/a2ssc.c
index c56df3aadb1..2b0404bda5a 100644
--- a/src/emu/bus/a2bus/a2ssc.c
+++ b/src/emu/bus/a2bus/a2ssc.c
@@ -29,8 +29,9 @@ const device_type A2BUS_SSC = &device_creator<a2bus_ssc_device>;
#define SSC_RS232_TAG "ssc_rs232"
MACHINE_CONFIG_FRAGMENT( ssc )
- MCFG_MOS6551_ADD(SSC_ACIA_TAG, XTAL_1_8432MHz, WRITELINE(a2bus_ssc_device, acia_irq_w))
- MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(SSC_RS232_TAG, rs232_port_device, tx))
+ MCFG_DEVICE_ADD(SSC_ACIA_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_MOS6551_IRQ_HANDLER(WRITELINE(a2bus_ssc_device, acia_irq_w))
+ MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(SSC_RS232_TAG, rs232_port_device, tx))
MCFG_RS232_PORT_ADD(SSC_RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(SSC_ACIA_TAG, mos6551_device, rxd_w))
diff --git a/src/emu/bus/c64/swiftlink.c b/src/emu/bus/c64/swiftlink.c
index 00ab5170585..2552239b2a2 100644
--- a/src/emu/bus/c64/swiftlink.c
+++ b/src/emu/bus/c64/swiftlink.c
@@ -40,8 +40,9 @@ const device_type C64_SWIFTLINK = &device_creator<c64_swiftlink_cartridge_device
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( c64_swiftlink )
- MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_3_6864MHz, WRITELINE(c64_swiftlink_cartridge_device, acia_irq_w))
- MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+ MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_3_6864MHz)
+ MCFG_MOS6551_IRQ_HANDLER(WRITELINE(c64_swiftlink_cartridge_device, acia_irq_w))
+ MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MOS6551_TAG, mos6551_device, rxd_w))
diff --git a/src/emu/bus/c64/turbo232.c b/src/emu/bus/c64/turbo232.c
index 8924baeeb0d..8e497cda3d3 100644
--- a/src/emu/bus/c64/turbo232.c
+++ b/src/emu/bus/c64/turbo232.c
@@ -40,8 +40,9 @@ const device_type C64_TURBO232 = &device_creator<c64_turbo232_cartridge_device>;
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( c64_turbo232 )
- MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_3_6864MHz, WRITELINE(c64_turbo232_cartridge_device, acia_irq_w))
- MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+ MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_3_6864MHz)
+ MCFG_MOS6551_IRQ_HANDLER(WRITELINE(c64_turbo232_cartridge_device, acia_irq_w))
+ MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MOS6551_TAG, mos6551_device, rxd_w))
diff --git a/src/emu/bus/pet/superpet.c b/src/emu/bus/pet/superpet.c
index 9f18c0302ab..777aa907e5a 100644
--- a/src/emu/bus/pet/superpet.c
+++ b/src/emu/bus/pet/superpet.c
@@ -75,8 +75,9 @@ static MACHINE_CONFIG_FRAGMENT( superpet )
MCFG_MOS6702_ADD(MOS6702_TAG, XTAL_16MHz/16)
- MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, WRITELINE(superpet_device, acia_irq_w))
- MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+ MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_MOS6551_IRQ_HANDLER(WRITELINE(superpet_device, acia_irq_w))
+ MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MOS6551_TAG, mos6551_device, rxd_w))
diff --git a/src/emu/machine/mos6551.c b/src/emu/machine/mos6551.c
index db6d370e9a6..e61dcada5c4 100644
--- a/src/emu/machine/mos6551.c
+++ b/src/emu/machine/mos6551.c
@@ -57,11 +57,11 @@ const device_type MOS6551 = &device_creator<mos6551_device>;
mos6551_device::mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, MOS6551, "MOS6551", tag, owner, clock, "mos6551", __FILE__),
device_serial_interface(mconfig, *this),
- m_write_irq(*this),
+ m_irq_handler(*this),
m_read_rxd(*this),
- m_write_txd(*this),
- m_write_rts(*this),
- m_write_dtr(*this),
+ m_txd_handler(*this),
+ m_rts_handler(*this),
+ m_dtr_handler(*this),
m_ctrl(0),
m_cmd(CMD_RIE),
m_st(ST_TDRE),
@@ -80,11 +80,10 @@ mos6551_device::mos6551_device(const machine_config &mconfig, const char *tag, d
void mos6551_device::device_start()
{
// resolve callbacks
- m_write_irq.resolve_safe();
- m_read_rxd.resolve_safe(1);
- m_write_txd.resolve_safe();
- m_write_rts.resolve_safe();
- m_write_dtr.resolve_safe();
+ m_irq_handler.resolve_safe();
+ m_txd_handler.resolve_safe();
+ m_rts_handler.resolve_safe();
+ m_dtr_handler.resolve_safe();
// state saving
save_item(NAME(m_ctrl));
@@ -126,10 +125,10 @@ void mos6551_device::device_timer(emu_timer &timer, device_timer_id id, int para
void mos6551_device::tra_callback()
{
- if (m_write_txd.isnull())
+ if (m_txd_handler.isnull())
transmit_register_send_bit();
else
- m_write_txd(transmit_register_get_data_bit());
+ m_txd_handler(transmit_register_get_data_bit());
}
@@ -147,7 +146,7 @@ void mos6551_device::tra_complete()
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
{
m_st |= ST_IRQ;
- m_write_irq(ASSERT_LINE);
+ m_irq_handler(ASSERT_LINE);
}
}
}
@@ -184,7 +183,7 @@ void mos6551_device::rcv_complete()
if (!(m_cmd & CMD_RIE))
{
m_st |= ST_IRQ;
- m_write_irq(ASSERT_LINE);
+ m_irq_handler(ASSERT_LINE);
}
}
@@ -247,14 +246,14 @@ void mos6551_device::update_serial()
else
m_connection_state &= ~DTR;
- m_write_dtr((m_connection_state & DTR) ? 0 : 1);
+ m_dtr_handler((m_connection_state & DTR) ? 0 : 1);
if ((m_cmd & CMD_TC_MASK) == CMD_TC_RTS_HI)
m_connection_state &= ~RTS;
else
m_connection_state |= RTS;
- m_write_rts((m_connection_state & RTS) ? 0 : 1);
+ m_rts_handler((m_connection_state & RTS) ? 0 : 1);
serial_connection_out();
}
@@ -283,7 +282,7 @@ READ8_MEMBER( mos6551_device::read )
case 1:
data = (m_dsr << 6) | (m_dcd << 5) | m_st;
m_st &= ~ST_IRQ;
- m_write_irq(CLEAR_LINE);
+ m_irq_handler(CLEAR_LINE);
break;
case 2:
@@ -319,7 +318,7 @@ WRITE8_MEMBER( mos6551_device::write )
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
{
m_st |= ST_IRQ;
- m_write_irq(ASSERT_LINE);
+ m_irq_handler(ASSERT_LINE);
}
}
break;
@@ -396,7 +395,7 @@ WRITE_LINE_MEMBER( mos6551_device::dsr_w )
if (m_dsr != state)
{
m_st |= ST_IRQ;
- m_write_irq(ASSERT_LINE);
+ m_irq_handler(ASSERT_LINE);
}
m_dsr = state;
@@ -412,7 +411,7 @@ WRITE_LINE_MEMBER( mos6551_device::dcd_w )
if (m_dcd != state)
{
m_st |= ST_IRQ;
- m_write_irq(ASSERT_LINE);
+ m_irq_handler(ASSERT_LINE);
}
m_dcd = state;
diff --git a/src/emu/machine/mos6551.h b/src/emu/machine/mos6551.h
index 43d28cbfe33..5292faa0ac0 100644
--- a/src/emu/machine/mos6551.h
+++ b/src/emu/machine/mos6551.h
@@ -39,18 +39,17 @@
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
-#define MCFG_MOS6551_ADD(_tag, _clock, _irq) \
- MCFG_DEVICE_ADD(_tag, MOS6551, _clock) \
- downcast<mos6551_device *>(device)->set_irq_callback(DEVCB2_##_irq);
+#define MCFG_MOS6551_IRQ_HANDLER(_devcb) \
+ devcb = &mos6551_device::set_irq_handler(*device, DEVCB2_##_devcb);
-#define MCFG_MOS6551_RXD_TXD_CALLBACKS(_rxd, _txd) \
- downcast<mos6551_device *>(device)->set_rxd_txd_callbacks(DEVCB2_##_rxd, DEVCB2_##_txd);
+#define MCFG_MOS6551_TXD_HANDLER(_devcb) \
+ devcb = &mos6551_device::set_txd_handler(*device, DEVCB2_##_devcb);
-#define MCFG_MOS6551_RTS_CALLBACK(_rts) \
- downcast<mos6551_device *>(device)->set_rts_callback(DEVCB2_##_rts);
+#define MCFG_MOS6551_RTS_HANDLER(_devcb) \
+ devcb = &mos6551_device::set_rts_handler(*device, DEVCB2_##_devcb);
-#define MCFG_MOS6551_DTR_CALLBACK(_dtr) \
- downcast<mos6551_device *>(device)->set_dtr_callback(DEVCB2_##_dtr);
+#define MCFG_MOS6551_DTR_HANDLER(_devcb) \
+ devcb = &mos6551_device::set_dtr_handler(*device, DEVCB2_##_devcb);
@@ -67,13 +66,10 @@ public:
// construction/destruction
mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- template<class _irq> void set_irq_callback(_irq irq) { m_write_irq.set_callback(irq); }
- template<class _rxd, class _txd> void set_rxd_txd_callbacks(_rxd rxd, _txd txd) {
- m_read_rxd.set_callback(rxd);
- m_write_txd.set_callback(txd);
- }
- template<class _rts> void set_rts_callback(_rts rts) { m_write_rts.set_callback(rts); }
- template<class _dtr> void set_dtr_callback(_dtr dtr) { m_write_dtr.set_callback(dtr); }
+ template<class _Object> static devcb2_base &set_irq_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_irq_handler.set_callback(object); }
+ template<class _Object> static devcb2_base &set_txd_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_txd_handler.set_callback(object); }
+ template<class _Object> static devcb2_base &set_rts_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_rts_handler.set_callback(object); }
+ template<class _Object> static devcb2_base &set_dtr_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_dtr_handler.set_callback(object); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
@@ -170,11 +166,11 @@ protected:
void update_serial();
- devcb2_write_line m_write_irq;
+ devcb2_write_line m_irq_handler;
devcb2_read_line m_read_rxd;
- devcb2_write_line m_write_txd;
- devcb2_write_line m_write_rts;
- devcb2_write_line m_write_dtr;
+ devcb2_write_line m_txd_handler;
+ devcb2_write_line m_rts_handler;
+ devcb2_write_line m_dtr_handler;
UINT8 m_ctrl;
UINT8 m_cmd;
diff --git a/src/mess/drivers/aim65_40.c b/src/mess/drivers/aim65_40.c
index 706aadfc174..60f88124f26 100644
--- a/src/mess/drivers/aim65_40.c
+++ b/src/mess/drivers/aim65_40.c
@@ -174,7 +174,7 @@ static MACHINE_CONFIG_START( aim65_40, aim65_40_state )
MCFG_VIA6522_ADD(M6522_0_TAG, 0, user_via_intf)
MCFG_VIA6522_ADD(M6522_1_TAG, 0, system_via_intf)
MCFG_VIA6522_ADD(M6522_2_TAG, 0, kb_via_intf)
- MCFG_MOS6551_ADD(M6551_TAG, XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD(M6551_TAG, MOS6551, XTAL_1_8432MHz)
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mess/drivers/apple3.c b/src/mess/drivers/apple3.c
index 578ec180fe0..196fc9a2d79 100644
--- a/src/mess/drivers/apple3.c
+++ b/src/mess/drivers/apple3.c
@@ -98,7 +98,7 @@ static MACHINE_CONFIG_START( apple3, apple3_state )
MCFG_APPLEFDC_ADD("fdc", apple3_fdc_interface)
MCFG_LEGACY_FLOPPY_APPLE_4_DRIVES_ADD(apple3_floppy_interface,1,4)
/* acia */
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* via */
MCFG_VIA6522_ADD("via6522_0", 1000000, apple3_via_0_intf)
diff --git a/src/mess/drivers/cbm2.c b/src/mess/drivers/cbm2.c
index cf57527daf2..76e9bf38eb0 100644
--- a/src/mess/drivers/cbm2.c
+++ b/src/mess/drivers/cbm2.c
@@ -2166,8 +2166,11 @@ static MACHINE_CONFIG_START( p500_ntsc, p500_state )
MCFG_PLS100_ADD(PLA2_TAG)
MCFG_TPI6525_ADD(MOS6525_1_TAG, p500_tpi1_intf)
MCFG_TPI6525_ADD(MOS6525_2_TAG, p500_tpi2_intf)
- MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w))
- MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+
+ MCFG_DEVICE_ADD(MOS6551A_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w))
+ MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+
MCFG_MOS6526_ADD(MOS6526_TAG, VIC6567_CLOCK, 60, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i2_w))
MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w))
MCFG_MOS6526_PORT_A_CALLBACKS(READ8(cbm2_state, cia_pa_r), WRITE8(cbm2_state, cia_pa_w))
@@ -2229,8 +2232,11 @@ static MACHINE_CONFIG_START( p500_pal, p500_state )
MCFG_PLS100_ADD(PLA2_TAG)
MCFG_TPI6525_ADD(MOS6525_1_TAG, p500_tpi1_intf)
MCFG_TPI6525_ADD(MOS6525_2_TAG, p500_tpi2_intf)
- MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w))
- MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+
+ MCFG_DEVICE_ADD(MOS6551A_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w))
+ MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+
MCFG_MOS6526_ADD(MOS6526_TAG, VIC6569_CLOCK, 50, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i2_w))
MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w))
MCFG_MOS6526_PORT_A_CALLBACKS(READ8(cbm2_state, cia_pa_r), WRITE8(cbm2_state, cia_pa_w))
@@ -2299,8 +2305,11 @@ static MACHINE_CONFIG_START( cbm2lp_ntsc, cbm2_state )
MCFG_PLS100_ADD(PLA1_TAG)
MCFG_TPI6525_ADD(MOS6525_1_TAG, tpi1_intf)
MCFG_TPI6525_ADD(MOS6525_2_TAG, tpi2_intf)
- MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w))
- MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+
+ MCFG_DEVICE_ADD(MOS6551A_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w))
+ MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx))
+
MCFG_MOS6526_ADD(MOS6526_TAG, XTAL_18MHz/9, 60, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i2_w))
MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w))
MCFG_MOS6526_PORT_A_CALLBACKS(READ8(cbm2_state, cia_pa_r), WRITE8(cbm2_state, cia_pa_w))
diff --git a/src/mess/drivers/clcd.c b/src/mess/drivers/clcd.c
index 8a72a6a5a84..37c0d208ff8 100644
--- a/src/mess/drivers/clcd.c
+++ b/src/mess/drivers/clcd.c
@@ -435,7 +435,7 @@ static MACHINE_CONFIG_START( clcd, clcd_state )
MCFG_VIA6522_ADD("via0", 0, via0_intf)
MCFG_VIA6522_ADD("via1", 0, via1_intf)
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* video hardware */
MCFG_SCREEN_ADD("screen", LCD)
diff --git a/src/mess/drivers/concept.c b/src/mess/drivers/concept.c
index 20aff0aa412..daf474b624d 100644
--- a/src/mess/drivers/concept.c
+++ b/src/mess/drivers/concept.c
@@ -233,8 +233,8 @@ static MACHINE_CONFIG_START( concept, concept_state )
MCFG_VIA6522_ADD("via6522_0", 1022750, concept_via6522_intf)
/* ACIAs */
- MCFG_MOS6551_ADD(ACIA_0_TAG, XTAL_1_8432MHz, NULL)
- MCFG_MOS6551_ADD(ACIA_1_TAG, XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD(ACIA_0_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_DEVICE_ADD(ACIA_1_TAG, MOS6551, XTAL_1_8432MHz)
MCFG_CONCEPT_EXP_PORT_ADD("exp1", concept_exp_devices, NULL)
MCFG_CONCEPT_EXP_PORT_ADD("exp2", concept_exp_devices, "fdc") // Flat cable Hard Disk Controller in Slot 2
diff --git a/src/mess/drivers/digel804.c b/src/mess/drivers/digel804.c
index 47927c857ed..9dbdcd4c2a9 100644
--- a/src/mess/drivers/digel804.c
+++ b/src/mess/drivers/digel804.c
@@ -605,7 +605,7 @@ static MACHINE_CONFIG_START( digel804, digel804_state )
MCFG_MM74C923_ADD("74c923", digel804_keypad_intf)
/* acia */
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("256K")
diff --git a/src/mess/drivers/dragon.c b/src/mess/drivers/dragon.c
index d44f1089b1b..dedae665152 100644
--- a/src/mess/drivers/dragon.c
+++ b/src/mess/drivers/dragon.c
@@ -174,7 +174,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( dragon64, dragon_base, dragon64_state )
MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, dragon_state::cartridge_config, dragon_cart, "dragon_fdc")
// acia
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED_CLASS( d64plus, dragon_base, dragon64_state )
@@ -186,7 +186,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( d64plus, dragon_base, dragon64_state )
MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, dragon_state::cartridge_config, dragon_cart, "dragon_fdc")
// acia
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED_CLASS( dgnalpha, dragon_base, dragon_alpha_state )
@@ -198,7 +198,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( dgnalpha, dragon_base, dragon_alpha_state )
MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, dragon_alpha_state::cartridge_config, dragon_cart, NULL)
// acia
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
// floppy
MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(coco_floppy_interface)
diff --git a/src/mess/drivers/ec65.c b/src/mess/drivers/ec65.c
index 99f38dd6163..94fc4a62847 100644
--- a/src/mess/drivers/ec65.c
+++ b/src/mess/drivers/ec65.c
@@ -271,7 +271,7 @@ static MACHINE_CONFIG_START( ec65, ec65_state )
MCFG_ACIA6850_ADD(ACIA6850_TAG, ec65_acia_intf)
MCFG_VIA6522_ADD(VIA6522_0_TAG, XTAL_4MHz / 4, ec65_via_0_intf)
MCFG_VIA6522_ADD(VIA6522_1_TAG, XTAL_4MHz / 4, ec65_via_1_intf)
- MCFG_MOS6551_ADD(ACIA6551_TAG, XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD(ACIA6551_TAG, MOS6551, XTAL_1_8432MHz)
MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/microtan.c b/src/mess/drivers/microtan.c
index 61f5b61f1db..a3a6878ee9d 100644
--- a/src/mess/drivers/microtan.c
+++ b/src/mess/drivers/microtan.c
@@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( microtan, microtan_state )
MCFG_CASSETTE_ADD( "cassette", default_cassette_interface )
/* acia */
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* via */
MCFG_VIA6522_ADD("via6522_0", 0, microtan_via6522_0)
diff --git a/src/mess/drivers/oric.c b/src/mess/drivers/oric.c
index 71489075ec9..d008cc29594 100644
--- a/src/mess/drivers/oric.c
+++ b/src/mess/drivers/oric.c
@@ -425,7 +425,7 @@ static MACHINE_CONFIG_DERIVED( telstrat, oric )
MCFG_MACHINE_START_OVERRIDE(oric_state, telestrat )
/* acia */
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* via */
MCFG_VIA6522_ADD( "via6522_1", 1000000, telestrat_via2_interface )
diff --git a/src/mess/drivers/plus4.c b/src/mess/drivers/plus4.c
index 940376bf3a1..cc78455acb2 100644
--- a/src/mess/drivers/plus4.c
+++ b/src/mess/drivers/plus4.c
@@ -741,7 +741,10 @@ static MACHINE_CONFIG_START( ntsc, plus4_state )
// devices
MCFG_PLS100_ADD(PLA_TAG)
- MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, WRITELINE(plus4_state, acia_irq_w))
+
+ MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_MOS6551_IRQ_HANDLER(WRITELINE(plus4_state, acia_irq_w))
+
MCFG_MOS6529_ADD(MOS6529_USER_TAG, DEVREAD8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_r), DEVWRITE8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_w))
MCFG_MOS6529_ADD(MOS6529_KB_TAG, CONSTANT(0xff), WRITE8(plus4_state, spi_kb_w))
MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, plus4_datassette_devices, "c1531", NULL)
@@ -787,7 +790,10 @@ static MACHINE_CONFIG_START( pal, plus4_state )
// devices
MCFG_PLS100_ADD(PLA_TAG)
- MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, WRITELINE(plus4_state, acia_irq_w))
+
+ MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_1_8432MHz)
+ MCFG_MOS6551_IRQ_HANDLER(WRITELINE(plus4_state, acia_irq_w))
+
MCFG_MOS6529_ADD(MOS6529_USER_TAG, DEVREAD8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_r), DEVWRITE8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_w))
MCFG_MOS6529_ADD(MOS6529_KB_TAG, CONSTANT(0xff), WRITE8(plus4_state, spi_kb_w))
MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, plus4_datassette_devices, "c1531", NULL)
diff --git a/src/mess/drivers/rvoice.c b/src/mess/drivers/rvoice.c
index f1f21f484d4..63b1d71d55a 100644
--- a/src/mess/drivers/rvoice.c
+++ b/src/mess/drivers/rvoice.c
@@ -370,7 +370,7 @@ static MACHINE_CONFIG_START( rvoicepc, rvoice_state )
//MCFG_CPU_IO_MAP(hd63701_slave_io)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
- MCFG_MOS6551_ADD("acia65c51", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia65c51", MOS6551, XTAL_1_8432MHz)
/* video hardware */
//MCFG_DEFAULT_LAYOUT(layout_dectalk) // hack to avoid screenless system crash
diff --git a/src/mess/drivers/thomson.c b/src/mess/drivers/thomson.c
index a32cd516583..f3eaeefbcbf 100644
--- a/src/mess/drivers/thomson.c
+++ b/src/mess/drivers/thomson.c
@@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( to7, thomson_state )
MCFG_PIA6821_ADD( THOM_PIA_MODEM, to7_pia6821_modem )
/* acia */
- MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz)
/* to7 serial io line */
MCFG_TO7_IO_LINE_ADD("to7_io")
diff --git a/src/mess/machine/coco_232.c b/src/mess/machine/coco_232.c
index 5750be17560..c4dc18e64e3 100644
--- a/src/mess/machine/coco_232.c
+++ b/src/mess/machine/coco_232.c
@@ -21,7 +21,7 @@
***************************************************************************/
static MACHINE_CONFIG_FRAGMENT(coco_rs232)
- MCFG_MOS6551_ADD(UART_TAG, XTAL_1_8432MHz, NULL)
+ MCFG_DEVICE_ADD(UART_TAG, MOS6551, XTAL_1_8432MHz)
MACHINE_CONFIG_END
//**************************************************************************