1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
XZX
An X11-based ZX Spectrum emulator
by Erik Kunze <Erik.Kunze@fantasy.muc.de>
based on XZX 1.0.2 by Des Herriott
and many others
Requirements
------------
o An X11R4 or newer server. R3 might work, but I haven't tried it.
o The MIT-SHM extension is *strongly* recommended. It'll work without it, but
will be SLOW.
o A 'C' compiler which supports prototypes. GCC works fine, although not in
strict ANSI mode (-ansi), since XZX uses some extensions.
o Lex/Yacc to compile the build-in debugger.
o Motif 1.2+ is required for the registered version of the emulator.
Installing
----------
An Imakefile is provided. To install the emulator, do the following:
0) Check the "xzx.config" and "config.h" for some tweakable defines;
descriptions of what each definition does appear in these files. Check
that proper integer types are used for 8, 16 and 32 bit data on your
platform.
1) Create a Makefile with 'xmkmf'.
2) Create Makefiles in subdirectories with 'make Makefiles'.
3) Create dependencies with 'make depend'.
4) Build the emulator with 'make'.
NOTE: emul.c takes quite a while to compile. If you run out of swapspace
try to undefine HAVE_ENOUGH_SWAP in "config.h".
5) After merging the application defaults into your X-server by typing
'xrdb -merge Xzx.ad' you can test the emulator at this point by typing
'xzx'. This should start Sinclair BASIC and give you the familiar
"(c)1982 Sinclair Research Ltd" message. If it doesn't, something's
wrong.
6) You can now install the emulator and its support files by typing
'make install'; the manual page can be installed by typing
'make install.man'.
XZX is known to work on the following machines/operating systems:
Sparc - Solaris, SunOS 4.x, Linux, NetBSD
Intel - SVR4, SCO, SINIX, Linux, FreeBSD
Mips - SVR4, DEC Ultrix, SGI Irix, SINIX, Linux, FreeBSD
IBM RS6000 - AIX v3.2.x
Hewlett Packard - HP/UX
DEC Alpha - OSF/1
Motorola 68K - Bull B.O.S. (but very slowly even on a 68040)
XZX will work with monochrome displays; contrasting colours are displayed with
the darker colour in black and the lighter colour in white, which works
reasonably well. Halftoning is used if the scaling factor is increased.
If and when you succeed in getting XZX working on other platforms, please let
me know. Any diffs or descriptions of changes you made to make it work are
welcome.
Installing Setuid
-----------------
If you build XZX on Linux with PC Speaker support, XZX controls the PC Speaker
using direct inb() and outb() calls. To do this XZX must either be run by root
or setuid root. Uncomment the InstallXzxSetUID definition in the Imakefile to
achieve this. XZX will throw away its root permissions as soon as it gets
permission to write to the speaker port, so there shouldn't be any security
problems.
|