/* VIC20-specific reset sequence. */ void machine_specific_reset(void) { serial_traps_reset(); viacore_reset(machine_context.via1); viacore_reset(machine_context.via2); vic_reset(); sid_reset(); viacore_reset(machine_context.ieeevia1); viacore_reset(machine_context.ieeevia2); rs232drv_reset(); rsuser_reset(); #ifdef HAVE_MIDI midi_reset(); #endif printer_reset(); cartridge_reset(); drive_reset(); datasette_reset(); sampler_reset(); }
/* Initialization. */ raster_t *vic_init(void) { vic.log = log_open("VIC"); vic.raster_draw_alarm = alarm_new(maincpu_alarm_context, "VicIRasterDraw", vic_raster_draw_alarm_handler, NULL); clk_guard_add_callback(maincpu_clk_guard, clk_overflow_callback, NULL); vic_change_timing(); if (init_raster() < 0) return NULL; vic.auxiliary_color = 0; vic.mc_border_color = 0; vic.color_ptr = mem_ram; vic.screen_ptr = mem_ram; vic.chargen_ptr = vic20memrom_chargen_rom + 0x400; /* FIXME: Where do these values come from? */ vic.light_pen.triggered = 0; vic.light_pen.x = 87; vic.light_pen.y = 234; /* FIXME */ vic.char_height = 8; vic.row_increase_line = 8; vic.text_cols = 22; vic.text_lines = 23; vic_reset(); vic_draw_init(); vic_update_memory_ptrs(); vic.initialized = 1; resources_touch("VICDoubleSize"); /*vic_resize();*/ return &vic.raster; }
/* VIC20-specific reset sequence. */ void machine_specific_reset(void) { serial_traps_reset(); viacore_reset(machine_context.via1); viacore_reset(machine_context.via2); vic_reset(); vic_sound_reset(); sid_reset(); viacore_reset(machine_context.ieeevia1); viacore_reset(machine_context.ieeevia2); rs232drv_reset(); rsuser_reset(); printer_reset(); drive_reset(); datasette_reset(); }