module Sound.MED.Raw.MMDARexxTrigCmd where
import Sound.MED.Basic.Amiga
import Sound.MED.Basic.Utility
data MMDARexxTrigCmd = MMDARexxTrigCmd
{ next :: Maybe MMDARexxTrigCmd
, cmdnum :: UBYTE
, pad :: UBYTE
, cmdtype :: WORD
, cmd :: [ UBYTE ]
, port :: [ UBYTE ]
, cmd_len :: UWORD
, port_len :: UWORD
}
deriving (Show)
peek :: (Reader m) => PTR -> m MMDARexxTrigCmd
peek p = do
next''' <- peekPTR p
next' <- peek $? next'''
cmdnum' <- peekUBYTE (p+4)
pad' <- peekUBYTE (p+5)
cmdtype' <- peekWORD (p+6)
cmd'' <- peekPTR (p+8)
port'' <- peekPTR (p+12)
cmd_len' <- peekUWORD (p+16)
port_len' <- peekUWORD (p+18)
cmd' <- mapM peekUBYTE $ pointerRangeGenCheck cmd'' 1 (cmd_len'+1)
port' <- mapM peekUBYTE $ pointerRangeGenCheck port'' 1 (port_len'+1)
return $ MMDARexxTrigCmd
next' cmdnum' pad' cmdtype' cmd' port' cmd_len' port_len'