📄 cpu4.c
字号:
{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((BYTE)(dst)) == 0; NFLG = ((BYTE)(dst)) < 0; put_byte(srca,dst);}}}}}void op_4628(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); BYTE src = get_byte(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((BYTE)(dst)) == 0; NFLG = ((BYTE)(dst)) < 0; put_byte(srca,dst);}}}}void op_4630(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);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((BYTE)(dst)) == 0; NFLG = ((BYTE)(dst)) < 0; put_byte(srca,dst);}}}}}void op_4638(ULONG opcode){{{ CPTR srca = (LONG)(WORD)nextiword(); BYTE src = get_byte(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((BYTE)(dst)) == 0; NFLG = ((BYTE)(dst)) < 0; put_byte(srca,dst);}}}}void op_4639(ULONG opcode){{{ CPTR srca = nextilong(); BYTE src = get_byte(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((BYTE)(dst)) == 0; NFLG = ((BYTE)(dst)) < 0; put_byte(srca,dst);}}}}void op_4640(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ WORD src = (Shptr->regs).d[srcreg];{ ULONG dst = ~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_4650(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; put_word(srca,dst);}}}}void op_4658(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;{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; put_word(srca,dst);}}}}}void op_4660(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);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; put_word(srca,dst);}}}}}void op_4668(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); WORD src = get_word(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; put_word(srca,dst);}}}}void op_4670(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);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; put_word(srca,dst);}}}}}void op_4678(ULONG opcode){{{ CPTR srca = (LONG)(WORD)nextiword(); WORD src = get_word(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; put_word(srca,dst);}}}}void op_4679(ULONG opcode){{{ CPTR srca = nextilong(); WORD src = get_word(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((WORD)(dst)) == 0; NFLG = ((WORD)(dst)) < 0; put_word(srca,dst);}}}}void op_4680(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ LONG src = (Shptr->regs).d[srcreg];{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; (Shptr->regs).d[srcreg] = (dst);}}}}void op_4690(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg]; LONG src = get_long(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; put_long(srca,dst);}}}}void op_4698(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;{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; put_long(srca,dst);}}}}}void op_46a0(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);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; put_long(srca,dst);}}}}}void op_46a8(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); LONG src = get_long(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; put_long(srca,dst);}}}}void op_46b0(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);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; put_long(srca,dst);}}}}}void op_46b8(ULONG opcode){{{ CPTR srca = (LONG)(WORD)nextiword(); LONG src = get_long(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; put_long(srca,dst);}}}}void op_46b9(ULONG opcode){{{ CPTR srca = nextilong(); LONG src = get_long(srca);{ ULONG dst = ~src; VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; put_long(srca,dst);}}}}void op_46c0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ WORD src = (Shptr->regs).d[srcreg]; (Shptr->regs).sr = src; MakeFromSR();}}}}void op_46d0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}void op_46d8(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca);{ (Shptr->regs).a[srcreg] += 2; (Shptr->regs).sr = src; MakeFromSR();}}}}}void op_46e0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ (Shptr->regs).a[srcreg] -= 2;{ CPTR srca = (Shptr->regs).a[srcreg]; WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}}void op_46e8(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}void op_46f0(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = (Shptr->regs).a[srcreg]; srca = get_disp_ea (srca, nextiword());{ WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}}void op_46f8(ULONG opcode){{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = (LONG)(WORD)nextiword(); WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}void op_46f9(ULONG opcode){{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = nextilong(); WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}void op_46fa(ULONG opcode){{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = MC68000_getpc(); srca += (LONG)(WORD)nextiword();{ WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}}void op_46fb(ULONG opcode){{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ CPTR srca = MC68000_getpc(); srca = get_disp_ea (srca, nextiword());{ WORD src = get_word(srca); (Shptr->regs).sr = src; MakeFromSR();}}}}}void op_46fc(ULONG opcode){{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{{ WORD src = nextiword(); (Shptr->regs).sr = src; MakeFromSR();}}}}void op_4800(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ BYTE src = (Shptr->regs).d[srcreg];{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; (Shptr->regs).d[srcreg] &= ~0xff; (Shptr->regs).d[srcreg] |= (newv) & 0xff;}}}}void op_4810(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg]; BYTE src = get_byte(srca);{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; put_byte(srca,newv);}}}}void op_4818(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];{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; put_byte(srca,newv);}}}}}void op_4820(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);{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; put_byte(srca,newv);}}}}}void op_4828(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg] + (LONG)(WORD)nextiword(); BYTE src = get_byte(srca);{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; put_byte(srca,newv);}}}}void op_4830(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);{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; put_byte(srca,newv);}}}}}void op_4838(ULONG opcode){{{ CPTR srca = (LONG)(WORD)nextiword(); BYTE src = get_byte(srca);{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; put_byte(srca,newv);}}}}void op_4839(ULONG opcode){{{ CPTR srca = nextilong(); BYTE src = get_byte(srca);{ UWORD newv_lo = - (src & 0xF) - (Shptr->regs).x; UWORD newv_hi = - (src & 0xF0); UWORD newv; if (newv_lo > 9) { newv_lo-=6; newv_hi-=0x10; } newv = newv_hi + (newv_lo & 0xF); CFLG = (Shptr->regs).x = (newv_hi & 0x1F0) > 0x90; if (CFLG) newv -= 0x60; if (newv != 0) ZFLG = 0; put_byte(srca,newv);}}}}void op_4840(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ LONG src = (Shptr->regs).d[srcreg];{ ULONG dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16); VFLG = CFLG = 0; ZFLG = ((LONG)(dst)) == 0; NFLG = ((LONG)(dst)) < 0; (Shptr->regs).d[srcreg] = (dst);}}}}void op_4850(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);{{ CPTR srca = (Shptr->regs).a[srcreg];{ (Shptr->regs).a[7] -= 4;{ CPTR dsta = (Shptr->regs).a[7];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -