DECL_LINE68(lineC00)
{
const uint68_t s = ( (int68_t) REG68.d[reg0] << BYTE_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << BYTE_FIX;
ANDB(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & BYTE_MSK ) + ( d >> BYTE_FIX );
}
DECL_LINE68(lineC01)
{
ILLEGAL;
assert(EMU68_BREAK);
}
DECL_LINE68(lineC02)
{
const uint68_t s = ( (int68_t) read_EAB(2,reg0) << BYTE_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << BYTE_FIX;
ANDB(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & BYTE_MSK ) + ( d >> BYTE_FIX );
}
DECL_LINE68(lineC03)
{
const uint68_t s = ( (int68_t) read_EAB(3,reg0) << BYTE_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << BYTE_FIX;
ANDB(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & BYTE_MSK ) + ( d >> BYTE_FIX );
}
DECL_LINE68(lineC04)
{
const uint68_t s = ( (int68_t) read_EAB(4,reg0) << BYTE_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << BYTE_FIX;
ANDB(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & BYTE_MSK ) + ( d >> BYTE_FIX );
}
DECL_LINE68(lineC05)
{
const uint68_t s = ( (int68_t) read_EAB(5,reg0) << BYTE_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << BYTE_FIX;
ANDB(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & BYTE_MSK ) + ( d >> BYTE_FIX );
}
DECL_LINE68(lineC06)
{
const uint68_t s = ( (int68_t) read_EAB(6,reg0) << BYTE_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << BYTE_FIX;
ANDB(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & BYTE_MSK ) + ( d >> BYTE_FIX );
}
DECL_LINE68(lineC07)
{
const uint68_t s = ( (int68_t) read_EAB(7,reg0) << BYTE_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << BYTE_FIX;
ANDB(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & BYTE_MSK ) + ( d >> BYTE_FIX );
}
DECL_LINE68(lineC08)
{
const uint68_t s = ( (int68_t) REG68.d[reg0] << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
ANDW(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & WORD_MSK ) + ( d >> WORD_FIX );
}
DECL_LINE68(lineC09)
{
ILLEGAL;
assert(EMU68_BREAK);
}
DECL_LINE68(lineC0A)
{
const uint68_t s = ( (int68_t) read_EAW(2,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
ANDW(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & WORD_MSK ) + ( d >> WORD_FIX );
}
DECL_LINE68(lineC0B)
{
const uint68_t s = ( (int68_t) read_EAW(3,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
ANDW(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & WORD_MSK ) + ( d >> WORD_FIX );
}
DECL_LINE68(lineC0C)
{
const uint68_t s = ( (int68_t) read_EAW(4,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
ANDW(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & WORD_MSK ) + ( d >> WORD_FIX );
}
DECL_LINE68(lineC0D)
{
const uint68_t s = ( (int68_t) read_EAW(5,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
ANDW(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & WORD_MSK ) + ( d >> WORD_FIX );
}
DECL_LINE68(lineC0E)
{
const uint68_t s = ( (int68_t) read_EAW(6,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
ANDW(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & WORD_MSK ) + ( d >> WORD_FIX );
}
DECL_LINE68(lineC0F)
{
const uint68_t s = ( (int68_t) read_EAW(7,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
ANDW(d,s,d);
REG68.d[reg9] = ( REG68.d[reg9] & WORD_MSK ) + ( d >> WORD_FIX );
}
DECL_LINE68(lineC10)
{
const uint68_t s = ( (int68_t) REG68.d[reg0] << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC11)
{
ILLEGAL;
assert(EMU68_BREAK);
}
DECL_LINE68(lineC12)
{
const uint68_t s = ( (int68_t) read_EAL(2,reg0) << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC13)
{
const uint68_t s = ( (int68_t) read_EAL(3,reg0) << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC14)
{
const uint68_t s = ( (int68_t) read_EAL(4,reg0) << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC15)
{
const uint68_t s = ( (int68_t) read_EAL(5,reg0) << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC16)
{
const uint68_t s = ( (int68_t) read_EAL(6,reg0) << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC17)
{
const uint68_t s = ( (int68_t) read_EAL(7,reg0) << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC18)
{
const uint68_t s = ( (int68_t) REG68.d[reg0] << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULUW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC19)
{
ILLEGAL;
assert(EMU68_BREAK);
}
DECL_LINE68(lineC1A)
{
const uint68_t s = ( (int68_t) read_EAW(2,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULUW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC1B)
{
const uint68_t s = ( (int68_t) read_EAW(3,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULUW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC1C)
{
const uint68_t s = ( (int68_t) read_EAW(4,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULUW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC1D)
{
const uint68_t s = ( (int68_t) read_EAW(5,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULUW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC1E)
{
const uint68_t s = ( (int68_t) read_EAW(6,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULUW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC1F)
{
const uint68_t s = ( (int68_t) read_EAW(7,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULUW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC20)
{
int s = (u8) REG68.d[reg0];
int d = (u8) REG68.d[reg9];
ABCDB(d,s,d);
REG68.d[reg9] = (REG68.d[reg9] & 0xFFFFFF00) | d;
}
DECL_LINE68(lineC21)
{
const addr68_t l0 = REG68.a[reg0] = (u32) ( REG68.a[reg0] - 1 );
const addr68_t l9 = REG68.a[reg9] = (u32) ( REG68.a[reg9] - 1 );
int s = read_B(l0);
int d = read_B(l9);
ABCDB(d,s,d);
write_B(l9,d);
}
DECL_LINE68(lineC22)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << BYTE_FIX );
const addr68_t l = get_EAB(2,reg0);
uint68_t d = read_B(l) << BYTE_FIX;
ANDB(d,s,d);
write_B(l, d >> BYTE_FIX);
}
DECL_LINE68(lineC23)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << BYTE_FIX );
const addr68_t l = get_EAB(3,reg0);
uint68_t d = read_B(l) << BYTE_FIX;
ANDB(d,s,d);
write_B(l, d >> BYTE_FIX);
}
DECL_LINE68(lineC24)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << BYTE_FIX );
const addr68_t l = get_EAB(4,reg0);
uint68_t d = read_B(l) << BYTE_FIX;
ANDB(d,s,d);
write_B(l, d >> BYTE_FIX);
}
DECL_LINE68(lineC25)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << BYTE_FIX );
const addr68_t l = get_EAB(5,reg0);
uint68_t d = read_B(l) << BYTE_FIX;
ANDB(d,s,d);
write_B(l, d >> BYTE_FIX);
}
DECL_LINE68(lineC26)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << BYTE_FIX );
const addr68_t l = get_EAB(6,reg0);
uint68_t d = read_B(l) << BYTE_FIX;
ANDB(d,s,d);
write_B(l, d >> BYTE_FIX);
}
DECL_LINE68(lineC27)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << BYTE_FIX );
const addr68_t l = get_EAB(7,reg0);
uint68_t d = read_B(l) << BYTE_FIX;
ANDB(d,s,d);
write_B(l, d >> BYTE_FIX);
}
DECL_LINE68(lineC28)
{
EXG(reg9,reg0);
}
DECL_LINE68(lineC29)
{
EXG(reg9+8,reg0+8);
}
DECL_LINE68(lineC2A)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << WORD_FIX );
const addr68_t l = get_EAW(2,reg0);
uint68_t d = read_W(l) << WORD_FIX;
ANDW(d,s,d);
write_W(l, d >> WORD_FIX);
}
DECL_LINE68(lineC2B)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << WORD_FIX );
const addr68_t l = get_EAW(3,reg0);
uint68_t d = read_W(l) << WORD_FIX;
ANDW(d,s,d);
write_W(l, d >> WORD_FIX);
}
DECL_LINE68(lineC2C)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << WORD_FIX );
const addr68_t l = get_EAW(4,reg0);
uint68_t d = read_W(l) << WORD_FIX;
ANDW(d,s,d);
write_W(l, d >> WORD_FIX);
}
DECL_LINE68(lineC2D)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << WORD_FIX );
const addr68_t l = get_EAW(5,reg0);
uint68_t d = read_W(l) << WORD_FIX;
ANDW(d,s,d);
write_W(l, d >> WORD_FIX);
}
DECL_LINE68(lineC2E)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << WORD_FIX );
const addr68_t l = get_EAW(6,reg0);
uint68_t d = read_W(l) << WORD_FIX;
ANDW(d,s,d);
write_W(l, d >> WORD_FIX);
}
DECL_LINE68(lineC2F)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << WORD_FIX );
const addr68_t l = get_EAW(7,reg0);
uint68_t d = read_W(l) << WORD_FIX;
ANDW(d,s,d);
write_W(l, d >> WORD_FIX);
}
DECL_LINE68(lineC30)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << LONG_FIX );
uint68_t d = (int68_t) REG68.d[reg0] << LONG_FIX;
ANDL(d,s,d);
REG68.d[reg0] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC31)
{
EXG(reg9,reg0+8);
}
DECL_LINE68(lineC32)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << LONG_FIX );
const addr68_t l = get_EAL(2,reg0);
uint68_t d = read_L(l) << LONG_FIX;
ANDL(d,s,d);
write_L(l, d >> LONG_FIX);
}
DECL_LINE68(lineC33)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << LONG_FIX );
const addr68_t l = get_EAL(3,reg0);
uint68_t d = read_L(l) << LONG_FIX;
ANDL(d,s,d);
write_L(l, d >> LONG_FIX);
}
DECL_LINE68(lineC34)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << LONG_FIX );
const addr68_t l = get_EAL(4,reg0);
uint68_t d = read_L(l) << LONG_FIX;
ANDL(d,s,d);
write_L(l, d >> LONG_FIX);
}
DECL_LINE68(lineC35)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << LONG_FIX );
const addr68_t l = get_EAL(5,reg0);
uint68_t d = read_L(l) << LONG_FIX;
ANDL(d,s,d);
write_L(l, d >> LONG_FIX);
}
DECL_LINE68(lineC36)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << LONG_FIX );
const addr68_t l = get_EAL(6,reg0);
uint68_t d = read_L(l) << LONG_FIX;
ANDL(d,s,d);
write_L(l, d >> LONG_FIX);
}
DECL_LINE68(lineC37)
{
const uint68_t s = ( (int68_t) REG68.d[reg9] << LONG_FIX );
const addr68_t l = get_EAL(7,reg0);
uint68_t d = read_L(l) << LONG_FIX;
ANDL(d,s,d);
write_L(l, d >> LONG_FIX);
}
DECL_LINE68(lineC38)
{
const uint68_t s = ( (int68_t) REG68.d[reg0] << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULSW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC39)
{
ILLEGAL;
assert(EMU68_BREAK);
}
DECL_LINE68(lineC3A)
{
const uint68_t s = ( (int68_t) read_EAW(2,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULSW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC3B)
{
const uint68_t s = ( (int68_t) read_EAW(3,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULSW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC3C)
{
const uint68_t s = ( (int68_t) read_EAW(4,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULSW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC3D)
{
const uint68_t s = ( (int68_t) read_EAW(5,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULSW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC3E)
{
const uint68_t s = ( (int68_t) read_EAW(6,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULSW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}
DECL_LINE68(lineC3F)
{
const uint68_t s = ( (int68_t) read_EAW(7,reg0) << WORD_FIX );
uint68_t d = (int68_t) REG68.d[reg9] << WORD_FIX;
MULSW(d,s,d);
REG68.d[reg9] = ( d >> LONG_FIX );
}