示例#1
0
void Apu69()
{
   // CMP dp(dest), dp(src)
   uint8_t W1 = S9xAPUGetByteZ(OP1);
   uint8_t Work8 = S9xAPUGetByteZ(OP2);
   CMP(Work8, W1);
   IAPU.PC += 3;
}
示例#2
0
void ApuBA()
{
   // MOVW YA,dp
   IAPU.Registers.YA.B.A = S9xAPUGetByteZ(OP1);
   IAPU.Registers.YA.B.Y = S9xAPUGetByteZ(OP1 + 1);
   APUSetZN16(IAPU.Registers.YA.W);
   IAPU.PC += 2;
}
void Apu39()
{
   // AND (X),(Y)
   uint8 Work8 = S9xAPUGetByteZ(IAPU.X) & S9xAPUGetByteZ(IAPU.YA.B.Y);
   APUSetZN8(Work8);
   S9xAPUSetByteZ(Work8, IAPU.X);
   IAPU.PC++;
}
void Apu19()
{
   // OR (X),(Y)
   uint8 Work8 = S9xAPUGetByteZ(IAPU.X) | S9xAPUGetByteZ(IAPU.YA.B.Y);
   APUSetZN8(Work8);
   S9xAPUSetByteZ(Work8, IAPU.X);
   IAPU.PC++;
}
void Apu79()
{
   // CMP (X),(Y)
   uint8 W1 = S9xAPUGetByteZ(IAPU.X);
   uint8 Work8 = S9xAPUGetByteZ(IAPU.YA.B.Y);
   CMP(W1, Work8);
   IAPU.PC++;
}
示例#6
0
void Apu79()
{
   // CMP (X),(Y)
   uint8_t W1 = S9xAPUGetByteZ(IAPU.Registers.X);
   uint8_t Work8 = S9xAPUGetByteZ(IAPU.Registers.YA.B.Y);
   CMP(W1, Work8);
   IAPU.PC++;
}
示例#7
0
void Apu59()
{
   // EOR (X),(Y)
   uint8_t Work8 = S9xAPUGetByteZ(IAPU.Registers.X) ^ S9xAPUGetByteZ(
                    IAPU.Registers.YA.B.Y);
   APUSetZN8(Work8);
   S9xAPUSetByteZ(Work8, IAPU.Registers.X);
   IAPU.PC++;
}
示例#8
0
void Apu5A()
{
   // CMPW YA,dp
   uint16_t Work16 = S9xAPUGetByteZ(OP1) + (S9xAPUGetByteZ(OP1 + 1) << 8);
   int32_t Int32 = (long) IAPU.Registers.YA.W - (long) Work16;
   IAPU._Carry = Int32 >= 0;
   APUSetZN16((uint16_t) Int32);
   IAPU.PC += 2;
}
示例#9
0
void Apu89()
{
   // ADC dp(dest),dp(src)
   uint8_t Work8 = S9xAPUGetByteZ(OP1);
   uint8_t W1 = S9xAPUGetByteZ(OP2);
   ADC(W1, Work8);
   S9xAPUSetByteZ(W1, OP2);
   IAPU.PC += 3;
}
示例#10
0
void Apu99()
{
   // ADC (X),(Y)
   uint8_t W1 = S9xAPUGetByteZ(IAPU.Registers.X);
   uint8_t Work8 = S9xAPUGetByteZ(IAPU.Registers.YA.B.Y);
   ADC(W1, Work8);
   S9xAPUSetByteZ(W1, IAPU.Registers.X);
   IAPU.PC++;
}
示例#11
0
void Apu09()
{
   // OR dp(dest),dp(src)
   uint8_t Work8 = S9xAPUGetByteZ(OP1);
   Work8 |= S9xAPUGetByteZ(OP2);
   S9xAPUSetByteZ(Work8, OP2);
   APUSetZN8(Work8);
   IAPU.PC += 3;
}
示例#12
0
void Apu49()
{
   // EOR dp(dest),dp(src)
   uint8 Work8 = S9xAPUGetByteZ(OP1);
   Work8 ^= S9xAPUGetByteZ(OP2);
   S9xAPUSetByteZ(Work8, OP2);
   APUSetZN8(Work8);
   IAPU.PC += 3;
}
示例#13
0
void Apu5A()
{
   // CMPW YA,dp
   uint16 Work16 = S9xAPUGetByteZ(OP1) + (S9xAPUGetByteZ(OP1 + 1) << 8);
   long Int32 = (long) IAPU.YA.W - (long) Work16;
   IAPU._Carry = Int32 >= 0;
   APUSetZN16((uint16) Int32);
   IAPU.PC += 2;
}
示例#14
0
void Apu3A()
{
   // INCW dp
   uint16_t Work16 = S9xAPUGetByteZ(OP1) + (S9xAPUGetByteZ(OP1 + 1) << 8);
   Work16++;
   S9xAPUSetByteZ((uint8_t) Work16, OP1);
   S9xAPUSetByteZ(Work16 >> 8, OP1 + 1);
   APUSetZN16(Work16);
   IAPU.PC += 2;
}
示例#15
0
void Apu1A()
{
   // DECW dp
   uint16 Work16 = S9xAPUGetByteZ(OP1) + (S9xAPUGetByteZ(OP1 + 1) << 8);
   Work16--;
   S9xAPUSetByteZ((uint8) Work16, OP1);
   S9xAPUSetByteZ(Work16 >> 8, OP1 + 1);
   APUSetZN16(Work16);
   IAPU.PC += 2;
}
示例#16
0
void Apu84()
{
   // ADC A,dp
   uint8 Work8 = S9xAPUGetByteZ(OP1);
   ADC(IAPU.YA.B.A, Work8);
   IAPU.PC += 2;
}
示例#17
0
void Apu14()
{
   // OR A,dp+X
   IAPU.Registers.YA.B.A |= S9xAPUGetByteZ(OP1 + IAPU.Registers.X);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 2;
}
示例#18
0
void Apu04()
{
   // OR A,dp
   IAPU.Registers.YA.B.A |= S9xAPUGetByteZ(OP1);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 2;
}
示例#19
0
void Apu06()
{
   // OR A,(X)
   IAPU.Registers.YA.B.A |= S9xAPUGetByteZ(IAPU.Registers.X);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC++;
}
示例#20
0
void Apu94()
{
   // ADC A,dp+X
   uint8_t Work8 = S9xAPUGetByteZ(OP1 + IAPU.Registers.X);
   ADC(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC += 2;
}
示例#21
0
void Apu86()
{
   // ADC A,(X)
   uint8 Work8 = S9xAPUGetByteZ(IAPU.X);
   ADC(IAPU.YA.B.A, Work8);
   IAPU.PC++;
}
示例#22
0
void Apu86()
{
   // ADC A,(X)
   uint8_t Work8 = S9xAPUGetByteZ(IAPU.Registers.X);
   ADC(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC++;
}
示例#23
0
void Apu94()
{
   // ADC A,dp+X
   uint8 Work8 = S9xAPUGetByteZ(OP1 + IAPU.X);
   ADC(IAPU.YA.B.A, Work8);
   IAPU.PC += 2;
}
示例#24
0
void Apu34()
{
   // AND A,dp+X
   IAPU.Registers.YA.B.A &= S9xAPUGetByteZ(OP1 + IAPU.Registers.X);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 2;
}
示例#25
0
void Apu66()
{
   // CMP A,(X)
   uint8_t Work8 = S9xAPUGetByteZ(IAPU.Registers.X);
   CMP(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC++;
}
示例#26
0
void Apu26()
{
   // AND A,(X)
   IAPU.Registers.YA.B.A &= S9xAPUGetByteZ(IAPU.Registers.X);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC++;
}
示例#27
0
void Apu24()
{
   // AND A,dp
   IAPU.Registers.YA.B.A &= S9xAPUGetByteZ(OP1);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 2;
}
示例#28
0
void Apu7E()
{
   // CMP Y,dp
   uint8_t Work8 = S9xAPUGetByteZ(OP1);
   CMP(IAPU.Registers.YA.B.Y, Work8);
   IAPU.PC += 2;
}
示例#29
0
void Apu3E()
{
   // CMP X,dp
   uint8_t Work8 = S9xAPUGetByteZ(OP1);
   CMP(IAPU.Registers.X, Work8);
   IAPU.PC += 2;
}
示例#30
0
void Apu74()
{
   // CMP A, dp+X
   uint8_t Work8 = S9xAPUGetByteZ(OP1 + IAPU.Registers.X);
   CMP(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC += 2;
}