]> git.sesse.net Git - pistorm/commitdiff
Use more familiar offset and limit convention
authorNiklas Ekström <mail@niklasekstrom.nu>
Sat, 28 Nov 2020 13:14:46 +0000 (14:14 +0100)
committerNiklas Ekström <mail@niklasekstrom.nu>
Mon, 30 Nov 2020 20:28:51 +0000 (21:28 +0100)
emulator.c

index 8b75e6d4d17947284395763f1b822fea05e2b704..29f022f2a72c337a0b2aa4475aef0d5157ff1047 100644 (file)
@@ -70,13 +70,14 @@ Copyright 2020 Claude Schwartz
       reset |= (1 << (no)); \
   } while (0)
 
-#define FASTBASE 0x07FFFFFF
-#define FASTSIZE 0xFFFFFFF
-#define GAYLEBASE 0xD80000  // D7FFFF
-#define GAYLESIZE 0x6FFFF
+#define FASTBASE 0x08000000
+#define FASTSIZE (256*1024*1024)
+
+#define GAYLEBASE 0xD80000
+#define GAYLESIZE (448*1024)
 
 #define KICKBASE 0xF80000
-#define KICKSIZE 0x7FFFF
+#define KICKSIZE (512*1024)
 
 int mem_fd;
 int mem_fd_gpclk;
@@ -130,8 +131,8 @@ volatile uint16_t srdata;
 volatile uint32_t srdata2;
 volatile uint32_t srdata2_old;
 
-unsigned char g_kick[524288];
-unsigned char g_ram[FASTSIZE + 1]; /* RAM */
+unsigned char g_kick[KICKSIZE];
+unsigned char g_ram[FASTSIZE]; /* RAM */
 unsigned char toggle;
 static volatile unsigned char ovl;
 static volatile unsigned char maprom;
@@ -344,18 +345,18 @@ int cpu_irq_ack(int level) {
 }
 
 unsigned int m68k_read_memory_8(unsigned int address) {
-  if (address > FASTBASE && address < FASTBASE + FASTSIZE) {
+  if (address >= FASTBASE && address < FASTBASE + FASTSIZE) {
     return g_ram[address - FASTBASE];
   }
 
   if (maprom == 1) {
-    if (address > KICKBASE && address < KICKBASE + KICKSIZE) {
+    if (address >= KICKBASE && address < KICKBASE + KICKSIZE) {
       return g_kick[address - KICKBASE];
     }
   }
 
   if (gayle_emulation_enabled) {
-    if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+    if (address >= GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
       return readGayleB(address);
     }
   }
@@ -369,18 +370,18 @@ unsigned int m68k_read_memory_8(unsigned int address) {
 }
 
 unsigned int m68k_read_memory_16(unsigned int address) {
-  if (address > FASTBASE && address < FASTBASE + FASTSIZE) {
+  if (address >= FASTBASE && address < FASTBASE + FASTSIZE) {
     return be16toh(*(uint16_t *)&g_ram[address - FASTBASE]);
   }
 
   if (maprom == 1) {
-    if (address > KICKBASE && address < KICKBASE + KICKSIZE) {
+    if (address >= KICKBASE && address < KICKBASE + KICKSIZE) {
       return be16toh(*(uint16_t *)&g_kick[address - KICKBASE]);
     }
   }
 
   if (gayle_emulation_enabled) {
-    if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+    if (address >= GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
       return readGayle(address);
     }
   }
@@ -394,18 +395,18 @@ unsigned int m68k_read_memory_16(unsigned int address) {
 }
 
 unsigned int m68k_read_memory_32(unsigned int address) {
-  if (address > FASTBASE && address < FASTBASE + FASTSIZE) {
+  if (address >= FASTBASE && address < FASTBASE + FASTSIZE) {
     return be32toh(*(uint32_t *)&g_ram[address - FASTBASE]);
   }
 
   if (maprom == 1) {
-    if (address > KICKBASE && address < KICKBASE + KICKSIZE) {
+    if (address >= KICKBASE && address < KICKBASE + KICKSIZE) {
       return be32toh(*(uint32_t *)&g_kick[address - KICKBASE]);
     }
   }
 
   if (gayle_emulation_enabled) {
-    if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+    if (address >= GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
       return readGayleL(address);
     }
   }
@@ -421,13 +422,13 @@ unsigned int m68k_read_memory_32(unsigned int address) {
 }
 
 void m68k_write_memory_8(unsigned int address, unsigned int value) {
-  if (address > FASTBASE && address < FASTBASE + FASTSIZE) {
+  if (address >= FASTBASE && address < FASTBASE + FASTSIZE) {
     g_ram[address - FASTBASE] = value;
     return;
   }
 
   if (gayle_emulation_enabled) {
-    if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+    if (address >= GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
       writeGayleB(address, value);
       return;
     }
@@ -448,13 +449,13 @@ void m68k_write_memory_8(unsigned int address, unsigned int value) {
 }
 
 void m68k_write_memory_16(unsigned int address, unsigned int value) {
-  if (address > FASTBASE && address < FASTBASE + FASTSIZE) {
+  if (address >= FASTBASE && address < FASTBASE + FASTSIZE) {
     *(uint16_t *)&g_ram[address - FASTBASE] = htobe16(value);
     return;
   }
 
   if (gayle_emulation_enabled) {
-    if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+    if (address >= GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
       writeGayle(address, value);
       return;
     }
@@ -469,13 +470,13 @@ void m68k_write_memory_16(unsigned int address, unsigned int value) {
 }
 
 void m68k_write_memory_32(unsigned int address, unsigned int value) {
-  if (address > FASTBASE && address < FASTBASE + FASTSIZE) {
+  if (address >= FASTBASE && address < FASTBASE + FASTSIZE) {
     *(uint32_t *)&g_ram[address - FASTBASE] = htobe32(value);
     return;
   }
 
   if (gayle_emulation_enabled) {
-    if (address > GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
+    if (address >= GAYLEBASE && address < GAYLEBASE + GAYLESIZE) {
       writeGayleL(address, value);
     }
   }