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

📄 cpuemu_03.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "raine.h"#include "newmem.h"#include "readcpu.h"#include "newcpu.h"#include "cputbl.h"#pragma warning( disable : 4702 4100 )unsigned long op_e2d8_0(UINT32 opcode) /* LSRW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg(regs, srcreg) += 2;{	UINT32 val = (UINT16)data;	UINT32 carry = val & 1;	val >>= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e2e0_0(UINT32 opcode) /* LSRW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) - 2;{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg (regs, srcreg) = dataa;{	UINT32 val = (UINT16)data;	UINT32 carry = val & 1;	val >>= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 7;}unsigned long op_e2e8_0(UINT32 opcode) /* LSRW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT32 val = (UINT16)data;	UINT32 carry = val & 1;	val >>= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e2f0_0(UINT32 opcode) /* LSRW */{	UINT32 srcreg = (opcode & 7);{{m68k_incpc(2);{	unsigned int dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());{	INT16 data = cpu_readmem24_word(dataa);{	UINT32 val = (UINT16)data;	UINT32 carry = val & 1;	val >>= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}}return 9;}unsigned long op_e2f8_0(UINT32 opcode) /* LSRW */{{{	unsigned int dataa = (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT32 val = (UINT16)data;	UINT32 carry = val & 1;	val >>= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e2f9_0(UINT32 opcode) /* LSRW */{{{	unsigned int dataa = get_ilong(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT32 val = (UINT16)data;	UINT32 carry = val & 1;	val >>= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(6);return 10;}unsigned long op_e3d0_0(UINT32 opcode) /* LSLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e3d8_0(UINT32 opcode) /* LSLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg(regs, srcreg) += 2;{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e3e0_0(UINT32 opcode) /* LSLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) - 2;{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg (regs, srcreg) = dataa;{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 7;}unsigned long op_e3e8_0(UINT32 opcode) /* LSLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e3f0_0(UINT32 opcode) /* LSLW */{	UINT32 srcreg = (opcode & 7);{{m68k_incpc(2);{	unsigned int dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}}return 9;}unsigned long op_e3f8_0(UINT32 opcode) /* LSLW */{{{	unsigned int dataa = (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e3f9_0(UINT32 opcode) /* LSLW */{{{	unsigned int dataa = get_ilong(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(6);return 10;}unsigned long op_e4d0_0(UINT32 opcode) /* ROXRW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (GET_XFLG) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e4d8_0(UINT32 opcode) /* ROXRW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg(regs, srcreg) += 2;{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (GET_XFLG) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e4e0_0(UINT32 opcode) /* ROXRW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) - 2;{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg (regs, srcreg) = dataa;{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (GET_XFLG) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 7;}unsigned long op_e4e8_0(UINT32 opcode) /* ROXRW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (GET_XFLG) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e4f0_0(UINT32 opcode) /* ROXRW */{	UINT32 srcreg = (opcode & 7);{{m68k_incpc(2);{	unsigned int dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (GET_XFLG) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}}return 9;}unsigned long op_e4f8_0(UINT32 opcode) /* ROXRW */{{{	unsigned int dataa = (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (GET_XFLG) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e4f9_0(UINT32 opcode) /* ROXRW */{{{	unsigned int dataa = get_ilong(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (GET_XFLG) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(6);return 10;}unsigned long op_e5d0_0(UINT32 opcode) /* ROXLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;

⌨️ 快捷键说明

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