dhesi@bsu-cs.bsu.edu (Rahul Dhesi) (04/17/89)
In view of the great interest in lzhuf.c and lharc (both recently
posted on Usenet in comp.binaries.ibm.pc), and my own interest in
including that algorithm in the zoo archive program, I hereby announce
the following programming contest.
1. The objective of the contest is to write two C functions defined
as follows:
int lzhc (inf, outf) /* does lzh compression */
FILE *inf, *outf;
int lzhd (inf, outf) /* does lzh uncompression */
FILE *inf, *outf;
Each function shall receive open file pointers in inf and outf.
It shall read from inf and write to outf. Its return value shall
be 0 if no error occurred, 1 if output to outf failed (possibly
because of a full disk or a disk error), and 2 or more if any
other error occurred (such as not enough memory). Neither
function is permitted to print anything to any other file.
2. There will be one top prize, of $100 in US dollars, and two possible
bonus prizes of $50 each. I shall be the sole judge and my
decision is final. (I have the honor of being judge because I'm
donating the prize money.) The criteria for judging shall include
portability and speed of code. The top prize will definitely be
awarded.
In case any unexpected loopholes are found in the contest rules, I
reserve the right to close them as I see fit.
The compressed output of your code must be able to be extracted by
the decoding part of the original lzhuf program posted in
comp.binaries.ibm.pc. It is permissible to use that original
lzhuf program as the basis for your own program, provided you
adhere to its copyright conditions.
3. Your entry, if it wins, must be declared by you to be freely
usable and distributable by all for any noncommercial purpose.
4. Your entry must compile and run correctly in each of the
following four environments: (a) MS-DOS, using any version of
your choice of Borland's Turbo C. (b) 4.3BSD as distributed by
the University of California, Berkeley. (c) Microport System V/AT
(a port of System V Release 2). (d) VAX/VMS 4.7 as available here
to me. Entries that need slight changes to be compiled on these
environments will be considered, but will downrated by an amount
commensurate with the changes needed.
5. No conditional compilation is permitted, i.e., the same source
code must work on all these environments, and no predefined
preprocessor symbols may be assumed except for NULL. (Note:
4.3BSD does have the strchr and strrchr functions.)
6. Only the following standard library functions and macros may be
used:
assert, exit, fclose, feof, fflush, fgetc, fgets, fopen, fprintf,
fputc, free, fread, fscanf, fwrite, getc, getchar, malloc, perror,
printf, putc, putchar, scanf, strcat, strncat, strchr, strrchr,
strcpy, strncpy, strcmp, strncmp, strlen
(In particular, the use of fseek, ftell, memmove, and memcpy is
not permitted.) Only the following standard header file may be
used: <stdio.h>.
6. Your code must be completely independent of byte order ("endedness")
and size of the standard data types, except that you may
optionally assume that characters are exactly 8 bits.
7. All entries must be submitted by electronic mail to the address
contest@bsu-cs.bsu.edu so they reach *after* May 15 and *on or
before* May 30. This special userid will not exist before then
nor after then. Entries mailed to me directly don't count. There
is no penalty for duplicate entries, so if mail seems to fail, you
can try again.
However, if you have a suggestion or question about this contest,
mail it directly to me at the address given at the end of this
document.
8. Based on discussion that may follow, I reserve the right to change
these rules arbitrarily at any time before April 26. (This allows
ten days to fix loopholes and ambiguities, etc.)
9. Entries must be mailed in a format that I can conveniently extract on
our 4.3BSD system. Currently these are: shar, arc, zoo. (Any
binary format should be uuencoded or atob'd.)
10. The two bonus prizes shall be awarded for well-implemented
assembly language routines for the 8086 and 6800 processors
respectively. I reserve the right to not award these bonus prizes
if no entry is found to be of good enough quality.
11. Sorry, I cannot honor requests to mail you the original lzhuf
program or algorithm. Please check your local archives, or a
nearby site, for recent postings in comp.binaries.ibm.pc.
--
Rahul Dhesi <dhesi@bsu-cs.bsu.edu>
UUCP: ...!{iuvax,pur-ee}!bsu-cs!dhesidhesi@bsu-cs.bsu.edu (Rahul Dhesi) (04/18/89)
In article <6816@bsu-cs.bsu.edu> I wrote:
10. The two bonus prizes shall be awarded for well-implemented
assembly language routines for the 8086 and 6800 processors
respectively.
Oops! That is a typographical error. Instead of 6800 read 68000.
--
Rahul Dhesi <dhesi@bsu-cs.bsu.edu>
UUCP: ...!{iuvax,pur-ee}!bsu-cs!dhesi