Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
    About
    Library
        Adverts
        Memotech
        Miscellaneous
        Program Code
        Reviews
        Technical

            Component Data

            Data Books
            Data Sheets
            Design Guides
            Tutorials

            MTX Specific

            Firmware
            Tech Notes
    Manuals
    Options
    Photos
    Projects
    Repairs
    Software
    Tools
    User Groups
    Video Wall
Memotech CP/M
Atari ST
Commodore Amiga
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Memotech MTX Series

MEMOTECH

     The "Speculator"    

   

 

Overview

The "Speculator" was created for Memotech by Tony Brewer. It was designed to allow an MTX512 or RS128 to run a number of ZX Spectrum games, since the Speculator emulated a ZX Spectrum with 48K of RAM, it could not run on an unexpanded MTX500. It consisted of a small hardware module built into a ROMPAK cartridge which plugged into the expansion edge connector on the left hand side of the MTX and a companion software tape.

Although using different graphics processors, both the ZX Spectrum and the MTX computers used a Z80 processor and had the same screen resolution (256x192), the MTX running slightly faster than the Spectrum - 4MHz compared with 3.5MHz. To avoid any issues with copyright, the Speculator does not use any code from the ZX Spectrum ROM - apart from a very few ROM calls, most games bypassed the ROM anyway.

The Speculator Tape 1 Instruction leaflet is on the Manuals page.

Technical Details - extracted from a number of articles on my page of MTX Reviews.

"The user first loaded the Speculator tape which loaded the ZX Spectrum emulation and presented a menu of supported Spectrum games. The banked-memory of the MTX moved from its normal position (PAGE1, 8000H-BFFFH) to PAGE0, 0000H-3FFFH, giving PAGE 0 a complete range of RAM from 0 to 64K. The Spectrum character shape-table is created at 3D00H-3FFFH, while 4000H-5CB5H is put aside for the "Spectrum screen" and "Spectrum system variables". This leaves 5CB6H-FFFFH free to accept the Spectrum game code.

The supervisory code lies somewhere in the 2000H-5CFFH area. One major purpose written routine is the "Load Spectrum-format tape" (there is also a "Save Spectrum-format tape" to cater for games where you can save a partly saved version), but the main effort of coding is routine which takes the display from 4000H (Spectrum display file) and 5800H (Spectrum colour attributes) and passes it to the 16K Video RAM used by the Memotech Video Processing chip (the VDP). The task is performed using interrupts, but even so, it takes two passes to move the relatively small Spectrum video RAM (size 1B00H) to the larger VDP RAM (size 4000H) ; this does not reduce the speed of the game, but does cause the graphics to move less smoothly; a point which is noticeable when large sprites are moved. For all other games, there is no visual difference between the Spectrum version and the Memotech version.

When a games program uses a call to the Spectrum ROM, something has to be at the "ROM address" to intercept the flow of the program. An example is the CLS routine, widely used by games programmers as a quick way of clearing out the area of RAM from 4000H-5B00H. It's at 0D6BH, so the MTX has screen clearing code at 0D6BH too. Similar trapping has to be done for the often used Z80 RST addresses (print-to-screen at 0010H is often used), and for the interrupt RST at 0038H.

BEEPER (03B5H) is rather more difficult. Sound is not used on the Memotech version of Spectrum games, since the effect does not warrant the high cost implication of implementing it. Nevertheless, the call is intercepted and the game code thinks that the beeper port exists: this is necessary to avoid program crashes.

Fooling the code is the main task of the hardware, which, although in a ROM-pack, doesn't contain a ROM. What it does contain is 5 chips, two of which are custom-blown PALs. The PAL (Programmable Array Logic) is the cheap younger brother of the ULA, and is used extensively in decoding circuits, and (as a side benefit) to prevent inquisitive constructors working out how a circuit operates. The other three chips are standard devices. The other duty of the hardware is to pretend to be a Spectrum keyboard: with some help from MTX code and interrupts, the key presses (on the Memotech keyboard) are translated into Spectrum style key-presses and joystick movements."1

Graphics Details

"The Einstein and the Memotech both use a Texas Instruments video chip, rather than the Spectrum's all-purpose custom ULA. The TI chip can produce the same 256 by 192 dot resolution as the Spectrum, but there the resemblance ends. It is not memory mapped, so the processor has to talk to it character by character through "ports". This  makes it much slower than the Spectrum, but Tony has found an ingenious quirk which allows him to update any sixth of the screen 50 times a second, funnelling information from the Spectrum display area, where the games put it, through the ports.

Tony's electronics generate appropriate timing signals, and a small change to the loader lets him determine which parts of the display are updated most often. For instance, most of the action on Starion takes place in the top two thirds of the display. For Starion, Tony's code refreshes the bottom third less often, so that the rest of the display is almost as fast as the Spectrum's.

Colour is tricky too, because the TI display chips needs eight times as much information as the Spectrum does. Tony's code checks the whole attribute grid and only transmits colour information for parts that change. This seems to work very well in practice. The Spectrum's eight colours are mapped onto the closest shades in the TI's palette of 16. The hardware detects attempts to change the Spectrum's border colour and re-directs the information, but it can only do this 50 times a second when the game is running. In general that's quite fast enough, but it rules out the "colour bar" effects that spice up a few Spectrum games.

The graphics emulation works well enough, although there is a certain amount of extra flicker, and the gadget does nothing to cure the Spectrum's attribute problems. I noticed that Daley Thompson's Decathlon ran a little slowly and unsteadily at times, but was still playable.

The same faults exist on the Spectrum version, but they are not as obvious: as Tony Brewer says, "The Emulators accentuate things that aren't done very well on the Spectrum".

Apparently, the biggest problem setting up the Speculator to support a game is getting the code into Memory; most games nowadays use trick loaders which rely on the exact Spectrum hardware, so a special Memotech or Einstein loader must be written by Tony Brewer. Getting the actual game to run is a cinch by comparison - most of the time. It just involves setting the speed at which the different areas of the screen are refreshed."2

Speculator Hardware Details

As noted in the "Electronics and Computing" article, the Speculator contained two custom blown PALs. The internal photo of the Speculator hardware shows them identified as "SPAL1D" and "SPAL2D", Tony advises that these were the fourth versions of the PALs (A, B and C being earlier attempts at the PAL code) - PALs are "one-time programmable", so any modification required "blowing" of a new chip.

The large chip is a 2K memory chip, an Hitachi HM6116P-4 200ns SRAM, Tony advises that only a tiny portion of this RAM was actually used, around 1%.

The other chips are standard 7400 series logic chips, a 74LS123 (dual monostable multivibrator) and a 74LS74 (dual flip-flop).

Although the original design drawings are no longer available, Tony has been able to reverse engineer the board and with his help, I have drawn up a Speculator PCB schematic, it is available on the Manuals page.

Speculator Source Code

In 2023, Tony released the source code for the MTX and Einstein versions of Speculator into the Public Domain and posted them on this thread on the Memotech Forum. Tony retains the copyright to these files, but as he comments on the Forum "anyone can do anything with it".

(Comments from Tony's posts on Memorum) Memotech Einstein
[Tony] used Microsoft M80 and L80 to assemble and link the source files, the same as was done at Memotech. Einstein version has two .sub files to make assembling & linking easier and these can be used to create MTX versions

The first thing someone could try is assembling & linking the MTX version. See SPEC1.TXT for linking order. Note that the M prefix is omitted from actual source files in zip file. Original files were named MSPx.MAC but I changed to SPx.MAC for the Einstein. The SPL80.SUB shown below is not 100% right; SPL should start 2400H after SPK1. Maybe needs /P:2500, before SPL/M. It's a long time since I used L80 and much much longer since I created an MTX program file.

 

ZX Spectrum Games supported by the Memotech Speculator - Game Tape 1

Game Title Publisher
Arcadia Imagine
Astronut Software Projects
Atic Atac Ultimate
Daley Thompson's Decathlon Ocean
Flight Simulation Sinclair - later version
Gridrunner Quicksilva
Humpty Dumpty Meets The Fuzzy Wuzzies Artic
Hunchback Ocean
Jetpac Ultimate
Jump Challenge Martech
Laserwarp Mikro-gen
Manic Miner Bug-byte
Potty Pigeon Gremlin Graphics
Project Future Micromania
Spectipede R & R
Starion Melbourne House
Stop The Express Sinclair
Tornado Low Level Vortex
Traxx Quicksilva
Twin Kingdom Valley Bug-byte

Speculator for Tatung Einstein

A version of Speculator was made for the Tatung Einstein and sold by SyntaxSoft. The Speculator loader software for the Einstein version was supplied on disk and this version also allowed the original Spectrum game to be saved onto 3" disk.

The Einstein version appears to have been more successful than the Memotech version - three Einstein loader disks were available, allowing many more Spectrum games to be loaded.4

 

Original artwork

Mock up

Mock up

Arcadia 180 Darts 3D Tunnel
Astronut Ad-Astra Android
Atic Atac Dangermouse Blood 'N' Guts
Daley Thompson's Decathlon Desert Rats Chess
Flight Simulation Feud Countdown
Gridrunner Gremlins Finders Keepers
Humpty Dumpty Meets The Fuzzy Wuzzies Lords Of Midnight Firebird
Hunchback Lunar Jet Man Hungry Horace
Jetpac Master Of Magic H.U.R.G. (Game Designer)
Jump Challenge Nonterilaqueos Lazerzone
Laserwarp Raster Scan Micromouse
Potty Pigeon Rentakill Rita Mugsy
Project Future Rescue Nifty Lifty
Spectipede Robin Of Sherwood Penetrator
Starion Snowman Pssst
Stop The Express S.O.S. Push Off
The Hobbit Spitfire 40 Scrabble
Tornado Low Level Sweevo's World Sorcerer Lord
Traxx Terminus Spin Dizzy
Twin Kingdom Valley Way Of The Fist Uchi Mata
Disk 1 included the same loaders as the MTX tape, except Manic Miner was replaced by The Hobbit  

Extras :

A New Version Of Cload

Spectrum Basic Detokeniser

 

The Einstein version was built into a small plastic box that connected to the expansion interface on the rear of the computer, the "PIPE" interface.

As the PCB photo shows, the Einstein version was a little more complex than the MTX version, for example the Einstein version used its own internal own speaker, rather than the computer's, to generate the sounds from the Spectrum games. Since the Einstein computer was supplied with one or two 3" floppy disk drives, rather than a tape recorder interface, the Einstein version of Speculator had 3.5mm jacks for loading/saving Spectrum programs from tape.

Mike Smallman wrote a book for The Einstein Speculator, this book gives a detailed description of how additional Spectrum games can be loaded into Speculator. Click on the book cover to download the book in PDF format.4

 

References:

1. "Electronics & Computing Monthly", September 1985, "A Memotech Metamorphosis", by Richard Sargent

2. "Crash", Christmas Special, 1986, "Is it a Spectrum?....No, it's a Speculator", by Simon Goodwin

3. E-mail discussion with Tony Brewer, February 2013

4. Tatung Einstein Reborn website

mailto: Webmaster

 Terms & Conditions