?? cpu0.c
字號(hào):
#include "sysdeps.h"#include "shared.h"#include "memory.h"#include "custom.h"#include "newcpu.h"#include "cputbl.h"void op_0(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = nextiword();{ BYTE dst = (Shptr->regs).d[dstreg]; src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; (Shptr->regs).d[dstreg] &= ~0xff; (Shptr->regs).d[dstreg] |= (src) & 0xff;}}}}void op_10(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; put_byte(dsta,src);}}}}void op_18(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta);{ (Shptr->regs).a[dstreg] += areg_byteinc[dstreg]; src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; put_byte(dsta,src);}}}}}void op_20(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = nextiword();{ (Shptr->regs).a[dstreg] -= areg_byteinc[dstreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; put_byte(dsta,src);}}}}}void op_28(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg] + (LONG)(WORD)nextiword(); BYTE dst = get_byte(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; put_byte(dsta,src);}}}}void op_30(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg]; dsta = get_disp_ea (dsta, nextiword());{ BYTE dst = get_byte(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; put_byte(dsta,src);}}}}}void op_38(ULONG opcode){{{ BYTE src = nextiword();{ CPTR dsta = (LONG)(WORD)nextiword(); BYTE dst = get_byte(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; put_byte(dsta,src);}}}}void op_39(ULONG opcode){{{ BYTE src = nextiword();{ CPTR dsta = nextilong(); BYTE dst = get_byte(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((BYTE)(src)) == 0; NFLG = ((BYTE)(src)) < 0; put_byte(dsta,src);}}}}void op_3c(ULONG opcode){{ MakeSR();{ WORD src = nextiword(); src &= 0xFF; (Shptr->regs).sr |= src; MakeFromSR();}}}void op_40(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ WORD src = nextiword();{ WORD dst = (Shptr->regs).d[dstreg]; src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (src) & 0xffff;}}}}void op_50(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ WORD src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg]; WORD dst = get_word(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; put_word(dsta,src);}}}}void op_58(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ WORD src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg]; WORD dst = get_word(dsta);{ (Shptr->regs).a[dstreg] += 2; src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; put_word(dsta,src);}}}}}void op_60(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ WORD src = nextiword();{ (Shptr->regs).a[dstreg] -= 2;{ CPTR dsta = (Shptr->regs).a[dstreg]; WORD dst = get_word(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; put_word(dsta,src);}}}}}void op_68(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ WORD src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg] + (LONG)(WORD)nextiword(); WORD dst = get_word(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; put_word(dsta,src);}}}}void op_70(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ WORD src = nextiword();{ CPTR dsta = (Shptr->regs).a[dstreg]; dsta = get_disp_ea (dsta, nextiword());{ WORD dst = get_word(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; put_word(dsta,src);}}}}}void op_78(ULONG opcode){{{ WORD src = nextiword();{ CPTR dsta = (LONG)(WORD)nextiword(); WORD dst = get_word(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; put_word(dsta,src);}}}}void op_79(ULONG opcode){{{ WORD src = nextiword();{ CPTR dsta = nextilong(); WORD dst = get_word(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((WORD)(src)) == 0; NFLG = ((WORD)(src)) < 0; put_word(dsta,src);}}}}void op_7c(ULONG opcode){{if (!(Shptr->regs).s) { (Shptr->regs).pc_p--; MC68000_exception(8); } else{ MakeSR();{ WORD src = nextiword(); (Shptr->regs).sr |= src; MakeFromSR();}}}}void op_80(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = nextilong();{ LONG dst = (Shptr->regs).d[dstreg]; src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; (Shptr->regs).d[dstreg] = (src);}}}}void op_90(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = nextilong();{ CPTR dsta = (Shptr->regs).a[dstreg]; LONG dst = get_long(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; put_long(dsta,src);}}}}void op_98(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = nextilong();{ CPTR dsta = (Shptr->regs).a[dstreg]; LONG dst = get_long(dsta);{ (Shptr->regs).a[dstreg] += 4; src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; put_long(dsta,src);}}}}}void op_a0(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = nextilong();{ (Shptr->regs).a[dstreg] -= 4;{ CPTR dsta = (Shptr->regs).a[dstreg]; LONG dst = get_long(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; put_long(dsta,src);}}}}}void op_a8(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = nextilong();{ CPTR dsta = (Shptr->regs).a[dstreg] + (LONG)(WORD)nextiword(); LONG dst = get_long(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; put_long(dsta,src);}}}}void op_b0(ULONG opcode){ ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = nextilong();{ CPTR dsta = (Shptr->regs).a[dstreg]; dsta = get_disp_ea (dsta, nextiword());{ LONG dst = get_long(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; put_long(dsta,src);}}}}}void op_b8(ULONG opcode){{{ LONG src = nextilong();{ CPTR dsta = (LONG)(WORD)nextiword(); LONG dst = get_long(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; put_long(dsta,src);}}}}void op_b9(ULONG opcode){{{ LONG src = nextilong();{ CPTR dsta = nextilong(); LONG dst = get_long(dsta); src |= dst; VFLG = CFLG = 0; ZFLG = ((LONG)(src)) == 0; NFLG = ((LONG)(src)) < 0; put_long(dsta,src);}}}}void op_100(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = (Shptr->regs).d[srcreg];{ LONG dst = (Shptr->regs).d[dstreg]; src &= 31; ZFLG = !(dst & (1 << src));}}}}void op_108(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{ CPTR memp = (Shptr->regs).a[srcreg] + nextiword();{ UWORD val = (get_byte(memp) << 8) + get_byte(memp + 2); (Shptr->regs).d[dstreg] &= ~0xffff; (Shptr->regs).d[dstreg] |= (val) & 0xffff;}}}void op_110(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}void op_118(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta);{ (Shptr->regs).a[dstreg] += areg_byteinc[dstreg]; src &= 7; ZFLG = !(dst & (1 << src));}}}}}void op_120(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ (Shptr->regs).a[dstreg] -= areg_byteinc[dstreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}}void op_128(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (Shptr->regs).a[dstreg] + (LONG)(WORD)nextiword(); BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}void op_130(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; dsta = get_disp_ea (dsta, nextiword());{ BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}}void op_138(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (LONG)(WORD)nextiword(); BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}void op_139(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = nextilong(); BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}void op_13a(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);/* ULONG dstreg = (LONG)(BYTE)2; */{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = MC68000_getpc(); dsta += (LONG)(WORD)nextiword();{ BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}}void op_13b(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);/* ULONG dstreg = (LONG)(BYTE)3; */{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = MC68000_getpc(); dsta = get_disp_ea (dsta, nextiword());{ BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src));}}}}}void op_13c(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);{{ BYTE src = (Shptr->regs).d[srcreg];{ BYTE dst = nextiword(); src &= 7; ZFLG = !(dst & (1 << src));}}}}void op_140(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = (Shptr->regs).d[srcreg];{ LONG dst = (Shptr->regs).d[dstreg]; src &= 31; ZFLG = !(dst & (1 << src)); dst ^= (1 << src); (Shptr->regs).d[dstreg] = (dst);}}}}void op_148(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0); ULONG dstreg = (opcode & 3584) >> 9;{ CPTR memp = (Shptr->regs).a[srcreg] + nextiword();{ ULONG val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16) + (get_byte(memp + 4) << 8) + get_byte(memp + 6); (Shptr->regs).d[dstreg] = (val);}}}void op_150(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src)); dst ^= (1 << src); put_byte(dsta,dst);}}}}void op_158(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta);{ (Shptr->regs).a[dstreg] += areg_byteinc[dstreg]; src &= 7; ZFLG = !(dst & (1 << src)); dst ^= (1 << src); put_byte(dsta,dst);}}}}}void op_160(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ (Shptr->regs).a[dstreg] -= areg_byteinc[dstreg];{ CPTR dsta = (Shptr->regs).a[dstreg]; BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src)); dst ^= (1 << src); put_byte(dsta,dst);}}}}}void op_168(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ BYTE src = (Shptr->regs).d[srcreg];{ CPTR dsta = (Shptr->regs).a[dstreg] + (LONG)(WORD)nextiword(); BYTE dst = get_byte(dsta); src &= 7; ZFLG = !(dst & (1 << src)); dst ^= (1 << src); put_byte(dsta,dst);}}}}void op_170(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -