module MMDDump where import Amiga data MMDDump = MMDDump { len :: ULONG , dat :: [ UBYTE ] , ext_len :: UWORD , name :: Maybe [ UBYTE ] } deriving (Show) peek :: MEM -> PTR -> IO MMDDump peek m p = do len' <- peekULONG m (p+0) dat'' <- peekPTR m (p+4) dat' <- mapM (peekUBYTE m) $ pointerRangeGenCheck dat'' 1 len' ext_len' <- peekUWORD m (p+8) name' <- skipIf (ext_len' < 20) $ mapM (peekUBYTE m) $ pointerRange (p+10) 1 20 return $ MMDDump len' dat' ext_len' name'