示例#1
0
文件: im6402.c 项目: broftkd/mess-svn
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);
		}
	}
}
示例#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);
	}
}
示例#3
0
文件: im6402.c 项目: risico/jsmess
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);
}
示例#4
0
文件: im6402.c 项目: broftkd/mess-svn
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);
}
示例#5
0
文件: im6402.c 项目: risico/jsmess
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);
		}
	}
}