?? cpu9.c
字號:
#include "sysdeps.h"#include "shared.h"#include "memory.h"#include "custom.h"#include "newcpu.h"#include "cputbl.h"void op_9000(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ BYTE src = (Shptr->regs).d[srcreg];{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}void op_9010(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg]; BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}void op_9018(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg]; BYTE src = get_byte(srca);{ (Shptr->regs).a[srcreg] += areg_byteinc[srcreg];{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}}void op_9020(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ (Shptr->regs).a[srcreg] -= areg_byteinc[srcreg];{ CPTR srca = (Shptr->regs).a[srcreg]; BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}}void op_9028(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}void op_9030(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg]; srca = get_disp_ea (srca, nextiword());{ BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}}void op_9038(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (LONG)(WORD)nextiword(); BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}void op_9039(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = nextilong(); BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}void op_903a(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = MC68000_getpc(); srca += (LONG)(WORD)nextiword();{ BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}}void op_903b(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = MC68000_getpc(); srca = get_disp_ea (srca, nextiword());{ BYTE src = get_byte(srca);{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}}void op_903c(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ BYTE src = nextiword();{ BYTE dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((BYTE)(dst)) - ((BYTE)(src));{ int flgs = ((BYTE)(src)) < 0; int flgo = ((BYTE)(dst)) < 0; int flgn = ((BYTE)(newv)) < 0; ZFLG = ((BYTE)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UBYTE)(src)) > ((UBYTE)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (newv) & 0xff;}}}}}}}void op_9040(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ WORD src = (Shptr->regs).d[srcreg];{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}void op_9048(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ WORD src = (Shptr->regs).a[srcreg];{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}void op_9050(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}void op_9058(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca);{ (Shptr->regs).a[srcreg] += 2;{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}}void op_9060(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ (Shptr->regs).a[srcreg] -= 2;{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}}void op_9068(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}void op_9070(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg]; srca = get_disp_ea (srca, nextiword());{ WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}}void op_9078(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (LONG)(WORD)nextiword(); WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}void op_9079(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = nextilong(); WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}void op_907a(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = MC68000_getpc(); srca += (LONG)(WORD)nextiword();{ WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}}void op_907b(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = MC68000_getpc(); srca = get_disp_ea (srca, nextiword());{ WORD src = get_word(srca);{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}}void op_907c(ULONG opcode){ ULONG dstreg = (opcode & 3584) >> 9;{{ WORD src = nextiword();{ WORD dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((WORD)(dst)) - ((WORD)(src));{ int flgs = ((WORD)(src)) < 0; int flgo = ((WORD)(dst)) < 0; int flgn = ((WORD)(newv)) < 0; ZFLG = ((WORD)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((UWORD)(src)) > ((UWORD)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (newv) & 0xffff;}}}}}}}void op_9080(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ LONG src = (Shptr->regs).d[srcreg];{ LONG dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((LONG)(dst)) - ((LONG)(src));{ int flgs = ((LONG)(src)) < 0; int flgo = ((LONG)(dst)) < 0; int flgn = ((LONG)(newv)) < 0; ZFLG = ((LONG)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] = (newv);}}}}}}}void op_9088(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ LONG src = (Shptr->regs).a[srcreg];{ LONG dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((LONG)(dst)) - ((LONG)(src));{ int flgs = ((LONG)(src)) < 0; int flgo = ((LONG)(dst)) < 0; int flgn = ((LONG)(newv)) < 0; ZFLG = ((LONG)(newv)) == 0; VFLG = (flgs != flgo) && (flgn != flgo); CFLG = (Shptr->regs).x = ((ULONG)(src)) > ((ULONG)(dst)); NFLG = flgn != 0; (Shptr->regs).d[dstreg] = (newv);}}}}}}}void op_9090(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{{ CPTR srca = (Shptr->regs).a[srcreg]; LONG src = get_long(srca);{ LONG dst = (Shptr->regs).d[dstreg];{{ULONG newv = ((LONG)(dst)) - ((LONG)(src));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -