         @tempXScroll = 0    #  3-bit
 
     resetVariables: ->
-        @scanline = -1 # Total 262 scanlines (0..261)
-        @cycle = 0     # Total 341 cycles per scanline (0..340)
-        @renderedSprite = null
+        @scanline = -1         # Total 262 scanlines (0..261)
+        @cycle = 0             # Total 341 cycles per scanline (0..340)
+        @renderedSprite = null # Currently rendered sprite
+        @delayedNMI = false    # Generate NMI after next instruction when its enabled (from 0 to 1) during VBLANK
 
     setNTSCMode: (ntscMode) ->
         @ntscMode = ntscMode

        @spPatternTableAddress = (value  << 9) & 0x1000 # C[3] -> 0x0000 / 0x1000
        @bgPatternTableAddress = (value  << 8) & 0x1000 # C[4] -> 0x0000 / 0x1000
        @bigSprites            = (value >>> 5) & 1      # C[5]
        @vblankGeneratesNMI    = (value >>> 7)          # C[7]

    ###########################################################
    # Mask register

        @$updateScrolling() if @$isRenderingActive()
        @$updateVBlank()
        @$incrementCycle()
        @$generateDelayedNMI() if @delayedNMI

    isRenderingCycle: ->
        0 <= @scanline <= 239 and 1 <= @cycle <= 256
