diff options
author | 2013-12-23 11:23:58 +0000 | |
---|---|---|
committer | 2013-12-23 11:23:58 +0000 | |
commit | 5b2f60d1fe14985d9af309f1accd29ca248e273b (patch) | |
tree | dea74333a3a292f0565bfa1be43ae0eb0b5601d1 /src/emu/machine | |
parent | 144fcca53525d1692dac160f796c073fd3092f22 (diff) |
removed unused rxd callback from mos6551 and made devcb2 consistent with other implementations [smf]
Diffstat (limited to 'src/emu/machine')
-rw-r--r-- | src/emu/machine/mos6551.c | 37 | ||||
-rw-r--r-- | src/emu/machine/mos6551.h | 36 |
2 files changed, 34 insertions, 39 deletions
diff --git a/src/emu/machine/mos6551.c b/src/emu/machine/mos6551.c index db6d370e9a6..e61dcada5c4 100644 --- a/src/emu/machine/mos6551.c +++ b/src/emu/machine/mos6551.c @@ -57,11 +57,11 @@ const device_type MOS6551 = &device_creator<mos6551_device>; mos6551_device::mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, MOS6551, "MOS6551", tag, owner, clock, "mos6551", __FILE__), device_serial_interface(mconfig, *this), - m_write_irq(*this), + m_irq_handler(*this), m_read_rxd(*this), - m_write_txd(*this), - m_write_rts(*this), - m_write_dtr(*this), + m_txd_handler(*this), + m_rts_handler(*this), + m_dtr_handler(*this), m_ctrl(0), m_cmd(CMD_RIE), m_st(ST_TDRE), @@ -80,11 +80,10 @@ mos6551_device::mos6551_device(const machine_config &mconfig, const char *tag, d void mos6551_device::device_start() { // resolve callbacks - m_write_irq.resolve_safe(); - m_read_rxd.resolve_safe(1); - m_write_txd.resolve_safe(); - m_write_rts.resolve_safe(); - m_write_dtr.resolve_safe(); + m_irq_handler.resolve_safe(); + m_txd_handler.resolve_safe(); + m_rts_handler.resolve_safe(); + m_dtr_handler.resolve_safe(); // state saving save_item(NAME(m_ctrl)); @@ -126,10 +125,10 @@ void mos6551_device::device_timer(emu_timer &timer, device_timer_id id, int para void mos6551_device::tra_callback() { - if (m_write_txd.isnull()) + if (m_txd_handler.isnull()) transmit_register_send_bit(); else - m_write_txd(transmit_register_get_data_bit()); + m_txd_handler(transmit_register_get_data_bit()); } @@ -147,7 +146,7 @@ void mos6551_device::tra_complete() if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO) { m_st |= ST_IRQ; - m_write_irq(ASSERT_LINE); + m_irq_handler(ASSERT_LINE); } } } @@ -184,7 +183,7 @@ void mos6551_device::rcv_complete() if (!(m_cmd & CMD_RIE)) { m_st |= ST_IRQ; - m_write_irq(ASSERT_LINE); + m_irq_handler(ASSERT_LINE); } } @@ -247,14 +246,14 @@ void mos6551_device::update_serial() else m_connection_state &= ~DTR; - m_write_dtr((m_connection_state & DTR) ? 0 : 1); + m_dtr_handler((m_connection_state & DTR) ? 0 : 1); if ((m_cmd & CMD_TC_MASK) == CMD_TC_RTS_HI) m_connection_state &= ~RTS; else m_connection_state |= RTS; - m_write_rts((m_connection_state & RTS) ? 0 : 1); + m_rts_handler((m_connection_state & RTS) ? 0 : 1); serial_connection_out(); } @@ -283,7 +282,7 @@ READ8_MEMBER( mos6551_device::read ) case 1: data = (m_dsr << 6) | (m_dcd << 5) | m_st; m_st &= ~ST_IRQ; - m_write_irq(CLEAR_LINE); + m_irq_handler(CLEAR_LINE); break; case 2: @@ -319,7 +318,7 @@ WRITE8_MEMBER( mos6551_device::write ) if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO) { m_st |= ST_IRQ; - m_write_irq(ASSERT_LINE); + m_irq_handler(ASSERT_LINE); } } break; @@ -396,7 +395,7 @@ WRITE_LINE_MEMBER( mos6551_device::dsr_w ) if (m_dsr != state) { m_st |= ST_IRQ; - m_write_irq(ASSERT_LINE); + m_irq_handler(ASSERT_LINE); } m_dsr = state; @@ -412,7 +411,7 @@ WRITE_LINE_MEMBER( mos6551_device::dcd_w ) if (m_dcd != state) { m_st |= ST_IRQ; - m_write_irq(ASSERT_LINE); + m_irq_handler(ASSERT_LINE); } m_dcd = state; diff --git a/src/emu/machine/mos6551.h b/src/emu/machine/mos6551.h index 43d28cbfe33..5292faa0ac0 100644 --- a/src/emu/machine/mos6551.h +++ b/src/emu/machine/mos6551.h @@ -39,18 +39,17 @@ // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_MOS6551_ADD(_tag, _clock, _irq) \ - MCFG_DEVICE_ADD(_tag, MOS6551, _clock) \ - downcast<mos6551_device *>(device)->set_irq_callback(DEVCB2_##_irq); +#define MCFG_MOS6551_IRQ_HANDLER(_devcb) \ + devcb = &mos6551_device::set_irq_handler(*device, DEVCB2_##_devcb); -#define MCFG_MOS6551_RXD_TXD_CALLBACKS(_rxd, _txd) \ - downcast<mos6551_device *>(device)->set_rxd_txd_callbacks(DEVCB2_##_rxd, DEVCB2_##_txd); +#define MCFG_MOS6551_TXD_HANDLER(_devcb) \ + devcb = &mos6551_device::set_txd_handler(*device, DEVCB2_##_devcb); -#define MCFG_MOS6551_RTS_CALLBACK(_rts) \ - downcast<mos6551_device *>(device)->set_rts_callback(DEVCB2_##_rts); +#define MCFG_MOS6551_RTS_HANDLER(_devcb) \ + devcb = &mos6551_device::set_rts_handler(*device, DEVCB2_##_devcb); -#define MCFG_MOS6551_DTR_CALLBACK(_dtr) \ - downcast<mos6551_device *>(device)->set_dtr_callback(DEVCB2_##_dtr); +#define MCFG_MOS6551_DTR_HANDLER(_devcb) \ + devcb = &mos6551_device::set_dtr_handler(*device, DEVCB2_##_devcb); @@ -67,13 +66,10 @@ public: // construction/destruction mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); - template<class _irq> void set_irq_callback(_irq irq) { m_write_irq.set_callback(irq); } - template<class _rxd, class _txd> void set_rxd_txd_callbacks(_rxd rxd, _txd txd) { - m_read_rxd.set_callback(rxd); - m_write_txd.set_callback(txd); - } - template<class _rts> void set_rts_callback(_rts rts) { m_write_rts.set_callback(rts); } - template<class _dtr> void set_dtr_callback(_dtr dtr) { m_write_dtr.set_callback(dtr); } + template<class _Object> static devcb2_base &set_irq_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_irq_handler.set_callback(object); } + template<class _Object> static devcb2_base &set_txd_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_txd_handler.set_callback(object); } + template<class _Object> static devcb2_base &set_rts_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_rts_handler.set_callback(object); } + template<class _Object> static devcb2_base &set_dtr_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_dtr_handler.set_callback(object); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -170,11 +166,11 @@ protected: void update_serial(); - devcb2_write_line m_write_irq; + devcb2_write_line m_irq_handler; devcb2_read_line m_read_rxd; - devcb2_write_line m_write_txd; - devcb2_write_line m_write_rts; - devcb2_write_line m_write_dtr; + devcb2_write_line m_txd_handler; + devcb2_write_line m_rts_handler; + devcb2_write_line m_dtr_handler; UINT8 m_ctrl; UINT8 m_cmd; |