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; }
void tfe_clockport_changed(void) { if (!tfe_as_rr_net) { tfe_current_device = &tfe_io1_device; } else { tfe_current_device = &rrnet_io1_device; if (mmc64_cart_enabled() && (mmc64_hw_clockport == 0xde02) && mmc64_clockport_enabled) { tfe_current_device = &rrnet_io1_mmc64_device; } if (mmc64_cart_enabled() && (mmc64_hw_clockport == 0xdf12) && mmc64_clockport_enabled) { tfe_current_device = &rrnet_io2_mmc64_device; } if (retroreplay_cart_enabled() && rr_clockport_enabled) { tfe_current_device = &rrnet_io1_retroreplay_device; } if (mmcreplay_cart_enabled() && mmcr_clockport_enabled) { tfe_current_device = &rrnet_io1_mmcreplay_device; } if (rrnetmk3_cart_enabled()) { tfe_current_device = &rrnet_io1_mk3_device; } } /* if adapter is already enabled then reset the LAN chip */ if (tfe_enabled) { io_source_unregister(tfe_list_item); export_remove(&export_res); export_res.io1 = tfe_current_device; if (export_add(&export_res) < 0) { DBG(("TFE: set tfe_clockport_changed: error\n")); tfe_list_item = NULL; tfe_enabled = 0; return; } if (machine_class == VICE_MACHINE_VIC20) { /* set correct addresses for masC=uerade */ if (tfe_io_swap) { tfe_current_device->start_address = 0x9c00; tfe_current_device->end_address = 0x9fff; } else { tfe_current_device->start_address = 0x9800; tfe_current_device->end_address = 0x9bff; } } tfe_list_item = io_source_register(tfe_current_device); tfe_reset(); } }
void cartridge_reset(void) { switch (mem_cartridge_type) { case CARTRIDGE_VIC20_GENERIC: generic_reset(); break; case CARTRIDGE_VIC20_UM: vic_um_reset(); break; case CARTRIDGE_VIC20_FP: vic_fp_reset(); break; case CARTRIDGE_VIC20_MEGACART: megacart_reset(); break; case CARTRIDGE_VIC20_FINAL_EXPANSION: finalexpansion_reset(); break; } #ifdef HAVE_TFE if (tfe_cart_enabled()) { tfe_reset(); } #endif if (aciacart_cart_enabled()) { aciacart_reset(); } if (digimax_cart_enabled()) { digimax_reset(); } if (ds12c887rtc_cart_enabled()) { ds12c887rtc_reset(); } if (sfx_soundexpander_cart_enabled()) { sfx_soundexpander_reset(); } if (sfx_soundsampler_cart_enabled()) { sfx_soundsampler_reset(); } if (georam_cart_enabled()) { georam_reset(); } }