summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2013-12-23 11:23:58 +0000
committer smf- <smf-@users.noreply.github.com>2013-12-23 11:23:58 +0000
commit5b2f60d1fe14985d9af309f1accd29ca248e273b (patch)
treedea74333a3a292f0565bfa1be43ae0eb0b5601d1 /src/emu/machine
parent144fcca53525d1692dac160f796c073fd3092f22 (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.c37
-rw-r--r--src/emu/machine/mos6551.h36
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;