     # Register transfer instructions
     ###########################################################
 
-    TAX: =>
+    TAX: ->
         @$storeValueIntoRegisterX @accumulator
 
-    TAY: =>
+    TAY: ->
         @$storeValueIntoRegisterY @accumulator
 
-    TXA: =>
+    TXA: ->
         @$storeValueIntoAccumulator @registerX
 
-    TYA: =>
+    TYA: ->
         @$storeValueIntoAccumulator @registerY
 
-    TSX: =>
+    TSX: ->
         @$storeValueIntoRegisterX @stackPointer
 
-    TXS: =>
+    TXS: ->
         @stackPointer = @registerX
 
     ###########################################################
     # Stack push instructions
     ###########################################################
 
-    PHA: =>
+    PHA: ->
         @$pushByte @accumulator
 
-    PHP: =>
+    PHP: ->
         @$pushByte @$getStatus() | 0x10 # It pushes status with bit 4 on (break command flag)
 
     ###########################################################
     # Stack pop instructions
     ###########################################################
 
-    PLA: =>
+    PLA: ->
         @$storeValueIntoAccumulator @$popByte()
 
-    PLP: =>
+    PLP: ->
         @$setStatus @$popByte()
 
     ###########################################################
     # Accumulator bitwise instructions
     ###########################################################
 
-    AND: (address) =>
+    AND: (address) ->
         @$storeValueIntoAccumulator @accumulator & @$readByte address
 
-    ORA: (address) =>
+    ORA: (address) ->
         @$storeValueIntoAccumulator @accumulator | @$readByte address
 
-    EOR: (address) =>
+    EOR: (address) ->
         @$storeValueIntoAccumulator @accumulator ^ @$readByte address
 
-    BIT: (address) =>
+    BIT: (address) ->
         value = @$readByte address
         @zeroFlag = (@accumulator & value) == 0
         @overflowFlag = (value >>> 6) & 1

        @emptyReadCycles = operation.emptyReadCycles
        @emptyWriteCycles = operation.emptyWriteCycles

        instruction addressingMode()

    readOperation: ->
        @operationsTable[@$readNextProgramByte()]

    # No operation instruction
    ###########################################################

    NOP: ->

    ###########################################################
    # Clear flag instructions
    ###########################################################

    CLC: ->
        @carryFlag = 0

    CLI: ->
        @interruptDisable = 0

    CLD: ->
        @decimalMode = 0

    CLV: ->
        @overflowFlag = 0

    ###########################################################
    # Set flag instructions
    ###########################################################

    SEC: ->
        @carryFlag = 1

    SEI: ->
        @interruptDisable = 1

    SED: ->
        @decimalMode = 1

    ###########################################################
    # Memory write instructions
    ###########################################################

    STA: (address) ->
        @$writeByte address, @accumulator

    STX: (address) ->
        @$writeByte address, @registerX

    SAX: (address) ->
        @$writeByte address, @accumulator & @registerX

    STY: (address) ->
        @$writeByte address, @registerY

    SHA: (address) -> # Also known as AHX
        @$storeHighAddressIntoMemory address, @accumulator & @registerX

    SHX: (address) -> # Also known as SXA
        @$storeHighAddressIntoMemory address, @registerX

    SHY: (address) -> # Also known as SYA
        @$storeHighAddressIntoMemory address, @registerY

    ###########################################################
    # Memory read instructions
    ###########################################################

    LDA: (address) ->
        @$storeValueIntoAccumulator @$readByte address

    LDX: (address) ->
        @$storeValueIntoRegisterX @$readByte address

    LDY: (address) ->
        @$storeValueIntoRegisterY @$readByte address

    LAX: (address) ->
        value = @$readByte address
        @$storeValueIntoAccumulator value
        @$storeValueIntoRegisterX value

    LAS: (address) ->
        @stackPointer &= @$readByte address
        @$storeValueIntoAccumulator @stackPointer
        @$storeValueIntoRegisterX @stackPointer
