static int set_ramcart_size(int val, void *param) { if (val == ramcart_size_kb) { return 0; } switch (val) { case 64: case 128: break; default: log_message(ramcart_log, "Unknown RAMCART size %d.", val); return -1; } if (ramcart_enabled) { ramcart_deactivate(); ramcart_size_kb = val; ramcart_size = ramcart_size_kb << 10; ramcart_activate(); if (machine_class == VICE_MACHINE_C128) { ramcart_exrom_check(); } } else { ramcart_size_kb = val; ramcart_size = ramcart_size_kb << 10; } return 0; }
static int set_ramcart_enabled(int val, void *param) { if(!ramcart_enabled && val) { cart_power_off(); if (ramcart_activate() < 0) return -1; if (c64export_add(&export_res) < 0) return -1; ramcart_io1_list_item = c64io_register(&ramcart_io1_device); ramcart_io2_list_item = c64io_register(&ramcart_io2_device); ramcart_enabled = 1; /* FIXME */ export.exrom = 1;
static int set_ramcart_enabled(int value, void *param) { int val = value ? 1 : 0; if (!ramcart_enabled && val) { cart_power_off(); if (ramcart_activate() < 0) { return -1; } if (export_add(&export_res) < 0) { return -1; } ramcart_io1_list_item = io_source_register(&ramcart_io1_device); ramcart_io2_list_item = io_source_register(&ramcart_io2_device); ramcart_enabled = 1; if (machine_class == VICE_MACHINE_C128) { ramcart_exrom_check(); } else { cart_set_port_exrom_slot1(1); cart_port_config_changed_slot1(); } } else if (ramcart_enabled && !val) { cart_power_off(); if (ramcart_deactivate() < 0) { return -1; } io_source_unregister(ramcart_io1_list_item); io_source_unregister(ramcart_io2_list_item); ramcart_io1_list_item = NULL; ramcart_io2_list_item = NULL; export_remove(&export_res); ramcart_enabled = 0; if (machine_class == VICE_MACHINE_C128) { ramcart_exrom_check(); } else { cart_set_port_exrom_slot1(0); cart_port_config_changed_slot1(); } } return 0; }
static int set_ramcart_filename(const char *name, void *param) { if (ramcart_filename != NULL && name != NULL && strcmp(name, ramcart_filename) == 0) { return 0; } if (name != NULL && *name != '\0') { if (util_check_filename_access(name) < 0) { return -1; } } if (ramcart_enabled) { ramcart_deactivate(); util_string_set(&ramcart_filename, name); ramcart_activate(); } else { util_string_set(&ramcart_filename, name); } return 0; }