AsP (Amiga Spectrum Emulator) v0.78

Programmed by: Ian Greenway

Distribution: Freeware

Available from: http://www.greew.freeserve.co.uk

Main Requirements:

68020 with MMU (Memory Management Unit)
2 megabytes of free RAM Workbench/Kickstart 3 +
MMU Library v42 (download it from Ian's AsP home page:
http://www.greew.freeserve.co.uk)

XFD Package (by Georg Hörmann & Dirk Stöcker) Available from Aminet.
Required for loading packed Spectrum programs.

For optimum performance 68040, 33Mhz (or better) with MMU, 32 bit fast-ram.

Spectrum ROMS 48K, 128K, +2 (available from Ian's home page: http://www.greew.freeserve.co.uk). These are freely distributable, but are © Copyright of Amstrad.

Reviewed By: Craig 'Hercules' Daines (Technical Editor For THE CRYPT.

Ahhh, the days of good old 8 bit computing. I remember my Spectrum days very well indeed. It was the era of Sinclair User, Your Spectrum (later released as Your Sinclair), the Program Pitstop section in Your Sinclair Magazine (where readers submitted their programs each month) and Crash magazine and not forgetting of course Marshall Cavendish's classic 'Input' series of magazines which provided a fascinating insight on writing your own programs in Basic and Z80 assembler. Those were the days when you could buy a good Speccy game for a meagre £1.99 and still have some pocket money left. Unlike today where games software costs the earth. In the 8 bit days of home computing, programmers had little available memory to write new games, which is why a lot of thought was put into the playability of the games (unlike today where it's all polygon 3D. They were the days of Tim Follin, David Whittaker and Ben Daglish who wrote most of the music for computer games during that era....

Some of you may fondly remember the humble ZX Spectrum. The Sinclair ZX Spectrum was devised by Sir Clive Sinclair at Sinclair Research back in their radio days. Sinclair revolutionised the 8 bit computing era by releasing probably one of the first home computers, the ZX80, which was shortly followed by the ZX81. Both machines featured a monochrome black and white display and a puny 1 KB of RAM, but the ZX81 could be expanded to a whopping 16KB via a RAM pack.

Later, Sinclair released the appraised ZX Spectrum 16KB, ZX Spectrum 48K. Both models complete with a horrid rubber keyboard but with new improved graphics, a full sixteen colour palette, a revised BASIC and one channel beepy music. The rubber keyboard issue was latter addressed when the 48K+ was released (which was virtually identical to the keyboard of the Sinclair QL). At long last a Spectrum with a decent keyboard ! Contrary to belief, Sinclair were serious about using their new Sinclair QL as a business machine.

Many people say the Amiga was the first computer to offer multi-tasking. WRONG! Sinclair were the first to produce a multi-tasking computer with their release of the Sinclair QL, but Commodore perfected the concept of a multi-tasking OS when the Amiga was introduced and exec was born thanks to Carl Sassenrath at Commodore responsible for writing AmigaOS. So now you know !

Sadly, the last Spectrum to be released by Sinclair was the Spectrum 128K. This featured a full 128K of memory, a new 128K Basic, a new ROM, a 3 channel AY38912 sound microprocessor offering 3 channel sound (nice although not quite as flexible as Commodore's custom 6581 Sid chip microprocessor).

The Spectrum 128K used to get so hot in use, that Sinclair decided upon fitting an external heat-sink to dissipate access heat (quite nice, since on those cold winter day's you could warm your hands up, or alternatively, fry eggs and bacon on it.

Later, Alan Sugar at Amstrad bought the rights to the Sinclair range of computers and came along to save the day: a Spectrum 128K+2 was released. This was identical to Sinclair's 128K model, but with a built-in cassette deck and new ROM.

Despite all these new Spectrum models, Spectrum users longed to move away from the cassette tape. Third party manufacture's released mini tape streamer's called 'wafer drives' and Miles Gordon Technology (also producers of the Sam Coupe computer noticed this niche in the market and later released the disciple Plus D. At around £150 the disciple Plus D certainly wasn't cheap.

Amstrad later complied with an 'official' Spectrum COMPLETE with built in disk drive: the Spectrum +3. Amstrad's only pitfall was due to the fact they choose the silly idea of a 3" disk drive using their own brand of 3" crapy disks (which were expensive at £6-7 per disk !). The Spectrum +3 sold fairly well, but then the 8 bit age of computing fazed out with arrival of the 16 bit ST and Amiga ranges the rest is history...

Today, many people want to relive those golden days of computing, which is why numerous Spectrum emulators have been produced for a variety of different platforms and OS.

Many Spectrum emulators have been developed for the Amiga: probably one of the first was the old KGB Spectrum emulator. Originally programmed way back in 1990 by an unknown Russian (?) author, it was designed to run on an old A500 under Kickstart 1.3, and hence was painfully slow and bug ridden.

Later Spectrum emulators appeared: Thanks to the A1200/A4000 Amiga's, it was possible for developers to code new and fast Spectrum emulators to run on the Amiga's new 32 bit hardware. One of my all time favourite emulators was ZXAM. Originally programmed by Antonio J. Pomar Roselló, it was probably one of the first Spectrum emulators which offered full emulated 128K sound of the AY38912 sound microprocessor.

ZXAM still lacked one thing though: it didn't offer 128K emulation. Antonio had plans to work on a 128K version, but due to lack of shareware registrations, Antonio, stopped development of ZXAM, and then things went into a kind of limbo - Still no ZX Spectrum emulator had been released for the Amiga which was able to produce FULL 128K emulation at sufficient speed on low powered 32-bit hardware. As for Antonio, to this very day, he still refuses to give up the source code for ZXAM... A great irony, since ZXAM was starting to look really promising !

Then Ian Greenway appears. Ian spent three years developing ASP (Amiga Spectrum Emulator) which accurately emulates a stock 48K, 128K or 128K+2 Spectrum. As any programmer will tell you, programming any software based emulator is no easy feat, especially on the Amiga's low powered 32 bit hardware and a certain degree of resourcefulness needs to be taken into account to ensure the emulation core is as fast as possible and accurate to the Zilog's Z80 microprocessor (as included in a 'real' Spectrum). Another key factor is a Spectrum emulator on the Amiga requires for the emulator itself to transcribe Z80 instructions into 68k instructions 'on the fly'.

There are other difficulties too when writing a fully-fledged Spectrum 128K emulator: The first is emulating the AY38912 sound processor which was included in Spectrum 128K models. (The AY38912 was a highly popular choice in the old 8 bit days of micro-computing: both the Atari ST and Spectrum models used it for three channel sound).

Secondly, the original 128K Spectrum models were able to switch 'banks' of RAM and ROM in different address areas in memory. Copying the chunks of data around under emulation isn't without it's problems, and would slow things down considerably. AsP overcomes this with ease via Thomas 'Thor' Richter's MuMin distribution which allows programmers to do all sorts of wonderful things with your MMU via a shared library (mmu.library). Ian's emulator uses this to good effect with dealing with all the horsework of page switching the Spectrum's ROM and RAM banks into different areas in memory (as with a real 128K Spectrum) . Speed-wize AsP offers fast emulation, and is coded in 100% assembler and compiled with DevPac.

AsP accomplishes all of this very well indeed, and demonstrates the resourcefulness of Amiga developers. Try any x86 based Spectrum emulator on a PeeCee and you would need a higher Specification to obtain a good emulation speed (probably due to excessive bloat of Windows and the awful x86 instruction set)

AsP relies upon a simple Gadtools interface which is small, simple and easy to use. The rest of AsP's options are selectable via pull down menu's.

What's interesting is Ian has also worked on support for graphics card users. In fact, I found running my Spectrum games via a Cybergraphics v3 screen was considerably faster than AGA. If you find playing your Spectrum games on an AGA screen is painfully slow, you can use the BlazeWCP patch (available from Aminet) which helps to speed things up considerably.

If you really want to show off Spectrum emulation at it's best, you can even play all your old Spectrum games in a window on the Workbench screen. You'll need a fairly fast machine for this though, and enough free pens. If your Amiga's not overly fast, there's a 'frame skip' function which 'skips' subsequent frames. 128K sound can be also adjusted down to low quality or you can turn it off if need be.

AsP is fully OS compliant and opens on it's own screen. When first writing AsP, Ian envisaged a non-multi-tasking emulator for supporting the loading of tape-based turboloaders such as the early Speedlock 1 (as written by David Aubrey Jones and first used on the game 'Ghostbusters'), Speedlock 2, 3, Alcatraz & Firebird loaders amongst others. Since CPU timings are critical if turboloader support was implemented, as a result, Ian wouldn't of been able to provide a multi-tasking emulator. Ian's made the right choice in my view with producing a multi-tasking emulator anyway. Note: You could always use a multiface cartridge on a 'real' Spectrum to save out a turboloader at normal speed and then load it from a data cassette recorder into Peter McGavin's 'Spectrum Emulator' with an 8 bit stereo sampling cartridge anyway...

Joysticks are supported as well! AsP happily emulates the original Kempston, Sinclair Interface 2, Cursor joystick and also custom keys may be defined to simulate a joystick. There are some problems with regard to Kempston Joystick emulation with some games, so a Kempston 'Smart' Joystick option has been implemented. Directory Opus users aren't left out either. I suggested to Ian a number of ideas and as a result he has implemented a filetype for Opus fans.

I've tested A LOT of Spectrum software from Epic's Speecy '97 CD-ROM with AsP. The only game which seems to have problems seems to be Ocean's 'Where Time Stood Still'. Ian informs me the game is somewhat processor intensive. Hopefully once he begins work on the dynamic JIT emulation core, I can finally look forward to playing this game for the first time in over 10 years (I always use to laugh when Fat Clive used to get stuck in the hole of the bridge). Laughs out Loud!

By default, AsP open's an ARexx port called 'AsP_0'. If you run multiple versions of AsP simultaneously another Arexx port is opened called 'AsP_1'. ARexx scripts are included for loading and saving Spectrum screen images (commonly referred to as SCREEN$: These start at address 16384 and have a total length of 6912 bytes. Datatypes are available from Aminet for reading these on the Amiga, so any saved Spectrum 'SCREEN$' may be saved out as IFF (interchangeable file format) for printing or editing in your favourite art package. Ian's also includes a separate ARexx script for entering Multiface pokes to input pokes for infinite lives or energy on your favourite Spectrum games. This works well. The ARexx support is clearly explained in AsP's documentation for those of you who want to have fun writing your own Arexx's scripts.

The supplied ARexx script for entering multiface pokes is great, but searching for infinite lives/energy yourself is not possible. What's needed is a built-in life finder. Hopefully, Ian will implement this soon in the next release. Hence, I've been using the Amos written 'Lifeshield' (available from Aminet) for searching for infinite energy/lives with my Speccy games.

A whole range of different Spectrum formats are supported by AsP
including:-

Z80:

The Z80 format was devised for Spectrum emulators developed on IBM PC's and compatables as well as Apple Macintosh. These include:

- G.A.Lunter, PC, Netherlands.

- SPECTATOR, Carlo Delhez, QL, Netherlands.

- Ergon developments emulators, QL, Italy.

- ZX, Andrew Lavrov, QL.

-Mac Spectacle, Guenter Woigk, Germany, 19.

- ZXAM, Antonio J. Pomar Rosselló, Amiga, Spain.

Mirage .SNA and .snapshot type:

- Spectrum, Peter McGavin, Amiga, New Zealand.Mirage .SNA and .snapshot type:

- JPP, Arnt Gulbrandsen, PC, Norway.

- ZXAM Antonio J. Pomar Rosselló, Amiga, Spain.

TAP:

The TAP format is used by many different types of Spectrum emulators. It is similar to a saved program on Spectrum cassette. AsP handles these, as does ZXAM.

The Verdict:

If you have happy memories of the early days of Spectrum computing, I suggest you visit Ian's AsP homepage to download AsP at: www.greew.freeserve.co.uk

Ian welcomes any comments, suggestions and bug reports, so if you have any idea's on what you would like to see implemented, drop him a line at: iang@ukonline.co.uk. Please bear in mind, if you have any ideas you would like to see implemented, be sure to check that Ian doesn't already have plans to incorporate it in future versions. Also, don't mention 'Where Time Stood Still' still doesn't work properly: Ian's been plagued by many people mentioning this (including myself)

Considering what Ian's managed to achieved to on the Amiga aging 32 bit hardware, AsP is clearly the fastest and best Spectrum emulator available for the Amiga today, and what's more, it's freeware ! Ian still has further plans to develop his emulator including:-

A status line.

Native-only (faster) display.

More ARexx commands.

Auto cheat-finder/poker.

IFF screen grab.

TZX file loading.

TAP file saving.

Dynamic JIT compiling emulation core.

More snapshot formats.

Disk format support.

If you would like to know more on how Ian has developed his emulator, check out 'AsP Spectrum Emulator' - an interview with Ian Greenway in this edition of THE CRYPT.

As for those of you who want to get your hands on virtually every classic Spectrum game ever released, why not purchase the Speccy 98/99 CD-ROM's which can be purchased from 'Weird Science' at the bargain price of £4.99 each. Postage for one CD-ROM is £1 and 50p thereafter. When ordering software from our sponsors, please telephone prior to ordering to check stocks and availability and be sure to mention you saw their product catalogue in THE CRYPT. To place your order for either the Speccy '98 or Speccy '99 CD-ROM's, telephone Weird Science@on: +44 (0)116 235 0045.

Long live the Speccy (and emulation) !

Craig Daines
Technical Editor For THE CRYPT
Craig_Daines@excite.co.uk

Previous