Пример #1
0
static void arcadia_init(void)
{
	static const amiga_machine_interface arcadia_intf =
	{
		ANGUS_CHIP_RAM_MASK,
		arcadia_cia_0_porta_r, arcadia_cia_0_portb_r,
		arcadia_cia_0_porta_w, arcadia_cia_0_portb_w,
		NULL, NULL,
		NULL, NULL,
		NULL, NULL, NULL,
		NULL, NULL, NULL,
		NULL,  arcadia_reset_coins
	};
	UINT16 *biosrom;

	/* configure our Amiga setup */
	amiga_machine_config(&arcadia_intf);

	/* set up memory */
	memory_configure_bank(1, 0, 1, amiga_chip_ram, 0);
	memory_configure_bank(1, 1, 1, memory_region(REGION_USER1), 0);

	/* OnePlay bios is encrypted, TenPlay is not */
	biosrom = (UINT16 *)memory_region(REGION_USER2);
	if (biosrom[0] != 0x4afc)
		generic_decode(REGION_USER2, 6, 1, 0, 2, 3, 4, 5, 7);

	/* request notifications when the coins change */
	input_port_set_changed_callback(port_tag_to_index("COINS"), 0x01, coin_changed_callback, &coin_counter[0]);
	input_port_set_changed_callback(port_tag_to_index("COINS"), 0x02, coin_changed_callback, &coin_counter[1]);
}
Пример #2
0
void at_keyboard_init(AT_KEYBOARD_TYPE type)
{
	int i;
	char buf[32];

	memset(&keyboard, 0, sizeof(keyboard));
	keyboard.type = type;
	keyboard.on = 1;
	keyboard.delay = 60;
	keyboard.repeat = 8;
	keyboard.numlock = 0;
	keyboard.head = keyboard.tail = 0;
	keyboard.input_state = 0;
	memset(&keyboard.make[0], 0, sizeof(UINT8)*128);
	/* set default led state */
	set_led_status(2, 0);
	set_led_status(0, 0);
	set_led_status(1, 0);

	keyboard.scan_code_set = 3;

	/* locate the keyboard ports */
	for (i = 0; i < sizeof(keyboard.ports) / sizeof(keyboard.ports[0]); i++)
	{
		sprintf(buf, "pc_keyboard_%d", i);
		keyboard.ports[i] = port_tag_to_index(buf);
	}

#ifdef MESS
	inputx_setup_natural_keyboard(at_keyboard_queue_chars,
		at_keyboard_accept_char,
		at_keyboard_charqueue_empty);
#endif
}
Пример #3
0
static void atari_machine_start(running_machine *machine, int type, const pia6821_interface *pia_intf, int has_cart)
{
	gtia_interface gtia_intf;

	atari = type;

	/* GTIA */
	memset(&gtia_intf, 0, sizeof(gtia_intf));
	if (port_tag_to_index("console") >= 0)
		gtia_intf.console_read = console_read;
	if (sndti_exists(SOUND_DAC, 0))
		gtia_intf.console_write = console_write;
	gtia_init(machine, &gtia_intf);

	/* pokey */
	add_reset_callback(Machine, pokey_reset);

	/* PIA */
	if (pia_intf)
	{
		pia_config(0, pia_intf);
		add_reset_callback(Machine, _pia_reset);
	}

	/* ANTIC */
	add_reset_callback(Machine, _antic_reset);

	/* cartridge */
	if (has_cart)
		add_reset_callback(Machine, cart_reset);

#ifdef MESS
	{
		offs_t ram_top;
		offs_t ram_size;

		if (!strcmp(Machine->gamedrv->name, "a400")
			|| !strcmp(Machine->gamedrv->name, "a400pal")
			|| !strcmp(Machine->gamedrv->name, "a800")
			|| !strcmp(Machine->gamedrv->name, "a800pal")
			|| !strcmp(Machine->gamedrv->name, "a800xl"))
		{
			ram_size = 0xA000;
		}
		else
		{
			ram_size = 0x8000;
		}

		/* install RAM */
		ram_top = MIN(mess_ram_size, ram_size) - 1;
		memory_install_read8_handler(machine, 0, ADDRESS_SPACE_PROGRAM,
			0x0000, ram_top, 0, 0, SMH_BANK2);
		memory_install_write8_handler(machine, 0, ADDRESS_SPACE_PROGRAM,
			0x0000, ram_top, 0, 0, SMH_BANK2);
		memory_set_bankptr(2, mess_ram);
	}
#endif /* MESS */

	/* save states */
	state_save_register_global_pointer(((UINT8 *) &antic.r), sizeof(antic.r));
	state_save_register_global_pointer(((UINT8 *) &antic.w), sizeof(antic.w));
}