static int set_cartridge_file(const char *name, void *param) { /* DBG(("cartridge_file: '%s'\n", name)); */ if (cartridge_file == NULL) { util_string_set(&cartridge_file, ""); /* resource value modified */ } if (!strcmp(cartridge_file, name)) { return 0; } if (name == NULL || !strlen(name)) { cartridge_detach_image(-1); return 0; } DBG(("cartridge_file changed: '%s'\n", name)); if (util_file_exists(name)) { util_string_set(&cartridge_file, name); /* resource value modified */ return try_cartridge_attach(cartridge_type, cartridge_file); } else { DBG(("cartridge_file does not exist: '%s'\n", name)); cartridge_type = CARTRIDGE_NONE; /* resource value modified */ util_string_set(&cartridge_file, ""); /* resource value modified */ } return 0; }
/* set currently active cart in "Main Slot" as default */ void cartridge_set_default(void) { int type = CARTRIDGE_NONE; if (cartfile != NULL) { if (util_file_exists(cartfile)) { if (crt_getid(cartfile) > 0) { type = CARTRIDGE_CRT; } else { type = c64cart_type; } } else { DBG(("cartridge_set_default: file does not exist: '%s'\n", cartfile)); } } else { DBG(("cartridge_set_default: no filename\n")); } DBG(("cartridge_set_default: id %d '%s'\n", type, cartfile)); if (type == CARTRIDGE_NONE) { util_string_set(&cartridge_file, ""); /* resource value modified */ } else { util_string_set(&cartridge_file, cartfile); /* resource value modified */ } cartridge_type = type; /* resource value modified */ }
static int set_cartridge_file(const char *name, void *param) { util_string_set(&cartridge_file, name); util_string_set(&cartfile, name); return try_cartridge_attach(TRY_RESOURCE_CARTNAME); }
static int set_cartridge_file_4(const char *name, void *param) { if (cartridge_file_4 != NULL && name != NULL && strcmp(name, cartridge_file_4) == 0) return 0; util_string_set(&cartridge_file_4, name); util_string_set(&cartfile4, name); return cartridge_attach_image(CARTRIDGE_VIC20_16KB_4000, cartfile4); }
static int set_cartridge_file_B(const char *name, void *param) { if (cartridge_file_B != NULL && name != NULL && strcmp(name, cartridge_file_B) == 0) return 0; util_string_set(&cartridge_file_B, name); util_string_set(&cartfileB, name); return cartridge_attach_image(CARTRIDGE_VIC20_4KB_B000, cartfileB); }
static int set_cartridge_file_A(const char *name, void *param) { if (cartridge_file_A != NULL && name != NULL && strcmp(name, cartridge_file_A) == 0) return 0; util_string_set(&cartridge_file_A, name); util_string_set(&cartfileA, name); return cartridge_attach_image(CARTRIDGE_VIC20_8KB_A000, cartfileA); }
void cartridge_detach_image(void) { mem_detach_cartridge(CARTRIDGE_VIC20_8KB_2000); mem_detach_cartridge(CARTRIDGE_VIC20_8KB_4000); mem_detach_cartridge(CARTRIDGE_VIC20_8KB_6000); mem_detach_cartridge(CARTRIDGE_VIC20_8KB_A000); util_string_set(&cartfile2, NULL); util_string_set(&cartfile4, NULL); util_string_set(&cartfile6, NULL); util_string_set(&cartfileA, NULL); util_string_set(&cartfileB, NULL); }
static int set_tfe_interface(const char *name, void *param) { if (tfe_interface != NULL && name != NULL && strcmp(name, tfe_interface) == 0) { return 0; } util_string_set(&tfe_interface, name); /* CV: if the last interface name was wrong then allow a retry with new name: */ tfe_cannot_use = 0; if (tfe_enabled) { /* ethernet is enabled, make sure that the new name is taken account of */ if (tfe_deactivate() < 0) { return -1; } if (tfe_activate() < 0) { return -1; } /* virtually reset the LAN chip */ tfe_reset(); } return 0; }
static int set_autostart_prg_disk_image(const char *val, void *param) { if (util_string_set(&AutostartPrgDiskImage, val)) return 0; return 0; }
static int set_raw_drive_driver(const char *val, void *param) { if (util_string_set(&raw_drive_driver, val)) return 0; return 0; }
static int set_basic_rom_name(const char *val, void *param) { if (util_string_set(&basic_rom_name, val)) return 0; return vic20rom_load_basic(basic_rom_name); }
static int set_chargen_rom_name(const char *val, void *param) { if (util_string_set(&chargen_rom_name, val)) return 0; return vic20rom_load_chargen(chargen_rom_name); }
static int set_external_function_rom_name(const char *val, void *param) { if (util_string_set(&external_function_rom_name, val)) return 0; return functionrom_load_external(); }
int finalexpansion_bin_attach(const char *filename) { BYTE *cart_flash; if (!cart_ram) { cart_ram = lib_malloc(CART_RAM_SIZE); } cart_flash = lib_malloc(CART_ROM_SIZE); if (cart_flash == NULL) { return -1; } /* flash040core_init() does not clear the flash */ memset(cart_flash, 0xff, CART_ROM_SIZE); flash040core_init(&flash_state, maincpu_alarm_context, FLASH040_TYPE_B, cart_flash); util_string_set(&cartfile, filename); if (zfile_load(filename, flash_state.flash_data) < 0) { finalexpansion_detach(); return -1; } mem_cart_blocks = VIC_CART_RAM123 | VIC_CART_BLK1 | VIC_CART_BLK2 | VIC_CART_BLK3 | VIC_CART_BLK5 | VIC_CART_IO3; mem_initialize_memory(); finalexpansion_list_item = io_source_register(&finalexpansion_device); return 0; }
int vic_fp_bin_attach(const char *filename) { if (!cart_ram) { cart_ram = lib_malloc(CART_RAM_SIZE); } if (!cart_rom) { cart_rom = lib_malloc(CART_ROM_SIZE); } util_string_set(&cartfile, filename); if (zfile_load(filename, cart_rom, (size_t)CART_ROM_SIZE) < 0) { vic_fp_detach(); return -1; } if (export_add(&export_res) < 0) { return -1; } flash040core_init(&flash_state, maincpu_alarm_context, FLASH040_TYPE_032B_A0_1_SWAP, cart_rom); mem_cart_blocks = VIC_CART_RAM123 | VIC_CART_BLK1 | VIC_CART_BLK2 | VIC_CART_BLK3 | VIC_CART_BLK5 | VIC_CART_IO2; mem_initialize_memory(); vfp_list_item = io_source_register(&vfp_device); return 0; }
static int set_dos_rom_name_1581(const char *val, void *param) { if (util_string_set(&dos_rom_name_1581, val)) return 0; return iecrom_load_1581(); }
static int set_dos_rom_name_4040(const char *val, void *param) { if (util_string_set(&dos_rom_name_4040, val)) return 0; return ieeerom_load_4040(); }
static int set_profdos_1571_name(const char *val, void *param) { if (util_string_set(&profdos_1571_name, val)) return 0; return profdos_load_1571(profdos_1571_name); }
static int set_c2hi_rom_name(const char *val, void *param) { if (util_string_set(&c2hi_rom_name, val)) return 0; return plus4cart_load_c2hi(c2hi_rom_name); }
static int set_kernal_rom_name(const char *val, void *param) { if (util_string_set(&kernal_rom_name, val)) return 0; return vic20rom_load_kernal(kernal_rom_name); }
static int set_func_lo_rom_name(const char *val, void *param) { if (util_string_set(&func_lo_rom_name, val)) return 0; return plus4rom_load_3plus1lo(func_lo_rom_name); }
static int set_romset_filename(const char *val, void *param) { if (util_string_set(&romset_filename, val)) return 0; return 0; }
static int set_dos_rom_name_1571cr(const char *val, void *param) { if (util_string_set(&dos_rom_name_1571cr, val)) return 0; return iec128dcrrom_load_1571cr(); }
static int set_rom_module_b_name(const char *val, void *param) { if (util_string_set(&petres.memBname, val)) return 0; return petrom_load_romB(); }
static int set_cart4_rom_name(const char *val, void *param) { if (util_string_set(&cart_4_name, val)) return 0; return cbm2rom_load_cart_4(cart_4_name); }
static int set_editor_rom_name(const char *val, void *param) { if (util_string_set(&petres.editorName, val)) return 0; return petrom_load_editor(); }
static int set_kernal_rom_name(const char *val, void *param) { if (util_string_set(&petres.kernalName, val)) return 0; return petrom_load_kernal(); }
static int set_chargen_rom_name(const char *val, void *param) { if (util_string_set(&petres.chargenName, val)) return 0; return petrom_load_chargen(); }
static int set_palette_file_name(const char *val, void *param) { video_canvas_t *canvas = (video_canvas_t *)param; util_string_set(&(canvas->videoconfig->external_palette_name), val); canvas->videoconfig->color_tables.updated = 0; return 0; }
static int set_func_lo_rom_name(const char *val, void *param) { if (util_string_set(&func_lo_rom_name, val)) { return 0; } return plus4cart_load_func_lo(func_lo_rom_name); }