diff options
Diffstat (limited to 'src/devices/cpu/i86')
-rw-r--r-- | src/devices/cpu/i86/i186.h | 16 | ||||
-rw-r--r-- | src/devices/cpu/i86/i286.h | 16 |
2 files changed, 7 insertions, 25 deletions
diff --git a/src/devices/cpu/i86/i186.h b/src/devices/cpu/i86/i186.h index 297a185ba66..01960a619f5 100644 --- a/src/devices/cpu/i86/i186.h +++ b/src/devices/cpu/i86/i186.h @@ -16,10 +16,6 @@ public: // construction/destruction i80186_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template <class Object> devcb_base &set_read_slave_ack_callback(Object &&cb) { return m_read_slave_ack_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_chip_select_callback(Object &&cb) { return m_out_chip_select_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_tmrout0_handler(Object &&cb) { return m_out_tmrout0_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_tmrout1_handler(Object &&cb) { return m_out_tmrout1_func.set_callback(std::forward<Object>(cb)); } auto read_slave_ack_callback() { return m_read_slave_ack_func.bind(); } auto chip_select_callback() { return m_out_chip_select_func.bind(); } auto tmrout0_handler() { return m_out_tmrout0_func.bind(); } @@ -160,16 +156,4 @@ public: i80188_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); }; -#define MCFG_80186_IRQ_SLAVE_ACK(_devcb) \ - downcast<i80186_cpu_device &>(*device).set_read_slave_ack_callback(DEVCB_##_devcb); - -#define MCFG_80186_CHIP_SELECT_CB(_devcb) \ - downcast<i80186_cpu_device &>(*device).set_chip_select_callback(DEVCB_##_devcb); - -#define MCFG_80186_TMROUT0_HANDLER(_devcb) \ - downcast<i80186_cpu_device &>(*device).set_tmrout0_handler(DEVCB_##_devcb); - -#define MCFG_80186_TMROUT1_HANDLER(_devcb) \ - downcast<i80186_cpu_device &>(*device).set_tmrout1_handler(DEVCB_##_devcb); - #endif // MAME_CPU_I86_I186_H diff --git a/src/devices/cpu/i86/i286.h b/src/devices/cpu/i86/i286.h index 97752a5d102..2812d756e19 100644 --- a/src/devices/cpu/i86/i286.h +++ b/src/devices/cpu/i86/i286.h @@ -71,9 +71,13 @@ public: // device_memory_interface overrides virtual space_config_vector memory_space_config() const override; - typedef delegate<uint32_t (bool)> a20_cb; - template <typename Object> void set_a20_callback(Object &&cb) { m_a20_callback = std::forward<Object>(cb); } - template <class Object> devcb_base &set_shutdown_callback(Object &&cb) { return m_out_shutdown_func.set_callback(std::forward<Object>(cb)); } + typedef device_delegate<uint32_t (bool)> a20_cb; + void set_a20_callback(a20_cb callback) { m_a20_callback = callback; } + template <class FunctionClass> void set_a20_callback(uint32_t (FunctionClass::*callback)(bool), const char *name) + { + set_a20_callback(a20_cb(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); + } + auto shutdown_callback() { return m_out_shutdown_func.bind(); } protected: @@ -162,10 +166,4 @@ private: devcb_write_line m_out_shutdown_func; }; -#define MCFG_80286_A20(_class, _a20_cb) \ - downcast<i80286_cpu_device &>(*device).set_a20_callback(i80286_cpu_device::a20_cb(&_class::_a20_cb, this)); - -#define MCFG_80286_SHUTDOWN(_devcb) \ - downcast<i80286_cpu_device &>(*device).set_shutdown_callback(DEVCB_##_devcb); - #endif // MAME_CPU_I86_I286_H |