示例#1
0
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;
}
示例#2
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 */
}
示例#3
0
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);
}
示例#4
0
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);
}
示例#5
0
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);
}
示例#6
0
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);
}
示例#7
0
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);
}
示例#8
0
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;
}
示例#9
0
static int set_autostart_prg_disk_image(const char *val, void *param)
{
    if (util_string_set(&AutostartPrgDiskImage, val))
        return 0;

    return 0;
}
示例#10
0
static int set_raw_drive_driver(const char *val, void *param)
{
    if (util_string_set(&raw_drive_driver, val))
        return 0;

    return 0;
}
示例#11
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);
}
示例#12
0
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);
}
示例#13
0
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();
}
示例#14
0
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;
}
示例#15
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;
}
示例#16
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();
}
示例#17
0
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();
}
示例#18
0
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);
}
示例#19
0
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);
}
示例#20
0
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);
}
示例#21
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 plus4rom_load_3plus1lo(func_lo_rom_name);
}
示例#22
0
static int set_romset_filename(const char *val, void *param)
{
    if (util_string_set(&romset_filename, val))
        return 0;

    return 0;
}
示例#23
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();
}
示例#24
0
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();
}
示例#25
0
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);
}
示例#26
0
static int set_editor_rom_name(const char *val, void *param)
{
    if (util_string_set(&petres.editorName, val))
        return 0;

    return petrom_load_editor();
}
示例#27
0
static int set_kernal_rom_name(const char *val, void *param)
{
    if (util_string_set(&petres.kernalName, val))
        return 0;

    return petrom_load_kernal();
}
示例#28
0
static int set_chargen_rom_name(const char *val, void *param)
{
    if (util_string_set(&petres.chargenName, val))
        return 0;

    return petrom_load_chargen();
}
示例#29
0
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;
}
示例#30
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);
}