Guides

Version:
1.0
Author:
Dean Belfield
Coding
Advanced
Download Guide Files

This is an extract from Dean Belfield project which you can read on he's website & we have also included his details in the links.

Tatung Einstein Archives - L Break Into Program, 0:1

Recreating my ’80s dev system (Part 1)

September 29, 2024

My first job after leaving college was as a games developer at Software Creations, a small UK games company based in Manchester.

Up until the early ’90s they were using Tatung Einstein's as the source machine for developing games on the Sinclair Spectrum, Amstrad CPC and Commodore 64.

The workflow was quite simple, yet a massive improvement on my home rig, which was a single 48K ZX Spectrum with an Interface 1, two micro drives, and the Zeus Z80 assembler.

On the 8-bit micros memory was at a premium, so not having the assembler and source code resident on the target machine was an advantage. On my home system these would be overwritten every time I assembled and ran the game and I’d have to load them in again. With this workflow, all the developer had to load back in was the boot loader.

I was employed as the Amstrad CPC developer. The first couple of days was spent copying the Spectrum parallel transfer board and making it work on the Amstrad. Mike Webb gave me a bag of components and some Veroboard and basically said: “How’s your soldering?”.

The board was relatively straightfoward to build – an 8255 PIO chip and maybe a single logic chip for lazy address decoding. Needless to say I got it working more or less first time and used it for my Amstrad CPC conversions. I think it may have even survived our move to using PCs as source development machines.

The proposed Spectrum Z80 PIO board

As an aside, I think Mike Webb used 8255 chips because they were cheap and readily available from the Maplins next door to the Software Creations office on Oxford Road in Manchester (opposite the BBC building).

So, what’s the plan??

I’m an exhibitor at RetroFest 2024 in November and have decided to recreate this development system. I’ve already got a Tatung Einstein, several Spectrums, and Ste Ruddy’s editor/assembler for the Einstein. The only thing missing is the parallel transfer board.

I’ve decided to modify the original build slightly and use a Z80 PIO chip instead – this will match the chip in the Einstein and is (IMHO) slightly easier to interface with the Spectrum in terms of hardware and software. It is also fitting, in honour of the end of production of the Z80 CPU and peripheral chips.

In addition to using the PIO I’ll be adding some blinken lights, partly to help debug, but mostly because everyone loves them.

Starting the project

I’ve created a schematic for the stripboard on Fritzing as it is quite good at breadboard/stripboard layouts. This is loosely based upon a reference design in The Spectrum Hardware Manual by Adrian Dickens. I’ve added a couple of line drivers for the LEDs that are connected to the data and handshaking lines so that I don’t source too much current from its data lines.

It seemed like a good idea to test the Tatung User I/O port was still working after 40-odd years. It is directly connected to Port B of its Z80 PIO chip (Port A is used by the parallel printer interface), and could easily be damaged. A short BBC BASIC for Z80 program and a simple interface board connected to my mixed-signal oscilloscope proved all was working as expected.

The BBC BASIC program – note PUT in this context outputs a value to a Z80 port.

10 PUT &33,&CF     : REM Set the I/O port to mode 3

20 PUT &33,0       : REM Set all 8 pins to output

30 FOR A%=0 TO 255

40   PUT &32,A%    : REM Output the value on Port B

50 PRINT A%

60 NEXT

70 GOTO 30

So we’re all set on the Tatung side, and I’ve got a rough idea what I’m going to do on the Spectrum side.

Next steps

I need to build the Spectrum Z80 PIO board, at least connecting the PIO chip to the Spectrum bus, and test that it works on my stunt Spectrum using a similar method to how I tested the PIO on the Tatung. I think I’ve got all the parts in I need – got a couple of Z80 PIOs in stock and have purchased an edge connector from eBay.

Once that is done I’ll need to finish off the board, test-connect the Spectrum to the Tatung then write the bootloader, probably initially in Sinclair BASIC, then once I’m happy it works I’ll port it to Z80 assembler.

I’ve got a deadline – ideally by end of October – but think I’m in a good position to finish before then.