[net.sources.games] Empire

bnb@uw-june (Bjorn Benson) (04/16/85)

The author of the CalTech version of EMPIRE (orignally written
for DEC-10, later moved to the PDP-11, and now available on the
PC and UNIX systems) has asked me to post this UNIX version.

-----------------------------------------------------------------
Here at last is EMPIRE for the VAX running BSD 4.2 Unix. The
parts are:

	This one:	manual
			(run through uudecode, then uncompress)
	Part 2:		the program
			(run through uudecode, then uncompress)
	Part 3:		one of the map files
			(run through uudecode)
	Part 4:		the other map file
			(run through uudecode)

Note: This has nothing to do with the Peter Langston version.

begin 644 empire.hlp.Z
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
65%YQ0]CPKQ8+M-2]?+1>E=,0Q3<G J4>
 
end

bnb@uw-june (Bjorn Benson) (04/16/85)

begin 755 empire.Z
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
 
end

bnb@uw-june (Bjorn Benson) (04/16/85)

begin 644 a.map
M&A,&$S8'=@<&&P(/9B^R+P$+9@,",S8/:B\"!U(#!@\"(P(! RX+ @M>.RX'
M(A\!'P('-@\* THK A<J!R8#"C,R!P(' A-*(P8# @<N"PX#)B<^#P(# @]6
M#T(# 08+ @LB)SX+ 1(+7@<Z!PH#!@\F%T(;#@<! UH! S(' 2<"!P8'"@\"
M!T8+"@,. V(#-AL!*PX# A-&!SX'/@$+/B\* 0H+#@-"!T(/-@M"+Q8'LA,F
M"T(S"@=B$T(# @<N#SHG 0MJ!PH'/@$/-@<^.UX+#@-""P$#@C=>"PH'.A=J
M!QH!"P8+2@,2)SX#;@\B!V(' A<!$P&J%XH# @\" S8!@@,*#VH/"@O6%P(#
M 0-F 1,*!UH# @,> T8C:@L*#UX/'@,^)V8/"@=J!R8!"Q8+#@L!$V(' @\&
M!V8# 2X#)C<Z!P8##@,"#VH'"@,F#P$'*C,R!P('!@-: 0," Q(#"@,!!RH#
M-B\:!Q8#!@,*!U(?!ALF"S8+ A<6&Q(' A<*!P$R)P(' @<F!S(' @\J'Q8?
M!@<V P8' A\R"P$R P(! S(3 @<*+T(+%@\. V(' @,J"P$7 C=J!P(76@\R
M P8' C<" P(#8@L*#P(!I@L* P(G @M:!P$##@>" RX'#BL"!V(#A@,!$@<B
M!PX+"B.F P(#/@L*$TX7=@\B"P$#.@L&"U83 48'(@$' @,!(@M""P(3J@,"
M"U(/2@NZ"P('%@<R"P%*"[(+ @,!"PX3)@LN%P8#!@>N P(+'@,F PX#'B,*
M"P$& Z8' 08#'@\&!P8# @,""Q8G$A.R RHG"@," 0,2 P$?#@\" P(+7@,!
M SH#*@L& P$'(C<!"@,2#RX'!@,6#RX+<A<!(P('%@,V"QX3C@,:+Q8# 0<*
M T(+$@N2 P8! P(#!B\" P8G.@L>!Y)# @<&!P(W,@<! @,2 PH')@-2'P8;
M 0H[ @,J&Q(+ @,"%P(7 @-& 0<6 1<**P$3 @,B$PH/#@L!$P('!@,!"TX;
M'CL"#R87)@<"$P(/ @<"!VX/"CLZ P$/ 28/"B-N!P(' 0L"$P8C,A\>$PX3
M @=J"QH/ @L"'S(7)A,"(W(#)@,&$PX/,@\Z!P(; 0.N P$'#@<"!P$'(A,N
> P(# A]Z T(#"@<*#R(;&A,"&P'^'A\2"P(O_AH 
 
end

bnb@uw-june (Bjorn Benson) (04/16/85)

begin 644 b.map
M$P)#N@,& R([!A,"/P&Z%QH/ B,&"P8_ @=6!UH+ @,.8P(? 1M: 0=:#P(_
M 0\" P$# @," PHW6@MB 0X_"@,"$P8W @=&"P(+>@$O%@\2'P$O+@<"%P&"
M#PX#-BL"!P8' @\J P8' @M^#P(##@<N&P(# @\" 1(+.@<& WH+!@-*&P8+
M @<:!](34@,*!P(#"@,.$SH' @,&!WX# 0-6"PH+ @,:"RX+!A,! ]X#"A=.
M$P('!@_:"P(# 0=: P(# 0('#@?>%SX'"E-6 U(+$@,"!T87 2<"&P$#2@$#
M @L6 R8+=@,"6SX/"@L.!R(# @<B U)' @]"$R8#'@,"!P(#'@-2 P(#!@$K
M!@=6 P8##@,&!Q8# 1,B U('"CLB 38/#A<*'R('2@<* P(;!@\" V(!!PH#
M 0\"!QH#%@L" UX3 0\&!X(C)@<"$UX# BL" P&&'QH/!@,""PH'2A<&#P('
MB@L!"R8/ AL" U(+"@,!!P8#0@-&"RX3"@$+ 08+(@<V%RX?.@=" 0H;!@<:
M!P8'+@," RH' @L& 0L""P$B U8; @<F#P(#+@,!!R(!!Q8/ @/F P$')A,:
M'P(+!@?>&RX#)@\> QH#I@,:#U('"@,*!P$*!PX3*@MF"P(# @]6$Q(7 @,6
M SH'9@\"&TH#"@\*%PX!"SX'6@<&+TH# A<"(P8'/@<! UX[2@<6 P(3 0<"
M!P%""UI#:A\""T8+6B\! VHG#@-* P(#!@L^ 0,"*W(; 0-.#P$C/@L"#X(/
M 1,Z/P('(@,&(U8!*A,&#SXW @LF"VX/)@<" Q(#/@<!!P(S @$B VX7)@-:
M$P(# BL&"XX!#Y('$@<&-_X."Q8# 0,./^H'%@," 28! @,&&P(+ @?N!PX'
M"@$F#P(#&@\" 68/:@,! P8' 1,2"PH7(@-. 0L6 P(# @$# @-.!P8#!@L&
M!Q(' @$+ @LJ!TH7#@<""U(3 @<"!P8'*@\N!TX'!AL2!TX?@@-6!P(7#@<!
M3@<"#W8!"UX#"@<:!PH#1@N" PX' 0-"$QH+!A,Z P(#@@,2"T(3(@$CO@<:
M!P(+1@,:(P(#$@<^#PH/#@<"!PX'(A=:.P$+/@,* P8##@,& P8#!@,* RH#
M 0-J0T(/"@L" P8#!@,& Q8# @,6!W(_"@<""P$+"@,* QH#!@,2 PH' @\6
A"VX? @,"&P8# A,2#PH/"@,2 P8' AL.!W8;!@,Z VX 
 
end

bnb@uw-june (Bjorn Benson) (04/19/85)

For those people who want to use the EMPIRE posted by me a few days
ago but do not have compress....

I found out that compress is a local utility that was snatched from the
net.  Sorry about all that.  Anyway, here is our copy of it if you want:

It consists of these files:
	README
	Makefile
	compress.c
	usermem

It is NOT a shell archive, it is just a straight text file.
Oh, and the documents refer to an additional file named 'zmore' but
we don't have sources for that and you don't need it anyway.

				I hope that this is good enough,
				  Bjorn Benson
				(If not, send me mail)
-------------------------File Divider---------------------------
Enclosed is compress version 3.0 with the following changes:

1.	"Block" compression is performed.  After the BITS run out, the
	compression ratio is checked every so often.  If it is decreasing,
	the table is cleared and a new set of substrings are generated.

	This makes the output of compress 3.0 not compatable with that of
	compress 2.0.  However, compress 3.0 still accepts the output of
	compress 2.0.  To generate output that is compatable with compress
	2.0, use the undocumented "-C" flag.

2.	A quiet "-q" flag has been added for use by the news system.

3.	The character chaining has been deleted and the program now uses
	hashing.  This improves the speed of the program, especially
	during decompression.  Other speed improvements have been made,
	such as using putc() instead of fwrite().

4.	A large table is used on large machines when a relatively small
	number of bits is specified.  This saves much time when compressing
	for a 16-bit machine on a 32-bit virtual machine.  Note that the
	speed improvement only occurs when the input file is > 30000
	characters, and the -b BITS is less than or equal to the cutoff
	described below.

Most of these changes were made by James A. Woods (ames!jaw).  Thank you
James!

Version 3.0 has been beta tested on many machines.

To compile compress:

	cc -O -DUSERMEM=usermem -o compress compress.c

Where "usermem" is the amount of physical user memory available (in bytes).  
If any physical memory is to be reserved for other processes, put in 
"-DSACREDMEM sacredmem", where "sacredmem" is the amount to be reserved.

The difference "usermem-sacredmem" determines the maximum BITS that can be
specified, and the cutoff bits where the large+fast table is used.

memory: at least		BITS		cutoff
------  -- -----                ----            ------
   4,718,592 			 16		  13
   2,621,440 			 16		  12
   1,572,864			 16		  11
   1,048,576			 16		  10
     631,808			 16               --
     329,728			 15               --
     178,176			 14		  --
      99,328			 13		  --
           0			 12		  --

The default memory size is 750,000 which gives a maximum BITS=16 and no
large+fast table.

The maximum bits can be overrulled by specifying "-DBITS=bits" at
compilation time.

If your machine doesn't support unsigned characters, define "NO_UCHAR" 
when compiling.

If your machine has "int" as 16-bits, define "SHORT_INT" when compiling.

After compilation, move "compress" to a standard executable location, such 
as /usr/local.  Then:
	cd /usr/local
	ln compress uncompress
	ln compress zcat

On machines that have a fixed stack size (such as Perkin-Elmer), set the
stack to at least 12kb.  ("setstack compress 12" on Perkin-Elmer).

Next, install the manual (compress.l).
	cp compress.l /usr/man/manl
	cd /usr/man/manl
	ln compress.l uncompress.l
	ln compress.l zcat.l

		- or -

	cp compress.l /usr/man/man1/compress.1
	cd /usr/man/man1
	ln compress.1 uncompress.1
	ln compress.1 zcat.1

The zmore shell script and manual page are for use on systems that have a
"more(1)" program.  Install the shell script and the manual page in a "bin"
and "man" directory, respectively.  If your system doesn't have the
"more(1)" program, just skip "zmore".

					regards,
					petsd!joe

Here is the README file from the previous version of compress (2.0):

>Enclosed is compress.c version 2.0 with the following bugs fixed:
>
>1.	The packed files produced by compress are different on different
>	machines and dependent on the vax sysgen option.
>		The bug was in the different byte/bit ordering on the
>		various machines.  This has been fixed.
>
>		This version is NOT compatible with the original vax posting
>		unless the '-DCOMPATIBLE' option is specified to the C
>		compiler.  The original posting has a bug which I fixed, 
>		causing incompatible files.  I recommend you NOT to use this
>		option unless you already have a lot of packed files from
>		the original posting by thomas.
>2.	The exit status is not well defined (on some machines) causing the
>	scripts to fail.
>		The exit status is now 0,1 or 2 and is documented in
>		compress.l.
>3.	The function getopt() is not available in all C libraries.
>		The function getopt() is no longer referenced by the
>		program.
>4.	Error status is not being checked on the fwrite() and fflush() calls.
>		Fixed.
>
>The following enhancements have been made:
>
>1.	Added facilities of "compact" into the compress program.  "Pack",
>	"Unpack", and "Pcat" are no longer required (no longer supplied).
>2.	Installed work around for C compiler bug with "-O".
>3.	Added a magic number header (\037\235).  Put the bits specified
>	in the file.
>4.	Added "-f" flag to force overwrite of output file.
>5.	Added "-c" flag and "zcat" program.  'ln compress zcat' after you
>	compile.
>6.	The 'uncompress' script has been deleted; simply 
>	'ln compress uncompress' after you compile and it will work.
>7.	Removed extra bit masking for machines that support unsigned
>	characters.  If your machine doesn't support unsigned characters,
>	define "NO_UCHAR" when compiling.
>
>Compile "compress.c" with "-O -o compress" flags.  Move "compress" to a
>standard executable location, such as /usr/local.  Then:
>	cd /usr/local
>	ln compress uncompress
>	ln compress zcat
>
>On machines that have a fixed stack size (such as Perkin-Elmer), set the
>stack to at least 12kb.  ("setstack compress 12" on Perkin-Elmer).
>
>Next, install the manual (compress.l).
>	cp compress.l /usr/man/manl		- or -
>	cp compress.l /usr/man/man1/compress.1
>
>Here is the README that I sent with my first posting:
>
>>Enclosed is a modified version of compress.c, along with scripts to make it
>>run identically to pack(1), unpack(1), an pcat(1).  Here is what I
>>(petsd!joe) and a colleague (petsd!peora!srd) did:
>>
>>1. Removed VAX dependencies.
>>2. Changed the struct to separate arrays; saves mucho memory.
>>3. Did comparisons in unsigned, where possible.  (Faster on Perkin-Elmer.)
>>4. Sorted the character next chain and changed the search to stop
>>prematurely.  This saves a lot on the execution time when compressing.
>>
>>This version is totally compatible with the original version.  Even though
>>lint(1) -p has no complaints about compress.c, it won't run on a 16-bit
>>machine, due to the size of the arrays.
>>
>>Here is the README file from the original author:
>> 
>>>Well, with all this discussion about file compression (for news batching
>>>in particular) going around, I decided to implement the text compression
>>>algorithm described in the June Computer magazine.  The author claimed
>>>blinding speed and good compression ratios.  It's certainly faster than
>>>compact (but, then, what wouldn't be), but it's also the same speed as
>>>pack, and gets better compression than both of them.  On 350K bytes of
>>>unix-wizards, compact took about 8 minutes of CPU, pack took about 80
>>>seconds, and compress (herein) also took 80 seconds.  But, compact and
>>>pack got about 30% compression, whereas compress got over 50%.  So, I
>>>decided I had something, and that others might be interested, too.
>>>
>>>As is probably true of compact and pack (although I haven't checked),
>>>the byte order within a word is probably relevant here, but as long as
>>>you stay on a single machine type, you should be ok.  (Can anybody
>>>elucidate on this?)  There are a couple of asm's in the code (extv and
>>>insv instructions), so anyone porting it to another machine will have to
>>>deal with this anyway (and could probably make it compatible with Vax
>>>byte order at the same time).  Anyway, I've linted the code (both with
>>>and without -p), so it should run elsewhere.  Note the longs in the
>>>code, you can take these out if you reduce BITS to <= 15.
>>>
>>>Have fun, and as always, if you make good enhancements, or bug fixes,
>>>I'd like to see them.
>>>
>>>=Spencer (thomas@utah-20, {harpo,hplabs,arizona}!utah-cs!thomas)
>>
>>					regards,
>>					joe
>>
>>--
>>Full-Name:  Joseph M. Orost
>>UUCP:       ..!{decvax,ucbvax,ihnp4}!vax135!petsd!joe
>>US Mail:    MS 313; Perkin-Elmer; 106 Apple St; Tinton Falls, NJ 07724
>>Phone:      (201) 870-5844
-------------------------File Divider---------------------------
# if you have bugs in your C compiler dont use -O
COMFLAGS=-DBSD4_2 -O -DSACREDMEM=256000
BIN=/usr/local/bin

compress : compress.c USERMEM
	cc $(COMFLAGS) -DUSERMEM=`cat USERMEM` -o compress compress.c

# USERMEM may have to be set by hand.  It should contain the amount of
# available user memory in bytes.  Set it to zero, for physical memory
# less than 1 Meg.
USERMEM:
	sh usermem > USERMEM

install: compress
	cp compress $(BIN)/compress
	cp zmore $(BIN)/zmore
	cp compress.l /usr/man/manl
	cp zmore.l /usr/man/manl
	rm -f $(BIN)/uncompress $(BIN)/zcat
	ln $(BIN)/compress $(BIN)/uncompress
	ln $(BIN)/compress $(BIN)/zcat
-------------------------File Divider---------------------------
/* Set USERMEM to the maximum amount of physical user memory available
 * in bytes.  USERMEM is used to determine the maximum BITS that can be used
 * for compression.  If USERMEM is big enough, use fast compression algorithm.
 *
 * SACREDMEM is the amount of physical memory saved for others; compress
 * will hog the rest.
 */
#ifndef SACREDMEM
#define SACREDMEM	0
#endif

#ifdef pdp11
# define BITS 	12	/* max bits/code for 16-bit machine */
# define NO_UCHAR	/* also if "unsigned char" functions as signed char */
# define SHORT_INT	/* ints are short */
# undef USERMEM 
#else !pdp11
# ifndef USERMEM
#  define USERMEM 750000	/* default user memory */
# endif
#endif !pdp11
/* 
 * Define FBITS for machines with several MB of physical memory, to use
 * table lookup for (b <= FBITS).  If FBITS is made too large, performance
 * will decrease due to increased swapping/paging.  Since the program minus
 * the fast lookup table is about a half Meg, we can allocate the rest of
 * available physical memory to the fast lookup table.
 * 
 * If FBITS is set to 12, a 2 MB array is allocated, but only 1 MB is
 * addressed for parity-free input (i.e. text).
 *
 * FBITS=10 yields 1/2 meg lookup table + 4K code memory
 * FBITS=11 yields 1 meg lookup table + 8K code memory
 * FBITS=12 yields 2 meg lookup table + 16K code memory
 * FBITS=13 yields 4 meg lookup table + 32K code memory
 *
 */

#ifdef USERMEM
# if USERMEM >= (2621440+SACREDMEM)
#  if USERMEM >= (4718592+SACREDMEM)
#   define FBITS		13
#   define PBITS	16
#  else 2.5M <= USERMEM < 4.5M
#   define FBITS		12
#   define PBITS	16
#  endif USERMEM <=> 4.5M
# else USERMEM < 2.5M
#  if USERMEM >= (1572864+SACREDMEM)
#   define FBITS		11
#   define PBITS	16
#  else USERMEM < 1.5M
#   if USERMEM >= (1048576+SACREDMEM)
#    define FBITS		10
#    define PBITS	16
#   else USERMEM < 1M
#    if USERMEM >= (631808+SACREDMEM)
#     define PBITS	16
#    else
#     if USERMEM >= (329728+SACREDMEM)
#      define PBITS	15
#     else
#      if USERMEM >= (178176+SACREDMEM)
#       define PBITS	14
#      else
#       if USERMEM >= (99328+SACREDMEM)
#        define PBITS	13
#       else
#        define PBITS	12
#       endif
#      endif
#     endif
#    endif
#    undef USERMEM
#   endif USERMEM <=> 1M
#  endif USERMEM <=> 1.5M
# endif USERMEM <=> 2.5M
#endif USERMEM

#ifdef PBITS		/* Preferred BITS for this memory size */
# ifndef BITS
#  define BITS PBITS
# endif BITS
#endif PBITS

#if BITS == 16
# define HSIZE	69001		/* 95% occupancy */
#endif
#if BITS == 15
# define HSIZE	35023		/* 94% occupancy */
#endif
#if BITS == 14
# define HSIZE	18013		/* 91% occupancy */
#endif
#if BITS == 13
# define HSIZE	9001		/* 91% occupancy */
#endif
#if BITS == 12
# define HSIZE	5003		/* 80% occupancy */
#endif
#if BITS == 11
# define HSIZE	2591		/* 79% occupancy */
#endif
#if BITS == 10
# define HSIZE	1291		/* 79% occupancy */
#endif
#if BITS == 9
# define HSIZE	691		/* 74% occupancy */
#endif
/* BITS < 9 will cause an error */

/*
 * a code_int must be able to hold 2**BITS values of type int, and also -1
 */
#if BITS > 15
typedef long int	code_int;
#else
typedef int		code_int;
#endif

#ifdef interdata
typedef unsigned long int count_int;
typedef unsigned short int count_short;
#else
typedef long int	  count_int;
#endif

#ifdef NO_UCHAR
 typedef char	char_type;
#else UCHAR
 typedef	unsigned char	char_type;
#endif UCHAR
char_type magic_header[] = { "\037\235" };	/* 1F 9D */

/* Defines for third byte of header */
#define BIT_MASK	0x1f
#define BLOCK_MASK	0x80
/* Masks 0x40 and 0x20 are free.  I think 0x20 should mean that there is
   a fourth header byte (for expansion).
*/
#define INIT_BITS 9			/* initial number of bits/code */

/*
 * compress.c - File compression ala IEEE Computer June 1984.
 *
 * Authors:	Spencer W. Thomas	(decvax!harpo!utah-cs!utah-gr!thomas)
 *		Jim McKie		(decvax!mcvax!jim)
 *		Steve Davies		(decvax!vax135!petsd!peora!srd)
 *		Ken Turkowski		(decvax!decwrl!turtlevax!ken)
 *		James A. Woods		(decvax!ihnp4!ames!jaw)
 *		Joe Orost		(decvax!vax135!petsd!joe)
 *
 * $Header: compress.c,v 3.0 84/11/27 11:50:00 joe Exp $
 * $Log:	compress.c,v $
 * Revision 3.0   84/11/27  11:50:00  petsd!joe
 * Set HSIZE depending on BITS.  Set BITS depending on USERMEM.  Unrolled
 * loops in clear routines.  Added "-C" flag for 2.0 compatability.  Used
 * unsigned compares on Perkin-Elmer.  Fixed foreground check.
 *
 * Revision 2.7   84/11/16  19:35:39  ames!jaw
 * Cache common hash codes based on input statistics; this improves
 * performance for low-density raster images.  Pass on #ifdef bundle
 * from Turkowski.
 *
 * Revision 2.6   84/11/05  19:18:21  ames!jaw
 * Vary size of hash tables to reduce time for small files.
 * Tune PDP-11 hash function.
 *
 * Revision 2.5   84/10/30  20:15:14  ames!jaw
 * Junk chaining; replace with the simpler (and, on the VAX, faster)
 * double hashing, discussed within.  Make block compression standard.
 *
 * Revision 2.4   84/10/16  11:11:11  ames!jaw
 * Introduce adaptive reset for block compression, to boost the rate
 * another several percent.  (See mailing list notes.)
 *
 * Revision 2.3   84/09/22  22:00:00  petsd!joe
 * Implemented "-B" block compress.  Implemented REVERSE sorting of tab_next.
 * Bug fix for last bits.  Changed fwrite to putchar loop everywhere.
 *
 * Revision 2.2   84/09/18  14:12:21  ames!jaw
 * Fold in news changes, small machine typedef from thomas,
 * #ifdef interdata from joe.
 *
 * Revision 2.1   84/09/10  12:34:56  ames!jaw
 * Configured fast table lookup for 32-bit machines.
 * This cuts user time in half for b <= FBITS, and is useful for news batching
 * from VAX to PDP sites.  Also sped up decompress() [fwrite->putc] and
 * added signal catcher [plus beef in writeerr()] to delete effluvia.
 *
 * Revision 2.0   84/08/28  22:00:00  petsd!joe
 * Add check for foreground before prompting user.  Insert maxbits into
 * compressed file.  Force file being uncompressed to end with ".Z".
 * Added "-c" flag and "zcat".  Prepared for release.
 *
 * Revision 1.10  84/08/24  18:28:00  turtlevax!ken
 * Will only compress regular files (no directories), added a magic number
 * header (plus an undocumented -n flag to handle old files without headers),
 * added -f flag to force overwriting of possibly existing destination file,
 * otherwise the user is prompted for a response.  Will tack on a .Z to a
 * filename if it doesn't have one when decompressing.  Will only replace
 * file if it was compressed.
 *
 * Revision 1.9  84/08/16  17:28:00  turtlevax!ken
 * Removed scanargs(), getopt(), added .Z extension and unlimited number of
 * filenames to compress.  Flags may be clustered (-Ddvb12) or separated
 * (-D -d -v -b 12), or combination thereof.  Modes and other status is
 * copied with copystat().  -O bug for 4.2 seems to have disappeared with
 * 1.8.
 *
 * Revision 1.8  84/08/09  23:15:00  joe
 * Made it compatible with vax version, installed jim's fixes/enhancements
 *
 * Revision 1.6  84/08/01  22:08:00  joe
 * Sped up algorithm significantly by sorting the compress chain.
 *
 * Revision 1.5  84/07/13  13:11:00  srd
 * Added C version of vax asm routines.  Changed structure to arrays to
 * save much memory.  Do unsigned compares where possible (faster on
 * Perkin-Elmer)
 *
 * Revision 1.4  84/07/05  03:11:11  thomas
 * Clean up the code a little and lint it.  (Lint complains about all
 * the regs used in the asm, but I'm not going to "fix" this.)
 *
 * Revision 1.3  84/07/05  02:06:54  thomas
 * Minor fixes.
 *
 * Revision 1.2  84/07/05  00:27:27  thomas
 * Add variable bit length output.
 *
 */
#ifndef lint
static char rcs_ident[] = "$Header: compress.c,v 3.0 84/11/27 11:50:00 joe Exp $";
#endif !lint

#include <stdio.h>
#include <ctype.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>

#define ARGVAL() (*++(*argv) || (--argc && *++argv))

int n_bits;				/* number of bits/code */
int maxbits = BITS;			/* user settable max # bits/code */
code_int maxcode;			/* maximum code, given n_bits */
code_int maxmaxcode = 1 << BITS;	/* should NEVER generate this code */
#ifdef COMPATIBLE		/* But wrong! */
# define MAXCODE(n_bits)	(1 << (n_bits) - 1)
#else COMPATIBLE
# define MAXCODE(n_bits)	((1 << (n_bits)) - 1)
#endif COMPATIBLE

/*
 * One code could conceivably represent (1<<BITS) characters, but
 * to get a code of length N requires an input string of at least
 * N*(N-1)/2 characters.  With 5000 chars in the stack, an input
 * file would have to contain a 25Mb string of a single character.
 * This seems unlikely.
 */
#ifdef SHORT_INT
# define MAXSTACK    5000		/* size of output stack */
#else !SHORT_INT
# define MAXSTACK    8000		/* size of output stack */
#endif !SHORT_INT

count_int htab [HSIZE];
unsigned short codetab [HSIZE];
code_int hsize = HSIZE;			/* for dynamic table sizing */
count_int fsize;

#define tab_prefix	codetab		/* prefix code for this entry */
char_type  	tab_suffix[1<<BITS];	/* last char in this entry */

#ifdef USERMEM
short ftable [(1 << FBITS) * 256];
count_int fcodemem [1 << FBITS];
#endif USERMEM

code_int free_ent = 0;			/* first unused entry */
int exit_stat = 0;

code_int getcode();

Usage() {
#ifdef DEBUG
fprintf(stderr,"Usage: compress [-dDvqfFc] [-b maxbits] [file ...]\n");
}
int debug = 0;
#else DEBUG
fprintf(stderr,"Usage: compress [-dfFqc] [-b maxbits] [file ...]\n");
}
#endif DEBUG
int nomagic = 0;	/* Use a 2 byte magic number header, unless old file */
int zcat_flg = 0;	/* Write output on stdout, suppress messages */
int quiet = 0;		/* don't tell me about compression */

/*
 * block compression parameters -- after all codes are used up,
 * and compression rate changes, start over.
 */
int block_compress = BLOCK_MASK;
int clear_flg = 0;
double ratio = 0.0;	/* compression ratio for last block */
#define CHECK_GAP 10000	/* ratio check interval */
count_int checkpoint = CHECK_GAP;
/*
 * the next two codes should not be changed lightly, as they must not
 * lie within the contiguous general code space.
 */ 
#define FIRST	257	/* first free entry */
#define	CLEAR	256	/* table clear output code */

int force = 0;
char ofname [100];
#ifdef DEBUG
int verbose = 0;
#endif DEBUG
int (*bgnd_flag)();

/*****************************************************************
 * TAG( main )
 *
 * Algorithm from "A Technique for High Performance Data Compression",
 * Terry A. Welch, IEEE Computer Vol 17, No 6 (June 1984), pp 8-19.
 *
 * Usage: compress [-dfFqc] [-b bits] [file ...]
 * Inputs:
 *	-d:	    If given, decompression is done instead.
 *
 *      -c:         Write output on stdout, don't remove original.
 *
 *      -b:         Parameter limits the max number of bits/code.
 *
 *	-f:	    Forces output file to be generated, even if one already
 *		    exists; if -f is not used, the user will be prompted if
 *		    the stdin is a tty, otherwise, the output file will not
 *		    be overwritten.
 *
 *	-F:	    Forces output file to be generated, even if no space is
 *		    saved by compressing.
 *
 *	-q:	    No output, unless error
 *
 * 	file ...:   Files to be compressed.  If none specified, stdin
 *		    is used.
 * Outputs:
 *	file.Z:	    Compressed form of file with same mode, owner, and utimes
 * 	or stdout   (if stdin used as input)
 *
 * Assumptions:
 *	When filenames are given, replaces with the compressed version
 *	(.Z suffix) only if the file decreased in size.
 * Algorithm:
 * 	Modified Lempel-Ziv method (LZW).  Basically finds common
 * substrings and replaces them with a variable size code.  This is
 * deterministic, and can be done on the fly.  Thus, the decompression
 * procedure needs no input table, but tracks the way the table was
 * built.
 */

main( argc, argv )
register int argc; char **argv;
{
    int do_decomp = 0;
    int overwrite = 0;	/* Do not overwrite unless given -f flag */
    char tempname[100];
    char **filelist, **fileptr;
    char *cp, *rindex();
    struct stat statbuf;
    extern onintr();


    if ( (bgnd_flag = signal ( SIGINT, SIG_IGN )) != SIG_IGN )
	signal ( SIGINT, onintr );

#ifdef COMPATIBLE
    nomagic = 1;	/* Original didn't have a magic number */
#endif COMPATIBLE

    filelist = fileptr = (char **)(malloc(argc * sizeof(*argv)));
    *filelist = NULL;

    if((cp = rindex(argv[0], '/')) != 0) {
	cp++;
    } else {
	cp = argv[0];
    }
    if(strcmp(cp, "uncompress") == 0) {
	do_decomp = 1;
    } else if(strcmp(cp, "zcat") == 0) {
	do_decomp = 1;
	zcat_flg = 1;
    }

#ifdef BSD4_2
    /* 4.2BSD dependent - take it out if not */
    setlinebuf( stderr );
#endif BSD4_2

    /* Argument Processing
     * All flags are optional.
     * -D => debug
     * -d => do_decomp
     * -v => verbose
     * -f => force overwrite of output file
     * -n => no header: useful to uncompress old files
     * -b maxbits => maxbits.  If -b is specified, then maxbits MUST be
     *	    given also.
     * -c => cat all output to stdout
     * -C => generate output compatable with compress 2.0.
     * if a string is left, must be an input filename.
     */
    for (argc--, argv++; argc > 0; argc--, argv++) {
	if (**argv == '-') {	/* A flag argument */
	    while (*++(*argv)) {	/* Process all flags in this arg */
		switch (**argv) {
#ifdef DEBUG
		    case 'D':
			debug = 1;
			break;
		    case 'v':
			verbose = 1;
			break;
#endif DEBUG
		    case 'd':
			do_decomp = 1;
			break;
		    case 'f':
			overwrite = 1;
			break;
		    case 'n':
			nomagic = 1;
			break;
		    case 'C':
			block_compress = 0;
			break;
		    case 'b':
			if (!ARGVAL()) {
			    fprintf(stderr, "Missing maxbits\n");
			    Usage();
			    exit(1);
			}
			maxbits = atoi(*argv);
			goto nextarg;
		    case 'c':
			zcat_flg = 1;
			break;
		    case 'q':
			quiet = 1;
			break;
		    case 'F':
			force = 1;
			break;
		    default:
			fprintf(stderr, "Unknown flag: '%c'; ", **argv);
			Usage();
			exit(1);
		}
	    }
	}
	else {		/* Input file name */
	    *fileptr++ = *argv;	/* Build input file list */
	    *fileptr = NULL;
	    /* goto nextarg; */
	}
	nextarg: continue;
    }

    if(maxbits < INIT_BITS) maxbits = INIT_BITS;
    if (maxbits > BITS) maxbits = BITS;
    maxmaxcode = 1 << maxbits;

    if (*filelist != NULL) {
	for (fileptr = filelist; *fileptr; fileptr++) {
	    exit_stat = 0;
	    if (do_decomp != 0) {			/* DECOMPRESSION */
		/* Check for .Z suffix */
		if (strcmp(*fileptr + strlen(*fileptr) - 2, ".Z") != 0) {
		    /* No .Z: tack one on */
		    strcpy(tempname, *fileptr);
		    strcat(tempname, ".Z");
		    *fileptr = tempname;
		}
		/* Open input file */
		if ((freopen(*fileptr, "r", stdin)) == NULL) {
			perror(*fileptr); continue;
		}
		/* Check the magic number */
		if (nomagic == 0) {
		    if ((getchar() != (magic_header[0] & 0xFF))
		     || (getchar() != (magic_header[1] & 0xFF))) {
			fprintf(stderr, "%s: not in compressed format\n",
			    *fileptr);
		    continue;
		    }
		    maxbits = getchar();	/* set -b from file */
		    block_compress = maxbits & BLOCK_MASK;
		    maxbits &= BIT_MASK;
		    maxmaxcode = 1 << maxbits;
		    if(maxbits > BITS) {
			fprintf(stderr,
			"%s: compressed with %d bits, can only handle %d bits\n",
			*fileptr, maxbits, BITS);
			continue;
		    }
		}
		/* Generate output filename */
		strcpy(ofname, *fileptr);
		ofname[strlen(*fileptr) - 2] = '\0';  /* Strip off .Z */
	    } else {					/* COMPRESSION */
		if (strcmp(*fileptr + strlen(*fileptr) - 2, ".Z") == 0) {
		    fprintf(stderr, "%s: already has .Z suffix -- no change\n",
			    *fileptr);
		    continue;
		}
		/* Open input file */
		if ((freopen(*fileptr, "r", stdin)) == NULL) {
		    perror(*fileptr); continue;
		}
		stat ( *fileptr, &statbuf );
		fsize = (long) statbuf.st_size;
		/*
		 * tune hash table size for small files -- ad hoc
		 */
#if HSIZE > 5003
		if ( fsize < (1 << 12) )
		    hsize = 5003;
#if HSIZE > 9001
		else if ( fsize < (1 << 13) )
		    hsize = 9001;
#if HSIZE > 18013
		else if ( fsize < (1 << 14) )
		    hsize = 18013;
#if HSIZE > 35023
		else if ( fsize < (1 << 15) )
		    hsize = 35023;
		else if ( fsize < 47000 )
		    hsize = 50021;
#endif HSIZE > 35023
#endif HSIZE > 18013
#endif HSIZE > 9001
		else
#endif HSIZE > 5003
		    hsize = HSIZE;
		/* Generate output filename */
		strcpy(ofname, *fileptr);
#ifndef BSD4_2		/* Short filenames */
		if ((cp=rindex(ofname,'/')) != NULL)	cp++;
		else					cp = ofname;
		if (strlen(cp) > 12) {
		    fprintf(stderr,"%s: filename too long to tack on .Z\n",cp);
		    continue;
		}
#endif  BSD4_2		/* Long filenames allowed */
		strcat(ofname, ".Z");
	    }
	    /* Check for overwrite of existing file */
	    if (overwrite == 0 && zcat_flg == 0) {
		if (stat(ofname, &statbuf) == 0) {
		    char response[2];
		    response[0] = 'n';
		    fprintf(stderr, "%s already exists;", ofname);
		    if (foreground()) {
			fprintf(stderr, " do you wish to overwrite (y or n)? ",
			ofname);
			fflush(stderr);
			read(2, response, 2);
			while (response[1] != '\n') {
			    if (read(2, response+1, 1) < 0) {	/* Ack! */
				perror("stderr"); break;
			    }
			}
		    }
		    if (response[0] != 'y') {
			fprintf(stderr, "\tnot overwritten\n");
			continue;
		    }
		}
	    }
	    if(zcat_flg == 0) {		/* Open output file */
		if (freopen(ofname, "w", stdout) == NULL) {
		    perror(ofname);
		    continue;
		}
		if(!quiet)
			fprintf(stderr, "%s: ", *fileptr);
	    }

	    /* Actually do the compression/decompression */
	    if (do_decomp == 0)	compress();
#ifndef DEBUG
	    else			decompress();
#else   DEBUG
	    else if (debug == 0)	decompress();
	    else			printcodes();
	    if (verbose)		dump_tab();
#endif DEBUG
	    if(zcat_flg == 0) {
		copystat(*fileptr, ofname);	/* Copy stats */
		if(exit_stat || (!quiet))
			putc('\n', stderr);
	    }
	}
    } else {		/* Standard input */
	if (do_decomp == 0) {
		compress();
		if(!quiet)
			putc('\n', stderr);
	} else {
	    /* Check the magic number */
	    if (nomagic == 0) {
		if ((getchar()!=(magic_header[0] & 0xFF))
		 || (getchar()!=(magic_header[1] & 0xFF))) {
		    fprintf(stderr, "stdin: not in compressed format\n");
		    exit(1);
		}
		maxbits = getchar();	/* set -b from file */
		block_compress = maxbits & BLOCK_MASK;
		maxbits &= BIT_MASK;
		maxmaxcode = 1 << maxbits;
		fsize = 100000;		/* assume stdin large for USERMEM */
		if(maxbits > BITS) {
			fprintf(stderr,
			"stdin: compressed with %d bits, can only handle %d bits\n",
			maxbits, BITS);
			exit(1);
		}
	    }
#ifndef DEBUG
	    decompress();
#else   DEBUG
	    if (debug == 0)	decompress();
	    else		printcodes();
	    if (verbose)	dump_tab();
#endif DEBUG
	}
    }
    exit(exit_stat);
}

static int offset;
long int in_count = 1;			/* length of input */
long int bytes_out;			/* length of compressed output */
long int out_count = 0;			/* # of codes output (for debugging) */

#define HOG_CHECK ((count_int) 2000)	/* Number of chars to read b4 check */
#define MAX_CACHE ((count_int) 1<<BITS) /* Next line is this constant too */
unsigned short hashcache [1<<BITS];	/* common hash short circuit cache */
count_int cfreq [256];			/* character counts */
#ifndef vax
 char chog;				/* most common character from input */
# define CHOG	' '			/* Assume space is most frequent */
#else 
 int chog;				/* char arith slow on VAX */
# define CHOG	(int) ' '		/* Assume space is most frequent */
#endif
int cstat_flg = 0;			/* on after determining char hog */

/*
 * compress stdin to stdout
 *
 * Algorithm:  on large machines, for maxbits <= FBITS, use fast direct table
 * lookup on the prefix code / next character combination.  For smaller code
 * size, use open addressing modular division double hashing (no chaining), ala
 * Knuth vol. 3, sec. 6.4 Algorithm D, along with G. Knott's relatively-prime
 * secondary probe.  Do block compression with an adaptive reset, whereby the
 * code table is cleared when the compression ratio decreases, but after the
 * table fills.  The variable-length output codes are re-sized at this point,
 * and a special CLEAR code is generated for the decompressor.  For the
 * megamemory version, the sparse array is cleared indirectly through a
 * "shadow" output code history.  Late additions: for the hashing code,
 * construct the table according to file size for noticeable speed improvement
 * on small files.  Also detect and cache codes associated with the most
 * common character to bypass hash calculation on these codes (a characteristic
 * of highly-compressable raster images).  Please direct questions about this
 * implementation to ames!jaw.
 */


compress() {
    register long fcode;
    register code_int i = 0;
    register int c;
    register code_int ent;
    register int disp;
    register code_int hsize_reg;

#ifndef COMPATIBLE
    if (nomagic == 0) {
	putchar(magic_header[0]); putchar(magic_header[1]);
	putchar((char)(maxbits | block_compress));
    }
#endif COMPATIBLE

    offset = 0;
    bytes_out = 0;
    out_count = 0;
    clear_flg = 0;
    ratio = 0.0;
    in_count = 1;
    checkpoint = CHECK_GAP;
    maxcode = MAXCODE(n_bits = INIT_BITS);
    free_ent = ((block_compress) ? FIRST : 256 );
    ent = getchar ();

#ifdef USERMEM
if ( maxbits <= FBITS && (fsize >= 30000) ) {	/* use hashing on small files */

    while ( (c = getchar()) != (unsigned) EOF ) {
	in_count++;
	fcode = (long) (((long) c << maxbits) + ent);
	if ( ftable [fcode] != 0 )		/* test for code in "string" table */
	    ent = ftable [fcode];
	else {
	    output ( (code_int) ent );
	    out_count++;
	    ent = c;
	    if ( free_ent >= maxmaxcode ) {	
	        if ( (count_int)in_count < checkpoint || (!block_compress) ) 
		    continue;
		else {
		    clear ();
		    i = 0;
		}
	    } else {				/* put code in table */
		ftable [fcode] = (short) free_ent++;
		fcodemem [i++] = fcode;		/* memorize for block compression */
	    }
	}
    }
    goto fin;
}
#endif USERMEM

    chog = CHOG;		/* assumed character for the hog */
    cstat_flg = 0;
    hsize_reg = hsize;
    cl_hash(hsize_reg);		/* clear hash tables */

    while ( (c = getchar()) != (unsigned) EOF ) {
	in_count++;
	if ( cstat_flg == 0 ) {
	    cfreq [c]++; 	/* gather frequencies at start of input */
	    if ( (count_int)in_count >  HOG_CHECK ) {
	    	cstat_flg = 1;
		chog = hogtally();	/* compute char hog */
		if(chog != CHOG) 	/* fixup for wrong assumption */
		    creset( (count_int) free_ent );
	    }
	}
	if ( c == chog )
	    if ( (i = hashcache [ent]) ) {	/* cache -> code */
	    	ent = i;
	    	continue;
	    }
	fcode = (long) (((long) c << maxbits) + ent);
#ifdef SHORT_INT
	i = (((c + 12347) * ent) & 077777) % HSIZE;	/* avoid 'lrem' call */
#else !SHORT_INT
	i = fcode % hsize_reg;			/* division hashing */
#endif SHORT_INT

	if ( htab [i] == fcode ) {
	    ent = codetab [i];
	    continue;
	} else if ( (long)htab [i] < 0 )	/* empty slot */
	    goto nomatch;
	disp = hsize_reg - i;		/* secondary hash (G. Knott) */
	if ( i == 0 )
	    disp = 1;
probe:
	if ( (i -= disp) < 0 )
	    i += hsize_reg;

	if ( htab [i] == fcode ) {
	    ent = codetab [i];
	    continue;
	}
	if ( (long)htab [i] > 0 ) 
	    goto probe;
nomatch:
	output ( (code_int) ent );
	out_count++;
#ifdef interdata
	if ( (unsigned) free_ent < (unsigned) maxmaxcode) {
#else
	if ( free_ent < maxmaxcode ) {
#endif
	    if ( c == chog )		/* code -> cache */
	        hashcache [ent] = free_ent;
	      				/* code -> hashtable */
	    codetab [i] = free_ent++;
	    htab [i] = fcode;
	}
	else if ( (count_int)in_count >= checkpoint && block_compress )
	    clear ();
	ent = c;
    }
fin:
    /*
     * Put out the final code.
     */
    output( (code_int)ent );
    out_count++;
    output( (code_int)-1 );

    /*
     * Print out stats on stderr
     */
    if(zcat_flg == 0 && !quiet) {
#ifdef DEBUG
	fprintf( stderr,
	"%ld chars in, %ld codes (%ld bytes) out, compression factor %g\n",
		in_count, out_count, bytes_out,
		(double)in_count / (double)bytes_out );
	fprintf( stderr, "\tCompression as in compact: %5.2f%%\n",
		100.0 * ( in_count - bytes_out ) / (double) in_count );
	fprintf( stderr, "\tLargest code was %d (%d bits)\n", free_ent - 1, n_bits );
#else DEBUG
	fprintf( stderr, "Compression: %5.2f%%",
		100.0 * ( in_count - bytes_out ) / (double) in_count );
#endif DEBUG
    }
    if(bytes_out > in_count)	/* exit(2) if no savings */
	exit_stat = 2;
    return;
}

/*****************************************************************
 * TAG( output )
 *
 * Output the given code.
 * Inputs:
 * 	code:	A n_bits-bit integer.  If == -1, then EOF.  This assumes
 *		that n_bits =< (long)wordsize - 1.
 * Outputs:
 * 	Outputs code to the file.
 * Assumptions:
 *	Chars are 8 bits long.
 * Algorithm:
 * 	Maintain a BITS character long buffer (so that 8 codes will
 * fit in it exactly).  Use the VAX insv instruction to insert each
 * code in turn.  When the buffer fills up empty it and start over.
 */

static char buf[BITS];

#ifndef vax
char_type lmask[9] = {0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00};
char_type rmask[9] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff};
#endif !vax

output( code )
code_int  code;
{
#ifdef DEBUG
    static int col = 0;
#endif DEBUG

    /*
     * On the VAX, it is important to have the register declarations
     * in exactly the order given, or the asm will break.
     */
    register int r_off = offset, bits= n_bits;
    register char * bp = buf;

    if ( code >= 0 ) {
#ifdef DEBUG
	if ( verbose )
	    fprintf( stderr, "%5d%c", code,
		    (col+=6) >= 74 ? (col = 0, '\n') : ' ' );
#endif DEBUG
#ifdef vax
	/* VAX DEPENDENT!! Implementation on other machines may be
	 * difficult.
	 *
	 * Translation: Insert BITS bits from the argument starting at
	 * offset bits from the beginning of buf.
	 */
	0;	/* C compiler bug ?? */
	asm( "insv	4(ap),r11,r10,(r9)" );
#else not a vax
/* WARNING: byte/bit numbering on the vax is simulated by the following code
*/
	/*
	 * Get to the first byte.
	 */
	bp += (r_off >> 3);
	r_off &= 7;
	/*
	 * Since code is always >= 8 bits, only need to mask the first
	 * hunk on the left.
	 */
	*bp = (*bp & rmask[r_off]) | (code << r_off) & lmask[r_off];
	bp++;
	bits -= (8 - r_off);
	code >>= 8 - r_off;
	/* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */
	if ( bits >= 8 ) {
	    *bp++ = code;
	    code >>= 8;
	    bits -= 8;
	}
	/* Last bits. */
	if(bits)
	    *bp = code;
#endif vax
	offset += n_bits;
	if ( offset == (n_bits << 3) ) {
	    bp = buf;
	    bits = n_bits;
	    bytes_out += bits;
	    do
		putchar(*bp++);
	    while(--bits);
	    if (ferror(stdout))
		writeerr();
	    offset = 0;
	}

	/*
	 * If the next entry is going to be too big for the code size,
	 * then increase it, if possible.
	 */
	if ( free_ent > maxcode || (clear_flg > 0)) {
	    /*
	     * Write the whole buffer, because the input side won't
	     * discover the size increase until after it has read it.
	     */
	    if ( offset > 0 ) {
		if( fwrite( buf, 1, n_bits, stdout ) != n_bits)
			writeerr();
		bytes_out += n_bits;
	    }
	    offset = 0;

	    if ( clear_flg ) {
    	        maxcode = MAXCODE (n_bits = INIT_BITS);
	        clear_flg = 0;
	    } else {
	    	n_bits++;
	    	if ( n_bits == maxbits )
		    maxcode = maxmaxcode;
	    	else
		    maxcode = MAXCODE(n_bits);
	    }
#ifdef DEBUG
	    if ( debug ) {
		fprintf( stderr, "\nChange to %d bits\n", n_bits );
		col = 0;
	    }
#endif DEBUG
	}
    } else {
	/*
	 * At EOF, write the rest of the buffer.
	 */
	if ( offset > 0 )
	    fwrite( buf, 1, (offset + 7) / 8, stdout );
	bytes_out += (offset + 7) / 8;
	offset = 0;
	fflush( stdout );
#ifdef DEBUG
	if ( verbose )
	    fprintf( stderr, "\n" );
#endif DEBUG
	if( ferror( stdout ) )
		writeerr();
    }
}

decompress() {
    register int stack_top = MAXSTACK;
    register code_int code, oldcode, incode;
    register int finchar;
    char stack[MAXSTACK];

    /*
     * As above, initialize the first 256 entries in the table.
     */
    maxcode = MAXCODE(n_bits = INIT_BITS);
    for ( code = 255; code >= 0; code-- ) {
	tab_prefix[code] = 0;
	tab_suffix[code] = (char_type)code;
    }
    free_ent = ((block_compress) ? FIRST : 256 );

    finchar = oldcode = getcode();
    putchar( (char)finchar );		/* first code must be 8 bits = char */

    while ( (code = getcode()) != -1 ) {

	if ( (code == CLEAR) && block_compress ) {
	    for ( code = 255; code > 0; code -= 4 ) {
		tab_prefix [code-3] = 0;
		tab_prefix [code-2] = 0;
		tab_prefix [code-1] = 0;
		tab_prefix [code] = 0;
	    }
	    clear_flg = 1;
	    free_ent = FIRST - 1;
	    if ( (code = getcode ()) == -1 )	/* O, untimely death! */
		break;
	}
	incode = code;
	/*
	 * Special case for KwKwK string.
	 */
	if ( code >= free_ent ) {
	    stack[--stack_top] = finchar;
	    code = oldcode;
	}

	/*
	 * Generate output characters in reverse order
	 */
#ifdef interdata
	while ( ((unsigned long)code) >= ((unsigned long)256) ) {
#else !interdata
	while ( code >= 256 ) {
#endif interdata
	    stack[--stack_top] = tab_suffix[code];
	    code = tab_prefix[code];
	}
	stack[--stack_top] = finchar = tab_suffix[code];

	/*
	 * And put them out in forward order
	 */
	for ( ; stack_top < MAXSTACK; stack_top++ )
		putchar(stack[stack_top]);
	if (ferror(stdout))
		writeerr ( );
	stack_top = MAXSTACK;

	/*
	 * Generate the new entry.
	 */
	if ( (code=free_ent) < maxmaxcode ) {
	    tab_prefix[code] = (unsigned short)oldcode;
	    tab_suffix[code] = finchar;
	    free_ent = code+1;
	} 
	/*
	 * Remember previous code.
	 */
	oldcode = incode;
    }
    fflush( stdout );
    if(ferror(stdout))
	writeerr();
}


/*****************************************************************
 * TAG( getcode )
 *
 * Read one code from the standard input.  If EOF, return -1.
 * Inputs:
 * 	stdin
 * Outputs:
 * 	code or -1 is returned.
 */

code_int
getcode() {
    /*
     * On the VAX, it is important to have the register declarations
     * in exactly the order given, or the asm will break.
     */
    register code_int code;
    static int offset = 0, size = 0;
    static char_type buf[BITS];
    register int r_off, bits;
    register char_type *bp = buf;

    if ( clear_flg > 0 || offset >= size || free_ent > maxcode ) {
	/*
	 * If the next entry will be too big for the current code
	 * size, then we must increase the size.  This implies reading
	 * a new buffer full, too.
	 */
	if ( free_ent > maxcode ) {
	    n_bits++;
	    if ( n_bits == maxbits )
		maxcode = maxmaxcode;	/* won't get any bigger now */
	    else
		maxcode = MAXCODE(n_bits);
	}
	if ( clear_flg > 0) {
    	    maxcode = MAXCODE (n_bits = INIT_BITS);
	    clear_flg = 0;
	}
	size = fread( buf, 1, n_bits, stdin );
	if ( size <= 0 )
	    return -1;			/* end of file */
	offset = 0;
	/* Round size down to integral number of codes */
	size = (size << 3) - (n_bits - 1);
    }
    r_off = offset;
    bits = n_bits;
#ifdef vax
    asm( "extzv   r10,r9,(r8),r11" );
#else not a vax
	/*
	 * Get to the first byte.
	 */
	bp += (r_off >> 3);
	r_off &= 7;
	/* Get first part (low order bits) */
#ifdef NO_UCHAR
	code = ((*bp++ >> r_off) & rmask[8 - r_off]) & 0xff;
#else  NO_UCHAR
	code = (*bp++ >> r_off);
#endif NO_UCHAR
	bits -= (8 - r_off);
	r_off = 8 - r_off;		/* now, offset into code word */
	/* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */
	if ( bits >= 8 ) {
#ifdef NO_UCHAR
	    code |= (*bp++ & 0xff) << r_off;
#else  NO_UCHAR
	    code |= *bp++ << r_off;
#endif NO_UCHAR
	    r_off += 8;
	    bits -= 8;
	}
	/* high order bits. */
	code |= (*bp & rmask[bits]) << r_off;
#endif vax
    offset += n_bits;

    return code;
}

char *
rindex(s, c)		/* For those who don't have it in libc.a */
register char *s, c;
{
	char *p;
	for (p = NULL; *s; s++)
	    if (*s == c)
		p = s;
	return(p);
}

#ifdef DEBUG
printcodes()
{
    /*
     * Just print out codes from input file.  Mostly for debugging.
     */
    code_int code;
    int col = 0, bits;

    bits = n_bits = INIT_BITS;
    maxcode = MAXCODE(n_bits);
    free_ent = ((block_compress) ? FIRST : 256 );
    while ( ( code = getcode() ) >= 0 ) {
	if ( (code == CLEAR) && block_compress ) {
   	    free_ent = FIRST - 1;
   	    clear_flg = 1;
	}
	else if ( free_ent < maxmaxcode )
	    free_ent++;
	if ( bits != n_bits ) {
	    fprintf(stderr, "\nChange to %d bits\n", n_bits );
	    bits = n_bits;
	    col = 0;
	}
	fprintf(stderr, "%5d%c", code, (col+=6) >= 74 ? (col = 0, '\n') : ' ' );
    }
    putc( '\n', stderr );
    exit( 0 );
}

dump_tab()	/* dump string table */
{
    register int i;
    register ent;
    char stack[4 * MAXSTACK];	/* \nnn makes it 4 times bigger */
    int stack_top = 4 * MAXSTACK;

    for ( i = 0; i < free_ent; i++ ) {
	ent = i;
	if ( isascii(tab_suffix[ent]) && isprint(tab_suffix[ent]) )
	    fprintf( stderr, "%5d: %5d/'%c'  \"",
			ent, tab_prefix[ent], tab_suffix[ent] );
	else
	    fprintf( stderr, "%5d: %5d/\\%03o \"",
			ent, tab_prefix[ent], tab_suffix[ent] );
	stack[--stack_top] = '\n';
	stack[--stack_top] = '"';
	for ( ; ent != NULL;
		ent = (ent >= FIRST ? tab_prefix[ent] : NULL) ) {
	    if ( isascii(tab_suffix[ent]) && isprint(tab_suffix[ent]) )
		stack[--stack_top] = tab_suffix[ent];
	    else {
		switch( tab_suffix[ent] ) {
		case '\n': stack[--stack_top] = 'n'; break;
		case '\t': stack[--stack_top] = 't'; break;
		case '\b': stack[--stack_top] = 'b'; break;
		case '\f': stack[--stack_top] = 'f'; break;
		case '\r': stack[--stack_top] = 'r'; break;
		default:
		    stack[--stack_top] = '0' + tab_suffix[ent] % 8;
		    stack[--stack_top] = '0' + (tab_suffix[ent] / 8) % 8;
		    stack[--stack_top] = '0' + tab_suffix[ent] / 64;
		    break;
		}
		stack[--stack_top] = '\\';
	    }
	}
	fwrite( &stack[stack_top], 1, 4 * MAXSTACK - stack_top, stderr );
	stack_top = 4 * MAXSTACK;
    }
}
#endif DEBUG

/*****************************************************************
 * TAG( writeerr )
 *
 * Exits with a message.  We only check for write errors often enough
 * to avoid a lot of "file system full" messages, not on every write.
 * ferror() check after fflush will catch any others (I trust).
 *
 */

writeerr()
{
    perror ( ofname );
    unlink ( ofname );
    exit ( 1 );
}

copystat(ifname, ofname)
char *ifname, *ofname;
{
    struct stat statbuf;
    int mode;
    time_t timep[2];

    fclose(stdout);
    if (stat(ifname, &statbuf)) {		/* Get stat on input file */
	perror(ifname);
	return;
    }
    if ((statbuf.st_mode & S_IFMT/*0170000*/) != S_IFREG/*0100000*/) {
	if(quiet)
		fprintf(stderr, "%s: ", ifname);
	fprintf(stderr, " -- not a regular file: unchanged");
	exit_stat = 1;
    } else if (statbuf.st_nlink > 1) {
	if(quiet)
		fprintf(stderr, "%s: ", ifname);
	fprintf(stderr, " -- has %d other links: unchanged",
		statbuf.st_nlink - 1);
	exit_stat = 1;
    } else if (exit_stat == 2 && (!force)) { /* No compression: remove file.Z */
	fprintf(stderr, " -- file unchanged");
    } else {			/* ***** Successful Compression ***** */
	exit_stat = 0;
	mode = statbuf.st_mode & 07777;
	if (chmod(ofname, mode))		/* Copy modes */
	    perror(ofname);
	chown(ofname, statbuf.st_uid, statbuf.st_gid);	/* Copy ownership */
	timep[0] = statbuf.st_atime;
	timep[1] = statbuf.st_mtime;
	utime(ofname, timep);	/* Update last accessed and modified times */
	if (unlink(ifname))	/* Remove input file */
	    perror(ifname);
	if(!quiet)
		fprintf(stderr, " -- replaced with %s", ofname);
	return;		/* Successful return */
    }

    /* Unsuccessful return -- one of the tests failed */
    if (unlink(ofname))
	perror(ofname);
}
/*
 * This routine returns 1 if we are running in the foreground and stderr
 * is a tty.
 */
foreground()
{
	if(bgnd_flag) {	/* background? */
		return(0);
	} else {			/* foreground */
		if(isatty(2)) {		/* and stderr is a tty */
			return(1);
		} else {
			return(0);
		}
	}
}

onintr ( )
{
    unlink ( ofname );
    exit ( 1 );
}

clear ()		/* table clear for block compress */
{
    register code_int i;
    register count_int *p, *endp;
    register unsigned short *q;

#ifdef DEBUG
	if(debug)
    		fprintf ( stderr, "count: %ld ratio: %f\n", in_count,
     		(double) in_count / (double) bytes_out );
#endif DEBUG

    checkpoint = in_count + CHECK_GAP;
    if ( (double) in_count / (double) bytes_out > ratio )
	ratio = (double) in_count / (double) bytes_out;
    else {
	ratio = 0.0;
#ifdef USERMEM
	if ( maxbits <= FBITS ) 		/* sparse array clear */
	    for ( i = (1 << maxbits) - 1; i >= 0; i-- )
		ftable [fcodemem [i]] = 0;	/* indirect thru "shadow" */
	else 
#endif USERMEM					/* hash table clear */
	{
	    endp = &htab [hsize];
	    for ( p = &htab [0], q = &codetab [0]; p < endp; ) {
		*p++ = -1;
		*q++ = 0;
	    }
	    creset ( MAX_CACHE );
	}
	free_ent = FIRST;
	clear_flg = 1;
	output ( (code_int) CLEAR );
#ifdef DEBUG
	if(debug)
    		fprintf ( stderr, "clear\n" );
#endif DEBUG
    }
}

creset ( n )	/* clear hash cache */
    register count_int n;	/* clear at least this many entries */
{
    register count_int i;
    register unsigned short *hash_p;
    register unsigned short zero = 0;
    static int nfiles = 0;

    if ( nfiles++ == 0 )	/* No clear needed if first time */
	return;
    n = (n+15) & (-16);
    hash_p = hashcache + n;
    for ( i = n; i > 0; i -=16 ) {
	*(hash_p-16) = zero;
	*(hash_p-15) = zero;
	*(hash_p-14) = zero;
	*(hash_p-13) = zero;
	*(hash_p-12) = zero;
	*(hash_p-11) = zero;
	*(hash_p-10) = zero;
	*(hash_p-9) = zero;
	*(hash_p-8) = zero;
	*(hash_p-7) = zero;
	*(hash_p-6) = zero;
	*(hash_p-5) = zero;
	*(hash_p-4) = zero;
	*(hash_p-3) = zero;
	*(hash_p-2) = zero;
	*(hash_p-1) = zero;
	hash_p -= 16;
    }
}

hogtally ()	/* compute character code hog */
{
    register int i, most;

    for ( i = most = 0; i < 256; i++ )
	if ( cfreq [i] >= cfreq [most] )
	    most = i;
    return ( most );
}

cl_hash(hsize)
	register int hsize;
{
	register count_int *htab_p = htab+hsize;
	register int i;
	register long m1 = -1;

	/* clear hashcache */
#define	min(a,b)	((a>b) ? b : a)
	creset( min((count_int)hsize, MAX_CACHE) );

	i = hsize - 16;
	do {
		*(htab_p-16) = m1;
		*(htab_p-15) = m1;
		*(htab_p-14) = m1;
		*(htab_p-13) = m1;
		*(htab_p-12) = m1;
		*(htab_p-11) = m1;
		*(htab_p-10) = m1;
		*(htab_p-9) = m1;
		*(htab_p-8) = m1;
		*(htab_p-7) = m1;
		*(htab_p-6) = m1;
		*(htab_p-5) = m1;
		*(htab_p-4) = m1;
		*(htab_p-3) = m1;
		*(htab_p-2) = m1;
		*(htab_p-1) = m1;
		htab_p -= 16;
	} while ((i -= 16) >= 0);
    	for ( i += 16; i > 0; i-- )
		*--htab_p = m1;
}
-------------------------File Divider---------------------------
: This shell script snoops around to find the maximum amount of available
: user memory.  These variables need to be set only if there is no
: /usr/adm/messages.  KMEM, UNIX, and CLICKSIZE can be set on the command
: line, if desired, e.g. UNIX=/unix
KMEM=/dev/kmem		# User needs read access to KMEM
UNIX=
# VAX			CLICKSIZE=512,	UNIX=/vmunix
# PDP-11		CLICKSIZE=64,	UNIX=/unix
# CADLINC 68000		CLICKSIZE=4096,	UNIX=/unix
# Perkin-Elmer 3205	CLICKSIZE=4096,	UNIX=/edition7
# Perkin-Elmer all others, CLICKSIZE=2048, UNIX=/edition7
CLICKSIZE=512
eval $*

SIZE=0
if test -r /usr/adm/messages	# probably the most transportable
then
    SIZE=`grep avail /usr/adm/messages | sed -n '$s/.*[ 	]//p'`
fi

if test 0$SIZE -le 0		# no SIZE in /usr/adm/messages
then
    if test -r $KMEM		# Readable KMEM
    then
	if test -n "$UNIX"
	then
	    : User must have specified it already.
	elif test -r /vmunix
	then
	    UNIX=/vmunix
	    CLICKSIZE=512	# Probably VAX
	elif test -r /edition7
	then
	    UNIX=/edition7
	    CLICKSIZE=2048	# Perkin-Elmer: change to 4096 on a 3205
	elif test -r /unix
	then
	    UNIX=/unix		# Could be anything
	fi
	if test -n "$UNIX"
	then
	    SIZE=`echo maxmem/D | adb $UNIX $KMEM | sed -n '$s/.*[ 	]//p'`
	    if test 0$SIZE -le 0
	    then
		SIZE=`echo physmem/D | adb $UNIX $KMEM | sed -n '$s/.*[ 	]//p'`
	    fi
	    SIZE=`expr 0$SIZE '*' $CLICKSIZE`
	fi
    fi
fi

if test 0$SIZE -le 0
then
    echo 0
else
    echo $SIZE
fi

lp102911@sjuvax.UUCP (palena) (11/26/85)

*** REPLACE THIS LINE WITH ITSELF ***

       The meanies at SJU have removed EMPIRE from the system.Anyone
     who can send me code for it,in any language,will receive a bless-
     ing from a 2000 year-old Gypsy woman.

                                   As Rommel once said,"Many tanks",
                                        Larry Palena
                                       

{ astrovax | allegra | bpa | burdvax } !sjuvax!lp102911

xman@spock.UUCP (Bharat Mediratta '87 cc) (05/13/86)

I have this really ancient version of Empire, and an
equally ancient version of Jove.  Empire has one bug in
it, but appears to work, and I don't KNOW what Jove is.

If anybody knows anything about this or wants a copy, let
me know.

_____
'When the going gets weird, the weird turn pro.'
			-H. Johnson

_____
"I stayed up all night once, playing poker with a pack of tarot cards. 
 I got a royal flush and 5 people died."

				-Steve Wright (mod.)

					X-man
				...decvax!yale!spock!xman

toivo@effigy.OZ (Toivo Pedaste) (09/02/86)

   In a new item on 'the twenty most asked questions on the net' an
address was given for obtaining the sources to EMPIRE (multi-player
economic-millitary simulation played over a period of weeks), however
the address was at polyf which no longer seems to be on the network.
   I hope some-one can provide assistance as to how to get the sources
for us Empire player here on the edge of the world.
                                            Toivo Pedaste
                                            University of Western Australia
                                            ...seismo!effigy.oz!toivo

bright@dataio.Data-IO.COM (Walter Bright) (12/22/86)

Ed states that VMS Empire has passed through so many hands that it is
public domain. It is true that it has passed through many hands, but it
is not public domain. The originals were stolen from me and were submitted
to DECUS. If someone, say, got the sources to Microsoft's MASM, and spread
them around, that certainly would not make MASM public domain. Why is it
different because I don't have the resources to go around suing people?

For all you netters out there, I have looked at the sources posted, and they
are obviously derived from the originals that I wrote back in 1977, even
down to the obscure variable names. The man page for it is nearly word
for word what I originally wrote.

DECUS withdrew from publishing the source to EMPIRE after I showed them
the originals I had done. Please do me the courtesy of deleting the postings.

By the way, the original was in Fortran-10 for a PDP-10, which is way
before either VAXes or VMS existed.

I'm sorry if I got a little hot under the collar, but most of the time
people who wish to post Empire have been nice enough not to after I
requested them not to, and I appreciate that.

sns@tybalt.caltech.edu.UUCP (01/28/87)

Does anyone have an all-C version of the empire sources.  I'm in the middle of
arranging to get a fortran compiler/converter-to-C (may end up writing one)
and I would not want to trust it yet in any case.  I appreciate the version of
empire I did receive, but it's not much help without Fortran.  There is, I
assume, an all-C empire, isn't there?

My cat can quack, can yours?		genghis!root@csvax.Caltech.Edu.UUCP

jc@paisley.UUCP (02/13/87)

I recently noticed a spate of requests for the Unix Empire sources and
observed that the recipient for these requests asked that people mail 
him direct for them.

   Unfortunately, I am experiencing difficulties mailing to your side of
the pond and so ask forgiveness from the net for posting this request for 
the sources here.


Thanks in advance.

jte@psuvax1.UUCP (03/26/87)

Does anyone have a version that can be anonymously ftp'd?  I would
like to ftp the src if possible because it is much cheaper and faster.

Thanks.

--Jon

---------------------------------------------------------------------------
Jon Eckhardt                  | jte@psuvax1.BITNET
---------------------------------------------------------------------------
      UUCP = <allegra,ihnp4,atcgva,burdvax,purdue>!psuvax1!jte
---------------------------------------------------------------------------