diff options
author | Michael Pavone <pavone@retrodev.com> | 2015-01-14 09:38:54 -0800 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2015-01-14 09:38:54 -0800 |
commit | f439d8688758710b74d4909e77ebce6444b8a448 (patch) | |
tree | 6d000eba25209ae902c5360402b15118c79559ad /backend.c | |
parent | d42234e4af41481a3db6f6ea5173bb1623b30d22 (diff) |
Removed hardcoded assumptions in M68K core about which parts of the memory map are RAM
Diffstat (limited to 'backend.c')
-rw-r--r-- | backend.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -72,3 +72,28 @@ void * get_native_pointer(uint32_t address, void ** mem_pointers, cpu_options * } return NULL; } + +uint32_t chunk_size(cpu_options *opts, memmap_chunk const *chunk) +{ + if (chunk->mask == opts->address_mask) { + return chunk->end - chunk->start; + } else { + return chunk->mask + 1; + } +} + +uint32_t ram_size(cpu_options *opts) +{ + uint32_t size = 0; + for (int i = 0; i < opts->memmap_chunks; i++) + { + if ((opts->memmap[i].flags & (MMAP_WRITE | MMAP_CODE)) == (MMAP_WRITE | MMAP_CODE)) { + if (opts->memmap[i].mask == opts->address_mask) { + size += opts->memmap[i].end - opts->memmap[i].start; + } else { + size += opts->memmap[i].mask + 1; + } + } + } + return size; +} |