示例#1
0
void asic65_reset(running_machine &machine, int state)
{
	address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM);

	/* rom-based means reset and clear states */
	if (asic65.cpu != NULL)
		asic65.cpu->execute().set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);

	/* otherwise, do it manually */
	else
	{
		machine.device<cpu_device>("asic65")->suspend(SUSPEND_REASON_DISABLE, 1);

		/* if reset is being signalled, clear everything */
		if (state && !asic65.reset_state)
			asic65.command = -1;

		/* if reset is going high, latch the command */
		else if (!state && asic65.reset_state)
		{
			if (asic65.command != -1)
				asic65_data_w(space, 1, asic65.command, 0xffff);
		}

		/* update the state */
		asic65.reset_state = state;
	}
}
示例#2
0
文件: asic65.c 项目: nitrologic/emu
void asic65_reset(running_machine *machine, int state)
{
	const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);

	/* rom-based means reset and clear states */
	if (asic65.cpu != NULL)
		cpu_set_input_line(asic65.cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);

	/* otherwise, do it manually */
	else
	{
		cputag_suspend(machine, "asic65", SUSPEND_REASON_DISABLE, 1);

		/* if reset is being signalled, clear everything */
		if (state && !asic65.reset_state)
			asic65.command = -1;

		/* if reset is going high, latch the command */
		else if (!state && asic65.reset_state)
		{
			if (asic65.command != -1)
				asic65_data_w(space, 1, asic65.command, 0xffff);
		}

		/* update the state */
		asic65.reset_state = state;
	}
}
示例#3
0
void asic65_reset(int state)
{
	/* if reset is being signalled, clear everything */
	if (state && !asic65_reset_state)
		asic65_command = -1;

	/* if reset is going high, latch the command */
	else if (!state && asic65_reset_state)
	{
		if (asic65_command != -1)
			asic65_data_w(1, asic65_command, 0);
	}

	/* update the state */
	asic65_reset_state = state;
}