--===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 ? 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 ?_ 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 ?_ 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!