Mercurial > repos > blastem
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); |