From 4bc8bd58e6f9a6ca509d4e6869ba10c65145775d Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Sun, 1 Jun 2025 19:07:25 -0400 Subject: Remove fig-emulator-gb --- .../src/Fig/Emulator/GB/Component/RAM.hs | 40 ---------------------- 1 file changed, 40 deletions(-) delete mode 100644 fig-emulator-gb/src/Fig/Emulator/GB/Component/RAM.hs (limited to 'fig-emulator-gb/src/Fig/Emulator/GB/Component/RAM.hs') diff --git a/fig-emulator-gb/src/Fig/Emulator/GB/Component/RAM.hs b/fig-emulator-gb/src/Fig/Emulator/GB/Component/RAM.hs deleted file mode 100644 index 4dc5715..0000000 --- a/fig-emulator-gb/src/Fig/Emulator/GB/Component/RAM.hs +++ /dev/null @@ -1,40 +0,0 @@ -module Fig.Emulator.GB.Component.RAM - ( compWRAM - ) where - -import Fig.Prelude - -import qualified Data.Vector as V -import qualified Data.Vector.Mutable as MV -import Data.Word (Word8) - -import Fig.Emulator.GB.Bus - -newtype RAMError = RAMError Text - deriving Show -instance Exception RAMError -instance Pretty RAMError where - pretty (RAMError b) = mconcat - [ "internal RAM error: " - , b - ] - -compWRAM :: Addr -> Int -> Component -compWRAM start size = Component - { compState = V.replicate size 0 :: V.Vector Word8 - , compMatches = \a -> - a >= start && a <= end - , compUpdate = \s _ -> {-# SCC "ComponentWRAMUpdate" #-} pure s - , compWrite = \s ad v -> {-# SCC "ComponentWRAMWrite" #-} do - let offset = fromIntegral . unAddr $ ad - start - pure $ V.modify (\ms -> MV.write ms offset v) s - , compRead = \s ad -> {-# SCC "ComponentWRAMRead" #-} do - let offset = fromIntegral . unAddr $ ad - start - case s V.!? offset of - Nothing -> throwM . RAMError $ mconcat - [ "address ", pretty ad, " out of bounds" - ] - Just v -> pure v - } - where - end = start + Addr (fromIntegral (size - 1)) -- cgit v1.2.3