Beispiel #1
0
static void ddr_b_w(const device_config *device, UINT8 data)
{
	pia6821_state *p = get_token(device);

	if (data == 0x00)
		LOG(("PIA #%s: DDR B write = %02X (input mode)\n", device->tag, data));
	else if (data == 0xff)
		LOG(("PIA #%s: DDR B write = %02X (output mode)\n", device->tag, data));
	else
		LOG(("PIA #%s: DDR B write = %02X (mixed mode)\n", device->tag, data));

	if (p->ddr_b != data)
	{
		/* DDR changed, call the callback again */
		p->ddr_b = data;
		p->logged_port_b_not_connected = FALSE;
		send_to_out_b_func(device, "port B write due to DDR change");
	}
}
Beispiel #2
0
void pia6821_device::port_b_w(UINT8 data)
{
	// buffer the output value
	m_out_b = data;

	send_to_out_b_func("port B write");

	// CB2 in write strobe mode
	if(C2_STROBE_MODE(m_ctl_b))
	{
		// this will cause a transition low
		set_out_cb2(FALSE);

		// if the CB2 strobe is cleared by the E, reset it right away
		if(STROBE_E_RESET(m_ctl_b))
		{
			set_out_cb2(TRUE);
		}
	}
}
Beispiel #3
0
static void port_b_w(const device_config *device, UINT8 data)
{
	pia6821_state *p = get_token(device);

	/* buffer the output value */
	p->out_b = data;

	send_to_out_b_func(device, "port B write");

	/* CB2 in write strobe mode */
	if (C2_STROBE_MODE(p->ctl_b))
	{
		/* this will cause a transition low */
		set_out_cb2(device, FALSE);

		/* if the CB2 strobe is cleared by the E, reset it right away */
		if (STROBE_E_RESET(p->ctl_b))
			set_out_cb2(device, TRUE);
	}
}
Beispiel #4
0
void pia6821_device::ddr_b_w(UINT8 data)
{
	if (data == 0x00)
	{
		LOG(("PIA #%s: DDR B write = %02X (input mode)\n", tag(), data));
	}
	else if (data == 0xff)
	{
		LOG(("PIA #%s: DDR B write = %02X (output mode)\n", tag(), data));
	}
	else
	{
		LOG(("PIA #%s: DDR B write = %02X (mixed mode)\n", tag(), data));
	}

	if(m_ddr_b != data)
	{
		// DDR changed, call the callback again
		m_ddr_b = data;
		m_logged_port_b_not_connected = false;
		send_to_out_b_func("port B write due to DDR change");
	}
}