/* C64-specific initialization. */ int machine_specific_init(void) { int delay; scpu64_log = log_open("SCPU64"); if (mem_load() < 0) { return -1; } event_init(); /* Setup trap handling. */ traps_init(); if (!video_disabled_mode) { joystick_init(); } gfxoutput_init(); /* Initialize serial traps. */ if (serial_init(scpu64_serial_traps) < 0) { return -1; } serial_trap_init(0xa4); serial_iec_bus_init(); /* Initialize RS232 handler. */ rs232drv_init(); c64_rsuser_init(); /* Initialize print devices. */ printer_init(); /* Fire up the hardware-level drive emulation. */ drive_init(); disk_image_init(); resources_get_int("AutostartDelay", &delay); if (delay == 0) { delay = 3; /* default */ } /* Initialize autostart. */ autostart_init((CLOCK)(delay * SCPU64_PAL_RFSH_PER_SEC * SCPU64_PAL_CYCLES_PER_RFSH), 1, 0xcc, 0xd1, 0xd3, 0xd5); #ifdef USE_BEOS_UI /* Pre-init C64-specific parts of the menus before vicii_init() creates a canvas window with a menubar at the top. This could also be used by other ports, e.g. GTK+... */ if (!console_mode) { scpu64ui_init_early(); } #endif if (vicii_init(VICII_STANDARD) == NULL && !video_disabled_mode) { return -1; } scpu64_mem_init(); cia1_init(machine_context.cia1); cia2_init(machine_context.cia2); #ifndef COMMON_KBD /* Initialize the keyboard. */ if (c64_kbd_init() < 0) { return -1; } #endif c64keyboard_init(); scpu64_monitor_init(); /* Initialize vsync and register our hook function. */ vsync_init(machine_vsync_hook); vsync_set_machine_parameter(machine_timing.rfsh_per_sec, machine_timing.cycles_per_sec); /* Initialize native sound chip */ sid_sound_chip_init(); /* Initialize cartridge based sound chips */ cartridge_sound_chip_init(); /* Initialize userport based sound chips */ userport_dac_sound_chip_init(); drive_sound_init(); video_sound_init(); /* Initialize sound. Notice that this does not really open the audio device yet. */ sound_init(machine_timing.cycles_per_sec, machine_timing.cycles_per_rfsh); /* Initialize keyboard buffer. */ kbdbuf_init(631, 198, 10, (CLOCK)(machine_timing.rfsh_per_sec * machine_timing.cycles_per_rfsh)); /* Initialize the C64-specific I/O */ c64io_init(); /* Initialize the C64-specific part of the UI. */ if (!console_mode) { scpu64ui_init(); } /* Initialize glue logic. */ scpu64_glue_init(); #ifdef HAVE_MOUSE /* Initialize mouse support (if present). */ mouse_init(); #ifdef HAVE_LIGHTPEN /* Initialize lightpen support and register VICII callbacks */ lightpen_init(); lightpen_register_timing_callback(vicii_lightpen_timing, 0); lightpen_register_trigger_callback(vicii_trigger_light_pen); #endif #endif c64iec_init(); c64fastiec_init(); cartridge_init(); machine_drive_stub(); #if defined (USE_XF86_EXTENSIONS) && (defined(USE_XF86_VIDMODE_EXT) || defined (HAVE_XRANDR)) { /* set fullscreen if user used `-fullscreen' on cmdline */ int fs; resources_get_int("UseFullscreen", &fs); if (fs) { resources_set_int("VICIIFullscreen", 1); } } #endif return 0; }
/* C64-specific initialization. */ int machine_specific_init(void) { #ifdef USE_SDLUI if (console_mode) { video_disabled_mode = 1; } #else video_disabled_mode = 1; #endif c64_log = log_open("C64"); if (mem_load() < 0) { return -1; } if (vicii_init(VICII_STANDARD) == NULL && !video_disabled_mode) { return -1; } c64_mem_init(); cia1_init(machine_context.cia1); cia2_init(machine_context.cia2); c64_monitor_init(); /* Initialize vsync and register our hook function. */ vsync_init(machine_vsync_hook); vsync_set_machine_parameter(machine_timing.rfsh_per_sec, machine_timing.cycles_per_sec); /* Initialize native sound chip */ sid_sound_chip_init(); /* Initialize sound. Notice that this does not really open the audio device yet. */ sound_init(machine_timing.cycles_per_sec, machine_timing.cycles_per_rfsh); /* Initialize keyboard buffer. */ kbdbuf_init(631, 198, 10, (CLOCK)(machine_timing.rfsh_per_sec * machine_timing.cycles_per_rfsh)); /* Initialize the C64-specific I/O */ c64io_init(); /* Initialize the C64-specific part of the UI. */ if (!console_mode) { vsid_ui_init(); } /* Initialize glue logic. */ c64_glue_init(); machine_drive_stub(); #if defined (USE_XF86_EXTENSIONS) && (defined(USE_XF86_VIDMODE_EXT) || defined (HAVE_XRANDR)) { /* set fullscreen if user used `-fullscreen' on cmdline */ int fs; resources_get_int("UseFullscreen", &fs); if (fs) { resources_set_int("VICIIFullscreen", 1); } } #endif return 0; }
/* C64-specific initialization. */ int machine_specific_init(void) { int delay; c64_log = log_open("C64"); if (mem_load() < 0) { return -1; } /* Setup trap handling. */ traps_init(); /* Initialize serial traps. */ if (serial_init(c64_serial_traps) < 0) { return -1; } serial_trap_init(0xa4); serial_iec_bus_init(); /* Initialize RS232 handler. */ rs232drv_init(); c64_rsuser_init(); /* Initialize print devices. */ printer_init(); /* Initialize the tape emulation. */ tape_init(&tapeinit); /* Initialize the datasette emulation. */ datasette_init(); /* Fire up the hardware-level drive emulation. */ drive_init(); resources_get_int("AutostartDelay", &delay); if (delay == 0) { delay = 3; /* default */ } /* Initialize autostart. */ autostart_init((CLOCK)(delay * C64_PAL_RFSH_PER_SEC * C64_PAL_CYCLES_PER_RFSH), 1, 0xcc, 0xd1, 0xd3, 0xd5); if (vicii_init(VICII_STANDARD) == NULL && !video_disabled_mode) { return -1; } c64_mem_init(); cia1_init(machine_context.cia1); cia2_init(machine_context.cia2); #ifndef COMMON_KBD /* Initialize the keyboard. */ if (c64_kbd_init() < 0) { return -1; } #endif c64keyboard_init(); c64_monitor_init(); /* Initialize vsync and register our hook function. */ vsync_init(machine_vsync_hook); vsync_set_machine_parameter(machine_timing.rfsh_per_sec, machine_timing.cycles_per_sec); /* Initialize native sound chip */ sid_sound_chip_init(); /* Initialize cartridge based sound chips */ cartridge_sound_chip_init(); drive_sound_init(); video_sound_init(); /* Initialize sound. Notice that this does not really open the audio device yet. */ sound_init(machine_timing.cycles_per_sec, machine_timing.cycles_per_rfsh); /* Initialize keyboard buffer. */ kbdbuf_init(631, 198, 10, (CLOCK)(machine_timing.rfsh_per_sec * machine_timing.cycles_per_rfsh)); /* Initialize the C64-specific I/O */ c64io_init(); /* Initialize the C64-specific part of the UI. */ if (!console_mode) { if (machine_class == VICE_MACHINE_C64SC) { c64scui_init(); } else { c64ui_init(); } } /* Initialize glue logic. */ c64_glue_init(); /* Initialize the +60K. */ plus60k_init(); /* Initialize the +256K. */ plus256k_init(); /* Initialize the C64 256K. */ c64_256k_init(); #ifdef HAVE_MOUSE /* Initialize mouse support (if present). */ mouse_init(); /* Initialize lightpen support and register VICII callbacks */ lightpen_init(); lightpen_register_timing_callback(vicii_lightpen_timing, 0); lightpen_register_trigger_callback(vicii_trigger_light_pen); #endif c64iec_init(); c64fastiec_init(); cartridge_init(); machine_drive_stub(); #if defined (USE_XF86_EXTENSIONS) && (defined(USE_XF86_VIDMODE_EXT) || defined (HAVE_XRANDR)) { /* set fullscreen if user used `-fullscreen' on cmdline */ int fs; resources_get_int("UseFullscreen", &fs); if (fs) { resources_set_int("VICIIFullscreen", 1); } } #endif return 0; }