unmed2-0.0: src/MMDARexxTrigCmd.hs
module MMDARexxTrigCmd where
import Amiga
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 :: MEM -> PTR -> IO MMDARexxTrigCmd
peek m p = do
next''' <- peekPTR m p
next' <- peek m $? next'''
cmdnum' <- peekUBYTE m (p+4)
pad' <- peekUBYTE m (p+5)
cmdtype' <- peekWORD m (p+6)
cmd'' <- peekPTR m (p+8)
port'' <- peekPTR m (p+12)
cmd_len' <- peekUWORD m (p+16)
port_len' <- peekUWORD m (p+18)
cmd' <- mapM (peekUBYTE m) $ pointerRangeGenCheck cmd'' 1 (cmd_len'+1)
port' <- mapM (peekUBYTE m) $ pointerRangeGenCheck port'' 1 (port_len'+1)
return $ MMDARexxTrigCmd
next' cmdnum' pad' cmdtype' cmd' port' cmd_len' port_len'