📄 cpuemu_02.c
字号:
}}m68k_incpc(4);return 8;}unsigned long op_5070_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{m68k_incpc(2);{ unsigned int dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());{ INT16 dst = cpu_readmem24_word(dsta);{{UINT32 newv = ((INT16)(dst)) + ((INT16)(src));{ int flgs = ((INT16)(src)) < 0; int flgo = ((INT16)(dst)) < 0; int flgn = ((INT16)(newv)) < 0; SET_ZFLG (((INT16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT16)(~dst)) < ((UINT16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_word(dsta,newv);}}}}}}}}return 9;}unsigned long op_5078_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)];{{ UINT32 src = srcreg;{ unsigned int dsta = (INT32)(INT16)get_iword(2);{ INT16 dst = cpu_readmem24_word(dsta);{{UINT32 newv = ((INT16)(dst)) + ((INT16)(src));{ int flgs = ((INT16)(src)) < 0; int flgo = ((INT16)(dst)) < 0; int flgn = ((INT16)(newv)) < 0; SET_ZFLG (((INT16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT16)(~dst)) < ((UINT16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_word(dsta,newv);}}}}}}}m68k_incpc(4);return 8;}unsigned long op_5079_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)];{{ UINT32 src = srcreg;{ unsigned int dsta = get_ilong(2);{ INT16 dst = cpu_readmem24_word(dsta);{{UINT32 newv = ((INT16)(dst)) + ((INT16)(src));{ int flgs = ((INT16)(src)) < 0; int flgo = ((INT16)(dst)) < 0; int flgn = ((INT16)(newv)) < 0; SET_ZFLG (((INT16)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT16)(~dst)) < ((UINT16)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_word(dsta,newv);}}}}}}}m68k_incpc(6);return 10;}unsigned long op_5080_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ INT32 dst = m68k_dreg(regs, dstreg);{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (newv);}}}}}}m68k_incpc(2);return 2;}unsigned long op_5088_0(UINT32 opcode) /* ADDA */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ INT32 dst = m68k_areg(regs, dstreg);{ UINT32 newv = dst + src; m68k_areg(regs, dstreg) = (newv);}}}}m68k_incpc(2);return 2;}unsigned long op_5090_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ unsigned int dsta = m68k_areg(regs, dstreg);{ INT32 dst = cpu_readmem24_dword(dsta);{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_dword(dsta,newv);}}}}}}}m68k_incpc(2);return 10;}unsigned long op_5098_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ unsigned int dsta = m68k_areg(regs, dstreg);{ INT32 dst = cpu_readmem24_dword(dsta); m68k_areg(regs, dstreg) += 4;{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_dword(dsta,newv);}}}}}}}m68k_incpc(2);return 10;}unsigned long op_50a0_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ unsigned int dsta = m68k_areg(regs, dstreg) - 4;{ INT32 dst = cpu_readmem24_dword(dsta); m68k_areg (regs, dstreg) = dsta;{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_dword(dsta,newv);}}}}}}}m68k_incpc(2);return 11;}unsigned long op_50a8_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ unsigned int dsta = m68k_areg(regs, dstreg) + (INT32)(INT16)get_iword(2);{ INT32 dst = cpu_readmem24_dword(dsta);{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_dword(dsta,newv);}}}}}}}m68k_incpc(4);return 12;}unsigned long op_50b0_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{m68k_incpc(2);{ unsigned int dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());{ INT32 dst = cpu_readmem24_dword(dsta);{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_dword(dsta,newv);}}}}}}}}return 13;}unsigned long op_50b8_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)];{{ UINT32 src = srcreg;{ unsigned int dsta = (INT32)(INT16)get_iword(2);{ INT32 dst = cpu_readmem24_dword(dsta);{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_dword(dsta,newv);}}}}}}}m68k_incpc(4);return 12;}unsigned long op_50b9_0(UINT32 opcode) /* ADD */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)];{{ UINT32 src = srcreg;{ unsigned int dsta = get_ilong(2);{ INT32 dst = cpu_readmem24_dword(dsta);{{UINT32 newv = ((INT32)(dst)) + ((INT32)(src));{ int flgs = ((INT32)(src)) < 0; int flgo = ((INT32)(dst)) < 0; int flgn = ((INT32)(newv)) < 0; SET_ZFLG (((INT32)(newv)) == 0); SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn)); SET_CFLG (((UINT32)(~dst)) < ((UINT32)(src))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24_dword(dsta,newv);}}}}}}}m68k_incpc(6);return 14;}unsigned long op_50c0_0(UINT32 opcode) /* Scc */{ UINT32 srcreg = (opcode & 7);{{{ int val = cctrue(0) ? 0xff : 0; m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);}}}m68k_incpc(2);return 2;}unsigned long op_50c8_0(UINT32 opcode) /* DBcc */{ UINT32 srcreg = (opcode & 7);{{ INT16 src = m68k_dreg(regs, srcreg);{ INT16 offs = get_iword(2); if (!cctrue(0)) { m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff); if (src) { m68k_incpc((INT32)offs + 2); return 6; } }}}}m68k_incpc(4);return 6;}unsigned long op_50d0_0(UINT32 opcode) /* Scc */{ UINT32 srcreg = (opcode & 7);{{ unsigned int srca = m68k_areg(regs, srcreg);{ int val = cctrue(0) ? 0xff : 0; cpu_writemem24(srca,val);}}}m68k_incpc(2);return 4;}unsigned long op_50d8_0(UINT32 opcode) /* Scc */{ UINT32 srcreg = (opcode & 7);{{ unsigned int srca = m68k_areg(regs, srcreg); m68k_areg(regs, srcreg) += areg_byteinc[srcreg];{ int val = cctrue(0) ? 0xff : 0; cpu_writemem24(srca,val);}}}m68k_incpc(2);return 4;}unsigned long op_50e0_0(UINT32 opcode) /* Scc */{ UINT32 srcreg = (opcode & 7);{{ unsigned int srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg]; m68k_areg (regs, srcreg) = srca;{ int val = cctrue(0) ? 0xff : 0; cpu_writemem24(srca,val);}}}m68k_incpc(2);return 5;}unsigned long op_50e8_0(UINT32 opcode) /* Scc */{ UINT32 srcreg = (opcode & 7);{{ unsigned int srca = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{ int val = cctrue(0) ? 0xff : 0; cpu_writemem24(srca,val);}}}m68k_incpc(4);return 6;}unsigned long op_50f0_0(UINT32 opcode) /* Scc */{ UINT32 srcreg = (opcode & 7);{{m68k_incpc(2);{ unsigned int srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());{ int val = cctrue(0) ? 0xff : 0; cpu_writemem24(srca,val);}}}}return 7;}unsigned long op_50f8_0(UINT32 opcode) /* Scc */{ (void)(opcode);{{ unsigned int srca = (INT32)(INT16)get_iword(2);{ int val = cctrue(0) ? 0xff : 0; cpu_writemem24(srca,val);}}}m68k_incpc(4);return 6;}unsigned long op_50f9_0(UINT32 opcode) /* Scc */{ (void)(opcode);{{ unsigned int srca = get_ilong(2);{ int val = cctrue(0) ? 0xff : 0; cpu_writemem24(srca,val);}}}m68k_incpc(6);return 8;}unsigned long op_50fa_0(UINT32 opcode) /* TRAPcc */{ (void)(opcode);{{ if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel962; }}}m68k_incpc(4);endlabel962: ;return 4;}unsigned long op_50fb_0(UINT32 opcode) /* TRAPcc */{ (void)(opcode);{{ if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel963; }}}m68k_incpc(6);endlabel963: ;return 6;}unsigned long op_50fc_0(UINT32 opcode) /* TRAPcc */{ (void)(opcode);{ if (cctrue(0)) { Exception(7,m68k_getpc()); goto endlabel964; }}m68k_incpc(2);endlabel964: ;return 2;}unsigned long op_5100_0(UINT32 opcode) /* SUB */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ INT8 dst = m68k_dreg(regs, dstreg);{{UINT32 newv = ((INT8)(dst)) - ((INT8)(src));{ int flgs = ((INT8)(src)) < 0; int flgo = ((INT8)(dst)) < 0; int flgn = ((INT8)(newv)) < 0; SET_ZFLG (((INT8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((UINT8)(src)) > ((UINT8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);}}}}}}m68k_incpc(2);return 2;}unsigned long op_5110_0(UINT32 opcode) /* SUB */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ unsigned int dsta = m68k_areg(regs, dstreg);{ INT8 dst = cpu_readmem24(dsta);{{UINT32 newv = ((INT8)(dst)) - ((INT8)(src));{ int flgs = ((INT8)(src)) < 0; int flgo = ((INT8)(dst)) < 0; int flgn = ((INT8)(newv)) < 0; SET_ZFLG (((INT8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((UINT8)(src)) > ((UINT8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24(dsta,newv);}}}}}}}m68k_incpc(2);return 6;}unsigned long op_5118_0(UINT32 opcode) /* SUB */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ unsigned int dsta = m68k_areg(regs, dstreg);{ INT8 dst = cpu_readmem24(dsta); m68k_areg(regs, dstreg) += areg_byteinc[dstreg];{{UINT32 newv = ((INT8)(dst)) - ((INT8)(src));{ int flgs = ((INT8)(src)) < 0; int flgo = ((INT8)(dst)) < 0; int flgn = ((INT8)(newv)) < 0; SET_ZFLG (((INT8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((UINT8)(src)) > ((UINT8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24(dsta,newv);}}}}}}}m68k_incpc(2);return 6;}unsigned long op_5120_0(UINT32 opcode) /* SUB */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)]; UINT32 dstreg = opcode & 7;{{ UINT32 src = srcreg;{ unsigned int dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];{ INT8 dst = cpu_readmem24(dsta); m68k_areg (regs, dstreg) = dsta;{{UINT32 newv = ((INT8)(dst)) - ((INT8)(src));{ int flgs = ((INT8)(src)) < 0; int flgo = ((INT8)(dst)) < 0; int flgn = ((INT8)(newv)) < 0; SET_ZFLG (((INT8)(newv)) == 0); SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo)); SET_CFLG (((UINT8)(src)) > ((UINT8)(dst))); COPY_CARRY; SET_NFLG (flgn != 0); cpu_writemem24(dsta,newv);}}}}}}}m68k_incpc(2);return 7;}unsigned long op_5128_0(UINT32 opcode) /* SUB */{ UINT32 srcreg = imm8_table[((opcode >> 9) & 7)];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -