diff options
Diffstat (limited to 'backends/PalmOS/Src/arm/decompressrle7.cpp')
| -rwxr-xr-x | backends/PalmOS/Src/arm/decompressrle7.cpp | 27 | 
1 files changed, 27 insertions, 0 deletions
| diff --git a/backends/PalmOS/Src/arm/decompressrle7.cpp b/backends/PalmOS/Src/arm/decompressrle7.cpp new file mode 100755 index 0000000000..49976d6a95 --- /dev/null +++ b/backends/PalmOS/Src/arm/decompressrle7.cpp @@ -0,0 +1,27 @@ +#include "native.h" +#include "endianutils.h" + +#define MAIN_TYPE	CompressType +#include "macros.h" + +UInt32 Screen_decompressRLE7(void *userData68KP) { +// import variables +	SETPTR	(UInt8 *	,src	); +	SET32	(UInt32,	compSize); +	SETPTR	(UInt8 *	,dest	); +// end of import + +	uint8 *compBufEnd = src + compSize; +	while (src < compBufEnd) { +		uint8 code = *src++; +		if ((code > 127) || (code == 0)) +			*dest++ = code; +		else { +			code++; +			MemSet(dest, code, *src++); +			dest += code; +		} +	} +	 +	return 0; +} | 
