mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
tms5501: Convert to devcb3; rename INT callback to match pin name (nw)
This commit is contained in:
parent
aabacee358
commit
be9c4ead94
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user