x128 Instructions
02/10/2024
Menus:
F1 Help F2 NMI F3 Hardware options F4 Control options F5 Load snapshot F6 Save options F7 Load tape F8 Tape options F9 Save screenshot F10 Quit F11 Sound options F12 Disk select
Alt-F1 POKEs/Trainers Alt-F2 Alternate NMI Alt-F7 Tape browser Alt-F8 Pause/Unpause tape
File Formats INI/command line DOS Windows
Model Select
To select a sub-menu, you may press 1-6 or press < or > to move left and right.
Some pages will be different, depending on which machine you are emulating.
(Note: This means that reset is now F3, 1, Return, instead of just F3, Return. This can take a little getting used to, and I'm not sure if I'll keep it that way).
Items in cyan should be considered incomplete.
To select a machine, move to it with the cursor keys and press Return - this will cause a reset.
If you want to switch to a machine without resetting (for example, to save a snapshot in a different mode), press Space instead of Return. This will only work if the machine types are compatible (only from one ZX Spectrum to another).
ZX80 and ZX81 emulation are completely kaputt. You will just get a buzzing, rolling screen.
Spectrum 48, 128, +2, +2A, and +3 are self-explanatory. The Spectrum +3 has its own built-in disk drive.
Pentagon 128 is a Spectrum 128K clone with a built-in Beta 128 interface. It also supports a 16-colour mode, notably for the Pang game demo. Note that while it says 128 here, it's actually emulating 1024K, so you can run that version of Robocop 1024 with the FMV clips between the levels.
Scorpion 256 is a 256K clone with a built-in Beta 128.
Sinclair Profi+ is a clone with 1024K and a Beta 128.
ATM Turbo is a clone with its own 16-colour mode (and Beta 128).
ATM Turbo 2 is its successor, it also has its own 80-column text mode.
After this, some machines that are haphazardly added to this menu, for the lack of anywhere else to put them.
LEC (528K) has 528K.
SAM Coupe is a machine from the 90s, pitched as a Super Spectrum. It tried to compete with the 16-bit home computer market. It has a 16-colour mode, an SAA 1099 sound chip, and a DISCiPLE/+D-style interface built-in. The emulator currently gives it 512K internal RAM and 512K external RAM. Note that no wait-states are emulated, which greatly affects demos. The emulation is getting there, but needs quite a bit of work.
Timex TS2068 is a machine from the 80s. It has a different BASIC and architecture, plus some improved video modes. It was possible to make it highly compatible with a Spectrum by inserting a cartridge with the original BASIC on it. Note that it is currently has a very limited emulation. You can only load via tape loading, set to "Off" mode, so the slowest possible. It is also limited to 50hz video emulation.
Commodore 64 is a bit of a strange inclusion... it is just a curiosity. You can only load PRG and single T64 files.
LEC DDR (80K) is an 80K machine that can also provide RAM at $0000. It is compatible with Vision CP/M.
Didaktik Gama (80K) is an 80K machine with a different version of 80K paging.
At some point I will have to tidy up this menu. There are so many different variations of the 80K hardware hack, that I'll have to add some option instead of having different machines.
Additional Hardware menus
One thing to note, is that the emulator will allow far more interfaces connected at once than a real system would. Apart from issues like interfaces wobbling or drawing too much power, the ZX Spectrum is notorious for using partial address decoding. A significant number of interfaces will not work on a 128K because every port address that has bit 1 low, will also be written to the RAM & ROM paging register.
The emulator does not always simulate this effect, either because I don't know the exact address decoding of an interface or because I haven't bothered to implement it.
Additionally, some interfaces are downright incompatible with each other, so you may need to turn other interfaces off before the interface you want will work.
The emulator does not force you to reset between changes, but there are times when this may be sensible.
Use cursor keys left and right to alter these options:
Note: The Opus Spectra has a slight incompatibility with the Opus Discovery. The boot sector of a Discovery disk expects HL to have been set to a certain address, while the Spectra leaves it at 0. This is not a problem if the Spectra has no RAM installed, but this one does.
The result is that the Spectra reads the disk geometry from the first bytes of the Opus ROM, which makes it think the disk has 243 tracks and 49-sectors-per-track. This is very bad. The blank image I have linked to (from the main page) contains a boot sector which is happy to run on either Discovery or Spectra. It also adds the RUN command, which is not usually available.
Additionally, the FORMAT command on the Spectra is just a quick format, so it will not help with the boot sector. The utilities disk is missing, so no-one can do a proper format. There are also rumours of a later Spectra ROM that has all Discovery functionality.
The Swift Disc has an excellent Microdrive emulator called "EMUL", which provides very good Interface 1 emulation with 4 virtual cartridges stored on a disk. The minimum Swift Disc ROM version required to run the Microdrive emulator is 3.0, but the version of EMUL currently available seems to be a Swift Disc 2-only version, as it calls some addresses that are different in the Swift Disc 1 ROM.
Option | Setting | 128K | Image Formats | Notes |
Betadisk | Beta 128 | Y | TRD, FDI, FDD, SCL, $?, DSK | RANDOMIZE USR 15616 |
Beta 48 | N | TRD, FDI, FDD, SCL, $?, DSK, CPM | RANDOMIZE USR 15360 | |
Beta SD | N | DSK | RANDOMIZE USR 15360 | |
FDC-1 | N | DSK | BAS to drop to BASIC, RAND USR 64512 to go back to DOS | |
Multiface | MF1OLD | Y | Early MF1, some models only have 2K RAM | |
MF1 | Y | Common MF1. ROM can be replaced with MF1 KDOS version | ||
MF128OLD | Y | Common MF128 87.1x with HyperTape | ||
MF128 | Y | Common MF128 87.2 "DISCiPLE version" | ||
MPRINT | Y | MultiPrint (but printer is not emulated!) | ||
MF3 | Y | Common MF3 | ||
DISCiPLE/+D | DISCiPLE | Y | MGT, IMG, SAD, DSK | ROM 3 is fully 128K-compatible |
PLUS D | Y | MGT, IMG, SAD, DSK | ||
Didaktik D80 | ON | ? | D40, D80, 000 | |
Interface 1 | ON | Y | MDR | INI file loads V2 of ROM by default |
Wafadrive | ON | N | WDR | Incomplete - read-only |
Opus Disc | Discovery | Y | OPD, DSK | ROM 2.2 is fully 128K-compatible |
Spectra | N? | OPD, DSK | FORMAT command is just a quick format | |
SpeccyDOS | ON | N? | SDD, DSK | |
Swift Disc | Swift Disc 1 | Y | DSK | Can be used at the same time as the Interface 1 |
Swift Disc 2 | Y | DSK | Can be used at the same time as the Interface 1 | |
Rocky Gush | ON | N? | DSK | Each side of the disk is treated as a separate drive |
Watford SPDOS / Kempston | SPDOS | Y? | KDI, DSK | Watford SPDOS requires a system disk to start |
KDOS | N | KDI, DSK | Modded ROM can run in 48K locked mode | |
KDOS128 A6 | Y | KDI, DSK | 128K-compatible modification | |
Clive Drive | ON | Y | QDD | |
Macronics FIZ | ON | N | RDD | Modded ROM can be used on a 128K |
F2 and Alt-F2 allow you to assign a particular NMI to these keypresses. It would be fairly common to have a Multiface attached at the same time as another interface with a magic button, so it is possible to assign one to each key.
Option | Notes |
Normal NMI | Normal NMI without paging any ROM |
Betadisk Snapshot | Beta 48/128 snapshot - will only work with TR-DOS 4.0 or greater |
Scorpion Monitor | Goes into Scorpion Monitor |
Multiface | Goes into Multiface menu or installed program (e.g. Genie). Break + NMI will uninstall Multiface program |
DISCiPLE / +D Snapshot | DISCiPLE ROM 3 needs Caps-Shift pressed as well. 3 = Save Scr, 4 = Save 48K snap, 5 = Save 128K snap (press Y if screen changes, N if it doesn't) |
SpeccyDOS Magic Button | Magic 2.x NMI routine must be loaded from disk first |
Swift Disc DOS | Goes into DOS, many commands available |
Rocky Gush NMI | Saves a 48K snapshot to disk with a name like "nmi0" |
Clive Drive Keymaster | Press 1 - Save 48K snap (the entire disk side!), 2 - Save screen, 0 - return |
MB02 NMI | Requires a routine to be installed first? |
Convoy CDOS Magic Button | Press 1 for 48K snap in IM 1, 2 for 48K snap in IM 2, 3 to save screen. Default name: "CDF!" or "$CDF!" Rename the file before saving another! |
Videobit S80 NMI | Sym+9 = CAT, Sym+0 = Format, J = Load, S = Save, Sym+J = Load Snap, Sym+S = Save Snap, Caps-Shift = Exit, Sym+Space = Back out of certain menus |
Pera Putnik Snapshot | Saves part of snapshot, then drops to BASIC. Type MOVE "filename" to save the rest of the snapshot using that filename |
HiLow DataDrive NMI | Not much use without an emulated drive. Press 1 + NMI to reset, Space + NMI for copyright message |
CPU Mhz will allow you to change the number of emulated CPU cycles, from 3.54 Mhz up to 70.80 Mhz. Note that this is not the same as increasing the emulator speed because the vertical blank interrupt is still at 50 hz. This option is excellent for slow games like Outrun, the Freescape games (Driller, Dark Side, Total Eclipse, Castle Master, etc), and others. Although no attempt at realism is made, so wait-states and "re-triggering interrupts" will definitely not be accurate.
You cannot load from cassette while the Pera Putnik Floppy interface is active, so you have to keep switching it on and off. It can be more stable if you do this while in a PAUSE 0. This interface replaces BASIC with its own variant, and you have to type everything out letter-by-letter. Note that you have to put a space between LOAD and the first quote mark.
The Challenge Sprint custom cassette deck is not emulated. While you can't do much with this, if you have a suitable snapshot, you can break in and type SAVE "x" CODE 16384,49152 and live out your fastloading dreams (it takes 1 minute and 10 seconds).
Option | Setting | 128K | Image Formats | Notes |
SDI | ON | N? | ? | 1541 not emulated. Type RANDOMIZE USR 16000 to start |
Logitek Proceed | ON | N? | ? | 1541 not emulated, supports unemulated 80K RAM extension |
TurboDrive | ON | Y | DSK | |
Timex FDD | ON | Y? | DSK | Has its own Z80 CPU, needs a system disk |
MB-02 | ON | Y | DSK, MBD | Needs a boot disk, only older (non-IDE) ones seem to work |
Convoy CDOS | ON | Y | DSK | Goes into USR 0 mode |
Videobit S80 | ON | N? | DSK | NMI required for CAT, ERASE, FORMAT, etc. |
Pera Putnik Floppy Interface | ON | Y? | DSK | Goes straight into 48K lock mode |
HiLow DataDrive | ON | Y? | ? | No drive emulated |
Challenge Sprint | ON | N? | ? | No cassette deck emulated |
There's room for more on this sub-page...
Again, you may set the NMIs and the CPU Mhz here. See above for the list.
Option | Setting | 128K | Notes |
Currah Microspeech | ON | N | SP0256-AL2. Has ROM with commands. By far the most popular speech synthesiser, it is supported by a number of games |
Cheetah Sweet Talker | ON | Y? | SP0256-AL2 |
Fuller Orator | ON | Y? | SP0256-AL2. Supports speech in Chuckie Egg |
DK'Tronics Speech Synthesiser | ON | Y? | SP0256-AL2 |
Datel Vox Box | ON | Y? | SP0256-AL2 |
AY (1st) Mode | AY-3-8912 | Y | Standard 128K Spectrum |
YM 2149 | Y | Some clones | |
AY-3-8930 | Y | The noise channel on the AY-3-8930 (when switched to its extended mode) is not emulated. Nothing supports this! | |
YM 2203 | Y | Does not generate any FM sound. Only the status bits are emulated to allow certain demos to proceed (mostly silently) | |
AY (2nd) Mode | OFF | Y | Standard 128K Spectrum |
AY-3-8912 | Y | Turbosound add-on | |
YM 2149 | Y | Turbosound add-on | |
AY-3-8930 | Y | The noise channel on the AY-3-8930 (when switched to its extended mode) is not emulated. Nothing supports this! | |
YM 2203 | Y | Does not generate any FM sound. Only the status bits are emulated to allow certain demos to proceed (mostly silently) | |
SAA 1099 | ON | Y | Some Turbosound add-ons. The same ports as the SAM Coupe. Supported by the game Krunel |
AY in 48 Mode | ON | N/A | Adds an AY chip (at the usual 128K ports) to the 48K model |
Fuller AY | ON | Y? | AY at non-standard Fuller addresses. Combine this with Fuller Orator to get a Fuller Master Box. Note: Fuller AY is currently broken |
SpecDrum DAC | ON | Y? | Cheetah SpecDrum 8-bit DAC, it can produce some nice drum sounds |
Covox DAC | ON | Y? | One channel 8-bit DAC. Used on some clones |
Stereo Covox DAC | Stereo | Y? | Two channel 8-bit DACs. Used on some clones |
Soundrive | Y? | Four channel 8-bit DACs. Used on some clones |
There is a version of Monty on the Run using the MB03 SID chip. To save you some time, I will tell you that you have to run it in USR 0 mode. (Type USR 0 in 128K BASIC, then load the TAP file).
Please note that my SID chip emulation is not very good.
Option | Setting | 128K | Notes |
ULA 64/ULA + | ON | Y | Allows for a much greater palette. Supported by some modern games |
Spectra | ON | Y? | Allows for a greater palette and new video modes. Supported by some modern games |
SID Chip | TSID | Y? | I can't actually remember what this is... |
MB03 | Y? | No other part of the MB03 is emulated. Use USR 0 mode for Monty on the Run! | |
AY 128 MIDI | ON | Y | Directs the output from the PLAY command in 128K BASIC to the default MIDI device |
Zombie Zombie MIDI | ON | Y | This games uses a unique cable that plugs into the serial port in the Interface 1 (you must activate this as well) |
RAM Music Machine | ON | Y | Partially emulated. 8-bit DAC (emulated), MIDI output (partially - interrupt speed is wrong), MIDI input (not emulated) |
Here you can change some of the ROMs that are currently loaded. Not all are available to change, and you can see that I will soon fill up my sub-menu system once I do add them all...
Load 48K ROM is currently the only way to use an Interface 2 ROM cartridge (it must be the standard 16K).
The DISCiPLE/+D may use a 16K ROM/RAM mixed image, so that you do not have to boot it up every time. First you need to boot up your system and get the configuration how you want it, then save out a 16K image by typing out the following:
For the DISCiPLE:
POKE 30000,243 POKE 30001,219 POKE 30002,187 POKE 30003,219 POKE 30004,123 POKE 30005,118 RANDOMIZE USR 30000
Or, for the +D:
POKE 30000,243 POKE 30001,219 POKE 30002,231 POKE 30003,118 RANDOMIZE USR 30000
Then, go into the F6 menu and set the start address to 0 and the length to 16384, and "save memory chunk" to the ROMS/MGT directory. You can then choose this ROM by loading it in this menu, or from the INI file, with the DISCiPLEROM or the PLUSDROM options (see the INI/command line page for more information).
This will work fine with any +D ROM, or a DISCiPLE System 3 ROM. An earlier, DISCiPLE System 2 ROM will still need OUT 123,0 to reactivate it after every reset. That's just how the older one worked.
The Multifaces may use a 16K ROM/RAM mixed image, so that a program may be preinstalled (e.g. Genie or Lifeguard).
Press Caps-Shift + Space + NMI to uninstall a Multiface program and go to the usual menu. If your keyboard does not allow this combination, try Caps Lock + Space + NMI.
If you wish to make your own Multiface 16K ROM/RAM image, using a pre-installed program (to save you from loading it every time), you can do this for MF128:
POKE 30000,243 POKE 30001,219 POKE 30002,191 POKE 30003,118 RANDOMIZE USR 30000
Or this for MF1/MF128OLD:
POKE 30000,243 POKE 30001,219 POKE 30002,159 POKE 30003,118 RANDOMIZE USR 30000
Then, go into the F6 menu and set the start address to 0 and the length to 16384, and "save memory chunk" to the ROMS/MF directory. If it is named GENIE1.ROM (for MF1), GE128OLD.ROM (for MF128OLD), or GENIE128.ROM (for MF128), it will be automatically loaded when you run the emulator.
Some pages are different in SAM Coupe mode. Page 3-6 are not relevant at all, and should not be there!
Page 2 in SAM Coupe mode:
Help Screen
Please note that the DACs for the SAM Coupe sound a bit odd, and it's something I'll have to look into.
All of the parallel port DACs are emulated on port 1. The Mono DAC can't be on at the same time as the EDDAC/SAMDAC.
Interfaces sold by Quazar have been safely deactivated from a distance, and I have no idea if I'm allowed to emulate them yet. The SID player for the SAM Coupe is very nice, it's a shame you can't hear it!
Option | Setting | Notes |
EDDAC/SAMDAC | ON | Stereo 8-bit DAC |
Mono DAC | ON | Mono 8-bit DAC |
Blue Alpha Sampler | ON | Mono 8-bit DAC |
Blue Alpha Voicebox | ON | SP0256-AL2 |
Quazar Surround Sound | OFF! | 4 channel 8-bit DAC |
SID Card | OFF! | SID Chip interface |
(C) Jane McKay, 2024.