From e63111ea98bc1b5b55e99e197e75736350169840 Mon Sep 17 00:00:00 2001 From: pingu Date: Mon, 30 Mar 2026 13:10:23 +0200 Subject: [PATCH] No more const where it is not needed --- src/GB/CPU.hs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/GB/CPU.hs b/src/GB/CPU.hs index 4eb07f3..5d3d00e 100644 --- a/src/GB/CPU.hs +++ b/src/GB/CPU.hs @@ -108,12 +108,12 @@ execute cpu = \case H -> cpu ^. registers . h L -> cpu ^. registers . l (newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in - cpu & registers . a %~ const newValue & registers . flags %~ const newFlags + cpu & registers . a .~ newValue & registers . flags .~ newFlags AddHL _c -> let value = fetch cpu . getHL $ cpu ^. registers (newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in - cpu & registers . a %~ const newValue & registers . flags %~ const newFlags + cpu & registers . a .~ newValue & registers . flags .~ newFlags AddN value _c -> let (newValue, newFlags) = add (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in - cpu & registers . a %~ const newValue & registers . flags %~ const newFlags + cpu & registers . a .~ newValue & registers . flags .~ newFlags SubR t _c -> let value = case t of A -> cpu ^. registers . a B -> cpu ^. registers . b @@ -123,12 +123,12 @@ execute cpu = \case H -> cpu ^. registers . h L -> cpu ^. registers . l (newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in - cpu & registers . a %~ const newValue & registers . flags %~ const newFlags + cpu & registers . a .~ newValue & registers . flags .~ newFlags SubHL _c -> let value = fetch cpu . getHL $ cpu ^. registers (newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in - cpu & registers . a %~ const newValue & registers . flags %~ const newFlags + cpu & registers . a .~ newValue & registers . flags .~ newFlags SubN value _c -> let (newValue, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in - cpu & registers . a %~ const newValue & registers . flags %~ const newFlags + cpu & registers . a .~ newValue & registers . flags .~ newFlags CpR t _c -> let value = case t of A -> cpu ^. registers . a B -> cpu ^. registers . b @@ -138,12 +138,12 @@ execute cpu = \case H -> cpu ^. registers . h L -> cpu ^. registers . l (_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in - cpu & registers . flags %~ const newFlags + cpu & registers . flags .~ newFlags CpHL _c -> let value = fetch cpu . getHL $ cpu ^. registers (_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers . flags . carry in - cpu & registers . flags %~ const newFlags + cpu & registers . flags .~ newFlags CpN value _c -> let (_, newFlags) = sub (cpu ^. registers . a) value $ _c && cpu ^. registers .flags . carry in - cpu & registers . flags %~ const newFlags + cpu & registers . flags .~ newFlags IncR t -> let (target, target') = case t of A -> (a,a) B -> (b,b) @@ -153,11 +153,11 @@ execute cpu = \case H -> (h,h) L -> (l,l) (value, newFlags) = add (cpu ^. registers . target) 1 False in - cpu & registers . target' %~ const value & registers . flags %~ const newFlags + cpu & registers . target' .~ value & registers . flags .~ newFlags IncHL -> let target = getHL $ cpu ^. registers value = fetch cpu target (newValue, newFlags) = add value 1 False in - cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags %~ const newFlags + cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags .~ newFlags DecR t -> let (target, target') = case t of A -> (a,a) B -> (b,b) @@ -167,11 +167,11 @@ execute cpu = \case H -> (h,h) L -> (l,l) (value, newFlags) = sub (cpu ^. registers . target) 1 False in - cpu & registers . target' %~ const value & registers . flags %~ const newFlags + cpu & registers . target' .~ value & registers . flags .~ newFlags DecHL -> let target = getHL $ cpu ^. registers value = fetch cpu target (newValue, newFlags) = sub value 1 False in - cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags %~ const newFlags + cpu & bus %~ (flip V.update $ V.singleton (fromIntegral target, newValue)) & registers . flags .~ newFlags where add :: Word8 -> Word8 -> Bool -> (Word8, FlagRegister) add o n _c = let new = o + n + if _c then 1 else 0