                   --===comp.sys.sinclair Spectrum FAQ===--

                                       
                              comp.sys.sinclair
                          Sinclair ZX Spectrum FAQ
                             v3.10 (May 27 1997)
 
                                 
[Contents] [Frequently Asked Questions] [Resources] [Emulators] [Where Is...?]
     [File Formats] [Technical Information] [Pinouts] [Acknowledgements] 
                                       
                                       
  -==Maintained by Damien Burke [http://www.jetman.demon.co.uk/mail.html] ==-
                                       
      A copy of the first section of this FAQ is posted regularly to the
 comp.sys.sinclair [news:comp.sys.sinclair] news group. Well, theoretically at
                                   least ;)
 
                                      
               Please send your additions and corrections to me
  [http://www.jetman.demon.co.uk/mail.html] . This FAQ is based on the FAQ as
  previously maintained by Marat Fayzullin [http://www.freeflight.com/fms/] ,
    for whom all old computer fans should give daily thanks and worship ;-)
 
                                       
Copyright: this FAQ is © 1995-1997 Damien Burke. Permission to put this FAQ on
   CDs or include it with emulators is hereby granted, as long as it is not
 modified in any manner. If you wish to display this FAQ (in full) on your own
web site (or other media), apply to me to become a mirror site. If you wish to
 display only portions of this FAQ on your own web site (or other media), you
 may *not do so* without my specific permission (and that will only be granted
 in special circumstances). Sorry to sound so officious, but there have been a
     number of uncredited rip-offs of parts of the FAQ and I'm sick of it.
 
-=What's New in v3.10:=-
 
  + Resources: the usual amount of new links. 
  + Technical information: Fixed incorrect information on ULA in hardware
section, thanks to Erik Kunze [Erik.Kunze@philosys.de] . Added info on AY
ports for TS2068 and Fuller box, and joystick port assignments, thanks to
Alvin Albrecht [albrecht@freenet.calgary.ab.ca] . 
  + Where is...?: Added Bob Paape, Makky J, David Spicer, Beam Software, John
Pragnell, Keith Burkhill, Richard Stevenson and R. T. Smith. Updated entries
on Ste Cork and Mike Follin. 
  + Emulators: - Added ZX-Jam v1.0b and ZX32 v1.01. Updated info on
Speccylator and added Speculator '97 thanks to Adam Hodson [azh@cs.bham.ac.uk]
. Updated info on XZX v2.1 thanks to Erik Kunze. Updated info on X128 v0.61
(DOS). 
  + File Formats: Added Speculator's ZX82 file format, and a link to the ZX
Tape format specification. 

                                       
                                       
                                       
                       -==FREQUENTLY ASKED QUESTIONS==-
                                       
 
                                       
                                       

_
  1. Just what is this newsgroup for?_
 This group's charter (from its original formation in December 1993) is to
provide a forum for the discussion of the various brainchildren of Sir Clive
(born Clive Sinclair) and related computers such as the Jupiter Ace, TK and TS
series', SAM Coupe and Thor, software, peripherals, emulators for them,
programming them; playing those wonderful games (6031769, anyone?); and
anything else which interests the Sinclair community. The group is not
moderated. Unless you count Brian ;)
 
Auctions of Sinclair equipment and software/books for Sinclair machines are
allowed in this group. An auction must follow the following format: a single
message listing the items for sale, with references to email or a web page for
updates. While the auction is in progress, a weekly message may be posted
stating that an auction is going on and referencing email or a web page.
Following the end of the auction, the person running it may post a single
message announcing that the auction is over, but not giving details of who got
what. These details should be emailed to all concerned.
 
In practice, most discussion is Spectrum-related, but there's a fair bit of
SAM Coupe, QL, ZX-81, etc. chat as well. This FAQ only covers the Spectrum,
other documents being available seperately: e.g. The QL FAQ
[http://www.uni-mainz.de/~roklein/ql/] , QL Faq and Resources Pointer
[http://www.di-ren.co.uk/ql/faq.htm] and The SAM Coupe FAQ
[http://www.soton.ac.uk/~tsp93ma/Coupe/FAQ.txt] .
 
This FAQ covers technical information, emulator information and resources and
does not attempt to cover Spectrum games and history. There is a game FAQ
available - see question 26.
 
_
  2. Can I post binaries to this group?_
 NO! The word _binaries_ does *not* appear in the newsgroup title, and this is
a subtle indication that posting binaries is going to make you very unpopular
very quickly. Most people have to pay for their net access, and some do not
have the capability to download only the messages they want to read, so you're
costing them money if you post binaries, which are substantially larger than
most posts. You may also cause news providers to stop carrying the group if
binaries are seen to be posted in it. If you want to distribute something
Sinclair-related, upload it to an FTP site
[ftp://ftp.nvg.unit.no/pub/sinclair/incoming/] or put it on a web page and
post the *address* of the site. Or use John Dow's Sinclair file exchange area
- FTP to _gnu.cybersurf.co.uk_, login _sinclair_, password _sinclair_.
 
_
  3. Is there a Spectrum emulator for <whatever machine>? What's the best one?_
 See section II, Emulators. It is split up by machine type, and you should be
able to find one you can use. Of course, if you can't get one for your machine
(pretty unlikely now!), you could always write one... ;-)
 
_
  4. Where can I find <whatever game>?_
 The game you're after is probably available somewhere on the net. The best
way to search is to use Hynek Med's snapsearch
engine
[http://drson.vse.cz/snapsearch/] . There are a few games that are *not* to be
found on the net yet - check out Blood's Missing In Action list.
 
Several CDs full of games can be had:-
 
Speccy Sensations II from Warm Silence Software
[http://www.comlab.ox.ac.uk/oucl/users/robin.watts/wss/index.html] . 
Emulator Heaven:
 Phone Mike Mee in the UK on (01745) 591704 after 6pm or write to "Anncott",
Hylas Lane, Rhuddlan, Clwyd, LL18 5AG, UK or phone 'TortyFoo' also in the UK
on (01922) 616324 (7pm-10pm Weekdays/ 10am-10pm Weekends) or email TortyFoo
[emulators@tortyfoo.demon.co.uk] .
 
Until recently, a CD called 'Die Speccy' was available quite widely (e.g. from
HMV shops in the UK), but HMV at least have removed it from the shelves after
finding pornographic demos on the CD! Never mind the copyright violations, eh?
If you have bought this and have any problems running Z80, you should buy the
registered version. It is shareware, and you *cannot* expect any support
unless you pay for it. Brian Gaff, the UK registration contact for Z80, has
had quite enough of people ringing up and complaining to him about the
contents of a CD he has had *nothing* to do with!
 
If none of those turn up the game you're after, try asking on the newsgroup
[comp.sys.sinclair] , or (shock) going to a second-hand shop and digging
around in their boxes of old tapes.
 
_
  5. Is it legal to use ZX-Spectrum ROM images?_
 Yes, it is. Amstrad, who own the copyright for the ROMs, allow free
distribution of ROMs for emulation purposes, although they often apply
stipulations such as not charging money for software that includes these ROMs.
They also allow free distribution of electronic versions of Spectrum hardware
manuals.
 
_
  6. Is it legal to use snapshots (i.e. games etc.)?_
 Formally, using snapshotted game without actually owning a copy of it on a
tape is a *copyright violation*. Nevertheless, ZX-Spectrum games are not being
sold any more and using snapshots doesn't harm copyright holders much, if you
don't make profit from it and don't distribute snapshots on a large scale.
Some companies definitely do not like to have their games distributed (e.g.
_Ultimate/Rare_), whereas others have given explicit permission (e.g.
_Vortex_). I maintain a list of such companies/individuals here
[http://www.jetman.demon.co.uk/speccy/permits.html] .
 
_
  7. I have the game I was after, but in a format my emulator can't load. How
do I convert snapshots between various formats?_
 Most snapshots can be converted into one another using SPConv program by Henk
de Groot [hegr@ensae.ericsson.se] and myself
[http://www.jetman.demon.co.uk/mail.html] . An MSDOS version of this program
is supplied with the JPP emulator (source included), but is a rather old
version. A more up to date version (v1.10) is available from here
[ftp://ftp.nvg.unit.no/pub/sinclair/utils/generic/spconv-110.zip] . SPCONV
converts files between many snapshot formats, and is udpated from time to time
to deal with new ones.
 Also, the registered version of Z80 contains a converter program, and there
is a program called Butcher, written by Marat Fayzullin (available at the nvg
ftp site [ftp://ftp.nvg.unit.no/pub/sinclair/utils/amiga] ) that can split .ZX
(or .SPC) files (used by the "Polish" emulator) into a series of
.header/.bytes files for use with the Spectrum v1.7 emulator on the Amiga.
 
_
  8. I'm trying to convert a .Z80 file into .SNA format using SPCONV and it
doesn't work. Why?_
 You are probably using SPCONV v1.05 which came with JPP distribution. It has
problems converting .Z80 files created by Z80 v2.01+. Get SPConv v1.10 from
here [ftp://ftp.nvg.unit.no/pub/sinclair/utils/generic/spconv-110.zip] . It
works. SPConv cannot currently handle 128Kb snapshots, but a future version
will.
 
_
  9. I've got a snapshot that won't load into Z80 - it just gives an error
message saying 'plusdrom.bin not found' and exits to DOS. How can I get it to
work?_
 The snapshot was saved by someone with a registered copy including +D
emulation, in +D mode. The game doesn't actually *need* the +D ROM, so you can
use DEMGT [ftp://ftp.nvg.unit.no/pub/sinclair/utils/generic/demgt.zip] to
modify the snapshot so it isn't in +D mode. Or get hold of Z80 v3.04+, which
does not have this problem.
 
_
  10. What are these .SLT files?_
 An improved type of snapshot that holds all the levels for multiload games.
You need Z80 v3.04+, WSpecEm, XZX v2.1.0+ or x128 v0.4+ to use them. See the
File Formats section for more details. They are *not* compatible with .TAP
files. You can read all about them on this page
[http://www.jetman.demon.co.uk/speccy/edfb.html] too.
 
_
  11. What is the difference between the various ROM-files available for use
with Spectrum emulators?_
   SPECTRUM.ROM    Spectrum ROM, exactly the same as in the original Spectrum.
 
   GROOT.ROM    Same ROM, but with lots of bug fixes and extensions by Henk de
Groot [hegr@ensae.ericsson.se] . List of changes follows:  
       
    + Bug fixes as mentioned in "*The complete Spectrum Rom Disassembly*" by
Dr. Ian Logan and Dr. Frank O'Hara.  
       
    + Support for EPSON printer via an Z80-PIO chip and Centronics connection.
 
       
    + Monitor support: start up with black screen and white characters.  
       
    + Lightpen support: Lightpen routine for DK'Tronics lightpen is built in.  
   TK95.ROM    ROM from a Brazilian Spectrum clone called Micro Digital TK95.  
   IMC.ROM    Ian Collier's modified ROM. See the documentation that comes
with xz80.  
   UNICORN.ROM    ROM used by Mikro-Gen's Shadow Of The Unicorn cartridge
game.  
 

_
  12. Where can I get Microdrive cartridges?_
 Microdrive cartridges (as well as complete Microdrive kits) can be obtained
in the UK from:
 
W.N. Richardson &Co.
 6 Ravensmead
 Chiltern Hill
 Chalfont St Peter,
 Bucks, SL9 0NB
 United Kingdom
 
PHONE/FAX 01494-871319

 
_
  13. How do I fix my worn out ZX-Spectrum keyboard?_
 If the connectors on the PCB have scratched off the silver from the ribbon,
buy some so-called "conductive paint" which is a suspension of fine silver
particles. If you let it dry, it conducts. Use a fine brush to replace what is
scratched off from the ribbons. This paint is available from most electronics
hobbyist stores (for example, from RadioShack in US).
 
There is a company in Poland that still manufactures keyboard membranes, but
they only do a run when enough demand has built up, and I have no information
on whether they can deal with anyone outside Poland. I've also managed to lose
their address, so if the person who informed me about them could mail me
again, I would appreciate it! 
New membranes can also be bought from Jean Austermuhle [joshua@santana.gun.de]
in Germany; his postal address is:
 Sternwartstr.69
 D-40223 Dusseldorf.
 Tel: +49 (0)211 395460
 Prices:
 48k rubber board - pound10, 48K+/128K - £19, 48K/128K (better quality like
+2/+2A) - £23. Plus postage & packing. Do contact him first.
 There's more on fixing your keyboard in the pinouts section of this FAQ.
 
Also, Didier Duchet [didier.duchet@almac.co.uk] apparently has some Spectrum
and QL spares for sale; ULAs, power supplies and QL keyboard membranes. 

_
  14. What's the address of the "Spectrum Profi Club" in Germany?_
 SPC
 Wolfgang + Monika Haller
 Penningsfelder Weg 98a
 51069 Koeln
 Germany
 
Note the change in this address; and the club is indeed still going as of
February 1997, and as of late March 1997 they have a Home page
[http://www.dvz.fh-koeln.de/~bn109/spc.html] .
 
_
  15. What are the differences between the different Spectrum models?_
   
    + 16K    original model. Rubber keys.  
   
    + 48K    (most widespread) original model with RAM extension  
   
    + TC2048    From Portuguese arm of Timex. Black with grey plastic keys.
Built in Kempston joystick port, some higher resolution screen modes (as in
the TS/TC2068), 48Kb of memory, had a paging system but no actual extra RAM
there to use it. Also blessed with an RGB composite video output and an on/off
switch as well as a built-in speaker of much better quality than the
Spectrum's buzzer. Not fully Spectrum compatible; a few games didn't work,
e.g. Ole Toro and Sidewize.  
   
    + TS2068    American version from Timex; had an AY-3-8912 sound chip (same
chip as in the Spectrum 128, though it uses different port addresses),
cartridge ports, two joystick ports (not compatible with any other Spectrum
joystick standards) and an additional 8Kb extension ROM with extra BASIC
commands to support these devices. Three extra video modes and a built-in
speaker of much better quality than the Spectrum's buzzer. Not entirely
Spectrum compatible because of ROM changes, but a cartridge based Spectrum
emulator (basically a new ROM) was available and gets most programs to
cooperate. Silver plastic case and plastic keys (with a space bar!).  
   
    + TC2068    same as TS2068; sold by a Portuguese arm of Timex away from
usual Sinclair markets.  
   
    + TK90X    Clone of 48K by Micro Digital of Brazil, with a built-in
joystick interface (Interface II compatible) and two new BASIC commands -
TRACE, for tracing execution, and UDG for editing UDGs. This modified ROM
caused some compatibility problems.  
   
    + TK95    as TK90X, but with a real keyboard (not unlike the C64's) and a
more compatible ROM. Apparently a TC2048 in disguise.  
   
    + 48K+    as 48K, but had "real" keyboard.  
   
    + Inves Spectrum 48k+    A 48K+ clone from the Investronica company.
Released after Amstrad bought Sinclair Research Ltd. Looked much like a normal
48+. Compatibility problems with some games (Bombjack, Commando, Top Gun,
etc...).  
   
    + 128K    128Kb RAM, AY-3-8912 sound chip, keypad, RS232 port and "real"
keyboard. The last real Sinclair machine.  
   
    + +2    128K with built-in tape deck, new (grey) case and keyboard. First
Amstrad-produced model.  
   
    + +3    128K with built-in disk drive, new ROMs including a DOS and some
internal changes on the bus. Back to a black case.  
   
    + +2A    +3 with a tape deck instead of disk drive.  
 
_
  16. What peripherals exist?_
 This would be a big list, so I'll keep it to what I consider are major ones;
for more, see the Spectrum Hardware site
[http://www.xsite.ltd.uk/pj/index.html] .
   
    + Interface 1    joystick and microdrive interface, network capabilities.  
   
    + Interface 2    joystick and cartridge interface.  
   
    + Microdrive    fast tape storage (requires Interface 1).  
   
    + ZX Printer    thermal printer (aka silver bog roll burner).  
   
    + Keypad    extension keypad for the 128K models that offered extra
editing facilities in 128K BASIC.  
   
    + Multiface    Romantic Robot's excellent device to stop the Speccy cold,
enabling you to save the current state of the machine to tape or disk and
enter POKEs.  
   
    + Joysticks    many interfaces exist; Kempston, AGF/Protek, programmable
interfaces (which mapped joystick positions to keypresses), etc. etc.  
   
    + AMS Mouse    well, a mouse...  
   
    + BetaDisk    an interface to enable attachment of a 3.5" drive.  
   
    + Disciple/+D    MGT's interface to enable attachment of a 3.5" drive.  
   
    + Wafadrive    not unlike a Microdrive.  
 
_
  17. Where is Sinclair Research now? Is Clive on email?_
 A recent interview in Wired revealed that not only does he not use the
internet, he doesn't even have a computer. He keeps a collection of his old
babies in his office (at Sinclair Research, which he is still chairman of),
but even so he's not particularly interested in them; he could not remember
what the machine that followed the Spectrum was called (it was the QL
Clive...). It's rather a shame for us lot I suppose, but Sir Clive was always
more interested in inventing new bits and pieces than computers in particular.
 
If you have a pressing need to contact the man himself, the current address of
Sinclair Research is:
 Sinclair Research Ltd.,
 The Penthouse,
 York Central,
 70 York Way,
 London
 N1 9AG
 UK
 
_
  18. What the hell is a Spectrum?_
 The best home computer of all time. Came out in 1982 from Sinclair Research
Ltd., and proceeded to capture the hearts and minds of millions of people.
Based around a Z80 processor and utilising lots of neat tricks to keep the
cost down, Clive (now *Sir* Clive) Sinclair effectively created the UK
computer industry with his ZX80, ZX81 and ZX Spectrum. If you've never used
one, get hold of an emulator and try out some of the classic games around
(e.g. _Jetpac_) and see what *real* gameplay is about without needing 50 Mb of
hard disk space and the type of processing power that interferes with military
radar.
 
_
  19. Hot damn this sounds good. I want a real one!_
 Buying a Spectrum these days is quite easy, though you'll be buying
second-hand. Frank Davis [fdavis@walnut.holli.com] in the US apparently sells
the US machines (TSxxxx) and also sells US versions of the QL. The SAM Coupe,
the Spectrum's spiritual big brother, is still being made in Eastern Europe
and can be found at computer fairs sometimes. It can run a fair bit of
Spectrum software (comes with a Spectrum emulator). Real Sinclair Spectrums
are often to be found at car boot sales, in the classified ads sections of
local papers/dedicated FreeAds type papers and in second-hand shops. People
sometimes offer Sinclair hardware for sale on the newsgroup. Unfortunately
this is often done by an auction, so prices can climb to stupid levels. You're
better off looking in those second-hand shops. Computer Cavern
[http://www.premier.co.uk/~capri/graveyard.htm] in Marlow, Buckingham is one
such place and apparently well worth a visit.
 
_
  20. Is the Spectrum better than <other machine>?_
 Choose the answer you prefer:
 A1) Yes.
 A2) Yes, unless the other machine is a QL.
 A3) Yes, unless the other machine is a SAM Coupe.
 A4) Yes, unless the other machine is an Atari ST. That should see if anyone's
awake...
 
_
  21. Was Terminal Man The Most Utterly Excellent Comic Strip Of ALL TIME?_
 Yes. Now it's in print Joe, so you can go away... :-)
 
_
  22. How do I make snapshots or TAP files from my Speccy tapes?_
 Well, there are a number of ways. The Z80, WSpecem and Warajevo emulators
(among others) all have means to load from real tapes. Check the Emulators
section of this FAQ to find out what capabilities are available in the
emulators you are able to run. And then *read* the documentation with those
emulators!
 
_
  23. How do I load snapshots or TAP files into my real Spectrum?_
 Again, several ways. The registered version of Z80 can output VOC files which
can be recorded onto tape, and there is a utility called HypraLoader
[ftp://ftp.nvg.unit.no/pub/sinclair/utils/pc/HypraLoader.zip] written by Tomaz
Kac which also does this.
 
_
  24. How do I convert a TAP file to a snapshot?_
 You can't convert them directly. A TAP file is a *tape*, and totally
different to a snapshot, which is a frozen copy of the Spectrum's memory
contents, registers and so on. To make a snapshot from a TAP file you simply
load the TAP file into your emulator (see the documentation with the
particular emulator) then LOAD the program as you would on a real Spectrum.
When the program has loaded you can make a snapshot at that point (again see
the documentation of the particular emulator). Bear in mind, though, that many
TAP files include further files for later levels etc. so the snapshot may
still need the TAP file; some snapshots you may download are like this,
because of people doing this without thinking.
 
_
  25. I have a Mac and can't get any snapshots to work - why?_
 The filetype isn't correctly set. You could use ResEdit to change the
filetype but it's easier to get the MacSpeccy emulator - in the file open
dialog there's a box titled 'Fix file types'. Click on that and it will
correctly set the snapshot file's filetypes, and you can then use any of the
Mac emulators to open the snapshot files.
 
_
  26. I have a question not covered here!_
 Well, there are other sources of information; in particular, if the question
is about a particular game, your first stops should be Stephen Smith's Games
FAQ [http://www.jonlan.demon.co.uk/spectrum/gamefaq/] and Sinclair Software
Database [http://icemark.thenet.ch/zx/ssd/] .
 If your question is anything to do with the PC-based emulator Z80 (or indeed
any emulator), then try reading the documentation that comes with it. It is
very full and 99% of questions people ask on the group about it could be
answered if they'd bothered to read the supplied documentation.
 If that's no help, welcome to the group, ask away!

                                       
                                       
                                       
                                -==RESOURCES==-
                                       
 
                                       
                                       

In between updates of this FAQ, new web sites usually appear - I may have
linked to them on my own page [http://www.jetman.demon.co.uk/speccy/www.html]
. so take a look there if you're after something new. If you find an address
in here that doesn't work any more, please let me know - and let me know if
you find one that isn't listed here too!
 
This list is ordered by the sites' domain names, so don't feel bad if your
site is listed after one you think isn't as good. If anyone thinks my
description of their site is incorrect or unfair, again, let me know.
 
One thing I have noticed after around two and a half years of monitoring the
growth of Spectrum-related web sites is that an awful lot of people get their
net connection and have the bright idea of making a Speccy web page.
Unfortunately, most of them then soon find the multitude of pages that already
exist, and don't bother to update their own early efforts; not even to remove
the usual promises of future greatness. When I first 'got wired' I can't say
there more than about 10 Speccy pages in existence. There are many more now,
but an awful lot of them are just link collections or have never been updated
since they were first put up. Therefore, this list now mentions where a page
has not been updated for some time. If I've mistakenly listed your page as
being dead, let me know.
 
-------------------------------------------------------------------------------
                                -=FTP Sites:=-
 
-------------------------------------------------------------------------------

If you're after games, emulators or anything Spectrum-related, there are a
number of FTP sites worth visiting, and new ones spring up now and again...
bear in mind that many of the sites containing games are very busy, so you're
better off trying at quieter times (e.g. very late at night in the UK), and
don't use a web browser - use a proper FTP client. This section used to be
considerably larger, but when I checked on 6th January 1997, many of the sites
no longer existed or no longer contained the Sinclair-related material that
they once had, so I have removed them from this list.
 
  + ftp.nvg.unit.no/pub/sinclair [ftp://ftp.nvg.unit.no/pub/sinclair] *THE*
Speccy FTP site! In fact, you can probably ignore the rest of them. Unlike
many other Speccy FTP sites, it is usually no problem to access (though some
people complain it is slow - at least it lets you on, unlike many others with
limits of 5, or even 1, anonymous users!). If you upload anything to the
/pub/sinclair/incoming directory, make sure you mail if you upload to NVG,
make sure you mail Starglider at nvg@thespian.demon.co.uk
[nvg@thespian.demon.co.uk] to tell him what the file is and where the file
should go. 
  + akira.uc3m.es [ftp://akira.uc3m.es] is another good snapshot site, though
it didn't respond last time I tried. 
  + ftp.cybersurf.co.uk [ftp://ftp.cybersurf.co.uk] John Dow's new site,
supposedly including a mirror of NVG's snaps hierarchy though I couldn't find
any sign of that. 
  + ftp.dcc.uchile.cl/pub/OS/sinclair
[ftp://ftp.dcc.uchile.cl/pub/OS/sinclair] now seems to have had all the
snapshots removed; there's a message there which Rui Ribeiro kindly translated
for me; they had a disk crash and have to restore from backups. 
  + ftp.demon.co.uk/pub/emulators/spectrum
[ftp://ftp.demon.co.uk/pub/emulators/spectrum] has a very small number of
snapshots, copies of Emulate! and some emulators (old versions though). 
  + ftp.funet.fi/pub/misc/if-archive [ftp://ftp.funet.fi/pub/misc/if-archive]
is an interactive fiction archive, including Level 9 adventure stuff and some
emulators. 
  + ftp.gmd.de/if-archive [ftp://ftp.gmd.de/if-archive] is probably a mirror
of the above interactive fiction archive, but didn't respond when I last
tried. 
  + ftp.gui.uva.es/sinclair [ftp://ftp.gui.uva.es/sinclair] 
  + ftp.inf.tu-dresden.de/pub/zxspectrum
[ftp://ftp.inf.tu-dresden.de/pub/zxspectrum] (and
ftp.inf.tu-dresden.depub/incoming/zxspectrum
[ftp://ftp.inf.tu-dresden.depub/incoming/zxspectrum] ) 
  + ftp://ftp.ipp.pt/pub/sinclair/ [ftp://ftp.ipp.pt/pub/sinclair/] is Rui
'WSpecEm' Ribeiro's FTP site with lots of snapshots etc. 
  + ftp.itu.edu.tr/pub/systems/spectrum
[ftp://ftp.itu.edu.tr/pub/systems/spectrum] 
  + ftp.komkon.com/pub/Spectrum [ftp://ftp.komkon.com/pub/Spectrum] (and
ftp.komkon.com/incoming/Spectrum [ftp://ftp.komkon.com/incoming/Spectrum] ) 
  + ftp.lanprojekt.cz/pub/sinclair [ftp://ftp.lanprojekt.cz/pub/sinclair] 
  + ftp.nat.com.ar/sinclair/ [ftp://ftp.nat.com.ar/sinclair/] is the
Sinclairmaníacos BBS FTP site 
  + ftp.polsl.gliwice.pl/pub/systems/ZXSpectrum
[ftp://ftp.polsl.gliwice.pl/pub/systems/ZXSpectrum] 
  + ftp.sun.ac.za/pub/misc/sinclair [ftp://ftp.sun.ac.za/pub/misc/sinclair] is
a mirror of NVG (see also ftp.sun.ac.za/pub/msdos/zx
[ftp://ftp.sun.ac.za/pub/msdos/zx] ) 
  + rcs1.urz.tu-dresden.de/pub/soft/zxspectrum
[ftp://rcs1.urz.tu-dresden.de/pub/soft/zxspectrum] 
  + uhura.ijs.si/pub/zx [ftp://uhura.ijs.si/pub/zx] (used to be ftp.ijs.si);
this site always used to have loads of snapshots (more than NVG) but is
near-impossible to log onto 
  + virgo.inesc.pt/pub/games [ftp://virgo.inesc.pt/pub/games] 
  + wuarchive.wustl.edu/systems/sinclair
[ftp://wuarchive.wustl.edu/systems/sinclair] 
  + www.il.ft.hse.nl/pub/sinclair/ [ftp://www.il.ft.hse.nl/pub/sinclair/]
hasn't been updated since April 1996; a few emulators (old versions) and
around 1.6 Mb of snapshots in a single ZIP file 
-------------------------------------------------------------------------------
                                -=Web Sites:=-
 
-------------------------------------------------------------------------------

Web sites abound, and new ones appear all the time... try web searches for
_'Sinclair Spectrum'_, _'ZX Spectrum'_, _'speccy'_, etc.
 
-------------------------------------------------------------------------------
                    -=Web Sites with Reference Material:=-
 
-------------------------------------------------------------------------------

  + The Alternative Rubber Infested Sinclair Archive
[http://www.mono.org/~ritchie/speccy/speccy.html] (previously known as
Sinclair Spectrum Home Pages) - snapshots and technical articles, and letters
from _Your Sinclair_! Not updated since July 1996. 
  + Planet Sinclair [http://www.nvg.unit.no/sinclair/planet/index.html]
(formerly known as Spectrum Forever!) - A good collection of stuff, though
some of it is rather old. Recently updated to give it a new look, which
thankfully didn't result in an overdose of bandwidth-hogging rubbish. Instead,
some nicer graphics and some frames-based pages have appeared. And hurrah -
text-only versions of the pages too! Unfortunately their mirror of this FAQ is
of v3.0, May 1996 - rather old! 
  + Miguel Duran [mduran@redestb.es] 's Museo de los 8 Bits
[http://www.redestb.es/personal/mduran/index.htm] (8-bit Museum). All sorts of
stuff to do with old 8-bit computers (not just the Spectrum), including some
parts of this FAQ translated to Spanish. 
  + Voyager - Sinclair ZX Spectrum Forum
[http://www-users.informatik.rwth-aachen.de/~afw/sincfo0.html] - primarily a
BASIC reference. Unfortunately, temporarily offline until it moves to a new
site. 
-------------------------------------------------------------------------------
                     -=Web Sites with Games (Snapshots):=-
 
-------------------------------------------------------------------------------

  + M. Coward's SpecNet Online [http://www.accessone.com/~mcoward/speccy.html]
; some games on a nicely presented site. Lots of animated GIFs though, so
watch out if your browser's a bit flaky. 
  + John Dow's part-time page [http://alba.easynet.co.uk] - supposedly up at
10-12PM UK time at weekends; I've never managed to get a response at any time
though. 
  + Harvey Lodder's "Most Wanted"
[http://ds.dial.pipex.com/town/parade/no50/speccy.html] snapshots request
page. Note the changed address. 
  + Glyn Harper's ZX Spectrum Emulator page
[http://homepages.enterprise.net/glyn.harper/spectrum.html] - basically just
links to his FTP site, with around 16Mb of games. 
  + Steve Jones' Sinclair Spectrum Page [http://ireland.iol.ie/~sjones] - has
a snapshots requests page, though hasn't been updated since it started from
what I can see - apparently due to worries about copyright violation. Not
updated for over a year and a half. 
  + Francisco Cotrina's Spectrum page
[http://lia01.unizar.es/curro/spectrum.htm] - with details of his snapshots
mail server and some emulators to download. Not updated, except for links, for
some time. 
  + Andrew Barker's Spectrum Snapshots
[http://osiris.sund.ac.uk/~ca4aba/snaps.html] - yet another requests page, and
was the most active one (or at least it was a few months ago). Sadly this site
would now seem to have disappeared. 
  + Theo Devil's Spectrum page [http://www.acropolis.gr/~icarus/spectrum.html]
- has copies of his demos and games there, plus more... you may have heard of
Theo as the guy behind _Hellenic Software_, he had a few things published on
Crash/YS cover tapes. Not updated since June 1996. 
  + Ben Baylis' Spectrum Stuff
[http://www.cs.ucl.ac.uk/students/zcacbb1/spectrum/speccy.html] - including
the beginning of a point and click snapshots list (using the akira FTP site,
and unfortunately not updated for some time), a requested snapshots page and
_YS Smash Tips!_ Not updated for some time. 
  + Darren Noyce's DazSoft Speccy Page [http://www.dazsoft.demon.co.uk] has
games to download and a Spectrum disk-magazine (which only runs on the Amiga
unfortunately). 
  + Execute Spectrum Programs via The Web!
[http://www-dse.doc.ic.ac.uk/~np2/spectrum/index.html] - not really practical,
but was worth a look. Not updated for over a year, and now appears to have
been removed. 
  + Novikov Sergei's Speccy World! [http://www.geocities.com/Hollywood/8003/]
has lots of seriously hacked games on it - the Russians are really into
updating Speccy games with extra levels, music and so on. All in Hobeta
format, with a Hobeta converter on there too. Some reviews as well. 
  + Blood's Crap Speccy Page
[http://www.geocities.com/SiliconValley/Lakes/6142/] - home of the
comp.sys.sinclair [comp.sys.sinclair] crap games compilation, the _Manic
Miner_ editor, a list of snapshots that are currently not to be found on the
net (can *you* help?) and other stuff. 
  + A. J. Clark's ZX-Philes
[http://www.geocities.com/SiliconValley/Lakes/9323/speccy.html] page - just a
few of his favourite games and a copy of WSpecEm. 
  + Matthew Hambleton's Spectrum Review Daily
[http://www.geocities.com/ResearchTriangle/4750/] . Started out with the
ambitious idea of reviewing one game every day. Managed to keep it up for four
days. See what I mean about people starting pages and then forgetting about
them? Had reviewed Kwik Snax, Pacmania, Rodland and Pang (complete with
snapshots available from the page) before he gave up. 
  + Marek Sedlar's !!!Spectrum Forever!!!
[http://www.grendel.cz/hry/spectrum/index.html] has info, games (mirrored from
NVG) and links, plus a great picture of our Clive. 
  + BBK'S Lair [http://www.logicom.it/personal/BBK/sin_sw.htm] - some
snapshots and PC-based emulators, from Italy's Sinclair Revenge Club. 
  + Ken's Spectrum Corner [http://www.mersinet.co.uk/~keisha/spectrum.htm] has
a few games to download plus the Speccy 128 manual, shortly to be removed now
he realises it is actually already on the web here and some links, though
currently he's using the links page from the ZX Museum, apparently while he
gets his own one sorted out. Soon I trust...! 
  + Karl O'Brien's 48K Heaven - Speccy Spectacular
[http://www.rtc-carlow.ie/student/obrienk/spectrum.html] - has some games and
a copy of Z80 on his page. Updated late in 1996 to give the whole site a nice
new look and some more snapshots. 
  + Russ Jucke's ZX Spectrum Bit [http://www.raiden.demon.co.uk/zx.htm]
has a few games, loading screens and a scan of the back cover of the last
issue of Your Sinclair. 
  + Starglider's ZX Spectrum Page [http://www.thespian.demon.co.uk/] has a bit
of Spectrum history to make you all misty-eyed and a bunch of games to
download, including a game of the month spot complete with a scan of the inlay
cover and some info about the game. Starglider now maintains the NVG Speccy
archive too - so if you upload to NVG, make sure you mail
nvg@thespian.demon.co.uk [nvg@thespian.demon.co.uk] . 
  + Aleksandr Babaylov's ZX Spectrum Software Museum
[http://zx-museum.org.ru/] - a large collection of snapshots and tapes; a lot
of games here, but it can be a slow site and some of the directories don't
actually contain the snapshot itself. Not dead as previously suspected, just
moved! 
-------------------------------------------------------------------------------
               -=Web Sites with Game Hints/Cheats/Information:=-
 
-------------------------------------------------------------------------------

  + Sinclair Spectrum Hall of Fame
[http://carlton.innotts.co.uk/~silthas/spectrum.html] - screenshots of classic
games. Not updated for some time, and now appears to have been removed. 
  + Philip Gooch's has an alpha version of Lords of Midnight
[http://easyweb.easynet.co.uk/~suzi/lom.htm] written in Macromedia Director
using the Shockwave plug-in; so PC owners with a modern browser can play it
here, and if you don't fit that category or can't be bothered you can just
play the real thing :) 
  + Arsen Torbarina's Jet Set Willy Ultimate Fan Page
[http://fly.cc.fer.hr/~arsen/jsw/] ; covers everything related to *the*
platform game; FAQ, maps, POKEs and cheats, Matthew Smith related stuff,
download service etc. However, the server does not always respond. If you get
a host not found error, try again a few minutes later. 
  + Ian Preston's Spectrum Adventurer
[http://home.virtual-pc.com/isblpx/index.html] pages. Lots of adventure
solutions, hints etc. plus a load of snapshots too. A must-visit if you're an
adventure fan! Not just text adventures either; arcade adventures too (e.g.
the Dizzy series). 
  + Conor McCarthy's ZX Spectrum page
[http://orca.ucd.ie/~conormc/zxspectrum/zxspectrum.html] - home of the Miner
Willy Museum (tours of _Manic Miner_ etc.), and more broken links than you can
shake a stick at - all very much under construction. Not updated since October
1996. 
  + YS Smash Tips
[http://www-dept.cs.ucl.ac.uk/students/zcacbb1/spectrum/smashtips/] - courtesy
of Ben Baylis. Lots of tips and cheats. 
  + Darren Jervis has placed the PC version of _Lords of Midnight_ on his page
[http://www.djervis.demon.co.uk] along with maps. 
  + Cheats Prosper [http://www.doggysoft.co.uk/chzxp.html] - Multiface POKEs -
an impressive list of cheats here. 
  + Glenn Flood's Spectrum/ZX-81 Cassette Inlay Artwork Page
[http://www.ftech.net/~floodnet/spectrum/spectrum.htm] - Glenn did artwork for
some _QuikSilva_ games, and now has three inlay designs here. 
  + The Moon Palace [http://www.gatewest.net/~cpb/lom.html] - a home page for
the _Lords of Midnight_ saga. 
  + Tero Turtiainen's Knight Lore Map
[http://www.geocities.com/MotorCity/Downs/1971/knightlore.html] page; a map of
Knight Lore, oddly enough, and a list of the objects in the game. 
  + Stephen Smith's Master Speccy page
[http://www.jonlan.demon.co.uk/spectrum/] - lots of stuff including the
Spectrum games database and games FAQ. A must see! Hopefully, now that Stevo
has a Demon account, we won't have to play 'spot the URL' for at least another
week... ;) 
  + Tolkien computer games for the Spectrum
[http://www.lysator.liu.se/tolkien-games/spectrum.html] from Fredrik Ekman. 
  + Peter Thomas' Speccy site [http://www.prodge.demon.co.uk/speccy/] has,
among other things, his Chaos Editor. 
  + Martin Brunken's page
[http://www.rz.uni-frankfurt.de/~brunken/spectrum.htm] - Some games and links
on a nicely presented, but incredibly slow site. 
  + The YS Tip Shop Tiptionary [http://www.soton.ac.uk/~rjc394/] - courtesy of
Robert Cooper. Not updated since it was started in late 1995. 
  + Zak Jenning's page [http://www.theme.demon.co.uk] has screen shots, games,
a Speccy history page and stuff about his impressive collection of Sinclair
gear. 
  + Gargamel's Ultimate Play The Game Loading Screens
[http://www.wintermute.co.uk/users/gargamel/ultimate.html] . Not updated for
some time, and now appears to have been removed. 
-------------------------------------------------------------------------------
                -=Web Sites of Emulator/Utility/Game Authors:=-
 
-------------------------------------------------------------------------------

  + Claus Jahn and Andy Schraepel's Rainbow
[http://ourworld.compuserve.com/homepages/A_Schraepel/rainbow.htm] page. This
is a program to launch your various Speccy emulators with a chosen snapshot
(similar to Martijn Heide's SGD) and view various Spectrum filetypes. 
  + Space Raisins [http://www.cybercity.dk/users/ccc14241/home.html] homepage.
A BBS in Denmark's homepage, and also home of the KGB emulator and has
information on other Amiga-based Speccy emulators. 
  + James McKay's PC Games Haters Page
[http://www.users.dircon.co.uk/~dmckay/x128.html] - home of x128, the DOS,
UNIX and OS/2 Speccy emulator. 
  + Thomas Ahn Kolbeck Kjaer's x128 for OS/2
[http://www.daimi.aau.dk/~takjaer/x128-OS2/x128.html] page. Yes, it's James'
x128, running native under OS/2. 
  + TapeFix [http://fly.cc.fer.hr/~arsen/tapefix/] - a program to make your
old Speccy tapes readable once more. 
  + Martijn van der Heide's Spectrum Games Database
[http://julia.gns.getronics.nl/~mheide/spectrum.html] - a PC program to
catalog your snapshot and tape collection and launch JPP, Z80, x128, Warajevo
or WSpecEm to run a particular snapshot or tape. A very well done program, and
it's free! He also has over 4,000 snapshots ready to download, and many other
bits and pieces too, including his very own Complete Opus Discovery ShadowROM
v2.2 Disassembly. 
  + Toni Pomar's ZXAM homepage [http://web.jet.es/~tpomar/] - home of ZXAM,
oddly enough. 
  + Andy's Sinclair Spectrum Page [http://www.andyn.demon.co.uk/speccy.htm]
has some games, a graphics ripping utility and Andy wants to get together with
people to write some *new* Speccy games! Go to it... 
  + Ian Collier's xz80 homepage
[http://www.comlab.ox.ac.uk/oucl/users/ian.collier/Spectrum/index.html] - home
of xz80, believe it or not. 
  + Warm Silence Software
[http://www.comlab.ox.ac.uk/oucl/users/robin.watts/wss/index.html] - the
producers of Z80Em. Or go direct to this address
[http://www.comlab.ox.ac.uk/oucl/users/robin.watts/wss/products.html#Z80Em] to
get straight to the Z80Em info. 
  + Richard Carlsson's home page [http://www.csd.uu.se/~richardc/home.shtml] -
author of Speccylator, a Speccy emulator for the Amiga. You'll find a mention
of it right at the bottom of his page. 
  + Delta 4 [http://www.delta4.demon.co.uk/] now have a web site, and rather
good it is too. Wander round Fergus' domain and marvel at the amount of
substances he must have taken in order to write such weirdness. Unfortunately,
when I looked on 5th January 1997 the site appeared to be removed. Surely not? 
  + DoggySoft [http://www.doggysoft.co.uk/] have written several Acorn ARM
Spectrum-related utilities. 
  + Igor Eged's Spectrum page [http://www.elf.stuba.sk/~eged/english.html] has
plenty of info about TR-DOS file conversion and he has several utitities for
dealing with this sort of stuff. 
  + Marat Fayzullin's home page [http://www.freeflight.com/fms/] - author of
emulators for the MSX, NES, Colecovision, Game Boy etc. and at least one
Spectrum-related utility (Butcher). Spectrum material not updated for some
time; even links to the very old text-only version of the FAQ as maintained by
Marat some time ago. 
  + Philip Kendall's Speccy page
[http://www.geocities.com/SiliconValley/Park/5427/spectrum.htm] which has been
around for a good while but had escaped the FAQ's notice until now. 
  + Rui Ribeiro's WSpecEm homepage
[http://www.idt.ipp.pt/~rff-ribe/wspecem.html] . 
  + Adam Davidson &Andrew Pollard's JAVA Spectrum Emulator
[http://www.odie.demon.co.uk] , complete with snapshots of Elite and Jetpac to
show it off. Well worth a look! 
  + Erik Kunze's XZX home page [http://www.philosys.de/~kunze/xzx/] . 
  + Pedro Salaz's Sinclair home page [http://www.ugr.es/~pedrom/sinclair.htm]
- home of the Sinclair v2.00 emulator. 
  + Tomaz Kac's ZXTape format [http://www.uni-mb.si/~uel047r1a/ZXTape/] is a
new specification for holding Spectrum tapes in files. Hopefully to be
supported by all future versions of emulators! Not only is the spec here, but
there are utilities to handle ZXTape files and lots of example files to play
with (you can even load them into your real Spectrum if you're into that sort
of thing!). 
  + The Edge Gallery [http://www.well.com/user/edgehome/archive.html] - help
the Softek boys get their old Speccy software archived! 
  + Paul Jenkinson's Spectrum Hardware [http://www.xsite.ltd.uk/pj/index.html]
site. A list of all the various Speccy peripherals, with many pictures, and
even a Speccy Heroes screensaver for Windows 95 - well worth getting! 
-------------------------------------------------------------------------------
                            -=Web Search Engines:=-
 
-------------------------------------------------------------------------------

  + Alta Vista [http://www.altavista.digital.com/] [new address] - Digital's
rather neat search engine. Very powerful, for instance it can do searches for
pages linked to a specific page as well as search in USENET news articles and
web pages. Unfortunately seems to have been rather brain damaged since about
November 1996 - lots of irrelevant results being returned for quite specific
searches, and thousands of long-gone pages being returned. Digital also seem
to have given up on the _www.alta-vista.com_ domain name for some reason... 
  + Excite [http://www.excite.com/] is another general search engine that has,
I think, beaten Alta Vista now in that it offers a similar feature set but
doesn't return as many dead pages or irrelevant hits, plus it's database is
more up to date. 
  + Hynek Med's Spectrum related files search
[http://drson.vse.cz/snapsearch/] - searches over several FTP/WWW sites to
match the filename you give it. Probably the most useful search engine if
you're after a particular game. 
  + FTP Search [http://ftpsearch.unit.no/ftpsearch/] - will search for any
file on the FTP sites it indexes; can also be used to find Spectrum files of
course! Much like Archie, but nicer. 
  + InfoSeek Guide [http://www.infoseek.com/] - another generic web search
engine, but as always, these are just as useful for finding Speccy stuff as
finding anything else. 
  + Yahoo's Sinclair page
[http://www.yahoo.com/Computers_and_Internet/Personal_Computers/Sinclair/] - a
few links, most out of date. Spectrum links now on a further page
[http://www.yahoo.com/Computers_and_Internet/Personal_Computers/Sinclair/Spectr
um/] . 
-------------------------------------------------------------------------------
                                -=Magazines:=-
 
-------------------------------------------------------------------------------

  + Fish 3 [http://giraffe.rmplc.co.uk/eduweb/sites/cmouth/fish3.html] - a
Speccy e-zine. 
  + Your Sinclair [http://jumper.mcc.ac.uk/~simonc/ys] - parts of some of the
later issues up on the web courtesy of Simon Cooke, YS's tech tips editor for
those issues. And he can have my YS badge for a million quid ;) 
  + Crash [http://www.jabba.demon.co.uk/crash/] issue 1 at least; from Robert
Hazelby. 
  + Barry Plewa's Emulate! was on the web, but currently it's back to being
text-only. Emulate! has games, technical stuff, reviews, chart listings, and
much more. The plain text version is available from
ftp.demon.co.uk/pub/emulators/spectrum/magazines/emulate/
[ftp://ftp.demon.co.uk/pub/emulators/spectrum/magazines/emulate/] (though not
the latest issue by the looks of things) and
ftp.nvg.unit.no/pub/sinclair/snaps/discmag/emulate/
[ftp://ftp.nvg.unit.no/pub/sinclair/snaps/discmag/emulate/] .
 Unfortunately, Barry seems to have given up writing Emulate!; certainly a few
months back he was to be seen getting rid of a load of his Speccy gear, which
is bad news at least. 
  + _Classix_ magazine is an A5 paper fanzine that appears quarterly and costs
£1.20. Alex Waddington [u9600169@bournemouth.ac.uk] is the author and has the
following to say about it:
 "It is dedicated to retro Speccy gaming and has been going just over a year.
We have regular writers such as Andy Davis from Alchemist Research and seek to
provide a lively mix of features, news and tips. We have a light-hearted tone,
with the whole 'zine being produced on a PC using speccy screenshots to liven
things up a bit!".
 Alex's postal address is:
 Sherwood Lodge,
 15 Drummond Road,
 Boscombe,
 Bournemouth,
 BH1 4DP.
 Cheques should be made payable to J Waddington. I haven't seen an issue
myself so I can't say if it's any good. 
  + _Format_ magazine is another paper magazine. The following is taken from a
posting made on the newsgroup by the people behind Format and implies no
recommendation from myself as I've not seen a single issue myself:
 
If you own a Spectrum (48K, +, 128K, +2, +3), a SAM (Coupe or Elite) then
FORMAT is the magazine for you. Published monthly since 1987 it is the longest
running mag of its type. Packed full of articles on programming and the like
it is a must for every Spectrum or SAM owner.
 
Available by subscription for just £12 per year (going up to £15 very soon so
hurry your order through) - overseas customers please email for rates.
 
Send name and address with cheque/postal order for £12 to:
 
Format Publications,
 34, Bourton Road,
 Gloucester,
 GL4 0LE.
 Phone 01452-412572 (UK)
 Email: FormatPub@aol.com [FormatPub@aol.com] 

Bob Brenchley [BrenchleyR@aol.com] of Format is also after writers for the
magazine, so give him a shout if you think you can write articles on any
subject related to the Spectrum or SAM Coupe.
 
-------------------------------------------------------------------------------
                             -=Other Web Pages:=-
 
-------------------------------------------------------------------------------

  + Joseph Aron has a Win95 Startup screen
[http://freespace.virgin.net/joseph.aron/download/logo_sys.zip] available for
download; this one is a 128K version, unlike John's and my own, which are both
48K versions. 
  + ZX Spectrum Danmark [http://home1.inet.tele.dk/krochin/] - can't say my
Dutch is up to much, but it appears to be just links. 
  + Claus Jahn's Spectrum pages
[http://home.t-online.de/home/066246513/claus.htm] contain some screenshots,
various stuff on his Speccy collection, links and so on plus information about
_SpecPic_ (now known as _Rainbow_, see section on emulator/utility/game
authors, above). 
  + Johan Andersson's page [http://ic1.ic.chalmers.se/~johan/speccy.html] -
not much there; he had planned to dedicated the page to Speccy programmers and
hackers and include sections like Peek 'n Pokes, Z80 instructions and timings,
and more, but this has not happened from what I can see. Not updated since he
started it several months ago. 
  + Spectrum Appreciation Society
[http://members.aol.com/jozxyqk/specmain.htm] . Windows version of _Advanced
Lawnmower Simulator_ and a selection of sound samples from Speccy games. 
  + Nick Savoiu has a list of links on his Sinclair ZX Spectrum Switchboard
[http://paul.rutgers.edu/~savoiu/spectrum/] that haven't been updated for some
time, and has an animated 'busy' cursor for Windows 95/NT on this page
[http://paul.rutgers.edu/~savoiu/snoware/anima.html] which is quite well done
and worth a go! 
  + Patrick Hill's Sinclair Zone
[http://sol.soc.staffs.ac.uk/cm5bcpmh/sinclair/index.html] . Some stuff on the
C5, TK90X, Are You a True Spectrum User? and more. 
  + Sinclair Pages [http://sunsite.dcc.uchile.cl/sinclair/] - all in Spanish
and all very unfinished looking. Not updated for some time, and now the front
page has disappeared, leaving only a directory for you to randomly pick files
from. 
  + 8 Bit Universe [http://www.8bit.com/] . Under construction when I looked
at the beginning of 1996, and in the same state in January 1997, so it's
probably never going to get updated now. Currently there are two German
Spectrum adverts there (here [http://www.8bit.com/Sinclair.jpg]  and here
[http://www.8bit.com/Specplus.jpg] ). 
  + Andy Dansby's ZX Sinclair Spectrum page
[http://www.atlantic.net/~adansby/sinclair.html] has some machine code graphic
routines, some stuff on Ant Attack and Rebelstar map editing, PSU requirements
for various Sinclair machines and stuff on Speccy repair. 
  + Spectrum Page [http://www.dur.ac.uk/~d44abw/spectrum.html] - just links. 
  + Spectrum Profi Club [http://www.dvz.fh-koeln.de/~bn109/spc.html] in
Germany. 
  + Sinclair ZX Spectrum Flyer
[http://www.earth.ox.ac.uk:80/~steve/Spectrum/index.html] - some old
advertising bumph. Not updated for some time. 
  + La Web Valenciana del Sinclair ZX Spectrum
[http://www.fiv.upv.es/alumnos/a2917347/spectrum.html] - in Spanish; I think
it's just links, but hey - me no comprendo so me no know! Looked seriously
broken on my last visit in January 1997. 
  + Spectrumania! [http://www.geocities.com/SiliconValley/Lakes/2477/] from
Manuel Millán; info, links and snapshot requests in English and Spanish.
Frames only though... 
  + Homage to the Sinclair ZX Spectrum
[http://www.geocities.com/SiliconValley/Pines/6024/spect-uk.htm] ; an eloquent
homage to the ol' Speccy from a true fan! 
  + Sinclair Page [http://www.il.ft.hse.nl/~ben/sinclair/sinclair.htm] - links
and info on SAM Coupe and Dutch QL user group (in Dutch!). 
  + ZX Spectrum Graphics [http://www.iris.demon.co.uk/zx.html] - some nice
Speccy graphics, presented using a Java applet for some reason, which turns it
into a bogged-down slideshow at the best of times. However, it does at least
enable you to see the graphics come onto the screen in the same manner as they
do when loading a SCREEN$ from tape! 
  + Maksim Uustalu's ZX Spectrum Rules!
[http://www.lai.ut.ee/~madmax/igor.html] . All rather chaotic looking here,
but there would appear to be some games to be had and some links to follow. 
  + Sobre Sinclairmaníacos BBS [http://www.nat.com.ar/sinclair/quees.htm] -
information about a BBS in Argentina that holds Spectrum software and
emulators. 
  + John Garner's Spectrum PD/User Groups
[http://gos.ukc.ac.uk/cgi-bin/hpda/jmg7/spec/index.html] page [new address]. 
  + Martin Fowler's Australian Retro Computing
[http://www.ozemail.com.au/~martinf/] has links to all sorts of old computer
stuff, with the bonus of local copies of emulators etc. so Australians don't
have to wait ages for the download. The Spectrum page at least hasn't been
updated since June 1996 when it was originally put up. 
  + Special Reserve's Retro Corner
[http://www.reserve.co.uk/www/public/retro/spectrum.html] is just a quick
explanation of what a Speccy is, and some links. 
  + Ben Supper's Sinclair Links Page
[http://www.surrey.ac.uk/~mu61bs/sinclair.html] . A few links (oddly enough)
plus his explanation of the .ZXS tape file format. 
  + Nick Wittering is a pathetic little man who is incapable of writing his
own set of Spectrum pages, so his Manic Spectrum Mine
[http://www.users.dircon.co.uk/~nwitt/spectrum/spectrum.html] is merely a
shameless rip-off of sections of this resources page. After I complained about
it he did his best to disguise his theft but you can still see that the
material is originally from here. Feel free to mail him
[nwitt@dircon.co.uk?Subject=Try writing your own pages instead of ripping off
other people's] and ask him why he is such a jerk. 
  + Damian Audley's Speccy Page
[http://www.wam.umd.edu/~audley/english/speccy.html] - mostly links for Mac
emulators etc. Looks like he's back to maintaining this page now after a good
few months without any updates. 
  + Eduardo García Gallego's Spectrum page
[http://zipi.fi.upm.es/~a920142/spectrum.html] - just links. Many seriously
out of date links, so looks like it hasn't been updated in some time. 
-------------------------------------------------------------------------------
                                -=News Group:=-
 
-------------------------------------------------------------------------------

Well, I'd guess you know about the newsgroup if you're reading this, but maybe
not, so...
 
  + comp.sys.sinclair [comp.sys.sinclair] 
  + Or for Russians, there's fido7.zx-spectrum [fido7.zx-spectrum] 
Mailing list (the mailing list is a feed from the newsgroup):
 Send mail to lserv@psg.com [lserv@psg.com] with the following in the BODY of
the message:
 
subscribe sincnews yourusername@your.domain
 
Don't put anything else in the body of the message.
 
-------------------------------------------------------------------------------
                                   -=IRC:=-
 
-------------------------------------------------------------------------------

The channels #spectrum and #sinclair are now officially registered with
DALnet; here are some DALnet servers:
 
liberator.dal.net (UK) (port 7000)
irc.dal.net (USA) (port 6667)
igc.dal.net (USA) (port 6667)
 
If you are interested, please email Theo Develegas [icarus@acropolis.net] (his
IRC nick is __Wind__), so that he can fix some online meetings. He also plans
to have an IRC section on his home page
[http://www.acropolis.gr/~icarus/spectrum.html] .
 
-------------------------------------------------------------------------------
                                  -=Gopher:=-
 
-------------------------------------------------------------------------------

  + gopher.nvg.unit.no [gopher://gopher.nvg.unit.no] This was a
Spectrum-related files search engine which searched on company and game names
as well as file names, but is now broken and looks to be just a normal boring
old gopher server. Sigh... 
-------------------------------------------------------------------------------
                             -=Bulletin Boards:=-
 
-------------------------------------------------------------------------------

  + Sinclairmaníacos BBS in Argentina: +54 1 963 6618
 Hernán Lo Iacono [calvo@nat.com.ar] 's BBS is the first Argentine BBS
promoting the user of Sinclair machines and emulators and also has a web page
[http://www.nat.com.ar/sinclair/] and FTP site
[ftp://ftp.nat.com.ar/sinclair/] . 
  + The Black Ice BBS in the Channel Islands: +44 1481 37156/256
 Damien Guard's BBS in Guernsey holds a very large number of Spectrum titles,
all sorted into alphabetical areas and given descriptive comments
(SNA/Z80/SNX, title and publisher). Over 1000 titles. Also has another area
with actual Spectrum files for Speccy users including fonts, screens,
programs, text info.
 In addition to the two phone numbers, there is a FidoNet link: 2:255/78.
Speed 33.6, access once validated (less than 24 hours). 
  + The Bus Stop BBS in England: +44 1273 774121 (go to area 34)
 I had a quick look around this one many moons ago, and it was almost empty. I
took another look in December 1996, and it was still practically empty. Not
worth the phone call in my opinion, unless the sysop actually bothers to add
some files. 

  + Emulator BBS in England: +44 1284 760851
 Allan (aka Fatta Agnus, sysop) has a well-stocked BBS here, with a fair
amount of Speccy stuff as well as stuff for other 8-bit machines. Nothing here
that isn't on the FTP sites though; but useful if your net connection is
restricted (or just plain crap). Users get to have a 1Mb area to themselves
for putting up a virtual homepage - a web page viewable by other BBS users but
not actually on the internet.
 
  + Venture BBS in Finland: +358-0-8092126
 Over 600 games, all listed alphabetically with full game name, all working.
Also carries the newest versions of all the major Spectrum emulators. Carries
comp.sys.sinclair [comp.sys.sinclair] . Sysop can be contacted via
pizza@venture.fipnet.fi [pizza@venture.fipnet.fi] . 
  + Sinclair Computer Connection (SCC) BBS (in the USA?): 305-945-8274
 
  + There is also _Alchemist News_, a tape-based Spectrum magazine. Past
issues can be found on NVG:
ftp.nvg.unit.no/pub/sinclair/snaps/discmag/alchnews/
[ftp://ftp.nvg.unit.no/pub/sinclair/snaps/discmag/alchnews/] and you are best
off reading one of them for more information.
 
The following boards are in Spain, the information coming from Eduardo García
Gallego's Spectrum page [http://zipi.fi.upm.es/~a920142/spectrum.html] .
Thanks Eduardo! If anyone knows any more about these boards, please let me
know [http://www.jetman.demon.co.uk/mail.html] .
 
  + Camelot BBS in Spain: +34 1 501-2652
 28.8 and Members Only
 
  + Citfi BBS in Spain: +34 1 517-0947 28.8, Free.
 
  + EDiSoN's TeMPLe in Spain: +34 1 551-0065 28.8, Free.
 
  + Emporium BBS in Spain: +34 1 378-2005 28.8, Free.
 
  + Espíritu Navideño in Spain: +34 1 693-0276 28.8, Free.
 
  + Lim BBX in Spain: +34 42 542496 28.8, Free.
 
  + Sakery Fox BBS in Spain: +34 1 413-9855 28.8, Free.
 
-------------------------------------------------------------------------------
                               -=User Groups:=-
 
-------------------------------------------------------------------------------

  + _Long Island Sinclair Timex Users Group_
 There is still a very active user group that supports all the Sinclair and
Timex computers in the USA. They still publish a monthly newsletter, have
monthly meetings and give technical support to Sinclair and Timex users. For
further information and a sample newsletter contact:
 
Long Island Sinclair Timex Users Group
 (L.I.S.T.)
 5 Peri Lane
 Valley Stream, N.Y. 11581
 USA
 
Or mail timexfs@aol.com [timexfs@aol.com] , who posted this information in
comp.sys.sinclair [comp.sys.sinclair] .

                                       
                                       
                                       
                                -==EMULATORS==-
                                       
 
                                       
                                       
                                       
  [MS-DOS/Windows (19)] | [Amiga (8)] | [ST/STe/TT/Falcon (2)] | [Archimedes
   (4)] | [UNIX/Linux (6)] | [Mac (3)] | [NeXT (1)] | [OS/2 (2)] | [C64 (1)]
                        [Java (1)] [QL (3)] [MSX (1)] 

After the great NVG emulator directory reorganisation, the links to the
emulators on these pages have been adjusted accordingly. However, I haven't
checked them all so if you get any problems please let me know
[http://www.jetman.demon.co.uk/mail.html] .
 
The number of available emulators continues to grow at a surprising rate;
there are now a total of 51 emulators (if you include each incarnation of the
multi-platform ones). As ever, if you know of one not listed here, please tell
me about it! [http://www.jetman.demon.co.uk/mail.html] .
 
Authors, where known, are in (brackets) after the name of the emulator. PLEASE
don't bother these guys asking for an emulator; there are plenty of places to
get the emulators from, and I list example addresses.
 
The features of each emulator are listed in the following set order:
   a)    Emulation: 48/128/+2/+3/Multiface/Disciple/Interface 1/etc.  
   b)    Loadable formats - e.g. .SNA, .Z80 etc.  
   c)    Saveable formats.  
   d)    Real tape loading - type of support offered.  
   e)    Requirements - video, processor etc.  
   f)    Speed.  
   g)    Status: freeware/shareware/commercial/etc.  
   h)    Good points.  
   i)    Bad points.  
   j)    Other comments.  
   k)    Site available from. Please note that these are not the *only* places
to get the emulator from; there are many other sites, but the directories may
be different. Try a WWW/FTP search for the name of the archive file if the
site listed is too slow for you.  
 
-=BENCHMARKS=-
 
Ribic Samir has supplied the following benchmarks. As these are BASIC programs
they are not fully representative of the speeds of the emulators; some
emulators use tricks to speed up BASIC execution and the variations within
machine code programs can show remarkable differences between emulators
running the same game.
 
All emulators (except xz80) were tested on 486 SX/33 with VGA, no resident
drivers, 48K mode. If not otherwise stated, assume full speed mode. Time is
measured in seconds with a wrist watch (so, accuracy is up to 1 second). xz80
was tested by Ian Collier on a Sparc 2. Thanks to Rob Darke
[robda@parallel.demon.co.uk] for trying the benchmarks on a real Spectrum 128
in 48K mode.
 
According to Ian, xz80 times each instruction and gives a close match to the
time a real Speccy should take; accordingly, the times for these tests should
take approximately 49.7, 29.6 and 10.6 seconds. As test 3 should obviously
take 10 seconds, this shows the error factor in xz80's predictions.
 
1) 10 FOR I=16384 TO 23296
   20 POKE I,255
   30 NEXT I
2) 10 FOR I=16384 TO 23296
   30 NEXT I
3) BEEP 10,0
Emulator         Test 1            Test 2             Test 3  sound quality
Real Speccy 128    51              30.2                   10  clean :)
(in 48K mode)
JPP                14                8                     3  damaged
PJPP               50               29                    10  damaged
Sinclair v0.99     22               12                     5  clean
VGASPEC            34               14                     5  bit damaged
SPEC386            21               13                     4  clean
Sinclair 2.0       19               11                     4  clean
SP                 14                8                     3  clean
SpecEm             41               24                    10  damaged
SP_EMU/SP_UKV      18               11                     3  clean
SP105              42               25                    11  very damaged
Warajevo           15                8                     3  clean
Warajevo 128 in 48 18               10                     3  clean
WSpecEm           2:52              1:18                  20  very damaged
Z80 3.05           20               12                     3  damaged
Z80 100% speed     50               29                    10  damaged
SPECEMU           1:15              43                    19  clean
ZX (Garabik)       13                8                     3  clean
ZX (Rindt/Brukner) 17               11                     2  clean
X128              2:29              1:32                  23  damaged
XZ80              40.4              22.3                 7.9  damaged *
Roman ZX           21               13                     4  clean
 
* running at top speed. At normal speed it is clean.

                                       
                                       
                                       
                    -==EMULATORS FOR MS-DOS/WINDOWS PCS==-
                                       
 
                                       
                                       

  
-=1. Elwro 800-3 Jr v1.0 (Piotr Schmidt &Piotr Wolter)=-
  
   a)    Emulates an Elwro - not 100% compatible with ZX Spectrum (the real
Elwro had problems with JetPac while other games were ok) - with two disk
drives accessed via * commands (e.g. SAVE * "file") with capacity of about
700kB. These are physically files.  
   b)    Loads files from disk. Snapshots/tape files?  
   c)    Saves files to disk. Snapshots/tape files?  
   d)    Real tape support?  
   e)    Requires Hercules, CGA or EGA.  
   f)    Speed?  
   g)    Commercial only.  
   h)    Capable of running CP/M. Changeable interrupt frequency (45, 50, 65,
70 Hz). Comes with utility to read the real Elwro Junior disks on PC.  
   i)    Bad points?  
   j)    All system messages are in Polish.  
   k)    Available from?  
         
        
        

  
-=2. JPP (Arnt Gulbrandsen [agulbra@nvg.unit.no] )=-
  
   a)    Emulates 48K Spectrum, Kempston joystick (using PC joystick).  
   b)    Loads .SNA snapshots and from sampled tapes (.VOC).  
   c)    Saves .SNA snapshots.  
   d)    Tape support (read-only) via sampled sound files (.VOC).  
   e)    Requires VGA. Real-speed version requires 386 or above.  
   f)    386/25MHz or faster is needed for the best perfomance. 486/25MHz or
386/44MHz is needed for good sound emulation.  
   g)    Freeware.  
   h)    Includes program for reading and converting snapshots from MGT disks.
Also includes a very old version of SPConv. Two versions; JPP and PJPP, the
latter being an exact-speed version.  
   i)    Screws up system screen mode on quit. Restore with MODE CO80 command.
R register imperfectly emulated. No rainbowing.  
   j)    Two versions supplied; one for slower machines, and one (PJPP) for
faster machines; PJPP has better emulation and emulates the FLASH attribute
and the border. No longer being updated.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/jpp.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/jpp.zip]   
        
        
        

  
-=3. Sinclair v0.99 (previously SPECTRUM in this FAQ) / VGASPEC / SPEC386
(Pedro Gimeno)=-
  
   a)    Emulates 48K Spectrum.  
   b)    Loads .SP snapshots. VGASPEC uses a different .SP format though.  
   c)    Saves .SP snapshots.  
   d)    Loads from tapes through a wire connected to the parallel port, but
only standard speed tapes.  
   e)    Requires VGA, 286. (386 for version 0.99D - SPEC386.EXE)  
   f)    Matches real Spectrum speed at 386/25MHz.  
   g)    Shareware.  
   h)    Includes diagram for tape interface.  
   i)    R register and I/O (other than tape) are not emulated.  
   j)    VGASPEC emulator is an _illegal_ prerelease of this emulator. All
documentation and onscreen messages in Spanish.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/vgaspec.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/vgaspec.zip] and
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/span099d.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/span099d.zip] .  
         
        
        

  
-=4. Sinclair v2.00 (Pedro M. R. Salaz [pedrom@goliat.ugr.es] )=-
  
   a)    Emulates 48K Spectrum.  
   b)    Loads .SIT snapshots and from .BLK tape files.  
   c)    Saves .SIT snapshots and to .BLK tape files.  
   d)    Real tape support via a seperate program only supplied with
registered version.  
   e)    Requires VGA.  
   f)    Speed quite good on a 486SX/25.  
   g)    Shareware; unregistered version has nag screen that renders the
built-in debugger practically unusable. Registered version comes with utility
to convert .SP snapshots (from the above similarly named emulator!) to .SIT
format, can save Spectrum screen to .PCX screens and comes with a tape loader
program, plus a disk full of games as .BLK files.  
   h)    Built-in debugger (much like Borland's Turbo Debugger) for stepping
through, breakpointing, modifying etc. Z80 code (including the ROM).  
   i)    Speed varies with what the Spectrum program is doing.  
   j)    Available in both Spanish and English versions. The .BLK file format
is the same as Z80's .TAP format. I don't think this emulator has any link to
the other one of the same name.  
   k)    Available from the author's web site at
http://www.ugr.es/~pedrom/sinclair.htm
[http://www.ugr.es/~pedrom/sinclair.htm] as well as
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sinceng2.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sinceng2.zip] .  
         
        
        

  
-=5. SP / Polish emulator (J. Swiatek and K. Makowski)=-
  
   a)    Emulates 48K Spectrum.  
   b)    Doesn't load snapshots. Loads from TAPE_ZX.SPC file.  
   c)    Doesn't save snapshots. Saves to TAPE_ZX.SPC tape file.  
   d)    No real tape support.  
   e)    Requires CGA or EGA and a ROM file called ROM.SPC - this file is just
a 16Kb ROM dump, identical to the SPECTRUM.ROM file included with JPP and
xz80.  
   f)    One of the fastest emulators.  
   g)    Freeware?  
   h)    Built in MON-like debugger (press F8) for stepping through Z80 code.  
   i)    No accompanying documentation at all. Colour palette a bit odd. The
version available on the net is a 1988 version, probably unfinished, with
dozens of bugs.  
   j)    No other comments.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/polish.lzh
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/polish.lzh] .  
         
        
        

  
-=6. The Spectrum Emulator / SPECEM / Irish emulator (Kevin J. Phair)=-
  
   a)    Emulates 48K Spectrum with Multiface 1, Kempston joystick (with
cursor keys and Alt).  
   b)    Loads .PRG snapshots and files from 'tape' - i.e. your hard disk.  
   c)    Doesn't save snapshots. Saves files to hard disk, but can't cope with
headerless files.  
   d)    No real tape support.  
   e)    Requires 16MHZ 286, EGA or better.  
   f)    Works reasonably fast on 286 and a bit faster than necessary on
386/486 systems. 386/40MHz or 486/25MHz is needed for good sound emulation.  
   g)    Freeware, but a donation to the author gets you the source code plus
'various utilities'.  
   h)    Includes program for loading snapshots from MGT/Datel Plus-D disks.
Comes with a Z80 disassembler written in BASIC, and a speed testing program.
Ran at least one snapshot (Scumball) that no other emulator could manage
(JPP's documentation makes a mention of this one not working - Arnt thought it
was a bad snapshot).  
   i)    Imperfect R register emulation. Allows modification of the ROM
(though it does get refreshed to normal condition whenever loading/saving).  
   j)    Onscreen display of Z80 registers (can be disabled, but not removed
from the screen). Attributes can be disabled for faster emulation.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/irish.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/irish.zip] .  
         
        
        

  
-=7. SP_UKV / SP_EMU (Author?)=-
  
   a)    Emulates 48K/128K Spectrum with TR-DOS (Technology Research Disk
Operating System for the BetaDisk 3.5" disk drive).  
   b)    Loads .SNA (both standard 48K and a new 128K version) and 128K .Z80
snapshots. Loads from .TAP and .SPC tape files.  
   c)    Saves .SNA (48/128) and 128K .Z80 snapshots. Saves to .TAP and .SPC
tape files.  
   d)    No real tape support.  
   e)    Requires EGA and 286.  
   f)    Rather slow on a 486SX/25.  
   g)    Shareware. Registered version has an excellent Turbo Debugger style
debugger (similar to Sinclair v2.00's one).  
   h)    Supports TR-DOS disks with non-standard sector layouts.  
   i)    No BORDER.  
   j)    Usually found as SP_UKV.ARJ along with SP_EMU.ARJ; the latter being a
cracked version which appears to be enable all the options only available if
you register it. The help screen is identical to the one on the Polish
emulator - was that an old version? All documentation in Russian.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sp_ukv.arj
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sp_ukv.arj] and
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sp_emu.arj
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sp_emu.arj] .  
         
        
        

  
-=8. ZX-Spectrum 128K + TR-DOS 1.05 / SP105 (N. V. Shalaev)=-
  
   a)    Emulates 48K/128K Spectrum with TR-DOS.  
   b)    Loads only .TRD files that emulate disks.  
   c)    Saves only .TRD files that emulate disks.  
   d)    No real tape support.  
   e)    Requires VGA.  
   f)    Speed similar to SpecEm.  
   g)    Status?  
   h)    BORDER effects without snow.  
   i)    Refuses point blank to run in a Windows DOS session. Actually, should
this be a good point? ;)  
   j)    All messages and documentation in Russian... if anyone fancies doing
a translation, I'd be very grateful! Written by somebody from Moscow on
FidoNet; no email address for them.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sp105.arj
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/sp105.arj] .  
         
        
        

  
-=9. Warajevo v1.5 (Zeljko Juric [Z.JURIC@zamir-sa.ztn.zer.de]  and Samir
Ribic [S.RIBIC@zamir-sa.ztn.zer.de] )=-
  
   a)    Emulates 48K/128K/+2 Spectrum, ZX Printer, Interface 1 (RS232 and
microdrives), Kempston joystick (with cursor keys and + or ~ keys as fire or
with PC joystick or mouse), 128's keypad, and supports user devices (e.g.
parallel printer).  
   b)    Loads .SNA and .Z80 snapshots and from near-perfect virtual tape
(.TAP) format - this is not the same as Z80's .TAP format. Supports .MDR
microdrive format with slight improvements.  
   c)    Saves .Z80 snapshots, to .TAP tape files and to .MDR microdrive
files.  
   d)    Supports loading (including turbo loaders) from real tapes via an
RS232 link from a real Spectrum or with external routine for tape interface.  
   e)    Requires 286, Hercules, CGA, EGA or VGA.  
   f)    A bit slower than Z80, though not as much as it used to be. This is
not noticeable on anything more powerful than a 386 anyway. Version 1.5 is
often faster than Z80.  
   g)    Freeware, though the authors welcome donations, in return for which
you at least get your name listed in the documentation of the next release.  
   h)    Better AY-sound through PC speaker than any other PC emulator.
Built-in debugger, though not as friendly as the ones in Sinclair v2.00 and
SP_UKV. Can create stand-alone snapshot files that don't need to be loaded
into an emulator (including possible mixing of Z80 and 80x86 code). Comes with
suite of utilities built into a single program - for converting from various
formats, holding a database of games, etc. Lots of options. Supports loading
of non-standard loaders in regular .TAP files which can be compressed.  
   i)    Colour palette looks a bit odd. Speed adjusting parameters are
machine dependent.  
   j)    Written under very poor conditions during war in Bosnia. Generally
considered the second best Speccy emulator on the PC.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/warajevo-spectrum-
150.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/warajevo-spectrum
-150.zip] .  
         
        
        

  
-=10. WSpecem v1.21 (Rui F. Ribeiro [wspecem@ipp.pt] )=-
  
   a)    Emulates 48K Spectrum with Kempston/Sinclair joystick.  
   b)    Loads just about every snapshot and tape format there is - SNA, SNX,
Z80, SIT, SP, RAW, PRG, ACH, DAT, TAP, SLT.  
   c)    Saves just about every snapshot and tape format there is, but not
SLT.  
   d)    Real tape support provided via an extra program.  
   e)    Requires MS Windows 3.1, 3.11, 95 or NT, WinG.  
   f)    Around 25-30% Spectrum speed on a 486SX/25 @ 800x600 res, 64K colour
Cirrus video card, 8MB machine. Runs at a bit over 100% speed on a P75 with
otherwise identical setup. Note these speeds are for 1x1 scaled window, /3
frame rate. Larger sizes and full frame rate are slower.  
   g)    Freeware - GPL; all the author wants is a postcard.  
   h)    Resizable window, with quick 1, 2 and 3 times normal size settings as
well. Quick save/load function for saving a snapshot and reloading it without
going through a file selector. Drag and drop snapshot loading. Source (in C)
supplied. Saves Spectrum screen to SCR and PCX files. Now has a nice
installation routine for Win95; though it registers a lot of extensions (for
different snapshots) which may interfere with other registered extensions
(e.g. SIT is also a type of archive file, PRG is an Atari TOS program, and so
on).  
   i)    Doesn't save SLT snapshots yet.  
   j)    The very first Spectrum emulator for MS Windows.  
   k)    Available from author's web page at:
http://www.idt.ipp.pt/~rff-ribe/wspecem.html
[http://www.idt.ipp.pt/~rff-ribe/wspecem.html] , as well as:
http://lia01.unizar.es/curro/wspecem.zip
[http://lia01.unizar.es/curro/wspecem.zip] or
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/windows/wspv120.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/windows/wspv120.zip]
(no version 1.21 at NVG when I looked).  
         
        
        

  
-=11. Z80 v3.05 (Gerton Lunter [gerton@math.rug.nl] )=-
  
   a)    Emulates 48K/128K Spectrum with Multiface 1/128, cursor, Sinclair and
Kempston joysticks, AMS Mouse, Disciple disk interface, Interface 1 and
Microdrives, SamRam (author's own ROM with a basic MON-like debugger).  
   b)    Loads .SNA, .Z80 and .SLT snapshots, including level-loader support,
and from .TAP tape files and .MDR microdrive files.  
   c)    Saves .Z80 snapshots and to .TAP tape and .MDR microdrive files.  
   d)    Loads from sample tapes (.VOC) and direct from Sound Blaster MIC
input, or from parallel port using a custom interface (all these only in the
registered version, and the parallel port interface itself costs extra -
though a diagram is provided if you want to build your own). Contrary to what
several people think, this support *does* allow loading of turbo- loaders,
speedlock games, etc.  
   e)    Requires Hercules, CGA, EGA or VGA.  
   f)    Can be up to 200% Spectrum speed on a 486SX/25, depending on
emulation options chosen.  
   g)    Shareware. Registered version has real tape support and speed setting
can be altered (with v3.04+, shareware version has this enabled for only five
minutes; previous versions could not be slowed down unless registered) and
comes with several utilities (for converting from various formats etc.) and
source code (mixture of assembler and C).  
   h)    Most user-friendly emulator; very good menu-interface and
documentation. Good high-resolution colour emulation (rainbowing!). Version
3.04 now has much improved keyboard handling in Windows, and is now actually
useable in that environment as a result; v3.05 has some more general
useability improvements and some bugfixes, including a fix to the dreaded
sampled speech playing much too sloooowly bug.  
   i)    128K sound can be a bit wobbly.  
   j)    Usually considered to be the best emulator available for any
platform. Earlier versions were pretty good but do not compete with version
3.04+, which has several useful bugfixes and SLT support. Unregistered copies
of previous version could not be slowed down, so many people used an illegal
copy of 3.02 which was released on a PC Format cover disk (it was effectively
a registered copy). Gerton had stated that version 3.04 would be the last DOS
version; but then v3.05 came out! A Windows version is in development.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/z80-305.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/z80-305.zip]   
        
        
        

  
-=12. Z80-TR-DOS 2.02 (modified version of Z80 3.02 by Vitaliy Mochalin)=-
  
   a)    As Z80, with addition of TR-DOS emulation.  
   b)    As Z80.  
   c)    As Z80.  
   d)    No real tape support; if you want that, you'll need to register a
real version of Z80.  
   e)    As Z80.  
   f)    As Z80.  
   g)    An illegal hack.  
   h)    As Z80. Version 3.02 of Z80 had slightly poorer high resolution
colour emulation however; and this hack is the same.  
   i)    As Z80.  
   j)    This program is an obviously modified copy of Z80 version 3.02 (as
released on a PC Format cover disk) with Russian documentation which has been
kindly translated for me by Kirill Panyushkin. Vitaliy Mochalin has this to
say about this hack of Z80: *"The changes to the original version by
G.A.Lunter do not pursue the aim of copyright infringement. The adaptation has
been made solely for use on the territory of Russia and to add TR-DOS (by
Technology Research) disk system support."* From other comments in the
documentation it appears the price asked for registering Z80 is totally out of
the reach of Russians; it is the equivalent of a month's wages for the average
person.  
   k)    Not made available at Gerton's request, nor will I reveal the site I
got it from.  
         
        
        

  
-=13. ZX Spectrum-Emulator v1.0s / SPECEMU (Bernd Waschke)=-
  
   a)    Emulates 48K Spectrum, Kempston joystick (using PC's analogue or
digital joystick).  
   b)    Loads .SEM snapshots.  
   c)    Saves .SEM snapshots.  
   d)    Real tape support (registered version only) via a Soundblaster card,
but you have to manually calibrate it with a number.  
   e)    Requires 386DX/40 and 1Mb of RAM.  
   f)    About 75% of normal Spectrum speed on a 486SX/25.  
   g)    Shareware. Some options not present in unregistered version.  
   h)    POKE facility. Also has what appears to be a Game-Genie/Game
Wizard-like option to automatically find POKEs (registered version only).  
   i)    Doesn't emulate flags register properly; in particular, the H flag.
BRIGHT attribute not emulated.  
   j)    All documentation and onscreen messages in German. Anyone fancy
translating it?  
   k)    Available from
ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/specemu_1_0s.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/specemu_1_0s.zip]
   
        
        
        

  
-=14. ZX (Radovan Garabik)=-
  
   a)    Emulates 48K Spectrum with ZX printer.  
   b)    Loads it's own .SNP snapshot format and from it's own .LTP tape
files.  
   c)    Saves it's own .SNP snapshot format and to it's own .LTP tape files.  
   d)    Real tape support via external program.  
   e)    Requires Hercules, CGA or EGA.  
   f)    One of the fastest emulators.  
   g)    Freeware. More than $8 or poem about Spectrum for source code.  
   h)    Tape files supports some non-standard loaders. Many Hercules modes
supported. Comes with program to convert .SNA and .TAPs to .SNP and .LTP
files.  
   i)    R register incorrectly implemented.  
   j)    Haven't yet seen this one personally as the archive I downloaded was
corrupt.  
   k)    Available from author's home page at
http://pascal.fmph.uniba.sk/~2garabik/zx.html
[http://pascal.fmph.uniba.sk/~2garabik/zx.html] as well as
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/zxspectrum_v3_66.z
ip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/zxspectrum_v3_66.
zip] (not sure if this is the right file).  
         
        
        

  
-=15. ZX (Eduard Rindt [ert@regionet.cz]  &Ludek Brukner [lubr@regionet.cz] )=-
  
   a)    Emulates 48K Spectrum, ZX Printer.  
   b)    No snapshot loading. Loads tape files from .001 files, its own tape
format.  
   c)    No snapshot saving. Saves tape files to .001 files.  
   d)    No real tape support.  
   e)    Requires DOS 3.3+, EGA/VGA.  
   f)    Very quick. Runs very nicely on my 486SX/25.  
   g)    Freeware, though the authors ask that you send them $1 if you like
it.  
   h)    Very quick; useable on a 286. Comes with a Tape Manager utility to
convert DOS files to .001 tapes and vice versa. Nice keyboard help screen, and
two keyboard access modes; one normal and one which maps PC keys to Spectrum
equivalents (e.g. Shift-2 = Symbol Shift P).  
   i)    No speed control; goes way too quick on anything more than a slow
486.  
   j)    This was previously a commercial emulator, though I'd never heard of
it. Hynek Med [xmedh02@manes.vse.cz] convinced the authors to make it
freeware. There is a program which converts their special format (extension
001, 002 etc.) to TAP, called KDATEZ80.EXE - do a file search on that and
you'll find it (thanks to Zbysek Bahensky [zbysek_bahensky@idg.com] for that).
 
   k)    Available from:
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/zx.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/zx.zip]   
        
        
        

  
-=16. x128 v0.61 (James McKay [jmk@spuddy.mew.co.uk] )=-
  
   a)    Emulates 48K/128K Spectrum, Kempston/Sinclair/Cursor joysticks,
Multiface 128, Fuller Box.  
   b)    Loads .SNA, .Z80 and .SLT snapshots, and from Z80's .TAP tape files.  
   c)    Saves .Z80 and .SLT snapshots, and .PCX screen dumps (including any
rainbow effects).  
   d)    Real tape support via .VOC files.  
   e)    Requires VGA or EGA.  
   f)    About normal Spectrum speed on a 486SX/25 thanks to rewritten
emulation and screen update code (now using Intel assembler instead of C).  
   g)    Freeware.  
   h)    Hi-res emulation of screen and left &right border allowing colours in
an 8x1 block (rainbowing). Has a nice file selector and Z80-like user
interface.  
   i)    Some changeable options require re-compilation. Multiface 128 support
only works if you have the Multiface 128 ROM (it comes with Z80, see here).  
   j)    Also available for UNIX/Linux with X and OS/2.  
   k)    Available from author's home page at
http://www.users.dircon.co.uk/~dmckay/x128.html
[http://www.users.dircon.co.uk/~dmckay/x128.html] as well as
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/x128v061.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/x128v061.zip] .  
         
        
        

  
-=17. Roman ZX (Roman &Easy Inc.)=-
  
   a)    Emulates 48K Spectrum.  
   b)    Doesn't load snapshots, loads files from .H (header) and .B (bytes)
files.  
   c)    Doesn't save snapshot, saves to .H and .B files.  
   d)    No real tape support.  
   e)    Requires CGA.  
   f)    Non-graphic applications quite fast but Manic Miner, for instance, is
10 times slower than on Z80.  
   g)    Freeware?  
   h)    Z80 instructions emulated relatively well.  
   i)    Bug in IM/2 emulation. Causes lots of wasted slack space on disks
with large cluster sizes due to tape emulating method using lots of small
files.  
   j)    This program appeared on the SEZAM-BBS in Belgrade in the summer of
1991, most probably from Slovenia. It seems, according to one newspaper, that
the author is Peter Kroselj.  
   k)    Available from?  
         
        
        

  
-=18. ZX-Jam v1.0b (Juan Antonio Moreno [jamoreno@mx2.redestb.es] )=-
  
   a)    Emulates 48K/128K Spectrum.  
   b)    Loads .Z80 and .SNA snapshots and from .TAP tape files.  
   c)    No saving support.  
   d)    No real tape support.  
   e)    Requires VGA and a 'fast Pentium', Gravis Ultrasound card for sound.  
   f)    Runs at good speed on a P100.  
   g)    Freeware.  
   h)    Unusual screen mode - tries to emulate the TV effect, and does quite
well! No dot crawl quite yet though :) Includes built-in Z80 debugger. Some
support for rainbowing and border effects.  
   i)    Some bugs in Z80 emulation, only partial AY emulation, no sound at
all unless you have GUS card. No joystick emulation or snapshot saving.  
   j)    This is a beta version and the author aims to get rid of the bad
points listed above.  
   k)    Available from the Unofficial ZX-Jam Home page
[http://ourworld.compuserve.com/homepages/A_Schraepel/zx-jam.htm] and soon
from ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/zx-jam.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/dos/zx-jam.zip]   
        
        
        

  
-=19. ZX32 v1.01 (Vaggelis Kapartzianis)=-
  
   a)    Emulates 48K/48K+/128K/+2/+3/+2A, Kempston/Sinclair joysticks.  
   b)    Loads .Z80, .SNA and .ZXS (RIFF) snapshots and from .TAP tape files.  
   c)    Saves .ZXS (RIFF) snapshots (ZX32's own format), doesn't save to tape
files.  
   d)    No real tape support.  
   e)    Requires DirectX, Windows 95 or NT, 486DX2/66, P75 recommended.  
   f)    Very fast on a P100 (sets itself to normal Speccy speed though,
thankfully) - much faster than WSpecEm.  
   g)    Freeware.  
   h)    Very fast, very professionally done - help file, install/uninstall
routines, comes with a selection of games so you can start straight away.
Freely changeable window size, plus fullscreen mode. Quite good AY emulation
too.  
   i)    Some bugs in Z80 emulation, no rainbowing or border. Colours a bit
dark.  
   j)    Appeared out of nowhere, but destined for greatness, this one! Even
with slightly buggy Z80 emulation, this is the best Windows-based Speccy
emulator.  
   k)    Available from www.geocities.com/SiliconValley/Park/8193/zx32101.zip
[http://www.geocities.com/SiliconValley/Park/8193/zx32101.zip] ,
ftp.demon.co.uk/pub/emulators/spectrum/emulators/zx32101.zip
[ftp://ftp.demon.co.uk/pub/emulators/spectrum/emulators/zx32101.zip] and soon
from ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/windows/zx32101.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/windows/zx32101.zip]
  
        
        
        
                                       
                                       
-=Multiface 128 problems=-
 
Some emulators have Multiface 128 emulation, but do not supply the Multiface
128 because it is copyrighted and the authors require a license fee to be
paid. However, Z80 does include this ROM, because Gerton has licensed it. This
is really a bit of a silly situation, as Z80 is freely available as shareware
- so the ROM is also then freely available! You can extract the ROM from the
ROMS.BIN file; all you need to know is in the TECHINFO.DOC file that comes
with Z80. It is not something you can do without either a little programming
or a small utility to extract part of a file. Not that I condone any possible
breach of copyright; your use of this utility to extract the ROM is only
permitted if you own a real Multiface 128. You would be in breach of Romantic
Robot's copyright if you were to extract the ROM without owning the real thing.




                      -==EMULATORS FOR COMMODORE AMIGA==-

 


Frodo, that appeared in version 3.09 of the FAQ, would appear to be a C64
emulator, though I've had no confirmation of this. Therefore it's *gone*,
outta here, zapped. Don't want it corrupting the FAQ now, do we?
 
  
-=1. Icarus Spectrum Emulator v1.0=-
  
   a)    Emulates 48K Spectrum (presumably), interface 1 &Microdrives.  
   b)    Loads its own format of snapshots (more info welcome).  
   c)    Saves its own format of snapshots.  
   d)    No real tape support.  
   e)    Requirements? Old, so probably just a basic A500.  
   f)    Slow.  
   g)    Freeware?  
   h)    Fully multitasking.  
   i)    Microdrive emulation using standard Amiga disks.  
   j)    More information on this one welcome; any Amiga owners fancy
downloading it, trying it out and letting me know the results?  
   k)    Available from http://www.cybercity.dk/users/ccc14241/icarus10.dms
[http://www.cybercity.dk/users/ccc14241/icarus10.dms] .  
         
        
        

  
-=2. KGB v1.3=-
  
   a)    Emulates 48K Spectrum, cursor joystick (with cursor keys) and
Kempston joystick (with Amiga joyport 2).  
   b)    Loads .ZX snapshots.  
   c)    Saves .ZX snapshots.  
   d)    Loads/saves from/to real tapes via a sound-digitiser.  
   e)    Requires monochrome or colour.  
   f)    Speed not known.  
   g)    Freeware?  
   h)    Has a pitch-compensated mode, that transposes the sound two octaves
up (handy on slow Amigas).  
   i)    Doesn't multitask. Isn't completely compatible with ZX-Spectrum;
several games don't work, e.g. Chronos, Starstrike II.  
   j)    Version 2.0 is due soon, with more snapshot formats supported, better
real tape support, better speed, multitasking, Microdrive emulation and some
bugfixes.  
   k)    Available from the KGB support BBS' homepage:
http://www.cybercity.dk/users/ccc14241/home.html
[http://www.cybercity.dk/users/ccc14241/home.html] and
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/amiga/kgb-1.3.lha
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/amiga/kgb-1.3.lha] .  
         
        
        

  
-=3. Speculator '97 (William James)=-
  
   a)    Emulates 48k Spectrum. Can load in some 128k .Z80 files (ie 48k games
with 128k music). Supports +D disks. Kempston Joystick.  
   b)    Loadable formats: ZX82, KGB, Z80, ZX, SP, SNA.  
   c)    Saves custom ZX82 snapshot.  
   d)    Can load in normal files through serial port interface.  
   e)    Kickstart 2.04 and 68020 or higher required.  
   f)    On an A1200 with a 25Mhz MC68030 Viper card + 32Bit Fast RAM,
Speculator will run at around the 100% mark; seems faster than ZXAM on some
games.  
   g)    Shareware - £10.  
   h)    Fastest of the Amiga emulators. Lots of support utilities.
Multitasks.  
   i)    Emulation is buggy and downright weird in places (Poking 23659,0 in
BASIC doesn't lock up Speccy like it would on real Speccy). No .TAP support.
Only saves in custom format.  
   j)    The great hope of Amiga Spectrum Emulation at the moment (what with
the ZXAM development halted for quite a while).  
   k)    Available from Aminet. Can't remember the exact path
'pub/Aminet/misc/emu/....'  
         
        
        

  
-=4. Speccylator v1.0 (Richard Carlsson [richardc@csd.uu.se] )=-
  
   a)    Emulates 48K Spectrum, Kempston joystick.  
   b)    Loads .SNA snapshots, no tape support.  
   c)    Saves .SNA snapshots, no tape support.  
   d)    No real tape support.  
   e)    Requires just any Amiga with Kickstart 2.0 and around 435Kb of free
memory.  
   f)    'Faster than most' - except Peter McGavin's Spectrum on a 68000-based
Amiga.  
   g)    Freeware.  
   h)    Fully multitasking, nice graphical interface, better sound than Peter
McGavin's Spectrum. Can dump Spectrum screen to an IFF ILBM file. Preferences
can be set globally and for individual snapshots. Better Z80 emulation than
ZXAM. Full BCD flags emulation.  
   i)    No particular bad points, unless you count lack of features - e.g. no
file support.  
   j)    The idea behind the project was to create a Z80 emulation kernel that
could run on any 68000 machine, i.e. not using any Amiga specifics. The Z80
emulator kernel can therefore be used for an emulator on any other 68000-based
machine, e.g. the Atari ST. Recently updated (September 1996), with Kempston
joystick emulation the next thing on the author's to-do list.  
   k)    Available from author's homepage: http://www.csd.uu.se/~richardc/
[http://www.csd.uu.se/~richardc/]   
        
        
        

  
-=5. Spectrum v1.7 (Peter McGavin [p.mcgavin@irl.cri.nz] )=-
  
   a)    Emulates 48K Spectrum, cursor joystick (with cursor keys) and
Kempston joystick (with Amiga joyport 2).  
   b)    Loads .SNA snapshots and tape files from seperate .header and .bytes
files on Amiga disks.  
   c)    Saves .SNA snapshots and tape files to seperate .header and .bytes
files on Amiga disks.  
   d)    Load/saves Spectrum files from/to tapes through a sound-digitiser.  
   e)    Works on any OCS, ECS or AGA Amiga from 68000 to 68060 with Kickstart
1.2 and up.  
   f)    Is reasonably fast on 68030/25MHz, but slow on 68000/7.14MHz
machines. At least 68020/14MHz (A1200) and FAST RAM are recommended. Not as
fast as ZXAM.  
   g)    Freeware?  
   h)    Multitasks.  
   i)    Colour palette is a bit strange.  
   j)    Very old, and not supported any more.  
   k)    Available from
gopher://micros.hensa.ac.uk:70/11/micros/amiga/dos/t/t042
[gopher://micros.hensa.ac.uk:70/11/micros/amiga/dos/t/t042] .  
         
        
        

  
-=6. ZXAM v2.0 (Toni Pomar [tpomar@jet.es] )=-
  
   a)    Emulates 48K Spectrum, Kempston, Sinclair II and Cursor joysticks.
Also emulates the 128K's AY-8910 sound chip, so 128K-enhanced games that use
only the sound chip and not the extra RAM often work and give better sound.  
   b)    Loads .SNA and .SP snapshots. Can also apparently load just about any
format of snapshot via Rexx scripts. Loads tape files from disk.  
   c)    Saves .SNA (and .SP?) snapshots. Can apparently save just about any
format of snapshot via Rexx scripts. Saves tape files to disk.  
   d)    Real tape support via a custom tape interface (diagram and
instructions to make this are supplied).  
   e)    Kickstart 2.04 and 68020 or higher required.  
   f)    Apparently 'impressive' on an A1200.  
   g)    Shareware.  
   h)    Runs in a window on Workbench screen, on a separate draggable screen,
or in exclusive mode. Automatic speed adjustment for fast machines. Can save
snapshots to a real tape for loading on a real Spectrum. Can load PowerPacked
snapshots if you have the powerpacker.library in the LIBS: drawer.  
   i)    At least 38 games (including Chronos and Starstrike II) do not work;
so emulation obviously isn't perfected.  
   j)    Author is working on fixing problems that cause those games not to
work, along with a built-in debugger, full 128K emulation and tape loading via
sound samples. There is a thing called the _ZX Poke Guide_ which is not an
emulator but instead it's an AmigaGuide by Richard Koerber
[rkoerber@tfh.dssd.sub.org] full of POKEs (about 677 games). It uses the ARexx
port of ZXAM to make the pokes and run/stop the emulator from the AmigaGuide
itself. Gerard Sweeney [gss@arts.gla.ac.uk] has brought another such program
to my attention; _Hack Attack III_ which has around 400 more games than the ZX
Poke Guide, 90% of which have been tested by the author ('Rastan'). It is also
apparently easier to add more pokes to HA3 than to ZXPG.  
   k)    Available from author's homepage: http://web.jet.es/~tpomar/
[http://web.jet.es/~tpomar/] (that last slash is very important!) as well as
the 'misc' directory on AmiNet. The ZX Poke Guide (v2.0) can also be found
there, e.g.: http://ftp.wustl.edu/pub/aminet/misc/emu/ZXPokeGuide20.lha
[http://ftp.wustl.edu/pub/aminet/misc/emu/ZXPokeGuide20.lha] and Hack Attack
III at http://ftp.wustl.edu/pub/aminet/misc/misc/acs-ha3.lha
[http://ftp.wustl.edu/pub/aminet/misc/misc/acs-ha3.lha] .  
         
        
        

  
-=7. ZX-Spectrum v4.71 (Jeroen Kwast [jeroenkw@gns.getronics.nl] )  
   a)    Emulates 48K Spectrum.  
   b)    Loads?  
   c)    Saves?  
   d)    Real tape support?  
   e)    Requires?  
   f)    Speed?  
   g)    Status?  
   h)    Good points?  
   i)    Bad points?  
   j)    No other comments.  
   k)    Available from 'misc' directory on AmiNet, e.g.:
ftp://src.doc.ic.ac.uk/pub/aminet/misc/emu/zxspectrum4.71.lha
[ftp://src.doc.ic.ac.uk/pub/aminet/misc/emu/zxspectrum4.71.lha] .  
         
        
        

  
-=8. ZX Spectrum Emulator v0.10 (A.Schifano &V.Gervasi)=-
  
   a)    Emulates 48K Spectrum, presumably, and Kempston joystick.  
   b)    Loads snapshots (type unknown) and from tape (AmigaDOS files).  
   c)    Presumably saves snapshots and to AmigaDOS files.  
   d)    Real tape support via a tape interface.  
   e)    Requires any Amiga.  
   f)    Speed? Has three video modes; monochrome, where you choose the
overall PAPER and INK colour for the screen; colour 1 with limited updates of
the screen and colour 2 with full updates (slower).  
   g)    Appears to be a commercial product. The demo does not include tape
support or snapshot support, and resets after a certain amount of time.  
   h)    Good points?  
   i)    Spectrum ROM doesn't come with the emulator; apparently Amstrad
denied permission (perhaps because this is a commercial product). A hacked
version of the demo does include it, illegally.  
   j)    Information here comes from a brief Readme file in a hacked demo
version of the emulator. More information welcome.  
   k)    Available from DigiMail in Italy:
 Digimail Srl
 Via Coronelli 10
 20146 Milano
 ITALY
 Phone: ++39-2-427621
 Fax: ++39-2-427768




                   -==EMULATORS FOR ATARI ST(e)/TT/Falcon==-

 


  
-=1. ZX-SPECTRUM Emulator / Specci v2.07 (Christian Gandler)=-
  
   a)    Emulates 48K Spectrum, Interface 1 (Microdrives and RS232), Kempston
and Sinclair joysticks.  
   b)    Doesn't load snapshots. Loads tape files from seperate files on Atari
disks.  
   c)    Doesn't save snapshots. Saves tape files to seperate files on Atari
disks.  
   d)    No real tape support.  
   e)    Requires at 1Mb of memory.  
   f)    Speed is around 70% (at best) of real Spectrum on plain STs.  
   g)    Freeware?  
   h)    Also runs on TTs and Falcons (in ST low/high resolutions).  
   i)    Bad points?  
   j)    All documentation in German. There is a poorly-translated version of
the documentation supplied (taken from a 'Pompey Pirates' disk that had this
emulator on it) with at least one of the copies on the FTP sites.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/atari/zx_sp207.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/atari/zx_sp207.zip] ,
gopher://micros.hensa.ac.uk:70/11/micros/atari/tos/o/o096
[gopher://micros.hensa.ac.uk:70/11/micros/atari/tos/o/o096] .  
         
        
        

  
-=2. Speccy (Hansjoerg Oppermann [schorse@nightlife.escape.de] )=-
  
   a)    Emulates?  
   b)    Loads?  
   c)    Saves?  
   d)    Real tape support?  
   e)    Requirements?  
   f)    Speed?  
   g)    Freeware.  
   h)    Good points?  
   i)    Bad points?  
   j)    This emulator was previously included in the entry for Specci, above,
but is in fact a seperate program by another author.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/atari/atari-speccy.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/atari/atari-speccy.zip]
and
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/atari/atari-spectrum.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/atari/atari-spectrum.zip
] (not sure if these are the same or not).




                     -==EMULATORS FOR ACORN ARCHIMEDES==-

 


  
-=1. !MZX v1.0 (Graham Willmott)=-
  
   a)    Emulates 48K Spectrum.  
   b)    Loads .SNA snapshots.  
   c)    Saves .SNA snapshots.  
   d)    No real tape support?  
   e)    Requirements?  
   f)    Runs at ~60% normal spectrum speed on an ARM2 machine, and
considerably faster on other machines - currently there is no speed control
available.  
   g)    Freeware?  
   h)    Multitasks (can also single task if required).  
   i)    Doesn't emulate R register correctly, or certain undocumented
instructions.  
   j)    No other comments.  
   k)    Available from
gopher://micros.hensa.ac.uk:70/11/micros/arch/riscos/b/b166
[gopher://micros.hensa.ac.uk:70/11/micros/arch/riscos/b/b166] and
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/arm/mzx110.spark
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/arm/mzx110.spark] .  
         
        
        

  
-=2. !Speccy (Carsten Witt)=-
  
   a)    Emulates 48K/128K Spectrum and Interface 1.  
   b)    Doesn't load snapshots. Loads tape files from disk in its own file
format.  
   c)    Doesn't save snapshots. Saves tape files from disk in its own file
format.  
   d)    Comes with application instructions for transferring tape files
to/from real tapes through the serial port.  
   e)    Works best on a mulstiscan monitor if you want to multitask, as the
display is inherently a hires display, and you get extended pixels, (i.e.
twice the height). Does not run on StrongARM / RiscOS3.7, Runs on RO2-3.6.  
   f)    Runs at normal Spectrum speed on an ARM2 machine and very fast on an
ARM3 machine. The speed is adjustable. For games such as Jet Set Willy & Manic
Miner exact LDIR implementation can be switched, to run the games at the
correct speed.  
   g)    Not freeware as previously suspected; cost £25 several years ago; may
have changed now. Updates are free.  
   h)    Has an enhanced keyboard layout - there are keyboard short cuts to
Caps Lock, Extended Mode, and also the cursor keys, the keypad, and other
symbols (commas, colons etc.) can be entered easily.  
   i)    Doesn't fully implement the R register - however this doesn't affect
most programs.  
   j)    Still doesn't load .SNA's. Carsten's format is a compressed type.
!Speccy runs in the desktop very satisfactorily, providing you take into
account the above comment about multiscan monitors. Considered the best of all
Acorn emulators by at least one person (and it ain't me because I don't own
any Acorn machines) :)  
   k)    Available from the author:
 Carsten Witt
 Rostocker Str. 5
 45739 Oer-Erkenschwick
 Germany  
         
        
        

  
-=3. Speculator (Dave Lawrence)=-
  
   a)    Emulates 48K Spectrum.  
   b)    Loads in its own file format.  
   c)    Saves in its own file format.  
   d)    No real tape support.  
   e)    Requirements?  
   f)    Is extremely fast on an ARM3 machine. To get normal Spectrum speed an
ARM2 machine or an ARM3 machine with the cache turned off is required.  
   g)    Status not known - not officially released yet.  
   h)    It is possible to return to the desktop from the emulator, and then
re-enter the emulator at the point you left off.  
   i)    Bad points?  
   j)    Is not officially available at the moment - any copies circulating
are pirate copies. As a result, documentation of the file format is not
complete, and the conversion programs supplied with it do not work correctly.  
   k)    Not yet available?  
         
        
        

  
-=4. Z80Em v1.2 (Michael Borcherds [borchrds.teaching@physics.oxford.ac.uk] 
and Anne Borcherds)=-
  
   a)    Emulates 48K and 128K Spectrums with Cursor and Kempston joysticks.  
   b)    Loads .RAW, .SNA and .Z80 snapshots with level-loader support. Loads
tape files from Z80's .TAP files.  
   c)    Saves .Z80 snapshots and to .TAP tape files.  
   d)    Can load/save? from/to? sample tapes (.VOC).  
   e)    Requirements?  
   f)    Runs a little slowly on an A3010. On a fast enough machine will run
at exact Spectrum speed.  
   g)    Commercial - can be bought along with a CD full of games, the CD
coming cheaper this way than if bought separately. However, see question 6 in
the Frequently Asked Questions list (section 1 of this document). On it's own
it costs £15 + VAT.  
   h)    Apparently has superb sound emulation, redefinable keymap, POKE
feature.  
   i)    Level-loader support expects different filenames from the standard -
instead of "GAME1.DAT" it wants just "1", etc.  
   j)    A demo version is now available, though it only runs 'for a few
seconds'.   
  k)    Available from Warm Silence Software; their homepage is at
http://www.comlab.ox.ac.uk/oucl/users/robin.watts/wss/index.html
[http://www.comlab.ox.ac.uk/oucl/users/robin.watts/wss/index.html] , the Z80Em
bit is here:
http://www.comlab.ox.ac.uk/oucl/users/robin.watts/wss/products.html#Z80Em
[http://www.comlab.ox.ac.uk/oucl/users/robin.watts/wss/products.html#Z80Em]
and the downloadable demo version is here:
ftp://ftp.comlab.ox.ac.uk/tmp/Robin.Watts/Z80Dem.zip
[ftp://ftp.comlab.ox.ac.uk/tmp/Robin.Watts/Z80Dem.zip] . Warm Silence's postal
address is: Warm Silence Software,
 St Catherine's College,
 Oxford,
 OX1 3UJ
 Tel: 0585 487642




                        -==EMULATORS FOR UNIX/LINUX==-

 


  
-=1. Spectrum / French emulator (Jean-Francois Lozevis [lozevis@Email.ENST.Fr]
)=-
  
   a)    Emulates 48K Spectrum.  
   b)    Loads .SNA and .Z80 snapshots.  
   c)    Saves .SNA snapshots.  
   d)    No real tape support.  
   e)    Requires X-Windows (X11) and Linux with an 80386 processor (or above)
because the emulation code is written in assembler.  
   f)    Apparently runs at full speed on a 486DX2/66.  
   g)    Public domain. Author allows modification, just wants to retain his
credit as the original author, and wouldn't say no to a postcard.  
   h)    Sound support for Linux via /dev/audio.  
   i)    Imperfect emulation; Rhino in Sabre Wulf problems (see the Technical
Information section) and some large BASIC programs don't work. Author doesn't
know why. Poor user interface.  
   j)    All messages in French.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/unix/french_spectrum.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/unix/french_spectrum.zip
] .  
         
        
        

  
-=2. xzx v1.0 (Des Herriott [des@corp.netcom.net.uk] )=-
  
   a)    Emulates 48K/128K/+3 Spectrums, Kempston joystick (with keys).  
   b)    Loads .SNA and .Z80 snapshots with level-loader support, tape files
from UNIX files.  
   c)    Saves .SNA and .Z80 snapshots, tape files to UNIX files.  
   d)    No real tape support.  
   e)    Requires X-Windows (X11). Makes heavy use of the MIT-SHM X11
extension, and works a good deal slower without it.  
   f)    Needs approx 486/33 to run at the correct speed (this is from general
impressions, not exact timings). Sparc 10 or DEC Alpha will run it very fast.  
   g)    Freeware.  
   h)    Sound support for Sparc and NEC EWS workstations via /dev/audio.
Sound support for Linux via direct speaker manipulation. X server bell audio
for most X servers (traps ROM BEEP routine only).  
   i)    Poor user interface; e.g. no file selector - you have to move to your
terminal window and type in name of snapshots to load/save.  
   j)    Author has resurfaced from the cold wastes of a job without internet
access, but is no longer maintaining or updating xzx. See Erik's modified
version, below.  
   k)    Available from
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/unix/xzx-1.0.2.tar.gz
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/unix/xzx-1.0.2.tar.gz]
.  
         
        
        

  
-=3. XZX v2.1.4 - modified version (Erik Kunze [Erik.Kunze@fantasy.muc.de] 
&Des Herriott [des@corp.netcom.net.uk] )=-
  
   a)    Emulates 48/128/+3 with Multiface 128, Interface 1 and Microdrive,
Kempston Joystick.  
   b)    Loads .SNA, .Z80, .SLT (LLT also) snapshots and from .DAT, .TAP, .MDR
and .DSK files.  
   c)    Saves to .SNA, .Z80, .SLT, .TAP, .MDR and .DSK files.  
   d)    No real tape support.  
   e)    Requires X11, /dev/audio for AY emulation.  
   f)    Speed varies with what Spectrum program is doing. Runs at more than
100% speed on P100 and 8bpp even with magnification by 3. Automatic speed
adjustment for faster machines. Faster than xz80 and x128.  
   g)    Freeware, but a donation to the authors is welcome. Starting with
version 2.2.0 XZX is distributed in two different packages. One is basicly the
old version with bug fixes and it's free. The other is shareware, has a better
user interface (you need Motif to compile it) and more features. No permission
to modify or reuse the code!  
   h)    Sound support for SPARC via /dev/audio. Sound support for Linux via
direct speaker manipulation. AY emulation via /dev/audio. X server's bell
audio for most X servers (traps the ROM BEEP routine only). Comes with
terrific On-Screen-Menus!  
   i)    Some changeable options require re-compilation. Multiface 128 ROM is
not included due to copyright problems (see here).  
   j)    More information from the official XZX home page
[http://www.philosys.de/~kunze/xzx/] .  
   k)    Source code, pre-compiled binaries and RPM-packages are available
from the official XZX homepage: http://www.philosys.de/~kunze/xzx/
[http://www.philosys.de/~kunze/xzx/]         
        
        

  
-=4. xz80 v0.1e (Ian Collier [Ian.Collier@comlab.ox.ac.uk] )=-
  
   a)    Emulates 48K Spectrum and ZX Printer (via .XBM image files!).  
   b)    Loads .SNA and .Z80 snapshots with level-loader support, tape files
from disk or from Z80's .TAP files.  
   c)    Saves .SNA snapshots and tape files to disk or to Z80's .TAP files.  
   d)    Real tape support not known - mentions sound input (e.g. via
/dev/audio device) but I am unsure what Ian means by this.  
   e)    Requires X-Windows (X11) or SVGALib (for Linux console version).
MIT-SHM extension also probably a good idea.  
   f)    Faster than xzx and x128. The Linux console version runs at about 35%
real Spectrum speed on a 486SX/25. True-speed emulation without hogging the
CPU on fast machines.  
   g)    Freeware (GNU Public License).  
   h)    Realistic sound output via /dev/audio. Emulates 'stripey border'
effect - very important ;-)  
   i)    Poor user interface; e.g. no file selector - you have to move to your
terminal window and type in name of snapshots to load/save.  
   j)    No other comments.  
   k)    Available from author's homepage at
http://www.comlab.ox.ac.uk/oucl/users/ian.collier/Spectrum/index.html
[http://www.comlab.ox.ac.uk/oucl/users/ian.collier/Spectrum/index.html] .  
         
        
        

  
-=5. x128 v0.5 (James McKay [jmk@spuddy.mew.co.uk]  - new address)=-
  
   a)    Emulates 48K/128K Spectrum, Kempston/Sinclair/Cursor joysticks,
Multiface 128.  
   b)    Loads .SNA, .Z80 and .SLT snapshots, and from Z80's .TAP tape files.  
   c)    Saves .Z80 and .SLT snapshots.  
   d)    Real tape support via .VOC files.  
   e)    Requires X-Windows (X11). MIT-SHM extension also a very good idea.  
   f)    Rather slow; about 25-35% of real Spectrum speed on a 486SX/25 Linux
box.  
   g)    Freeware.  
   h)    Hi-res emulation of screen and left &right border allowing colours in
an 8x1 block (rainbowing). Has a nice file selector and Z80-like user
interface.  
   i)    Some changeable options require re-compilation. Multiface 128 support
only works if you have the Multiface 128 ROM (it comes with Z80, see here).  
   j)    Also available for DOS, OS/2 and OS/2 Xfree86.  
   k)    Available from author's home page at
http://www.users.dircon.co.uk/~dmckay/x128.html
[http://www.users.dircon.co.uk/~dmckay/x128.html] (new address) as well as
ftp://ftp.nvg.unit.no/pub/sinclair/utils/x128_0.5.tar.gz
[ftp://ftp.nvg.unit.no/pub/sinclair/utils/x128_0.5.tar.gz] .  
         
        
        

  
-=6. SpectEmu v0.8 (Szeredi Miklos [mszeredi@eik.bme.hu] )=-
  
   a)    Emulates 48K Spectrum.  
   b)    At the moment only loads .Z80 snapshots.  
   c)    Saves .Z80 snapshots.  
   d)    Real tape loading from special tape files. These can be generated
with the help of a supplied utility and a soundcard.  
   e)    Requires PC Linux and X11 (aslo uses MIT-SHM if available) or SVGALIB
for console version. Soundcard for sound emulation.  
   f)    Z80 emulation is very fast because it is written in assembly. Console
graphics and single size window in X11/MIT-SHM also use quite little CPU.
Double size window in X requires a fast processor (e.g. P90)  
   g)    Freeware; copyright under the GNU General Public Licence.  
   h)    True spectrum speed mode, and fast mode. Good sound emulation (even
sound with tape file loading). Good screen emulation. Border stripes are
emulated correctly, and screen timing sensitive programs look better than on
other emulators (e.g. BC's Quest for Tires). Good keyboard I/O port emulation
(e.g. Gunfright).   
  i)    Poor user interface. Can only run on Intel UNIXes because assembly
code is used in processor emulation. Has only been tested on Linux (version >
1.2.0).  
   j)    Distribution includes a full size picture of the ZX Spectrum
keyboard.  
   k)    Available from
ftp://sunsite.unc.edu/pub/Linux/system/Emulators/spectemu-0.8.tar.gz
[ftp://sunsite.unc.edu/pub/Linux/system/Emulators/spectemu-0.8.tar.gz] and
ftp://tsx-11.mit.edu/pub/linux/ALPHA/spectemu/spectemu-0.8.tar.gz
[ftp://tsx-11.mit.edu/pub/linux/ALPHA/spectemu/spectemu-0.8.tar.gz] .  




                      -==EMULATORS FOR APPLE MACINTOSH==-

 


  
-=1. MacSpeccy v1.1 (Danny Keogan [djkeogan@unix2.tcd.ie] )=-
  
   a)    Emulates 48K Spectrum.  
   b)    Loads .SNA and (probably) .Z80 snapshots.  
   c)    Saves?  
   d)    No real tape support?  
   e)    Requires 68040.  
   f)    Seems to be extremely slow.  
   g)    Freeware?  
   h)    Allows copying of Spectrum screen to clipboard.  
   i)    No flash attribute emulation.  
   j)    The oldest emulator for the Mac.  
   k)    Available from
http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/app/mac-speccy-11.hqx
[http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/app/mac-speccy-11.hqx] .
 
         
        
        

  
-=2. Mac Spectacle v1.8.2 (Guenter Woigk [kio@vanilla.nbg.sub.org] )=-
  
   a)    Emulates 48K/128K Spectrum, joystick (type?).  
   b)    Loads .SNA and .Z80 snapshots and .SCR screens, tape files from Z80's
.TAP files.  
   c)    Saves .SNA and .Z80 snapshots, saves .SCR and .PICT screens.  
   d)    No real tape support; but there is a program called ZX-Loader to
enable the use of PowerSpectrum's facilities for this.  
   e)    Needs MacOS 7.0 or higher, Color QuickDraw and at least a 68020 CPU
or a PowerMAC.  
   f)    Speed?  
   g)    Freeware?  
   h)    Single/double/quadruple sized window, all monitor depths (2 and 4 bit
slow). High-res screen &border effects. Background or exclusive execution.
Better emulation than other emulators for the Mac - so more games run on this
one than the others.  
   i)    Bad points?  
   j)    The newest and most regularly updated emulator for the Mac.  
   k)    Available from author's FTP area; get this file first:
ftp://lst.informatik.uni-erlangen.de//incoming/kio/readme
[ftp://lst.informatik.uni-erlangen.de//incoming/kio/readme] or
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/mac/Spectacle-1.8.2.hqx
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/mac/Spectacle-1.8.2.hqx]
 and ZX-Loader is available from
ftp://ftp.nvg.unit.no/pub/sinclair/utils/mac/ZX_Loader_1.0.4.hqx
[ftp://ftp.nvg.unit.no/pub/sinclair/utils/mac/ZX_Loader_1.0.4.hqx] .  
         
        
        

  
-=3. PowerSpectrum v1.0 (Bo Lindbergh [d88-bli@nada.kth.se] )=-
  
   a)    Emulates 48K Spectrum, Kempston joystick.  
   b)    Loads .SNA snapshots.  
   c)    Saves .SNA snapshots.  
   d)    Does realtime tape I/O through the microphone jack (this probably
requires 44 kHz sound hardware).  
   e)    Requires a PowerMac - won't run on a 680x0 machine.  
   f)    Runs at true Spectrum speed.  
   g)    Freeware?  
   h)    1x1, 2x2, 3x3, and 4x4 screen emulation. Has perfect sound. Supports
all undocumented Z80 instructions.  
   i)    Bad points?  
   j)    No other comments.  
   k)    Available from
http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/app/power-spectrum-10-ppc.
hqx
[http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/app/power-spectrum-10-ppc
.hqx] .




                         -==EMULATORS FOR NEXTSTEP==-

 


  
-=1. NXSpectrum (Ian Stephenson [ian.stephenson@insignia.com]  &Ian Collier
[Ian.Collier@comlab.ox.ac.uk] )=-
  
   a)    Emulates 48K Spectrum. ZX Printer still?  
   b)    As xz80.  
   c)    As xz80.  
   d)    As xz80.  
   e)    Requirements?  
   f)    Speed?  
   g)    Freeware (GNU Public License).  
   h)    Good points as xz80?  
   i)    Bad points as xz80?  
   j)    This is a quick hack of xz80 to make it run under NeXTStep. And yes,
this is from the same guy who does SoftPC for Insignia!  
   k)    Was available from
ftp://pitcher.peak.org/pub/next/submissions/NXSpectrum.app.NIHS.compressed
[ftp://pitcher.peak.org/pub/next/submissions/NXSpectrum.app.NIHS.compressed]
but has obviously been moved to another directory, so have a hunt around.  




                           -==EMULATORS FOR OS/2==-

 


  
-=1. x128 v0.5b5 (James McKay [jmk@spuddy.mew.co.uk]  - new address - and
Thomas Ahn Kolbeck Kjaer [takjaer@daimi.aau.dk] )=-
  
   a)    Emulates 48K/128K Spectrum, Kempston/Sinclair/Cursor joysticks,
Multiface 128.  
   b)    Loads .SNA, .Z80 and .SLT snapshots, and from Z80's .TAP tape files
and .SCR screenshot files.  
   c)    Saves .Z80 and .SLT snapshots.  
   d)    Real tape support via .VOC files.  
   e)    Requires OS/2 Warp or OS/2 Merlin (it works on the BETA version),
DIVE supported video card, DART or Adlib compatible sound card for AY
emulation (optional), 486DX2-66MHz MINIMUM (486DX4-100 or better recommended).
 
   f)    Speed? Requirements give you a clue here.  
   g)    Freeware.  
   h)    Hi-res emulation of screen and left &right border allowing colours in
an 8x1 block (rainbowing). Uses OS/2 file selector Runs in a resizeable
window. Supports drag 'n' drop of snapshot and tape files.  
   i)    Multiface 128 support only works if you have the Multiface 128 ROM
(it comes with Z80, see here).  
   j)    Also available for DOS, UNIX/Linux with X and XFree86 OS/2.  
   k)    Available from Thomas' home page at
http://www.daimi.aau.dk/~takjaer/x128-OS2/x128.html
[http://www.daimi.aau.dk/~takjaer/x128-OS2/x128.html] ,
ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/os2/x128v05b5-OS2.zip
[ftp://ftp.nvg.unit.no/pub/sinclair/emulators/spectrum/pc/os2/x128v05b5-OS2.zip
] , ftp://ftp.leo.org//pub/comp/os/os2/leo/games/x128v05b5-OS2.zip
[ftp://ftp.leo.org//pub/comp/os/os2/leo/games/x128v05b5-OS2.zip] or
http://hobbes.nmsu/pub/os2/games/x128v05b5-OS2.zip
[http://hobbes.nmsu/pub/os2/games/x128v05b5-OS2.zip] . NOTE: only the version
on NVG and Thomas' home page contains the required EMX DLL's. If you download
X128 from LEO or HOBBES, you MUST have emxrt.zip (at least version 09c+fix02)
installed!  
   
        
        
        

  
-=2. x128 v0.5 for XFree86 OS/2 (James McKay [jmk@spuddy.mew.co.uk]  - new
address - and Krister Bergman [bellman@kuai.se] )=-
  
   a)    Emulates 48K/128K Spectrum, Kempston/Sinclair/Cursor joysticks,
Multiface 128.  
   b)    Loads .SNA, .Z80 and .SLT snapshots, and from Z80's .TAP tape files.  
   c)    Saves .Z80 and .SLT snapshots.  
   d)    Real tape support via .VOC files.  
   e)    Requirements unknown. Presumably needs XFree86!  
   f)    Speed?  
   g)    Presumably still freeware.  
   h)    Hi-res emulation of screen and left &right border allowing colours in
an 8x1 block (rainbowing).  
   i)    Multiface 128 support only works if you have the Multiface 128 ROM
(it comes with Z80, see here).  
   j)    Also available for DOS, UNIX/Linux with X and plain old OS/2.  
   k)    Available from Krister's homepage at
http://www.kuai.se/~bellman/html/xfreeapps.html
[http://www.kuai.se/~bellman/html/xfreeapps.html]   




                       -==EMULATORS FOR COMMODORE C64==-

 


(Some information from Adam Roach's comp.emulators.misc FAQ)
 
  
-=1. Spectrum 48 (Whitby Computers Ltd.)=-
  
   a)    Emulates Sinclair BASIC only - no Z80 emulation, so no machine code
programs work. Microdrive emulated via 1541/1571 disk drive.  
   b)    Loads Microdrive files from disk.  
   c)    Saves Microdrive files to disk.  
   d)    No real tape support.  
   e)    Requires just a basic C64.  
   f)    Slow - well, it *is* just BASIC and it *is* on a C64!  
   g)    Freeware?  
   h)    Allows C64 users to see some of the superiority of Sinclair's master-
piece (well you try and think of a good point!). And Sinclair BASIC is
somewhat more useful than Commodore's attempt.  
   i)    Useless for all but the most BASIC of games (pun intended).  
   j)    No other comments.  
   k)    Available from here
[http://www.cs.bham.ac.uk/~dmb/speccy/c642spec.zip] for the time being (ZIPped
up .P00 file for use with the PC64 emulator).




                           -==EMULATORS FOR JAVA==-

 


  
-=1. JASPER (previously called Odie in this FAQ) (Andrew Pollard
[andrew@odie.demon.co.uk]  and Adam Davidson [adam@odie.demon.co.uk] )=-
  
   a)    Emulates 48K Spectrum.  
   b)    Loads .Z80 and .SNA files using PgUp or LOAD "snapshot name".  
   c)    Saves .Z80 and .SNA files using PgDn if you have downloaded the class
archive.  
   d)    No real tape support.  
   e)    Runs on any Java system.  
   f)    Slow - Java is an interpreted language. Internet Explorer v3.01 has a
good JIT (Just-In-Time) compiler and shows off this emulator better than
Netscape can manage.  
   g)    Freeware.  
   h)    Good points - well, it's a nice achievement and very portable but
that's about it really!  
   i)    So slow... though hardly the author's fault.  
   j)    There is a downloadable class archive so snapshots can be saved and
the emulator used without being online.  
   k)    Available from it's home page at http://www.odie.demon.co.uk
[http://www.odie.demon.co.uk] .  




                        -==EMULATORS FOR SINCLAIR QL==-

 


My thanks to Simon Goodwin [simon@studio.woden.com] for information on all
these emulators.
 
  
-=1. Spectator v1.18 (Carlo Delhez)=-
  
   a)    Emulates 48K Spectrum, Kempston, Protek and Interface 2 joysticks,
Interface 1 and Microdrives.  
   b)    Loads .Z80 snapshots.  
   c)    Saves .Z80 snapshots.  
   d)    No real tape support.  
   e)    Requires 256Kb of RAM, needs QRAM or QPAC to multitask.  
   f)    Slower than the ZM emulators.  
   g)    Shareware - cost 50 Dutch Guilders to register (in 1993, so it may
cost more now). Registration gets you a 720Kb disk full of Speccy software
(mostly games), a printed manual and various utilities to read from +D,
Disciple, Discovery and Beta/Hobbit disks.  
   h)    Emulates undocumented Z80 opcodes; runs more Speccy software than the
other QL-based emulators.  
   i)    Screen update not immediate; uses a seperate task to update the
screen every second or so. FLASH a bit slow as a result. Keyboard handling a
bit weird - QL Caps Lock does not correspond to Spectrum Caps Lock, press F5
for Extended Mode, etc.  
   j)    Sound via the QL NET port or the QL's beeper, which sounds rather
better.  
   k)    Shareware version available from QL Public Domain suppliers such as
S.J.P.D. and Qubbesoft, registered version available from author:
 
Carlo Delhez,
 Emmastraat 3,
 4651 BV
 Steenbergen,
 Netherlands.
   
        
        
        

  
-=2. Speculator (William James)=-
  
   a)    Emulates 48K Spectrum, Kempston and Protek joysticks.  
   b)    Loads .Z80 snapshots and files from QL devices.  
   c)    Saves snapshot in its own format, saves files to QL devices.  
   d)    Comes with Dave Barker's QSPEC, a comprehensive set of QL commands to
load and convert ZX tape files via the QL NET port, but loading is
hit-and-miss as it depends on QL memory and tape speed. Speculator's LOAD
command can use QL drives or a tape player connected to SER2, which can in
theory accept stronger signals than NET. These tape routines assume Mark 1
Trump Card memory.  
   e)    Requires 256Kb of RAM.  
   f)    Faster for BASIC than the other QL-based emulators (due to
replacement of some of the slow original ROM routines) but slower for machine
code programs.  
   g)    Public domain; comes with complete source (in assembler).  
   h)    Comes with a utilty to enable keyword entry letter-by-letter, useful
seeing as Speccy keywords aren't printed on the QL keyboard. Filenames not
limited to the Speccy's 10 character standard so full 36 letter QL filenames
can be used.  
   i)    Doesn't multitask; takes over from SuperBasic. Doesn't emulate
undocumented Z80 opcodes.  
   j)    FLASH emulation can be turned off to speed things up. Sound via the
QL NET port; a bit rough and ready, and locks out SER and MDV devices when in
use.  
   k)    Available from QL Public Domain suppliers such as S.J.P.D. and
Qubbesoft:
 
Qubbesoft PD,
 Brunwin Road,
 Rayne,
 Braintree,
 Essex
 CM7 5BU
 UK.
 
SJPD,
 36 Eldwick Street,
 Burnley,
 Lancashire
 BB10 3DZ
 UK.   
        
        
        

  
-=3. ZM/1, 2, 3 and HT (Ergon Development)=-
  
   a)    Emulates 48K Spectrum, Kempston (ZM/2+), Protek (ZM/2+) and Interface
2 joysticks, Interface 1 and Microdrives (ZM/1 and ZM/2 only).  
   b)    Loads .Z80 snapshots (ZM/2+).  
   c)    Saves .Z80 snapshots (registered ZM/2+).  
   d)    Real tape support with ZM/AC that comes with registered versions of
ZM/2+.  
   e)    Requires 512Kb of RAM (640Kb for ZM/HT).  
   f)    ZM/HT can out-perform a real Spectrum on a 16MHZ Gold card; other ZM
versions are faster than the other QL-based emulators at least.  
   g)    Shareware - cost 60,000 Italian Lire to register (in 1993, so it may
cost more now). Registration gets you full versions of ZM/2 and ZM/3 and a
printed manual plus utilities to read tapes and MGT or Opus disks. Send 90,000
Lire and you get ZM/HT, a compiling emulator which actually compiles Z80 code
into native 68000 for a big speed increase (though variable speed until it has
compiled all the Z80 code it encounters). Extra cash required for postage.  
   h)    ZM/2 includes a Z80 monitor. Definable key layouts. Keyword entry
eased by a menu of keywords you can select from as well as using the keys.
Screen update can be in delayed or immediate modes. Emulates undocumented Z80
opcodes.  
   i)    Only ZM/HT can save configuration or save compressed Z80 snapshots.  
   j)    Sound via the QL NET port; a bit rough and ready, and locks out SER
and MDV devices when in use. Response to INs from non-existent ports can be
set, which helps with some games.  
   k)    Shareware version available from QL Public Domain suppliers such as
S.J.P.D. and Qubbesoft, registered version available from authors:
 
Ergon Development,
 via Emilio De Marchi,
 2,
 42100 Reggio Emilia,
 Italy.




                            -==EMULATORS FOR MSX==-

 


  
-=1. ROMU6 (Cesar Hernandez and Juan Hernandez)=-
  
   a)    Emulates Spectrum 48K BASIC only.  
   b)    No snapshot loading, tape files loaded via normal MSX tape loading.  
   c)    No snapshot saving, tape files saved via normal MSX tape saving.  
   d)    As the above implies, apparently has real tape support through normal
MSX tape loading.  
   e)    Requires an MSX II with 128Kb Memory mapper. Though it will run on an
MSX I with a memory mapper the colours will be wrong.  
   f)    Speed?  
   g)    Freeware.  
   h)    Good points?  
   i)    Bad points?  
   j)    Max Celedon [i5mceled@loa.disca.utfsm.cl]  apparently has something
to do with the authors and may know more.  
   k)    Available from here
[http://www.cs.bham.ac.uk/~dmb/speccy/msx2spec.zip] for the time being.

                                       
                                       
                                       
                              -==WHERE IS...?==-
                                       
 
                                       
                                       

This section is dedicated to information about the whereabouts or current
activities of Sinclair scene personalities. Mostly this means games
programmers or magazine writers. Information regarding these people (and
especially any not mentioned here) is very welcome!
 
-=
  1. Beam Software [Penetrator, The Hobbit, etc.]=-
 
Still around and happy to let people grab their old games in snapshot form -
see their website [http://www.beam.com.au] .
 _INFO BY:_
 Fredrik Ekman [ekman@lysator.liu.se] 
-=
  2. Imagine/Denton Designs [Stonkers, Frankie goes to Hollywood, etc.]=-
 
_Dougie Burns (programmer)_
 Last seen in Glasgow as a used car salesman.
 _Marc Dawson (programmer)_
 Project manager for Barbie the Video Game for software house in Manchester.
 _John Gibson (programmer - ZZoom/Stonkers)_
 Currently working in the Chester office of Psygnosis and has been for some
time.
 _Fred Gray (musician)_
 Became programmer in Liverpool. Works for Psygnosis, as do most of Denton
Designs. Status uncertain since Sony's take over of Psygnosis.
 _Dave Lawson (director)_
 Last seen running Kinetica Software in Birkenhead.
 _Ally Noble (artist) and John Heap (programmer)_
 Still own and run Denton Designs.
 _INFO BY:_
 Stuart Fotheringham [stuarto@stoo.demon.uk] , Andrew Toone
[andrewt@smallworld.co.uk] , Ralph Ferneyhough [ralph@datel.co.uk] 
-=
  3. Gargoyle Games/Faster Than Light [Heavy On The Magick, Lightforce etc.]=-
 
_Roy Carter_
 Roy Carter is a registered user of Z80 and has given spoken permission to
distribute the Gargoyle games. They are (were?) doing things for Psygnosis -
not all of them game writing.
 _INFO BY:_
 Brian Gaff, Andrew Toone
 
-=
  4. Design Design [Halls Of The Things, Dark Star etc.]=-
 _Simon Brattel_
 Runs his own company producing system software.
 _Graham Stafford_
 Works for Psygnosis, as do most of Denton Designs.
 _INFO BY:_
 Andrew Toone [andrewt@smallworld.co.uk] , Jon Ritman
[jritman@cix.compulink.co.uk] 
-=
  5. LERM [various tape copiers]=-
 _Robert Evans_
 "Not only do I remember Lerm, I did some work for them. Lerm itself was a
husband and wife company, in the back room, in the traditional fashion. The
husband was a high-flying software type a.k.a my Maths teacher at school."
 "There was a tendency amongst my group of schoolfriends at the time to use
LERM programs more than anything else, because some of us helped Mr Evans (our
maths teacher at the time) to write them. If anyone's interested, the company
name came from a mixture of Robert Evans' and his wife's initials."
 _INFO BY:_
 David Smith [davidsm@x.co.uk] , Scott Wilding [scott@fizban.demon.co.uk] 
-=
  6. Ultimate Play The Game/Ashby Computers &Graphics (ACG) [Jetpac,
Knightlore etc.]=-
 Calling themselves Rare and producing console games for Nintendo
[http://www.nintendo.com] , e.g. _Donkey Kong Country_ and _Killer Instinct_
for the new Nintendo Ultra 64. Don't like their games being distributed.
 _INFO BY:_
 Dylan Cuthbert [dylan@takoyaki.demon.co.uk] 
-=
  7. Realtime Graphics [3D StarStrike, Starglider, Carrier Command etc.]=-
 _Jez San_
 Developing 3D systems for anyone with with enough hardware (Nintendo
[http://www.nintendo.com]  et. al.)
 _INFO BY:_
 Andrew Toone [andrewt@smallworld.co.uk] 
-=
  8. Vortex [Android, TLL, Highway Encounter etc.]=-
 
_Costa Panayi_
 Doing some consultancy design work for a children's toys company in the south
of England (believed to be Chicco).
 _Mark Haigh-Hutchinson [mhh@lucasarts.com] _
Working for LucasArts [http://www.lucasarts.com] , currently on _Shadows of
the Empire_ for the Nintendo 64. Mark organises the Vortex Emulation Package
[ftp://ftp.nvg.unit.no/pub/sinclair/snaps/games/by-company/vortex/] for
several machines, including the Spectrum. This contains a number of the Vortex
games and is freely distributed.
 _INFO BY:_
 Arnt Gulbrandsen [agulbra@flode.nvw.unit.no] , Miguel Melo [mmelo@ea.com] ,
Mark Haigh-Hutchinson [mhh@lucasarts.com] 
-=
  9. OTHERS:=-
 
_Linda Barker [YS Editor]_
 Club president of Prism PD. Wrote a bit in PD Power.
 _INFO BY:_
 Robert Cooper (aka Icabod)
 
_Marcus Berkmann [YS or SU writer - aka Dr. Berkmann]_
 Now writing for the Mail on Sunday.
 _INFO BY:_
 Keith Willoughby [keith@cowtown.demon.co.uk] 

_Keith Burkhill [Ghosts 'n Goblins, Space Harrier etc.]_
 Working freelance (for Probe at the moment converting F1 to the "Sega Satan"
as he put it.)
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_John F. Cain [Booty]_
 Still lives on the Isle of Man, as he did when he wrote Booty. He has a gold
cassette of _Booty_ on his wall!
 _INFO BY:_
 Mark Walker [M.S.Walker@cs.cf.ac.uk] 

_Pete Cooke [Tau Ceti, Academy, Room 10 etc.]_
 Did a game called "Tower of Babel" for the ST, Amiga and Archimedes a few
years ago, and more recently he programmed the menu system for F1GP II on the
PC.
 _INFO BY:_
 Tero Turtiainen [turtiain@lut.fi] , Darrel Sinclair
[darrel.sinclair@macsch.com] , Richard Hewison [rhewison@cix.compulink.co.uk] .
 
_Ste Cork [Wibstars, Psycho Pigs UXB, Star Paws]_
 Now works for Tales 2.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Alan Cox [Blizzard Pass] [Alan.Cox@linux.org] _
Now doing network stuff; has thought about a Linux [http://www.linux.org]
version of _Blizzard Pass_. He has a home page [http://shadow.cabi.net/] where
you can retrieve some adventure stuff (but not Blizzard Pass itself, as that
is owned by whoever bought the rights from Tynesoft).
 _INFO BY:_
 Alan Cox [Alan.Cox@linux.org] 

_Mel Croucher [ID]_
 Writing for magazines; including the *Great Moments In Computing* strip for
Computer Shopper [http://www.compshopper.co.uk] .
 _INFO BY:_
 Damien Burke [http://www.jetman.demon.co.uk/mail.html] 

_Robert Erskine [robert.erskine@smallworld.co.uk] [Battle of Britain]_
 Robert wrote Battle of Britain among other stuff and also ran Microgame
Simulations. They published Spec-fx and various books (e.g. "60 Programs for
the Sinclair Spectrum" from Pan). He is now working for Smallworld Cambridge
on GIS.
 _INFO BY:_
 Robert Erskine [robert.erskine@smallworld.co.uk] , Stephen Smith
[stevo@jonlan.demon.co.uk] 

_Eugene Evans_
 Currently working in Chicago at Viacom New Media. He's been there for a good
few years before which it was Icom Simulations, Inc. the people who did the
CD-ROM _Sherlock Holmes_ games, _T-MON_ for the Mac, and _Dracula Unleashed_.
 _INFO BY:_
 Brian Leake [phyd@interaccess.com] 

_Glenn Flood [glenn@floodnet.demon.co.uk] [tape inlay art for Astroblaster and
others]_
 Programming and drawing still; has a nice web site
[http://www.ftech.net/~floodnet/] showing off a lot of his artwork.
 _INFO BY:_
 Glenn Flood [glenn@floodnet.demon.co.uk] 

_Mike Follin [Bubble Bobble etc.]_
 Working for Tales 2.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Tim Follin [wrote lots of wonderful music for lots of Spectrum/Atari ST
games]_
 Currently out of work and looking for a job. Come on somebody, give the guy a
job, just listen to the superb tunes on Bionic Commando and Ghouls 'n' Ghosts!
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Julian Gollop and Nick Gollop [Chaos, LaserSquad, Rebelstar]_
 Owners and programmers of Mythos (_UFO_, _X-COM_).
 _INFO BY:_
 Miguel Melo [mmelo@ea.com] 

_Simon Goodwin [simon@studio.woden.com] [Crash Tech Tips writer]_
 Was still writing for Sinclair QL World when the final issue (July 94) came
out. Simon Goodwin writes for Amiga magazines and Computer Shopper
[http://www.compshopper.co.uk] . He was also seen at the Last Sinclair and SAM
show in Gloucester. Messing with both Speccy emulator for Amiga and hardware
Speccy emulation for IBM PC; notably on Speculator '93, a QL Speccy emulator
currently being converted to run on the Amiga. Reads comp.sys.sinclair.
 _INFO BY:_
 Simon Goodwin [simon@studio.woden.com] , Jenni the Satsuma
[yockneyj@cs.man.ac.uk] , Brian Gaff [briang@bgserv.demon.co.uk] 

_David Jones [Finders Keepers, Spellbound, Knight Tyme &Stormbringer]_
 Was spotted at one of the Sinclair and SAM shows in Gloucester, where someone
was writing a SAM conversion of one his games. Possibly no longer in
programming.
 _INFO BY:_
 Dave Whitmore [davewhitemore@enterprise.net] 

_Steve Kelly [Chequered Flag]_
 Has been part of the Bitmap Brothers [http://www.bitmap-brothers.co.uk] for
some years now, producing games for the Amiga and PC.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Karl Hampton [karl@rico.demon.co.uk] [Fridge Frenzy]_
 Karl is a registered user of Z80, and supplied the following information
about himself:
 "I had two programs which I thought would be nice to get on a PC for old-
times sake. One was MAX, a windows-type Microdrive utility and the other a
game called Fridge Frenzy. Neither saw the light of day in their true colours;
MAX was shelved by AMS and Fridge Frenzy was probably Bug- Byte's last ever
game, just before they became "technically insolvent"! As such, I thought that
myself and only a handful of other people would have copies. However, the
rather prolific Spectrum community have beat me to it as both are available on
NVG. I was gobsmacked!"
 _INFO BY:_
 Karl Hampton [karl@rico.demon.co.uk] 

_John Hollis [john@hollis.co.uk] [Quiksilva - Meteor Storm, Stargate etc.]_
 John Hollis founded Hollis Research, who develop MIDI sequencers (including
_Trackman_ for the Atari ST). From John Hollis himself:
 I was a director of Quiksilva and wrote most of the early releases for the
ZX81 and Spectrum. I have no objection to people distributing my old games but
I'm not sure exactly what the copyright position is as Quiksilva was sold and
is now defunct. Still, if it's of interest, the Spectrum games I wrote were:
_Space Intruders_, _Meteor Storm_ (first speech in a Speccy game!),
_Time-Gate_ (first 3D star field, sold zillions of copies), _Game Designer_
(DIY game construction kit) and _Aquaplane_ (waterskiing with sharks).
 I'm writing Windows apps at the moment but we have also been designing games
for Sega [http://www.sega.com] and Hasbro for the last couple of years. Our
homepage is here [http://www.hollis.co.uk] .
 _INFO BY:_
 Stephen K. Mulrine [robotron@moroder.demon.co.uk] , John Hollis
[john@hollis.co.uk] 

_Mark Incley [Oink!, Klax]_
 Mark is the author of the quite well known _InkUtils_ suite of PC utilities,
and has a web page [http://www.inkland.demon.co.uk] where these utilities are
available, along with some of the Spectrum games he wrote!
 _INFO BY:_
 Mark Incley [mark@inkland.demon.co.uk] 

_Makky J [shitshoes@makj.demon.co.uk] [graphics for R-Type etc.]_
 Regularly pops up in some newsgroups, including comp.sys.sinclair
[comp.sys.sinclair] occasionally.
 _INFO BY:_
 Makky J [shitshoes@makj.demon.co.uk] 

_Paul Machacek [Super Hero]_
 Works for Rare.
 _INFO BY:_
 Leigh Loveday [lloveday@rare.co.uk] 

_Tony Mack [Gyroscope, Paper Boy, Super Sprint, Championship Sprint]_
 Now writes games for the Sega Saturn (currently converting Cybersled to it).
 _INFO BY:_
 Mark Gordon [100306.3045@compuserve.com] 

_Lloyd Mangram [Crash letters editor]_
 Lloyd Mangram didn't actually exist, really. It was just a false name used by
a plethora of journalists at Crash. So it was a big con really! A false
identity! Anyway, one of the many 'Lloyds' was Eddie McKendrick, former
publisher for Crash. He's now head of New Media at Nickelodeon UK and The
Paramount Channel. After a spell doing the ITV teletext service known as
Oracle (now sadly missed), he now maintains the Nickelodeon text service known
as NickText, and does web-sites and all sorts for both channels.
Coincidentally, Nickelodeon's offices are at Rathbone Place in London, where
Your Sinclair was based.
 _INFO BY:_
 Peter Thomas [pete@prodge.demon.co.uk] 

_Teresa Maughan [Your Sinclair editor - aka T'zer]_
 Now writing for _The Mac_ magazine, either that or someone with the same name
is...
 _INFO BY:_
 Rich [rst@ukc.ac.uk] 

_Fergus McNeill [Delta 4 - Bored Of The Rings, The Boggit, etc.]_
 Head of design at Sales Curve Interactive (SCi), ex-Storm. SCi have just
released a Point and Click called "Kingdom 'O Magic" which was designed by
Fergus. Fergus has kindly agreed to free distribution of the Delta 4 games, as
long as it is *free* - no money may change hands. He cannot speak for any of
his games with the Abstract Concepts logo, as they are owned by Activision. As
of December 1996, Delta 4 now have a web site here
[http://www.delta4.demon.co.uk] .
 _INFO BY:_
 Chris Wild [chrisw@sci.co.uk] 

_Bob Paape [R-Type, Rampage, Dragon Breed]_
 Did MENSA Puzzles for the PC, last heard of working on MENSA Puzzles II.
 _INFO BY:_
 Makky J [shitshoes@makj.demon.co.uk] 

_Neil Pawson [neil@smallworld.co.uk] [Mighty Magus]_
 Working for Smallworld Cambridge on GIS.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Dave Perry [Mikro-Gen - 3 Weeks In Paradise, Stainless Steel etc.]_
 Runs _Shiny Entertainment_ (MDK, Earthworm Jim).
 _INFO BY:_
 Chris Wild [chrisw@sci.co.uk] , Damien Guard [damien.guard@nrgi.com] 

_John Pragnell [Overlords, Orbix The Terrorball]_
 Now into VB, C++ &databases &director of East View Systems Ltd (IT
Consultants). Still writing games - the latest being a passable soccer game
called Simsoc (a PC ringer for the speccy Football Manager) - see his homepage
[http://ourworld.compuserve.com/homepages/john_pragnell] .
 _INFO BY:_
 John Pragnell
 
_Dominic Prior [dominic@smallworld.co.uk] [part of Gyron team]_
 Working for Smallworld Cambridge on GIS.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Andy Pugh [Johnny Reb]_
 Now at the University of Sheffield, UK (Mechanical and Process Engineering
dept).
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Dominic Robinson [Flying Shark, Zynaps etc.]_
 With Psygnosis, or at least he was a few months ago.
 _INFO BY:_
 Chris Wild [chrisw@sci.co.uk] 

_Jon Ritman [jritman@cix.compulink.co.uk] [co-author of Batman, Head over
Heels, Matchday, etc.]_
 Jon Ritman is reading/posting to comp.sys.sinclair [comp.sys.sinclair] and is
the director of a games software company in the UK called _Cranberry Source_,
where _Bernie Drummond_ can also be found. Contrary to previous assertions in
this FAQ, he definitely *didn't* do a Computer Science degree at UCL
[http:/www.cs.ucl.ac.uk] and he and Bernie Drummond wrote only one Gameboy
game (_Monster Max_). Jon doesn't care if you copy his old games, indeed he
thinks it's nice to think of people still playing the old games.
Unfortunately, he doesn't own the rights to them. However, he has been given
verbal permission by John Woods (one of Ocean's directors) to release them for
free on the net. This covers Match Day, Match Day II, Batman and Head Over
Heels. The status of Batman is uncertain as Ocean no doubt rented the name for
a limited time only. Also see the entry for _Richard Turner_, below.
 _INFO BY:_
 Vartan Narinian [vsa@ic.ak.uk] , Peter Watsons [pwats@cyberspace.com] , Jon
Ritman [jritman@cix.compulink.co.uk] 

_Mike Singleton [Lords Of Midnight, Doomdark's Revenge etc.]_
 Mike Singleton is alive and well and writing Lords Of Midnight games. for the
IBM PC. Chris Wild did PC versions of Lords of Midnight and Doomdark's Revenge.
 _INFO BY:_
 Chris Wild [chrisw@sci.co.uk] 

_Matthew Smith [Styx, Manic Miner, Jet Set Willy]_
 Nothing concrete on the father of the miner :( Previous rumours range from
him working in some computer store in the south of England to the latest; a
motorbike mechanic called Mat living in a commune in the Netherlands; he
mentioned to someone that he "wrote some video games in the 80's, got burnt
out, ended up in a mental institution". There is *a* Matthew Smith
contributing to comp.sys.sinclair [comp.sys.sinclair] , but he's not *the*
Matthew Smith. Or at least that's what he says ;) There is also now a
page
dedicated to the question of Matthew's whereabouts
[http://www.jonlan.demon.co.uk/spectrum/matsmith/] .
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_R. T. Smith [bobsmith@primenet.com] [Arnhem, Vulcan]_
 In America still apparently writing war games.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_David Spicer [Sgt.Seymour, Robotcop, Adidas Championship Football etc.]_
 [*From David:*]
 After getting completely p*ssed off with the games industry, I went to Kent
Uni to study VLSI circuit engineering. Once I'd completed my course, I spent 3
months writing Sparcade [*for those who don't know, this is a very good arcade
machine emulator, one of the first that appeared*] with the intention of
developing it commercially as a last "fling" before going into the electronics
industry. However, no software companies were prepared to take it on, all
lacking the foresight to see the imminent flood of interest in retro-gaming.
 
Nowadays I can be found working as a design engineer for a semiconductor
company. Specifics of my work are tied up in company confidentiality, but it's
enough to say that I'm working on a chip which is destined for use in consumer
video hardware.
 
[*Lastly, Dave mentioned that in order to test the Z80 emulation of Sparcade
he coded a SPECCY driver for Sparcade:*]
 
It's almost a full emulation of a Speccy 128, lacking only the ROM and screen
paging. The catch is that there's no facility for loading snapshots, making it
rather useless as an Internet release.
 
[*David WILL NOT send copies of the Speccy Driver to Sparcade to _anyone_, no
matter what, so don't bug him with emails.*]
 _INFO BY:_
 David Spicer [david@spicer.demon.co.uk] via Blood
[l.d.tonks@bra0202.wins.icl.co.uk] 

_Phil South [aka Snouty; Your Sinclair writer]_
 Writes for Computer Shopper [http://www.compshopper.co.uk] magazine.
 _INFO BY:_
 Damien Burke [http://www.jetman.demon.co.uk/mail.html] 

_Richard Stevenson [Bombscare, Shorts Fuse]_
 Works for Gremlin Interactive [http://www.gremlin.co.uk] and has worked on
Zool, Euro '96 etc.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Garth Sumpter [Sinclair User writer]_
 Writes for movie magazine Neon.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Kevin Thoms [Football Manager]_
 Currently working as a Windows consultant/programmer.
 _INFO BY:_
 Miguel Melo [mmelo@ea.com] 

_Stephen Townsend [Chequered Flag]_
 Now works at Psion on the Series 3.
 _INFO BY:_
 Stephen Smith [stevo@jonlan.demon.co.uk] 

_Richard Turner_
 Richard ran Artic Computing, publishers of Jon Ritman's early games. Artic
ceased trading many years ago and Jon thinks that Richard now sells kitchens
for a living and is unlikely to be chasing people for using those snapshots
(Namtir Raiders, Combat Zone, Cosmic Debris, Bear Bovver and Dimension
Destructors), but this is not certain.
 _INFO BY:_
 Jon Ritman [jritman@cix.compulink.co.uk] 

_Christian Urqhuart [Hunchback, Daley Thompson's Decathlon, etc.]_
 Went on to work for Imagitec Design, writing Game Gear stuff. Left there to
work for NMS and was involved in RISC for the PC. Left there and now possibly
partner in a shop in Liverpool that sells computer hardware.
 _INFO BY:_
 Andy Noble [andy@andyn.demon.co.uk] 

_Martin Wakeley [did graphics for Tiertext - Rolling Thunder, Street Fighter
etc.]_
 Works for Rare; designed Blast Corps.
 _INFO BY:_
 Leigh Loveday [lloveday@rare.co.uk] 

_Sandy White &Angela Sutherland [Ant Attack, Zombie Zombie]_
 Sandy is working on a super new top secret engine while laying about on a
beach in Greece.
 Angela, his ex-partner, owns Perfect Entertainment (ex Teeny Weeny Games).
 _INFO BY:_
 Jon Ritman [jritman@cix.compulink.co.uk] , Chris Wild [chrisw@sci.co.uk] 
-=
  10. Spectrum people reading comp.sys.sinclair [comp.sys.sinclair] :=-
 
_Simon Cooke [csl@fs2.ee.umist.ac.uk] _was Your Sinclair's technical editor,
and has put up extracts from YS issues at his web site
[http://jumper.mcc.ac.uk/~simonc/ys] .
 
_Alan Fothergill [afotherg@oracle.com] _from Imagine.
 
_Stuart Fotheringham [stuarto@stoo.demon.co.uk] _did work on those beautiful
graphics in _Odin_ games _Nodes of Yesod_, _Robin O' the Wood_, _Arc of
Yesod_, and _Heartland_.
 
_Paul Holmes [pholmes@unlimited.com] _from _Elite_ wrote and co-wrote
_Robotron 2084_, _Bomb Jack I &II_, _Wild West Hero_, _Dustman_, designed and
co-designed _Grand National_, _Frank Bruno's Boxing_ and others. He's
currently trying to arrange a get-together some time next year for Speccy
programmers.
 
_Mark Haigh-Hutchinson [mhh@lucasarts.com] _of _Vortex_ pops up occasionally,
mostly to mention updates to the Vortex Emulation Package, which is a
collection of Vortex games (_TLL_, _Highway Encounter_ etc.) and instructions
for them, and is freely distributable.
 
_Jon Ritman [jritman@cix.compulink.co.uk] _of _Head Over Heels_ fame. Also
co-wrote _Batman_, _Matchday_ and other excellent games with _Bernie Drummond_.
 
_Duncan Sinclair [sinclair@dis.strath.ac.uk] _worked on an unfinished _Tapper_
with _Paul Holmes_.

                                       
                                       
                                       
                              -==FILE FORMATS==-
                                       
 
                                       
                                       

This section will be expanded as I get the time to do so; if you are desperate
for information about a particular format right now, a good source of
information is the source to SPConv v1.10; available from (among other
locations) here
[ftp://ftp.nvg.unit.no/pub/sinclair/utils/generic/spconv-110.zip] . The source
to WSpecEm is also worth a look as WSpecEm supports lots of different formats. 

-------------------------------------------------------------------------------
                             -=Snapshot formats=-
 
-------------------------------------------------------------------------------

Those handled by SPConv v1.10 are in *italics*:
   *.ACH or .archimedes*     Snapshots used by !Speccy. .ACH is the extension
SPConv uses for these files; so that filename-challenged operating systems
like DOS can handle such files for conversion purposes.  
   *.PRG*     Program file used by Specem.  
   *.RAW*     Raw memory dump from a real Spectrum; just the 48Kb of RAM and a
CODE header on the front.  
   .SEM     Snapshots used by ZX Spectrum-Emulator, the German PC-based
emulator. SPConv v1.11 will handle this format (actually it already does, but
I'm not going to release it yet because not all converted snapshots are
working correctly).  
   *.SIT*     Situation file used by Sinclair v2.00.  
   .SLT     Super level loader snapshot. Used by x128 and WSpecEm at time of
writing. Basically a v2/3 Z80 snapshot with level data appended.  
   *.SNA or .snap or .snapshot*     Mirage Microdrive snapshot format, used by
most emulators.  
   .SNA     128Kb version of SNA. Distinguished by file size of 131103 bytes
instead of 49179 bytes for 48Kb version.  
   *.SNX*     Extended version of SNA, used by Speccy on the Atari ST.  
   *.SP*     Snapshots used by SPECTRUM.  
   *.SP*     Snapshots used by VGASPEC.  
   .SP     Snapshots used by ZX Spectrum (Mac emulator).  
   *.Z80*     Snapshots used by Z80 and several other emulators. Three
versions in existence, the latest of which (v3/SLT) is not supported by all
these emulators. Very flexible; support for SamRam, 128K snapshots, etc.  
   *.ZX*     Snapshots used by KGB.  
   .ZX82    Snapshots used by Speculator '97.  
 
For the purposes of these descriptions, the following definitions apply:
 
*byte* = byte-sized variable; *word* = 2 bytes, *long* = 4 bytes. All stored
in little-endian (Intel) format unless otherwise stated.
 
-a) .SLT (super level loader trap used by x128 v0.4+, WSpecEm, Z80 v3.04+
etc.)-
 
The level loader trap has one annoying disadvantage; lots of extra files lying
around for each game. The super level loader was thought up (by me, natch :-))
to replace this multi-file format with a single snapshot file containing all
the level data files. It has been designed in co-operation with James McKay
(x128), Gerton Lunter (Z80), Rui Ribeiro (WSpecEm) and Darren Salt (helping
with Z80Em), so is well-supported already. The format was designed with future
expansion in mind, as you will see.
 
            Size   Description
   ------------------------------------------------------------------------
            varies bytes  Z80 snapshot (version 2+)
            3      bytes  Three null bytes (compatibility; see below)
            3      bytes  "SLT" (signature)
   ---- the following blocks make up a table to access the data files -----
            2      word   data type (0 = end of table, 1 = level data)
            2      word   data identifier (for type 1 this is level number)
            4      long   data length
            2      word   data type (0 = end of table, 1 = level data)
            2      word   data identifier (for type 1 this is level number)
            4      long   data length
            ... and so on
   ---- the following blocks are the data files themselves ----------------
            varies bytes data
            varies bytes data
            ... and so on
   ------------------------------------------------------------------------
 
The three null bytes after the end of the snapshot are for compatibility
reasons; older versions of Z80 would crash if the extra data was just appended
to the snapshot. With these three null bytes, they just complain about an
error in the snapshot file instead. This, of course, presumes you have renamed
the .SLT file to .Z80 and attempted to load it into an older emulator!
 
After the "SLT" signature, there is a table of data types and sizes. Only data
types 0 (end of table) and 1 (level data) are supported at the moment, so if
other values are encountered an emulator should ignore that data block.
 
To read a level data file using .SLT, the emulator should find the correct
entry in the table (type = 1, identifier matching the A register when the
ED/FB instruction was encountered), get its size from the table and calculate
its position from the total of sizes of data blocks previous to the required
one, added to the position of the end of the table. E.g., to load level 2 from
a .SLT snapshot with this table:
 
   Position  Size  Value  Description
   ------------------------------------------------------------------------
   40000     2     1      data type = level data
   40002     2     1      data identifier = level 1
   40004     4     256    data length = 256 bytes
   40008     2     1      data type = level data
   40010     2     2      data identifier = level 2
   40012     4     128    data length = 128 bytes
   40016     2     0      data type = end of table
   40018     2     *      data identifier = unused (may as well be zero)
   40020     4     *      data length =  unused (may as well be zero)
   40024     256   *      data block for level 1
   40280     128   *      data block for level 2
   ------------------------------------------------------------------------
   (* = could be anything)
 
So, the size of level 2 is 128 bytes, and its located at the end of the table
(40024) + the length of all previous blocks (just 256 here) = 40280.
 
Level data is packed in the same way as Z80 snapshot memory banks are.
 
The trainspotter award seekers of you may wonder why a whole word is used for
the data identifier; after all, this is the level number and is held in the A
register, so could be just a byte. For level data, correct. But future
expansion is better served by a word. For the same reasons, the data length is
held as a long word instead of just a word; level data will never exceed 64Kb
(indeed, could not even be as much as 48Kb), but future data types may do so.
One example; embedding a scan of a game's inlay card in the file is possible,
and that file could exceed 64Kb easily.
 
See this page [http://www.jetman.demon.co.uk/speccy/edfb.html] for my own
proposals for future data types for inclusion in .SLT snapshots.
 
-b) .SNA, .snap or .snapshot (Mirage Microdrive format used by many emulators)-
 
This format is the most well-supported of all snapshot formats (though Z80 is
close on its heels) but has a drawback:
 
As the program counter is pushed onto the stack so that a RETN instruction can
restart the program, 2 bytes of memory are overwritten. This will usually not
matter; the game (or whatever) will have stack space that can be used for
this. However, if this space is all in use when the snap is made, memory below
the stack space will be corrupted. According to Rui Ribeiro, the effects of
this can sometimes be avoided by replacing the corrupted bytes with zeros;
e.g. take the PC from the, stack pointer, replace that word with 0000 and then
increment SP. This worked with snapshots of Batman, Bounder and others which
had been saved at critical points. Theoretically, this problem could cause a
complete crash on a real Spectrum if the stack pointer happened to be at
address 16384; the push would try and write to the ROM. How different
emulators handle this is not something I know...
 
When the registers have been loaded, a RETN command is required to start the
program. IFF2 is short for interrupt flip-flop 2, and for all practical
purposes is the interrupt-enabled flag. Set means enabled.
 
   Offset   Size   Description
   ------------------------------------------------------------------------
   0        1      byte   I
   1        8      word   HL',DE',BC',AF'
   9        10     word   HL,DE,BC,IY,IX
   19       1      byte   Interrupt (bit 2 contains IFF2, 1=EI/0=DI)
   20       1      byte   R
   21       4      words  AF,SP
   25       1      byte   IntMode (0=IM0/1=IM1/2=IM2)
   26       1      byte   BorderColor (0..7, not used by Spectrum 1.7)
   27       49152  bytes  RAM dump 16384..65535
   ------------------------------------------------------------------------
   Total: 49179 bytes
 
-c) .SNA (128Kb version) (SP_EMU)-
 
This is simply the SNA format extended to include the extra memory banks of
the 128K/+2 machines, and fixes the problem with the PC being pushed onto the
stack - now it is located in an extra variable in the file (and is not pushed
onto the stack at all). The first 49179 bytes of the snapshot are otherwise
exactly as described above, so the full description is:
 
   Offset   Size   Description
   ------------------------------------------------------------------------
   0        27     bytes  SNA header (see above)
   27       16Kb   bytes  RAM bank 5 \
   16411    16Kb   bytes  RAM bank 2  } - as standard 48Kb SNA file
   32795    16Kb   bytes  RAM bank n / (currently paged bank)
   49179    2      word   PC
   49181    1      byte   port 7FFD setting
   49182    1      byte   (unknown - padding for above byte?)
   49183    16Kb   bytes  remaining RAM banks in ascending order
   ...
   ------------------------------------------------------------------------
   Total: 131103 or 147487 bytes
 
The third RAM bank saved is always the one currently paged, even if this is
page 5 or 2 - in this case, the bank is actually included twice. The remaining
RAM banks are saved in ascending order - e.g. if RAM bank 4 is paged in, the
snapshot is made up of banks 5, 2 and 4 to start with, and banks 0, 1, 3, 6
and 7 afterwards. If RAM bank 5 is paged in, the snapshot is made up of banks
5, 2 and 5 again, followed by banks 0, 1, 3, 4, 6 and 7.
 
-d) .SP file format used in "ZX Spectrum", the ZX Spectrum emulator for
Macintosh from Lorenzo Jose Ayuda Serrano.-
 
   Offset   Size   Description
   ------------------------------------------------------------------------
   0        2      byte   "SP" (signature)
   2        2      word   Program length in bytes (49152 bytes)
   4        2      word   Program location (16384)
   6        8      word   BC,DE,HL,AF
   14       4      word   IX,IY
   18       8      word   BC',DE',HL',AF'
   26       2      byte   R,I
   28       4      word   SP,PC
   32       2      word   0 (reserved for future use)
   34       1      byte   Border color
   35       1      byte   0 (reserved for future use)
   36       2      word   Status word
   ------------------------------------------------------------------------
   Status word:
   Bit     Description
   ------------------------------------------------------------------------
   15-8    Reserved for future use
    7-6    Reserved for internal use (0)
      5    Flash: 0=INK/1=PAPER
      4    Interrupt pending for execution
      3    Reserved for future use
      2    IFF2 (internal use)
      1    Interrupt Mode: 0=IM1/1=IM2
      0    IFF1: 0=DI/1=EI
 
-e) .ZX (KGB v.1.2-1.3) [Contributed by Troels Norgaard]-
 
All values stored in big-endian format; on 680x0 the most significant byte
goes first.
 
   Offset   Size   Description
   ------------------------------------------------------------------------
   0        49284  bytes  RAM dump 16252..65535
   49284    132    bytes  unused, make 0
   49416    10     word   10,10,4,1,1 (different settings)
   49426    1      byte   InterruptStatus (0=DI/1=EI)
   49427    2      byte   0,3
   49429    1      byte   ColorMode (0=BW/1=Color)
   49430    4      long   0
   49434    16     word   BC,BC',DE,DE',HL,HL',IX,IY
   49450    2      byte   I,R
   49452    2      word   0
   49454    8      byte   0,A',0,A,0,F',0,F
   49462    8      word   0,PC,0,SP
   49470    2      word   SoundMode (0=Simple/1=Pitch/2=RomOnly)
   49472    2      word   HaltMode  (0=NoHalt/1=Halt)
   49474    2      word   IntMode   (-1=IM0/0=IM1/1=IM2)
   49476    10     bytes  unused, make 0
   ------------------------------------------------------------------------
   Total: 49486 bytes
 
-f) .Z80 (Z80) [from Z80 documentation]-
 
The old .Z80 snapshot format (for version 1.45 and below) looks like this:
 
        Offset  Length  Description
        ---------------------------
        0       1       A register
        1       1       F register
        2       2       BC register pair (LSB, i.e.  C, first)
        4       2       HL register pair
        6       2       Program counter
        8       2       Stack pointer
        10      1       Interrupt register
        11      1       Refresh register (Bit 7 is not significant!)
        12      1       Bit 0  : Bit 7 of the R-register
                        Bit 1-3: Border colour
                        Bit 4  : 1=Basic SamRom switched in
                        Bit 5  : 1=Block of data is compressed
                        Bit 6-7: No meaning
        13      2       DE register pair
        15      2       BC' register pair
        17      2       DE' register pair
        19      2       HL' register pair
        21      1       A' register
        22      1       F' register
        23      2       IY register (Again LSB first)
        25      2       IX register
        27      1       Interrupt flipflop, 0=DI, otherwise EI
        28      1       IFF2 (not particularly important...)
        29      1       Bit 0-1: Interrupt mode (0, 1 or 2)
                        Bit 2  : 1=Issue 2 emulation
                        Bit 3  : 1=Double interrupt frequency
                        Bit 4-5: 1=High video synchronisation
                                 3=Low video synchronisation
                                 0,2=Normal
                        Bit 6-7: 0=Cursor/Protek/AGF joystick
                                 1=Kempston joystick
                                 2=Sinclair 2 Left joystick (or user
                                   defined, for version 3 .Z80 files)
                                 3=Sinclair 2 Right joystick
 
Because of compatibility, if byte 12 is 255, it has to be regarded as being 1.
After this header block of 30 bytes the 48K bytes of Spectrum memory follows
in a compressed format (if bit 5 of byte 12 is one). The compression method is
very simple: it replaces repetitions of at least five equal bytes by a
four-byte code ED ED xx yy, which stands for "byte yy repeated xx times". Only
sequences of length at least 5 are coded. The exception is sequences
consisting of ED's; if they are encountered, even two ED's are encoded into ED
ED 02 ED. Finally, every byte directly following a single ED is not taken into
a block, for example ED 6*00 is not encoded into ED ED ED 06 00 but into ED 00
ED ED 05 00. The block is terminated by an end marker, 00 ED ED 00.
 
That's the format of .Z80 files as used by versions up to 1.45. Starting from
version 2.0, a different format is used, since from then on also 128K
snapshots had to be supported. This new format is used for all snapshots,
either 48K or 128K.
 
Version 2.01 and 3.0 .Z80 files start with the same 30 byte header as old .Z80
files used. Bit 4 and 5 of the flag byte have no meaning anymore, and the
program counter (byte 6 and 7) are zero to signal a version 2.01 or version
3.0 snapshot file.
 
After the first 30 bytes, the additional header follows:
 
        Offset  Length  Description
        ---------------------------
      * 30      2       Length of additional header block (see below)
      * 32      2       Program counter
      * 34      1       Hardware mode (see below)
      * 35      1       If in SamRam mode, bitwise state of 74ls259.
                        For example, bit 6=1 after an OUT 31,13 (=2*6+1)
                        If in 128 mode, contains last OUT to 7ffd
      * 36      1       Contains 0FF if Interface I rom paged
      * 37      1       Bit 0: 1 if R register emulation on
                        Bit 1: 1 if LDIR emulation on
      * 38      1       Last OUT to fffd (soundchip register number)
      * 39      16      Contents of the sound chip registers
        55      2       Low T state counter
        57      1       Hi T state counter
        58      1       Flag byte used by Spectator (QL spec. emulator)
                        Ignored by Z80 when loading, zero when saving
        59      1       0FF if MGT Rom paged
        60      1       0FF if Multiface Rom paged. Should always be 0.
        61      1       0FF if 0-8191 is RAM
        62      1       0FF if 8192-16383 is RAM
        63      10      5x keyboard mappings for user defined joystick
        73      10      5x ascii word: keys corresponding to mappings above
        83      1       MGT type: 0=Disciple+Epson,1=Discipls+HP,16=Plus D
        84      1       Disciple inhibit button status: 0=out, 0ff=in
        85      1       Disciple inhibit flag: 0=rom pageable, 0ff=not
 
The value of the word at position 30 is 23 for version 2.01 files, and 54 for
version 3.0 files. The starred fields are the ones that constitute the version
2.01 header, and their interpretation has remained unchanged except for byte
34:
 
        Value:          Meaning in v2.01        Meaning in v3.0
        -------------------------------------------------------
        0               48k                     48k
        1               48k + If.1              48k + If.1
        2               SamRam                  48k + M.G.T.
        3               128k                    SamRam
        4               128k + If.1             128k
        5               -                       128k + If.1
        6               -                       128k + M.G.T.
 
The hi T state counter counts up modulo 4. Just after the ULA generates its
once-in-every-20-ms interrupt, it is 3, and is increased by one every 5
emulated milliseconds. In these 1/200s intervals, the low T state counter
counts down from 17472 to 0, which make a total of 69888 T states per frame.
 
The 5 ascii words (high byte always 0) at 73-82 are the keys corresponding to
the joystick directions left, right, down (!), up (!), fire respectively.
Shift, Symbol Shift, Enter and Space are denoted by [,],/,\ respectively. The
ascii values are used only to display the joystick keys; the information in
the 5 keyboard mapping words determine which key is actually pressed (and
should correspond to the ascii values). The low byte is in the range 0-7 and
determines the keyboard row. The high byte is a mask byte and determines the
column. Enter for example is stored as 0x0106 (row 6 and column 1) and 'g' as
0x1001 (row 1 and column 4).
 
Byte 60 must be zero, because the contents of the Multiface RAM is not saved
in the snapshot file. If the Multiface was paged when the snapshot was saved,
the emulated program will most probably crash when loaded back.
 
Bytes 61 and 62 are a function of the other flags, such as byte 34, 59, 60 and
83.
 
Hereafter a number of memory blocks follow, each containing the compressed
data of a 16K block. The compression is according to the old scheme, except
for the end-marker, which is now absent. The structure of a memory block is:
 
        Byte    Length  Description
        ---------------------------
        0       2       Length of data (without this 3-byte header)
        2       1       Page number of block
        3       [0]     Compressed data
 
The pages are numbered, depending on the hardware mode, in the following way:
 
        Page    In '48 mode     In '128 mode    In SamRam mode
        ------------------------------------------------------
         0      48K rom         rom (basic)     48K rom
         1      Interface I, Disciple or Plus D rom, according to setting
         2      -               rom (reset)     samram rom (basic)
         3      -               page 0          samram rom (monitor,..)
         4      8000-bfff       page 1          Normal 8000-bfff
         5      c000-ffff       page 2          Normal c000-ffff
         6      -               page 3          Shadow 8000-bfff
         7      -               page 4          Shadow c000-ffff
         8      4000-7fff       page 5          4000-7fff
         9      -               page 6          -
        10      -               page 7          -
        11      Multiface rom   Multiface rom   -
 
In 48K mode, pages 4,5 and 8 are saved. In SamRam mode, pages 4 to 8 are
saved. In '128 mode, all pages from 3 to 10 are saved. This version saves the
pages in numerical order. There is no end marker.
 
-g) .ZX82 (Speculator '97) [Taken from the Speculator documentation]-
 
Amiga Speculator has its own file format which I have called ZX82 format
because it contains a file identifier in the first four bytes consisting of
the ASCII characters "ZX82". The format has a 12 byte header which contains
the normal Spectrum type file information like length, type, start etc. as
well as a compression flag which is set if the file is byte run compressed.
Snapshot files have a further 32 bytes of register values and border colour
information. Listed below are the offset definitions taken from the Speculator
source code in case you need to write a conversion utility. All registers and
other values are in Motorola format (High, Low). I have defined everything in
bytes to avoid any possible confusion.
 
* The Standard ZX82 Header
ZX_ID           rs.l    1       Identifier for a Speculator file "ZX82"
ZX_Type         rs.b    1       0:BASIC 1:Numeric 2:String 3:Code 4:Snapshot
ZX_Comp         rs.b    1       Is data block byte run compressed ? $00=No
$FF=Yes
ZX_Length_H     rs.b    1       File length up to 64k (ELINE-PROG for BASIC)
ZX_Length_L     rs.b    1
ZX_Start_H      rs.b    1       Start address for code (AUTOSTART for BASIC)
ZX_Start_L      rs.b    1
ZX_ProgLen_H    rs.b    1       Array name (VARS-PROG for BASIC)
ZX_ProgLen_L    rs.b    1
ZX_ZXHdrLen     rs.b    0       Length of ZX file header
ZX_ZXData       rs.b    0       Start of Data block for standard ZX file
* The extended Snapshot ZX82 Header
ZX_Border       rs.b    1       Border colour
ZX_IntMode      rs.b    1       IntMode over-ride (0=use i_reg, 1=im1 and
2=im2)
ZX_Registers    rs.b    0       Z80 register values for Snapshot Files
ZX_iy_H_reg     rs.b    1       (High then Low i.e. Motorola format)
ZX_iy_L_reg     rs.b    1
ZX_ix_H_reg     rs.b    1
ZX_ix_L_reg     rs.b    1
ZX_de_H_reg     rs.b    1
ZX_de_L_reg     rs.b    1
ZX_bc_H_reg     rs.b    1
ZX_bc_L_reg     rs.b    1
ZX_hl_H_reg     rs.b    1
ZX_hl_L_reg     rs.b    1
ZX_af_H_reg     rs.b    1
ZX_af_L_reg     rs.b    1
ZX_de_H_alt     rs.b    1
ZX_de_L_alt     rs.b    1
ZX_bc_H_alt     rs.b    1
ZX_bc_L_alt     rs.b    1
ZX_hl_H_alt     rs.b    1
ZX_hl_L_alt     rs.b    1
ZX_af_H_alt     rs.b    1
ZX_af_L_alt     rs.b    1
ZX_sp_H_reg     rs.b    1
ZX_sp_L_reg     rs.b    1
ZX_if_H_reg     rs.b    1
ZX_if_L_reg     rs.b    1
ZX_rf_H_reg     rs.b    1
ZX_rf_L_reg     rs.b    1
ZX_pc_H_reg     rs.b    1
ZX_pc_L_reg     rs.b    1
ZX_SnpHdrLen    rs.b    0       Length of Snapshot file header
ZX_SnpData      rs.b    65496   Start of data block for Snapshot type
file
 
The ZX_Type field is derived from the MGT diciple directory MGT_Type-1, so
further file types may be supported in this way in the future.
 
The compression used is the standard byte run compression as used by ILBM IFF
files. The whole 48k data block is compressed as if it were one long row. See
Amiga ROM Kernel Reference Manual: Devices Third Edition, Appendix A - IFF
Specification (P347), Appendix C - Example Packer C code (P538).
 
-------------------------------------------------------------------------------
                               -=Tape formats:=-
 
-------------------------------------------------------------------------------
  .BLK    Tape format used by Sinclair v2.00; seems to be identical to Z80's
.TAP files.  
   .SPC    Tape format used by SP, the Polish emulator.  
   .TAP    Tape format used by Z80; supports headerless files and not much
else.  
   .TAP    Tape format used by Warajevo - supports lots of features;
turbo-load, headerless files, etc.  
   .TZX  New tape format to be supported by several emulators. See the ZX Tape
[http://www.uni-mb.si/~uel047r1a/ZXTape] home page.  
   .VOC    Straight sound sample of a tape; used by several emulators.  
   .ZXS    Very flexible tape format, not actually used by any emulators -
used to store real Spectrum tapes in a digital format. All come from the ZX
Spectrum Software Museum [http://zx-museum.org.ru/] .  
 
-a) .TAP and .BLK (Z80, Sinclair, several others) [from Z80 documentation]-
 
The .TAP files contain blocks of tape-saved data. All blocks start with two
bytes specifying how many bytes will follow (not counting the two length
bytes). Then raw tape data follows, including the flag and checksum bytes. The
checksum is the bitwise XOR of all bytes including the flag byte. For example,
when you execute the line SAVE "ROM" CODE 0,2 this will result:
 
             |------ Spectrum-generated data -------|       |---------|
       13 00 00 03 52 4f 4d 7x20 02 00 00 00 00 80 f1 04 00 ff f3 af a3
       ^^^^^...... first block is 19 bytes (17 bytes+flag+checksum)
             ^^... flag byte (A reg, 00 for headers, ff for data blocks)
                ^^ first byte of header, indicating a code block
       file name ..^^^^^^^^^^^^^
       header info ..............^^^^^^^^^^^^^^^^^
       checksum of header .........................^^
       length of second block ........................^^^^^
       flag byte ............................................^^
       first two bytes of rom .................................^^^^^
       checksum (checkbittoggle would be a better name!).............^^
 
Note that it is possible to join .TAP files by simply stringing them together,
for example COPY /B FILE1.TAP + FILE2.TAP ALL.TAP
 
For completeness, I'll include the structure of a tape header. A header always
consists of 17 bytes:
 
        Byte    Length  Description
        ---------------------------
        0       1       Type (0,1,2 or 3)
        1       10      Filename (padded with blanks)
        11      2       Length of data block
        13      2       Parameter 1
        15      2       Parameter 2
 
The type is 0,1,2 or 3 for a Program, Number array, Character array or Code
file. A SCREEN$ file is regarded as a Code file with start address 16384 and
length 6912 decimal. If the file is a Program file, parameter 1 holds the
autostart line number (or a number >=32768 if no LINE parameter was given) and
parameter 2 holds the start of the variable area relative to the start of the
program. If it's a Code file, parameter 1 holds the start of the code block
when saved, and parameter 2 holds 32768. For data files finally, the byte at
position 14 decimal holds the variable name.
 
-b) .TAP (Warajevo) [from Ribic Samir]-
 
Warajevo's tape files (TAP) has the format as follows:
 
At the beginning of the file there are four bytes with the pointer to the
first block. Then follow four bytes with pointer to the last block. The next
four bytes contain #FFFFFFFF. So, empty tape has a format:
 
#04 #00 #00 #00 #00 #00 #00 #00 #FF #FF #FF #FF
 
Sequence #00 #00 #00 #00 #FF #FF #FF #FF is, in fact, a EOF (end of file)
marker. Every block contains following:
 
- 4 bytes, a pointer to the previous block, which is 0 for first block;
- 4 bytes, a pointer to the next block or to the EOF marker for last block;
- 2 bytes, block size;
- 1 byte, a flag byte;
- the data bytes.
 
If the block size is 65535, it is a compressed block. It looks like:
 
- 4 bytes, a pointer to the previous block;
- 4 bytes, pointer to next block;
- 2 bytes, 65535;
- 1 byte, a flag byte;
- 2 bytes, decompressed size;
- 2 bytes, compressed size;
- 2 bytes, signature length (internal);
- the data bytes.
 
Signatures are important for the imploding algorithm used in the Warajevo
emulator. This algorithm, when decompressing, copies bytes from the source
file, or returns for a few bytes, and copies some bytes from a destination
file.
 
The explaination of compressed data bytes is rather complex. We used format
similar to those in PKLITE, but unlike PKLITE where signature bytes are mixed
with data bytes, authors divided them in two parts, for easier debugging.
 
Remember elements of Imploding (LZ77) algorythm. It depends on copying of some
byte sequences. For example:
 
3D 18 2E 42 3D 18 2E 15 42 3D 19
 
will be encoded as:
 
3D 18 2E 42  15  19
 
The archivers differs on way of encoding of this special 'Return for...' code.
 
In Warajevo compressed format, there are two parts: signatures and data. In
our example coding of signatures will be (binary):
 
00001001 010100xx
 
while data bytes will be
 
3D 18 2E 42 04 15 05 19
 
The signatures are finite automat that describe what to do with data bytes. If
the bit is 0, this is simple data byte, if the bit is 1 this is code for
returning.
 
In our example, four zeros in signatures means that four bytes can be simply
copied (3D, 18, 2E, 42) to output buffer. The next bit is 1. This means:
Return for xxxx bytes and copy yyyy.
 
The value of yyyy (size of string to be copied) is in signatures if less than
10 or in signatures and data bytes if greater of equal 10.
 
The size depends on next 2-4 signature bits:
 
 010: size=2
  00: size=3
 100: size=4
 101: size=5
 011: size>=10
1100: size=6
1101: size=7
1110: size=8
1111: size=9
 
If size is greater or equal than 10, the next data byte contains actual
size-10. That means: maximal string size is 265.
 
The next data byte determine lower byte of distance of string to be copied
(lower byte of xxxx). If size=2, higher bit is always zero (so for this size
distance can be maximally 255). If size differs from 2 the next 1-6 signature
bits determine higher byte:
 
     1: higher byte=0
  0000: higher byte=1
  0001: higher byte=2
 00100: higher byte=3
 00101: higher byte=4
 00110: higher byte=5
 00111: higher byte=6
01nnnn: higher byte=7+nnnn
 
Experiment with some ASCII text compressed. There is algorythm in Pascal for
decompressing to understand the format:
 
procedure decompress_b;
label
  lb,b0,b1,b11,b01,b10,b110,b111,b010,b00,b100,b101,b011,b1100,
  b1101,b1110,b1111,v,v0,v1,v00,v01,v000,v001,v0000,v0001,v00100,v00101,
  v00110,v00111,v0010,v0011,izlaz;
var
  b,put:byte;
  bytes,return_for,i,auxilary:word;
  finished:Boolean;
begin
  OutputBufEnd:=0;
  CurrPosInputBuffer:=SignatureSize+1;
  CurrentSignaturePosition:=0;
  CurrentSignature:=InputBuffer^[CurrentSignaturePosition];
  BitCounter:=0;
  if duzina_ul_dek=0 then finished:=true else finished:=false;
  while not finished do begin
    if nextbit=0 then begin
      TakeFromInputBuffer(b,finished);
      PutToOutputBuffer(b);
    end
     else begin
       {I know, it is  goto, but more readable than
        nested if then else sequences}
        lb: if nextbit=0 then goto b0 else goto b1;
        b0: if nextbit=0 then goto b00 else goto b01;
        b1: if nextbit=0 then goto b10 else goto b11;
        b11: if nextbit=0 then goto b110 else goto b111;
        b01: if nextbit=0 then goto b010 else goto b011;
        b10: if nextbit=0 then goto b100 else goto b101;
        b110: if nextbit=0 then goto b1100 else goto b1101;
        b111: if nextbit=0 then goto b1110 else goto b1111;
        b010: bytes:=2;
          TakeFromInputBuffer(b,finished);
          return_for:=b;
          goto izlaz;
        b00: bytes:=3;goto v;
        b100: bytes:=4;goto v;
        b101: bytes:=5;goto v;
        b011: TakeFromInputBuffer(b,finished);
          bytes:=b+10;goto v;
        b1100: bytes:=6;goto v;
        b1101: bytes:=7;goto v;
        b1110: bytes:=8;goto v;
        b1111: bytes:=9;goto v;
        v: TakeFromInputBuffer(b,finished);
        return_for:=b;
        if nextbit=0 then goto v0 else goto v1;
        v0: if nextbit=0 then goto v00 else goto v01;
        v1:goto izlaz;
        v00: if nextbit=0 then goto v000 else goto v001;
        v01: Auxsilary:=7;
          if nextbit=1 then Auxsilary:=Auxsilary+8;
          if nextbit=1 then Auxsilary:=Auxsilary+4;
          if nextbit=1 then Auxsilary:=Auxsilary+2;
          if nextbit=1 then Auxsilary:=Auxsilary+1;
          return_for:=return_for+256*Auxsilary;
          goto izlaz;
        v000: if nextbit=0 then goto v0000 else goto v0001;
        v001: if nextbit=0 then goto v0010 else goto v0011;
        v0010: if nextbit=0 then goto v00100 else goto v00101;
        v0011: if nextbit=0 then goto v00110 else goto v00111;
        v0000: return_for:=return_for+1*256;goto izlaz;
        v0001: return_for:=return_for+2*256;goto izlaz;
        v00100: return_for:=return_for+3*256;goto izlaz;
        v00101: return_for:=return_for+4*256;goto izlaz;
        v00110: return_for:=return_for+5*256;goto izlaz;
        v00111: return_for:=return_for+6*256;goto izlaz;
        izlaz:
        for i:=1 to bytes do begin
          put:=OutputBuffer^[OutputBufEnd-return_for+1];
          PutToOutputBuffer(put)
        end;
     end {else}
  end {while}
end; {decompress_b}
 
Complex? Yes it is. I spent more than 30 days in developing algorythm,
analysing of some archivers, optimizing compression speed (it is still slow,
but acceptable) , and I worked mostly on paper, because it was in hardest days
of summer 1993, without electric power, water and food (in this time I losed
1kg weekly), when only miracle saved Sarajevo of fall. In this time I had not
leave the army building, and while I waited for a new battle tasks I developed
the compression algorythm.
 
-------------------------------------------------------------------------------
                              -=Other formats:=-
 
-------------------------------------------------------------------------------
  .DAT     Data files used by level-loader versions of a game (Z80Em does not
use a .DAT extension at all; instead files are just numbered, e.g. "1" instead
of "GAME1.DAT").  
   .MDR     Microdrive cartridge file as used by Spectator, Carlo Delhez'
Speccy emulator for the QL, and other emulators - xzx and Z80.  
   .OUT     OUT logs from Z80.  
   .SCR     Screendumps from Z80 and WSpecEm.  
 
-a) .MDR (Spectator, xzx, Z80) [from Z80 documentation]-
 
The following information is adapted from Carlo's documentation. It can also
be found in the 'Spectrum Microdrive Book', by Ian Logan (co-writer of the
excellent 'Complete Spectrum ROM Disassembly').
 
A cartridge file contains 254 'sectors' of 543 bytes each, and a final byte
flag which is non-zero is the cartridge is write protected, so the total
length is 137923 bytes. On the cartridge tape, after a GAP of some time the
Interface I writes 10 zeros and 2 FF bytes (the preamble), and then a fifteen
byte header-block-with-checksum. After another GAP, it writes a preamble
again, with a 15-byte record-descriptor-with-checksum (which has a structure
very much like the header block), immediately followed by the data block of
512 bytes, and a final checksum of those 512 bytes. The preamble is used by
the Interface I hardware to synchronise, and is not explicitly used by the
software. The preamble is not saved to the microdrive file:
 
    Offset Length Name    Contents
    ------------------------------
      0      1   HDFLAG   Value 1, to indicate header block
      1      1   HDNUMB   sector number (values 254 down to 1)
      2      2            not used
      4     10   HDNAME   microdrive cartridge name (blank padded)
     14      1   HDCHK    header checksum (of first 14 bytes)
     15      1   RECFLG   - bit 0: always 0 to indicate record block
                          - bit 1: set for the EOF block
                          - bit 2: reset for a PRINT file
                          - bits 3-7: not used (value 0)
     16      1   RECNUM   data block sequence number (value starts at 0)
     17      2   RECLEN   data block length (

(Actually, this information is 'transparent' to the emulator. All it does is
store 2 times 254 blocks in the .MDR file as it is OUTed, alternatingly of
length 15 and 528 bytes. The emulator does check checksums, see below; the
other fields are dealt with by the emulated Interface I software.)

A used record block is either an EOF block (bit 1 of RECFLG is 1) or contains
512 bytes of data (RECLEN=512, i.e.  bit 1 of MSB is 1). An empty record block
has a zero in bit 1 of RECFLG and also RECLEN=0. An unusable block (as
determined by the FORMAT command) is an EOF block with RECLEN=0.

The three checksums are calculated by adding all the bytes together modulo
255; this will never produce a checksum of 255. Possibly, this is the value
that is read by the Interface I if there's no or bad data on the tape.

In normal operation, all first-fifteen-byte blocks of each header or record
block will have the right checksum. If the checksum is not right, the block
will be treated as a GAP. For instance, if you type OUT 239,0 on a normal
Spectrum with interface I, the microdrive motor starts running and the
cartridge will be erased completely in 7 seconds. CAT 1 will respond with
'microdrive not ready'. Try it on the emulator...
-b) .SCR (Z80, WSpecEm)-

These files are just Spectrum screen dumps, and are simply the 6912 bytes of
pixel and attribute data found at address 16384, stored on disk in exactly the
same way as they are stored in memory.
                                       
                                       
                                       
                                       
                          -==TECHNICAL INFORMATION==-
                                       
 
                                       
                                       
                                       
 [Z80 CPU] | [Hardware] | [Interface 1] | [Joysticks] | [The 128K Spectrums] 

-------------------------------------------------------------------------------
                                  -=Z80 CPU=-
 
-------------------------------------------------------------------------------

I had hoped to add some information from several threads on the newsgroup (Z80
emulation related facts, BIT and the flags and Z80 interrupts) but just never
got the time, and probably won't have the opportunity to do so now for several
months - if in the mean time someone wants to compile the relevant information
together so I can just paste it in, I'd be most grateful ;)
 
This section is based on the text contributed by _Gerton Lunter_, author of
the Z80 Spectrum emulator. _Marat Fayzullin_ made some changes which didn't
change the content and _Ian Collier_ has contributed some extra information
(some of which conflicts with Gerton's - further contributions welcome!).
 
Most Z80 opcodes are one byte long, not counting a possible byte or word
operand. The four opcodes CB, DD, ED and FD are shift opcodes: they change the
meaning of the opcode following them.
 
_a) CB opcodes:_
 
There are 248 different CB opcodes. The block CB 30 to CB 37 is missing from
the official list. These instructions, usually denoted by the mnemonic SLL,
Shift Left Logical, shift left the operand and make bit 0 always one. These
instructions are quite commonly used. For example, _Bounder_ and _Enduro
Racer_ use them.
 
_b) DD and FD opcodes:_
 
The DD and FD opcodes precede instructions using the IX and IY registers. If
you look at the instructions carefully, you see how they work:
 
    2A nn      LD HL,(nn)
    DD 2A nn   LD IX,(nn)
    7E         LD A,(HL)
    DD 7E d    LD A,(IX+d)
 
A DD opcode simply changes the meaning of HL in the next instruction. If a
memory byte is addressed indirectly via HL, as in the second example, a
displacement byte is added. Otherwise the instruction simply acts on IX
instead of HL (A notational awkwardness, that will only bother assembler and
disassembler writers: JP (HL) is not indirect; it should have been denoted by
JP HL). If a DD opcode precedes an instruction that doesn't use the HL
register pair at all, the instruction is executed as usual. However, if the
instruction uses the H or L register, it will now use the high or low halves
of the IX register! Example:
 
    44         LD B,H
    FD 44      LD B,IYh
 
These types of 'undocumented' instructions are used in very many programs. By
the way, many DD or FD opcodes after each other will effectively be NOPs,
doing nothing except repeatedly setting the flag "treat HL as IX" (or IY) and
taking up 4 T states (But try to let _MONS_ disassemble such a block.).
 
*From Joseph S. Myers [jsm28@hermes.cam.ac.uk] :*
 [DD and FD have no effect on ED instructions, or on EX DE,HL. If an
instruction references both (HL), and one of H and L, then (HL) becomes (IX+d)
or (IY+d), but H or L stays as it is. For example, DD6601 is LD H,(IX+01).
 
DDCB and FDCB prefix instructions in which the next byte is a displacement
byte, and the byte after that is the instruction byte. If the CB instruction
references (HL), the effect is as expected; otherwise, the instruction seems
to act on (IX+d) or (IY+d), and, if the instruction is such as to change the
value acted on (any instruction other than BIT), the new value is loaded into
the register the CB instruction would act on. Thus:
 
CB07 is RLC A; DDCB0107 is effectively RLC (IX+01) followed by LD A,(IX+01).]
 
_c) ED opcodes:_
 
There are a number of unofficial ED instructions, but none of them are very
useful. The ED opcodes in the range 00-3F and 80-FF (except for the block
instructions of course) do nothing at all but taking up 8 T states and
incrementing the R register by 2. Most of the unlisted opcodes in the range
40-7F do have an effect, however. The complete list:
 (* = not official, i.e. not listed in Zilog documentation)
 (++ = documented in Spectrum manual)
 
        ED40   IN B,(C)                 ED60   IN H,(C)
        ED41   OUT (C),B                ED61   OUT (C),H
        ED42   SBC HL,BC                ED62   SBC HL,HL
        ED43   LD (nn),BC               ED63 * LD (nn),HL    ++
        ED44   NEG                      ED64 * NEG
        ED45   RETN                     ED65 * RET
        ED46   IM 0                     ED66 * IM 0
        ED47   LD I,A                   ED67   RRD
        ED48   IN C,(C)                 ED68   IN L,(C)
        ED49   OUT (C),C                ED69   OUT (C),L
        ED4A   ADC HL,BC                ED6A   ADC HL,HL
        ED4B   LD BC,(nn)               ED6B * LD HL,(nn)    ++
        ED4C * NEG                      ED6C * NEG
        ED4D   RETI                     ED6D * RET
        ED4E * IM 0/1                   ED6E * IM 0/1
        ED4F   LD R,A                   ED6F   RLD
        ED50   IN D,(C)                 ED70 * IN (C)        ++ as IN F,(C)
        ED51   OUT (C),D                ED71 * OUT (C),0
        ED52   SBC HL,DE                ED72   SBC HL,SP
        ED53   LD (nn),DE               ED73   LD (nn),SP
        ED54 * NEG                      ED74 * NEG
        ED55 * RET                      ED75 * RET
        ED56   IM 1                     ED76 * IM 1
        ED57   LD A,I                   ED77 * NOP
        ED58   IN E,(C)                 ED78   IN A,(C)
        ED59   OUT (C),E                ED79   OUT (C),A
        ED5A   ADC HL,DE                ED7A   ADC HL,SP
        ED5B   LD DE,(nn)               ED7B   LD SP,(nn)
        ED5C * NEG                      ED7C * NEG
        ED5D * RET                      ED7D * RET
        ED5E   IM 2                     ED7E * IM 2
        ED5F   LD A,R                   ED7F * NOP
 
The ED70 instruction reads from port (C), just like the other instructions,
but throws away the result. It does change the flags in the same way as the
other IN instructions, however. The ED70 instruction *is* documented in at
least two other publications beside the original Spectrum manual - one of
which is an SGS Z80 data booklet.
 
The ED71 instruction OUTs a byte zero to port (C). In fact the instructions
INI and OUTI do almost exactly the same as the proposed action for ED70 and
ED71 as well as incrementing the registers.
 
The IM 0/1 instruction puts the processor in either IM 0 or 1 (undetermined at
this time). The SGS booklet says that there are two flip-flops which determine
the interrupt mode and are set by the IM instructions. The possible values are:
 
  00  IM 0
  01  not used
  10  IM 1
  11  IM 2
 
...so it is entirely possible that the IM 0/1 instruction sets these registers
to 01. What the Z80 does when this happens is anyone's guess.
 
_d) About the R register:_
 
This is not really an undocumented feature, although I have never seen any
thorough description of it anywhere. The R register is a counter that is
updated every instruction, where DD, FD, ED and CB are to be regarded as
separate instructions. So shifted instruction will increase R by two. There's
an interesting exception: doubly-shifted opcodes, the DDCB and FDCB ones,
increase R by two too. LDI increases R by two, LDIR increases it by 2 times
BC, as does LDDR etcetera. The sequence LD R,A/LD A,R increases A by two,
except for the highest bit: this bit of the R register is never changed. This
is because in the old days everyone used 16 Kbit chips. Inside the chip the
bits where grouped in a 128x128 matrix, needing a 7 bit refresh cycle.
Therefore ZiLOG decided to count only the lowest 7 bits. You can easily check
that the R register is really crucial to memory refresh. Assemble this program:
 
        ORG 32768
        DI
        LD B,0
    L1: XOR A
        LD R,A
        DEC HL
        LD A,H
        OR L
        JR NZ,L1
        DJNZ L1
        EI
        RET
 
It will take about three minutes to run. Look at the upper 32K of memory, for
instance the UDG graphics. It will have faded. Only the first few bytes of
each 256 byte block will still contain zeros, because they were refreshed
during the execution of the loop. The ULA took care of the refreshing of the
lower 16K (This example won't work on the emulator, of course!).
 
_e) Undocumented flags:_
 
This undocumented "feature" of Z80 has its effect on programs like _Sabre
Wulf_, _Ghosts'n Goblins_ and _Speedlock_. Bits 3 and 5 of the F register are
not used. They can contain information, as you can readily figure out by
PUSHing AF onto the stack and then POPping some it into another pair of
registers. Furthermore, sometimes their values change. I found the following
empirical rule:
 
*The values of bits 7, 5 and 3 follow the values of the corresponding bits of
the last 8 bit result of an instruction that changed the usual flags.*
 
For instance, after an ADD A,B those bits will be identical to the bits of the
A register (Bit 7 of F is the sign flag, and fits the rule exactly). An
exception is the CP x instruction (x=register, (HL) or direct argument). In
this case the bits are copied from the argument.
 
If the instruction is one that operates on a 16 bit word, the 8 bits of the
rule are the highest 8 bits of the 16 bit result - that was to be expected
since the S flag is extracted from bit 15.
 
Ghosts'n Goblins use the undocumented flag due to a programming error. The
rhino in Sabre Wulf walks backward or keeps running in little circles in a
corner, if the (in this case undocumented) behaviour of the sign flag in the
BIT instruction isn't right. I quote:
 
        AD86    DD CB 06 7E        BIT 7,(IX+6)
        AD8A    F2 8F AD           JP P,#AD8F
 
An amazing piece of code! Speedlock does so many weird things that all must be
exactly right for it to run. Finally, the '128 ROM uses the AF register to
hold the return address of a subroutine for a while.
 
_f) Interrupt flip-flops IFF1 and IFF2:_
 
There seems to be a little confusion about these. These flip flops are
simultaneously set or reset by the EI and DI instructions. IFF1 determines
whether interrupts are allowed, but its value cannot be read. The value of
IFF2 is copied to the P/V flag by LD A,I and LD A,R. When an NMI occurs, IFF1
is reset, thereby disallowing further [maskable] interrupts, but IFF2 is left
unchanged. This enables the NMI service routine to check whether the
interrupted program had enabled or disabled maskable interrupts. So, Spectrum
snapshot software can only read IFF2, but most emulators will emulate both,
and then the one that matters most is IFF1.
 
-------------------------------------------------------------------------------
                                 -=HARDWARE=-
 
-------------------------------------------------------------------------------

At the hardware level, the Spectrum is a very simple machine. There's the 16K
ROM which occupies the lowest part of the address space, and 48K of RAM which
fills up the rest. An ULA which reads the lowest 6912 bytes of RAM to display
the screen, and contains the logic for just one I/O port completes the
machine, from a software point of view at least. Every even I/O address will
address the ULA, but to avoid problems with other I/O devices only port FE
should be used. If this port is written to, bits have the following meaning:
 
        Bit   7   6   5   4   3   2   1   0
            +-------------------------------+
            |   |   |   | E | M |   Border  |
            +-------------------------------+
 
The lowest three bits specify the border color; a zero in bit 3 activates the
MIC output, and a one in bit 4 activates the EAR output (which sounds the
internal speaker). The real Spectrum also activates he MIC when the ear is
written to. The upper three bits are unused.
 
If port FE is read from, the highest eight address lines are important too. A
zero on one of these lines selects a particular half-row of five keys:
 
      IN:    Reads keys (bit 0 to bit 4 inclusive)
      #FEFE  SHIFT, Z, X, C, V            #EFFE  0, 9, 8, 7, 6
      #FDFE  A, S, D, F, G                #DFFE  P, O, I, U, Y
      #FBFE  Q, W, E, R, T                #BFFE  ENTER, L, K, J, H
      #F7FE  1, 2, 3, 4, 5                #7FFE  SPACE, SYM SHFT, M, N,
 
A zero in one of the five lowest bits means that the corresponding key is
pressed. If more than one address line is made low, the result is the logical
AND of all single inputs, so a zero in a bit means that at least one of the
appropriate keys is pressed. For example, only if each of the five lowest bits
of the result from reading from port 00FE (for instance by XOR A/IN A,(FE)) is
one, no key is pressed. A final remark about the keyboard. It is connected in
a matrix-like fashion, with 8 rows of 5 columns, as is obvious from the above
remarks. Any two keys pressed simultaneously can be uniquely decoded by
reading from the IN ports. However, if more than two keys are pressed decoding
may not be uniquely possible. For instance, if you press Caps shift, B and V,
the Spectrum will think also the Space key is pressed, and react by giving the
"Break into Program" report. Without this matrix behaviour _Zynaps_, for
instance, won't pause when you press 5,6,7,8 and 0 simultaneously.
 
Bit 6 (not 5!) (value 64) of IN-port FE is the ear input bit. When the line is
silent, its value is zero, except in the early Model 2 of the Spectrum, where
it was one. When there is a signal, this bit toggles. The Spectrum loading
software is not sensitive to the polarity of this bit (which it definitely
should not be, not only because of this model difference, but also because you
cannot be sure the tape recorder doesn't change the polarity of the signal
recorded!). Some old programs rely on the fact that bit 6 (not 5!) is always
one (for instance _Spinads_).
 
Bits 5 (not 6!) and 7 are always one. The ULA with the lower 16K of RAM, and
the processor with the upper 32K RAM and 16K ROM are working independently of
each other. The data and address buses of the Z80 and the ULA are connected by
small resistors; normally, these do effectively decouple the buses. However,
if the Z80 wants to read or write the lower 16K, the ULA halts the processor
if it is busy reading, and after it's finished lets the processor access lower
memory through the resistors. A very fast, cheap and neat design indeed!
 
*From Rui Ribeiro:*
 [If you read from a port that activates both the keyboard and a joystick port
(e.g. Kempston), the joystick takes priority. Every emulator except SpecEm,
WSpecEm and xzx get this wrong - see _Street Hawk_ and _Command4_.]
 
If you run a program in the lower 16K of RAM, or read or write in that memory,
the processor is halted sometimes. This part of memory is therefore somewhat
slower than the upper 32K block. This is also the reason that you cannot write
a sound- or save-routine in lower memory; the timing won't be exact, and the
music will sound harsh. Also, INning from port FE will halt the processor,
because the ULA has to supply the result. Therefore, INning from port FE is a
tiny bit slower on average than INning from other ports; whilst normally an IN
A,(nn) instruction would take 11 T states, it takes 12.15 T states on average
if nn=FE. See below for more exact information.
 
If the processor reads from a non-existing IN port, for instance FF, the ULA
won't stop, but nothing will put anything on the data bus. Therefore, you'll
read a mixture of FF's (idle bus), and screen and ATTR data bytes (the latter
being very scarce, by the way). This will only happen when the ULA is reading
the screen memory, about 60% of the 1/50th second time slice in which a frame
is generated. The other 40% the ULA is building the border or generating a
vertical retrace. This behaviour is actually used in some programs, for
instance, in _Arkanoid_.
 
Finally, there is an interesting bug in the ULA which also has to do with this
split bus. After each instruction fetch cycle of the processor, the processor
puts the I-R register "pair" (not the 8 bit internal Instruction Register, but
the Interrupt and R registers) on the address bus. The lowest 7 bits, the R
register, are used for memory refresh. However, the ULA gets confused if I is
in the range 64-127, because it thinks the processor wants to read from lower
16K ram very, very often. The ULA can't cope with this read-frequency, and
regularly misses a screen byte. Instead of the actual byte, the byte
previously read is used to build up the video signal. The screen seems to be
filled with 'snow'; however, the Spectrum won't crash, and program will
continue to run normally. There's one program I know of that uses this to
generate a nice effect: _Vectron_ (which has very nice music too, by the way).
 
The processor has three interrupt modes, selected by the instructions IM 0, IM
1 and IM 2. In mode 1, the processor simply executes an RST #38 instruction if
an interrupt is requested. This is the mode the Spectrum is normally in.
 
The other mode that is commonly used is IM 2. If an interrupt is requested,
egister (as the high byte) with whatever the interrupting device places on the
data bus. The subroutine at this address is then called. Rodnay Zaks in his
book "*Programming the Z80*" states that only even bytes are allowed as low
index byte, but that isn't true. The normal Spectrum contains no hardware to
place a byte on the bus, and the bus will therefore always read FF (because
the ULA also doesn't read the screen if it generates an interrupt), so the
resulting index address is 256*I+255. However, some not-so-neat hardware
devices put things on the data bus when they shouldn't, so later programs
didn't assume the low index byte was FF. These programs contain a 257 byte
table of equal bytes starting at 256*I, and the interrupt routine is placed at
an address that is a multiple of 257. A useful but not so much used trick is
to make the table contain FF's (or use the ROM for this) and put a byte 18
hex, the opcode for JR, at FFFF. The first byte of the ROM is a DI, F3 hex, so
the JR will jump to FFF4, where a long JP to the actual interrupt routine is
put.
 
In interrupt mode 0, the processor executes the instruction that the
interrupting device places on the data bus. On a standard Spectrum this will
be the byte FF, coincidentally (...) the opcode for RST #38. But for the same
reasons as above, this is not really reliable.
 
The 50 Hz interrupt is synchronized with the video signal generation by the
ULA; both the interrupt and the video signal are generated by it. Many
programs use the interrupt to synchronize with the frame cycle. Some use it to
generate fantastic effects, such as full-screen characters, full-screen
horizon (_Aquaplane_) or pixel colour (_Uridium_ for instance). Very many
modern programs use the fact that the screen is "written" (or "fired") to the
CRT in a finite time to do as much time-consuming screen calculations as
possible without causing character flickering: although the ULA has started
displaying the screen for this frame already, the electron beam will for a
moment not "pass" this or that part of the screen so it's safe to change
something there. So the exact time in the 1/50 second time-slice at which the
screen is updated is very important. Each line takes exactly 224 T states.
 
After an interrupt occurs, 64 line times pass before the byte 16384 is
displayed. At least the last 48 of these are actual border-lines. I could not
determine whether my monitor didn't display the others or whether it was in
vertical retrace, but luckily that's not really important.
 
*From Ian Collier:*
 [This is probably not quite correct. I have some exact figures, but so far I
have failed to bring them into the lab in order to program them into xz80. The
48K constants in there at the moment are wrong, but the +3 ones are correct.
On the +3 there are exactly 14368 (well, give or take 1) cycles between the
interrupt and byte 16384 being displayed, which turns out to be 63 lines and 4
cycles. On the 48K it's 14339 cycles. *I think!*]
 
Then the 192 screen+border lines are displayed, followed by about 56 border
lines again. 56.5 border lines would make up exactly 70000 T states, 1/50th of
3500000. However, I noticed that the frequency of the 50 Hz interrupt
(measured in 1/T states!) changes very slightly when my Spectrum gets hot (I
think it has something to do with the relative change of the frequencies of
the two crystals in the Spectrum), so the time between interrupts will
probably not be exactly 70000 T states. 
*From Ian Collier:*
 [This can't be true. A line contains exactly 224 cycles, and the screen
contains exactly 312 lines. If the screen didn't contain a whole number of
lines then the TV would not be able to display it correctly. This means that
there are exactly 69888 cycles in a frame. Unfortunately I have never
determined whether this means that the 50Hz clock is too quick or the 3.5MHz
clock is too slow (or neither, which would prove me wrong - note, though, that
I have written a program which depends on the correct number of cycles per
frame).]
 
Anyway, whether the final border block is of fixed or variable length doesn't
concern us either, the timings of the start and end of the screen, which are
the timings of real interest, are fixed.
 
Now for the timings of each line itself. I define a screen line to start with
256 screen pixels, then border, then horizontal retrace, and then border
again. All this takes 224 T states. Every half T state a pixel is written to
the CRT, so if the ULA is reading bytes it does so each 4 T states (and then
it reads two: a screen and an ATTR byte). The border is 48 pixels wide at each
side. A video screen line is therefore timed as follows: 128 T states of
screen, 24 T states of right border, 48 T states of horizontal retrace and 24
T states of left border.
 
When an interrupt occurs, the running instruction has to be completed first.
So the start of the interrupt is fixed relatively to the start of the frame up
to the length of the last instruction in T states. If the processor was
executing a HALT (which, according to the Z80 books I read, is effectively
many NOPs), the interrupt routine starts at most 3 T states away from the
start of the frame. Of course the processor also needs some T states to store
the program counter on the stack, read the interrupt vector and jump to the
routine. In interrupt modes 0, 0/1 and 1 the total time taken to get to
address 56 is 13 cycles. In interrupt mode 2 the time taken to get to the
interrupt routine is 19 cycles. Interpreted as follows:
 
  5 cycles: a read of the data bus (in IM 1 this is thrown away)
  6 cycles: a read of the 2-byte interrupt vector IM 2 only)
  8 cycles: to push the current PC and set the new one.
 
When an NMI occurs, the total time taken to get to address 102 is 15 cycles.
This is the same as for an ordinary interrupt but with two extra cycles
(reason unknown).
 
Now when to OUT to the border to change it at the place you want? First of
all, you cannot change the border within a "byte", an 8-pixel chunk. If we
forget about the screen for a moment, if you OUT to port FE after 14326 to
14329 T states (including the OUT) from the start of the IM 2 interrupt
routine, the border will change at exactly the position of byte 16384 of the
screen. The other positions can be computed by remembering that 8 pixels take
4 T states, and a line takes 224 T states. You would think that OUTing after
14322 to 14325 T states, the border would change at 8 pixels left of the upper
left corner of the screen. This is right for 14322, 14323 and 14324 T states,
but if you wait 14325 T states the ULA happens to be reading byte 16384 (or
22528, or both) and will halt the processor for a while, thereby making you
miss the 8 pixels. This exception happens again after 224 T states, and again
after 448, an so forth. These 192 exceptions left of the actual screen
rectangle are the only ones; similar things don't happen at the right edge
because the ULA don't need to read things there - it has just finished! As
noted above, reading or writing in low ram (or OUTing to the ULA) causes the
ULA to halt the processor. When and how much? The processor is halted each
time you want to access the ULA or low memory and the ULA is busy reading. Of
the 312.5 'lines' the ULA generates, only 192 contain actual screen pixels,
and the ULA will only read bytes during 128 of the 224 T states of each screen
line. But if it does, the processor is halted for exactly 4 T states.
 
-------------------------------------------------------------------------------
                                -=INTERFACE 1=-
 
-------------------------------------------------------------------------------

The Interface I is quite complicated. It uses three different I/O ports, and
contains logic to page and unpage an 8K ROM if new commands are used. The ROM
is paged if the processor executes the instruction at ROM address 0008 or 1708
hexadecimal, the error and close# routines. It is inactivated when the Z80
executes the RET at address 0700.
 
_a) Port E7:_
 
I/O port E7 is used to send or receive data to and from the microdrive.
Accessing this port will halt the Z80 until the Interface I has collected 8
bits from the microdrive head; therefore, it the microdrive motor isn't
running, or there is no formatted cartridge in the microdrive, the Spectrum
hangs. This is the famous 'IN 0 crash'.
 
_b) Port EF:_
 
       Bit    7   6    5    4    3    2    1     0
            +---------------------------------------+
        READ|   |   |    |busy| dtr |gap| sync|write|
            |   |   |    |    |     |   |     |prot.|
            |---+---+----+----+-----+---+-----+-----|
       WRITE|   |   |wait| cts|erase|r/w|comms|comms|
            |   |   |    |    |     |   | clk | data|
            +---------------------------------------+
 
Bits DTR and CTS are used by the RS232 interface. The WAIT bit is used by the
Network to synchronise, GAP, SYNC, WR_PROT, ERASE, R/_W, COMMS CLK and COMMS
DATA are used by the microdrive system. If the microdrive is not being used,
the COMMS DATA output selects the function of bit 0 of out-port F7:
 
       Bit      7    6   5   4   3   2   1       0
            +------------------------------------------+
        READ|txdata|   |   |   |   |   |   |    net    |
            |      |   |   |   |   |   |   |   input   |
            |------+---+---+---+---+---+---+-----------|
       WRITE|      |   |   |   |   |   |   |net output/|
            |      |   |   |   |   |   |   |   rxdata  |
            +------------------------------------------+
 
TXDATA and RXDATA are the input and output of the RS232 port. COMMS DATA
determines whether bit 0 of F7 is output for the RS232 or the network.
 
-------------------------------------------------------------------------------
                                 -=JOYSTICKS=-
 
-------------------------------------------------------------------------------

[*From Alvin Albrecht [albrecht@freenet.calgary.ab.ca] :*] The ports assigned
to joysticks are:
 
#7F    Fuller Box  (FxxxRLDU, active low)
#1F    Kempston    (000FUDLR, active high)
#EFFE  Sinclair1   (000LRDUF, active low, corresponds to keys '6' to '0')
#F7FE  Sinclair2   (000FUDRL, active low, corresponds to keys '1' to '5')
 
TS2068 (joysticks attached to R14 of sound chip):
 
  LD A,7
  OUT (#F5),A   ;set R7
  IN A,(#F6)
  AND #BF       ;clear bit 6 to read from i/o port a - R14
  OUT (#F6),A
  LD A,14
  OUT (#F5),A   ;set R14
  LD A,3        ;(3=both joysticks, 2=left only, 1=right only)
  IN A,(#F6)    ;(FxxxRLDU, active low)
 
This method ensures other sound chip functions aren't messed with.
 
-------------------------------------------------------------------------------
                            -=THE 128K SPECTRUMS=-
 
-------------------------------------------------------------------------------

_a) Memory_
 
When memory is being paged, interrupts should be disabled and the stack should
be in an area which is not going to change. If normal interrupt code is to
run, then the system variable at 5B5Ch (23388) must be kept updated with the
last value sent to port 7FFDh. It is not possible to read this port.
 
On the 128 and +2, memory is entirely controlled by port 7FFDh. The byte to
output will be interpreted thus:
 
Bits 0-2: RAM page (0-7) to map into memory at 0C000h
Bit  3:   Select normal (0) or shadow (1) screen. The normal screen is in bank
          5 and normally appears at 4000h; the shadow screen is in bank 7 and
          can be switched in at 0C000h
Bit  4:   ROM select. ROM 0 is the 128k editor and menu system; ROM 1 contains
          48k BASIC.
Bit  5:   If set, memory paging will be disabled and further output to this
          port will be ignored until the computer is reset.
 
The memory map of these computers is:
 
FFFFh +--------+--------+--------+--------+--------+--------+--------+--------+
      | Bank 0 | Bank 1 | Bank 2 | Bank 3 | Bank 4 | Bank 5 | Bank 6 | Bank 7 |
      |        |        |(also at|        |        |(also at|        |        |
      |        |        | 8000h) |        |        | 4000h) |        |        |
      |        |        |        |        |        | screen |        | screen |
C000h +--------+--------+--------+--------+--------+--------+--------+--------+
      | Bank 2 |        Any one of these pages may be switched in.
      |        |
      |        |
      |        |
8000h +--------+
      | Bank 5 |
      |        |
      |        |
      | screen |
4000h +--------+--------+
      | ROM 0  | ROM 1  | Either ROM may be switched in.
      |        |        |
      |        |        |
      |        |        |
0000h +--------+--------+
 
Memory banks 4-7 are contended, i.e. the processor shares them with the ULA.
This reduces the speed of memory access in these banks.
 
-=PAGING ON THE +2A AND +3=-
 
[*From Erik Kunze [Erik.Kunze@philosys.de] :*]
 
The basic principle is the same. However, the +2A and +3 have four ROMs rather
than two, and certain extra memory configurations.
 
Port 7FFDh behaves in the same way as before, except that bit 4 is now the low
bit of the ROM selection. The extra features are controlled by port 1FFDh.
This port is also write-only, and its last value should be saved at 5B67h
(23399).
 
Port 1FFDh responds thus:
 
  Bit 0: Paging mode. 0=normal, 1=special
  Bit 1: In normal mode, ignored.
  Bit 2: In normal mode, high bit of ROM selection. The four ROMs are:
          ROM 0: 128k editor, menu system and self-test program
          ROM 1: 128k syntax checker
          ROM 2: +3DOS
 	  ROM 3: 48 BASIC
  Bit 3: Disk motor; 1=on, 0=off
  Bit 4: Printer port strobe.
 
When special mode is selected, the memory map changes to one of four
configurations specified in bits 1 and 2 of port 1FFDh:
 
       Bit 2 =0    Bit 2 =0    Bit 2 =1    Bit 2 =1
       Bit 1 =0    Bit 1 =1    Bit 1 =0    Bit 1 =1
 FFFFh+--------+  +--------+  +--------+  +--------+
      | Bank 3 |  | Bank 7 |  | Bank 3 |  | Bank 3 |
      |        |  |        |  |        |  |        |
      |        |  |        |  |        |  |        |
      |        |  | screen |  |        |  |        |
 C000h+--------+  +--------+  +--------+  +--------+
      | Bank 2 |  | Bank 6 |  | Bank 6 |  | Bank 6 |
      |        |  |        |  |        |  |        |
      |        |  |        |  |        |  |        |
      |        |  |        |  |        |  |        |
 8000h+--------+  +--------+  +--------+  +--------+
      | Bank 1 |  | Bank 5 |  | Bank 5 |  | Bank 7 |
      |        |  |        |  |        |  |        |
      |        |  |        |  |        |  |        |
      |        |  | screen |  | screen |  | screen |
 4000h+--------+  +--------+  +--------+  +--------+
      | Bank 0 |  | Bank 4 |  | Bank 4 |  | Bank 4 |
      |        |  |        |  |        |  |        |
      |        |  |        |  |        |  |        |
      |        |  |        |  |        |  |        |
 0000h+--------+  +--------+  +--------+  +--------+
 
An example of a typical bank switch on the 128 is:
 
     LD      A,(5B5Ch)       ;Previous value of port
     AND     0F8h
     OR      4               ;Select bank 4
     LD      BC,7FFDh
     DI
     LD      (5B5Ch),A
     OUT     (C),A
     EI
 
The principle is the same for all bank switching; only change the bits you
need to.
 
On the 128 and +2, Banks 1,3,4,6 and most of 7 are used for the silicon disc;
the rest of 7 contains editor scratchpads. On the +2A and +3, Banks 1,3,4 and
6 are used for the disc cache and RAMdisc, while Bank 7 contains editor
scratchpads and +3DOS workspace.
 
_b) Keypad_
 
The 128K machine's keypad extra editing facilities are also available via the
normal keyboard:
 
                 FUNCTION                        KEYS
                 -----------------------------------------
                 Beginning of next word          [E] [S] J
                 Beginning of previous word      [E] I
                 Up ten lines                    [E] P
                 Down ten lines                  [S] I
                 Start of line                   [E] [S] 2
                 End of line                     [E] M
                 First line                      [E] N
                 Last line                       [E] T
                 Screen                          [E] [S] 8
                 Delete this character           [E] [S] K
                 Delete word left                [E] E
                 Delete word right               [E] W
                 Delete to start of line         [E] K
                 Delete to end of line           [E] J
                 [E] = Extended Mode
                 [S] = Symbol Shift
 
_c) Sound Chip_
 
The AY-3-8912 sound chip is a widely used one, to be found in the MSX,
Vectrex, Amstrad CPC range, etc. It is controlled by two I/O ports:
 
OUT (0FFFDh)   - Select a register 0-14
IN  (0FFFDh)   - Read the value of the selected register
OUT (0BFFDH)   - Write to the selected register
 
There's a guide to how to use the registers at this site
[http://andercheran.aiind.upv.es/~amstrad/CPC_Guide/Hardware_Programming/Chips/
psg.html] - this is for the CPC, so the I/O commands used will be different,
and on the Spectrum register 14 is used for the serial ports rather than the
keyboard as on the CPC.
 
_d) Fuller Box AY ports_
 
(A Fuller Box being basically the Speccy 128's AY sound chip in a box...)
 
[*From Alvin Albrecht [albrecht@freenet.calgary.ab.ca] :*] The ports assigned
to the Fuller Box are:
 
#3F      AY register
#5F      AY data
#7F      joystick (byte read=FxxxRLDU, active low)
 
_e) TS2068 AY ports_
 
(The TS2068 is one of the Spectrum clones and also had an AY chip).
 
[*From Alvin Albrecht [albrecht@freenet.calgary.ab.ca] :*] TS2068 AY ports are:
 
#F5    AY register
#F6    AY data
 
For a more complete list of TS2068 ports, see the TS2068 ROMs file (to be
found on NVG).
 
Typically, the AY chip is written to inside 128K games using:
 
LD BC,#FFFD      01 FD FF
OUT (C),D        ED 51
LD B,#BF         06 BF
OUT (C),E        ED 59
 
To convert to a ts2068 poke a few values as follows:
 
LD BC,#FFF5      01  F5* FF
OUT (C),D        ED  51
LD C,#F6         0E* F6*
OUT (C),E        ED 59
 
If you've got a Fuller box, you can do the same mod, replacing F5 with 3F and
F6 with 5F.
 
_f) Disk Drive_
 
[*From Damien Guard [damien.guard@nrgi.com] :*]
 
Another useful bit of information is that it is possible to add an Amiga 3.5"
drive to a Spectrum +3 by Simply wiring the pins by name and providing it with
some external power source (or in my case using an Amiga PSU with increased
amp's to power the entire +3 and external drive in one go). There is a public
domain formatter around to format it to 720k - this is quite useful as 3"
disks are now a rarity and were never that reliable.
 
The added advantage is that PC users equipped with a copy of Sybex's shareware
package 22Disk can read these files into a PC too.

                                       
                                       
                                       
                                 -==PINOUTS==-
                                       
 
                                       
                                       
-=1. ULA pinout=-
 
He *multiplexed* address-lines.
 
/WR   2    39 Q          One of the +5V is decoupled through a RC-low-pass.
/RD   3    38 /MREQ      U,V are the color-difference signals.
/WE   4    37 A15        /Y is the inverted video including sync.
A0    5    36 A14        D are the data-lines, decoupled from the CPU by
A1    6    35 /RAS       resistors.
A2    7    34 /ROM CS    T are the data-lines to the keyboard (address-lines
A3    8    33 /IO-ULA    through diodes).
A4    9    32 CLOCK      SOUND is the analog-I/O-line for beep, save and load.
A5   10    31 D7         CLK is the clock-source to the CPU including the
A6   11    30 D6         inhibited T-states.
/INT 12    29 D5         IO-ULA is (A0(CPU) OR /IORQ) for the I/O-port FEh
+5V  13    28 SOUND      Q is the 14MHz-crystal, other side grounded through
+5V  14    27 D4         a capacitor
U    15    26 T4
V    16    25 D3
/Y   17    24 T3
D0   18    23 T2
T0   19    22 D2
T1   20    21 D1
 
-=2. AY-3-8912=-
 
SOUND C   1    28  D0       Vcc is +5V.
PORT      2    27  D1       SOUND A, B and C can be tied together.
Vcc       3    26  D2       CLOCK can be some MHz.
SOUND B   4    25  D3
SOUND A   5    24  D4
GND       6    23  D5
PORT      7    22  D6
PORT      8    21  D7
PORT      9    20  BC1
PORT     10    19  BC2
PORT     11    18  BDIR
PORT     12    17  A8
PORT     13    16  RESET
CLOCK    14    15  CLOCK
 
-=3. Keyboard layout=-
 
  OUTER SIDE   A 15 14 8  13 12 9  10 11  INNER SIDE
             D
             0   BR EN CS P  0  A  Q  1
             1   SS L  Z  O  9  S  W  2
             2   M  K  X  I  8  D  E  3
             3   N  J  C  U  7  F  R  4
             4   B  H  V  Y  6  G  T  5
  INNER SIDE
  [BR] BREAK   [EN] ENTER   [CS] CAPS SHIFT   [SS] SYMBOL SHIFT
 
In real the matrix connections are in one row on the top side of the membrane.
 
-Replacing keyboard membranes on the Spectrum, Spectrum + and Spectrum 128-
 
[Thanks to Brian Gaff [briang@bgserv.demon.co.uk] for this information]
 
First find your good membrane! This seems to be the impossible part! If you
have a black 128K machine, this uses the same membrane as the Spectrum +.
 
Firstly, remove all the screws in the bottom of the case. On the rubber keyed
model, two of these may be under the front feet. Also note that the screw at
the rear in the centre is different to the others in some cases. Turn the
computer the right way up and gently lift the top of the case. You should see
two flat cables linking the keyboard to the PCB.
 
Carefully pull these upward without twisting them. They usually pull out
easily. Grasp them as near the PCB sockets end as you can. They also tear
easily, so try not to leave any bits behind in the sockets. On the Spectrum +
and 128, remove the keyboard and take note of how the rear sprung feet are
assembled. Murphy's law dictates that these are bound to fall out as you
re-assemble the case later!
 
Back to the rubber keyboard now, and there were two versions of these. Look
beneath the keyboard. If there are any small metal lugs at the outside edges,
gently prize them upwards. This may allow the top metal plate to be removed.
However, the majority of Spectrums relied on good old glue to secure the top
plate, and getting these apart can be a slow job if you wish to avoid bending
the plate.
 
The best way is to slowly pull it off. Try not to kink it though. Once this is
free, there is a rubber mat and then the membrane. This part is easy. Just
replace the membrane, making sure it is the correct way round with the flat
cables poking through the slots as before. If there is not enough sticky left
to hold the metal plate, then contact adhesive or double sided tape work well.
Try not to get any of the adhesive on the membrane or rubber mat though.
 
The Spectrum + calls for slightly more labour to do the job. Turn the keyboard
upside down and remove all the screws in the backing plate. Also remove the
two clamps at the rear where the flat cables run. Once this is done, the
backing plate can be removed, leaving the membrane exposed. This is a more
complex beast than the rubber keyed one. Replace it with your new one, making
sure it is located on the spigots correctly, and replace the backing plate and
screws. These do not need to be too tight.
 
Care must be taken to get the flat cables laying straight through the clamps.
Try to do the screws up a little at a time evenly. Do not over tighten them
though. As a matter of interest, these clamps are used to make connections
between various layers of the membrane, so any mis alignment could cause
strange keyboard faults! [*I'd go along with that alright - I threw away a
perfectly good membrane when all that was wrong was that one of the clamps
hadn't been tightened enough. - Damien*]
 
All that remains is to carefully replace the ends of the flat cables into
their sockets. Again, try not to buckle them, as they are fragile. Once this
is done, lay the keyboard on the machine and test it. Test ALL the keys and
combinations. If all is well, then the screws can be replaced. If it isn't,
check that the cables are in the connectors properly, and that there is no
debris in there from the old cables. On the + and 128, suspect the clamps
first! Simply loosen them and realign the cables. Remember when replacing any
screws, that they are only screwing into plastic, and you only have to over
tighten them once, and the pillar they screw into could either crack or just
end up with a large hole in it!
 
[If the ends of the membrane cables where they attach to the PCB have been
cracked, you can get away with cutting them off past the cracked point and
inserting the cable back in the slots. There is not much slack in the cables
though, so you may find this tricky if the split is any more than around a
centimeter away from the socket - Damien].
 
-=4. 128K Spectrum Composite Video=-
 
[Thanks to Henning Bog [henning@execulink.com] for this information]
 
Pin 1 is composite PAL, 2 is GND. There's no audio on any pin of the RGB
connector.
 
The picture is a bit dull unless your TV's video input is High Z (high
impedance) However, that's quite unlikely. Normally the impedance of the video
input is around 75 Ohms. To alleviate this problem, short the 68 Ohms resistor
inside the Speccy that's in series with pin 1 (follow the track on the PCB).
Or you can hook it directly to the input of the RF modulator.
 
The audio can be taken from the Mic socket but a better balance between 48K
and 128K sound is obtained directly from pin 5 of IC38.
 
-=5. 128K Spectrum RGB=-
 [From the 128K Spectrum Manual
[http://www.jetman.demon.co.uk/speccy/128manua/index.html] , which has a nice
graphical version
[http://www.jetman.demon.co.uk/speccy/128manua/sp128p03.html] of this pinout
if you prefer that. I'm trying to keep the FAQ itself to being more or less
text-only.] 
        RGB              Pin  Signal              Level
                         -------------------------------------------------
   --7--   --6--         1    Composite PAL       75 Ohms, 1.2 Volts pk-pk
         |               2    0 Volts DC
    3--  8  --1          3    Bright output       TTL
  --     |     --        4    Composite sync      TTL
      /     \            5    Vertical sync       TTL
     5   |   4           6    Green               TTL
    /    2    \          7    Red                 TTL
         |               8    Blue                TTL

                                       
                                       
                                       
                            -==ACKNOWLEDGEMENTS==-
                                       
 
                                       
                                       

Thanks to:
   _Alvin R. Albrecht_    for info on TC2048 and TS/TC2068.  
   _Richard Carlsson_    for info on his Speccylator emulator for the Amiga.  
   _Paulo Sergio Coelho_    for info on TC2048 and TS/TC2068.  
   _Ian Collier_    xz80 emulator, advice, Z80 information and more...  
   _Krzysztof Czysciak_    information about Elwro emulator.  
   _John Elliott_    information about 128K machines.  
   _Marat Fayzullin_    for creating FAQ versions before 2.7!  
   _Brian Gaff_    for keyboard repair info and moderation services ;)  
   _Eduardo Gallego_    for some BBS numbers in Spain.  
   _Arnt Gulbrandsen_    for keeping Spectrum WWW page, FTP archive and
multiple contributions to this file. Also, for his IBM PC-based JPP emulator.
Your WWW page *is* cool, Arnt. ;)  
   _Simos Hadjiyiannis_    for several FTP addresses I didn't have.  
   _Martijn van der Heide_    for his database program and Jeroen Kwast's new
email address.  
   _Des Herriott_    for his xzx emulator, which is the first and the only way
to play _LodeRunner_ on a Unix workstation! :) ignoring the unix version of
course - eh Ian?)  
   _Adam Hodson_    information about emulators for the Amiga.  
   _A.G.Jackson_    information about emulators for Acorn Archimedes.  
   _Bob Johnson_    information about TS2068 and TK90X.  
   _Phillip Kendall_    for several updates.  
   _Erik Kunze_    for continuing updates to info about his xzx v2 emulator;
the only emulator author who regularly sends me a correctly laid out piece of
HTML I can just paste straight into the appropriate part of the FAQ... if only
they all did... .  
   _Gerton Lunter_    for the excellent information about ZX-Spectrum
internals and Z80 emulator for IBM PC.  
   _Peter McGavin_    for some useful information and (of course =:)) his
excellent Spectrum emulator which actually *multitasks* under AmigaDOS and is
system-friendlier than many other programs.  
   _Miguel Melo_    information about several programmers.  
   _Szeredi Miklos_    for information about his SpectEmu emulator.  
   _Alexander Mudretsov_    information about the SP105 emulator.  
   _Joseph S. Myers_    information on undocumented Z80 behaviour.  
   _Troels Norgaard_    information about KGB.  
   _Emil Obermayr_    for pinouts of ULA, AY-3-8912 and keyboard layout.  
   _Hansjoerg Oppermann    for information about Speccy.  
   _Antonio Ortiz_    for sending me the C64 and MSX II based Spectrum
emulators and other information.  
   _Kirill Panyushkin    for translating some Russian emulator documentation
and making a very good job it too!  
   _Andrew Pollard    for information about JASPER.  
   _Boudewijn Rempt_    compilation of postings for WHERE IS...?  
   _Rui Ribeiro_    for several contributions to TECHNICAL INFORMATION, and
WSpecem.  
   _Jon Ritman_    information about himself!  
   _Adam Roach_    maintainer of comp.emulators.misc FAQ; information about
the Speccy BASIC emulator for the C64.  
   _Thorsten Roskowetz_    information about Atari-based emulator.  
   _Ribic Samir_    (co-author of Warajevo) for numerous updates to the
emulators section of the FAQ, benchmark info and Warajevo's TAP file format
description.  
   _Marcelo Strasunas_    information about TK90X and TK95.  
   _Stephen Smith_    information about several programmers and his great
games FAQ and database web pages.  
 
... and everybody else who has contributed to the FAQ, manages FTP archives,
writes Speccy emulators and generally helps to keep the Speccy alive!
