diff options
Diffstat (limited to 'fig-emulator-gb/src/Fig/Emulator/GB/Component/ROM.hs')
| -rw-r--r-- | fig-emulator-gb/src/Fig/Emulator/GB/Component/ROM.hs | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/fig-emulator-gb/src/Fig/Emulator/GB/Component/ROM.hs b/fig-emulator-gb/src/Fig/Emulator/GB/Component/ROM.hs deleted file mode 100644 index 6aafc46..0000000 --- a/fig-emulator-gb/src/Fig/Emulator/GB/Component/ROM.hs +++ /dev/null @@ -1,45 +0,0 @@ -module Fig.Emulator.GB.Component.ROM - ( compROM - ) where - -import Fig.Prelude -import Prelude (fromIntegral) - -import qualified Data.Vector as V -import qualified Data.ByteString as BS - -import Fig.Emulator.GB.Bus - -newtype ROMError = ROMError Text - deriving Show -instance Exception ROMError -instance Pretty ROMError where - pretty (ROMError b) = mconcat - [ "internal ROM error: " - , b - ] - --- | Initialize base ROM (no mapper) from a ByteString -compROM :: ByteString -> Component -compROM bs = Component - { compState = V.fromList $ BS.unpack bs - , compMatches = \a -> - a >= start && a < end - , compUpdate = \s _ -> pure s - , compWrite = \s _ad _v -> - pure s - -- throwM . ROMError $ mconcat - -- [ "tried to write to ROM at ", pretty ad - -- ] - , compRead = \s ad -> do - let offset = fromIntegral . unAddr $ ad - start - case s V.!? offset of - Nothing -> throwM . ROMError $ mconcat - [ "address ", pretty ad, " out of bounds" - ] - Just v -> pure v - } - where - start = 0x0000 - -- end = 0x4000 - end = 0x8000 |
