diff --git a/src/main/scala/com/htmlism/AddressingMode.scala b/src/main/scala/com/htmlism/AddressingMode.scala index ab0e927..f74b34e 100644 --- a/src/main/scala/com/htmlism/AddressingMode.scala +++ b/src/main/scala/com/htmlism/AddressingMode.scala @@ -5,6 +5,7 @@ sealed trait AddressingMode case object Immediate extends AddressingMode case object ZeroPage extends AddressingMode case object ZeroPageX extends AddressingMode +case object ZeroPageY extends AddressingMode case object Absolute extends AddressingMode case object AbsoluteX extends AddressingMode case object AbsoluteY extends AddressingMode diff --git a/src/main/scala/com/htmlism/MatchOpcodes.scala b/src/main/scala/com/htmlism/MatchOpcodes.scala index 989c022..9de2e73 100644 --- a/src/main/scala/com/htmlism/MatchOpcodes.scala +++ b/src/main/scala/com/htmlism/MatchOpcodes.scala @@ -18,10 +18,14 @@ object MatchOpcodes { .toMap // format: off - def injectedOpcodesJump: Map[Int, (Instruction, AddressingMode)] = + def injectedOpcodesSpecific: Map[Int, (Instruction, AddressingMode)] = Map( 0x4C -> (JMP -> Absolute), 0x6C -> (JMP -> Indirect), + + 0x96 -> (STX -> ZeroPageY), + 0xB6 -> (LDX -> ZeroPageY), + 0xBE -> (LDX -> AbsoluteY), ) def injectedOpcodesRelative: Map[Int, (Instruction, AddressingMode)] = @@ -75,7 +79,7 @@ object MatchOpcodes { generatedOpcodes ++ injectedOpcodesImplied ++ injectedOpcodesRelative ++ - injectedOpcodesJump + injectedOpcodesSpecific out.print("