more wip SVP code
[picodrive.git] / Pico / Memory.c
index 8dc11bb..48c32a6 100644 (file)
@@ -203,10 +203,7 @@ static void SRAMWrite(u32 a, u32 d)
 }\r
 \r
 // for nonstandard reads\r
-#ifndef _ASM_MEMORY_C\r
-static\r
-#endif\r
-u32 OtherRead16End(u32 a, int realsize)\r
+static u32 OtherRead16End(u32 a, int realsize)\r
 {\r
   u32 d=0;\r
 \r
@@ -320,7 +317,6 @@ static void OtherWrite8End(u32 a,u32 d,int realsize)
     Pico.m.prot_bytes[(a>>2)&1] = (u8)d;\r
 }\r
 \r
-\r
 #include "MemoryCmn.c"\r
 \r
 \r
@@ -499,6 +495,26 @@ static void PicoWrite32(u32 a,u32 d)
 \r
 \r
 // -----------------------------------------------------------------\r
+\r
+// TODO: asm code\r
+static void OtherWrite16End(u32 a,u32 d,int realsize)\r
+{\r
+  PicoWrite8Hook(a,  d>>8, realsize);\r
+  PicoWrite8Hook(a+1,d&0xff, realsize);\r
+}\r
+\r
+u32  (*PicoRead16Hook) (u32 a, int realsize) = OtherRead16End;\r
+void (*PicoWrite8Hook) (u32 a, u32 d, int realsize) = OtherWrite8End;\r
+void (*PicoWrite16Hook)(u32 a, u32 d, int realsize) = OtherWrite16End;\r
+\r
+PICO_INTERNAL void PicoMemResetHooks(void)\r
+{\r
+  // default unmapped/cart specific handlers\r
+  PicoRead16Hook = OtherRead16End;\r
+  PicoWrite8Hook = OtherWrite8End;\r
+  PicoWrite16Hook = OtherWrite16End;\r
+}\r
+\r
 PICO_INTERNAL void PicoMemSetup(void)\r
 {\r
   // Setup memory callbacks:\r