?? cpu4.c
字號:
#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;{ 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 + -