📄 cpu0.c
字号:
{{ 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)); dst ^= (1 << src); put_byte(dsta,dst);}}}}}void op_178(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)); dst ^= (1 << src); put_byte(dsta,dst);}}}}void op_179(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)); dst ^= (1 << src); put_byte(dsta,dst);}}}}void op_17a(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)); dst ^= (1 << src); put_byte(dsta,dst);}}}}}void op_17b(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)); dst ^= (1 << src); put_byte(dsta,dst);}}}}}void op_180(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_188(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ WORD src = (Shptr->regs).d[srcreg]; CPTR memp = (Shptr->regs).a[dstreg] + nextiword(); put_byte(memp, src >> 8); put_byte(memp + 2, src);}}}void op_190(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_198(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_1a0(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_1a8(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_1b0(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)); dst &= ~(1 << src); put_byte(dsta,dst);}}}}}void op_1b8(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)); dst &= ~(1 << src); put_byte(dsta,dst);}}}}void op_1b9(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)); dst &= ~(1 << src); put_byte(dsta,dst);}}}}void op_1ba(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)); dst &= ~(1 << src); put_byte(dsta,dst);}}}}}void op_1bb(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)); dst &= ~(1 << src); put_byte(dsta,dst);}}}}}void op_1c0(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_1c8(ULONG opcode){ ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9); ULONG dstreg = (opcode & 7) >> 0;{{ LONG src = (Shptr->regs).d[srcreg]; CPTR memp = (Shptr->regs).a[dstreg] + nextiword(); put_byte(memp, src >> 24); put_byte(memp + 2, src >> 16); put_byte(memp + 4, src >> 8); put_byte(memp + 6, src);}}}void op_1d0(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_1d8(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_1e0(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_1e8(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_1f0(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)); dst |= (1 << src); put_byte(dsta,dst);}}}}}void op_1f8(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)); dst |= (1 << src); put_byte(dsta,dst);}}}}void op_1f9(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)); dst |= (1 << src); put_byte(dsta,dst);}}}}void op_1fa(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)); dst |= (1 << src); put_byte(dsta,dst);}}}}}void op_1fb(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)); dst |= (1 << src); put_byte(dsta,dst);}}}}}void op_200(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_210(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_218(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_220(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_228(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_230(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_238(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_239(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_23c(ULONG opcode){{ MakeSR();{ WORD src = nextiword(); src |= 0xFF00; (Shptr->regs).sr &= src; MakeFromSR();}}}void op_240(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_250(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_258(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_260(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_268(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_270(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_278(ULONG opcode){{{ WORD src = nextiword();{ CPTR dsta = (LONG)(WORD)nextiword(); WORD dst = get_word(dsta); src &= dst;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -