DGen/SDL
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Macros | Typedefs | Functions | Variables
cz80.h File Reference
#include <stdint.h>

Go to the source code of this file.

Classes

union  union16
struct  cz80_struc

Macros

#define FASTCALL
#define CZ80_FETCH_BITS   4
#define CZ80_FETCH_SFT   (16 - CZ80_FETCH_BITS)
#define CZ80_FETCH_BANK   (1 << CZ80_FETCH_BITS)
#define CZ80_LITTLE_ENDIAN   1
#define CZ80_USE_JUMPTABLE   0
#define CZ80_SIZE_OPT   0
#define CZ80_USE_WORD_HANDLER   0
#define CZ80_EXACT   1
#define CZ80_DEBUG   0
#define zR8(A)   CPU->creg.r8[(A) ^ 1]
#define zR16(A)   CPU->creg.r16[A].W
#define pzR16(A)   &(CPU->creg.r16[A])
#define pzFA   &(CPU->creg.name.FA)
#define zFA   CPU->creg.name.FA.W
#define zlFA   CPU->creg.name.FA.B.L
#define zhFA   CPU->creg.name.FA.B.H
#define zA   zlFA
#define zF   zhFA
#define pzBC   &(CPU->creg.name.BC)
#define zBC   CPU->creg.name.BC.W
#define zlBC   CPU->creg.name.BC.B.L
#define zhBC   CPU->creg.name.BC.B.H
#define zB   zhBC
#define zC   zlBC
#define pzDE   &(CPU->creg.name.DE)
#define zDE   CPU->creg.name.DE.W
#define zlDE   CPU->creg.name.DE.B.L
#define zhDE   CPU->creg.name.DE.B.H
#define zD   zhDE
#define zE   zlDE
#define pzHL   &(CPU->creg.name.HL)
#define zHL   CPU->creg.name.HL.W
#define zlHL   CPU->creg.name.HL.B.L
#define zhHL   CPU->creg.name.HL.B.H
#define zH   zhHL
#define zL   zlHL
#define zFA2   CPU->FA2.W
#define zlFA2   CPU->FA2.B.L
#define zhFA2   CPU->FA2.B.H
#define zA2   zlFA2
#define zF2   zhFA2
#define zBC2   CPU->BC2.W
#define zDE2   CPU->DE2.W
#define zHL2   CPU->HL2.W
#define pzIX   &(CPU->IX)
#define zIX   CPU->IX.W
#define zlIX   CPU->IX.B.L
#define zhIX   CPU->IX.B.H
#define pzIY   &(CPU->IY)
#define zIY   CPU->IY.W
#define zlIY   CPU->IY.B.L
#define zhIY   CPU->IY.B.H
#define pzSP   &(CPU->SP)
#define zSP   CPU->SP.W
#define zlSP   CPU->SP.B.L
#define zhSP   CPU->SP.B.H
#define zPC   PC
#define zI   CPU->I
#define zIM   CPU->IM
#define zwR   CPU->R.W
#define zR1   CPU->R.B.L
#define zR2   CPU->R.B.H
#define zR   zR1
#define zIFF   CPU->IFF.W
#define zIFF1   CPU->IFF.B.L
#define zIFF2   CPU->IFF.B.H
#define CZ80_SF_SFT   7
#define CZ80_ZF_SFT   6
#define CZ80_YF_SFT   5
#define CZ80_HF_SFT   4
#define CZ80_XF_SFT   3
#define CZ80_PF_SFT   2
#define CZ80_VF_SFT   2
#define CZ80_NF_SFT   1
#define CZ80_CF_SFT   0
#define CZ80_SF   (1 << CZ80_SF_SFT)
#define CZ80_ZF   (1 << CZ80_ZF_SFT)
#define CZ80_YF   (1 << CZ80_YF_SFT)
#define CZ80_HF   (1 << CZ80_HF_SFT)
#define CZ80_XF   (1 << CZ80_XF_SFT)
#define CZ80_PF   (1 << CZ80_PF_SFT)
#define CZ80_VF   (1 << CZ80_VF_SFT)
#define CZ80_NF   (1 << CZ80_NF_SFT)
#define CZ80_CF   (1 << CZ80_CF_SFT)
#define CZ80_IFF_SFT   CZ80_PF_SFT
#define CZ80_IFF   CZ80_PF
#define CZ80_HAS_INT   CZ80_IFF
#define CZ80_HAS_NMI   0x08
#define CZ80_RUNNING   0x10
#define CZ80_HALTED   0x20
#define CZ80_FAULTED   0x80
#define CZ80_DISABLE   0x40

Typedefs

typedef uint8_t FASTCALL CZ80_READ (void *ctx, uint16_t adr)
typedef void FASTCALL CZ80_WRITE (void *ctx, uint16_t adr, uint8_t data)
typedef void FASTCALL CZ80_RETI_CALLBACK (void *ctx)
typedef uint8_t FASTCALL CZ80_INT_CALLBACK (void *ctx, uint8_t param)

Functions

void Cz80_Init (cz80_struc *cpu)
uint8_t Cz80_Reset (cz80_struc *cpu)
void Cz80_Set_Fetch (cz80_struc *cpu, uint16_t low_adr, uint16_t high_adr, void *fetch_adr)
void Cz80_Set_Ctx (cz80_struc *cpu, void *ctx)
void Cz80_Set_ReadB (cz80_struc *cpu, CZ80_READ *Func)
void Cz80_Set_WriteB (cz80_struc *cpu, CZ80_WRITE *Func)
void Cz80_Set_INPort (cz80_struc *cpu, CZ80_READ *Func)
void Cz80_Set_OUTPort (cz80_struc *cpu, CZ80_WRITE *Func)
void Cz80_Set_IRQ_Callback (cz80_struc *cpu, CZ80_INT_CALLBACK *Func)
void Cz80_Set_RETI_Callback (cz80_struc *cpu, CZ80_RETI_CALLBACK *Func)
uint8_t Cz80_Read_Byte (cz80_struc *cpu, uint16_t adr)
uint16_t Cz80_Read_Word (cz80_struc *cpu, uint16_t adr)
void Cz80_Write_Byte (cz80_struc *cpu, uint16_t adr, uint8_t data)
void Cz80_Write_Word (cz80_struc *cpu, uint16_t adr, uint16_t data)
int FASTCALL Cz80_Exec (cz80_struc *cpu, int cycles)
void FASTCALL Cz80_Set_IRQ (cz80_struc *cpu, uint8_t vector)
void FASTCALL Cz80_Set_NMI (cz80_struc *cpu)
void FASTCALL Cz80_Clear_IRQ (cz80_struc *cpu)
void FASTCALL Cz80_Clear_NMI (cz80_struc *cpu)
int FASTCALL Cz80_Get_CycleToDo (cz80_struc *cpu)
int FASTCALL Cz80_Get_CycleRemaining (cz80_struc *cpu)
int FASTCALL Cz80_Get_CycleDone (cz80_struc *cpu)
void FASTCALL Cz80_Release_Cycle (cz80_struc *cpu)
void FASTCALL Cz80_Add_Cycle (cz80_struc *cpu, unsigned int cycle)
uint16_t FASTCALL Cz80_Get_BC (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_DE (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_HL (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_AF (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_BC2 (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_DE2 (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_HL2 (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_AF2 (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_IX (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_IY (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_SP (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_PC (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_R (cz80_struc *cpu)
uint16_t FASTCALL Cz80_Get_IFF (cz80_struc *cpu)
uint8_t FASTCALL Cz80_Get_IM (cz80_struc *cpu)
uint8_t FASTCALL Cz80_Get_I (cz80_struc *cpu)
void FASTCALL Cz80_Set_BC (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_DE (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_HL (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_AF (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_BC2 (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_DE2 (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_HL2 (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_AF2 (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_IX (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_IY (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_SP (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_PC (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_R (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_IFF (cz80_struc *cpu, uint16_t value)
void FASTCALL Cz80_Set_IM (cz80_struc *cpu, uint8_t value)
void FASTCALL Cz80_Set_I (cz80_struc *cpu, uint8_t value)

Variables

cz80_struc CZ80

Macro Definition Documentation

#define CZ80_CF   (1 << CZ80_CF_SFT)
#define CZ80_CF_SFT   0
#define CZ80_DEBUG   0
#define CZ80_DISABLE   0x40
#define CZ80_EXACT   1
#define CZ80_FAULTED   0x80
#define CZ80_FETCH_BANK   (1 << CZ80_FETCH_BITS)
#define CZ80_FETCH_BITS   4
#define CZ80_FETCH_SFT   (16 - CZ80_FETCH_BITS)
#define CZ80_HALTED   0x20
#define CZ80_HAS_INT   CZ80_IFF
#define CZ80_HAS_NMI   0x08
#define CZ80_HF   (1 << CZ80_HF_SFT)
#define CZ80_HF_SFT   4
#define CZ80_IFF   CZ80_PF
#define CZ80_IFF_SFT   CZ80_PF_SFT
#define CZ80_LITTLE_ENDIAN   1
#define CZ80_NF   (1 << CZ80_NF_SFT)
#define CZ80_NF_SFT   1
#define CZ80_PF   (1 << CZ80_PF_SFT)
#define CZ80_PF_SFT   2
#define CZ80_RUNNING   0x10
#define CZ80_SF   (1 << CZ80_SF_SFT)
#define CZ80_SF_SFT   7
#define CZ80_SIZE_OPT   0
#define CZ80_USE_JUMPTABLE   0
#define CZ80_USE_WORD_HANDLER   0
#define CZ80_VF   (1 << CZ80_VF_SFT)
#define CZ80_VF_SFT   2
#define CZ80_XF   (1 << CZ80_XF_SFT)
#define CZ80_XF_SFT   3
#define CZ80_YF   (1 << CZ80_YF_SFT)
#define CZ80_YF_SFT   5
#define CZ80_ZF   (1 << CZ80_ZF_SFT)
#define CZ80_ZF_SFT   6
#define FASTCALL
#define pzBC   &(CPU->creg.name.BC)
#define pzDE   &(CPU->creg.name.DE)
#define pzFA   &(CPU->creg.name.FA)
#define pzHL   &(CPU->creg.name.HL)
#define pzIX   &(CPU->IX)
#define pzIY   &(CPU->IY)
#define pzR16 (   A)    &(CPU->creg.r16[A])
#define pzSP   &(CPU->SP)
#define zA   zlFA
#define zA2   zlFA2
#define zB   zhBC
#define zBC   CPU->creg.name.BC.W
#define zBC2   CPU->BC2.W
#define zC   zlBC
#define zD   zhDE
#define zDE   CPU->creg.name.DE.W
#define zDE2   CPU->DE2.W
#define zE   zlDE
#define zF   zhFA
#define zF2   zhFA2
#define zFA   CPU->creg.name.FA.W
#define zFA2   CPU->FA2.W
#define zH   zhHL
#define zhBC   CPU->creg.name.BC.B.H
#define zhDE   CPU->creg.name.DE.B.H
#define zhFA   CPU->creg.name.FA.B.H
#define zhFA2   CPU->FA2.B.H
#define zhHL   CPU->creg.name.HL.B.H
#define zhIX   CPU->IX.B.H
#define zhIY   CPU->IY.B.H
#define zHL   CPU->creg.name.HL.W
#define zHL2   CPU->HL2.W
#define zhSP   CPU->SP.B.H
#define zI   CPU->I
#define zIFF   CPU->IFF.W
#define zIFF1   CPU->IFF.B.L
#define zIFF2   CPU->IFF.B.H
#define zIM   CPU->IM
#define zIX   CPU->IX.W
#define zIY   CPU->IY.W
#define zL   zlHL
#define zlBC   CPU->creg.name.BC.B.L
#define zlDE   CPU->creg.name.DE.B.L
#define zlFA   CPU->creg.name.FA.B.L
#define zlFA2   CPU->FA2.B.L
#define zlHL   CPU->creg.name.HL.B.L
#define zlIX   CPU->IX.B.L
#define zlIY   CPU->IY.B.L
#define zlSP   CPU->SP.B.L
#define zPC   PC
#define zR   zR1
#define zR1   CPU->R.B.L
#define zR16 (   A)    CPU->creg.r16[A].W
#define zR2   CPU->R.B.H
#define zR8 (   A)    CPU->creg.r8[(A) ^ 1]
#define zSP   CPU->SP.W
#define zwR   CPU->R.W

Typedef Documentation

typedef uint8_t FASTCALL CZ80_INT_CALLBACK(void *ctx, uint8_t param)
typedef uint8_t FASTCALL CZ80_READ(void *ctx, uint16_t adr)
typedef void FASTCALL CZ80_RETI_CALLBACK(void *ctx)
typedef void FASTCALL CZ80_WRITE(void *ctx, uint16_t adr, uint8_t data)

Function Documentation

void FASTCALL Cz80_Add_Cycle ( cz80_struc cpu,
unsigned int  cycle 
)
void FASTCALL Cz80_Clear_IRQ ( cz80_struc cpu)
void FASTCALL Cz80_Clear_NMI ( cz80_struc cpu)
int FASTCALL Cz80_Exec ( cz80_struc cpu,
int  cycles 
)
uint16_t FASTCALL Cz80_Get_AF ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_AF2 ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_BC ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_BC2 ( cz80_struc cpu)
int FASTCALL Cz80_Get_CycleDone ( cz80_struc cpu)
int FASTCALL Cz80_Get_CycleRemaining ( cz80_struc cpu)
int FASTCALL Cz80_Get_CycleToDo ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_DE ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_DE2 ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_HL ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_HL2 ( cz80_struc cpu)
uint8_t FASTCALL Cz80_Get_I ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_IFF ( cz80_struc cpu)
uint8_t FASTCALL Cz80_Get_IM ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_IX ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_IY ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_PC ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_R ( cz80_struc cpu)
uint16_t FASTCALL Cz80_Get_SP ( cz80_struc cpu)
void Cz80_Init ( cz80_struc cpu)
uint8_t Cz80_Read_Byte ( cz80_struc cpu,
uint16_t  adr 
)
uint16_t Cz80_Read_Word ( cz80_struc cpu,
uint16_t  adr 
)
void FASTCALL Cz80_Release_Cycle ( cz80_struc cpu)
uint8_t Cz80_Reset ( cz80_struc cpu)
void FASTCALL Cz80_Set_AF ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_AF2 ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_BC ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_BC2 ( cz80_struc cpu,
uint16_t  value 
)
void Cz80_Set_Ctx ( cz80_struc cpu,
void *  ctx 
)
void FASTCALL Cz80_Set_DE ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_DE2 ( cz80_struc cpu,
uint16_t  value 
)
void Cz80_Set_Fetch ( cz80_struc cpu,
uint16_t  low_adr,
uint16_t  high_adr,
void *  fetch_adr 
)
void FASTCALL Cz80_Set_HL ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_HL2 ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_I ( cz80_struc cpu,
uint8_t  value 
)
void FASTCALL Cz80_Set_IFF ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_IM ( cz80_struc cpu,
uint8_t  value 
)
void Cz80_Set_INPort ( cz80_struc cpu,
CZ80_READ Func 
)
void FASTCALL Cz80_Set_IRQ ( cz80_struc cpu,
uint8_t  vector 
)
void Cz80_Set_IRQ_Callback ( cz80_struc cpu,
CZ80_INT_CALLBACK Func 
)
void FASTCALL Cz80_Set_IX ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_IY ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_NMI ( cz80_struc cpu)
void Cz80_Set_OUTPort ( cz80_struc cpu,
CZ80_WRITE Func 
)
void FASTCALL Cz80_Set_PC ( cz80_struc cpu,
uint16_t  value 
)
void FASTCALL Cz80_Set_R ( cz80_struc cpu,
uint16_t  value 
)
void Cz80_Set_ReadB ( cz80_struc cpu,
CZ80_READ Func 
)
void Cz80_Set_RETI_Callback ( cz80_struc cpu,
CZ80_RETI_CALLBACK Func 
)
void FASTCALL Cz80_Set_SP ( cz80_struc cpu,
uint16_t  value 
)
void Cz80_Set_WriteB ( cz80_struc cpu,
CZ80_WRITE Func 
)
void Cz80_Write_Byte ( cz80_struc cpu,
uint16_t  adr,
uint8_t  data 
)
void Cz80_Write_Word ( cz80_struc cpu,
uint16_t  adr,
uint16_t  data 
)

Variable Documentation

cz80_struc CZ80