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; }
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; }
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; }
void ApuEA() { // NOT1 membit MemBit(); S9xAPUSetByte(S9xAPUGetByte(IAPU.Address) ^ (1 << IAPU.Bit), IAPU.Address); IAPU.PC += 3; }
void Apu57() { // EOR A,(dp)+Y IndirectIndexedY(); IAPU.YA.B.A ^= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.YA.B.A); IAPU.PC += 2; }
void Apu5E() { // CMP Y,abs Absolute(); uint8_t Work8 = S9xAPUGetByte(IAPU.Address); CMP(IAPU.Registers.YA.B.Y, Work8); IAPU.PC += 3; }
void Apu76() { // CMP A, abs+Y AbsoluteY(); uint8 Work8 = S9xAPUGetByte(IAPU.Address); CMP(IAPU.YA.B.A, Work8); IAPU.PC += 3; }
void Apu97() { // ADC A, (dp)+Y IndirectIndexedY(); uint8_t Work8 = S9xAPUGetByte(IAPU.Address); ADC(IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; }
void Apu16() { // OR A,abs+Y AbsoluteY(); IAPU.Registers.YA.B.A |= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.Registers.YA.B.A); IAPU.PC += 3; }
void Apu25() { // AND A,abs Absolute(); IAPU.Registers.YA.B.A &= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.Registers.YA.B.A); IAPU.PC += 3; }
void Apu87() { // ADC A,(dp+X) IndexedXIndirect(); uint8_t Work8 = S9xAPUGetByte(IAPU.Address); ADC(IAPU.Registers.YA.B.A, Work8); IAPU.PC += 2; }
void Apu47() { // EOR A,(dp+X) IndexedXIndirect(); IAPU.YA.B.A ^= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.YA.B.A); IAPU.PC += 2; }
void Apu56() { // EOR A,abs+Y AbsoluteY(); IAPU.YA.B.A ^= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.YA.B.A); IAPU.PC += 3; }
void Apu37() { // AND A,(dp)+Y IndirectIndexedY(); IAPU.YA.B.A &= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.YA.B.A); IAPU.PC += 2; }
void Apu36() { // AND A,abs+Y AbsoluteY(); IAPU.YA.B.A &= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.YA.B.A); IAPU.PC += 3; }
void Apu27() { // AND A,(dp+X) IndexedXIndirect(); IAPU.YA.B.A &= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.YA.B.A); IAPU.PC += 2; }
void Apu5E() { // CMP Y,abs Absolute(); uint8 Work8 = S9xAPUGetByte(((IAPU.Address))); CMP(IAPU.YA.B.Y, Work8); IAPU.PC += 3; }
void Apu77() { // CMP A,(dp)+Y IndirectIndexedY(); uint8 Work8 = S9xAPUGetByte(IAPU.Address); CMP(IAPU.YA.B.A, Work8); IAPU.PC += 2; }
void Apu55() { // EOR A,abs+X AbsoluteX(); IAPU.Registers.YA.B.A ^= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.Registers.YA.B.A); IAPU.PC += 3; }
void Apu87() { // ADC A,(dp+X) IndexedXIndirect(); uint8 Work8 = S9xAPUGetByte(((IAPU.Address))); ADC(IAPU.YA.B.A, Work8); IAPU.PC += 2; }
void Apu96() { // ADC A, abs+Y AbsoluteY(); uint8_t Work8 = S9xAPUGetByte(IAPU.Address); ADC(IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; }
void Apu96() { // ADC A, abs+Y AbsoluteY(); uint8 Work8 = S9xAPUGetByte(((IAPU.Address))); ADC(IAPU.YA.B.A, Work8); IAPU.PC += 3; }
void Apu07() { // OR A,(dp+X) IndexedXIndirect(); IAPU.Registers.YA.B.A |= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.Registers.YA.B.A); IAPU.PC += 2; }
void Apu97() { // ADC A, (dp)+Y IndirectIndexedY(); uint8 Work8 = S9xAPUGetByte(((IAPU.Address))); ADC(IAPU.YA.B.A, Work8); IAPU.PC += 2; }
void Apu17() { // OR A,(dp)+Y IndirectIndexedY(); IAPU.Registers.YA.B.A |= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.Registers.YA.B.A); IAPU.PC += 2; }
void Apu15() { // OR A,abs+X AbsoluteX(); IAPU.YA.B.A |= S9xAPUGetByte(IAPU.Address); APUSetZN8(IAPU.YA.B.A); IAPU.PC += 3; }
void Apu75() { // CMP A,abs+X AbsoluteX(); uint8_t Work8 = S9xAPUGetByte(IAPU.Address); CMP(IAPU.Registers.YA.B.A, Work8); IAPU.PC += 3; }
void Apu1E() { // CMP X,abs Absolute(); uint8_t Work8 = S9xAPUGetByte(IAPU.Address); CMP(IAPU.Registers.X, Work8); IAPU.PC += 3; }
void Apu67() { // CMP A,(dp+X) IndexedXIndirect(); uint8 Work8 = S9xAPUGetByte(((IAPU.Address))); CMP(IAPU.YA.B.A, Work8); IAPU.PC += 2; }
void Apu0C() { // ASL abs Absolute(); uint8_t Work8 = S9xAPUGetByte(IAPU.Address); ASL(Work8); S9xAPUSetByte(Work8, IAPU.Address); IAPU.PC += 3; }