📄 opcode0.c
字号:
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
}}}}
void op_139(void) /* BTST */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = nextilong();
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
}}}}
void op_13a(void) /* BTST */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 2;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = m68k_getpc();
dsta += (LONG)(WORD)nextiword();
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
}}}}}
void op_13b(void) /* BTST */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 3;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = get_disp_ea(m68k_getpc());
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
}}}}}
void op_13c(void) /* BTST */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ BYTE dst = nextiword();
src &= 7;
ZFLG = !(dst & (1 << src));
}}}}
void op_140(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ LONG src = regs.d[srcreg].D;
{ LONG dst = regs.d[dstreg].D;
src &= 31;
ZFLG = !(dst & (1 << src));
dst ^= (1 << src);
regs.d[dstreg].D = (dst);
}}}}
void op_148(void) /* MVPMR */
{
ULONG srcreg = (opcode & 7);
ULONG dstreg = (opcode >> 9) & 7;
{ CPTR memp = regs.a[srcreg] + nextiword();
{ ULONG val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16)
+ (get_byte(memp + 4) << 8) + get_byte(memp + 6);
regs.d[dstreg].D = (val);
}}}
void op_150(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst ^= (1 << src);
put_byte(dsta,dst);
}}}}
void op_158(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
{ regs.a[dstreg] += areg_byteinc[dstreg];
src &= 7;
ZFLG = !(dst & (1 << src));
dst ^= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_160(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ regs.a[dstreg] -= areg_byteinc[dstreg];
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst ^= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_168(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = 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(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = get_disp_ea(regs.a[dstreg]);
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst ^= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_178(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ 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(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = nextilong();
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst ^= (1 << src);
put_byte(dsta,dst);
}}}}
void op_17a(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 2;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = m68k_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(void) /* BCHG */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 3;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = get_disp_ea(m68k_getpc());
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst ^= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_180(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ LONG src = regs.d[srcreg].D;
{ LONG dst = regs.d[dstreg].D;
src &= 31;
ZFLG = !(dst & (1 << src));
dst &= ~(1 << src);
regs.d[dstreg].D = (dst);
}}}}
void op_188(void) /* MVPRM */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ WORD src = regs.d[srcreg].W.l;
CPTR memp = regs.a[dstreg] + nextiword();
put_byte(memp, src >> 8); put_byte(memp + 2, src);
}}}
void op_190(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst &= ~(1 << src);
put_byte(dsta,dst);
}}}}
void op_198(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
{ regs.a[dstreg] += areg_byteinc[dstreg];
src &= 7;
ZFLG = !(dst & (1 << src));
dst &= ~(1 << src);
put_byte(dsta,dst);
}}}}}
void op_1a0(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ regs.a[dstreg] -= areg_byteinc[dstreg];
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst &= ~(1 << src);
put_byte(dsta,dst);
}}}}}
void op_1a8(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = 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(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = get_disp_ea(regs.a[dstreg]);
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst &= ~(1 << src);
put_byte(dsta,dst);
}}}}}
void op_1b8(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ 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(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = nextilong();
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst &= ~(1 << src);
put_byte(dsta,dst);
}}}}
void op_1ba(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 2;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = m68k_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(void) /* BCLR */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 3;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = get_disp_ea(m68k_getpc());
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst &= ~(1 << src);
put_byte(dsta,dst);
}}}}}
void op_1c0(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ LONG src = regs.d[srcreg].D;
{ LONG dst = regs.d[dstreg].D;
src &= 31;
ZFLG = !(dst & (1 << src));
dst |= (1 << src);
regs.d[dstreg].D = (dst);
}}}}
void op_1c8(void) /* MVPRM */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ LONG src = regs.d[srcreg].D;
CPTR memp = 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(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst |= (1 << src);
put_byte(dsta,dst);
}}}}
void op_1d8(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
{ regs.a[dstreg] += areg_byteinc[dstreg];
src &= 7;
ZFLG = !(dst & (1 << src));
dst |= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_1e0(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ regs.a[dstreg] -= areg_byteinc[dstreg];
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst |= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_1e8(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = 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(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg = opcode & 7;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = get_disp_ea(regs.a[dstreg]);
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst |= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_1f8(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ 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(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = nextilong();
BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst |= (1 << src);
put_byte(dsta,dst);
}}}}
void op_1fa(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 2;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = m68k_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(void) /* BSET */
{
ULONG srcreg = ((opcode >> 9) & 7);
ULONG dstreg;
dstreg = 3;
{{ BYTE src = regs.d[srcreg].B.l;
{ CPTR dsta = get_disp_ea(m68k_getpc());
{ BYTE dst = get_byte(dsta);
src &= 7;
ZFLG = !(dst & (1 << src));
dst |= (1 << src);
put_byte(dsta,dst);
}}}}}
void op_200(void) /* AND */
{
ULONG dstreg = opcode & 7;
BYTE src = nextiword();
BYTE dst = regs.d[dstreg].B.l;
src &= dst;
regs.d[dstreg].B.l = src;
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}
void op_210(void) /* AND */
{
ULONG dstreg = opcode & 7;
BYTE src = nextiword();
CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= dst;
put_byte(dsta,src);
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}
void op_218(void) /* AND */
{
ULONG dstreg = opcode & 7;
BYTE src = nextiword();
CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
regs.a[dstreg] += areg_byteinc[dstreg];
src &= dst;
put_byte(dsta,src);
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}
void op_220(void) /* AND */
{
ULONG dstreg = opcode & 7;
BYTE src = nextiword();
regs.a[dstreg] -= areg_byteinc[dstreg];
{ CPTR dsta = regs.a[dstreg];
BYTE dst = get_byte(dsta);
src &= dst;
put_byte(dsta,src);
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}}
void op_228(void) /* AND */
{
ULONG dstreg = opcode & 7;
{{ BYTE src = nextiword();
{ CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
BYTE dst = get_byte(dsta);
src &= dst;
put_byte(dsta,src);
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}}}}
void op_230(void) /* AND */
{
ULONG dstreg = opcode & 7;
{{ BYTE src = nextiword();
{ CPTR dsta = get_disp_ea(regs.a[dstreg]);
{ BYTE dst = get_byte(dsta);
src &= dst;
put_byte(dsta,src);
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}}}}}
void op_238(void) /* AND */
{
{{ BYTE src = nextiword();
{ CPTR dsta = (LONG)(WORD)nextiword();
BYTE dst = get_byte(dsta);
src &= dst;
put_byte(dsta,src);
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}}}}
void op_239(void) /* AND */
{
{{ BYTE src = nextiword();
{ CPTR dsta = nextilong();
BYTE dst = get_byte(dsta);
src &= dst;
put_byte(dsta,src);
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
{
ZFLG = ZTRUE;
}
else
{
NFLG = NTRUE;
}
}
}}}}
void op_23c(void) /* ANDSR */
{
{ MakeSR();
{ WORD src = nextiword();
src |= 0xFF00;
regs.sr &= src;
MakeFromSR();
}}}
void op_240(void) /* AND */
{
ULONG dstreg = opcode & 7;
{{ WORD src = nextiword();
{ WORD dst = regs.d[dstreg].W.l;
src &= dst;
regs.d[dstreg].W.l = src;
CLEARFLGS;
if ( src <= 0 )
{
if ( src == 0 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -