📄 cpu4.c
字号:
put_long(dsta,srca);}}}}}void op_4858(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg];{ (Shptr->regs).a[srcreg] += 4;{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}}void op_4860(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ (Shptr->regs).a[srcreg] -= 4;{ CPTR srca = (Shptr->regs).a[srcreg];{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}}void op_4868(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword();{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}void op_4870(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg]; srca = get_disp_ea (srca, nextiword());{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}void op_4878(ULONG opcode){{{ CPTR srca = (LONG)(WORD)nextiword();{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}void op_4879(ULONG opcode){{{ CPTR srca = nextilong();{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}void op_487a(ULONG opcode){{{ CPTR srca = MC68000_getpc(); srca += (LONG)(WORD)nextiword();{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}void op_487b(ULONG opcode){{{ CPTR srca = MC68000_getpc(); srca = get_disp_ea (srca, nextiword());{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7]; put_long(dsta,srca);}}}}}void op_4880(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ WORD src = (Shptr->regs).d[srcreg];{ ULONG dst = (LONG)(BYTE)src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; (Shptr->regs).d[srcreg] &= ~0xffff; (Shptr->regs).d[srcreg] |= (dst) & 0xffff;}}}}void op_4890(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg];{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }}}}}void op_4898(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg];{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }}}}}void op_48a0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{{ CPTR srca = (Shptr->regs).a[srcreg];{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } srca -= 2*bitcnt; (Shptr->regs).a[srcreg] = srca; for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, rd[i]); srca += 2; } mask <<= 1; } for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, ra[i]); srca += 2; } mask <<= 1; }}}}}}void op_48a8(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword();{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }}}}}void op_48b0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg]; srca = get_disp_ea (srca, nextiword());{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }}}}}void op_48b8(ULONG opcode){{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (LONG)(WORD)nextiword();{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }}}}}void op_48b9(ULONG opcode){{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = nextilong();{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }}}}}void op_48c0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ LONG src = (Shptr->regs).d[srcreg];{ ULONG dst = (LONG)(WORD)src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; (Shptr->regs).d[srcreg] = (dst);}}}}void op_48d0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg];{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }}}}}void op_48d8(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg];{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }}}}}void op_48e0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{{ CPTR srca = (Shptr->regs).a[srcreg];{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } srca -= 4*bitcnt; (Shptr->regs).a[srcreg] = srca; for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, rd[i]); srca += 4; } mask <<= 1; } for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, ra[i]); srca += 4; } mask <<= 1; }}}}}}void op_48e8(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword();{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }}}}}void op_48f0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (Shptr->regs).a[srcreg]; srca = get_disp_ea (srca, nextiword());{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }}}}}void op_48f8(ULONG opcode){{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = (LONG)(WORD)nextiword();{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }}}}}void op_48f9(ULONG opcode){{ UWORD mask = nextiword(), bitmask = mask;{ CPTR srca = nextilong();{ int i, bitcnt = 0; ULONG rd[8], ra[8]; for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; } for(i=0;i<8;i++) { rd[i] = (Shptr->regs).d[i]; ra[i] = (Shptr->regs).a[i]; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; } for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }}}}}void op_4a00(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ BYTE src = (Shptr->regs).d[srcreg]; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}void op_4a10(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg]; BYTE src = get_byte(srca); VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}void op_4a18(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]; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}}void op_4a20(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); VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}}void op_4a28(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); BYTE src = get_byte(srca); VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}void op_4a30(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); VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}}void op_4a38(ULONG opcode){{{ CPTR srca = (LONG)(WORD)nextiword(); BYTE src = get_byte(srca); VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}void op_4a39(ULONG opcode){{{ CPTR srca = nextilong(); BYTE src = get_byte(srca); VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0;}}}void op_4a40(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ WORD src = (Shptr->regs).d[srcreg]; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}void op_4a48(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ WORD src = (Shptr->regs).a[srcreg]; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}void op_4a50(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca); VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}void op_4a58(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; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}}void op_4a60(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); VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}}void op_4a68(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); WORD src = get_word(srca); VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}void op_4a70(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); VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}}void op_4a78(ULONG opcode){{{ CPTR srca = (LONG)(WORD)nextiword(); WORD src = get_word(srca); VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}void op_4a79(ULONG opcode){{{ CPTR srca = nextilong(); WORD src = get_word(srca); VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0;}}}void op_4a80(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ LONG src = (Shptr->regs).d[srcreg]; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0;}}}void op_4a88(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ LONG src = (Shptr->regs).a[srcreg]; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0;}}}void op_4a90(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg]; LONG src = get_long(srca); VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0;}}}void op_4a98(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; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0;}}}}void op_4aa0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ (Shptr->regs).a[srcreg] -
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -