⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 z80stb.h

📁 DGen源码最后版本
💻 H
字号:
/* extra declarations for z80stb.c to make life easier. */#ifndef h_z80stb_h#define h_z80stb_h/* RC hack */#define DWORD           UINT32#define WORD            UINT16#define BYTE            UINT8#define LPBYTE          UINT8*#define ULONG           unsigned long#define BOOL            UINT8/* accessors */#define LOWORD(x)       ( x & 0xFFFF )#define HIWORD(x)       ( x >> 16 )#define LOBYTE(x)       ( x & 0xFF )#define HIBYTE(x)       ( x >> 8 )#define MAKEWORD(lo,hi) ( lo | ( hi << 8 ) )/* execz80.h */#define S_FLAG          0x80#define Z_FLAG          0x40#define H_FLAG          0x10#define V_FLAG          0x04#define N_FLAG          0x02#define C_FLAG          0x01typedef struct {  WORD AF,BC,DE,HL,IX,IY,PC,SP;  WORD AF2,BC2,DE2,HL2;  unsigned IFF1,IFF2,HALT,IM,I,R,R2;} EXECZ80_CONTEXT;// typedef BYTE (*EXECZ80_MEMREAD_PROC)(WORD);// typedef void (*EXECZ80_MEMWRITE_PROC)(WORD, BYTE);// typedef BYTE (*EXECZ80_PORTREAD_PROC)(BYTE);// typedef void (*EXECZ80_PORTWRITE_PROC)(BYTE, BYTE);// #define Z80_END_TABLE     ((EXECZ80_MEMREAD_PROC) 0xFFFFFFFF)// #define Z80_IGNORE_READ   ((EXECZ80_MEMREAD_PROC) 0xFFFFFFFE)// #define Z80_IGNORE_WRITE  ((EXECZ80_MEMWRITE_PROC)0xFFFFFFFE)// #define Z80_ILLEGAL_READ  ((EXECZ80_MEMREAD_PROC) 0xFFFFFFFD)// #define Z80_ILLEGAL_WRITE ((EXECZ80_MEMWRITE_PROC)0xFFFFFFFD)// typedef struct {//   DWORD dwAddrMin;//   DWORD dwAddrMax;//   DWORD dwFlags;//   EXECZ80_MEMREAD_PROC pfnMemRead;//   EXECZ80_MEMWRITE_PROC pfnMemWrite;// } EXECZ80_MEM_DESCRIPTOR;// typedef struct {//   DWORD dwFlags;//   LPBYTE rgbMemory;//   const BYTE *rgbInstructions;//   EXECZ80_MEMREAD_PROC pfnMemRead;//   EXECZ80_MEMWRITE_PROC pfnMemWrite;//   EXECZ80_PORTREAD_PROC pfnPortRead;//   EXECZ80_PORTWRITE_PROC pfnPortWrite;//   const EXECZ80_MEM_DESCRIPTOR *pmd;// } EXECZ80_CREATE;/* execz80i.h */#define ARITH_TABLES/* int Create ( EXECZ80_CREATE &cs, IExecZ80 *&pExec ); *//* int CExecZ80 ( EXECZ80_CREATE &cs ); *//* int ~CExecZ80(); */int Irq(BYTE bVal);int Nmi();int Exec(int cCyclesArg);/* inline */ BYTE ImmedByte();/* inline */ WORD ImmedWord();/* inline */ WORD GetPC();/* inline */ void SetPC(WORD wAddr);/* inline */ void AdjustPC(signed char cb);/* inline */ void Push(WORD wArg);/* inline */ WORD Pop();/* inline */ WORD GetSP();/* inline */ void SetSP(WORD wAddr);	/* inline */ int Jr0(int f);/* inline */ int Jr1(int f);/* inline */ int Call0(int f);/* inline */ int Call1(int f);/* inline */ int Ret0(int f);/* inline */ int Ret1(int f);/* inline */ int Jp0(int f);/* inline */ int Jp1(int f);	/* inline */ void Rst(WORD wAddr);/* inline */ WORD MemReadWord(WORD wAddr);/* inline */ BYTE MemReadByte(WORD wAddr);/* inline */ void MemWriteByte(WORD wAddr, BYTE bVal);/* inline */ void MemWriteWord(WORD wAddr, WORD wVal);WORD CallbackMemReadWord(WORD wAddr);BYTE CallbackMemReadByte(WORD wAddr);void CallbackMemWriteByte(WORD wAddr, BYTE bVal);void CallbackMemWriteWord(WORD wAddr, WORD wVal);	/* inline */ void Add_1(BYTE b);/* inline */ void Adc_1(BYTE b);/* inline */ void Sub(BYTE b);/* inline */ void Sbc_1(BYTE b);/* inline */ void And(BYTE b);/* inline */ void Or(BYTE b);/* inline */ void Xor(BYTE b);/* inline */ void Cp(BYTE b);/* inline */ BYTE Set(BYTE b,int);/* inline */ BYTE Res(BYTE b,int);/* inline */ void Bit(BYTE b,int);/* inline */ void Rlca();/* inline */ void Rrca();/* inline */ void Rla();/* inline */ void Rra();/* inline */ BYTE Rlc(BYTE b);/* inline */ BYTE Rrc(BYTE b);/* inline */ BYTE Rl(BYTE b);/* inline */ BYTE Rr(BYTE b);/* inline */ BYTE Sll(BYTE b);/* inline */ BYTE Srl(BYTE b);/* inline */ BYTE Sla(BYTE b);/* inline */ BYTE Sra(BYTE b);/* inline */ BYTE Inc(BYTE b);/* inline */ BYTE Dec(BYTE b);/* inline */ WORD Add_2(WORD wArg1, WORD wArg2);/* inline */ WORD Adc_2(WORD wArg1, WORD wArg2);/* inline */ WORD Sbc_2(WORD wArg1, WORD wArg2);int Ei();void Di();int HandleCB();int HandleDD();int HandleED(int cCycles);int HandleFD();int HandleDDCB();int HandleFDCB();void Out(BYTE bPort, BYTE bVal);BYTE In(BYTE bPort);void Exx();/* inline */ WORD IndirectIX();/* inline */ WORD IndirectIY();void Dump();extern BYTE ZSTable[256];extern BYTE ZSPTable[256];extern short DAATable[2048];extern BYTE rgfAdd[256][256];extern BYTE rgfAddc[256][256][2];extern BYTE rgfSub[256][256];extern BYTE rgfSubc[256][256][2];extern BYTE rgfInc[256];extern BYTE rgfDec[256];extern BYTE rgfBit[256][8];#define ISF_PENDING   0x00000008#define ISF_MODE_MASK 0x00000003#define ISF_HALT      0x00000004#define ISF_IFF1      0x00000010#define ISF_IFF2      0x00000020#define ISF_IREG_MASK 0x00000F00#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -