static int tc2068_reset( void ) { size_t i, j; int error; error = machine_load_rom( 0, settings_current.rom_tc2068_0, settings_default.rom_tc2068_0, 0x4000 ); if( error ) return error; error = machine_load_rom( 1, settings_current.rom_tc2068_1, settings_default.rom_tc2068_1, 0x2000 ); if( error ) return error; /* 0x0000: ROM 0 */ scld_home_map_16k( 0x0000, memory_map_rom, 0 ); /* 0x4000: RAM 5, contended */ memory_ram_set_16k_contention( 5, 1 ); scld_home_map_16k( 0x4000, memory_map_ram, 5 ); /* 0x8000: RAM 2, not contended */ memory_ram_set_16k_contention( 2, 0 ); scld_home_map_16k( 0x8000, memory_map_ram, 2 ); /* 0xc000: RAM 0, not contended */ memory_ram_set_16k_contention( 0, 0 ); scld_home_map_16k( 0xc000, memory_map_ram, 0 ); periph_clear(); machines_periph_timex(); periph_update(); for( i = 0; i < 8; i++ ) for( j = 0; j < MEMORY_PAGES_IN_8K; j++ ) { memory_page *dock_page, *exrom_page; dock_page = &timex_dock[i * MEMORY_PAGES_IN_8K + j]; *dock_page = tc2068_empty_mapping[j]; dock_page->page_num = i; exrom_page = &timex_exrom[i * MEMORY_PAGES_IN_8K + j]; *exrom_page = memory_map_rom[MEMORY_PAGES_IN_16K + j]; exrom_page->source = memory_source_exrom; exrom_page->page_num = i; } tc2068_tc2048_common_reset(); error = dck_reset(); if( error ) { ui_error( UI_ERROR_INFO, "Ignoring Timex dock file '%s'", settings_current.dck_file ); } return 0; }
static int tc2068_reset( void ) { size_t i; int error; error = machine_load_rom( 0, 0, settings_current.rom_tc2068_0, settings_default.rom_tc2068_0, 0x4000 ); if( error ) return error; error = machine_load_rom( 2, -1, settings_current.rom_tc2068_1, settings_default.rom_tc2068_1, 0x2000 ); if( error ) return error; error = periph_setup( tc2068_peripherals, tc2068_peripherals_count ); if( error ) return error; periph_setup_kempston( PERIPH_PRESENT_OPTIONAL ); periph_setup_interface2( PERIPH_PRESENT_OPTIONAL ); periph_update(); for( i = 0; i < 8; i++ ) { timex_dock[i] = fake_mapping; timex_dock[i].page_num = i; memory_map_dock[i] = &timex_dock[i]; timex_exrom[i] = memory_map_rom[2]; timex_exrom[i].bank = MEMORY_BANK_EXROM; timex_exrom[i].page_num = i; memory_map_exrom[i] = &timex_exrom[i]; } error = dck_reset(); if( error ) { ui_error( UI_ERROR_INFO, "Ignoring Timex dock file '%s'", settings_current.dck_file ); } return tc2068_tc2048_common_reset(); }