             tick()
             tick()
 
+        @registerInstruction Instruction.RTS, (address) ->
+            operand = @readByte address
+            result = @accumulator - operand
+            result-- if @carryFlag is off
+            @carryFlag = not @isOverflow result
+            @zeroFlag = @isZero result
+            @overflowFlag = @isSignedOverflow @accumulator, operand, result
+            @negativeFlag = @isNegative result
+            @accumulator = result & 0xFF
+
+        @registerInstruction Instruction.SEC, ->
+            @carryFlag = on
+
+        @registerInstruction Instruction.SED, ->
+            @decimalMode = on
+
+        @registerInstruction Instruction.SEI, ->
+            @interruptDisable = on
+
+        @registerInstruction Instruction.LDA, (address) ->
+            @writeByte address @accumulator
+
+        @registerInstruction Instruction.LDX, (address) ->
+            @writeByte address @registerX
+
+        @registerInstruction Instruction.LDY, (address) ->
+            @writeByte address @registerY
+
+        @registerInstruction Instruction.TAX, ->
+            @registerX = @accumulator
+            @zeroFlag = @isZero @registerX
+            @negativeFlag = @isNegative @registerX
+
+        @registerInstruction Instruction.TAY, ->
+            @registerY = @accumulator
+            @zeroFlag = @isZero @registerY
+            @negativeFlag = @isNegative @registerY
+
+        @registerInstruction Instruction.TSX, ->
+            @registerX = @stackPointer
+            @zeroFlag = @isZero @registerX
+            @negativeFlag = @isNegative @registerX
+
+        @registerInstruction Instruction.TXA, ->
+            @accumulator = @registerX
+            @zeroFlag = @isZero @accumulator
+            @negativeFlag = @isNegative @accumulator
+
+        @registerInstruction Instruction.TXS, ->
+            @stackPointer = @registerX
+
+        @registerInstruction Instruction.TYA, ->
+            @accumulator = @registerY
+            @zeroFlag = @isZero @accumulator
+            @negativeFlag = @isNegative @accumulator
+
     registerInstruction: (instruction, execution) ->
         @instructionsTable[instruction] = execution
 


        @registerOperation 0x60, Instruction.RTS, AddressingMode.Implied,     no,  no

    registerOperation: (operationCode, instruction, addressingMode, emptyReadCycle, emptyWriteCycle) ->
        @operationsTable[operationCode] = 
            instruction: instruction

    compareRegisterAndMemory: (register, address) -> 
        operand = @readByte address
        result = register - operand 
        @carryFlag = result >= 0
        @computeZeroFlag result
        @computeNegativeFlag result

