summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-11-02 13:42:51 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2018-11-02 13:42:51 +0100
commit3750b5619ba078e3594bd55403627bfbea92e55c (patch)
treecd32244ca183030586f3220356984bd265aa9f00
parent4e0a7632f4668cf5112eafee647cc0b881a6159a (diff)
pdc.h, phi.h, zx8301, zx8302: removed MCFG macros (nw)
-rw-r--r--src/devices/machine/pdc.h5
-rw-r--r--src/devices/machine/phi.h53
-rw-r--r--src/mame/drivers/hp64k.cpp46
-rw-r--r--src/mame/drivers/ql.cpp39
-rw-r--r--src/mame/machine/zx8302.h78
-rw-r--r--src/mame/video/zx8301.h13
6 files changed, 63 insertions, 171 deletions
diff --git a/src/devices/machine/pdc.h b/src/devices/machine/pdc.h
index 8f2b958ce2b..df205ae0b29 100644
--- a/src/devices/machine/pdc.h
+++ b/src/devices/machine/pdc.h
@@ -113,10 +113,5 @@ private:
/* Device type */
DECLARE_DEVICE_TYPE(PDC, pdc_device)
-/* MCFG defines */
-#define MCFG_PDC_R_CB(_devcb) \
- downcast<pdc_device &>(*device).m68k_r_callback(DEVCB_##_devcb);
-#define MCFG_PDC_W_CB(_devcb) \
- downcast<pdc_device &>(*device).m68k_w_callback(DEVCB_##_devcb);
#endif // MAME_MACHINE_PDC_H
diff --git a/src/devices/machine/phi.h b/src/devices/machine/phi.h
index ea3cad4c09a..c75fbe08427 100644
--- a/src/devices/machine/phi.h
+++ b/src/devices/machine/phi.h
@@ -11,47 +11,6 @@
#ifndef MAME_MACHINE_PHI_H
#define MAME_MACHINE_PHI_H
-// Set read and write callbacks to access DIO bus on IEEE-488
-#define MCFG_PHI_DIO_READWRITE_CB(_read , _write) \
- downcast<phi_device &>(*device).set_dio_read_cb(DEVCB_##_read); \
- downcast<phi_device &>(*device).set_dio_write_cb(DEVCB_##_write);
-
-// Set write callbacks to access uniline signals on IEEE-488
-#define MCFG_PHI_EOI_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_EOI , DEVCB_##_write);
-
-#define MCFG_PHI_DAV_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_DAV , DEVCB_##_write);
-
-#define MCFG_PHI_NRFD_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_NRFD , DEVCB_##_write);
-
-#define MCFG_PHI_NDAC_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_NDAC , DEVCB_##_write);
-
-#define MCFG_PHI_IFC_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_IFC , DEVCB_##_write);
-
-#define MCFG_PHI_SRQ_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_SRQ , DEVCB_##_write);
-
-#define MCFG_PHI_ATN_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_ATN , DEVCB_##_write);
-
-#define MCFG_PHI_REN_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_488_signal_write_cb(phi_device::PHI_488_REN , DEVCB_##_write);
-
-// Set write callback for INT signal
-#define MCFG_PHI_INT_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_int_write_cb(DEVCB_##_write);
-
-// Set write callback for DMARQ signal
-#define MCFG_PHI_DMARQ_WRITE_CB(_write) \
- downcast<phi_device &>(*device).set_dmarq_write_cb(DEVCB_##_write);
-
-// Set read callback for SYS_CNTRL signal
-#define MCFG_PHI_SYS_CNTRL_READ_CB(_read) \
- downcast<phi_device &>(*device).set_sys_cntrl_read_cb(DEVCB_##_read);
class phi_device : public device_t
{
@@ -72,18 +31,16 @@ public:
PHI_488_SIGNAL_COUNT
};
- template <class Object> devcb_base& set_dio_read_cb(Object &&cb) { return m_dio_read_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base& set_dio_write_cb(Object &&cb) { return m_dio_write_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base& set_488_signal_write_cb(phi_488_signal_t signal , Object &&cb) { return m_signal_wr_fns[ signal ].set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base& set_int_write_cb(Object &&cb) { return m_int_write_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base& set_dmarq_write_cb(Object &&cb) { return m_dmarq_write_func.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_sys_cntrl_read_cb(Object &&cb) { return m_sys_cntrl_read_func.set_callback(std::forward<Object>(cb)); }
-
+ // Set read and write callbacks to access DIO bus on IEEE-488
auto dio_read_cb() { return m_dio_read_func.bind(); }
auto dio_write_cb() { return m_dio_write_func.bind(); }
+ // Set write callbacks to access uniline signals on IEEE-488
template <phi_488_signal_t Signal> auto signal_write_cb() { return m_signal_wr_fns[ Signal ].bind(); }
+ // Set write callback for INT signal
auto int_write_cb() { return m_int_write_func.bind(); }
+ // Set write callback for DMARQ signal
auto dmarq_write_cb() { return m_dmarq_write_func.bind(); }
+ // Set read callback for SYS_CNTRL signal
auto sys_cntrl_read_cb() { return m_sys_cntrl_read_func.bind(); }
DECLARE_WRITE_LINE_MEMBER(eoi_w);
diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp
index 23139325f1d..9ae8ad5ee7c 100644
--- a/src/mame/drivers/hp64k.cpp
+++ b/src/mame/drivers/hp64k.cpp
@@ -1449,29 +1449,31 @@ MACHINE_CONFIG_START(hp64k_state::hp64k)
m_rs232->dcd_handler().set(FUNC(hp64k_state::hp64k_rs232_dcd_w));
m_rs232->cts_handler().set(FUNC(hp64k_state::hp64k_rs232_cts_w));
- MCFG_DEVICE_ADD("phi", PHI, 0)
- MCFG_PHI_INT_WRITE_CB(WRITELINE(*this, hp64k_state, hp64k_phi_int_w))
- MCFG_PHI_DMARQ_WRITE_CB(WRITELINE("cpu" , hp_5061_3011_cpu_device, halt_w))
- MCFG_PHI_SYS_CNTRL_READ_CB(READLINE(*this, hp64k_state, hp64k_phi_sys_ctrl_r))
- MCFG_PHI_DIO_READWRITE_CB(READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w))
- MCFG_PHI_EOI_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_eoi_w))
- MCFG_PHI_DAV_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_dav_w))
- MCFG_PHI_NRFD_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_nrfd_w))
- MCFG_PHI_NDAC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ndac_w))
- MCFG_PHI_IFC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ifc_w))
- MCFG_PHI_SRQ_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_srq_w))
- MCFG_PHI_ATN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_atn_w))
- MCFG_PHI_REN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ren_w))
+ PHI(config, m_phi, 0);
+ m_phi->int_write_cb().set(FUNC(hp64k_state::hp64k_phi_int_w));
+ m_phi->dmarq_write_cb().set(m_cpu, FUNC(hp_5061_3011_cpu_device::halt_w));
+ m_phi->sys_cntrl_read_cb().set(FUNC(hp64k_state::hp64k_phi_sys_ctrl_r));
+ m_phi->dio_read_cb().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
+ m_phi->dio_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_EOI>().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_DAV>().set(IEEE488_TAG, FUNC(ieee488_device::host_dav_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_NRFD>().set(IEEE488_TAG, FUNC(ieee488_device::host_nrfd_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_NDAC>().set(IEEE488_TAG, FUNC(ieee488_device::host_ndac_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_IFC>().set(IEEE488_TAG, FUNC(ieee488_device::host_ifc_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_SRQ>().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_ATN>().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
+ m_phi->signal_write_cb<phi_device::PHI_488_REN>().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
+
MCFG_IEEE488_BUS_ADD()
- MCFG_IEEE488_EOI_CALLBACK(WRITELINE("phi", phi_device, eoi_w))
- MCFG_IEEE488_DAV_CALLBACK(WRITELINE("phi", phi_device, dav_w))
- MCFG_IEEE488_NRFD_CALLBACK(WRITELINE("phi", phi_device, nrfd_w))
- MCFG_IEEE488_NDAC_CALLBACK(WRITELINE("phi", phi_device, ndac_w))
- MCFG_IEEE488_IFC_CALLBACK(WRITELINE("phi", phi_device, ifc_w))
- MCFG_IEEE488_SRQ_CALLBACK(WRITELINE("phi", phi_device, srq_w))
- MCFG_IEEE488_ATN_CALLBACK(WRITELINE("phi", phi_device, atn_w))
- MCFG_IEEE488_REN_CALLBACK(WRITELINE("phi", phi_device, ren_w))
- MCFG_IEEE488_DIO_CALLBACK(WRITE8("phi", phi_device , bus_dio_w))
+ MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_phi, phi_device, eoi_w))
+ MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_phi, phi_device, dav_w))
+ MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_phi, phi_device, nrfd_w))
+ MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_phi, phi_device, ndac_w))
+ MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_phi, phi_device, ifc_w))
+ MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_phi, phi_device, srq_w))
+ MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_phi, phi_device, atn_w))
+ MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_phi, phi_device, ren_w))
+ MCFG_IEEE488_DIO_CALLBACK(WRITE8(m_phi, phi_device , bus_dio_w))
MCFG_IEEE488_SLOT_ADD("ieee_rem" , 0 , remote488_devices , nullptr)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp
index 34df45d79e5..23d168c30fe 100644
--- a/src/mame/drivers/ql.cpp
+++ b/src/mame/drivers/ql.cpp
@@ -900,7 +900,7 @@ void ql_state::machine_reset()
MACHINE_CONFIG_START(ql_state::ql)
// basic machine hardware
- MCFG_DEVICE_ADD(M68008_TAG, M68008, X1/2)
+ MCFG_DEVICE_ADD(m_maincpu, M68008, X1/2)
MCFG_DEVICE_PROGRAM_MAP(ql_mem)
MCFG_DEVICE_ADD(I8749_TAG, I8749, X4)
@@ -925,27 +925,26 @@ MACHINE_CONFIG_START(ql_state::ql)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
// devices
- MCFG_DEVICE_ADD(ZX8301_TAG, ZX8301, X1, M68008_TAG)
- MCFG_ZX8301_VSYNC_CALLBACK(WRITELINE(ZX8302_TAG, zx8302_device, vsync_w))
-
- MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
-
- MCFG_DEVICE_ADD(ZX8302_TAG, ZX8302, X1)
- MCFG_ZX8302_RTC_CLOCK(X2)
- MCFG_ZX8302_OUT_IPL1L_CB(INPUTLINE(M68008_TAG, M68K_IRQ_2))
- MCFG_ZX8302_OUT_BAUDX4_CB(WRITELINE(*this, ql_state, ql_baudx4_w))
- MCFG_ZX8302_OUT_COMDATA_CB(WRITELINE(*this, ql_state, ql_comdata_w))
+ ZX8301(config, m_zx8301, X1, m_maincpu);
+ m_zx8301->vsync_wr_callback().set(m_zx8302, FUNC(zx8302_device::vsync_w));
+ m_zx8301->set_screen(SCREEN_TAG);
+
+ ZX8302(config, m_zx8302, X1);
+ m_zx8302->set_rtc_clock(X2);
+ m_zx8302->out_ipl1l_callback().set_inputline(m_maincpu, M68K_IRQ_2);
+ m_zx8302->out_baudx4_callback().set(FUNC(ql_state::ql_baudx4_w));
+ m_zx8302->out_comdata_callback().set(FUNC(ql_state::ql_comdata_w));
// TXD1
- MCFG_ZX8302_OUT_TXD2_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
+ m_zx8302->out_txd2_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
// NETOUT
- MCFG_ZX8302_OUT_MDSELCK_CB(WRITELINE(*this, ql_state, zx8302_mdselck_w))
- MCFG_ZX8302_OUT_MDSELD_CB(WRITELINE(MDV_1, microdrive_image_device, comms_in_w))
- MCFG_ZX8302_OUT_MDRDW_CB(WRITELINE(*this, ql_state, zx8302_mdrdw_w))
- MCFG_ZX8302_OUT_ERASE_CB(WRITELINE(*this, ql_state, zx8302_erase_w))
- MCFG_ZX8302_OUT_RAW1_CB(WRITELINE(*this, ql_state, zx8302_raw1_w))
- MCFG_ZX8302_IN_RAW1_CB(READLINE(*this, ql_state, zx8302_raw1_r))
- MCFG_ZX8302_OUT_RAW2_CB(WRITELINE(*this, ql_state, zx8302_raw2_w))
- MCFG_ZX8302_IN_RAW2_CB(READLINE(*this, ql_state, zx8302_raw2_r))
+ m_zx8302->out_mdselck_callback().set(FUNC(ql_state::zx8302_mdselck_w));
+ m_zx8302->out_mdseld_callback().set(m_mdv1, FUNC(microdrive_image_device::comms_in_w));
+ m_zx8302->out_mdrdw_callback().set(FUNC(ql_state::zx8302_mdrdw_w));
+ m_zx8302->out_erase_callback().set(FUNC(ql_state::zx8302_erase_w));
+ m_zx8302->out_raw1_callback().set(FUNC(ql_state::zx8302_raw1_w));
+ m_zx8302->in_raw1_callback().set(FUNC(ql_state::zx8302_raw1_r));
+ m_zx8302->out_raw2_callback().set(FUNC(ql_state::zx8302_raw2_w));
+ m_zx8302->in_raw2_callback().set(FUNC(ql_state::zx8302_raw2_r));
MCFG_MICRODRIVE_ADD(MDV_1)
MCFG_MICRODRIVE_COMMS_OUT_CALLBACK(WRITELINE(MDV_2, microdrive_image_device, comms_in_w))
diff --git a/src/mame/machine/zx8302.h b/src/mame/machine/zx8302.h
index 150a697c624..5502e2d2f64 100644
--- a/src/mame/machine/zx8302.h
+++ b/src/mame/machine/zx8302.h
@@ -38,56 +38,6 @@
///*************************************************************************
-// INTERFACE CONFIGURATION MACROS
-///*************************************************************************
-
-#define MCFG_ZX8302_RTC_CLOCK(_clk) \
- downcast<zx8302_device &>(*device).set_rtc_clock(_clk);
-
-#define MCFG_ZX8302_OUT_IPL1L_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_ipl1l_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_BAUDX4_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_baudx4_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_COMDATA_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_comdata_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_TXD1_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_txd1_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_TXD2_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_txd2_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_NETOUT_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_netout_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_MDSELCK_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_mdselck_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_MDSELD_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_mdseld_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_MDRDW_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_mdrdw_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_ERASE_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_erase_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_RAW1_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_raw1_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_IN_RAW1_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_in_raw1_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_OUT_RAW2_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_out_raw2_callback(DEVCB_##_devcb);
-
-#define MCFG_ZX8302_IN_RAW2_CB(_devcb) \
- downcast<zx8302_device &>(*device).set_in_raw2_callback(DEVCB_##_devcb);
-
-
-///*************************************************************************
// TYPE DEFINITIONS
///*************************************************************************
@@ -102,20 +52,20 @@ public:
void set_rtc_clock(int rtc_clock) { m_rtc_clock = rtc_clock; }
void set_rtc_clock(const XTAL &rtc_clock) { set_rtc_clock(rtc_clock.value()); }
- template <class Object> devcb_base &set_out_ipl1l_callback(Object &&cb) { return m_out_ipl1l_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_baudx4_callback(Object &&cb) { return m_out_baudx4_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_comdata_callback(Object &&cb) { return m_out_comdata_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_txd1_callback(Object &&cb) { return m_out_txd1_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_txd2_callback(Object &&cb) { return m_out_txd2_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_netout_callback(Object &&cb) { return m_out_netout_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_mdselck_callback(Object &&cb) { return m_out_mdselck_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_mdseld_callback(Object &&cb) { return m_out_mdseld_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_mdrdw_callback(Object &&cb) { return m_out_mdrdw_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_erase_callback(Object &&cb) { return m_out_erase_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_raw1_callback(Object &&cb) { return m_out_raw1_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_in_raw1_callback(Object &&cb) { return m_in_raw1_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_raw2_callback(Object &&cb) { return m_out_raw2_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_in_raw2_callback(Object &&cb) { return m_in_raw2_cb.set_callback(std::forward<Object>(cb)); }
+ auto out_ipl1l_callback() { return m_out_ipl1l_cb.bind(); }
+ auto out_baudx4_callback() { return m_out_baudx4_cb.bind(); }
+ auto out_comdata_callback() { return m_out_comdata_cb.bind(); }
+ auto out_txd1_callback() { return m_out_txd1_cb.bind(); }
+ auto out_txd2_callback() { return m_out_txd2_cb.bind(); }
+ auto out_netout_callback() { return m_out_netout_cb.bind(); }
+ auto out_mdselck_callback() { return m_out_mdselck_cb.bind(); }
+ auto out_mdseld_callback() { return m_out_mdseld_cb.bind(); }
+ auto out_mdrdw_callback() { return m_out_mdrdw_cb.bind(); }
+ auto out_erase_callback() { return m_out_erase_cb.bind(); }
+ auto out_raw1_callback() { return m_out_raw1_cb.bind(); }
+ auto in_raw1_callback() { return m_in_raw1_cb.bind(); }
+ auto out_raw2_callback() { return m_out_raw2_cb.bind(); }
+ auto in_raw2_callback() { return m_in_raw2_cb.bind(); }
DECLARE_READ8_MEMBER( rtc_r );
DECLARE_WRITE8_MEMBER( rtc_w );
diff --git a/src/mame/video/zx8301.h b/src/mame/video/zx8301.h
index 1d3b64f22d8..568f3303b6b 100644
--- a/src/mame/video/zx8301.h
+++ b/src/mame/video/zx8301.h
@@ -35,17 +35,6 @@
#pragma once
-
-
-///*************************************************************************
-// INTERFACE CONFIGURATION MACROS
-///*************************************************************************
-
-#define MCFG_ZX8301_VSYNC_CALLBACK(_write) \
- downcast<zx8301_device &>(*device).set_vsync_wr_callback(DEVCB_##_write);
-
-
-
///*************************************************************************
// TYPE DEFINITIONS
///*************************************************************************
@@ -66,7 +55,7 @@ public:
zx8301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_vsync_wr_callback(Object &&cb) { return m_write_vsync.set_callback(std::forward<Object>(cb)); }
+ auto vsync_wr_callback() { return m_write_vsync.bind(); }
DECLARE_WRITE8_MEMBER( control_w );
DECLARE_READ8_MEMBER( data_r );