From 449e0f88eb69bf494dd976601e2e0e1880a804bf Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 26 Oct 2018 14:10:22 -0400 Subject: mpu401: Eliminate MCFG_ macros (nw) --- src/devices/bus/cbus/mpu_pc98.cpp | 7 ++++--- src/devices/bus/isa/mpu401.cpp | 7 ++++--- src/devices/machine/mpu401.h | 14 ++------------ 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/devices/bus/cbus/mpu_pc98.cpp b/src/devices/bus/cbus/mpu_pc98.cpp index c68f5c3f59a..2230e966fda 100644 --- a/src/devices/bus/cbus/mpu_pc98.cpp +++ b/src/devices/bus/cbus/mpu_pc98.cpp @@ -44,9 +44,10 @@ DEFINE_DEVICE_TYPE(MPU_PC98, mpu_pc98_device, "mpu_pc98", "Roland MPU-401 MIDI I // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(mpu_pc98_device::device_add_mconfig) - MCFG_MPU401_ADD(MPU_CORE_TAG, WRITELINE(*this, mpu_pc98_device, mpu_irq_out)) -MACHINE_CONFIG_END +void mpu_pc98_device::device_add_mconfig(machine_config &config) +{ + MPU401(config, m_mpu401).irq_cb().set(FUNC(mpu_pc98_device::mpu_irq_out)); +} //************************************************************************** diff --git a/src/devices/bus/isa/mpu401.cpp b/src/devices/bus/isa/mpu401.cpp index f05555f47c2..2ce9e1feae2 100644 --- a/src/devices/bus/isa/mpu401.cpp +++ b/src/devices/bus/isa/mpu401.cpp @@ -48,9 +48,10 @@ DEFINE_DEVICE_TYPE(ISA8_MPU401, isa8_mpu401_device, "isa_mpu401", "Roland MPU-40 // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(isa8_mpu401_device::device_add_mconfig) - MCFG_MPU401_ADD(MPU_CORE_TAG, WRITELINE(*this, isa8_mpu401_device, mpu_irq_out)) -MACHINE_CONFIG_END +void isa8_mpu401_device::device_add_mconfig(machine_config &config) +{ + MPU401(config, m_mpu401).irq_cb().set(FUNC(isa8_mpu401_device::mpu_irq_out)); +} //************************************************************************** diff --git a/src/devices/machine/mpu401.h b/src/devices/machine/mpu401.h index 7fc7a718bb4..80844039834 100644 --- a/src/devices/machine/mpu401.h +++ b/src/devices/machine/mpu401.h @@ -7,13 +7,6 @@ #include "cpu/m6800/m6801.h" -#define MCFG_MPU401_ADD(tag, irqf) \ - MCFG_DEVICE_ADD((tag), MPU401, 0) \ - MCFG_IRQ_FUNC(irqf) - -#define MCFG_IRQ_FUNC(irqf) \ - downcast(device)->set_irqf(DEVCB_##irqf); - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -22,12 +15,9 @@ class mpu401_device : public device_t { public: // construction/destruction - mpu401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + mpu401_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - template devcb_base &set_irqf(Write &&wr) - { - return write_irq.set_callback(std::forward(wr)); - } + auto irq_cb() { return write_irq.bind(); } // public API - call for reads/writes at I/O 330/331 on PC, C0n0/C0n1 on Apple II, etc. DECLARE_READ8_MEMBER(mpu_r); -- cgit v1.2.3