static int specplus2_reset( void ) { int error; error = machine_load_rom( 0, 0, settings_current.rom_plus2_0, settings_default.rom_plus2_0, 0x4000 ); if( error ) return error; error = machine_load_rom( 2, 1, settings_current.rom_plus2_1, settings_default.rom_plus2_1, 0x4000 ); if( error ) return error; error = spec128_common_reset( 1 ); if( error ) return error; error = periph_setup( spec128_peripherals, spec128_peripherals_count ); if( error ) return error; periph_setup_kempston( PERIPH_PRESENT_OPTIONAL ); periph_setup_interface1( PERIPH_PRESENT_OPTIONAL ); periph_setup_interface2( PERIPH_PRESENT_OPTIONAL ); periph_setup_opus( PERIPH_PRESENT_OPTIONAL ); periph_setup_plusd( PERIPH_PRESENT_OPTIONAL ); periph_setup_beta128( PERIPH_PRESENT_OPTIONAL ); periph_update(); periph_register_beta128(); beta_builtin = 0; spec48_common_display_setup(); return 0; }
static int specplus2_reset( void ) { int error; error = machine_load_rom( 0, settings_current.rom_plus2_0, settings_default.rom_plus2_0, 0x4000 ); if( error ) return error; error = machine_load_rom( 1, settings_current.rom_plus2_1, settings_default.rom_plus2_1, 0x4000 ); if( error ) return error; error = spec128_common_reset( 1 ); if( error ) return error; periph_clear(); machines_periph_128(); periph_update(); beta_builtin = 0; spec48_common_display_setup(); return 0; }
static int spec48_reset( void ) { int error; error = machine_load_rom( 0, 0, settings_current.rom_48, settings_default.rom_48, 0x4000 ); if( error ) return error; error = periph_setup( peripherals, peripherals_count ); if( error ) return error; periph_setup_kempston( PERIPH_PRESENT_OPTIONAL ); periph_setup_interface1( PERIPH_PRESENT_OPTIONAL ); periph_setup_interface2( PERIPH_PRESENT_OPTIONAL ); periph_setup_opus( PERIPH_PRESENT_OPTIONAL ); periph_setup_plusd( PERIPH_PRESENT_OPTIONAL ); periph_setup_beta128( PERIPH_PRESENT_OPTIONAL ); periph_setup_fuller( PERIPH_PRESENT_OPTIONAL ); periph_setup_melodik( PERIPH_PRESENT_OPTIONAL ); periph_update(); periph_register_beta128(); beta_builtin = 0; memory_current_screen = 5; memory_screen_mask = 0xffff; spec48_common_display_setup(); return spec48_common_reset(); }
static int specplus3e_reset( void ) { int error; error = machine_load_rom( 0, settings_current.rom_plus3e_0, settings_default.rom_plus3e_0, 0x4000 ); if( error ) return error; error = machine_load_rom( 1, settings_current.rom_plus3e_1, settings_default.rom_plus3e_1, 0x4000 ); if( error ) return error; error = machine_load_rom( 2, settings_current.rom_plus3e_2, settings_default.rom_plus3e_2, 0x4000 ); if( error ) return error; error = machine_load_rom( 3, settings_current.rom_plus3e_3, settings_default.rom_plus3e_3, 0x4000 ); if( error ) return error; error = specplus3_plus2a_common_reset(); if( error ) return error; periph_clear(); machines_periph_plus3(); periph_set_present( PERIPH_TYPE_UPD765, PERIPH_PRESENT_ALWAYS ); periph_update(); specplus3_765_reset(); specplus3_menu_items(); spec48_common_display_setup(); return 0; }
static int spec16_reset( void ) { int error; error = machine_load_rom( 0, settings_current.rom_16, settings_default.rom_16, 0x4000 ); if( error ) return error; ensure_empty_mapping(); periph_clear(); machines_periph_48(); periph_update(); /* The one RAM page is contended */ memory_ram_set_16k_contention( 5, 1 ); memory_map_16k( 0x0000, memory_map_rom, 0 ); memory_map_16k( 0x4000, memory_map_ram, 5 ); memory_map_16k( 0x8000, empty_mapping, 0 ); memory_map_16k( 0xc000, empty_mapping, 0 ); memory_current_screen = 5; memory_screen_mask = 0xffff; spec48_common_display_setup(); return 0; }
static int pentagon_reset(void) { int error; int i; error = machine_load_rom( 0, 0, settings_current.rom_pentagon512_0, settings_default.rom_pentagon512_0, 0x4000 ); if( error ) return error; error = machine_load_rom( 2, 1, settings_current.rom_pentagon512_1, settings_default.rom_pentagon512_1, 0x4000 ); if( error ) return error; error = machine_load_rom( 4, 2, settings_current.rom_pentagon512_3, settings_default.rom_pentagon512_3, 0x4000 ); if( error ) return error; error = machine_load_rom_bank( beta_memory_map_romcs, 0, 0, settings_current.rom_pentagon512_2, settings_default.rom_pentagon512_2, 0x4000 ); if( error ) return error; error = spec128_common_reset( 0 ); if( error ) return error; error = periph_setup( pentagon_peripherals, pentagon_peripherals_count ); if( error ) return error; periph_setup_kempston( PERIPH_PRESENT_OPTIONAL ); periph_setup_beta128( PERIPH_PRESENT_ALWAYS ); periph_update(); beta_builtin = 1; beta_active = 1; machine_current->ram.last_byte2 = 0; machine_current->ram.special = 0; /* Mark the least 384K as present/writeable */ for( i = 16; i < 64; i++ ) memory_map_ram[i].writable = 1; spec48_common_display_setup(); return 0; }
static int spec48_ntsc_reset( void ) { int error; error = machine_load_rom( 0, settings_current.rom_48, settings_default.rom_48, 0x4000 ); if( error ) return error; periph_clear(); machines_periph_48(); periph_update(); memory_current_screen = 5; memory_screen_mask = 0xffff; spec48_common_display_setup(); return spec48_common_reset(); }