home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
back2roots/padua
/
padua.7z
/
padua
/
ftp.vapor.com
/
microdot-1
/
md1_src_02.lzx
/
lzw.c
< prev
next >
Wrap
C/C++ Source or Header
|
2014-05-19
|
1KB
|
62 lines
/*#include "microdot.h"*/
#include <proto/exec.h>
#include <exec/memory.h>
int __asm GenCompress(
register __a0 void *source,
register __a1 void *dest,
register __a2 void *hashtable,
register __d0 ULONG size,
register __d1 ULONG maxbits
);
int __asm GenDecompress(
register __a0 void *source,
register __a1 void *dest,
register __a2 void *hash
);
int __asm GenCompTableSize( register __d0 ULONG );
int __asm GenDecompTableSize( register __a0 void * );
int lzw_pack( void *from, void *to, ULONG size, ULONG bits )
{
int hashsize = GenCompTableSize( bits );
void *hash;
int rc;
if( !hashsize )
return( 0 );
hash = AllocMem( hashsize, MEMF_CLEAR );
if( !hash )
return( 0 );
rc = GenCompress( from, to, hash, size, bits );
FreeMem( hash, hashsize );
return( rc );
}
int lzw_unpack( void *from, void *to )
{
int hashsize = GenDecompTableSize( from );
void *hash;
int rc;
if( !hashsize )
return( 0 );
hash = AllocMem( hashsize, MEMF_CLEAR );
if( !hash )
return( 0 );
rc = GenDecompress( from, to, hash );
FreeMem( hash, hashsize );
return( rc );
}