XZip version 1.8.2

by Andrew Plotkin (erkyrath@eblong.com)
based on ZIP V2.0.7 by Mark Howell (howell_ma@movies.enet.dec.com)
web site: http://www.eblong.com/zarf/xzip.html

This is set up for a fairly generic ANSI C compiler. If you get it to
compile under some particular system, please send me mail, and I'll
stick in the relevant #ifdefs and whatnot.

You MUST define either BIG_END_MODE, LITTLE_END_MODE, or
AUTO_END_MODE, by uncommenting one of the lines in the Makefile. If
you don't know which is right, try one and see if the program runs
right. The error messages are nice and obvious. The AUTO_END_MODE
checks a BYTE_ORDER definition which is in the system headers of
*some* Unixes. If Murphy's Law strikes, go back to BIG_END_MODE or
LITTLE_END_MODE.

If your compiler can't find X11 headers or libraries, change the
definitions of XLIB and XINCLUDE in the Makefile. There are some
sample values there. If you find other values that work on particular
operating systems, send me email.

If you get errors in xio.c about fd_set or FD_SET being undefined, put
"-DNEEDS_SELECT_H" in the SYSTEMFLAGS line, as has been done for the
RS6000.

If you get errors about bcopy being undefined, put "-DNO_BCOPY" in the
SYSTEMFLAGS line.

If you get errors about random or srandom being undefined, put
"-DLOUSY_RANDOM" in the SYSTEMFLAGS line.

If you set DESTDIR to the directory you want things installed in, you
can just type "make install". That also installs the man
page. Otherwise, "make" or "make xzip" will just build the executable.

The FONTDEF_XXX definitions are the fonts used by the various
attributes in the interpreter. As you see, they must be delimited by "
(double-quotes). If the supplied fonts aren't on your system, pick
some that are.  All the fonts should look the same size. (I use
14-point Times and 12-point Courier because they look better together
than same-size Times and Courier.)

Version history:

1.8.2:
Added the -spec option, to make the interpreter label itself as
spec 1.0 compliant
Fixed small bugs in arithmetic shift right and printing newlines.
Added support for 64-byte-long properties (spec 1.0 feature)

1.8.1:
Fixed the scripton_flag bug (control.c wouldn't compile with a pre-ANSI
C compiler)
The keypad page-up and page-down keys now work, for those keyboards that
have such things.
Fixed a bug which could cause a crash on exit.
Fixed the set_font opcode to follow the current Z-Spec, and return 0
if the font is not available.

1.8:
Added extended save and restore opcodes.
Added support for the portable Quetzal save file format. Yes, the save
format is changing again. If you don't want this, comment out the
definition of "USE_QUETZAL" in the ztypes.h file.
Added nested output streams, as described in Z-Spec 1.0.
Arrow keys now work right.
Fixed bug in scripting (garbage appearing after command inputs)

1.7:
Added the -strictz option for better z-code error checking.
Fixed bugs in @tokenise whch were causing "You don't see that here" 
messages.
Fixed a problem with color opcodes halting the interpreter.

1.6.1:
Made the timed-input code work right. (How embarrassing.)
Set all the header bits right.

1.6:
Made the division/modulo code more portable.
Put in support for more Unixes.
Put in support for INFOCOM_PATH environment variable.

1.5:
Changed the save file format to be machine-independent (and compatible
with JZip.) This means that *this version will not read save files
created with XZip 1.4*, if you are on a little-endian machine.
Added support for international / accented characters.
Fixed bug in signed division and modulo operations.
Added PICKLE support, not that anyone cares.

1.4:
Added support for the new V8 Z-code format.
Fixed a bug in the display of reverse-video text (especially in sections 
of whitespace which contained both reverse and normal fonts.)

1.3:
Added support for fixed-width sections of text. (This was supposed to
work already, but the z-machine doesn't work like I thought it
did. Sigh.) Also fixed small scrolling bug.

1.2:
Improved support for timed input (a la Border Zone) and input in the 
status window (a la Bureacracy).
Added macros and the explain-key function.

1.1:
It now reads command-line options as well as X resources.
Changed name of random() function to ziprandom(), to avoid conflict with 
the standard random().
Added __STDC__ conditionals to support non-ANSI compilers.

1.0: 
Initial release.
