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.