Z80 Retro Musings

Finding my old MPF-1 Z80 trainer system has got me thinking again about the machines from that 8-bit era.

The Z80 and the 6502 were the “go to solution” for most of the home micros of the 1978-1984 time period.

I grew up with a RM-380Z, various Sinclair machines, a Jupiter Ace, and a Tatung Einstein (cp/m machine). Almost all were bought at the end of their life-cycle - because I was a poor student in those days.

The Z80 was sometimes used because it gave direct access to cp/m - but on the Sinclair and later Amstrad machines, it was popular because it allowed DRAM to be refreshed with almost no additional hardware - leading to very economical designs.

This makes me wonder if there is any unexplored territory in some of these Z80 designs.

In recent years there have been some recreations of early Z80 machines - Tynemouth Software produces a pcb and kit for a Sinclair ZX80 replicant - called the Minstrel.

Grant Searle has done a lot to popularise the Z80 with his 7-chip minimum solution, and Spencer Owen with his RC2014 kit is now the world’s leading supplier of Z80 based systems!

So this got me thinking about revisiting the Z80 hardware - and whether something new could be done.

Many of the early Sinclair machines used a lot of Z80 machine cycles to create the video display, in TTL with the ZX80, and then with various Ferranti ULAs in the ZX81 and Spectrum.

Decoupling the Z80 from the overhead of updating the display could make for quite a powerful machine.

(At least) Two ideas spring to mind:

Use a FT810 - as used in James Bowman’s Gameduino 3, and offload the video generation to it - so the Z80 can get on with real work. James and I experimented with a slightly overclocked FT810 that would produce a 1024 x 768 display, connected to a SH VGA display using resistor ladder networks (The FT810 was originally intended to drive a parallel RGB LCD). The Z80 just has to send a list of objects to display and the FT810 does all the pixel pushing. The only fly in the ointment is that the FT810 needs an SPI interface - but this could be bodged onto a Z80 with a couple of parallel to serial shift registers.

The second idea is to use a Propeller P1 for video and audio generation, and possibly even memory decoding too. A Propeller P1 could become a smart peripheral to a Z80 and provide a bunch of modern peripherals such as SD card interface, audio, video, PS/2 keyboard and mouse - and possibly some form of paged memory management. In theory you could have a Z80 colour computer in about 4 or 5 chips - all of them breadboard friendly DIL packages.

The third idea is to look at the eZ80 range of processors. These are an enhanced pipelined Z80 with modern peripherals and a 24 bit address range. They feature a pipeline that eliminates the 4 clock per instruction limitation of the original Z80, and they clock along at 50MHz. So a Z80 system with 16M bytes of RAM becomes a distinct possibility.

From there on there are Z80 soft cores running on FPGAs at hundreds of MHz, or emulated on an ARM M4 or M7 on a $20 devboard.

Richard Russell wrote and supports a BBC BASIC for the Z80 - which has been around for almost 40 years.

Plenty of ideas - and plenty of time to get on with some of them.

4 Likes

I thought that the ULA in the Spectrum didn’t take up any Z80 cycles like in the ZX81. It does slow down the processor’s access to the shared memory, of course.

Quite a few Z80 micros and videogames used a TMS9918 video chip (or something based on it). In that case the processor and video had separate memories.

Understood - but the cpu still has to push pixels to the display memory.

With the FT810, the cpu only has to send a display list of what it wants to display - and this can be very low bandwidth - approximately 10K baud. The FT810 handles all the pixel pushing - so the host cpu does not have to.

With the 32 sprites there are less pixels for the cpu to push around to get things to move on the screen.

Some of the most classic accelerated video controllers were:

Slightly less retro was the 34010 from Texas Instruments which was a full processor that had bit addressing.

1 Like

Is this the sort of idea you are thinking of?
PropIO V2 or
ParPortProp

There’s also a Propeller based graphics card for RC2014 bus.

Mahjongg has been working on a similar idea the RhoCoCo.

Or possibly combine these ideas with a Propeller Z80 emulation?

1 Like

great and inspiring post and useful links, thanks! I want to build a Vectrex console from awhile, it’s inspiring to see other people find a way to do their “hardware dreams” came to the reality :smiley:

2 Likes

Your post mentions z80 FPGA soft cores, so I thought I’d take this chance to plug one that I wrote recently: https://github.com/scottlbaker/x820

1 Like

Thanks for the link to your work Scott - I’m sure we can find a use for a 50MHz Z80 !

1 Like