예제 #1
0
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;
}
예제 #2
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;
    }
}
예제 #3
0
파일: plus60k.c 프로젝트: martinpiper/VICE
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;
    }
}
예제 #4
0
파일: plus60k.c 프로젝트: martinpiper/VICE
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;
}
예제 #5
0
파일: plus60k.c 프로젝트: martinpiper/VICE
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;
}