improve 64bit portability
[picodrive.git] / cpu / cz80 / cz80.h
index 4e84642..f3f79b3 100644 (file)
 #ifndef CZ80_H\r
 #define CZ80_H\r
 \r
+// uintptr_t\r
+#include <stdlib.h>\r
+#ifndef _MSC_VER\r
+#include <stdint.h>\r
+#endif\r
+\r
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
@@ -43,6 +49,10 @@ extern "C" {
 #define INT32  signed int\r
 #endif\r
 \r
+#ifndef FPTR\r
+#define FPTR   uintptr_t\r
+#endif\r
+\r
 /*************************************/\r
 /* Z80 core Structures & definitions */\r
 /*************************************/\r
@@ -222,7 +232,7 @@ typedef struct cz80_t
        union16 IX;\r
        union16 IY;\r
        union16 SP;\r
-       UINT32 PC;\r
+       UINT32 unusedPC;        /* left for binary compat */\r
 \r
        union16 BC2;\r
        union16 DE2;\r
@@ -242,11 +252,12 @@ typedef struct cz80_t
        INT32 ICount;\r
        INT32 ExtraCycles;\r
 \r
-       UINT32 BasePC;\r
-       UINT32 Fetch[CZ80_FETCH_BANK];\r
+       FPTR BasePC;\r
+       FPTR PC;\r
+       FPTR Fetch[CZ80_FETCH_BANK];\r
 #if CZ80_ENCRYPTED_ROM\r
-       INT32 OPBase;\r
-       INT32 OPFetch[CZ80_FETCH_BANK];\r
+       FPTR OPBase;\r
+       FPTR OPFetch[CZ80_FETCH_BANK];\r
 #endif\r
 \r
        UINT8 *pzR8[8];\r
@@ -284,7 +295,7 @@ void Cz80_Set_IRQ(cz80_struc *CPU, INT32 line, INT32 state);
 UINT32  Cz80_Get_Reg(cz80_struc *CPU, INT32 regnum);\r
 void Cz80_Set_Reg(cz80_struc *CPU, INT32 regnum, UINT32 value);\r
 \r
-void Cz80_Set_Fetch(cz80_struc *CPU, UINT32 low_adr, UINT32 high_adr, UINT32 fetch_adr);\r
+void Cz80_Set_Fetch(cz80_struc *CPU, UINT32 low_adr, UINT32 high_adr, FPTR fetch_adr);\r
 #if CZ80_ENCRYPTED_ROM\r
 void Cz80_Set_Encrypt_Range(cz80_struc *CPU, UINT32 low_adr, UINT32 high_adr, UINT32 decrypted_rom);\r
 #endif\r