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 im6402_device::tra_complete() { if (!m_tbre) { if (LOG) logerror("IM6402 '%s' Transmit Data %02x\n", tag().c_str(), m_tbr); transmit_register_setup(m_tbr); set_tbre(ASSERT_LINE); set_tre(CLEAR_LINE); } }
void im6402_device::device_reset() { m_rrc_count = 0; m_trc_count = 0; m_rbr = 0; m_pe = 0; m_fe = 0; m_oe = 0; set_dr(CLEAR_LINE); set_tbre(ASSERT_LINE); set_tre(ASSERT_LINE); }
void im6402_device::device_reset() { transmit_register_reset(); receive_register_reset(); m_rrc_count = 0; m_trc_count = 0; m_rbr = 0; m_pe = 0; m_fe = 0; m_oe = 0; set_dr(CLEAR_LINE); set_tbre(ASSERT_LINE); set_tre(ASSERT_LINE); }
inline void im6402_device::transmit() { if (is_transmit_register_empty() && !m_tbre) { transmit_register_setup(m_tbr); set_tbre(ASSERT_LINE); set_tre(CLEAR_LINE); } if (!is_transmit_register_empty()) { int bit = transmit_register_get_data_bit(); m_out_tro_func(bit); serial_connection_out(); if (is_transmit_register_empty()) { set_tre(ASSERT_LINE); } } }