From e69931acf180a2aa939c1d5d6e5c1aeefe90c1fb Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 14 Jan 2024 21:25:03 +0200 Subject: [PATCH] Check 24-bit addressing. --- include/memory.h | 2 ++ od-win32/mman.cpp | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/memory.h b/include/memory.h index 9946d7d6..895c7b51 100644 --- a/include/memory.h +++ b/include/memory.h @@ -39,9 +39,11 @@ extern uaecptr highest_ram; #ifdef ADDRESS_SPACE_24BIT #define MEMORY_BANKS 256 +#define MEMORY_BANKS_24 256 #define MEMORY_RANGE_MASK ((1<<24)-1) #else #define MEMORY_BANKS 65536 +#define MEMORY_BANKS_24 256 #define MEMORY_RANGE_MASK (~0) #endif diff --git a/od-win32/mman.cpp b/od-win32/mman.cpp index d1d14a82..a6ca716e 100644 --- a/od-win32/mman.cpp +++ b/od-win32/mman.cpp @@ -1022,14 +1022,15 @@ void protect_roms(bool protect) void mman_set_barriers(bool disable) { addrbank *abprev = NULL; - for (int i = 0; i < MEMORY_BANKS; i++) { + int maxbank = currprefs.address_space_24 ? MEMORY_BANKS_24 : MEMORY_BANKS; + for (int i = 0; i < maxbank; i++) { uaecptr addr = i * 0x10000; addrbank *ab = &get_mem_bank(addr); if (ab == abprev) { continue; } int size = 0x10000; - for (int j = i + 1; j < MEMORY_BANKS; j++) { + for (int j = i + 1; j < maxbank; j++) { uaecptr addr2 = j * 0x10000; addrbank *ab2 = &get_mem_bank(addr2); if (ab2 != ab) { -- 2.47.3