예제 #1
0
파일: cococart.c 프로젝트: antervud/MAMEHub
void cococart_slot_device::set_line(const char *line_name, coco_cartridge_line &line, cococart_line_value value)
{
	if ((line.value != value) || (value == COCOCART_LINE_VALUE_Q))
	{
		line.value = value;

		if (LOG_LINE)
			logerror("[%s]: set_line(): %s <= %s\n", machine().describe_context(), line_name, line_value_string(value));
		/* engage in a bit of gymnastics for this odious 'Q' value */
		switch(line.value)
		{
			case COCOCART_LINE_VALUE_CLEAR:
				line.line = 0x00;
				line.q_count = 0;
				break;

			case COCOCART_LINE_VALUE_ASSERT:
				line.line = 0x01;
				line.q_count = 0;
				break;

			case COCOCART_LINE_VALUE_Q:
				line.line = line.line ? 0x00 : 0x01;
				if (line.q_count++ < 4)
					set_line_timer(line, value);
				break;
		}

		/* invoke the callback, if present */
		if (!line.callback.isnull())
			line.callback(line.line);
	}
}
예제 #2
0
파일: cococart.c 프로젝트: antervud/MAMEHub
void cococart_slot_device::twiddle_line_if_q(coco_cartridge_line &line)
{
	if (line.value == COCOCART_LINE_VALUE_Q)
	{
		line.q_count = 0;
		set_line_timer(line, COCOCART_LINE_VALUE_Q);
	}
}
예제 #3
0
파일: cococart.c 프로젝트: cdenix/psmame
static void twiddle_line_if_q(device_t *device, coco_cartridge_line *line)
{
	if (line->value == COCOCART_LINE_VALUE_Q)
	{
		line->q_count = 0;
		set_line_timer(device, line, COCOCART_LINE_VALUE_Q);
	}
}
예제 #4
0
파일: cococart.cpp 프로젝트: broftkd/mame
void cococart_slot_device::twiddle_line_if_q(coco_cartridge_line &line)
{
	if (line.value == line_value::Q)
	{
		line.q_count = 0;
		set_line_timer(line, line_value::Q);
	}
}
예제 #5
0
파일: cococart.c 프로젝트: antervud/MAMEHub
void cococart_slot_device::cart_set_line(cococart_line line, cococart_line_value value)
{
	switch (line)
	{
		case COCOCART_LINE_CART:
			set_line_timer(m_cart_line, value);
			break;

		case COCOCART_LINE_NMI:
			set_line_timer(m_nmi_line, value);
			break;

		case COCOCART_LINE_HALT:
			set_line_timer(m_halt_line, value);
			break;

		case COCOCART_LINE_SOUND_ENABLE:
			// do nothing for now
			break;
	}
}
예제 #6
0
파일: cococart.c 프로젝트: cdenix/psmame
void coco_cartridge_set_line(device_t *device, cococart_line line, cococart_line_value value)
{
	switch (line)
	{
		case COCOCART_LINE_CART:
			set_line_timer(device, &get_token(device)->cart_line, value);
			break;

		case COCOCART_LINE_NMI:
			set_line_timer(device, &get_token(device)->nmi_line, value);
			break;

		case COCOCART_LINE_HALT:
			set_line_timer(device, &get_token(device)->halt_line, value);
			break;

		case COCOCART_LINE_SOUND_ENABLE:
			/* do nothing for now */
			break;
	}
}
예제 #7
0
파일: cococart.cpp 프로젝트: broftkd/mame
void cococart_slot_device::set_line_value(cococart_slot_device::line which, cococart_slot_device::line_value value)
{
	switch (which)
	{
	case cococart_slot_device::line::CART:
		set_line_timer(m_cart_line, value);
		break;

	case cococart_slot_device::line::NMI:
		set_line_timer(m_nmi_line, value);
		break;

	case cococart_slot_device::line::HALT:
		set_line_timer(m_halt_line, value);
		break;

	case cococart_slot_device::line::SOUND_ENABLE:
		if (m_cart)
			m_cart->set_sound_enable(value != cococart_slot_device::line_value::CLEAR);
		break;
	}
}