bugfixes related to mmap usage for ROM
[picodrive.git] / pico / memory.c
index 9967f5c..d0b1697 100644 (file)
@@ -44,7 +44,7 @@ static void xmap_set(uptr *map, int shift, int start_addr, int end_addr,
   for (i = start_addr >> shift; i <= end_addr >> shift; i++) {\r
     map[i] = addr >> 1;\r
     if (is_func)\r
-      map[i] |= 1 << (sizeof(addr) * 8 - 1);\r
+      map[i] |= (uptr)1 << (sizeof(addr) * 8 - 1);\r
   }\r
 }\r
 \r
@@ -257,8 +257,11 @@ void NOINLINE ctl_write_z80busreq(u32 d)
     else\r
     {\r
       z80stopCycle = SekCyclesDone();\r
-      if ((PicoOpt&POPT_EN_Z80) && !Pico.m.z80_reset)\r
+      if ((PicoOpt&POPT_EN_Z80) && !Pico.m.z80_reset) {\r
+        pprof_start(m68k);\r
         PicoSyncZ80(z80stopCycle);\r
+        pprof_end_sub(m68k);\r
+      }\r
     }\r
     Pico.m.z80Run = d;\r
   }\r
@@ -272,8 +275,11 @@ void NOINLINE ctl_write_z80reset(u32 d)
   {\r
     if (d)\r
     {\r
-      if ((PicoOpt&POPT_EN_Z80) && Pico.m.z80Run)\r
+      if ((PicoOpt&POPT_EN_Z80) && Pico.m.z80Run) {\r
+        pprof_start(m68k);\r
         PicoSyncZ80(SekCyclesDone());\r
+        pprof_end_sub(m68k);\r
+      }\r
       YM2612ResetChip();\r
       timers_reset();\r
     }\r
@@ -1146,8 +1152,8 @@ static void z80_mem_setup(void)
   drZ80.z80_out = z80_md_out;\r
 #endif\r
 #ifdef _USE_CZ80\r
-  Cz80_Set_Fetch(&CZ80, 0x0000, 0x1fff, (UINT32)Pico.zram); // main RAM\r
-  Cz80_Set_Fetch(&CZ80, 0x2000, 0x3fff, (UINT32)Pico.zram); // mirror\r
+  Cz80_Set_Fetch(&CZ80, 0x0000, 0x1fff, (FPTR)Pico.zram); // main RAM\r
+  Cz80_Set_Fetch(&CZ80, 0x2000, 0x3fff, (FPTR)Pico.zram); // mirror\r
   Cz80_Set_INPort(&CZ80, z80_md_in);\r
   Cz80_Set_OUTPort(&CZ80, z80_md_out);\r
 #endif\r