Mercurial > repos > blastem
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 } |