typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
+typedef unsigned long uptr; // unsigned pointer-sized int
#define M68K_MEM_SHIFT 16
// minimum size we can map
#define M68K_BANK_SIZE (1 << M68K_MEM_SHIFT)
#define M68K_BANK_MASK (M68K_BANK_SIZE - 1)
-extern unsigned long m68k_read8_map [0x1000000 >> M68K_MEM_SHIFT];
-extern unsigned long m68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];
-extern unsigned long m68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];
-extern unsigned long m68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];
+extern uptr m68k_read8_map [0x1000000 >> M68K_MEM_SHIFT];
+extern uptr m68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];
+extern uptr m68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];
+extern uptr m68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];
-extern unsigned long s68k_read8_map [0x1000000 >> M68K_MEM_SHIFT];
-extern unsigned long s68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];
-extern unsigned long s68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];
-extern unsigned long s68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];
+extern uptr s68k_read8_map [0x1000000 >> M68K_MEM_SHIFT];
+extern uptr s68k_read16_map [0x1000000 >> M68K_MEM_SHIFT];
+extern uptr s68k_write8_map [0x1000000 >> M68K_MEM_SHIFT];
+extern uptr s68k_write16_map[0x1000000 >> M68K_MEM_SHIFT];
-void z80_map_set(unsigned long *map, int start_addr, int end_addr,
+void z80_map_set(uptr *map, int start_addr, int end_addr,
const void *func_or_mh, int is_func);
-void cpu68k_map_set(unsigned long *map, int start_addr, int end_addr,
+void cpu68k_map_set(uptr *map, int start_addr, int end_addr,
const void *func_or_mh, int is_func);
void cpu68k_map_all_ram(int start_addr, int end_addr, void *ptr, int is_sub);
void m68k_map_unmap(int start_addr, int end_addr);
#define MAKE_68K_READ8(name, map) \
u32 name(u32 a) \
{ \
- unsigned long v; \
+ uptr v; \
a &= 0x00ffffff; \
v = map[a >> M68K_MEM_SHIFT]; \
if (v & 0x80000000) \
#define MAKE_68K_READ16(name, map) \
u32 name(u32 a) \
{ \
- unsigned long v; \
+ uptr v; \
a &= 0x00fffffe; \
v = map[a >> M68K_MEM_SHIFT]; \
if (v & 0x80000000) \
#define MAKE_68K_READ32(name, map) \
u32 name(u32 a) \
{ \
- unsigned long v, vs; \
+ uptr v, vs; \
u32 d; \
a &= 0x00fffffe; \
v = map[a >> M68K_MEM_SHIFT]; \
#define MAKE_68K_WRITE8(name, map) \
void name(u32 a, u8 d) \
{ \
- unsigned long v; \
+ uptr v; \
a &= 0x00ffffff; \
v = map[a >> M68K_MEM_SHIFT]; \
if (v & 0x80000000) \
#define MAKE_68K_WRITE16(name, map) \
void name(u32 a, u16 d) \
{ \
- unsigned long v; \
+ uptr v; \
a &= 0x00fffffe; \
v = map[a >> M68K_MEM_SHIFT]; \
if (v & 0x80000000) \
#define MAKE_68K_WRITE32(name, map) \
void name(u32 a, u32 d) \
{ \
- unsigned long v, vs; \
+ uptr v, vs; \
a &= 0x00fffffe; \
v = map[a >> M68K_MEM_SHIFT]; \
vs = v << 1; \