static int set_plus60k_base(int val, void *param) { if (val == plus60k_base) return 0; switch (val) { case 0xd040: case 0xd100: break; default: #ifdef CELL_DEBUG printf("INFO: Unknown PLUS60K base address $%X.\n", val); #endif return -1; } if (plus60k_enabled) { plus60k_deactivate(); plus60k_base = val; plus60k_activate(); } else plus60k_base = val; return 0; }
static int set_plus60k_enabled(int val, void *param) { if (val == plus60k_enabled) { return 0; } if (!val) { if (plus60k_deactivate() < 0) { return -1; } machine_trigger_reset(MACHINE_RESET_MODE_HARD); plus60k_enabled = 0; return 0; } else { if (get_cpu_lines_lock() != 0) { ui_error(translate_text(IDGS_RESOURCE_S_BLOCKED_BY_S), "CPU-LINES", get_cpu_lines_lock_name()); return -1; } else { if (plus60k_activate() < 0) { return -1; } } plus60k_enabled = 1; machine_trigger_reset(MACHINE_RESET_MODE_HARD); return 0; } }
static int set_plus60k_enabled(int val, void *param) { if (val == plus60k_enabled) return 0; if (!val) { if (plus60k_deactivate() < 0) return -1; machine_trigger_reset(MACHINE_RESET_MODE_HARD); plus60k_enabled = 0; return 0; } else { if (c64_256k_enabled || plus256k_enabled) { #ifdef HAS_TRANSLATION ui_error(translate_text(IDGS_RESOURCE_S_BLOCKED_BY_S),"CPU-LINES", (c64_256k_enabled) ? "256K" : "PLUS256K"); #else ui_error(_("Resource %s blocked by %s."),"CPU-LINES", (c64_256k_enabled) ? "256K" : "PLUS256K"); #endif return -1; } else { if (plus60k_activate() < 0) { return -1; } } plus60k_enabled = 1; machine_trigger_reset(MACHINE_RESET_MODE_HARD); return 0; } }
static int set_plus60k_filename(const char *name, void *param) { if (plus60k_filename != NULL && name != NULL && strcmp(name, plus60k_filename) == 0) return 0; if (name != NULL && *name != '\0') { if (util_check_filename_access(name) < 0) return -1; } if (plus60k_enabled) { plus60k_deactivate(); util_string_set(&plus60k_filename, name); plus60k_activate(); } else { util_string_set(&plus60k_filename, name); } return 0; }
static int set_plus60k_base(int val, void *param) { if (val == plus60k_base) return 0; switch (val) { case 0xd040: case 0xd100: break; default: log_message(plus60k_log, "Unknown PLUS60K base address $%X.", val); return -1; } if (plus60k_enabled) { plus60k_deactivate(); plus60k_base = val; plus60k_activate(); } else { plus60k_base = val; } return 0; }