diff --git a/snes-core/src/cpu/instructions.rs b/snes-core/src/cpu/instructions.rs index 3019ec0..b07692e 100644 --- a/snes-core/src/cpu/instructions.rs +++ b/snes-core/src/cpu/instructions.rs @@ -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), } }