Version 0.2pl0
--------------
First public release.


Version 0.2pl1 (Thu Feb 10 1994)
--------------
 
 o Added support for compilation on AIX and HP/UX.
   Thanks to Stephan Lindstrom and Jarkko Lavinen for the information.

 o Got xzx working with Monochrome displays.  Made colour allocation
   somewhat less antisocial, too.

 o Added support to emulate a 16K spectrum.  (Useful, huh? :-)

 o Fixed a problem which caused xzx to hang occasionally with slow displays.

 o Fixed a bug where the ROM could only be read from the current directory.

 o Fixed a problem where the symbol MIN was redefined on some platforms.


Version 0.3pl0 (Thu Feb 24 1994)
--------------

 o Added support for FLASHing attributes.  Not very efficient, though.
   Can be disabled with the -flashing option, in which case FLASH is
   implemented as INVERSE.

 o xzx can now read (but not write) Z80 format snapshots.  Thanks to
   Gerton Lunter for his Z80 format description in Z80.DOC.

 o Added setitimer-style interrupt generation to (hopefully) guarantee
   50 interrupts/sec.

 o Fixed monochrome X server support, hopefully.  Monochrome colours
   now contrast properly, too.

 o Added -private and -mono colormap handling options.  Useful if you
   run out of colors on a PseudoColor display.

 o Made image transfer a bit friendlier in that images are only
   sent if the screen has recently changed.  Thanks to Stephen Usher
   and Jonathan Brazier for pointing this out to me.

 o Added support for Kempston joystick emulation using an analogue PC 
   joystick on Linux.  Requires the joystick kernel patches.

 o A couple of other minor bugfixes/optimisations.


Version 0.4pl0 (Thu Mar 10 1994)
--------------

 o Local X server detection now works better - thanks to Ronald Hartwig.

 o xzx no longer crashes if snapshot names do not contain a dot.

 o Basic sound support for Sparc Stations only - music sounds pretty
   awful, but simple sound effects work reasonably well.  Must be on
   the console, since it uses /dev/audio.  Thanks to "Purple Tentacle"

 o Fixed display for monochrome displays (finally, I hope :-).  Also added
   halftoning colour simulation for SCALING > 1.  Thanks to Ian Collier.

 o Fixed some bugs with PushValue/PopValue - a few more snapshots now
   appear to work.

 o LOAD and SAVE will dump CODE and programs to a file.  Not well tested,
   and I had problems with loading BASIC, but give it a go and tell me how
   it works.  Thanks to Russell Marks & Ronald Hartwig.

 o It's now possible to read and write single characters to & from
   stdin, stdout and stderr, using I/O ports.  Read the man page for
   more details.  Thanks to Ronald Hartwig again, who's obviously 
   been busy lately :-)

 o Some more minor bugfixes/optimisations.


Version 0.5 (Tue Mar 29)
-----------

 o Added Interface 1 Shadow ROM and Microdrive support!  RS232 
   emulation also possible via the Shadow ROM, which makes the
   PSEUDO_IO code a bit superfluous.  Both mechanisms can co-exist,
   though.  Thanks to Martin Smith. 

 o Fixed LOAD_SAVE support - BASIC programs now work correctly, and
   'SAVE "prog" LINE x' also works.  Thanks to Russell Marks.

 o An alternative LOAD/SAVE mechanism, thanks to Ian Collier.  Both
   methods write compatible dumps, but at most one method may be 
   selected at compile-time.  LOAD_SAVE flag changed to a choice of
   LOAD_SAVE_1 or LOAD_SAVE_2.  See the Imakefile for details.

 o F8 now generates an NMI.  Thanks to Ian Collier.

 o Made /dev/audio sound support work on Linux.  Sounds pretty crap,
   but recognisable.  Also works on the NEC EWS 4800/330, very well.

 o Added PC Speaker style audio support for Linux.  Sounds much better
   than /dev/audio support - recommended.  Must run suid root, though.
   Thanks again to Russell Marks.

 o Added resource-configurable keyboard emulation for a kempston joystick.

 o Made xzx more environmentally friendly; tells the window manager
   everything it needs to know, and tries to appear under the mouse
   pointer (though your window manager has the final say).

 o The default PSEUDO_IO ports have been moved to 48896 (stdin),
   48897 (stdout), and 48898 (stderr).  That's BF00, BF01 and BF02 hex.
   I did this to avoid a clash with the Shadow ROM and Microdrive routines.

 o Improved the Linux joystick calibration mechanism somewhat.

 o Yet more minor bugfixes.


Version 0.5pl1 (Thu Apr 28 1994)
--------------

 o Fixed a problem where files could not be read from the xzx library
   directory.


Version 0.5pl2 (Wed May 11 1994)
--------------

 o Another fix to monochrome server support.  Apparently images come up
   mirrored on some monochrome X servers - it's all down to byte and bit
   order incompatibilities.  Hopefully it all works now.  Thanks to
   Dougie McLaggan for this one.

 o Optimised the screen refresh algorithm a bit - xzx now only sends the
   portion of the screen which has changed since the last update.  Still
   not perfect, but non-MITSHM refresh is now a little bit smoother.
   MITSHM transfer will not be much affected.

 o Fixed .z80 snapshot support.  I can't remember who sent me this fix, but
   whoever you are, send me some mail, and I'll include your name next time
   round :-)

 o auxfuncs.c is now #include'd, since I can take advantage of gcc's
   inlining.  This won't have any effect for compilers which don't provide
   inlining, but should run a tad faster for compilers which do.

 o Fixed a problem where 'make depend' didn't work.

 o Screen refresh frequencies are now run-time configurable through two
   new options, rrShm and rrNoshm.  Check out the manual page for more
   details.

 o The libDir resource can now be a colon-separated pathname.  Its new
   default is '.:<LIBDIR>', (usually '.:/usr/local/lib/xzx') so that
   default behaviour is unchanged.

 o A new feature, LEVEL_LOADER, has been added, to make multi-load games a
   bit more usable.  This does require modified snapshots, however, which will
   be available sometime soon.  Observance of the usual copyright laws is at
   the user's discretion.  Thanks to Russell Marks.

 o Another new feature - SLOWDOWN.  This allows you to reduce xzx's speed
   when running on very fast machines e.g. DEC Alpha, Sparc 10... 
   Also now possible to adjust xzx's speed while it's running.  See the
   manual page for more details.


Version 0.5pl3 (Wed May 11 1994)
--------------

 o Fixed a problem where rrShm and rrNoshm were swapped.


Version 0.5pl4 (Thu May 12 1994)
--------------
 
 o Fixed a problem with the definition of NUMKEYMAPPINGS being wrong
   when SLOWDOWN is not defined.


(lots of internal versions followed)


Version 1.0
-----------
 
 o Added 128K and +3 emulation.  Possible to select between 48K, 128K
   and +3 emulations at startup time and on the fly.  Includes (incomplete)
   floppy disk emulation on the +3 and working Interface 1 in 128K mode.
   Does not includes sound chip emulation (yet).  Thanks to Thomas Kjaer
   for much of the work on this.

 o xzx now reads and writes new format .Z80 snapshots.  This includes
   128K snaps.

 o xzx now uses a segmented memory model, mainly to allow 128K support. 
   This also speeds up the IF1 emulation somewhat.

 o Instruction emulation now implemented as a switch statement - avoids
   function call overheads, somewhat more efficient.

 o Significant code rewrite and tidy-up.  Still a bit of a mess though...

 o Added a popup dialog box which is used whenever xzx requires text from
   the user (e.g snapshot names...).  No more messing about on the xterm
   command line.

 o Fixed a couple of bugs with the snapshot reading/writing code - almost
   all of the snapshots I've tried now work.  Thanks to Tim Bevan.

 o Standardised on the LOAD_SAVE_1 mechanism, which is now just called
   LOAD_SAVE again.  LOAD_SAVE now implemented using trap pseudo-ops, 
   which is a little faster.

 o The default PSEUDO_IO ports have been moved to 191 (stdin),
   447 (stdout), and 703 (stderr).  That's 00BF, 01BF and 02BF hex.
   This is more correct since the low byte selects the operation
   and the high byte modifies the operation's behaviour.

 o The xzx window no longer appears under the mouse pointer, since I
   and others found it annoying.  Added a -geometry option to specify
   xzx's position.  If not specified, it's up to the window manager.

 o If xzx fails to get the 16 colours it needs on a PseudoColor display,
   it now uses a private colormap by default, rather than going mono.

 o Fixed emulation of undocumented behaviour of the BIT instruction,
   which means that the hippo now behaves himself in Sabre Wulf :-)
   Thanks to Tim Bevan.

 o Improved IF1 RS232 emulation.  RS232 input is nonblocking, so 
   INKEY$#n works better.

 o It was Ian Collier who fixed .z80 snapshot support in 0.5.2.  Thanks!

 o Other minor changes too numerous to mention.


Version 1.0.1
-------------
 
 o Several bugfixes.

 o A couple of minor optimisations to the emulation code.

 o Added a trap to the ROM to catch the BEEP routine and ring the 
   X server bell.

 o Provided a makefile.std for those without imake.


Version 1.0.2 (Mon 12 Sep 1994)
-------------------------------

  o Just a couple of minor bugfixes/optimisations.
