Mercurial > repos > blastem
comparison genesis.c @ 1395:efa7225e0f07
Initial work to support parallel NOR flash and the Magistr 16
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 07 Jun 2017 23:06:14 -0700 |
parents | e587f16e7d3d |
children | b56c8c51ca5d |
comparison
equal
deleted
inserted
replaced
1394:ae3b1721b226 | 1395:efa7225e0f07 |
---|---|
965 if (gen->save_type == SAVE_NONE) { | 965 if (gen->save_type == SAVE_NONE) { |
966 return; | 966 return; |
967 } | 967 } |
968 FILE * f = fopen(save_filename, "wb"); | 968 FILE * f = fopen(save_filename, "wb"); |
969 if (!f) { | 969 if (!f) { |
970 fprintf(stderr, "Failed to open %s file %s for writing\n", gen->save_type == SAVE_I2C ? "EEPROM" : "SRAM", save_filename); | 970 fprintf(stderr, "Failed to open %s file %s for writing\n", save_type_name(gen->save_type), save_filename); |
971 return; | 971 return; |
972 } | 972 } |
973 fwrite(gen->save_storage, 1, gen->save_size, f); | 973 fwrite(gen->save_storage, 1, gen->save_size, f); |
974 fclose(f); | 974 fclose(f); |
975 printf("Saved %s to %s\n", gen->save_type == SAVE_I2C ? "EEPROM" : "SRAM", save_filename); | 975 printf("Saved %s to %s\n", save_type_name(gen->save_type), save_filename); |
976 } | 976 } |
977 | 977 |
978 static void load_save(system_header *system) | 978 static void load_save(system_header *system) |
979 { | 979 { |
980 genesis_context *gen = (genesis_context *)system; | 980 genesis_context *gen = (genesis_context *)system; |
981 FILE * f = fopen(save_filename, "rb"); | 981 FILE * f = fopen(save_filename, "rb"); |
982 if (f) { | 982 if (f) { |
983 uint32_t read = fread(gen->save_storage, 1, gen->save_size, f); | 983 uint32_t read = fread(gen->save_storage, 1, gen->save_size, f); |
984 fclose(f); | 984 fclose(f); |
985 if (read > 0) { | 985 if (read > 0) { |
986 printf("Loaded %s from %s\n", gen->save_type == SAVE_I2C ? "EEPROM" : "SRAM", save_filename); | 986 printf("Loaded %s from %s\n", save_type_name(gen->save_type), save_filename); |
987 } | 987 } |
988 } | 988 } |
989 } | 989 } |
990 | 990 |
991 static void soft_reset(system_header *system) | 991 static void soft_reset(system_header *system) |
1113 gen->save_storage = rom->save_buffer; | 1113 gen->save_storage = rom->save_buffer; |
1114 gen->eeprom_map = rom->eeprom_map; | 1114 gen->eeprom_map = rom->eeprom_map; |
1115 gen->num_eeprom = rom->num_eeprom; | 1115 gen->num_eeprom = rom->num_eeprom; |
1116 if (gen->save_type == SAVE_I2C) { | 1116 if (gen->save_type == SAVE_I2C) { |
1117 eeprom_init(&gen->eeprom, gen->save_storage, gen->save_size); | 1117 eeprom_init(&gen->eeprom, gen->save_storage, gen->save_size); |
1118 } else if (gen->save_type == SAVE_NOR) { | |
1119 nor_flash_init(&gen->nor, gen->save_storage, gen->save_size, rom->save_page_size, rom->save_product_id, rom->save_bus); | |
1118 } | 1120 } |
1119 } else { | 1121 } else { |
1120 gen->save_storage = NULL; | 1122 gen->save_storage = NULL; |
1121 } | 1123 } |
1122 | 1124 |