tms5501: Convert to devcb3; rename INT callback to match pin name (nw)

This commit is contained in:
AJR 2018-08-01 16:52:14 -04:00
parent aabacee358
commit be9c4ead94
5 changed files with 24 additions and 42 deletions

View File

@ -58,7 +58,7 @@ void tms5501_device::io_map(address_map &map)
tms5501_device::tms5501_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, TMS5501, tag, owner, clock),
device_serial_interface(mconfig, *this),
m_write_irq(*this),
m_write_int(*this),
m_write_xmt(*this),
m_read_xi(*this),
m_write_xo(*this),
@ -82,7 +82,7 @@ tms5501_device::tms5501_device(const machine_config &mconfig, const char *tag, d
void tms5501_device::device_start()
{
// resolve callbacks
m_write_irq.resolve_safe();
m_write_int.resolve_safe();
m_write_xmt.resolve_safe();
m_read_xi.resolve_safe(0);
m_write_xo.resolve_safe();
@ -496,11 +496,11 @@ void tms5501_device::check_interrupt()
if (m_cmd & CMD_IAE)
{
m_write_irq(state);
m_write_int(state);
}
else
{
m_write_irq(CLEAR_LINE);
m_write_int(CLEAR_LINE);
}
}

View File

@ -38,24 +38,6 @@
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_TMS5501_IRQ_CALLBACK(_write) \
downcast<tms5501_device &>(*device).set_irq_wr_callback(DEVCB_##_write);
#define MCFG_TMS5501_XMT_CALLBACK(_write) \
downcast<tms5501_device &>(*device).set_xmt_wr_callback(DEVCB_##_write);
#define MCFG_TMS5501_XI_CALLBACK(_read) \
downcast<tms5501_device &>(*device).set_xi_rd_callback(DEVCB_##_read);
#define MCFG_TMS5501_XO_CALLBACK(_write) \
downcast<tms5501_device &>(*device).set_xo_wr_callback(DEVCB_##_write);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -69,10 +51,10 @@ public:
// construction/destruction
tms5501_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_irq_wr_callback(Object &&cb) { return m_write_irq.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_xmt_wr_callback(Object &&cb) { return m_write_xmt.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_xi_rd_callback(Object &&cb) { return m_read_xi.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_xo_wr_callback(Object &&cb) { return m_write_xo.set_callback(std::forward<Object>(cb)); }
auto int_callback() { return m_write_int.bind(); }
auto xmt_callback() { return m_write_xmt.bind(); }
auto xi_callback() { return m_read_xi.bind(); }
auto xo_callback() { return m_write_xo.bind(); }
DECLARE_WRITE_LINE_MEMBER( rcv_w );
@ -167,7 +149,7 @@ private:
void set_interrupt(uint8_t mask);
void check_interrupt();
devcb_write_line m_write_irq;
devcb_write_line m_write_int;
devcb_write_line m_write_xmt;
devcb_read8 m_read_xi;
devcb_write8 m_write_xo;

View File

@ -419,11 +419,11 @@ MACHINE_CONFIG_START(compucolor2_state::compucolor2)
blink.count_out_cb().set(m_mioc, FUNC(tms5501_device::sens_w)).bit(4);
// devices
MCFG_DEVICE_ADD(TMS5501_TAG, TMS5501, XTAL(17'971'200)/9)
MCFG_TMS5501_IRQ_CALLBACK(INPUTLINE(I8080_TAG, I8085_INTR_LINE))
MCFG_TMS5501_XMT_CALLBACK(WRITELINE(*this, compucolor2_state, xmt_w))
MCFG_TMS5501_XI_CALLBACK(READ8(*this, compucolor2_state, xi_r))
MCFG_TMS5501_XO_CALLBACK(WRITE8(*this, compucolor2_state, xo_w))
TMS5501(config, m_mioc, XTAL(17'971'200)/9);
m_mioc->int_callback().set_inputline(I8080_TAG, I8085_INTR_LINE);
m_mioc->xmt_callback().set(FUNC(compucolor2_state::xmt_w));
m_mioc->xi_callback().set(FUNC(compucolor2_state::xi_r));
m_mioc->xo_callback().set(FUNC(compucolor2_state::xo_w));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(TMS5501_TAG, tms5501_device, rcv_w))

View File

@ -232,10 +232,10 @@ MACHINE_CONFIG_START(dai_state::dai)
MCFG_CASSETTE_INTERFACE("dai_cass")
/* tms5501 */
MCFG_DEVICE_ADD("tms5501", TMS5501, 2000000)
MCFG_TMS5501_IRQ_CALLBACK(INPUTLINE("maincpu", I8085_INTR_LINE))
MCFG_TMS5501_XI_CALLBACK(READ8(*this, dai_state, dai_keyboard_r))
MCFG_TMS5501_XO_CALLBACK(WRITE8(*this, dai_state, dai_keyboard_w))
TMS5501(config, m_tms5501, 2000000);
m_tms5501->int_callback().set_inputline("maincpu", I8085_INTR_LINE);
m_tms5501->xi_callback().set(FUNC(dai_state::dai_keyboard_r));
m_tms5501->xo_callback().set(FUNC(dai_state::dai_keyboard_w));
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)

View File

@ -128,9 +128,9 @@ MACHINE_CONFIG_START(mcb216_state::mcb216)
MCFG_MACHINE_RESET_OVERRIDE(mcb216_state, mcb216)
MCFG_DEVICE_ADD("tms5501", TMS5501, 8_MHz_XTAL / 4)
MCFG_TMS5501_XMT_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd))
MCFG_TMS5501_IRQ_CALLBACK(INPUTLINE("maincpu", 0))
TMS5501(config, m_tms5501, 8_MHz_XTAL / 4);
m_tms5501->xmt_callback().set("rs232", FUNC(rs232_port_device::write_txd));
m_tms5501->int_callback().set_inputline("maincpu", 0);
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("tms5501", tms5501_device, rcv_w))
@ -145,9 +145,9 @@ MACHINE_CONFIG_START(mcb216_state::cb308)
MCFG_MACHINE_RESET_OVERRIDE(mcb216_state, cb308)
MCFG_DEVICE_ADD("tms5501", TMS5501, 8_MHz_XTAL / 4)
MCFG_TMS5501_XMT_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd))
MCFG_TMS5501_IRQ_CALLBACK(INPUTLINE("maincpu", 0))
TMS5501(config, m_tms5501, 8_MHz_XTAL / 4);
m_tms5501->xmt_callback().set("rs232", FUNC(rs232_port_device::write_txd));
m_tms5501->int_callback().set_inputline("maincpu", 0);
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("tms5501", tms5501_device, rcv_w))