Exemplo n.º 1
0
void Apu1F()
{
   // JMP (abs+X)
   Absolute();
   IAPU.PC = IAPU.RAM + S9xAPUGetByte(IAPU.Address + IAPU.Registers.X) +
             (S9xAPUGetByte(IAPU.Address + IAPU.Registers.X + 1) << 8);
   // XXX: HERE:
   // APU.Flags |= TRACE_FLAG;
}
Exemplo n.º 2
0
void ApuCA()
{
   // MOV1 membit,C
   MemBit();
   if (APUCheckCarry())
      S9xAPUSetByte(S9xAPUGetByte(IAPU.Address) | (1 << IAPU.Bit), IAPU.Address);
   else
      S9xAPUSetByte(S9xAPUGetByte(IAPU.Address) & ~(1 << IAPU.Bit), IAPU.Address);
   IAPU.PC += 3;
}
Exemplo n.º 3
0
void Apu8A()
{
   // EOR1 C, membit
   MemBit();
   if (APUCheckCarry())
   {
      if (S9xAPUGetByte(IAPU.Address) & (1 << IAPU.Bit))
         APUClearCarry();
   }
   else
   {
      if (S9xAPUGetByte(IAPU.Address) & (1 << IAPU.Bit))
         APUSetCarry();
   }
   IAPU.PC += 3;
}
Exemplo n.º 4
0
void ApuEA()
{
   // NOT1 membit
   MemBit();
   S9xAPUSetByte(S9xAPUGetByte(IAPU.Address) ^ (1 << IAPU.Bit), IAPU.Address);
   IAPU.PC += 3;
}
Exemplo n.º 5
0
void Apu57()
{
   // EOR A,(dp)+Y
   IndirectIndexedY();
   IAPU.YA.B.A ^= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.YA.B.A);
   IAPU.PC += 2;
}
Exemplo n.º 6
0
void Apu5E()
{
   // CMP Y,abs
   Absolute();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   CMP(IAPU.Registers.YA.B.Y, Work8);
   IAPU.PC += 3;
}
Exemplo n.º 7
0
void Apu76()
{
   // CMP A, abs+Y
   AbsoluteY();
   uint8 Work8 = S9xAPUGetByte(IAPU.Address);
   CMP(IAPU.YA.B.A, Work8);
   IAPU.PC += 3;
}
Exemplo n.º 8
0
void Apu97()
{
   // ADC A, (dp)+Y
   IndirectIndexedY();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   ADC(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC += 2;
}
Exemplo n.º 9
0
void Apu16()
{
   // OR A,abs+Y
   AbsoluteY();
   IAPU.Registers.YA.B.A |= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 3;
}
Exemplo n.º 10
0
void Apu25()
{
   // AND A,abs
   Absolute();
   IAPU.Registers.YA.B.A &= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 3;
}
Exemplo n.º 11
0
void Apu87()
{
   // ADC A,(dp+X)
   IndexedXIndirect();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   ADC(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC += 2;
}
Exemplo n.º 12
0
void Apu47()
{
   // EOR A,(dp+X)
   IndexedXIndirect();
   IAPU.YA.B.A ^= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.YA.B.A);
   IAPU.PC += 2;
}
Exemplo n.º 13
0
void Apu56()
{
   // EOR A,abs+Y
   AbsoluteY();
   IAPU.YA.B.A ^= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.YA.B.A);
   IAPU.PC += 3;
}
Exemplo n.º 14
0
void Apu37()
{
   // AND A,(dp)+Y
   IndirectIndexedY();
   IAPU.YA.B.A &= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.YA.B.A);
   IAPU.PC += 2;
}
Exemplo n.º 15
0
void Apu36()
{
   // AND A,abs+Y
   AbsoluteY();
   IAPU.YA.B.A &= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.YA.B.A);
   IAPU.PC += 3;
}
Exemplo n.º 16
0
void Apu27()
{
   // AND A,(dp+X)
   IndexedXIndirect();
   IAPU.YA.B.A &= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.YA.B.A);
   IAPU.PC += 2;
}
Exemplo n.º 17
0
void Apu5E()
{
   // CMP Y,abs
   Absolute();
   uint8 Work8 = S9xAPUGetByte(((IAPU.Address)));
   CMP(IAPU.YA.B.Y, Work8);
   IAPU.PC += 3;
}
Exemplo n.º 18
0
void Apu77()
{
   // CMP A,(dp)+Y
   IndirectIndexedY();
   uint8 Work8 = S9xAPUGetByte(IAPU.Address);
   CMP(IAPU.YA.B.A, Work8);
   IAPU.PC += 2;
}
Exemplo n.º 19
0
void Apu55()
{
   // EOR A,abs+X
   AbsoluteX();
   IAPU.Registers.YA.B.A ^= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 3;
}
Exemplo n.º 20
0
void Apu87()
{
   // ADC A,(dp+X)
   IndexedXIndirect();
   uint8 Work8 = S9xAPUGetByte(((IAPU.Address)));
   ADC(IAPU.YA.B.A, Work8);
   IAPU.PC += 2;
}
Exemplo n.º 21
0
void Apu96()
{
   // ADC A, abs+Y
   AbsoluteY();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   ADC(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC += 3;
}
Exemplo n.º 22
0
void Apu96()
{
   // ADC A, abs+Y
   AbsoluteY();
   uint8 Work8 = S9xAPUGetByte(((IAPU.Address)));
   ADC(IAPU.YA.B.A, Work8);
   IAPU.PC += 3;
}
Exemplo n.º 23
0
void Apu07()
{
   // OR A,(dp+X)
   IndexedXIndirect();
   IAPU.Registers.YA.B.A |= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 2;
}
Exemplo n.º 24
0
void Apu97()
{
   // ADC A, (dp)+Y
   IndirectIndexedY();
   uint8 Work8 = S9xAPUGetByte(((IAPU.Address)));
   ADC(IAPU.YA.B.A, Work8);
   IAPU.PC += 2;
}
Exemplo n.º 25
0
void Apu17()
{
   // OR A,(dp)+Y
   IndirectIndexedY();
   IAPU.Registers.YA.B.A |= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.Registers.YA.B.A);
   IAPU.PC += 2;
}
Exemplo n.º 26
0
void Apu15()
{
   // OR A,abs+X
   AbsoluteX();
   IAPU.YA.B.A |= S9xAPUGetByte(IAPU.Address);
   APUSetZN8(IAPU.YA.B.A);
   IAPU.PC += 3;
}
Exemplo n.º 27
0
void Apu75()
{
   // CMP A,abs+X
   AbsoluteX();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   CMP(IAPU.Registers.YA.B.A, Work8);
   IAPU.PC += 3;
}
Exemplo n.º 28
0
void Apu1E()
{
   // CMP X,abs
   Absolute();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   CMP(IAPU.Registers.X, Work8);
   IAPU.PC += 3;
}
Exemplo n.º 29
0
void Apu67()
{
   // CMP A,(dp+X)
   IndexedXIndirect();
   uint8 Work8 = S9xAPUGetByte(((IAPU.Address)));
   CMP(IAPU.YA.B.A, Work8);
   IAPU.PC += 2;
}
Exemplo n.º 30
0
void Apu0C()
{
   // ASL abs
   Absolute();
   uint8_t Work8 = S9xAPUGetByte(IAPU.Address);
   ASL(Work8);
   S9xAPUSetByte(Work8, IAPU.Address);
   IAPU.PC += 3;
}