/* PET-specific initialization. */ void machine_specific_reset(void) { pia1_reset(); pia2_reset(); viacore_reset(machine_context.via); acia1_reset(); crtc_reset(); sid_reset(); petmem_reset(); rs232drv_reset(); printer_reset(); drive_reset(); datasette_reset(); petreu_reset(); petdww_reset(); pethre_reset(); }
static int petdww_activate(void) { if (petres.IOSize < 2048) { log_message(petdww_log, "Cannot enable DWW: IOSize too small (%d but must be 2K)", petres.IOSize); return -1; } if (petres.superpet) { log_message(petdww_log, "Cannot enable DWW: not compatible with SuperPET"); return -1; } petdww_ram = lib_realloc((void *)petdww_ram, (size_t)PET_DWW_RAM_SIZE); /* Clear newly allocated RAM. */ memset(petdww_ram, 0, (size_t)PET_DWW_RAM_SIZE); log_message(petdww_log, "%dKB of hi-res RAM installed.", PET_DWW_RAM_SIZE >> 10); if (!util_check_null_string(petdww_filename)) { if (util_file_load(petdww_filename, petdww_ram, (size_t)PET_DWW_RAM_SIZE, UTIL_FILE_LOAD_RAW) < 0) { log_message(petdww_log, "Reading PET DWW image %s failed.", petdww_filename); if (util_file_save(petdww_filename, petdww_ram, PET_DWW_RAM_SIZE) < 0) { log_message(petdww_log, "Creating PET DWW image %s failed.", petdww_filename); return -1; } log_message(petdww_log, "Creating PET DWW image %s.", petdww_filename); return 0; } log_message(petdww_log, "Reading PET DWW image %s.", petdww_filename); } petdww_reset(); return 0; }