diff options
Diffstat (limited to 'fig-emulator-gb/src/Fig/Emulator/GB/Bus.hs')
| -rw-r--r-- | fig-emulator-gb/src/Fig/Emulator/GB/Bus.hs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fig-emulator-gb/src/Fig/Emulator/GB/Bus.hs b/fig-emulator-gb/src/Fig/Emulator/GB/Bus.hs index 730378a..dd61dbc 100644 --- a/fig-emulator-gb/src/Fig/Emulator/GB/Bus.hs +++ b/fig-emulator-gb/src/Fig/Emulator/GB/Bus.hs @@ -22,16 +22,16 @@ instance Pretty Addr where data Component m = forall (s :: Type). Component { compState :: !s , compMatches :: !(Addr -> Bool) - , compUpdate :: !(s -> m s) + , compUpdate :: !(s -> Int -> m s) , compWrite :: !(s -> Addr -> Word8 -> m s) , compRead :: !(s -> Addr -> m Word8) } newtype Bus m = Bus { busComponents :: [Component m] } -update :: forall m. MonadIO m => Bus m -> m (Bus m) -update b = Bus <$> forM (busComponents b) \Component{..} -> do - s <- compUpdate compState +update :: forall m. MonadIO m => Int -> Bus m -> m (Bus m) +update t b = Bus <$> forM (busComponents b) \Component{..} -> do + s <- compUpdate compState t pure Component { compState = s, ..} write :: forall m. MonadIO m => Bus m -> Addr -> Word8 -> m (Bus m) |
