comparison blastem.c @ 769:4638b88bc72d

Initial work on I2C EEPROM implementation
author Michael Pavone <pavone@retrodev.com>
date Fri, 10 Jul 2015 18:46:18 -0700
parents ea525f600b1d
children a3b90f746dcf
comparison
equal deleted inserted replaced
768:2f48a3c187c6 769:4638b88bc72d
812 gen->save_type = rom->save_type; 812 gen->save_type = rom->save_type;
813 if (gen->save_type != SAVE_NONE) { 813 if (gen->save_type != SAVE_NONE) {
814 gen->save_ram_mask = rom->save_mask; 814 gen->save_ram_mask = rom->save_mask;
815 gen->save_size = rom->save_size; 815 gen->save_size = rom->save_size;
816 gen->save_storage = rom->save_buffer; 816 gen->save_storage = rom->save_buffer;
817 gen->eeprom_map = rom->eeprom_map;
818 gen->num_eeprom = rom->num_eeprom;
817 memset(gen->save_storage, 0, rom->save_size); 819 memset(gen->save_storage, 0, rom->save_size);
818 FILE * f = fopen(save_filename, "rb"); 820 FILE * f = fopen(save_filename, "rb");
819 if (f) { 821 if (f) {
820 uint32_t read = fread(gen->save_storage, 1, rom->save_size, f); 822 uint32_t read = fread(gen->save_storage, 1, rom->save_size, f);
821 fclose(f); 823 fclose(f);
822 if (read > 0) { 824 if (read > 0) {
823 printf("Loaded %s from %s\n", rom->save_type == SAVE_I2C ? "EEPROM" : "SRAM", save_filename); 825 printf("Loaded %s from %s\n", rom->save_type == SAVE_I2C ? "EEPROM" : "SRAM", save_filename);
824 } 826 }
825 } 827 }
826 atexit(persist_save); 828 atexit(persist_save);
829 if (gen->save_type == SAVE_I2C) {
830 eeprom_init(&gen->eeprom);
831 }
827 } else { 832 } else {
828 gen->save_storage = NULL; 833 gen->save_storage = NULL;
829 } 834 }
830 835
831 init_m68k_opts(&opts, rom->map, rom->map_chunks, MCLKS_PER_68K); 836 init_m68k_opts(&opts, rom->map, rom->map_chunks, MCLKS_PER_68K);