     # Increment instructions
     ###########################################################
 
-    INC: (address) =>
+    INC: (address) ->
         @$storeValueIntoMemory address, ((@$readByte address) + 1) & 0xFF
 
-    INX: =>
+    INX: ->
         @$storeValueIntoRegisterX (@registerX + 1) & 0xFF
 
-    INY: =>
+    INY: ->
         @$storeValueIntoRegisterY (@registerY + 1) & 0xFF
 
     ###########################################################
     # Decrement instructions
     ###########################################################
 
-    DEC: (address) =>
+    DEC: (address) ->
         @$storeValueIntoMemory address, ((@$readByte address) - 1) & 0xFF
 
-    DEX: =>
+    DEX: ->
         @$storeValueIntoRegisterX (@registerX - 1) & 0xFF
 
-    DEY: =>
+    DEY: ->
         @$storeValueIntoRegisterY (@registerY - 1) & 0xFF
 
     ###########################################################
     # Comparison instructions
     ###########################################################
 
-    CMP: (address) =>
+    CMP: (address) ->
         @$compareRegisterAndMemory @accumulator, address
 
-    CPX: (address) =>
+    CPX: (address) ->
         @$compareRegisterAndMemory @registerX, address
 
-    CPY: (address) =>
+    CPY: (address) ->
         @$compareRegisterAndMemory @registerY, address
 
     ###########################################################
     # Branching instructions
     ###########################################################
 
-    BCC: (address) =>
+    BCC: (address) ->
         @$branchIf not @carryFlag, address
 
-    BCS: (address) =>
+    BCS: (address) ->
         @$branchIf @carryFlag, address
 
-    BNE: (address) =>
+    BNE: (address) ->
         @$branchIf not @zeroFlag, address
 
-    BEQ: (address) =>
+    BEQ: (address) ->
         @$branchIf @zeroFlag, address
 
-    BVC: (address) =>
+    BVC: (address) ->
         @$branchIf not @overflowFlag, address
 
-    BVS: (address) =>
+    BVS: (address) ->
         @$branchIf @overflowFlag,  address
 
-    BPL: (address) =>
+    BPL: (address) ->
         @$branchIf not @negativeFlag, address
 
-    BMI: (address) =>
+    BMI: (address) ->
         @$branchIf @negativeFlag, address
 
     ###########################################################
     # Jump / subroutine instructions
     ###########################################################
 
-    JMP: (address) =>
+    JMP: (address) ->
         @programCounter = address
 
-    JSR: (address) =>
+    JSR: (address) ->
         @$pushWord (@programCounter - 1) & 0xFFFF # The pushed address must be the end of the current instruction
         @programCounter = address
 
-    RTS: =>
+    RTS: ->
         @programCounter = (@$popWord() + 1) & 0xFFFF # We decremented the address when pushing it during JSR
         @tick()
 

    # Indirect addressing modes
    ###########################################################

    indirectMode: =>
        @$readWordFromSamePage @$readNextProgramWord()

    indirectXMode: =>
        @$readWordFromSamePage @zeroPageXMode()

    indirectYMode: =>
        base = @$readWordFromSamePage @$readNextProgramByte()
        @$getIndexedAddressWord base, @registerY


    # Interrupt control instructions
    ###########################################################

    BRK: ->
        @$moveProgramCounter 1 # BRK is 2 byte instruction
        @$pushWord @programCounter
        @$pushByte @$getStatus() | 0x10 # It pushes status with bit 4 on (break command flag)
        @interruptDisable = 1
        @programCounter = @$readWord 0xFFFE

    RTI: ->
        @$setStatus @$popByte()
        @programCounter = @$popWord()

