diff options
Diffstat (limited to 'src/devices/machine/z80dart.h')
-rw-r--r-- | src/devices/machine/z80dart.h | 75 |
1 files changed, 37 insertions, 38 deletions
diff --git a/src/devices/machine/z80dart.h b/src/devices/machine/z80dart.h index 90768898ae0..04806d3f957 100644 --- a/src/devices/machine/z80dart.h +++ b/src/devices/machine/z80dart.h @@ -155,52 +155,52 @@ //************************************************************************** #define MCFG_Z80DART_OFFSETS(_rxa, _txa, _rxb, _txb) \ - z80dart_device::configure_channels(*device, _rxa, _txa, _rxb, _txb); + downcast<z80dart_device &>(*device).configure_channels(_rxa, _txa, _rxb, _txb); #define MCFG_Z80DART_OUT_TXDA_CB(_devcb) \ - devcb = &z80dart_device::set_out_txda_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_txda_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_DTRA_CB(_devcb) \ - devcb = &z80dart_device::set_out_dtra_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_dtra_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_RTSA_CB(_devcb) \ - devcb = &z80dart_device::set_out_rtsa_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_rtsa_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_WRDYA_CB(_devcb) \ - devcb = &z80dart_device::set_out_wrdya_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_wrdya_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_SYNCA_CB(_devcb) \ - devcb = &z80dart_device::set_out_synca_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_synca_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_TXDB_CB(_devcb) \ - devcb = &z80dart_device::set_out_txdb_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_txdb_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_DTRB_CB(_devcb) \ - devcb = &z80dart_device::set_out_dtrb_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_dtrb_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_RTSB_CB(_devcb) \ - devcb = &z80dart_device::set_out_rtsb_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_rtsb_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_WRDYB_CB(_devcb) \ - devcb = &z80dart_device::set_out_wrdyb_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_wrdyb_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_SYNCB_CB(_devcb) \ - devcb = &z80dart_device::set_out_syncb_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_syncb_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_INT_CB(_devcb) \ - devcb = &z80dart_device::set_out_int_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_int_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_RXDRQA_CB(_devcb) \ - devcb = &z80dart_device::set_out_rxdrqa_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_rxdrqa_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_TXDRQA_CB(_devcb) \ - devcb = &z80dart_device::set_out_txdrqa_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_txdrqa_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_RXDRQB_CB(_devcb) \ - devcb = &z80dart_device::set_out_rxdrqb_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_rxdrqb_callback(DEVCB_##_devcb); #define MCFG_Z80DART_OUT_TXDRQB_CB(_devcb) \ - devcb = &z80dart_device::set_out_txdrqb_callback(*device, DEVCB_##_devcb); + devcb = &downcast<z80dart_device &>(*device).set_out_txdrqb_callback(DEVCB_##_devcb); //************************************************************************** @@ -446,29 +446,28 @@ public: // construction/destruction z80dart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template <class Object> static devcb_base &set_out_txda_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_txda_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_dtra_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_dtra_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_rtsa_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_rtsa_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_wrdya_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_wrdya_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_synca_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_synca_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_txdb_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_txdb_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_dtrb_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_dtrb_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_rtsb_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_rtsb_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_wrdyb_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_wrdyb_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_syncb_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_syncb_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_int_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_int_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_rxdrqa_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_rxdrqa_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_txdrqa_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_txdrqa_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_rxdrqb_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_rxdrqb_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_out_txdrqb_callback(device_t &device, Object &&cb) { return downcast<z80dart_device &>(device).m_out_txdrqb_cb.set_callback(std::forward<Object>(cb)); } - - static void configure_channels(device_t &device, int rxa, int txa, int rxb, int txb) + template <class Object> devcb_base &set_out_txda_callback(Object &&cb) { return m_out_txda_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_dtra_callback(Object &&cb) { return m_out_dtra_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_rtsa_callback(Object &&cb) { return m_out_rtsa_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_wrdya_callback(Object &&cb) { return m_out_wrdya_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_synca_callback(Object &&cb) { return m_out_synca_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_txdb_callback(Object &&cb) { return m_out_txdb_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_dtrb_callback(Object &&cb) { return m_out_dtrb_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_rtsb_callback(Object &&cb) { return m_out_rtsb_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_wrdyb_callback(Object &&cb) { return m_out_wrdyb_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_syncb_callback(Object &&cb) { return m_out_syncb_cb.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 <class Object> devcb_base &set_out_rxdrqa_callback(Object &&cb) { return m_out_rxdrqa_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_txdrqa_callback(Object &&cb) { return m_out_txdrqa_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_rxdrqb_callback(Object &&cb) { return m_out_rxdrqb_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_txdrqb_callback(Object &&cb) { return m_out_txdrqb_cb.set_callback(std::forward<Object>(cb)); } + + void configure_channels(int rxa, int txa, int rxb, int txb) { - z80dart_device &dev = downcast<z80dart_device &>(device); - dev.m_rxca = rxa; - dev.m_txca = txa; - dev.m_rxcb = rxb; - dev.m_txcb = txb; + m_rxca = rxa; + m_txca = txa; + m_rxcb = rxb; + m_txcb = txb; } DECLARE_READ8_MEMBER( cd_ba_r ); |