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

📄 m68k.h

📁 又一个游戏模拟器,著名ARC模拟器源码,包括多个平台
💻 H
字号:
 /*   * UAE - The Un*x Amiga Emulator  *   * MC68000 emulation - machine dependent bits  *  * Copyright 1996 Bernd Schmidt  */#ifndef _M46K_H_#define _M46K_H_struct flag_struct {    unsigned int cznv;    unsigned int x;};#define FLAGVAL_Z 0x40#define FLAGVAL_N 0x80#define SET_ZFLG(y) (regflags.cznv = (regflags.cznv & ~0x40) | (((y) & 1) << 6))#define SET_CFLG(y) (regflags.cznv = (regflags.cznv & ~1) | ((y) & 1))#define SET_VFLG(y) (regflags.cznv = (regflags.cznv & ~0x800) | (((y) & 1) << 11))#define SET_NFLG(y) (regflags.cznv = (regflags.cznv & ~0x80) | (((y) & 1) << 7))#define SET_XFLG(y) (regflags.x = (y))#define GET_ZFLG ((regflags.cznv >> 6) & 1)#define GET_CFLG (regflags.cznv & 1)#define GET_VFLG ((regflags.cznv >> 11) & 1)#define GET_NFLG ((regflags.cznv >> 7) & 1)#define GET_XFLG (regflags.x & 1)#define CLEAR_CZNV (regflags.cznv = 0)#define GET_CZNV (regflags.cznv)#define IOR_CZNV(X) (regflags.cznv |= (X))#define SET_CZNV(X) (regflags.cznv = (X))#define COPY_CARRY (regflags.x = regflags.cznv)extern struct flag_struct regflags;static DEF_INLINE int cctrue(int cc){    UINT32 cznv = regflags.cznv;    switch(cc){     case 0: return 1;                       /* T */     case 1: return 0;                       /* F */     case 2: return (cznv & 0x41) == 0; /* !GET_CFLG && !GET_ZFLG;  HI */     case 3: return (cznv & 0x41) != 0; /* GET_CFLG || GET_ZFLG;    LS */     case 4: return (cznv & 1) == 0;        /* !GET_CFLG;               CC */     case 5: return (cznv & 1) != 0;           /* GET_CFLG;                CS */     case 6: return (cznv & 0x40) == 0; /* !GET_ZFLG;               NE */     case 7: return (cznv & 0x40) != 0; /* GET_ZFLG;                EQ */     case 8: return (cznv & 0x800) == 0;/* !GET_VFLG;               VC */     case 9: return (cznv & 0x800) != 0;/* GET_VFLG;                VS */     case 10:return (cznv & 0x80) == 0; /* !GET_NFLG;               PL */     case 11:return (cznv & 0x80) != 0; /* GET_NFLG;                MI */     case 12:return (((cznv << 4) ^ cznv) & 0x800) == 0; /* GET_NFLG == GET_VFLG;             GE */     case 13:return (((cznv << 4) ^ cznv) & 0x800) != 0;/* GET_NFLG != GET_VFLG;             LT */     case 14:	cznv &= 0x8c0;	return (((cznv << 4) ^ cznv) & 0x840) == 0; /* !GET_ZFLG && (GET_NFLG == GET_VFLG);  GT */     case 15:	cznv &= 0x8c0;	return (((cznv << 4) ^ cznv) & 0x840) != 0; /* GET_ZFLG || (GET_NFLG != GET_VFLG);   LE */    }    abort();    return 0;}#endif

⌨️ 快捷键说明

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