static WRITE32_HANDLER( kinst_control_w )
{
	UINT32 olddata;

	/* apply shuffling */
	offset = control_map[offset / 2];
	olddata = kinst_control[offset];
	COMBINE_DATA(&kinst_control[offset]);

	switch (offset)
	{
		case 0:		/* $80 - VRAM buffer control */
			if (data & 4)
				video_base = &rambase[0x58000/4];
			else
				video_base = &rambase[0x30000/4];
			break;

		case 1:		/* $88 - sound reset */
			dcs_reset_w(~data & 0x01);
			break;

		case 2:		/* $90 - sound control */
			if (!(olddata & 0x02) && (kinst_control[offset] & 0x02))
				dcs_data_w(kinst_control[3]);
			break;

		case 3:		/* $98 - sound data */
			break;
	}
}
Beispiel #2
0
static WRITE32_HANDLER( kinst_control_w )
{
	kinst_state *state = space->machine().driver_data<kinst_state>();
	UINT32 olddata;

	/* apply shuffling */
	offset = state->m_control_map[offset / 2];
	olddata = state->m_control[offset];
	COMBINE_DATA(&state->m_control[offset]);

	switch (offset)
	{
		case 0:		/* $80 - VRAM buffer control */
			if (data & 4)
				state->m_video_base = &state->m_rambase[0x58000/4];
			else
				state->m_video_base = &state->m_rambase[0x30000/4];
			break;

		case 1:		/* $88 - sound reset */
			dcs_reset_w(space->machine(), ~data & 0x01);
			break;

		case 2:		/* $90 - sound control */
			if (!(olddata & 0x02) && (state->m_control[offset] & 0x02))
				dcs_data_w(space->machine(), state->m_control[3]);
			break;

		case 3:		/* $98 - sound data */
			break;
	}
}