Esempio n. 1
0
static MACHINE_START( kinst )
{
	kinst_state *state = machine.driver_data<kinst_state>();
	device_t *ide = machine.device("ide");
	UINT8 *features = ide_get_features(ide,0);

	if (strncmp(machine.system().name, "kinst2", 6) != 0)
	{
		/* kinst: tweak the model number so we pass the check */
		features[27*2+0] = 0x54;
		features[27*2+1] = 0x53;
		features[28*2+0] = 0x31;
		features[28*2+1] = 0x39;
		features[29*2+0] = 0x30;
		features[29*2+1] = 0x35;
		features[30*2+0] = 0x47;
		features[30*2+1] = 0x41;
		features[31*2+0] = 0x20;
		features[31*2+1] = 0x20;
	}
	else
	{
		/* kinst2: tweak the model number so we pass the check */
		features[10*2+0] = 0x30;
		features[10*2+1] = 0x30;
		features[11*2+0] = 0x54;
		features[11*2+1] = 0x53;
		features[12*2+0] = 0x31;
		features[12*2+1] = 0x39;
		features[13*2+0] = 0x30;
		features[13*2+1] = 0x35;
		features[14*2+0] = 0x47;
		features[14*2+1] = 0x41;
	}

	/* set the fastest DRC options */
	mips3drc_set_options(machine.device("maincpu"), MIPS3DRC_FASTEST_OPTIONS);

	/* configure fast RAM regions for DRC */
	mips3drc_add_fastram(machine.device("maincpu"), 0x08000000, 0x087fffff, FALSE, state->m_rambase2);
	mips3drc_add_fastram(machine.device("maincpu"), 0x00000000, 0x0007ffff, FALSE, state->m_rambase);
	mips3drc_add_fastram(machine.device("maincpu"), 0x1fc00000, 0x1fc7ffff, TRUE,  state->m_rombase);
}
Esempio n. 2
0
ROM_END



/*************************************
 *
 *  Driver initialization
 *
 *************************************/

static DRIVER_INIT( kinst )
{
	static const UINT8 kinst_control_map[8] = { 0,1,2,3,4,5,6,7 };
	UINT8 *features;

	dcs_init();

	/* set up the control register mapping */
	control_map = kinst_control_map;

	/* spin up the hard disk */
	ide_controller_init(0, &ide_intf);

	/* tweak the model number so we pass the check */
	features = ide_get_features(0);
	features[27*2+0] = 0x54;
	features[27*2+1] = 0x53;
	features[28*2+0] = 0x31;
	features[28*2+1] = 0x39;
	features[29*2+0] = 0x30;
	features[29*2+1] = 0x35;
	features[30*2+0] = 0x47;
	features[30*2+1] = 0x41;
	features[31*2+0] = 0x20;
	features[31*2+1] = 0x20;

	/* optimize one of the non-standard loops */
	kinst_speedup = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x8808f5bc, 0x8808f5bf, 0, 0, kinst_speedup_r);
}
Esempio n. 3
0
static DRIVER_INIT( kinst2 )
{
	static const UINT8 kinst2_control_map[8] = { 2,4,1,0,3,5,6,7 };
	UINT8 *features;

	// read: $80 on ki2 = $90 on ki
	// read: $88 on ki2 = $a0 on ki
	// write: $80 on ki2 = $90 on ki
	// write: $90 on ki2 = $88 on ki
	// write: $98 on ki2 = $80 on ki
	// write: $a0 on ki2 = $98 on ki

	dcs_init();

	/* set up the control register mapping */
	control_map = kinst2_control_map;

	/* spin up the hard disk */
	ide_controller_init(0, &ide_intf);

	/* tweak the model number so we pass the check */
	features = ide_get_features(0);
	features[10*2+0] = 0x30;
	features[10*2+1] = 0x30;
	features[11*2+0] = 0x54;
	features[11*2+1] = 0x53;
	features[12*2+0] = 0x31;
	features[12*2+1] = 0x39;
	features[13*2+0] = 0x30;
	features[13*2+1] = 0x35;
	features[14*2+0] = 0x47;
	features[14*2+1] = 0x41;

	/* optimize one of the non-standard loops */
	kinst_speedup = memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x887ff544, 0x887ff547, 0, 0, kinst_speedup_r);
}