summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-09-26 18:24:17 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2018-09-26 18:24:17 +0200
commit0cd1758e544f3f89df226b9861b7201be7fd4b3a (patch)
tree8961c7c056ec734a3d2f16e7620b132b52d53360
parent0ab6ef3f39e7fc5a2a136d24137e09b8e7859a2a (diff)
upd1990a, upd4701, upd4992, upd7002: removed MCFG macros (nw)
-rw-r--r--src/devices/bus/a2bus/a2thunderclock.cpp8
-rw-r--r--src/devices/bus/s100/wunderbus.cpp3
-rw-r--r--src/devices/machine/upd1990a.h25
-rw-r--r--src/devices/machine/upd4701.h23
-rw-r--r--src/devices/machine/upd4992.h7
-rw-r--r--src/devices/machine/upd7002.h24
-rw-r--r--src/mame/drivers/apc.cpp2
-rw-r--r--src/mame/drivers/bbc.cpp12
-rw-r--r--src/mame/drivers/cabal.cpp12
-rw-r--r--src/mame/drivers/cps1.cpp6
-rw-r--r--src/mame/drivers/kdt6.cpp2
-rw-r--r--src/mame/drivers/konamigv.cpp22
-rw-r--r--src/mame/drivers/ksys573.cpp74
-rw-r--r--src/mame/drivers/kyocera.cpp17
-rw-r--r--src/mame/drivers/m72.cpp12
-rw-r--r--src/mame/drivers/neogeo.cpp7
-rw-r--r--src/mame/drivers/neoprint.cpp4
-rw-r--r--src/mame/drivers/pc1500.cpp2
-rw-r--r--src/mame/drivers/pc8001.cpp4
-rw-r--r--src/mame/drivers/pc8401a.cpp4
-rw-r--r--src/mame/drivers/pc8801.cpp2
-rw-r--r--src/mame/drivers/pc9801.cpp4
-rw-r--r--src/mame/drivers/prof80.cpp14
-rw-r--r--src/mame/drivers/segae.cpp11
-rw-r--r--src/mame/drivers/segas16b.cpp9
-rw-r--r--src/mame/drivers/segas18.cpp46
-rw-r--r--src/mame/drivers/segas24.cpp18
-rw-r--r--src/mame/drivers/segas32.cpp18
-rw-r--r--src/mame/drivers/seta.cpp28
-rw-r--r--src/mame/drivers/seta2.cpp2
-rw-r--r--src/mame/drivers/ssv.cpp6
-rw-r--r--src/mame/drivers/tnzs.cpp17
-rw-r--r--src/mame/drivers/ultrsprt.cpp12
-rw-r--r--src/mame/includes/bbc.h4
-rw-r--r--src/mame/includes/seta2.h4
-rw-r--r--src/mame/machine/bbc.cpp4
36 files changed, 219 insertions, 250 deletions
diff --git a/src/devices/bus/a2bus/a2thunderclock.cpp b/src/devices/bus/a2bus/a2thunderclock.cpp
index dfa54932f5a..69cc87a07ff 100644
--- a/src/devices/bus/a2bus/a2thunderclock.cpp
+++ b/src/devices/bus/a2bus/a2thunderclock.cpp
@@ -54,9 +54,11 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(a2bus_thunderclock_device::device_add_mconfig)
- MCFG_UPD1990A_ADD(THUNDERCLOCK_UPD1990_TAG, 1021800, WRITELINE(DEVICE_SELF, a2bus_thunderclock_device, upd_dataout_w), NOOP)
-MACHINE_CONFIG_END
+void a2bus_thunderclock_device::device_add_mconfig(machine_config &config)
+{
+ UPD1990A(config, m_upd1990ac, 1021800);
+ m_upd1990ac->data_callback().set(FUNC(a2bus_thunderclock_device::upd_dataout_w));
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp
index 8c7e82e5a27..cb483a7a381 100644
--- a/src/devices/bus/s100/wunderbus.cpp
+++ b/src/devices/bus/s100/wunderbus.cpp
@@ -132,7 +132,8 @@ MACHINE_CONFIG_START(s100_wunderbus_device::device_add_mconfig)
MCFG_RS232_RI_HANDLER(WRITELINE(m_ace3, ins8250_uart_device, ri_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(m_ace3, ins8250_uart_device, cts_w))
- MCFG_UPD1990A_ADD(UPD1990C_TAG, XTAL(32'768), NOOP, WRITELINE(DEVICE_SELF, s100_wunderbus_device, rtc_tp_w))
+ UPD1990A(config, m_rtc);
+ m_rtc->tp_callback().set(FUNC(s100_wunderbus_device::rtc_tp_w));
MACHINE_CONFIG_END
diff --git a/src/devices/machine/upd1990a.h b/src/devices/machine/upd1990a.h
index a9438b836e9..fbd26e6dfb4 100644
--- a/src/devices/machine/upd1990a.h
+++ b/src/devices/machine/upd1990a.h
@@ -24,23 +24,6 @@
#include "dirtc.h"
-
-//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_UPD1990A_ADD(_tag, _clock, _data, _tp) \
- MCFG_DEVICE_ADD((_tag), UPD1990A, _clock) \
- downcast<upd1990a_device *>(device)->set_data_callback(DEVCB_##_data); \
- downcast<upd1990a_device *>(device)->set_tp_callback(DEVCB_##_tp);
-
-#define MCFG_UPD4990A_ADD(_tag, _clock, _data, _tp) \
- MCFG_DEVICE_ADD((_tag), UPD4990A, _clock) \
- downcast<upd1990a_device *>(device)->set_data_callback(DEVCB_##_data); \
- downcast<upd1990a_device *>(device)->set_tp_callback(DEVCB_##_tp);
-
-
-
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -51,10 +34,10 @@ class upd1990a_device : public device_t, public device_rtc_interface
{
public:
// construction/destruction
- upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 32'768);
- template <class Object> void set_data_callback(Object &&data) { m_write_data.set_callback(std::forward<Object>(data)); }
- template <class Object> void set_tp_callback(Object &&tp) { m_write_tp.set_callback(std::forward<Object>(tp)); }
+ auto data_callback() { return m_write_data.bind(); }
+ auto tp_callback() { return m_write_tp.bind(); }
DECLARE_WRITE_LINE_MEMBER( oe_w );
DECLARE_WRITE_LINE_MEMBER( cs_w );
@@ -148,7 +131,7 @@ private:
class upd4990a_device : public upd1990a_device
{
public:
- upd4990a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ upd4990a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 32'768);
};
diff --git a/src/devices/machine/upd4701.h b/src/devices/machine/upd4701.h
index 9fab9024f2c..dcf389ff1c1 100644
--- a/src/devices/machine/upd4701.h
+++ b/src/devices/machine/upd4701.h
@@ -27,29 +27,16 @@
#pragma once
-/***************************************************************************
- MACROS / CONSTANTS
-***************************************************************************/
-
-#define MCFG_UPD4701_PORTX(_tag) \
- downcast<upd4701_device &>(*device).set_portx_tag(_tag);
-#define MCFG_UPD4701_PORTY(_tag) \
- downcast<upd4701_device &>(*device).set_porty_tag(_tag);
-#define MCFG_UPD4701_CF_CALLBACK(_devcb) \
- devcb = downcast<upd4701_device &>(*device).set_cf_cb(DEVCB_##_devcb);
-#define MCFG_UPD4701_SF_CALLBACK(_devcb) \
- devcb = downcast<upd4701_device &>(*device).set_sf_cb(DEVCB_##_devcb);
-
class upd4701_device : public device_t
{
public:
- upd4701_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+ upd4701_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
// configuration
- void set_portx_tag(const char *tag) { m_portx.set_tag(tag); }
- void set_porty_tag(const char *tag) { m_porty.set_tag(tag); }
- template<class Object> devcb_base &set_cf_cb(Object &&cb) { return m_cf_cb.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_sf_cb(Object &&cb) { return m_sf_cb.set_callback(std::forward<Object>(cb)); }
+ template <typename T> void set_portx_tag(T &&tag) { m_portx.set_tag(std::forward<T>(tag)); }
+ template <typename T> void set_porty_tag(T &&tag) { m_porty.set_tag(std::forward<T>(tag)); }
+ auto cf_cb() { return m_cf_cb.bind(); }
+ auto sf_cb() { return m_sf_cb.bind(); }
void x_add(s16 data);
void y_add(s16 data);
diff --git a/src/devices/machine/upd4992.h b/src/devices/machine/upd4992.h
index 6e023bd118d..02627094cf2 100644
--- a/src/devices/machine/upd4992.h
+++ b/src/devices/machine/upd4992.h
@@ -15,13 +15,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_UPD4992_ADD(tag) \
- MCFG_DEVICE_ADD((tag), UPD4992, XTAL(32'768))
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/devices/machine/upd7002.h b/src/devices/machine/upd7002.h
index 2dda4bc8e18..5b62d13dc34 100644
--- a/src/devices/machine/upd7002.h
+++ b/src/devices/machine/upd7002.h
@@ -16,15 +16,6 @@
#pragma once
/***************************************************************************
- TYPE DEFINITIONS
-***************************************************************************/
-
-#define UPD7002_GET_ANALOGUE(name) int name(int channel_number)
-
-#define UPD7002_EOC(name) void name(int data)
-
-
-/***************************************************************************
MACROS
***************************************************************************/
@@ -36,8 +27,8 @@ public:
upd7002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <typename Object> void set_get_analogue_callback(Object &&cb) { m_get_analogue_cb = std::forward<Object>(cb); }
- template <typename Object> void set_eoc_callback(Object &&cb) { m_eoc_cb = std::forward<Object>(cb); }
+ template <typename... T> void set_get_analogue_callback(T &&... args) { m_get_analogue_cb = get_analogue_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_eoc_callback(T &&... args) { m_eoc_cb = eoc_delegate(std::forward<T>(args)...); }
DECLARE_READ8_MEMBER(eoc_r);
DECLARE_READ8_MEMBER(read);
@@ -94,15 +85,4 @@ private:
DECLARE_DEVICE_TYPE(UPD7002, upd7002_device)
-
-/***************************************************************************
- DEVICE CONFIGURATION MACROS
-***************************************************************************/
-
-#define MCFG_UPD7002_GET_ANALOGUE_CB(_class, _method) \
- downcast<upd7002_device &>(*device).set_get_analogue_callback(upd7002_device::get_analogue_delegate(&_class::_method, #_class "::" #_method, this));
-
-#define MCFG_UPD7002_EOC_CB(_class, _method) \
- downcast<upd7002_device &>(*device).set_eoc_callback(upd7002_device::eoc_delegate(&_class::_method, #_class "::" #_method, this));
-
#endif // MAME_MACHINE_UPD7002_H
diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp
index dcb07ab2cdc..764a22a3c65 100644
--- a/src/mame/drivers/apc.cpp
+++ b/src/mame/drivers/apc.cpp
@@ -971,7 +971,7 @@ MACHINE_CONFIG_START(apc_state::apc)
m_dmac->out_dack_callback<3>().set(FUNC(apc_state::apc_dack3_w));
NVRAM(config, m_cmos, nvram_device::DEFAULT_ALL_1);
- MCFG_UPD1990A_ADD(m_rtc, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
MCFG_UPD765A_ADD(m_fdc, true, true)
MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(m_i8259_s, pic8259_device, ir4_w))
diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp
index f9647cb0c2a..0312b0a224c 100644
--- a/src/mame/drivers/bbc.cpp
+++ b/src/mame/drivers/bbc.cpp
@@ -935,9 +935,9 @@ MACHINE_CONFIG_START(bbc_state::bbcb)
m_via6522_1->irq_handler().set("irqs", FUNC(input_merger_device::in_w<2>));
/* adc */
- MCFG_DEVICE_ADD("upd7002", UPD7002, 0)
- MCFG_UPD7002_GET_ANALOGUE_CB(bbc_state, BBC_get_analogue_input)
- MCFG_UPD7002_EOC_CB(bbc_state, BBC_uPD7002_EOC)
+ UPD7002(config, m_upd7002, 0);
+ m_upd7002->set_get_analogue_callback(FUNC(bbc_state::BBC_get_analogue_input), this);
+ m_upd7002->set_eoc_callback(FUNC(bbc_state::BBC_uPD7002_EOC), this);
/* printer */
centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
@@ -1368,9 +1368,9 @@ MACHINE_CONFIG_START(bbc_state::bbcm)
m_acia_clock->signal_handler().set(FUNC(bbc_state::write_acia_clock));
/* adc */
- MCFG_DEVICE_ADD("upd7002", UPD7002, 0)
- MCFG_UPD7002_GET_ANALOGUE_CB(bbc_state, BBC_get_analogue_input)
- MCFG_UPD7002_EOC_CB(bbc_state, BBC_uPD7002_EOC)
+ UPD7002(config, m_upd7002, 0);
+ m_upd7002->set_get_analogue_callback(FUNC(bbc_state::BBC_get_analogue_input), this);
+ m_upd7002->set_eoc_callback(FUNC(bbc_state::BBC_uPD7002_EOC), this);
/* system via */
VIA6522(config, m_via6522_0, 16_MHz_XTAL / 16);
diff --git a/src/mame/drivers/cabal.cpp b/src/mame/drivers/cabal.cpp
index 8a24021bba1..a32ce364351 100644
--- a/src/mame/drivers/cabal.cpp
+++ b/src/mame/drivers/cabal.cpp
@@ -553,13 +553,13 @@ MACHINE_CONFIG_START(cabal_state::cabalt)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(trackball_main_map)
- MCFG_DEVICE_ADD("upd4701l", UPD4701A, 0)
- MCFG_UPD4701_PORTX("IN0")
- MCFG_UPD4701_PORTY("IN1")
+ upd4701_device &upd4701l(UPD4701A(config, "upd4701l"));
+ upd4701l.set_portx_tag("IN0");
+ upd4701l.set_porty_tag("IN1");
- MCFG_DEVICE_ADD("upd4701h", UPD4701A, 0)
- MCFG_UPD4701_PORTX("IN2")
- MCFG_UPD4701_PORTY("IN3")
+ upd4701_device &upd4701h(UPD4701A(config, "upd4701h"));
+ upd4701h.set_portx_tag("IN2");
+ upd4701h.set_porty_tag("IN3");
MACHINE_CONFIG_END
MACHINE_CONFIG_START(cabal_state::cabalbl2)
diff --git a/src/mame/drivers/cps1.cpp b/src/mame/drivers/cps1.cpp
index 1da56494129..2d949bac9ee 100644
--- a/src/mame/drivers/cps1.cpp
+++ b/src/mame/drivers/cps1.cpp
@@ -3427,9 +3427,9 @@ MACHINE_CONFIG_START(cps_state::forgottn)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(forgottn_map)
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0)
- MCFG_UPD4701_PORTX("DIAL0")
- MCFG_UPD4701_PORTY("DIAL1")
+ upd4701_device &upd4701(UPD4701A(config, "upd4701"));
+ upd4701.set_portx_tag("DIAL0");
+ upd4701.set_porty_tag("DIAL1");
MACHINE_CONFIG_END
MACHINE_CONFIG_START(cps_state::cps1_12MHz)
diff --git a/src/mame/drivers/kdt6.cpp b/src/mame/drivers/kdt6.cpp
index dcd91a68ccb..c60a855dafb 100644
--- a/src/mame/drivers/kdt6.cpp
+++ b/src/mame/drivers/kdt6.cpp
@@ -705,7 +705,7 @@ MACHINE_CONFIG_START(kdt6_state::psi98)
INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
- MCFG_UPD1990A_ADD("rtc", XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
MCFG_UPD765A_ADD("fdc", true, true)
MCFG_UPD765_INTRQ_CALLBACK(WRITELINE("ctc1", z80ctc_device, trg0))
diff --git a/src/mame/drivers/konamigv.cpp b/src/mame/drivers/konamigv.cpp
index 1d126a06536..858e6becf38 100644
--- a/src/mame/drivers/konamigv.cpp
+++ b/src/mame/drivers/konamigv.cpp
@@ -229,8 +229,8 @@ void konamigv_state::btchamp_map(address_map &map)
konamigv_map(map);
map(0x1f380000, 0x1f3fffff).rw("flash", FUNC(intelfsh16_device::read), FUNC(intelfsh16_device::write));
- map(0x1f680080, 0x1f680087).r("upd1", FUNC(upd4701_device::read_xy)).umask32(0xff00ff00);
- map(0x1f680080, 0x1f680087).r("upd2", FUNC(upd4701_device::read_xy)).umask32(0x00ff00ff);
+ map(0x1f680080, 0x1f680087).r(m_btc_trackball[0], FUNC(upd4701_device::read_xy)).umask32(0xff00ff00);
+ map(0x1f680080, 0x1f680087).r(m_btc_trackball[1], FUNC(upd4701_device::read_xy)).umask32(0x00ff00ff);
map(0x1f680088, 0x1f680089).w(FUNC(konamigv_state::btc_trackball_w));
map(0x1f6800e0, 0x1f6800e3).nopw();
}
@@ -518,9 +518,9 @@ MACHINE_CONFIG_START(simpbowl_state::simpbowl)
FUJITSU_29F016A(config, "flash2");
FUJITSU_29F016A(config, "flash3");
- MCFG_DEVICE_ADD("upd", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACK0_X")
- MCFG_UPD4701_PORTY("TRACK0_Y")
+ upd4701_device &upd(UPD4701A(config, "upd"));
+ upd.set_portx_tag("TRACK0_X");
+ upd.set_porty_tag("TRACK0_Y");
MACHINE_CONFIG_END
static INPUT_PORTS_START( simpbowl )
@@ -555,13 +555,13 @@ MACHINE_CONFIG_START(konamigv_state::btchamp)
SHARP_LH28F400(config, "flash");
- MCFG_DEVICE_ADD("upd1", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACK0_X")
- MCFG_UPD4701_PORTY("TRACK0_Y")
+ UPD4701A(config, m_btc_trackball[0]);
+ m_btc_trackball[0]->set_portx_tag("TRACK0_X");
+ m_btc_trackball[0]->set_porty_tag("TRACK0_Y");
- MCFG_DEVICE_ADD("upd2", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACK1_X")
- MCFG_UPD4701_PORTY("TRACK1_Y")
+ UPD4701A(config, m_btc_trackball[1]);
+ m_btc_trackball[1]->set_portx_tag("TRACK1_X");
+ m_btc_trackball[1]->set_porty_tag("TRACK1_Y");
MACHINE_CONFIG_END
static INPUT_PORTS_START( btchamp )
diff --git a/src/mame/drivers/ksys573.cpp b/src/mame/drivers/ksys573.cpp
index b937fcd8a44..f033f6ff45f 100644
--- a/src/mame/drivers/ksys573.cpp
+++ b/src/mame/drivers/ksys573.cpp
@@ -2240,10 +2240,11 @@ MACHINE_CONFIG_END
// Dance Dance Revolution
-MACHINE_CONFIG_START(ksys573_state::ddr)
+void ksys573_state::ddr(machine_config &config)
+{
k573a(config);
cassx(config);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ksys573_state::ddr2ml)
k573a(config);
@@ -2290,16 +2291,18 @@ MACHINE_CONFIG_END
// Dancing Stage
-MACHINE_CONFIG_START(ksys573_state::dsfdcta)
+void ksys573_state::dsfdcta(machine_config &config)
+{
k573a(config);
pccard2_32mb(config);
cassyyi(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ksys573_state::dsftkd)
+void ksys573_state::dsftkd(machine_config &config)
+{
k573a(config);
cassyi(config);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ksys573_state::dsfdr)
k573d(config);
@@ -2346,10 +2349,11 @@ MACHINE_CONFIG_END
// DrumMania
-MACHINE_CONFIG_START(ksys573_state::drmn)
+void ksys573_state::drmn(machine_config &config)
+{
k573a(config);
cassx(config);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ksys573_state::drmn2m)
k573d(config);
@@ -2371,34 +2375,39 @@ MACHINE_CONFIG_END
// Guitar Freaks
-MACHINE_CONFIG_START(ksys573_state::gtrfrks)
+void ksys573_state::gtrfrks(machine_config &config)
+{
k573a(config);
cassx(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ksys573_state::gtrfrk2m)
+void ksys573_state::gtrfrk2m(machine_config &config)
+{
k573a(config);
cassyi(config);
pccard1_32mb(config); // HACK: The installation tries to check and erase 32mb but only flashes 16mb.
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ksys573_state::gtrfrk3m)
+void ksys573_state::gtrfrk3m(machine_config &config)
+{
k573d(config);
cassxzi(config);
pccard1_16mb(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ksys573_state::gtrfrk5m)
+void ksys573_state::gtrfrk5m(machine_config &config)
+{
k573d(config);
casszi(config);
pccard1_32mb(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ksys573_state::gtrfrk7m)
+void ksys573_state::gtrfrk7m(machine_config &config)
+{
k573d(config);
casszi(config);
pccard1_32mb(config);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ksys573_state::gtfrk10mb)
gtrfrk7m(config);
@@ -2407,20 +2416,22 @@ MACHINE_CONFIG_END
// Miscellaneous
-MACHINE_CONFIG_START(ksys573_state::konami573x)
+void ksys573_state::konami573x(machine_config &config)
+{
konami573(config);
cassx(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ksys573_state::fbaitbc)
+void ksys573_state::fbaitbc(machine_config & config)
+{
konami573(config);
m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::fbaitbc_map);
- MCFG_DEVICE_ADD(m_upd4701, UPD4701A, 0)
- MCFG_UPD4701_PORTY("uPD4701_y")
+ UPD4701A(config, m_upd4701);
+ m_upd4701->set_porty_tag("uPD4701_y");
cassx(config);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ksys573_state::hyperbbc)
konami573(config);
@@ -2446,11 +2457,12 @@ MACHINE_CONFIG_START(ksys573_state::salarymc)
MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", [this] (device_t *device) { salarymc_cassette_install(device); } )
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(ksys573_state::gchgchmp)
+void ksys573_state::gchgchmp(machine_config &config)
+{
konami573(config);
pccard1_16mb(config);
cassx(config);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ksys573_state::pnchmn)
konami573(config);
@@ -2463,18 +2475,20 @@ MACHINE_CONFIG_START(ksys573_state::pnchmn)
MCFG_SLOT_OPTION_MACHINE_CONFIG( "game", [this] (device_t *device) { punchmania_cassette_install(device); } )
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(ksys573_state::pnchmn2)
+void ksys573_state::pnchmn2(machine_config &config)
+{
pnchmn(config);
pccard2_64mb(config);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(ksys573_state::gunmania)
+void ksys573_state::gunmania(machine_config &config)
+{
konami573(config);
m_maincpu->set_addrmap(AS_PROGRAM, &ksys573_state::gunmania_map);
DS2401( config, "gunmania_id" );
pccard2_32mb(config);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ksys573_state::dmx)
k573d(config);
diff --git a/src/mame/drivers/kyocera.cpp b/src/mame/drivers/kyocera.cpp
index 6f1838c37fb..c8ad6c26c48 100644
--- a/src/mame/drivers/kyocera.cpp
+++ b/src/mame/drivers/kyocera.cpp
@@ -1347,7 +1347,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(tandy200_state::tandy200_tp_tick)
MACHINE_CONFIG_START(kc85_state::kc85)
/* basic machine hardware */
- MCFG_DEVICE_ADD(I8085_TAG, I8085A, XTAL(4'915'200))
+ MCFG_DEVICE_ADD(m_maincpu, I8085A, XTAL(4'915'200))
MCFG_DEVICE_PROGRAM_MAP(kc85_mem)
MCFG_DEVICE_IO_MAP(kc85_io)
MCFG_I8085A_SID(READLINE(*this, kc85_state,kc85_sid_r))
@@ -1368,7 +1368,8 @@ MACHINE_CONFIG_START(kc85_state::kc85)
i8155.in_pc_callback().set(FUNC(kc85_state::i8155_pc_r));
i8155.out_to_callback().set(FUNC(kc85_state::i8155_to_w));
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
+ UPD1990A(config, m_rtc);
+ m_rtc->tp_callback().set_inputline(m_maincpu, I8085_RST75_LINE);
IM6402(config, m_uart, 0, 0);
m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
@@ -1396,7 +1397,7 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(pc8201_state::pc8201)
/* basic machine hardware */
- MCFG_DEVICE_ADD(I8085_TAG, I8085A, XTAL(4'915'200))
+ MCFG_DEVICE_ADD(m_maincpu, I8085A, XTAL(4'915'200))
MCFG_DEVICE_PROGRAM_MAP(pc8201_mem)
MCFG_DEVICE_IO_MAP(pc8201_io)
MCFG_I8085A_SID(READLINE(*this, kc85_state,kc85_sid_r))
@@ -1417,7 +1418,8 @@ MACHINE_CONFIG_START(pc8201_state::pc8201)
i8155.in_pc_callback().set(FUNC(kc85_state::i8155_pc_r));
i8155.out_to_callback().set(FUNC(kc85_state::i8155_to_w));
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
+ UPD1990A(config, m_rtc);
+ m_rtc->tp_callback().set_inputline(m_maincpu, I8085_RST75_LINE);
IM6402(config, m_uart, 0, 0);
m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
@@ -1455,7 +1457,7 @@ void pc8201_state::pc8300(machine_config &config)
MACHINE_CONFIG_START(trsm100_state::trsm100)
/* basic machine hardware */
- MCFG_DEVICE_ADD(I8085_TAG, I8085A, XTAL(4'915'200))
+ MCFG_DEVICE_ADD(m_maincpu, I8085A, XTAL(4'915'200))
MCFG_DEVICE_PROGRAM_MAP(kc85_mem)
MCFG_DEVICE_IO_MAP(trsm100_io)
MCFG_I8085A_SID(READLINE(*this, kc85_state,kc85_sid_r))
@@ -1476,7 +1478,8 @@ MACHINE_CONFIG_START(trsm100_state::trsm100)
i8155.in_pc_callback().set(FUNC(kc85_state::i8155_pc_r));
i8155.out_to_callback().set(FUNC(kc85_state::i8155_to_w));
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, INPUTLINE(I8085_TAG, I8085_RST75_LINE))
+ UPD1990A(config, m_rtc);
+ m_rtc->tp_callback().set_inputline(m_maincpu, I8085_RST75_LINE);
IM6402(config, m_uart, 0, 0);
m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
@@ -1509,7 +1512,7 @@ void trsm100_state::tandy102(machine_config &config)
MACHINE_CONFIG_START(tandy200_state::tandy200)
/* basic machine hardware */
- MCFG_DEVICE_ADD(I8085_TAG, I8085A, XTAL(4'915'200))
+ MCFG_DEVICE_ADD(m_maincpu, I8085A, XTAL(4'915'200))
MCFG_DEVICE_PROGRAM_MAP(tandy200_mem)
MCFG_DEVICE_IO_MAP(tandy200_io)
MCFG_I8085A_SID(READLINE(*this, tandy200_state,kc85_sid_r))
diff --git a/src/mame/drivers/m72.cpp b/src/mame/drivers/m72.cpp
index c07d37bd5c6..ef60eed7877 100644
--- a/src/mame/drivers/m72.cpp
+++ b/src/mame/drivers/m72.cpp
@@ -2111,13 +2111,13 @@ MACHINE_CONFIG_START(m72_state::poundfor)
MCFG_DEVICE_ADD("upd71059c", PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0))
- MCFG_DEVICE_ADD("upd4701l", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACK0_X")
- MCFG_UPD4701_PORTY("TRACK0_Y")
+ UPD4701A(config, m_upd4701[0]);
+ m_upd4701[0]->set_portx_tag("TRACK0_X");
+ m_upd4701[0]->set_porty_tag("TRACK0_Y");
- MCFG_DEVICE_ADD("upd4701h", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACK1_X")
- MCFG_UPD4701_PORTY("TRACK1_Y")
+ UPD4701A(config, m_upd4701[1]);
+ m_upd4701[1]->set_portx_tag("TRACK1_X");
+ m_upd4701[1]->set_porty_tag("TRACK1_Y");
/* video hardware */
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_rtype2)
diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp
index 35d242c225f..59765f3e93d 100644
--- a/src/mame/drivers/neogeo.cpp
+++ b/src/mame/drivers/neogeo.cpp
@@ -1963,7 +1963,8 @@ MACHINE_CONFIG_START(neogeo_base_state::neogeo_stereo)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(ngarcade_base_state::neogeo_arcade)
+void ngarcade_base_state::neogeo_arcade(machine_config &config)
+{
neogeo_base(config);
m_maincpu->set_addrmap(AS_PROGRAM, &ngarcade_base_state::neogeo_main_map);
@@ -1973,10 +1974,10 @@ MACHINE_CONFIG_START(ngarcade_base_state::neogeo_arcade)
WATCHDOG_TIMER(config, "watchdog").set_time(attotime::from_ticks(3244030, NEOGEO_MASTER_CLOCK));
- MCFG_UPD4990A_ADD("upd4990a", XTAL(32'768), NOOP, NOOP)
+ UPD4990A(config, m_upd4990a);
NVRAM(config, "saveram", nvram_device::DEFAULT_ALL_0);
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(ngarcade_base_state::neogeo_mono)
diff --git a/src/mame/drivers/neoprint.cpp b/src/mame/drivers/neoprint.cpp
index 3f9559bd9b2..2b915d80eca 100644
--- a/src/mame/drivers/neoprint.cpp
+++ b/src/mame/drivers/neoprint.cpp
@@ -509,7 +509,7 @@ MACHINE_CONFIG_START(neoprint_state::neoprint)
MCFG_DEVICE_PROGRAM_MAP(neoprint_audio_map)
MCFG_DEVICE_IO_MAP(neoprint_audio_io_map)
- MCFG_UPD4990A_ADD("upd4990a", XTAL(32'768), NOOP, NOOP)
+ UPD4990A(config, m_upd4990a);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_neoprint)
@@ -553,7 +553,7 @@ MACHINE_CONFIG_START(neoprint_state::nprsp)
MCFG_DEVICE_PROGRAM_MAP(neoprint_audio_map)
MCFG_DEVICE_IO_MAP(neoprint_audio_io_map)
- MCFG_UPD4990A_ADD("upd4990a", XTAL(32'768), NOOP, NOOP)
+ UPD4990A(config, m_upd4990a);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_neoprint)
diff --git a/src/mame/drivers/pc1500.cpp b/src/mame/drivers/pc1500.cpp
index 52ba566fe6d..cd00ea495f4 100644
--- a/src/mame/drivers/pc1500.cpp
+++ b/src/mame/drivers/pc1500.cpp
@@ -295,7 +295,7 @@ MACHINE_CONFIG_START(pc1500_state::pc1500)
ioports.portc_w().set(FUNC(pc1500_state::port_c_w));
ioports.out_int().set_inputline("maincpu", LH5801_LINE_MI);
- MCFG_UPD1990A_ADD("upd1990a", XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp
index 88fec2ddf37..acbdbed71b0 100644
--- a/src/mame/drivers/pc8001.cpp
+++ b/src/mame/drivers/pc8001.cpp
@@ -507,7 +507,7 @@ MACHINE_CONFIG_START(pc8001_state::pc8001)
m_dma->in_memr_cb().set(FUNC(pc8001_state::dma_mem_r));
m_dma->out_iow_cb<2>().set(UPD3301_TAG, FUNC(upd3301_device::dack_w));
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
MCFG_DEVICE_ADD(UPD3301_TAG, UPD3301, XTAL(14'318'181))
MCFG_UPD3301_CHARACTER_WIDTH(8)
@@ -555,7 +555,7 @@ MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2)
m_dma->in_memr_cb().set(FUNC(pc8001_state::dma_mem_r));
m_dma->out_iow_cb<2>().set(UPD3301_TAG, FUNC(upd3301_device::dack_w));
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
MCFG_DEVICE_ADD(UPD3301_TAG, UPD3301, XTAL(14'318'181))
MCFG_UPD3301_CHARACTER_WIDTH(8)
diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp
index f0c70f598a9..e6492f1cb5d 100644
--- a/src/mame/drivers/pc8401a.cpp
+++ b/src/mame/drivers/pc8401a.cpp
@@ -580,7 +580,7 @@ MACHINE_CONFIG_START(pc8401a_state::pc8401a)
MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64))
/* devices */
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
i8255_device &ppi(I8255A(config, I8255A_TAG));
ppi.in_pc_callback().set(FUNC(pc8401a_state::ppi_pc_r));
@@ -620,7 +620,7 @@ MACHINE_CONFIG_START(pc8500_state::pc8500)
MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64))
/* devices */
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
i8255_device &ppi(I8255A(config, I8255A_TAG));
ppi.in_pc_callback().set(FUNC(pc8401a_state::ppi_pc_r));
diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp
index 098301df216..b498cce8c82 100644
--- a/src/mame/drivers/pc8801.cpp
+++ b/src/mame/drivers/pc8801.cpp
@@ -2376,7 +2376,7 @@ MACHINE_CONFIG_START(pc8801_state::pc8801)
#if USE_PROPER_I8214
I8214(config, I8214_TAG, MASTER_CLOCK);
#endif
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
//MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index 1a9cbe3fb2a..640a0338eed 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -2407,7 +2407,7 @@ MACHINE_CONFIG_START(pc9801_state::pc9801)
FLOPPY_CONNECTOR(config, "upd765_2dd:1", pc9801_floppies, "525dd", pc9801_state::floppy_formats);
pc9801_sasi(config);
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
m_dmac->in_ior_callback<3>().set(m_fdc_2dd, FUNC(upd765a_device::mdma_r));
m_dmac->out_iow_callback<3>().set(m_fdc_2dd, FUNC(upd765a_device::mdma_w));
@@ -2434,7 +2434,7 @@ MACHINE_CONFIG_START(pc9801_state::pc9801rs)
MCFG_DEVICE_CLOCK(MAIN_CLOCK_X1*8); // unknown clock
pc9801_ide(config);
- MCFG_UPD4990A_ADD("upd1990a", XTAL(32'768), NOOP, NOOP)
+ UPD4990A(config, m_rtc);
RAM(config, m_ram).set_default_size("1664K").set_extra_options("640K,3712K,7808K,14M");
diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp
index 9ae0f6d292c..e46451b2aba 100644
--- a/src/mame/drivers/prof80.cpp
+++ b/src/mame/drivers/prof80.cpp
@@ -460,7 +460,7 @@ MACHINE_CONFIG_START(prof80_state::prof80)
MCFG_PROF80_MMU_ADD(m_mmu, prof80_mmu)
// RTC
- MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL(32'768), NOOP, NOOP)
+ UPD1990A(config, m_rtc);
// FDC
MCFG_UPD765A_ADD(UPD765_TAG, true, true)
@@ -471,12 +471,12 @@ MACHINE_CONFIG_START(prof80_state::prof80)
// DEMUX latches
LS259(config, m_flra);
- m_flra->q_out_cb<0>().set(UPD1990A_TAG, FUNC(upd1990a_device::data_in_w)); // TDI
- m_flra->q_out_cb<0>().append(UPD1990A_TAG, FUNC(upd1990a_device::c0_w)); // C0
- m_flra->q_out_cb<1>().set(UPD1990A_TAG, FUNC(upd1990a_device::c1_w)); // C1
- m_flra->q_out_cb<2>().set(UPD1990A_TAG, FUNC(upd1990a_device::c2_w)); // C2
+ m_flra->q_out_cb<0>().set(m_rtc, FUNC(upd1990a_device::data_in_w)); // TDI
+ m_flra->q_out_cb<0>().append(m_rtc, FUNC(upd1990a_device::c0_w)); // C0
+ m_flra->q_out_cb<1>().set(m_rtc, FUNC(upd1990a_device::c1_w)); // C1
+ m_flra->q_out_cb<2>().set(m_rtc, FUNC(upd1990a_device::c2_w)); // C2
m_flra->q_out_cb<3>().set(FUNC(prof80_state::ready_w)); // READY
- m_flra->q_out_cb<4>().set(UPD1990A_TAG, FUNC(upd1990a_device::clk_w)); // TCK
+ m_flra->q_out_cb<4>().set(m_rtc, FUNC(upd1990a_device::clk_w)); // TCK
m_flra->q_out_cb<5>().set(FUNC(prof80_state::inuse_w)); // IN USE
m_flra->q_out_cb<6>().set(FUNC(prof80_state::motor_w)); // _MOTOR
m_flra->q_out_cb<7>().set(FUNC(prof80_state::select_w)); // SELECT
@@ -487,7 +487,7 @@ MACHINE_CONFIG_START(prof80_state::prof80)
m_flrb->q_out_cb<3>().set(m_rs232a, FUNC(rs232_port_device::write_txd)); // TX
m_flrb->q_out_cb<4>().set(FUNC(prof80_state::mstop_w)); // _MSTOP
m_flrb->q_out_cb<5>().set(m_rs232b, FUNC(rs232_port_device::write_txd)); // TXP
- m_flrb->q_out_cb<6>().set(UPD1990A_TAG, FUNC(upd1990a_device::stb_w)); // TSTB
+ m_flrb->q_out_cb<6>().set(m_rtc, FUNC(upd1990a_device::stb_w)); // TSTB
m_flrb->q_out_cb<7>().set(m_mmu, FUNC(prof80_mmu_device::mme_w)); // MME
// ECB bus
diff --git a/src/mame/drivers/segae.cpp b/src/mame/drivers/segae.cpp
index b57139891e2..0bdaa32e98c 100644
--- a/src/mame/drivers/segae.cpp
+++ b/src/mame/drivers/segae.cpp
@@ -928,11 +928,12 @@ void systeme_state::hangonjr(machine_config &config)
m_ppi->out_pc_callback().set(FUNC(systeme_state::hangonjr_port_fa_write)); // CD4051 selector input
}
-MACHINE_CONFIG_START(systeme_state::ridleofp)
+void systeme_state::ridleofp(machine_config &config)
+{
systeme(config);
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0) // on 834-6193 I/O sub board
- MCFG_UPD4701_PORTX("PAD1")
- MCFG_UPD4701_PORTY("PAD2")
+ upd4701_device &upd4701(UPD4701A(config, "upd4701")); // on 834-6193 I/O sub board
+ upd4701.set_portx_tag("PAD1");
+ upd4701.set_porty_tag("PAD2");
i8255_device &ppi(*subdevice<i8255_device>("ppi"));
ppi.in_pa_callback().set("upd4701", FUNC(upd4701_device::d_r));
@@ -941,7 +942,7 @@ MACHINE_CONFIG_START(systeme_state::ridleofp)
ppi.out_pc_callback().append("upd4701", FUNC(upd4701_device::ul_w)).bit(2);
ppi.out_pc_callback().append("upd4701", FUNC(upd4701_device::resetx_w)).bit(1); // or possibly bit 0
ppi.out_pc_callback().append("upd4701", FUNC(upd4701_device::resety_w)).bit(0); // or possibly bit 1
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(systeme_state::systemex)
systeme(config);
diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp
index 185727ea2e3..8f7a07316ce 100644
--- a/src/mame/drivers/segas16b.cpp
+++ b/src/mame/drivers/segas16b.cpp
@@ -3787,16 +3787,17 @@ MACHINE_CONFIG_START(segas16b_state::system16b_fd1094)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(segas16b_state::aceattacb_fd1094)
+void segas16b_state::aceattacb_fd1094(machine_config &config)
+{
system16b_fd1094(config);
// 834-6602 I/O board
- MCFG_DEVICE_ADD("upd4701a1", UPD4701A, 0)
- MCFG_DEVICE_ADD("upd4701a2", UPD4701A, 0)
+ UPD4701A(config, m_upd4701a[0]);
+ UPD4701A(config, m_upd4701a[1]);
CXD1095(config, m_cxdio, 0);
m_cxdio->in_porta_cb().set_ioport("HANDX1");
m_cxdio->in_portb_cb().set_ioport("HANDX2");
-MACHINE_CONFIG_END
+}
MACHINE_CONFIG_START(segas16b_state::system16b_i8751)
diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp
index a18216ca514..80fd2c5c55d 100644
--- a/src/mame/drivers/segas18.cpp
+++ b/src/mame/drivers/segas18.cpp
@@ -1405,35 +1405,37 @@ void segas18_state::lghost(machine_config &config)
m_io->out_pc_callback().set(FUNC(segas18_state::lghost_gun_recoil_w));
}
-MACHINE_CONFIG_START(segas18_state::wwally_fd1094)
+void segas18_state::wwally_fd1094(machine_config &config)
+{
system18_fd1094(config);
- MCFG_DEVICE_ADD("upd1", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX1")
- MCFG_UPD4701_PORTY("TRACKY1")
+ UPD4701A(config, m_upd4701[0]);
+ m_upd4701[0]->set_portx_tag("TRACKX1");
+ m_upd4701[0]->set_porty_tag("TRACKY1");
- MCFG_DEVICE_ADD("upd2", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX2")
- MCFG_UPD4701_PORTY("TRACKY2")
+ UPD4701A(config, m_upd4701[1]);
+ m_upd4701[1]->set_portx_tag("TRACKX2");
+ m_upd4701[1]->set_porty_tag("TRACKY2");
- MCFG_DEVICE_ADD("upd3", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX3")
- MCFG_UPD4701_PORTY("TRACKY3")
-MACHINE_CONFIG_END
+ UPD4701A(config, m_upd4701[2]);
+ m_upd4701[2]->set_portx_tag("TRACKX3");
+ m_upd4701[2]->set_porty_tag("TRACKY3");
+}
-MACHINE_CONFIG_START(segas18_state::wwally)
+void segas18_state::wwally(machine_config &config)
+{
system18(config);
- MCFG_DEVICE_ADD("upd1", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX1")
- MCFG_UPD4701_PORTY("TRACKY1")
+ UPD4701A(config, m_upd4701[0]);
+ m_upd4701[0]->set_portx_tag("TRACKX1");
+ m_upd4701[0]->set_porty_tag("TRACKY1");
- MCFG_DEVICE_ADD("upd2", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX2")
- MCFG_UPD4701_PORTY("TRACKY2")
+ UPD4701A(config, m_upd4701[1]);
+ m_upd4701[1]->set_portx_tag("TRACKX2");
+ m_upd4701[1]->set_porty_tag("TRACKY2");
- MCFG_DEVICE_ADD("upd3", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX3")
- MCFG_UPD4701_PORTY("TRACKY3")
-MACHINE_CONFIG_END
+ UPD4701A(config, m_upd4701[2]);
+ m_upd4701[2]->set_portx_tag("TRACKX3");
+ m_upd4701[2]->set_porty_tag("TRACKY3");
+}
MACHINE_CONFIG_START(segas18_state::system18_i8751)
system18(config);
diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp
index d952187fa00..b26e0b60cf6 100644
--- a/src/mame/drivers/segas24.cpp
+++ b/src/mame/drivers/segas24.cpp
@@ -1938,13 +1938,13 @@ MACHINE_CONFIG_START(segas24_state::system24_floppy_hotrod)
MCFG_DEVICE_MODIFY("subcpu")
MCFG_DEVICE_PROGRAM_MAP(hotrod_cpu2_map)
- MCFG_DEVICE_ADD("upd1", UPD4701A, 0) // IC4 on 834-6510 I/O board
- MCFG_UPD4701_PORTX("DIAL1")
- MCFG_UPD4701_PORTY("DIAL2")
+ upd4701_device &upd1(UPD4701A(config, "upd1")); // IC4 on 834-6510 I/O board
+ upd1.set_portx_tag("DIAL1");
+ upd1.set_porty_tag("DIAL2");
- MCFG_DEVICE_ADD("upd2", UPD4701A, 0) // IC1
- MCFG_UPD4701_PORTX("DIAL3")
- MCFG_UPD4701_PORTY("DIAL4")
+ upd4701_device &upd2(UPD4701A(config, "upd2")); // IC1
+ upd2.set_portx_tag("DIAL3");
+ upd2.set_porty_tag("DIAL4");
MCFG_DEVICE_ADD("adc1", MSM6253, 0) // IC5 - 33k/33p R/C clock
MCFG_MSM6253_IN0_ANALOG_PORT("PEDAL1")
@@ -1969,9 +1969,9 @@ MACHINE_CONFIG_START(segas24_state::system24_floppy_fd_upd)
MCFG_DEVICE_MODIFY("subcpu")
MCFG_DEVICE_PROGRAM_MAP(roughrac_cpu2_map)
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0) // IC4 on 834-6510-01 I/O board
- MCFG_UPD4701_PORTX("DIAL1")
- MCFG_UPD4701_PORTY("DIAL2")
+ upd4701_device &upd4701(UPD4701A(config, "upd4701")); // IC4 on 834-6510 I/O board
+ upd4701.set_portx_tag("DIAL1");
+ upd4701.set_porty_tag("DIAL2");
MACHINE_CONFIG_END
void segas24_state::dcclub(machine_config &config)
diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp
index d0a659bb374..3631259645f 100644
--- a/src/mame/drivers/segas32.cpp
+++ b/src/mame/drivers/segas32.cpp
@@ -2326,17 +2326,17 @@ MACHINE_CONFIG_START(segas32_trackball_state::device_add_mconfig)
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_PROGRAM_MAP(system32_trackball_map)
- MCFG_DEVICE_ADD("upd1", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX1")
- MCFG_UPD4701_PORTY("TRACKY1")
+ upd4701_device &upd1(UPD4701A(config, "upd1"));
+ upd1.set_portx_tag("TRACKX1");
+ upd1.set_porty_tag("TRACKY1");
- MCFG_DEVICE_ADD("upd2", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX2")
- MCFG_UPD4701_PORTY("TRACKY2")
+ upd4701_device &upd2(UPD4701A(config, "upd2"));
+ upd2.set_portx_tag("TRACKX2");
+ upd2.set_porty_tag("TRACKY2");
- MCFG_DEVICE_ADD("upd3", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX3")
- MCFG_UPD4701_PORTY("TRACKY3")
+ upd4701_device &upd3(UPD4701A(config, "upd3"));
+ upd3.set_portx_tag("TRACKX3");
+ upd3.set_porty_tag("TRACKY3");
// 837-8685 I/O board has an unpopulated space for a fourth UPD4701A
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp
index 3fabb929eac..ee2e4bc44e0 100644
--- a/src/mame/drivers/seta.cpp
+++ b/src/mame/drivers/seta.cpp
@@ -8029,9 +8029,9 @@ MACHINE_CONFIG_START(seta_state::usclssic)
MCFG_DEVICE_PROGRAM_MAP(calibr50_sub_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq0_line_assert)
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX")
- MCFG_UPD4701_PORTY("TRACKY")
+ UPD4701A(config, m_upd4701);
+ m_upd4701->set_portx_tag("TRACKX");
+ m_upd4701->set_porty_tag("TRACKY");
HC157(config, m_buttonmux, 0);
m_buttonmux->out_callback().set(m_upd4701, FUNC(upd4701_device::middle_w)).bit(0);
@@ -8098,9 +8098,9 @@ MACHINE_CONFIG_START(seta_state::calibr50)
MCFG_DEVICE_PROGRAM_MAP(calibr50_sub_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(seta_state, irq0_line_assert, 4*60) // IRQ: 4/frame
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0)
- MCFG_UPD4701_PORTX("ROT1")
- MCFG_UPD4701_PORTY("ROT2")
+ UPD4701A(config, m_upd4701);
+ m_upd4701->set_portx_tag("ROT1");
+ m_upd4701->set_porty_tag("ROT2");
MCFG_MACHINE_RESET_OVERRIDE(seta_state,calibr50)
@@ -8569,7 +8569,7 @@ MACHINE_CONFIG_START(setaroul_state::setaroul)
NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM);
/* devices */
- MCFG_DEVICE_ADD("rtc", UPD4992, XTAL(32'768)) // ! Actually D4911C !
+ UPD4992(config, m_rtc); // ! Actually D4911C !
MCFG_DEVICE_ADD ("acia0", ACIA6850, 0)
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
@@ -8998,13 +8998,13 @@ MACHINE_CONFIG_START(seta_state::krzybowl)
MCFG_DEVICE_PROGRAM_MAP(krzybowl_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
- MCFG_DEVICE_ADD("upd1", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACK1_X")
- MCFG_UPD4701_PORTY("TRACK1_Y")
+ upd4701_device &upd1(UPD4701A(config, "upd1"));
+ upd1.set_portx_tag("TRACK1_X");
+ upd1.set_porty_tag("TRACK1_Y");
- MCFG_DEVICE_ADD("upd2", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACK2_X")
- MCFG_UPD4701_PORTY("TRACK2_Y")
+ upd4701_device &upd2(UPD4701A(config, "upd2"));
+ upd2.set_portx_tag("TRACK2_X");
+ upd2.set_porty_tag("TRACK2_Y");
MCFG_DEVICE_ADD("spritegen", SETA001_SPRITE, 0)
MCFG_SETA001_SPRITE_GFXDECODE("gfxdecode")
@@ -9830,7 +9830,7 @@ MACHINE_CONFIG_START(jockeyc_state::jockeyc)
MCFG_MACHINE_START_OVERRIDE(jockeyc_state, jockeyc)
/* devices */
- MCFG_DEVICE_ADD("rtc", UPD4992, XTAL(32'768)) // ! Actually D4911C !
+ UPD4992(config, m_rtc); // ! Actually D4911C !
MCFG_DEVICE_ADD ("acia0", ACIA6850, 0)
MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
MCFG_TICKET_DISPENSER_ADD("hopper2", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mame/drivers/seta2.cpp b/src/mame/drivers/seta2.cpp
index d63b6bef5da..8dbf83e9536 100644
--- a/src/mame/drivers/seta2.cpp
+++ b/src/mame/drivers/seta2.cpp
@@ -2734,7 +2734,7 @@ MACHINE_CONFIG_START(staraudi_state::staraudi)
MCFG_DEVICE_PROGRAM_MAP(staraudi_map)
SHARP_LH28F016S_16BIT(config, "flash");
- MCFG_UPD4992_ADD("rtc")
+ UPD4992(config, m_rtc);
// video hardware
MCFG_SCREEN_MODIFY("screen")
diff --git a/src/mame/drivers/ssv.cpp b/src/mame/drivers/ssv.cpp
index 4e9d328931b..7300cc1863c 100644
--- a/src/mame/drivers/ssv.cpp
+++ b/src/mame/drivers/ssv.cpp
@@ -2827,9 +2827,9 @@ MACHINE_CONFIG_START(ssv_state::eaglshot)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0)
- MCFG_UPD4701_PORTX("TRACKX")
- MCFG_UPD4701_PORTY("TRACKY")
+ UPD4701A(config, m_upd4701);
+ m_upd4701->set_portx_tag("TRACKX");
+ m_upd4701->set_porty_tag("TRACKY");
WATCHDOG_TIMER(config, "watchdog");
diff --git a/src/mame/drivers/tnzs.cpp b/src/mame/drivers/tnzs.cpp
index 38b8705da99..721e116a340 100644
--- a/src/mame/drivers/tnzs.cpp
+++ b/src/mame/drivers/tnzs.cpp
@@ -1603,12 +1603,13 @@ MACHINE_CONFIG_START(extrmatn_state::extrmatn)
MCFG_PALETTE_INIT_OWNER(tnzs_base_state, prompalette)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(extrmatn_state::plumppop)
+void extrmatn_state::plumppop(machine_config &config)
+{
extrmatn(config);
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0)
- MCFG_UPD4701_PORTX("AN1")
- MCFG_UPD4701_PORTY("AN2")
-MACHINE_CONFIG_END
+ UPD4701A(config, m_upd4701);
+ m_upd4701->set_portx_tag("AN1");
+ m_upd4701->set_porty_tag("AN2");
+}
MACHINE_CONFIG_START(arknoid2_state::arknoid2)
plumppop(config);
@@ -1720,9 +1721,9 @@ MACHINE_CONFIG_START(jpopnics_state::jpopnics)
MCFG_DEVICE_MODIFY("sub")
MCFG_DEVICE_PROGRAM_MAP(jpopnics_sub_map)
- MCFG_DEVICE_ADD("upd4701", UPD4701A, 0)
- MCFG_UPD4701_PORTX("AN1")
- MCFG_UPD4701_PORTY("AN2")
+ UPD4701A(config, m_upd4701);
+ m_upd4701->set_portx_tag("AN1");
+ m_upd4701->set_porty_tag("AN2");
/* video hardware */
MCFG_PALETTE_MODIFY("palette")
diff --git a/src/mame/drivers/ultrsprt.cpp b/src/mame/drivers/ultrsprt.cpp
index 9ee55da84b6..dff66316263 100644
--- a/src/mame/drivers/ultrsprt.cpp
+++ b/src/mame/drivers/ultrsprt.cpp
@@ -247,13 +247,13 @@ MACHINE_CONFIG_START(ultrsprt_state::ultrsprt)
EEPROM_93C46_16BIT(config, "eeprom");
- MCFG_DEVICE_ADD("upd1", UPD4701A, 0)
- MCFG_UPD4701_PORTX("P1X")
- MCFG_UPD4701_PORTY("P1Y")
+ UPD4701A(config, m_upd[0]);
+ m_upd[0]->set_portx_tag("P1X");
+ m_upd[0]->set_porty_tag("P1Y");
- MCFG_DEVICE_ADD("upd2", UPD4701A, 0)
- MCFG_UPD4701_PORTX("P2X")
- MCFG_UPD4701_PORTY("P2Y")
+ UPD4701A(config, m_upd[1]);
+ m_upd[1]->set_portx_tag("P2X");
+ m_upd[1]->set_porty_tag("P2Y");
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/includes/bbc.h b/src/mame/includes/bbc.h
index a4e4d6b3e77..63a07b670fd 100644
--- a/src/mame/includes/bbc.h
+++ b/src/mame/includes/bbc.h
@@ -193,8 +193,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(motor_w);
DECLARE_WRITE_LINE_MEMBER(side_w);
- UPD7002_GET_ANALOGUE(BBC_get_analogue_input);
- UPD7002_EOC(BBC_uPD7002_EOC);
+ int BBC_get_analogue_input(int channel_number);
+ void BBC_uPD7002_EOC(int data);
void bbc_setup_banks(memory_bank *membank, int banks, uint32_t shift, uint32_t size);
void bbcm_setup_banks(memory_bank *membank, int banks, uint32_t shift, uint32_t size);
diff --git a/src/mame/includes/seta2.h b/src/mame/includes/seta2.h
index 1c9380fdbf5..c1ebfe4940d 100644
--- a/src/mame/includes/seta2.h
+++ b/src/mame/includes/seta2.h
@@ -32,7 +32,6 @@ public:
m_oki(*this, "oki"),
m_eeprom(*this, "eeprom"),
m_flash(*this, "flash"),
- m_rtc(*this, "rtc"),
m_dispenser(*this, "dispenser"),
m_x1_bank(*this,"x1_bank_%u", 1U),
@@ -129,7 +128,6 @@ protected:
optional_device<okim9810_device> m_oki;
optional_device<eeprom_serial_93cxx_device> m_eeprom;
optional_device<intelfsh16_device> m_flash;
- optional_device<upd4992_device> m_rtc;
optional_device<ticket_dispenser_device> m_dispenser;
optional_memory_bank_array<8> m_x1_bank;
@@ -212,6 +210,7 @@ class staraudi_state : public seta2_state
public:
staraudi_state(const machine_config &mconfig, device_type type, const char *tag) :
seta2_state(mconfig, type, tag),
+ m_rtc(*this, "rtc"),
m_rgbram(*this, "rgbram", 0)
{
}
@@ -236,6 +235,7 @@ private:
void draw_rgbram(bitmap_ind16 &bitmap);
+ required_device<upd4992_device> m_rtc;
required_shared_ptr<uint16_t> m_rgbram;
uint16_t m_lamps1 = 0, m_lamps2 = 0, m_cam = 0;
diff --git a/src/mame/machine/bbc.cpp b/src/mame/machine/bbc.cpp
index 6dbc57335a9..2ecd9e05e70 100644
--- a/src/mame/machine/bbc.cpp
+++ b/src/mame/machine/bbc.cpp
@@ -968,7 +968,7 @@ WRITE_LINE_MEMBER(bbc_state::lpstb_w)
BBC Joystick Support
**************************************/
-UPD7002_GET_ANALOGUE(bbc_state::BBC_get_analogue_input)
+int bbc_state::BBC_get_analogue_input(int channel_number)
{
if (m_analog)
return ((0xff - m_analog->ch_r(channel_number)) << 8);
@@ -976,7 +976,7 @@ UPD7002_GET_ANALOGUE(bbc_state::BBC_get_analogue_input)
return 0xff;
}
-UPD7002_EOC(bbc_state::BBC_uPD7002_EOC)
+void bbc_state::BBC_uPD7002_EOC(int data)
{
m_via6522_0->write_cb1(data);
}