Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uwm.edu!bionet!agate!usenet.ins.cwru.edu!ysub!psuvm!blekul11!ghgaea8 From: GHGAEA8@cc1.kuleuven.ac.be Newsgroups: comp.compression Subject: LZRW1 derivative for 68000 Message-ID: <91122.153744GHGAEA8@cc1.kuleuven.ac.be> Date: 2 May 91 15:35:44 GMT Organization: K.U.Leuven - Academic Computing Center Lines: 416 This file was written on an Amiga and then copied onto VM, therefor lines may ve longer than some mailers ro readers can handle, if so, I will UUENCODE the file and post it again. All bug reports are welcome at the addresses given in the listing ... A C listing containing the optimized LZRW1 compression will follow soon ! I added some optimization to the program when it was already on VM, so I haven't been able to test that yet. It's the part between the ELSE and ENDIF statements in FindMatch. If you should find a bug, be so kind as to report it ... Simply post it to Netnews and mail it to GHGAEA8 @ BLEKUL11 ************************************************************************** ** ** ** ###### # #### ## ## #### #### ## ## ##### ** ** ## ## ### ## ## ## ## ## ## ## ## ### ### ## ## ** ** ## ## ## ## ###### ## ## ## ####### ## ## ** ** #### ####### #### #### ## ## ## ## # ## ##### ** ** ## ## ## ## ## ## ## ## ## ## ## ** ** ## ## ## ## ## ## ## ## ## ## ## ## ## ## ** ** ###### ## ## #### ## #### #### ## ## ## ** ** ** ** A fast and easy-to-understand compression algoritm ** ** ** ** ** ** This compression routine is based on an algoritme written ** ** by Ross N. Williams. Some optimization was done by Kurt ** ** Haenen and the code was rewritten for 68000 assembler. ** ** ** ** If you should enhance or modify this code in any way, you ** ** should put an article in Netnews describing the changes ** ** you made and you should also include the source. This is ** ** not done to control the usage of the program (by the way, ** ** this stuff is completely public domain), but to keep up ** ** with the possible optimizations and enhancements which ** ** can be useful for others aswell ! I hope you'll like the ** ** code. I think this routine has one of the highest speed ** ** vs. compression ratios, zoo sometimes compresses better, ** ** but is much slower. There could still be some unefficient ** ** code floating around here ... for you to find it and post ** ** the fixed versions. Hope to hear from you all very soon. ** ** ** ** Kurt HAENEN ** ** ** ** Special thanks should go to the following persons: ** ** ** ** - Ross N. Williams for the original algoritm published in ** ** "An extremely fast data compression algoritm", Data ** ** Compression Conference, Utah, 7-11 April, 1991. ** ** - Sigrid Pinnoy for her constant support and her efforts ** ** to keep me away from my Amiga and study instead. ** ** - Lieven van Uytfanghe for his constant critics on my ** ** work and his supply of Bicky Burgers. ** ** - All the guys I know at the URC KU Leuven, who allow me ** ** to read netnews and get some EMAILs. ** ** ** ** If you should like to contact me, you can always try ** ** sending an EMAIL to GHGAEA8 @ BLEKUL11, however this ** ** account is only temporarily at my disposal, so if it's ** ** really important : ** ** my "-M-essing -A-round -I-n my -L-etters" address is ... ** ** ** ** Kurt HAENEN ** ** Homsemstraat 53 ** ** 3891 Borlo ** ** Belgium ** ** ** **----------------------------------------------------------------------** ** ANNOUNCEMENT UNDER THE NAME UTOPIA : ** ** ** ** /// I AM STILL SEARCHING FOR SOMEONE WHO'S ** ** /// WILLING TO DONATE AN AMIGA 3000 TO ME. ** ** \\\/// IF YOU'RE INTERESTED ... DON'T WAIT ! ** ** \XX/ SEND ME AN EMAIL, MAIL, OR ... ** ** ** ************************************************************************** ************************************************************************** ** ** ** This code was designed to be compiled with the MACRO 68 ** ** assembler on the Amiga. It should be easy to convert to ** ** other assemblers. Try removing the following lines ... ** ** ** ************************************************************************** EXEOBJ NEWSYNTAX MC68000 SYM ************************************************************************** ** ** ** Some Constants we use ** ** ** ************************************************************************** Block_CopiedAll EQU %10000000 Block_EasyCompression EQU %01000000 EntryBitsPerHash EQU 0 EntriesPerHash EQU (1<