Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
RetroClash.Memory
Documentation
type RAM dom addr dat = Signal dom addr -> Signal dom (Maybe (addr, dat)) -> Signal dom dat Source #
type Port dom addr dat a = Signal dom (Maybe (PortCommand addr dat)) -> (Signal dom dat, a) Source #
data Addressing addr a Source #
Instances
Applicative (Addressing addr) Source # | |
Defined in RetroClash.Memory Methods pure :: a -> Addressing addr a # (<*>) :: Addressing addr (a -> b) -> Addressing addr a -> Addressing addr b # liftA2 :: (a -> b -> c) -> Addressing addr a -> Addressing addr b -> Addressing addr c # (*>) :: Addressing addr a -> Addressing addr b -> Addressing addr b # (<*) :: Addressing addr a -> Addressing addr b -> Addressing addr a # | |
Functor (Addressing addr) Source # | |
Defined in RetroClash.Memory Methods fmap :: (a -> b) -> Addressing addr a -> Addressing addr b # (<$) :: a -> Addressing addr b -> Addressing addr a # | |
Monad (Addressing addr) Source # | |
Defined in RetroClash.Memory Methods (>>=) :: Addressing addr a -> (a -> Addressing addr b) -> Addressing addr b # (>>) :: Addressing addr a -> Addressing addr b -> Addressing addr b # return :: a -> Addressing addr a # |
memoryMap :: forall addr a. Backpane a => Addr -> Dat -> Addressing addr a -> Component Source #
memoryMap_ :: forall addr dat. Addr -> Dat -> Addressing addr () -> Dat Source #
readWrite :: forall addr' addr. (Addr -> Dat -> Component) -> Addressing addr (Handle addr', Result) Source #
readWrite_ :: forall addr' addr. (Addr -> Dat -> Dat) -> Addressing addr (Handle addr') Source #
romFromVec :: 1 <= n => SNat n -> ExpQ -> Addressing addr (Handle (Index n)) Source #
romFromFile :: 1 <= n => SNat n -> ExpQ -> Addressing addr (Handle (Index n)) Source #
ramFromFile :: SNat n -> ExpQ -> Addressing addr (Handle (Index n)) Source #
connect :: Handle addr -> Addressing addr () Source #
override :: ExpQ -> Addressing addr () Source #
from :: forall addr' addr a. (Typeable addr', Lift addr) => (Integral addr, Ord addr, Integral addr', Bounded addr') => addr -> Addressing addr' a -> Addressing addr a Source #
matchJust :: Addressing addr a -> Addressing (Maybe addr) a Source #
matchLeft :: Addressing addr1 a -> Addressing (Either addr1 addr2) a Source #
matchRight :: Addressing addr2 a -> Addressing (Either addr1 addr2) a Source #
tag :: Lift addr' => addr' -> Addressing (addr', addr) a -> Addressing addr a Source #