\r
extern unsigned int lastSSRamWrite; // used by serial eeprom code\r
\r
-unsigned long m68k_read8_map [0x1000000 >> M68K_MEM_SHIFT];\r
-unsigned long m68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];\r
-unsigned long m68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];\r
-unsigned long m68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_read8_map [0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];\r
+uptr m68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];\r
\r
-static void xmap_set(unsigned long *map, int shift, int start_addr, int end_addr,\r
+static void xmap_set(uptr *map, int shift, int start_addr, int end_addr,\r
const void *func_or_mh, int is_func)\r
{\r
- unsigned long addr = (unsigned long)func_or_mh;\r
+ uptr addr = (uptr)func_or_mh;\r
int mask = (1 << shift) - 1;\r
int i;\r
\r
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
-void z80_map_set(unsigned long *map, int start_addr, int end_addr,\r
+void z80_map_set(uptr *map, int start_addr, int end_addr,\r
const void *func_or_mh, int is_func)\r
{\r
xmap_set(map, Z80_MEM_SHIFT, start_addr, end_addr, func_or_mh, is_func);\r
}\r
\r
-void cpu68k_map_set(unsigned long *map, int start_addr, int end_addr,\r
+void cpu68k_map_set(uptr *map, int start_addr, int end_addr,\r
const void *func_or_mh, int is_func)\r
{\r
xmap_set(map, M68K_MEM_SHIFT, start_addr, end_addr, func_or_mh, is_func);\r
// more specialized/optimized function (does same as above)\r
void cpu68k_map_all_ram(int start_addr, int end_addr, void *ptr, int is_sub)\r
{\r
- unsigned long *r8map, *r16map, *w8map, *w16map;\r
- unsigned long addr = (unsigned long)ptr;\r
+ uptr *r8map, *r16map, *w8map, *w16map;\r
+ uptr addr = (uptr)ptr;\r
int shift = M68K_MEM_SHIFT;\r
int i;\r
\r
\r
void m68k_map_unmap(int start_addr, int end_addr)\r
{\r
- unsigned long addr;\r
+ uptr addr;\r
int shift = M68K_MEM_SHIFT;\r
int i;\r
\r
- addr = (unsigned long)m68k_unmapped_read8;\r
+ addr = (uptr)m68k_unmapped_read8;\r
for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
m68k_read8_map[i] = (addr >> 1) | (1 << 31);\r
\r
- addr = (unsigned long)m68k_unmapped_read16;\r
+ addr = (uptr)m68k_unmapped_read16;\r
for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
m68k_read16_map[i] = (addr >> 1) | (1 << 31);\r
\r
- addr = (unsigned long)m68k_unmapped_write8;\r
+ addr = (uptr)m68k_unmapped_write8;\r
for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
m68k_write8_map[i] = (addr >> 1) | (1 << 31);\r
\r
- addr = (unsigned long)m68k_unmapped_write16;\r
+ addr = (uptr)m68k_unmapped_write16;\r
for (i = start_addr >> shift; i <= end_addr >> shift; i++)\r
m68k_write16_map[i] = (addr >> 1) | (1 << 31);\r
}\r
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
{\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
if (xcycles >= timer_b_next_oflow) \\r
ym2612.OPN.ST.status |= (ym2612.OPN.ST.mode >> 2) & 2\r
\r
-static u32 MEMH_FUNC ym2612_read_local_z80(void)\r
+static u32 ym2612_read_local_z80(void)\r
{\r
int xcycles = z80_cyclesDone() << 8;\r
\r
// -----------------------------------------------------------------\r
// z80 memhandlers\r
\r
-static unsigned char MEMH_FUNC z80_md_vdp_read(unsigned short a)\r
+static unsigned char z80_md_vdp_read(unsigned short a)\r
{\r
// TODO?\r
elprintf(EL_ANOMALY, "z80 invalid r8 [%06x] %02x", a, 0xff);\r
return 0xff;\r
}\r
\r
-static unsigned char MEMH_FUNC z80_md_bank_read(unsigned short a)\r
+static unsigned char z80_md_bank_read(unsigned short a)\r
{\r
unsigned int addr68k;\r
unsigned char ret;\r
return ret;\r
}\r
\r
-static void MEMH_FUNC z80_md_ym2612_write(unsigned int a, unsigned char data)\r
+static void z80_md_ym2612_write(unsigned int a, unsigned char data)\r
{\r
if (PicoOpt & POPT_EN_FM)\r
emustatus |= ym2612_write_local(a, data, 1) & 1;\r
}\r
\r
-static void MEMH_FUNC z80_md_vdp_br_write(unsigned int a, unsigned char data)\r
+static void z80_md_vdp_br_write(unsigned int a, unsigned char data)\r
{\r
// TODO: allow full VDP access\r
if ((a&0xfff9) == 0x7f11) // 7f11 7f13 7f15 7f17\r
elprintf(EL_ANOMALY, "z80 invalid w8 [%06x] %02x", a, data);\r
}\r
\r
-static void MEMH_FUNC z80_md_bank_write(unsigned int a, unsigned char data)\r
+static void z80_md_bank_write(unsigned int a, unsigned char data)\r
{\r
unsigned int addr68k;\r
\r
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