Exemplo n.º 1
0
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);
		}
	}
}
Exemplo n.º 2
0
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);
	}
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
		}
	}
}
Exemplo n.º 5
0
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);
}