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

📄 cpu4.c

📁 树大根深三棱尽所标杆ssfsfsa fdsafs
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "sysdeps.h"#include "shared.h"#include "memory.h"#include "custom.h"#include "newcpu.h"#include "cputbl.h"void op_4000(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	BYTE src = (Shptr->regs).d[srcreg];{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	(Shptr->regs).d[srcreg] &= ~0xff; (Shptr->regs).d[srcreg] |= (dst) & 0xff;}}}}}}void op_4010(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	BYTE src = get_byte(srca);{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	put_byte(srca,dst);}}}}}}void op_4018(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	BYTE src = get_byte(srca);{	(Shptr->regs).a[srcreg] += areg_byteinc[srcreg];{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	put_byte(srca,dst);}}}}}}}void op_4020(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	(Shptr->regs).a[srcreg] -= areg_byteinc[srcreg];{	CPTR srca = (Shptr->regs).a[srcreg];	BYTE src = get_byte(srca);{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	put_byte(srca,dst);}}}}}}}void op_4028(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword();	BYTE src = get_byte(srca);{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	put_byte(srca,dst);}}}}}}void op_4030(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	srca = get_disp_ea (srca, nextiword());{	BYTE src = get_byte(srca);{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	put_byte(srca,dst);}}}}}}}void op_4038(ULONG opcode){{{	CPTR srca = (LONG)(WORD)nextiword();	BYTE src = get_byte(srca);{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	put_byte(srca,dst);}}}}}}void op_4039(ULONG opcode){{{	CPTR srca = nextilong();	BYTE src = get_byte(srca);{	src += (Shptr->regs).x;{ULONG dst = ((BYTE)(0)) - ((BYTE)(src));{	int flgs = ((BYTE)(src)) < 0;	int flgo = ((BYTE)(0)) < 0;	int flgn = ((BYTE)(dst)) < 0;	ZFLG = ((BYTE)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(0));	NFLG = flgn != 0;	put_byte(srca,dst);}}}}}}void op_4040(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	WORD src = (Shptr->regs).d[srcreg];{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	(Shptr->regs).d[srcreg] &= ~0xffff; (Shptr->regs).d[srcreg] |= (dst) & 0xffff;}}}}}}void op_4050(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	WORD src = get_word(srca);{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	put_word(srca,dst);}}}}}}void op_4058(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	WORD src = get_word(srca);{	(Shptr->regs).a[srcreg] += 2;{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	put_word(srca,dst);}}}}}}}void op_4060(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	(Shptr->regs).a[srcreg] -= 2;{	CPTR srca = (Shptr->regs).a[srcreg];	WORD src = get_word(srca);{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	put_word(srca,dst);}}}}}}}void op_4068(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword();	WORD src = get_word(srca);{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	put_word(srca,dst);}}}}}}void op_4070(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	srca = get_disp_ea (srca, nextiword());{	WORD src = get_word(srca);{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	put_word(srca,dst);}}}}}}}void op_4078(ULONG opcode){{{	CPTR srca = (LONG)(WORD)nextiword();	WORD src = get_word(srca);{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	put_word(srca,dst);}}}}}}void op_4079(ULONG opcode){{{	CPTR srca = nextilong();	WORD src = get_word(srca);{	src += (Shptr->regs).x;{ULONG dst = ((WORD)(0)) - ((WORD)(src));{	int flgs = ((WORD)(src)) < 0;	int flgo = ((WORD)(0)) < 0;	int flgn = ((WORD)(dst)) < 0;	ZFLG = ((WORD)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(0));	NFLG = flgn != 0;	put_word(srca,dst);}}}}}}void op_4080(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	LONG src = (Shptr->regs).d[srcreg];{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	(Shptr->regs).d[srcreg] = (dst);}}}}}}void op_4090(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	LONG src = get_long(srca);{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	put_long(srca,dst);}}}}}}void op_4098(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	LONG src = get_long(srca);{	(Shptr->regs).a[srcreg] += 4;{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	put_long(srca,dst);}}}}}}}void op_40a0(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	(Shptr->regs).a[srcreg] -= 4;{	CPTR srca = (Shptr->regs).a[srcreg];	LONG src = get_long(srca);{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	put_long(srca,dst);}}}}}}}void op_40a8(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword();	LONG src = get_long(srca);{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	put_long(srca,dst);}}}}}}void op_40b0(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	srca = get_disp_ea (srca, nextiword());{	LONG src = get_long(srca);{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	put_long(srca,dst);}}}}}}}void op_40b8(ULONG opcode){{{	CPTR srca = (LONG)(WORD)nextiword();	LONG src = get_long(srca);{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	put_long(srca,dst);}}}}}}void op_40b9(ULONG opcode){{{	CPTR srca = nextilong();	LONG src = get_long(srca);{	src += (Shptr->regs).x;{ULONG dst = ((LONG)(0)) - ((LONG)(src));{	int flgs = ((LONG)(src)) < 0;	int flgo = ((LONG)(0)) < 0;	int flgn = ((LONG)(dst)) < 0;	ZFLG = ((LONG)(dst)) == 0;	VFLG = (flgs != flgo) && (flgn != flgo);	CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(0));	NFLG = flgn != 0;	put_long(srca,dst);}}}}}}void op_40c0(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	MakeSR();	(Shptr->regs).d[srcreg] &= ~0xffff; (Shptr->regs).d[srcreg] |= ((Shptr->regs).sr) & 0xffff;}}}void op_40d0(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	MakeSR();	put_word(srca,(Shptr->regs).sr);}}}void op_40d8(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];{	(Shptr->regs).a[srcreg] += 2;	MakeSR();	put_word(srca,(Shptr->regs).sr);}}}}void op_40e0(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	(Shptr->regs).a[srcreg] -= 2;{	CPTR srca = (Shptr->regs).a[srcreg];	MakeSR();	put_word(srca,(Shptr->regs).sr);}}}}void op_40e8(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword();	MakeSR();	put_word(srca,(Shptr->regs).sr);}}}void op_40f0(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{	CPTR srca = (Shptr->regs).a[srcreg];	srca = get_disp_ea (srca, nextiword());	MakeSR();	put_word(srca,(Shptr->regs).sr);}}}void op_40f8(ULONG opcode){{{	CPTR srca = (LONG)(WORD)nextiword();	MakeSR();	put_word(srca,(Shptr->regs).sr);}}}void op_40f9(ULONG opcode){{{	CPTR srca = nextilong();	MakeSR();	put_word(srca,(Shptr->regs).sr);}}}void op_4180(ULONG opcode){	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);	ULONG dstreg = (opcode & 3584) >> 9;

⌨️ 快捷键说明

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