comparison backend.c @ 690:fc04781f4d28

Removed hardcoded assumptions in M68K core about which parts of the memory map are RAM
author Michael Pavone <pavone@retrodev.com>
date Wed, 14 Jan 2015 09:38:54 -0800
parents 98927f1b005b
children 329ff62ea391
comparison
equal deleted inserted replaced
689:858e31f977ae 690:fc04781f4d28
70 return base + (address & memmap[chunk].mask); 70 return base + (address & memmap[chunk].mask);
71 } 71 }
72 } 72 }
73 return NULL; 73 return NULL;
74 } 74 }
75
76 uint32_t chunk_size(cpu_options *opts, memmap_chunk const *chunk)
77 {
78 if (chunk->mask == opts->address_mask) {
79 return chunk->end - chunk->start;
80 } else {
81 return chunk->mask + 1;
82 }
83 }
84
85 uint32_t ram_size(cpu_options *opts)
86 {
87 uint32_t size = 0;
88 for (int i = 0; i < opts->memmap_chunks; i++)
89 {
90 if ((opts->memmap[i].flags & (MMAP_WRITE | MMAP_CODE)) == (MMAP_WRITE | MMAP_CODE)) {
91 if (opts->memmap[i].mask == opts->address_mask) {
92 size += opts->memmap[i].end - opts->memmap[i].start;
93 } else {
94 size += opts->memmap[i].mask + 1;
95 }
96 }
97 }
98 return size;
99 }