A bit of opcode ordering

This commit is contained in:
2022-11-27 15:31:01 -05:00
parent 10c482b328
commit 074ae9772e
+28 -24
View File
@@ -756,30 +756,6 @@ impl CPU {
0x7C => self.jmp(bus, A::AbsoluteIndexedIndirect(I::X)),
0x5C => self.jmp(bus, A::AbsoluteLong),
0xDC => self.jmp(bus, A::AbsoluteIndirectLong),
// LSR
0x4A => self.lsr(bus, A::Accumulator),
0x4E => self.lsr(bus, A::Absolute),
0x46 => self.lsr(bus, A::DirectPage),
0x5E => self.lsr(bus, A::AbsoluteIndexed(I::X)),
0x56 => self.lsr(bus, A::DirectPageIndexed(I::X)),
// NOP
0xEA => self.nop(),
// ORA
0x09 => self.ora(bus, A::Immediate),
0x0D => self.ora(bus, A::Absolute),
0x0F => self.ora(bus, A::AbsoluteLong),
0x05 => self.ora(bus, A::DirectPage),
0x12 => self.ora(bus, A::DirectPageIndirect),
0x07 => self.ora(bus, A::DirectPageIndirectLong),
0x1D => self.ora(bus, A::AbsoluteIndexed(I::X)),
0x1F => self.ora(bus, A::AbsoluteLongIndexed(I::X)),
0x19 => self.ora(bus, A::AbsoluteIndexed(I::Y)),
0x15 => self.ora(bus, A::DirectPageIndexed(I::X)),
0x01 => self.ora(bus, A::DirectPageIndexedIndirect(I::X)),
0x11 => self.ora(bus, A::DirectPageIndirectIndexed(I::Y)),
0x17 => self.ora(bus, A::DirectPageIndirectLongIndexed(I::Y)),
0x03 => self.ora(bus, A::StackRelative),
0x13 => self.ora(bus, A::StackRelativeIndirectIndexed(I::Y)),
// JSR
0x20 => self.jsr(bus, A::Absolute),
0xFC => self.jsr(bus, A::AbsoluteIndexedIndirect(I::X)),
@@ -812,6 +788,34 @@ impl CPU {
0xA4 => self.ldy(bus, A::DirectPage),
0xB4 => self.ldy(bus, A::AbsoluteIndexed(I::Y)),
0xBC => self.ldy(bus, A::DirectPageIndexed(I::Y)),
// LSR
0x4A => self.lsr(bus, A::Accumulator),
0x4E => self.lsr(bus, A::Absolute),
0x46 => self.lsr(bus, A::DirectPage),
0x5E => self.lsr(bus, A::AbsoluteIndexed(I::X)),
0x56 => self.lsr(bus, A::DirectPageIndexed(I::X)),
// MVN
0x54 => unimplemented!("MVN instruction not implemented yet"),
// MVP
0x44 => unimplemented!("MVP instruction not implemented yet"),
// NOP
0xEA => self.nop(),
// ORA
0x09 => self.ora(bus, A::Immediate),
0x0D => self.ora(bus, A::Absolute),
0x0F => self.ora(bus, A::AbsoluteLong),
0x05 => self.ora(bus, A::DirectPage),
0x12 => self.ora(bus, A::DirectPageIndirect),
0x07 => self.ora(bus, A::DirectPageIndirectLong),
0x1D => self.ora(bus, A::AbsoluteIndexed(I::X)),
0x1F => self.ora(bus, A::AbsoluteLongIndexed(I::X)),
0x19 => self.ora(bus, A::AbsoluteIndexed(I::Y)),
0x15 => self.ora(bus, A::DirectPageIndexed(I::X)),
0x01 => self.ora(bus, A::DirectPageIndexedIndirect(I::X)),
0x11 => self.ora(bus, A::DirectPageIndirectIndexed(I::Y)),
0x17 => self.ora(bus, A::DirectPageIndirectLongIndexed(I::Y)),
0x03 => self.ora(bus, A::StackRelative),
0x13 => self.ora(bus, A::StackRelativeIndirectIndexed(I::Y)),
_ => println!("Invalid opcode: {:02X}", opcode),
}
}