void i8251_device::receive_clock() { /* receive enable? */ if (BIT(m_command, 2)) { const bool sync = is_receive_register_synchronized(); if (sync) { --m_rxc_count; if (m_rxc_count) return; } //logerror("I8251\n"); /* get bit received from other side and update receive register */ receive_register_update_bit(m_rxd); if (is_receive_register_synchronized()) m_rxc_count = sync ? m_br_factor : (3 * m_br_factor / 2); if (is_receive_register_full()) { receive_register_extract(); receive_character(get_received_char()); } } }
void i8251_device::receive_clock() { /* receive enable? */ if (m_command & (1<<2)) { //logerror("I8251\n"); /* get bit received from other side and update receive register */ if(m_in_rxd_func.isnull()) receive_register_update_bit(get_in_data_bit()); else receive_register_update_bit(m_in_rxd_func()); if (is_receive_register_full()) { receive_register_extract(); receive_character(get_received_char()); } } }
void i8251_device::receive_clock() { m_rxc_count++; if (m_rxc_count == m_br_factor) m_rxc_count = 0; else return; /* receive enable? */ if (m_command & (1<<2)) { //logerror("I8251\n"); /* get bit received from other side and update receive register */ receive_register_update_bit(m_rxd); if (is_receive_register_full()) { receive_register_extract(); receive_character(get_received_char()); } } }