X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cpu%2Fcz80%2Fcz80.h;h=9b97d3b43d32e078a255921cdf804553a17e7849;hb=bc38f4d24fcdbbefbda10ef023c0ffbab4b208b8;hp=a5da31db5c092917fbcf853a22bbfb4df76b2b08;hpb=a4221917e147ba303f2cf6c09d12362bf2802084;p=picodrive.git diff --git a/cpu/cz80/cz80.h b/cpu/cz80/cz80.h index a5da31d..9b97d3b 100644 --- a/cpu/cz80/cz80.h +++ b/cpu/cz80/cz80.h @@ -24,7 +24,7 @@ extern "C" { #endif #ifndef INT8 -#define INT8 char +#define INT8 signed char #endif #ifndef UINT16 @@ -32,7 +32,7 @@ extern "C" { #endif #ifndef INT16 -#define INT16 short +#define INT16 signed short #endif #ifndef UINT32 @@ -40,7 +40,11 @@ extern "C" { #endif #ifndef INT32 -#define INT32 int +#define INT32 signed int +#endif + +#ifndef FPTR +#define FPTR unsigned long #endif /*************************************/ @@ -52,6 +56,7 @@ extern "C" { #define CZ80_FETCH_SFT (16 - CZ80_FETCH_BITS) #define CZ80_FETCH_BANK (1 << CZ80_FETCH_BITS) +#define PICODRIVE_HACKS 1 #define CZ80_LITTLE_ENDIAN 1 #define CZ80_USE_JUMPTABLE 1 #define CZ80_BIG_FLAGS_ARRAY 1 @@ -60,7 +65,7 @@ extern "C" { //#else #define CZ80_ENCRYPTED_ROM 0 //#endif -#define CZ80_EMULATE_R_EXACTLY 0 +#define CZ80_EMULATE_R_EXACTLY 1 #define zR8(A) (*CPU->pzR8[A]) #define zR16(A) (CPU->pzR16[A]->W) @@ -221,7 +226,7 @@ typedef struct cz80_t union16 IX; union16 IY; union16 SP; - UINT32 PC; + UINT32 unusedPC; /* left for binary compat */ union16 BC2; union16 DE2; @@ -241,11 +246,12 @@ typedef struct cz80_t INT32 ICount; INT32 ExtraCycles; - UINT32 BasePC; - UINT32 Fetch[CZ80_FETCH_BANK]; + FPTR BasePC; + FPTR PC; + FPTR Fetch[CZ80_FETCH_BANK]; #if CZ80_ENCRYPTED_ROM - INT32 OPBase; - INT32 OPFetch[CZ80_FETCH_BANK]; + FPTR OPBase; + FPTR OPFetch[CZ80_FETCH_BANK]; #endif UINT8 *pzR8[8]; @@ -283,7 +289,7 @@ void Cz80_Set_IRQ(cz80_struc *CPU, INT32 line, INT32 state); UINT32 Cz80_Get_Reg(cz80_struc *CPU, INT32 regnum); void Cz80_Set_Reg(cz80_struc *CPU, INT32 regnum, UINT32 value); -void Cz80_Set_Fetch(cz80_struc *CPU, UINT32 low_adr, UINT32 high_adr, UINT32 fetch_adr); +void Cz80_Set_Fetch(cz80_struc *CPU, UINT32 low_adr, UINT32 high_adr, FPTR fetch_adr); #if CZ80_ENCRYPTED_ROM void Cz80_Set_Encrypt_Range(cz80_struc *CPU, UINT32 low_adr, UINT32 high_adr, UINT32 decrypted_rom); #endif