memory: allow SRAM word writes
authornotaz <notasas@gmail.com>
Wed, 20 Sep 2017 20:43:38 +0000 (23:43 +0300)
committernotaz <notasas@gmail.com>
Wed, 20 Sep 2017 20:47:09 +0000 (23:47 +0300)
Was allowing both low and high byte writes by byte, but not word,
which was stupid.

pico/memory.c

index 4f38e5e..5be66f5 100644 (file)
@@ -448,11 +448,14 @@ static void PicoWrite16_sram(u32 a, u32 d)
     EEPROM_write16(d);\r
   }\r
   else {\r
-    // XXX: hardware could easily use MSB too..\r
     u8 *pm = (u8 *)(SRam.data - SRam.start + a);\r
-    if (*pm != (u8)d) {\r
+    if (pm[0] != (u8)(d >> 8)) {\r
       SRam.changed = 1;\r
-      *pm = (u8)d;\r
+      pm[0] = (u8)(d >> 8);\r
+    }\r
+    if (pm[1] != (u8)d) {\r
+      SRam.changed = 1;\r
+      pm[1] = (u8)d;\r
     }\r
   }\r
 }\r