Home
Spin - Spectrum Emulator for Windows

Spin provides accurate emulation of the Sinclair ZX Spectrum range of 8-bit computers on Windows based PC's.

General

Welcome

System requirements

Getting started

Spectrum hardware

File formats

Shortcut keys

Frequently asked questions

Compatibility notes

Copyrights & acknowledgements

Contact us

Spin Windows

+3 Disk Manager

48k Keyboard Helper

Binary Files

Define Key Stick

Disassembly/Monitor

Main Window

POKEs and Tips

Spin Options

Tape Browser

Spin Help v0.2 for Spin v0.5 - Created 23 March 2003.


Snapshots

Snapshots are images of an emulated machine containing the memory, screen and machine state as they were when the snapshot was taken.

Snapshots are useful for saving in-progress games however software is more often distributed as tape images for preservation purposes.

To load and save snapshots use the File > Load snapshot... and File > Save snapshot... menu commands respectively.

Spin is capable of using the following snapshot types directly or from within ZIP files.

SNA

An older Spectrum snapshot format originally supporting 48k but over time enhanced to support 128k models too. Primarily included for backwards compatibility with older Spectrum emulators it is basically a straight dump of the memory and registers with the exception of the PC (Program Counter) which is stored on the stack during saving, thus potentially overwriting important values in the Spectrum memory.

Z80

A more capable format originally developed by Gerton Lunter for his Z80 Spectrum emulator (possibly the only non-free emulator that was actually worth paying for) and as such supported features of that emulator.

Some compatibility problems arise due to the complexity of the format and features such as compressed memory blocks using RLE (Run Length Encoding) which is capable of compressing 128k snapshots in as little as 40k in some scenarios. It does not suffer the stack corruption problems of .SNA and thus is the preferred type for creating snapshots.

Spin is capable of detecting and handling most of Z80's formats when loading, however a number of options for saving to Z80 files can be found in the Files/Folders section of the Spin Options found under View > Options... in the menu.


Tape images

Tape images are a digital images of the original Spectrum cassette tape which allows for varying degrees of accuracy.

Spin has a few options for handling tapes, and there needs to be a small discussion on the most important of these, the Automatic Tape Controls. When this is enabled, SPIN detects loaders for games and if one is found activated, it starts the tape. When that loader finishes, it stops the tape. This is very useful for multiload games - especially if you have any tape acceleration enabled. When you do, the tape moves at such a speed as to be almost impossible to stop the tape in time, so you will need the Autocontrols to do it for you. This does have some drawbacks however. Any pauses in the tape logic will have cause the tape to stop (unless the loader detection hits, in which case the pauses will end) and these pauses can be up to 14 seconds long. Also, in the case of loaders that rapidly start and stop sampling the EAR port, the tape can start and stop quite alarmingly (Bleeploaders are a classic example of this) and the culumative effect is to slow down the loading process. By turning off the Automatic Tape Controls, the tape will ignore these requests and will play through to the end before stopping and (optionally) rewinding, which is ideal for games that load everything in one go.

To mount tape images use the File > Insert tape... menu option.

BLK/TAP File

These two formats are identical and store basic ROM loader images of tapes, and as such cannot handle other loading schemes such as Speedlock or Alcatraz, which use different timings to the internal Spectrum ROM.

This is an older format that has been superceded by the newer TZX format. Spin can load and save to TAP files, but only using ROM traps - direct MIC recording is not possible.

CSW Recording

The 'Compressed Square Wave' format is based on audio wave files however takes advantage of certain behaviours in the Spectrum hardware to achieve a higher compression ratio.

The Spectrum, when loading or saving, outputs two states ot the EAR or MIC ports, those of full on or silence (with silence actually being a continuous state of either on or off). Because all tapes consist of flips between these two states only the amount of time between them is actually required rather than the states themselves. Based on this good RLE (Run Length Encoding) compression can be obtained and although the quality of the wave is drastically reduced it is more than adequate for the Spectrum's purposes.

This format is therefore preferred over the most bloated, albeit accurate, WAV format.

TZX Archive

The TZX format was designed by Tomaz Kac in 1998 as the definitive Spectrum tape format and it achieved just that.

The format stores tape data in descriptive blocks including pure tone blocks (red/cyan bars) and the bytes making up the actual data (yellow/blue). In doing so TZX formats manage to compress what would have been a 15mb WAV or 400k CSW file into as little as 50-100K of TZX data.

Other blocks include extra information for user viewing such as the author and genre as well as descriptive text blocks. This format is capable of handling all the non-standard Spectrum formats such as SpeedLock or Alcatraz with Spin still capable of accelerating the loading of these images.

WAV Recording

Windows WAV/RIFF audio samples taken of the original Spectrum tapes thus preserving the tape as accurately as possible. Unfortunately suffers from large file sizes and is so accurate you can get loading errors.


Other formats

Spin is capable of dealing with a number of other format files, as described here.

DSK (+3 disk images)

Spin is capable of reading from both standard and extended DSK images as well as creating a number of pre-defined images of 180K, 360K and 720K formats.

Use the File > Insert disk... menu option to access the DSK handling functions. This option is only available when emulating 128k +3 and 128k +3e models..

HDF (+3e hard files)

HDF images are used by the 128k +3e model to represent IDE hard-drive images.

Spin allows you to create or mount up to 2 HDF images using the +3e Hardfile Manager which is accessed by pressing the HDF Files... button in the Hardware section of the View > Options... menu.

ROM (Spectrum ROM images)

Every emulated model requires a ROM image to provide the contents of the original read-only memory chips inside the machine.

Spin comes with the necessary ROM files to emulate the hardware it requires however these can be replaced if you wish to try alternative ROM files.

RZX (Recordings)

This relatively new format allows you to record and subsequently play back your actions in Spectrum games. It records user input at the hardware level, by storing the results of emulated IN instructions. They are often used for best-time competitions.

It can use ZLib compression to squeeze the file sizes down - achieving more than half an hour of action into a couple of hundred kb. RZX files are dependant on the state of the emulated Spectrum when the action begins recording - and if that state is not restored when the RZX replays, then errors will occur.

As such, a snapshot needs to be stored either within the RZX itself, or seperately. Spin stores a snapshot inside the RZX by default but when replaying an RZX, if an internal snapshot is not found then that will be used - otherwise, a dialog will appear asking for the snapshot that the rzx was recorded from. This *must* be the original snap - no others will do and either will fail entirely, generating an error, or the recorded game may deviate quite alarmingly from the actual recording.

BMP (Windows Bitmap)

You can save the current screen image to BMP using the File > Save current screen... menu option and choosing the BMP format from the drop-down list.

SCR (Spectrum SCREEN$)

SCR files are a dump of the memory area of the Spectrum screen and are the PC file equivalent of SAVE "" SCREEN$

To save such an image use the File > Save current screen... menu option and choose the SCR format from the drop down list.

It is possible to load these files back into the emulated image using the File > Load Binary File... menu option, choosing the SCR file and entering 16384 as the Start Address in Main Memory or alternatively drag and drop the SCR file to Spin's main window.


Overview of Spectrum hardware
Spectrum hardware

Spin is capable of emulating a number of Spectrum hardware and peripherals including;

Hardware

Spectrum 48k

Spectrum 128k

Spectrum 128k +2

Spectrum 128k +2a

Spectrum 128k +3

Spectrum 128k +3e

Peripherals

Multiface 128

Multiface 3

Interface 1 (Partial)

Fuller AY Box

Currah uSpeech

Cheetah SpecDrum

Control

Kempston Joystick

Kempston Mouse

Fuller Box

Sinclair Interface 2 Port 1

Sinclair Interface 2 Port 2

Cursor Joystick

Magnum Lightgun

Options to select the the hardware and peripherals are available from Hardware dialog in the Spin Options window.


48k

The original rubber-keyed Spectrum released in 1982 by Sinclair Research Ltd., available in both 48k RAM and 16k RAM models (not emulated by Spin).

Was followed up by the Spectrum+ which featured only cosmetic changes - a plastic keyboard and a much-needed reset button.


128k

The follow-up to the 48k Spectrum+ by Sinclair in 1986.

As well as boasting an impressive 128k RAM the machine also featured a 3-channel sound chip (the AY-3-8912), serial port (RS-232), MIDI interface, Parallel printer port and a new BASIC editor that didn't require the keyword-entry system of previous models.


128k 2
128k +2

Amstrad's first foray into the Spectrum arena in 1986 after it purchased the rights to the Spectrum from Sinclair Research.

Taking the 128k design and adding a tape drive to the right it was styled after the Amstrad CPC464 but went with a mid-grey casing leaving it to the be the only Spectrum model to break the Henry Ford tradition of insisting they were all black.

The keyboard was much easier to type on than Sinclair's 128k however it lost the distinctive symbols and keywords that adorned the Sinclair models.


128k 2a
128k +2a

Released after the +3 in 1987 the +2a was a disappointing end to the Spectrum era being nothing but a +3 with a tape drive taking the place of the 3" disk drive of it's bigger brother.

Brought the incompatibilities of the +3 back to tape but did however replace the grey ugly-ducking original +2 bringing the family back to it's distinctive black styling.


128k 3
128k +3

Released in 1987 Amstrad continued the tradition of copying the style of their own Amstrad CPC series, now with the disk-based 664/6128 being their inspiration for this model.

Arguably only the third significant change to Spectrum hardware, Amstrad added a 3" disk drive and interface borrowed from the CPC 664/6128 with new ROM to handle the disk system giving it the ability to run CP/M+, the Spectrum's only claim to being the serious machine Amstrad hoped it would be.

Such major changes took their toll and the machine was found to be incompatible with a fair number of older titles and the revised edge-connector left it incompatible with a significant amount of hardware including the Sinclair Interface 1, VTX-5000 modem and original Multiface series.

Spin has accurate +3 emulation including low level disk access for copy-protected titles however does not yet emulate a secondary (B:) drive.


128k 3e
128k +3e

Not an official Spectrum model but pet-project of Garry Lancaster to produce an enhanced +3 with bug-fixes, additional commands (including steams support for +3 disk files and the ability to load Z80 snapshots) as well as support for an IDE hard-disk.

Spin currently has limited +3e emulation and requires the ROM images from The ZX Spectrum +3e Homepage.


ZIP files

Can contain a number of other files held in a compressed format.

Spin can automatically load and save snapshots to ZIP files as well as mounting tape images from within them.


Overview of File formats
File formats

Spin can deal with a fair number of Spectrum related file formats, including;

Snapshots

Tape images

Other formats

You can set the default locations for the various file types in the Spin Options window's File Locations dialog and also set the File Associations there.

Drag and drop support is included, any file that is supported by the emulator can be dragged and dropped onto the main window and will be handled accordingly.


System requirements

Spin runs on a variety of machines however the system requirements should look something like;

Hardware

Intel Pentium 2 266MHz/AMD K6-2 333MHz or better

MMX (optional for faster emulation)

Mouse (required only for Magnum Lightgun emulation)

Joystick (required only for Joystick emulation)

Software

Windows 95/98/ME/2000/XP/2003

Microsoft DirectX 7.0 or better

OpenGL or DirectX compatible video card & drivers


Copyrights & acknowledgements

Copyright

Spin is Copyright © 2002 Paul Dunn and Mark Woodmass.

Credits

Here's a brief run-down of who did what... Guys, check this!

Paul Dunn (Dunny)

Everything not covered below

Mark Woodmass (Woody)

AY sound emulation

+3 floppy controller (FDC)

+3e hard drive controller (IDE)

Spectrum graphics handling

Currah uSpeech

Z80 core

RZX handling

Mark Boyd (Marko)

Debugger/Monitor

Cheetah SpecDrum

Sound enhancement

Damien Guard (damieng)

Help text

Icons (BeOS style)

Sinclair Spectrum

Amstrad, Sinclair, Spectrum and CPC are trademarks of Amstrad Plc.

The ROM images included with this emulator are Copyright © 1982-1987 Amstrad Plc.

Amstrad has kindly given it's permission for it's copyrighted material to be redistributed but Amstrad retains it's copyright.

Acknowledgements

Spin uses InfoZip and Delphi Zipbeta technologies for ZIP file handling and was written in Borland Delphi.


Shortcut keys

F1

Run emulation at full speed.

F2

Open a snapshot.

Alt-F2

Save a snapshot.

F3/Pause-Break

Toggle pause/play of the emulator.

F4/Alt-Enter

Toggle full-screen/windowed display

Alt-F4

Quit Spin.

F5

Trigger a non-maskable interrupt (NMI) if emulating a Multiface peripheral.

Alt-F5

Reset emulated Spectrum.

F6

Open the Tape Browser.

F7

Enable/disable KeyStick.

F8

Options.

F10

Rewind tape block.

F11

Toggle play/stop tape.

F12

Fast-forward tape block.

Cursor keys/Ctrl

Emulate the spectrum's shifted cursor keys 5,6,7,8 and Symbol Shift, unless the Key Stick facility is active.

Ctrl/Shift (During loading of tapes)

Holding Shift will prevent auto-loading of images.

Holding Ctrl will load a tape in USR0 mode


Hardware

This dialog contains three tabs allows you to select the hardware details of the Spectrum you wish to emulate.

Hardware

Choose the basic Spectrum model and ROM to use for emulation.

Spectrum Model

Choose the model of Spectrum you wish to emulate from the drop-down list.

HDF Files (+3e model only)

Access the +3e Hardfile Manager to create and mount IDE hard-drive images (HDF files).

ROM Filename

You can choose an alternative ROM image for the selected model of Spectrum here.

Patch for SE Basic ROM

Check this box if you wish to use Sinclair Enhanced BASIC ROM's instead of the standard Sinclair ROM's.

Peripherals

Select a number of additional peripherals you would like emulated.

Multiface

The Multiface is a hardware device from Romantic Robot capable of interrupting whatever the Spectrum is doing and brining in it's own control program. This program gives options such as snapshot'ing the machine, examining and changing memory locations (POKEing) and performing screen dumps.

Spin supports both the Multiface 128 and the Multiface +3 however the neccessary ROM files are not included with the distribution. To enable this functionality place the ROM files into the same directory as the other ROM images. The Multiface 128 ROM should be named mf128.rom and the Multiface +3 one mf3.rom.

You can trigger the Multiface once the ROM is installed and the option selected by pressing F5.

Interface 1

The Interface 1 is a Sinclair-produced hardware expansion for the original Sinclair models. Providing RS-232 serial communications, 64-machine networking and the interface for Sinclair Microdrive's utilising a 16k ROM.

A full manual can be found at http://www.madhippy.com/8-bit/sinclair/zxif1micro.html

Spin currently only supports functionality required for Microdrive operation.

Fuller AY Box (48k only)

The Fuller AY Box is a third-party hardware device for 48k machines that incorporates the AY-3-8912 sound chip - the exact one subsequently used in 128k models as standard. While this chip is identical the I/O ports used are not the same as the 128k's and as such only specific software written for the Fuller AY Box can take advantage of it.

Currah uSpeech (48k only)

Developed by third party company Currah, the uSpeech device provided simple speech synthesis.  Some software titles support uSpeech including Jack and the Beanstalk and Mr Wimpy.

A full manual can be found at http://www.madhippy.com/8-bit/sinclair/microspeech.html

Cheetah SpecDrum

The SpecDrum interface from Cheetah Marketing Ltd. provided a drum machine facility for the Spectrum and was available with a number of addtional kits including Afro, Electro and Latin.

Emulation

Alter the emulation accuracy, timings and border display.

Video Accuracy

A number of options are available for choosing how accurate the display is rendered.

Use Multicolour Rendering

Although the Spectrum only officially supports a colour resolution of 32x24 it is possible to update the screen as it is being rendered to give a higher colour resolution. Many Spectrum demos and some games use this technique for both the screen and border areas.

Because of the overhead in emulating the display with such accuracy Spin will require much more CPU power to achieve this effect.

Emulate ULA "Snow" Effect

The ULA chip used in Spectrum's to render the display is suseptible to confusion when certain values are given to it. This results in a 'snow' style effect. Some games (such as Vectron) use this as a special effect.

While there is no performance hit for emulating this option it should be switched off if dealing with +2A/+3 developed games which may be incompatible such as Hyrda.

Border Emulation

Choose the size of the border to be displayed. Note that a smaller border size may help if you are suffering performance issues. Options are;

None (ZX32 Style)

Small (vbspec)

Partial (320x240 4:3 ratio)

Full (Original Spectrum Border)

Timing

A number of settings relating to timing and speed of the emulation for advanced users only.

Memory

Allows you to choose a memory timing scheme. Normally this should be left on ZX Spectrum unless you with to run some Demo's which may require alternative memory timings. Options are;

ZX Spectrum

Pentagon

No Contention

Emulation Speed

Choose how fast you'd like to run your emulated Spectrum. Only of any use if you want to mess about a bit ;-)

CPU Speed

The original Spectrum's Zilog Z80 CPU ran at 3.54MHz. Here you can choose alternative speeds. Bear in mind that unlike modern PC's Spectrum software was not designed to be run at any other speed. Options range from 3.54MHz to 100MHz.


Control

This dialog is used to configue the various control device options available within the emulated Spectrum environment via the following tabs.

Keyboard/Joysticks

A number of options relating to joystick control options and emulation.

Cursor Keys + Ctrl Emulate Joystick

You can select a model of joystick to emulate when the PC's cursor-keys are pressed with the Ctrl key being used for the fire button.

Selecting User Definable will enable the Define... button bringing up the Define Key Stick window to allow the cursor keys to control any directional game.

PC Joystick Emulates

You can select a model of joystick to emulate when the PC's joystick is used. The crosshair to the left of the list box shows the current position of the joystick. Any movement within the circle will be ignored.

Selecting User Definable will enable the Define... button bringing up the Define Key Stick window to allow the cursor keys to control any directional game.

Mouse

Choose how you'd like your mouse to be emulated within Spin. To enable the emulation you must click inside the Spin window. You must press the Home key to bring the mouse back under control of Windows.

PC Mouse Emulates

It is possible to use the PC mouse within the emulated environment to mimic the Magnum Lightgun. You may enable the option here, doing so will enable two additional options;

Hide Mouse pointer

Select this option to hide the Windows mouse pointer while inside the emulated environment.

Show crosshair

Select this option to display a crosshair style target while inside the emulated environment.


Audio Settings

You can choose a number of tabs in this dialog.

Audio Quality

A number of options relating to the audio quality of the emulation.

Frequency

You can select between 22050Hz and 44100Hz audio rates for synthesizing the AY-3-8910 (128k/Fuller) sound. Choosing 44100Hz will result in higher-quality audio at the expense of CPU usage.

Sound Enhancements

Stereo

All Spectrum models are mono however with the 3-channel nature of the AY-3-8910 gives rise to a process where the audio channels can be split between stereo speakers. This process is configured within the Stereo Placements dialog.

Turning off this setting may help with performance if you are having problems.

Stereo Sound Enhancement

Applies a wide-stereo style spacialisation effect to outputted sound.

Echo/Reverb

This option adds a slight echo/reverb effect to the sound produced by Spin.

High Quality AY

Performs 4x over-sampling and smoothing effect of AY sound chip for higher quality output.

High Quality Beeper

Performs 4x over-sampling and smoothing of audio beeper for higher quality output.

Sound Creation Method

Don't use DirectSound Synch

DirectSound Synchronisation often prevents audio jittering during emulation however may cause lock-up's on some configurations.

Dunny, can you rename this "Use DirectSound Synch" and invert the set/get option.

Volume Levels

You can set the various volume levels of the beeper and individual AY audio channels.

48k Sound

Set the indiviual audio volume levels for the 48k beeper and DAC's (SpecDrum / Cheetah uSpeech).

128k/Fuller AY Chip

Set the indiviual audio volume levels for the AY chips audio channels.

Mute Sound

Disable all sound emulation. Choose this if you are having performance problems and wish to forgo sound.

Stereo Placements

This dialog allows you to pan the various audio channels between your left and right speakers.

Presets

A number of preset placements for your enjoyment can be used to set the various channel sliders.

Default (mono)

Everything center channel.

Stereo (ABC)

Places the AY's A channel on the left, B on the center and C on the right with the 48k's channels center.

Stereo (ACB)

Places the AY's A channel on the left, B on the right and C on the center with the 48k's channels also center.

This option is often assumed by many European demos.

User Defined

Switches to this to indicate user defined as soon as you perform manual adjustments on the placements using the given sliders.


Video Settings

This dialog allows the selection of video options and is broken down thusly;

Video Output

A number of options regarding how Spin renders and reproduces Spectrum screens.

Renderer

Here you can choose how Spin renders to the screen.  Choose from;

DirectDraw

Using this option requires a DirectX compatible video card and allows for high-speed video output with no video enhancements.

OpenGL

Using this option requires an OpenGL compatible video card and allows for fast video output with additional video enhancements.

GDI

The slowest option of the bunch and should only be used if your video card does not support DirectDraw or OpenGL. Video enhancements not available.

Full Screen Mode

Here you can choose the desired screen resolution when running Spin in full screen mode (activated using View > Go Full Screen or by pressing F4).

Frame Skipping

Frame Skip

Here you can select the trade-off between CPU usage and jerky graphics with 1 Frame(s) being the smoothest.

Automatically Adjust Framerate

Will automatically adjust the Frame Skip for you to suit your PC's capabilities.

Enhancements

A number of video enhancements available in OpenGL mode.

Scanlines

Gives a number of options for emulating the video scanline/interlacing present on original Spectrums.

Colour Settings

Not currently implemented.


Files/Folders

This dialog allows you to set the default directories and handling of the various supported file types.

Default Folders

Here you can set the file search paths for the various types of files that Spin supports.

Snaps/Disks

Set options relating to the handling of snapshots and disk images.

Snapshots

Don't switch hardware to match snaps

Prevents Spin from changing it's emulated hardware to that indicated inside some snapshots.

Save Z80 snaps as V3

If enabled any snapshots taken in Z80 format will use the version 3 variant that stores more accurate state settings. In doing so these Z80 snapshots will not be usable by older emulators that do not support version 3.

Save V3 Snapshots with XZX +3 Byte

Makes Spin save Z80 snapshots taken from Spectrum +3 emulation record the additional flags required as per the XZX emulator. Snaps may be incompatible with older emulators that are not expecting this additional byte.

Disks

Automatically Load Disks

Will automatically boot up +3 disk images when they are selected or dragged to Spin.

Accelerate Disk Loading

Will load +3 disk images as fast as possible.

CRC Error Return Method

Some disk images contain intentional errors that form part of the copy-protection mechanism. To allow loading of these disks Spin gives two possible options;

Method1

Randomise first byte of sector. Used by most copy-protection mechanisms.

Method2

Randomise last byte of sector. Used by Dixon's Premier Collection and potentially some others (Contact us if you find any others)

Tapes

Spin has very powerful and flexible tape handling facilities that can be configured from this tab.

Automatically Load Tapes (Auto Starts)

Automatically starts the tape and loader when tape images are selected or dragged to Spin.

Automatically Start/Stop Tape

Automatically detects when the tape is being accessed or not and 'pauses' the image.

Automatically Rewind at end of Tape

Puts the tape on a continous loop.

Feedback Settings

To allow faster loading of tape images on slower machines you can elect to disable sound and video while loading.

Flashload Standard (ROM) blocks

Provides accelerated loading facilities for tapes that utilise the standard ROM routines such as TZX type $10 blocks or TAP files.

Speedload Tape files

Allows edge-triggered accelerated loading facilities for non-standard loaders.

Use 10h Acceleration (experimental)

Allows byte-triggered accelerated loading facilities for non-standard loaders.

Frame Skip

You can choose to skip frames during the loading process to speed things up a bit more. If still going too slow then use the Feedback Settings to turn off screen emulation entirely while loading.

Associations

FileTypes associated

You can set to tell Windows to send these various filetypes to Spin when double-clicking them from Windows explorer. They will only take effect by using one of the following two options.

Apply these when Spin starts

Spin will re-assert the associations ever time it starts. Useful if you have other emulators that are a bit greedy.

Apply Now

Apply the various associations right now.


System

This dialog allows you to set a number of system options relating to Spin.

Use MMX Extensions where available

Selecting this option will allow Spin to take advantage of the faster memory shifting routines of MMX enabled processors resulting in faster graphics and sound.

When Spin looses the focus

Choose the behaviour Spin should exhibit when it looses the current active window focus.

Keep Spin running

All emulation should continue operating as if Spin had the focus.

Pause the Emulation

The emulation is temporarily paused until the focus returns.

Mute the sound

All emulation should continue operating as if Spin had the focus but sound should be muted.


Overview of Spin Options
Spin Options

The Spin Options window is used to configure the Spin emulators environment and is broken down into a number of dialogs as follows;

Hardware

Control

Audio Settings

Video Settings

System

Accessed by; Keyboard: F8, Menu: View > Options..., Toolbar: Set Spin options


Define Key Stick

Need help text here.


USR0 mode

Special mode available with 128K models often required by demos.

This is basically 48K mode on a 128K machine but leaving the 128K memory paging intact. The same as typing PRINT USR 0 [Enter] on a real Spectrum 128K machine.


3 Disk Manager
+3 Disk Manager

The +3 Disk Manager window allows you to select which disk image to use as well as creating blank disk images when using +3 or +3e emulation.

Access this window by using File > Insert Disks... from the menu or by pressing the Open the Disk Manager icon from within the Open a file toolbar.

Disk File

Enter the name of the disk image here or press the folder button to open a file dialog to browse for one.

Auto Boot new disks

Automatically triggers the +3 Loader mechanism once the disk file is loaded from this window. You can hold down shift when you press Okay to override this if it's selected.

Create New

Allows you to create new blank +3 disk images for subsequent use with the emulator. Sizes include;

180k (40 Track, Single Sided, standard +3 format)

360k (40 Track, Double Sided)

720k (80 Track, Double Sided)

You must enter the name you want the +3 disk image to use into the Disk File text box before selecting this option. Any existing file with this name will be overwritten and the Disk Image will then be selected for use with the emulator.

Note: Only the +3 internal drive (A:) is currently supported in Spin.


Binary Files

There are windows available for the loading and saving of binary files between the Spectrum and PC environments.

FileName

Specifies the name and path of the PC binary file to load from or save to.

Hex Values

Select if the Start Addres and Data Length values are in hex (base 16) and not decimal (base 10).

RAM Page

Specifies which of the memory banks to save from. Applies to 128k models only, 48k models should choose Main Memory.

Start Address

Specifies the start address in RAM in either hex or decimal depending on whether Hex Values is selected or not.

Data Length (Save only)

For the saving of binary files you also need to specify the length of the data you wish to save. Again this is in either hex or decimal depending on whether Hex Values is selected or not.


POKEs and Tips

This window will allow you to add POKE's, often used to install cheats into games, and access online solutions.

Poke Now

Address to POKE

The Spectrum memory address to poke to in decimal.

Value

The value to place at this memory address in decimal.

Open

The open icon button will eventually open .POK files however is not yet implemented.

POKE

Press this button to place the entered value at the given address.

Pokes

This facility is not yet available.

Tip/Solutions

This facility is not yet available.

Type-In BASIC hacks

This facility is not yet available.


48k Keyboard Helper

The 48k Keyboard Helper gives you at-a-glance access to the original Spectrum keyboard layout including functions, extended functions and symbols.

Onscreen Keyboard

Displays a clickable animated (heaven knows why... :-) map of the Spectrum keyboard which also responds to your keypresses.

Command Finder

Use the drop down lists to find a command for 48k BASIC, or an edit mode such as the colour commands and such. The keystrokes necessary for you to get that effect are displayed. You 	can click the "Send these keystrokes now" button to send the keys directly to the emulation -

but if you do that in 128k BASIC, the effects will be varied and undefined :)

Quick BASIC

Text to send

Enter here the line of text to send to the emulated machine in the format;

Line number/Statement/Expression

Text options

Send 'Enter' Key at end

Sends the 'Enter' key at the end of the line to process the text.

Send as

Plain text (128k BASIC)

Set this option if using the 128k BASIC editor

48k BASIC tokens

Set this option if using the 48k BASIC editor

Parse for errors

Checks the line to ensure it will correctly parse on the 48k BASIC editor

Send Now

Sends this line to the emulated machine using the options set.


Overview of Main Window
Main Window

This is the main Spin interface and can be broken down into the following areas;

Title bar

Menu

Spectrum screen as emulated by Spin

Toolbar

Status bar

Drag and drop

Dragging and dropping supported files will perform the actions necessary to load them including .SCR files which will be loaded into the Spectrum's screen memory.

You may also hold down;

Shift to override auto-play behaviour

Ctrl when dropping a tape to load in USR0 mode


Overview of Tape Browser
Tape Browser

Allows you to inspect and alter the properties of TZX/TAP Tapes that are inserted, and to set the

virtual tape head position. You can access the tape browser by pressing F6 or using the menu option View > Tape Options > Open Tape Browser.

Block list area

The tape blocks are shown here in order of execution. Data blocks are shown in black text,

information or program flow are shown in [] with blue text. The current tape position is indicated

with a small tape icon. Double clicking a block will set the tape position to that block. The final

End of tape block is unselectable.

Single clicking will select a block. Using Ctrl and Alt you can select multiple blocks for working on. Right clicking will bring up a pop-up menu which gives options for working with selected blocks.

Show Advanced Block Properties

Expand the window to show more detailed information on the currently selected TZX block. This extra information is read-only.

Toolbar

The toolbar buttons are similar to the orginal tape deck controls and perform the same actions as the corresponding menu items in the main window. The Open button only opens tapes, and the usual Shift/Ctrl actions apply.

Menu

File

Insert Tape

Opens the open tape file dialog.

Eject Tape

Clears the curently active tape. If you have modified this tape, you will be prompted to save it.

Save / Save As

You can save the tape here. Save simply saves it using the filename it was opened as, Save As allows you to specify the name and extension.

If you choose to save a WAV or CSW, the current tape will be converted to that format.

Recent Tapes

A list of the last ten tape images you used.

Block Properties

If a block is selected, this allows you to edit the propertiesof that block, such as timings and such-like. Certain blocks can only have certain properties edited - $10 (ROM Style) blocks have hard-coded timings, and so the only property you can edit is the pause after this block.

See Block Properties for the details on block types and values available.

Exit

Quit the tape browser.

Edit

New Block

Allows you to insert a block at the currently selected position. At the moment, you cannot insert blocks that require loading data.

This inserts a "blank" block and then opens the block properties so that you can specify its' characteristics. See Block Properties for specific details.

Cut

Copy

Paste

Insert

Delete

All work as expected on the currently selected block(s).

Help

The TZX Vault

Opens the .TZX Vault web site in your default web browser.


Block Properties

These are the properties you may edit for each type of block within a TZX tape image:

$10 (Standard Speed Data Block)

Pause after this block (in milliseconds)

$11 (Turbo Data)

Length of PILOT pulse

Length of SYNC First pulse

Length of SYNC Second pulse

Length of ZERO bit pulse

Length of ONE bit pulse

Length of PILOT tone (in PILOT pulses)

Used bits in last byte

Pause after this block in milliseconds

$12 (Pure Tone)

Length of pulse in TStates

Number of pulses

$13 (Sequence of Pulses of Different Lengths)

Here you can edit a list of pulses.

Use the editbox below the main list to type in a length in TStates, or click a value in the list.

Delete to remove a selected value from the list

Add to append the value in the editbox to the end of the list

Replace to replace the currently selected list value with the value in the editbox

Insert to Insert the value in the editbox at the selected position in the list

$14 (Pure Data)

Length of ZERO bit pulses

Length of ONE bit pulses

Used bits in last byte

Pause after this block in milliseconds

$20 (Pause or Stop The Tape)

Length of the pause in milliseconds. A value of zero will always stop the tape.

$21 (Group Start)

This is simply a text name. Some emulators use this and Group End to collapse portions of the TZX visually, kind of like a one child level tree.

$22 (Group End)

Use with Group Start.

$23 (Jump To Block)

The value is a relative jump - ie, -1 jumps back one block, 1 jumps forward one block. Zero

is not allowed. for obvious reasons.

$24 (Loop Start)

This block marks the start of the repeat section, and the value is the number of times to repeat.

$25 (CALL Sequence)

This block works as the $13 (Sequence of Pulses) in operation, but uses a list of relative values

as the Jump block does.

$30 (Text Description)

This is exactly the same as the Group Start block.

$32 (Archive Info Block)

Used for recording user information about the TZX file such as;

$00 - Full Title

$01 - Software House/Publisher

$02 - Author(s)

$03 - Year of Publication

$04 - Language

$05 - Game/Utility Type

$06 - Price

$07 - Protection Scheme/Loader

$08 - Origin

$FF - Comment(s)


TZX Vault

The .TZX Vault is web archive of Sinclair ZX Spectrum games in .TZX tape format for preservation purposes.

Visit them at http://tzxvault.retrogames.com/


Title bar
Main Window (Title bar)

Spin's title bar sports the familar Spectrum 128k menu motif and sports a dazzling three whole buttons. They are;

Minimize

Minimize the application and pause the emulation.

Maximize

Run the application in full-screen mode (Press F4 to return)

Exit

Stop the emulation and quit Spin.


Menu
Main Window (Menu)

Spin has a standard Windows style menu which allows you to quickly access almost all functions. These are as follows;

File

Load Snapshot

Load a snapshot of an emulated machine and resume it's execution.

Save Snapshot

Save the current state of the emulated machine to a snapshot.

Save current screen

Saves the current Spectrum screen as either a raw SCR (SCREEN$) dump or a BMP (Windows Bitmap) image.

Insert Tape

Insert a tape image file into virtual tape deck.

Hold Shift to override autoplay if selected

Hold Ctrl to load in USR0 mode (128k only)

Insert Disks

Opens the +3 Disk Manager window for mounting and creating disk image files.

Load Binary File, Save Binary File

Opens the Binary Files window for loading or saving portions of the Spectrum memory.

Recent Files

Displays a list of the last ten files loaded. If current emulated hardware is not compatible (such as disks in +2 etc) then the emulated hardware is automatically changed to one that is.

Hold Shift to override autoplay if selected

Hold Ctrl to load in USR0 mode (128k only)

Exit

Quits the Spin emulator.

View

Debug Windows

Debugger

Opens the Disassembly/Monitor window for debugging and monitoring.

Z80 Assembler

This facility is not yet available.

BASIC Editor

This facility is not yet available.

Tape Options

Rewind To Start

Rewinds the virtual tape to the start of the image if one is inserted.

Start/Stop Recording

If a tape has been inserted for saving then starts or stops the recording. It is possible to save to the following tape image types only;

TZX

Uses Direct Recording Blocks to store the recording.

WAV/CSW

Produces the correct audio tones to save.

Rewind Block

Skip back one or more TZX Blocks - if the previous block is not a data block (ie, flow control blocks) then they are skipped until start of tape reached or data block found.

Play/Stop

Starts/stops the the virtual tape loaded with the current tape image.

Fast Forward Block

As for rewind, skips to the next block - but takes flow control blocks into account and they can be fast forwarded to.

Fast Forward To End

Moves to the end of the last block on the virtual tape.

Open Tape Browser

Opens the Tape Browser and editor window.

Window Display Mode

None of these options are available if using OpenGL accelerated display mode.

Normal

Standard Spectrum screen with no processing enhancements.

Faked Scanlines

Standard Speccy screen with every other line darkened. Crap but available when using 100% size.

Scanlines

Doubles the size of the Specctrum screen with every other line being black.

25% Scanlines

Doubles the size, with every other line darkened by 25%.

Interpolated Scanlines

Double size, with pixels blended to reproduce a TV style effect.

100%..400% Window Size

Selects a window size, relative to the original Spectrum display as the last three display.

As the Scanlines, 25% Scanlines and Interpolated Scanlines modes require a minimum of a double (200%) size window, the 100% size option will be unavailable while using them.

Full Screen Display Mode

As for the Windowed modes but displaying full screen.

Go Full Screen

Runs Spin in full screen mode using the options chosen in Full Screen Display Mode. Press F4 to return to normal mode.

Volume Levels

Opens the Volume Levels window with real-time volume and stereo panning options.

Pokes and Tips

Opens the POKEs and Tips window for entering cheats.

Options

Opens the Spin Options window for configuring Spin.

Recording

Video (.scr dumps)

This facility is not yet available.

Audio

This facility is not yet available.

Tape Recording

Dunny, is this duplicated in Tape Options above?

Real Tape mode

Starts Spin listening to the soundcard's line-in, and will allow Spin to load from a real tape connected to the PC.

*cool thing* when doing this, the tape loaded can be recorded to a WAV/CSW/TZX-DRB if tape recording is running.

Insert Tape for Saving

This allows Spin to record to tape files. If you choose a WAV or CSW,then you must use the start/stop recording menu item or F9 key to record to the file. This will record the tones as the Spectrum produces them at the MIC port.

Using a TAP file will record any ROM save activity instantly - no tones will be produced.

Similarly for a TZX file, ROM saves are trapped unless recording is running. If recording is going then tones will be saved and ROM traps are disabled. TZX recordings are DRBs, ROM traps are normal TZX blocks.

Start Recording

For TZX, WAV and CSW, starts the tape recording MIC activity.

Eject Save Tape

Closes the save tape file.

Input (RZX)

Play Back RZX File

Opens the RZX File dialog. Playback begins immediately unless the emulation is paused or the RZX does not have an RZX snapshot block.

If no snaphot block was found then you will be prompted to open a snapshot.

Record RZX File

Prompts for a filename to save to, and then records all emulation until Stop Recording is clicked.

Stop Playback / Stop Recording

These options are only visible during RZX recording and playback, and aborts the current operation.

Emulation

Pause

Pauses the emulation.

Hard Reset

Resets the emulation as if the power was turned off and then back on. Regardless of the current hardware (which may be changed by a disk or snapshot) this resets the hardware chosen in the options.

Soft Reset (USR0)

Resets 128k model emulation into the special USR0 mode.

Mute Sound

Disables all sound output. Can also increase emulation performance drastically.

Full Speed

Discards all timings in order to run the emulation as fast as possible.

CPU Speed

Choose from a list of virtual z80 speeds, in mHz. Note that only the z80 is accelerated, not the ULA too, so contention is screwed at higher speeds. It still occurs, but happens much more quickly. This is a more accurate method of accleration rather than just increasing the number or TStates per frame.

Enable Keystick

Activates the keystick. This will allow you to use the Cursor keys and Ctrl to simulate a Spectrum joystick.

Help

Help Topics

Opens the online help file, you're reading it now!

World of Spectrum

Launches your web browser to the famous World of Spectrum site

The Tip Shop

Launches your web browser to The Tip Shop

The TZX Vault

Launches your web browser to The TZX Vault

48k Keyboard Helper

Opens the 48k Keyboard Helper window.

About

Details the current build/release of Spin, the authors and associated copyrights.


Toolbar
Main Window (Toolbar)

Unusually Spin's toolbar can be found towards the bottom of the main window. Spin's toolbar buttons are multifunctional, and extra options can be found by right-clicking them.

They are, from left to right;

Dunny, I am going to add images of the buttons in here.

Pause

Left click

Pause/unpause the emulation

Right click

Pause/unpause the emulation

Show the Disassembly/Monitor debug window

Toggle full speed / 100% speed

Open File

Left click

Open any supported file format, changing hardware and reset the emulated machine if necessary.

Right click

Open any supported file format

Open Snapshot

Open Tape File

Open Disk Manager

Play back a RZX recording

Tape Control

Left click

If Real Tapes are running, then stops the real tape mode

else, if Recording then stops recording

else again, if tape inserted then starts/stops the tape

Right click

Start/Stop Tape

Start/Stop Real Tape mode

If a save tape is inserted, then start/stop recording, otherwise insert save tape.

Open Tape Browser

Enable/Disable Keystick

Left click

Toggles the Keystick facility on/off.

Mute/UnMute Sound

Left click

Toggles the sound emulation on/off.

Open Options window

Left click

Shows the Spin Options window.

Reset Spectrum

Left click

Hard reset (hold shift for Usr0)

Right click

Reset USR0 mode

Hard reset


Status bar
Main Window (Status bar)

The status bar is broken down into two sections.

The left hand section displays the currently emulated model of Spectrum as well as brief summaries of toolbar and menu functions when hovering over them.

The right section can show either the current emulated speed as a percentage (should always be near 100%) or the current number of frames per second (fps). If running the emulator in maximum speed mode the value shown may be unreliable.


BASIC
Beginners All-purpose Symbolic Instruction Language (BASIC)

Simple programming language of which a variant, Sinclair BASIC, is built into the ROM of every Spectrum model.


RAM
Random Access Memory (RAM)

Temporary memory used by a machine to hold currently executing programs. Often these days measured in megabytes (MB, millions of bytes) the Sinclair Spectrum had memories measured in kilobytes (KB, thousands of bytes).

The models included either 16KB, 48KB or 128KB of memory.


Frequently asked questions

Where can I get Spectrum games?

Try World of Spectrum or TZX Vault for images of your favourite memorable game. Please note that some companies have denied distribution of their games and so therefore are unavailable.

Surely other stuff you get asked?


Welcome
Welcome to Spin

Welcome to Spin, an emulator of the Sinclair ZX Spectrum series of 8-bit computers designed for Windows (95/NT/2000/XP) based machines.

Spin started life as a small one man project intended to be a Spectrum BASIC interpreter - and has grown out of all proportion since! It currently emulates the standard Spectrum 48k, 128k, +2, +2a and +3, and also the new Spectrum +3e which makes use of IDE hard drives and an updated ROM.

The emulation is currently running at a very high level of accuracy - almost all the undocumented timings of the Z80 CPU and the ULA are properly implemented, and all undocumented Z80 opcodes are emulated. Tapes and disks are emulated as accurately as currently possible, and the level of compatibility with original Spectrum software is very high. Both tapes and disks can be accelerated, with tapes being especially fast to ease those 8 minute loaders down to a couple of seconds.

Despite it's current high level of usability and features Spin is constantly being updated and revised, and this release should be considered beta quality. There may be bugs and errors - if you do discover any then please contact us.


Getting started

Upon first running Spin, you will be greeted by the main window. This is where the main emulation "lives" and is primarily the spectrum display output window. There are many windows available in Spin, for various parts of the system, and they are all accessible from here. At the top of the window are the normal window control buttons - minimise, maximise and close. Bear in mind that maximising the window will run Spin fullscreen. Below the title bar is the main menu strip. This is where you can load files, and open the various windows that Spin employs.

To quickly get started, you will either need a snapshot of a Spectrum game, a Spectrum tape file or a Spectrum disk image. Spin will load all major snapshot, tape and disk image file formats. You can use the File menu to load these files or simply drag and drop them to the main window.

Whilst a game or utility is running, you can use the PC keyboard or joysticks to control the emulated Spectrum. When using the keyboard, Shift is the regular Spectrum CAPS key, and Ctrl is the Symbol Shift key. Although all the "extra" keys of the PC keyboard are supported, such as the /, ?, :, ; and {}[] keys, some are a little difficult to get to - the ! mark is found by pressing Ctrl and 1, for instance. The cursor keys are emulated using the PC cursor keys - although this behaviour can be altered in the joystick options. If you have difficulty finding a particular key or symbol, then the 48k Keyboard Helper in the Help menu can be useful.

Snaps, tapes and disks can be saved to, and all major formats are supported. Tapes can be recorded to using the Recording menu, and Snapshots can be saved in .sna and .z80 format from the File menu.

The main window can be resized as a normal window can be, but you should bear in mind that stretching the display to fit varying window sizes can be computationally intensive - if you are running Spin in GDI mode then emulation speed can suffer enormously if you resize the window to anything other than 100%.

Still need to rework this with more links etc.


Contact us

The Spin development team welcome comments, suggestions and bug reports.

You can email zxspin@speccies.org or alternatively try;

IRC

Join the channel #spin on irc.astrolink.org where you can find us most evenings.

Web

Try the Emulators forum at World of Spectrum remembering to put Spin in the subject.

Newsgroups

Posting to the group comp.sys.sinclair with the word Spin in the subject.


GDI mode

Microsoft technology for rendering graphics dependent of hardward.

Spin can use this if DirectX or OpenGL hardware accelerated modes are not available but prepare for poor performance.


DirectX

Microsoft technology for direct access to hardware such as input devices, sound and video cards.

Spin can take advantage of DirectX capable video cards to give you a fast smooth display.


OpenGL

Silicon Graphics technology for high-speed 2D and 3D accelerated graphics.

Spin can use OpenGL if your system supports it to render lovely fast emulated screens.


World of Spectrum
World of Spectrum (WoS)

The World of Spectrum is a huge archive of Spectrum software, documentation, inlay scans, tips, pokes and everything else you could possibly want.

Check them out at http://www.worldofspectrum.org/


New Topic


Overview of Disassembly/Monitor

Omg has this stuff changed.

Better write something.


Compatibility notes

Let's put stuff in here about Spectrum tapes/disks that require specific options set to work properly (or don't work at all).

Love and kisses

[)