diff options
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 |
commit | 0cd1758e544f3f89df226b9861b7201be7fd4b3a (patch) | |
tree | 8961c7c056ec734a3d2f16e7620b132b52d53360 | |
parent | 0ab6ef3f39e7fc5a2a136d24137e09b8e7859a2a (diff) |
upd1990a, upd4701, upd4992, upd7002: removed MCFG macros (nw)
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 ¢ronics(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); } |