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

📄 cpuemu_01.c

📁 又一个游戏模拟器,著名ARC模拟器源码,包括多个平台
💻 C
📖 第 1 页 / 共 5 页
字号:
	SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);	if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel32; }}}}}m68k_incpc(6);endlabel32: ;return 6;}unsigned long op_fb_0(UINT32 opcode) /* CHK2 */{	(void)(opcode);{	unsigned int oldpc = m68k_getpc();{	INT16 extra = get_iword(2);{m68k_incpc(4);{	unsigned int tmppc = m68k_getpc();	unsigned int dsta = get_disp_ea_020(tmppc, next_iword());	{INT32 upper,lower,reg = regs.regs[(extra >> 12) & 15];	lower=(INT32)(INT8)cpu_readmem24(dsta); upper = (INT32)(INT8)cpu_readmem24(dsta+1);	if ((extra & 0x8000) == 0) reg = (INT32)(INT8)reg;	SET_ZFLG (upper == reg || lower == reg);	SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);	if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc); goto endlabel33; }}}}}}endlabel33: ;return 7;}unsigned long op_100_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT32 src = m68k_dreg(regs, srcreg);{	INT32 dst = m68k_dreg(regs, dstreg);	src &= 31;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}m68k_incpc(2);return 2;}unsigned long op_108_0(UINT32 opcode) /* MVPMR */{	UINT32 srcreg = (opcode & 7);	UINT32 dstreg = (opcode >> 9) & 7;{	unsigned int memp = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	UINT16 val = (cpu_readmem24(memp) << 8) + cpu_readmem24(memp + 2);	m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);}}m68k_incpc(4);return 4;}unsigned long op_110_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}m68k_incpc(2);return 4;}unsigned long op_118_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg);{	INT8 dst = cpu_readmem24(dsta);	m68k_areg(regs, dstreg) += areg_byteinc[dstreg];	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}m68k_incpc(2);return 4;}unsigned long op_120_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];{	INT8 dst = cpu_readmem24(dsta);	m68k_areg (regs, dstreg) = dsta;	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}m68k_incpc(2);return 5;}unsigned long op_128_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg) + (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}m68k_incpc(4);return 6;}unsigned long op_130_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{m68k_incpc(2);{	unsigned int dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}}return 7;}unsigned long op_138_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}m68k_incpc(4);return 6;}unsigned long op_139_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = get_ilong(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}m68k_incpc(6);return 8;}unsigned long op_13a_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_getpc () + 2;	dsta += (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}m68k_incpc(4);return 6;}unsigned long op_13b_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{m68k_incpc(2);{	unsigned int tmppc = m68k_getpc();	unsigned int dsta = get_disp_ea_020(tmppc, next_iword());{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}}}return 7;}unsigned long op_13c_0(UINT32 opcode) /* BTST */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	INT8 dst = get_ibyte(2);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));}}}m68k_incpc(4);return 4;}unsigned long op_140_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT32 src = m68k_dreg(regs, srcreg);{	INT32 dst = m68k_dreg(regs, dstreg);	src &= 31;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	m68k_dreg(regs, dstreg) = (dst);}}}m68k_incpc(2);return 2;}unsigned long op_148_0(UINT32 opcode) /* MVPMR */{	UINT32 srcreg = (opcode & 7);	UINT32 dstreg = (opcode >> 9) & 7;{	unsigned int memp = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	UINT32 val = (cpu_readmem24(memp) << 24) + (cpu_readmem24(memp + 2) << 16)              + (cpu_readmem24(memp + 4) << 8) + cpu_readmem24(memp + 6);	m68k_dreg(regs, dstreg) = (val);}}m68k_incpc(4);return 4;}unsigned long op_150_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(2);return 6;}unsigned long op_158_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg);{	INT8 dst = cpu_readmem24(dsta);	m68k_areg(regs, dstreg) += areg_byteinc[dstreg];	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(2);return 6;}unsigned long op_160_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];{	INT8 dst = cpu_readmem24(dsta);	m68k_areg (regs, dstreg) = dsta;	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(2);return 7;}unsigned long op_168_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg) + (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(4);return 8;}unsigned long op_170_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{m68k_incpc(2);{	unsigned int dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}}return 9;}unsigned long op_178_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(4);return 8;}unsigned long op_179_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = get_ilong(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(6);return 10;}unsigned long op_17a_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_getpc () + 2;	dsta += (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(4);return 8;}unsigned long op_17b_0(UINT32 opcode) /* BCHG */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{m68k_incpc(2);{	unsigned int tmppc = m68k_getpc();	unsigned int dsta = get_disp_ea_020(tmppc, next_iword());{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	dst ^= (1 << src);	SET_ZFLG (((UINT32)dst & (1 << src)) >> src);	cpu_writemem24(dsta,dst);}}}}}return 9;}unsigned long op_180_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT32 src = m68k_dreg(regs, srcreg);{	INT32 dst = m68k_dreg(regs, dstreg);	src &= 31;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	m68k_dreg(regs, dstreg) = (dst);}}}m68k_incpc(2);return 2;}unsigned long op_188_0(UINT32 opcode) /* MVPRM */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT16 src = m68k_dreg(regs, srcreg);	unsigned int memp = m68k_areg(regs, dstreg) + (INT32)(INT16)get_iword(2);	cpu_writemem24(memp, src >> 8); cpu_writemem24(memp + 2, src);}}m68k_incpc(4);return 4;}unsigned long op_190_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(2);return 6;}unsigned long op_198_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg);{	INT8 dst = cpu_readmem24(dsta);	m68k_areg(regs, dstreg) += areg_byteinc[dstreg];	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(2);return 6;}unsigned long op_1a0_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];{	INT8 dst = cpu_readmem24(dsta);	m68k_areg (regs, dstreg) = dsta;	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(2);return 7;}unsigned long op_1a8_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_areg(regs, dstreg) + (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(4);return 8;}unsigned long op_1b0_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);	UINT32 dstreg = opcode & 7;{{	INT8 src = m68k_dreg(regs, srcreg);{m68k_incpc(2);{	unsigned int dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	cpu_writemem24(dsta,dst);}}}}}return 9;}unsigned long op_1b8_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(4);return 8;}unsigned long op_1b9_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = get_ilong(2);{	INT8 dst = cpu_readmem24(dsta);	src &= 7;	SET_ZFLG (1 ^ ((dst >> src) & 1));	dst &= ~(1 << src);	cpu_writemem24(dsta,dst);}}}}m68k_incpc(6);return 10;}unsigned long op_1ba_0(UINT32 opcode) /* BCLR */{	UINT32 srcreg = ((opcode >> 9) & 7);{{	INT8 src = m68k_dreg(regs, srcreg);{	unsigned int dsta = m68k_getpc () + 2;	dsta += (INT32)(INT16)get_iword(2);{	INT8 dst = cpu_readmem24(dsta);

⌨️ 快捷键说明

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