diff options
Diffstat (limited to 'src/devices/machine/z80sio.h')
-rw-r--r-- | src/devices/machine/z80sio.h | 54 |
1 files changed, 25 insertions, 29 deletions
diff --git a/src/devices/machine/z80sio.h b/src/devices/machine/z80sio.h index f4363d23ce6..bbabea203a9 100644 --- a/src/devices/machine/z80sio.h +++ b/src/devices/machine/z80sio.h @@ -68,54 +68,54 @@ /* Generic macros */ #define MCFG_Z80SIO_OUT_INT_CB(_devcb) \ - devcb = &z80sio_device::set_out_int_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_int_callback(DEVCB_##_devcb); #define MCFG_Z80SIO_CPU(_cputag) \ - z80sio_device::static_set_cputag(*device, _cputag); + downcast<z80sio_device &>(*device).set_cputag(_cputag); // Port A callbacks #define MCFG_Z80SIO_OUT_TXDA_CB(_devcb) \ - devcb = &z80sio_device::set_out_txd_callback<0>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_txd_callback<0>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_DTRA_CB(_devcb) \ - devcb = &z80sio_device::set_out_dtr_callback<0>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_dtr_callback<0>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_RTSA_CB(_devcb) \ - devcb = &z80sio_device::set_out_rts_callback<0>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_rts_callback<0>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_WRDYA_CB(_devcb) \ - devcb = &z80sio_device::set_out_wrdy_callback<0>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_wrdy_callback<0>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_SYNCA_CB(_devcb) \ - devcb = &z80sio_device::set_out_sync_callback<0>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_sync_callback<0>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_RXDRQA_CB(_devcb) \ - devcb = &z80sio_device::set_out_rxdrq_callback<0>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_rxdrq_callback<0>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_TXDRQA_CB(_devcb) \ - devcb = &z80sio_device::set_out_txdrq_callback<0>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_txdrq_callback<0>(DEVCB_##_devcb); // Port B callbacks #define MCFG_Z80SIO_OUT_TXDB_CB(_devcb) \ - devcb = &z80sio_device::set_out_txd_callback<1>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_txd_callback<1>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_DTRB_CB(_devcb) \ - devcb = &z80sio_device::set_out_dtr_callback<1>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_dtr_callback<1>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_RTSB_CB(_devcb) \ - devcb = &z80sio_device::set_out_rts_callback<1>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_rts_callback<1>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_WRDYB_CB(_devcb) \ - devcb = &z80sio_device::set_out_wrdy_callback<1>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_wrdy_callback<1>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_SYNCB_CB(_devcb) \ - devcb = &z80sio_device::set_out_sync_callback<1>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_sync_callback<1>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_RXDRQB_CB(_devcb) \ - devcb = &z80sio_device::set_out_rxdrq_callback<1>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_rxdrq_callback<1>(DEVCB_##_devcb); #define MCFG_Z80SIO_OUT_TXDRQB_CB(_devcb) \ - devcb = &z80sio_device::set_out_txdrq_callback<1>(*device, DEVCB_##_devcb); + devcb = &downcast<z80sio_device &>(*device).set_out_txdrq_callback<1>(DEVCB_##_devcb); //************************************************************************** @@ -338,20 +338,16 @@ public: // construction/destruction z80sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template <unsigned N, class Object> static devcb_base &set_out_txd_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_txd_cb[N].set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> static devcb_base &set_out_dtr_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_dtr_cb[N].set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> static devcb_base &set_out_rts_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_rts_cb[N].set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> static devcb_base &set_out_wrdy_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_wrdy_cb[N].set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> static devcb_base &set_out_sync_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_sync_cb[N].set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_int_cb.set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> static devcb_base &set_out_rxdrq_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_rxdrq_cb[N].set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> static devcb_base &set_out_txdrq_callback(device_t &device, Object &&cb) { return downcast<z80sio_device &>(device).m_out_txdrq_cb[N].set_callback(std::forward<Object>(cb)); } + template <unsigned N, class Object> devcb_base &set_out_txd_callback(Object &&cb) { return m_out_txd_cb[N].set_callback(std::forward<Object>(cb)); } + template <unsigned N, class Object> devcb_base &set_out_dtr_callback(Object &&cb) { return m_out_dtr_cb[N].set_callback(std::forward<Object>(cb)); } + template <unsigned N, class Object> devcb_base &set_out_rts_callback(Object &&cb) { return m_out_rts_cb[N].set_callback(std::forward<Object>(cb)); } + template <unsigned N, class Object> devcb_base &set_out_wrdy_callback(Object &&cb) { return m_out_wrdy_cb[N].set_callback(std::forward<Object>(cb)); } + template <unsigned N, class Object> devcb_base &set_out_sync_callback(Object &&cb) { return m_out_sync_cb[N].set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_cb.set_callback(std::forward<Object>(cb)); } + template <unsigned N, class Object> devcb_base &set_out_rxdrq_callback(Object &&cb) { return m_out_rxdrq_cb[N].set_callback(std::forward<Object>(cb)); } + template <unsigned N, class Object> devcb_base &set_out_txdrq_callback(Object &&cb) { return m_out_txdrq_cb[N].set_callback(std::forward<Object>(cb)); } - static void static_set_cputag(device_t &device, const char *tag) - { - z80sio_device &dev = downcast<z80sio_device &>(device); - dev.m_cputag = tag; - } + void set_cputag(const char *tag) { m_cputag = tag; } DECLARE_READ8_MEMBER( cd_ba_r ); DECLARE_WRITE8_MEMBER( cd_ba_w ); |