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]); }
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 }
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(>ia_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, >ia_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)); }