Annotation of generator/cmz80/z80stb.h, revision 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.