Annotation of generator/cmz80/z80stb.h, revision 1.1.1.1

1.1       root        1: 
                      2: /* extra declarations for z80stb.c to make life easier.
                      3:  */
                      4: 
                      5: #ifndef h_z80stb_h
                      6: #define h_z80stb_h
                      7: 
                      8: /* RC hack */
                      9: #define DWORD           UINT32
                     10: #define WORD            UINT16
                     11: #define BYTE            UINT8
                     12: #define LPBYTE          UINT8*
                     13: #define ULONG           unsigned long
                     14: #define BOOL            UINT8
                     15: 
                     16: /* accessors */
                     17: #define LOWORD(x)       ( x & 0xFFFF )
                     18: #define HIWORD(x)       ( x >> 16 )
                     19: #define LOBYTE(x)       ( x & 0xFF )
                     20: #define HIBYTE(x)       ( x >> 8 )
                     21: #define MAKEWORD(lo,hi) ( lo | ( hi << 8 ) )
                     22: 
                     23: /* execz80.h */
                     24: #define S_FLAG          0x80
                     25: #define Z_FLAG          0x40
                     26: #define H_FLAG          0x10
                     27: #define V_FLAG          0x04
                     28: #define N_FLAG          0x02
                     29: #define C_FLAG          0x01
                     30: 
                     31: typedef struct {
                     32:   WORD AF,BC,DE,HL,IX,IY,PC,SP;
                     33:   WORD AF2,BC2,DE2,HL2;
                     34:   unsigned IFF1,IFF2,HALT,IM,I,R,R2;
                     35: } EXECZ80_CONTEXT;
                     36: 
                     37: // typedef BYTE (*EXECZ80_MEMREAD_PROC)(WORD);
                     38: // typedef void (*EXECZ80_MEMWRITE_PROC)(WORD, BYTE);
                     39: // typedef BYTE (*EXECZ80_PORTREAD_PROC)(BYTE);
                     40: // typedef void (*EXECZ80_PORTWRITE_PROC)(BYTE, BYTE);
                     41: 
                     42: // #define Z80_END_TABLE     ((EXECZ80_MEMREAD_PROC) 0xFFFFFFFF)
                     43: // #define Z80_IGNORE_READ   ((EXECZ80_MEMREAD_PROC) 0xFFFFFFFE)
                     44: // #define Z80_IGNORE_WRITE  ((EXECZ80_MEMWRITE_PROC)0xFFFFFFFE)
                     45: // #define Z80_ILLEGAL_READ  ((EXECZ80_MEMREAD_PROC) 0xFFFFFFFD)
                     46: // #define Z80_ILLEGAL_WRITE ((EXECZ80_MEMWRITE_PROC)0xFFFFFFFD)
                     47: 
                     48: // typedef struct {
                     49: //   DWORD dwAddrMin;
                     50: //   DWORD dwAddrMax;
                     51: //   DWORD dwFlags;
                     52: //   EXECZ80_MEMREAD_PROC pfnMemRead;
                     53: //   EXECZ80_MEMWRITE_PROC pfnMemWrite;
                     54: // } EXECZ80_MEM_DESCRIPTOR;
                     55: 
                     56: // typedef struct {
                     57: //   DWORD dwFlags;
                     58: //   LPBYTE rgbMemory;
                     59: //   const BYTE *rgbInstructions;
                     60: //   EXECZ80_MEMREAD_PROC pfnMemRead;
                     61: //   EXECZ80_MEMWRITE_PROC pfnMemWrite;
                     62: //   EXECZ80_PORTREAD_PROC pfnPortRead;
                     63: //   EXECZ80_PORTWRITE_PROC pfnPortWrite;
                     64: //   const EXECZ80_MEM_DESCRIPTOR *pmd;
                     65: // } EXECZ80_CREATE;
                     66: 
                     67: /* execz80i.h */
                     68: #define ARITH_TABLES
                     69: 
                     70: /* int Create ( EXECZ80_CREATE &cs, IExecZ80 *&pExec ); */
                     71: /* int CExecZ80 ( EXECZ80_CREATE &cs ); */
                     72: /* int ~CExecZ80(); */
                     73: 
                     74: int Irq(BYTE bVal);
                     75: int Nmi(void);
                     76: int Exec(int cCyclesArg);
                     77: 
                     78: /* inline */ BYTE ImmedByte(void);
                     79: /* inline */ WORD ImmedWord(void);
                     80: /* inline */ WORD GetPC(void);
                     81: /* inline */ void SetPC(WORD wAddr);
                     82: /* inline */ void AdjustPC(signed char cb);
                     83: 
                     84: /* inline */ void Push(WORD wArg);
                     85: /* inline */ WORD Pop(void);
                     86: /* inline */ WORD GetSP(void);
                     87: /* inline */ void SetSP(WORD wAddr);
                     88:        
                     89: /* inline */ int Jr0(int f);
                     90: /* inline */ int Jr1(int f);
                     91: /* inline */ int Call0(int f);
                     92: /* inline */ int Call1(int f);
                     93: /* inline */ int Ret0(int f);
                     94: /* inline */ int Ret1(int f);
                     95: /* inline */ int Jp0(int f);
                     96: /* inline */ int Jp1(int f);
                     97:        
                     98: /* inline */ void Rst(WORD wAddr);
                     99: /* inline */ WORD MemReadWord(WORD wAddr);
                    100: /* inline */ BYTE MemReadByte(WORD wAddr);
                    101: /* inline */ void MemWriteByte(WORD wAddr, BYTE bVal);
                    102: /* inline */ void MemWriteWord(WORD wAddr, WORD wVal);
                    103: WORD CallbackMemReadWord(WORD wAddr);
                    104: BYTE CallbackMemReadByte(WORD wAddr);
                    105: void CallbackMemWriteByte(WORD wAddr, BYTE bVal);
                    106: void CallbackMemWriteWord(WORD wAddr, WORD wVal);
                    107:        
                    108: /* inline */ void Add_1(BYTE b);
                    109: /* inline */ void Adc_1(BYTE b);
                    110: /* inline */ void Sub(BYTE b);
                    111: /* inline */ void Sbc_1(BYTE b);
                    112: /* inline */ void And(BYTE b);
                    113: /* inline */ void Or(BYTE b);
                    114: /* inline */ void Xor(BYTE b);
                    115: /* inline */ void Cp(BYTE b);
                    116: /* inline */ BYTE Set(BYTE b,int);
                    117: /* inline */ BYTE Res(BYTE b,int);
                    118: /* inline */ void Bit(BYTE b,int);
                    119: /* inline */ void Rlca(void);
                    120: /* inline */ void Rrca(void);
                    121: /* inline */ void Rla(void);
                    122: /* inline */ void Rra(void);
                    123: /* inline */ BYTE Rlc(BYTE b);
                    124: /* inline */ BYTE Rrc(BYTE b);
                    125: /* inline */ BYTE Rl(BYTE b);
                    126: /* inline */ BYTE Rr(BYTE b);
                    127: /* inline */ BYTE Sll(BYTE b);
                    128: /* inline */ BYTE Srl(BYTE b);
                    129: /* inline */ BYTE Sla(BYTE b);
                    130: /* inline */ BYTE Sra(BYTE b);
                    131: /* inline */ BYTE Inc(BYTE b);
                    132: /* inline */ BYTE Dec(BYTE b);
                    133: 
                    134: /* inline */ WORD Add_2(WORD wArg1, WORD wArg2);
                    135: /* inline */ WORD Adc_2(WORD wArg1, WORD wArg2);
                    136: /* inline */ WORD Sbc_2(WORD wArg1, WORD wArg2);
                    137: 
                    138: int Ei(void);
                    139: void Di(void);
                    140: 
                    141: int HandleCB(void);
                    142: int HandleDD(void);
                    143: int HandleED(int cCycles);
                    144: int HandleFD(void);
                    145: int HandleDDCB(void);
                    146: int HandleFDCB(void);
                    147: 
                    148: void Out(BYTE bPort, BYTE bVal);
                    149: BYTE In(BYTE bPort);
                    150: 
                    151: void Exx(void);
                    152: 
                    153: /* inline */ WORD IndirectIX(void);
                    154: /* inline */ WORD IndirectIY(void);
                    155: 
                    156: void Dump(void);
                    157: 
                    158: extern BYTE ZSTable[256];
                    159: extern BYTE ZSPTable[256];
                    160: extern short DAATable[2048];
                    161: extern BYTE rgfAdd[256][256];
                    162: extern BYTE rgfAddc[256][256][2];
                    163: extern BYTE rgfSub[256][256];
                    164: extern BYTE rgfSubc[256][256][2];
                    165: extern BYTE rgfInc[256];
                    166: extern BYTE rgfDec[256];
                    167: extern BYTE rgfBit[256][8];
                    168: 
                    169: #define ISF_PENDING   0x00000008
                    170: #define ISF_MODE_MASK 0x00000003
                    171: #define ISF_HALT      0x00000004
                    172: #define ISF_IFF1      0x00000010
                    173: #define ISF_IFF2      0x00000020
                    174: #define ISF_IREG_MASK 0x00000F00
                    175: 
                    176: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.