diff options
Diffstat (limited to 'src/devices/cpu/i8085/i8085.h')
-rw-r--r-- | src/devices/cpu/i8085/i8085.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/devices/cpu/i8085/i8085.h b/src/devices/cpu/i8085/i8085.h index b4ab5901c1f..2da4c89acd1 100644 --- a/src/devices/cpu/i8085/i8085.h +++ b/src/devices/cpu/i8085/i8085.h @@ -18,25 +18,25 @@ // STATUS changed callback #define MCFG_I8085A_STATUS(_devcb) \ - devcb = &i8085a_cpu_device::set_out_status_func(*device, DEVCB_##_devcb); + devcb = &downcast<i8085a_cpu_device &>(*device).set_out_status_func(DEVCB_##_devcb); // INTE changed callback #define MCFG_I8085A_INTE(_devcb) \ - devcb = &i8085a_cpu_device::set_out_inte_func(*device, DEVCB_##_devcb); + devcb = &downcast<i8085a_cpu_device &>(*device).set_out_inte_func(DEVCB_##_devcb); // SID changed callback (8085A only) #define MCFG_I8085A_SID(_devcb) \ - devcb = &i8085a_cpu_device::set_in_sid_func(*device, DEVCB_##_devcb); + devcb = &downcast<i8085a_cpu_device &>(*device).set_in_sid_func(DEVCB_##_devcb); // SOD changed callback (8085A only) #define MCFG_I8085A_SOD(_devcb) \ - devcb = &i8085a_cpu_device::set_out_sod_func(*device, DEVCB_##_devcb); + devcb = &downcast<i8085a_cpu_device &>(*device).set_out_sod_func(DEVCB_##_devcb); // CLK rate callback (8085A only) #define MCFG_I8085A_CLK_OUT_DEVICE(_tag) \ - i8085a_cpu_device::static_set_clk_out(*device, clock_update_delegate(FUNC(device_t::set_unscaled_clock), _tag, (device_t *)nullptr)); + downcast<i8085a_cpu_device &>(*device).set_clk_out(clock_update_delegate(FUNC(device_t::set_unscaled_clock), _tag, (device_t *)nullptr)); #define MCFG_I8085A_CLK_OUT_CUSTOM(_class, _func) \ - i8085a_cpu_device::static_set_clk_out(*device, clock_update_delegate(&_class::_func, #_class "::" _func, owner)); + downcast<i8085a_cpu_device &>(*device).set_clk_out(clock_update_delegate(&_class::_func, #_class "::" _func, owner)); class i8085a_cpu_device : public cpu_device @@ -65,12 +65,12 @@ public: // construction/destruction i8085a_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - // static configuration helpers - template <class Object> static devcb_base &set_out_status_func(device_t &device, Object &&cb) { return downcast<i8085a_cpu_device &>(device).m_out_status_func.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_inte_func(device_t &device, Object &&cb) { return downcast<i8085a_cpu_device &>(device).m_out_inte_func.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_in_sid_func(device_t &device, Object &&cb) { return downcast<i8085a_cpu_device &>(device).m_in_sid_func.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_sod_func(device_t &device, Object &&cb) { return downcast<i8085a_cpu_device &>(device).m_out_sod_func.set_callback(std::forward<Object>(cb)); } - static void static_set_clk_out(device_t &device, clock_update_delegate &&clk_out) { downcast<i8085a_cpu_device &>(device).m_clk_out_func = std::move(clk_out); } + // configuration helpers + template <class Object> devcb_base &set_out_status_func(Object &&cb) { return m_out_status_func.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_inte_func(Object &&cb) { return m_out_inte_func.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_in_sid_func(Object &&cb) { return m_in_sid_func.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_sod_func(Object &&cb) { return m_out_sod_func.set_callback(std::forward<Object>(cb)); } + template <typename Object> void set_clk_out(Object &&cb) { m_clk_out_func = std::forward<Object>(cb); } protected: i8085a_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int cputype); |