void z80sti_device::tra_callback() { if (m_out_so_func.isnull()) transmit_register_send_bit(); else m_out_so_func(transmit_register_get_data_bit()); }
void mos6551_device::tra_callback() { if (m_txd_handler.isnull()) transmit_register_send_bit(); else m_txd_handler(transmit_register_get_data_bit()); }
void mos6551_device::tra_callback() { if (m_write_txd.isnull()) transmit_register_send_bit(); else m_write_txd(transmit_register_get_data_bit()); }
inline void im6402_device::transmit() { if (is_transmit_register_empty() && !m_tbre) { if (LOG) logerror("IM6402 '%s' Transmit Data %02x\n", tag(), m_tbr); transmit_register_setup(m_tbr); set_tbre(ASSERT_LINE); set_tre(CLEAR_LINE); } if (!is_transmit_register_empty()) { int bit = transmit_register_send_bit(); if (LOG) logerror("IM6402 '%s' Transmit Bit %u\n", tag(), bit); m_out_tro_func(bit); if (is_transmit_register_empty()) { set_tre(ASSERT_LINE); } } }
void z80dart_channel::tra_callback() { if (!(m_wr[5] & WR5_TX_ENABLE)) { // transmit mark m_out_txd_func(1); set_out_data_bit(1); } else if (m_wr[5] & WR5_SEND_BREAK) { // transmit break m_out_txd_func(0); set_out_data_bit(0); } else if (!is_transmit_register_empty()) { // transmit data if (m_out_txd_func.isnull()) transmit_register_send_bit(); else m_out_txd_func(transmit_register_get_data_bit()); } }