module Nes.CPU.Instructions.Interrupt (brk) where

import Nes.CPU.Monad
import Nes.Internal.MonadState
import Nes.Interrupt

brk :: CPU r ()
brk :: forall r. CPU r ()
brk = do
    CPU r ()
forall r. CPU r ()
incrementPC
    (InterruptStatus -> InterruptStatus) -> CPU r ()
forall s (m :: * -> *). MonadState s m => (s -> s) -> m ()
modify ((InterruptStatus -> InterruptStatus) -> CPU r ())
-> (InterruptStatus -> InterruptStatus) -> CPU r ()
forall a b. (a -> b) -> a -> b
$ \InterruptStatus
s -> InterruptStatus
s{irq = Just BRK}