mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
port to 64bit. Some gcc 4.4 warning fixes
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@835 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
71f68165b6
commit
b8a1c09ad1
19 changed files with 102 additions and 80 deletions
|
@ -14,8 +14,7 @@
|
|||
#include "cz80.h"
|
||||
|
||||
#if PICODRIVE_HACKS
|
||||
#undef EMU_M68K
|
||||
#include <pico/pico_int.h>
|
||||
#include <pico/memory.h>
|
||||
#endif
|
||||
|
||||
#ifndef ALIGN_DATA
|
||||
|
@ -107,7 +106,7 @@ void Cz80_Init(cz80_struc *CPU)
|
|||
|
||||
for (i = 0; i < CZ80_FETCH_BANK; i++)
|
||||
{
|
||||
CPU->Fetch[i] = (UINT32)cz80_bad_address;
|
||||
CPU->Fetch[i] = (FPTR)cz80_bad_address;
|
||||
#if CZ80_ENCRYPTED_ROM
|
||||
CPU->OPFetch[i] = 0;
|
||||
#endif
|
||||
|
@ -211,7 +210,7 @@ void Cz80_Init(cz80_struc *CPU)
|
|||
|
||||
void Cz80_Reset(cz80_struc *CPU)
|
||||
{
|
||||
memset(CPU, 0, (INT32)&CPU->BasePC - (INT32)CPU);
|
||||
memset(CPU, 0, (FPTR)&CPU->BasePC - (FPTR)CPU);
|
||||
Cz80_Set_Reg(CPU, CZ80_PC, 0);
|
||||
}
|
||||
|
||||
|
@ -219,8 +218,8 @@ void Cz80_Reset(cz80_struc *CPU)
|
|||
#if PICODRIVE_HACKS
|
||||
static inline unsigned char picodrive_read(unsigned short a)
|
||||
{
|
||||
unsigned long v = z80_read_map[a >> Z80_MEM_SHIFT];
|
||||
if (v & 0x80000000)
|
||||
uptr v = z80_read_map[a >> Z80_MEM_SHIFT];
|
||||
if (map_flag_set(v))
|
||||
return ((z80_read_f *)(v << 1))(a);
|
||||
return *(unsigned char *)((v << 1) + a);
|
||||
}
|
||||
|
@ -236,9 +235,9 @@ INT32 Cz80_Exec(cz80_struc *CPU, INT32 cycles)
|
|||
#include "cz80jmp.c"
|
||||
#endif
|
||||
|
||||
UINT32 PC;
|
||||
FPTR PC;
|
||||
#if CZ80_ENCRYPTED_ROM
|
||||
INT32 OPBase;
|
||||
FPTR OPBase;
|
||||
#endif
|
||||
UINT32 Opcode;
|
||||
UINT32 adr = 0;
|
||||
|
@ -317,9 +316,9 @@ void Cz80_Set_IRQ(cz80_struc *CPU, INT32 line, INT32 state)
|
|||
|
||||
if (state != CLEAR_LINE)
|
||||
{
|
||||
UINT32 PC = CPU->PC;
|
||||
FPTR PC = CPU->PC;
|
||||
#if CZ80_ENCRYPTED_ROM
|
||||
INT32 OPBase = CPU->OPBase;
|
||||
FPTR OPBase = CPU->OPBase;
|
||||
#endif
|
||||
|
||||
CPU->IRQLine = line;
|
||||
|
@ -408,7 +407,7 @@ void Cz80_Set_Reg(cz80_struc *CPU, INT32 regnum, UINT32 val)
|
|||
ƒtƒFƒbƒ`ƒAƒhƒŒƒX<EFBFBD>Ý’è
|
||||
--------------------------------------------------------*/
|
||||
|
||||
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)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
|
|
|
@ -43,6 +43,10 @@ extern "C" {
|
|||
#define INT32 signed int
|
||||
#endif
|
||||
|
||||
#ifndef FPTR
|
||||
#define FPTR unsigned long
|
||||
#endif
|
||||
|
||||
/*************************************/
|
||||
/* Z80 core Structures & definitions */
|
||||
/*************************************/
|
||||
|
@ -222,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;
|
||||
|
@ -242,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];
|
||||
|
@ -284,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
|
||||
|
|
|
@ -917,7 +917,7 @@ OP_DJNZ:
|
|||
OP(0x18): // JR n
|
||||
OP_JR:
|
||||
adr = (INT8)READ_ARG();
|
||||
PC += adr;
|
||||
PC += (INT8)adr;
|
||||
RET(12)
|
||||
|
||||
OP(0x20): // JR NZ,n
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
unsigned short a = A; \
|
||||
unsigned char d = D; \
|
||||
unsigned long v = z80_write_map[a >> Z80_MEM_SHIFT]; \
|
||||
if (v & 0x80000000) \
|
||||
if (map_flag_set(v)) \
|
||||
((z80_write_f *)(v << 1))(a, d); \
|
||||
else \
|
||||
*(unsigned char *)((v << 1) + a) = d; \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue