                                    xz80

                       An X11-based ZX Spectrum emulator

                       By Ian Collier <imc@prg.ox.ac.uk>

                                 Version 0.1

Installing
----------
A Makefile is provided.  Edit the Makefile and tweak any of the
configuration options.  Descriptions of what they do is included in
the Makefile.  Then build the emulator with "make".  An executable
called "xz80" will be created.  This may now be tested.

If necessary, copy the executable and the man file "xz80.1" into appropriate
directories.  Copy the Spectrum ROM file into an xz80 library directory.
The man file may be read using "nroff -man xz80.1 | more" or with the "man"
command.

xz80 is known to work on a Sun SPARCstation under SunOS 4.1.1.  Try other
platforms if you wish.

xz80 will work with some monochrome displays.  In the smallest-sized
display, contrasting colours are displayed with the darker colour in
black and the lighter colour in white.  Halftoning is used if the scaling
factor is greater than 1.

If and when you succeed or don't succeed in getting xz80 working on other
platforms, please let me know.  There are several areas in which xz80 could
break if ported to another system.  Please report all faults as accurately
as possible and I will try and fix it.

xz80 probably requires the following to be true:

 unsigned char  contains exactly 8 bits
 unsigned short contains exactly 16 bits
 int            contains (at least) 31 bits
 unsigned long  contains (at least) 32 bits

xz80 does not require an ANSI compiler, but if your compiler does not
understand the word "signed" then you must insert -Dsigned='' into the
compile flags, and things of type "char" must be signed by default.  Some
compilers have a flag which forces characters to be signed by default.

xz80 works best when the MIT-SHM extension is present.

ROM Files
----------
The file "spectrum.rom" is the original Spectrum ROM, permission to
distribute which has been granted by Amstrad for use with Spectrum
emulators.  The file "imc.rom" is an alternative, details of which
are contained in the text file imcrom.txt.

Extensions to xz80
------------------
If you require an extension to xz80 (for instance, I haven't done a joystick
emulation yet), please ask.  I will probably give more priority to those
extensions which have been requested most.  :-)

If you own code which emulates extra pieces of hardware, or you would like
to offer such code, please do so.  I may be approaching certain people soon
to ask for code, but please offer anyway.  Please note that any such code,
though copyrighted to you, may be modified and will be released under the
GNU General Public License.

Licence
-------
Attention is drawn to the following notice which is written at the top of
each source file:

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

The GNU General Public License is written in the file called COPYING in
the original distribution of this package.

Credits
-------
This program was inspired by, and written to fix (some of) the deficiencies
of, the xzx emulator by Des Herriott <dnh@mfltd.co.uk>.  Several of the X
routines of xz80 follow closely those of xzx.  Without xzx, this emulator
would probably not have been written.

Thanks to Arnt Gulbrandsen <agulbra@nvg.unit.no> for supplying and
maintaining the Spectrum FTP site!

An SGS manufacturer's data sheet on the Z80 CPU was used during the writing
of the emulator, and "The Complete Spectrum ROM Disassembly" by Dr Ian
Logan & Dr Frank O'Hara, published by Melbourne House Publishers, was
used during its testing.

Ian Collier <ian.collier@comlab.oxford.ac.uk>
The Queen's College
High Street
Oxford OX1 4AW
England.
