Whilst this might sound like an early 1980s BBC TV computing programme, it’s actually a new retrocomputing project based around the Z80A.
I have spent 2 days tidying up my office/workroom and discovered that I am surrounded by dozens of microprocessor, microcontroller and FPGA dev-boards.
I have everything here from ARM to Z80 - with AVR, Gigatron, Lattice, MSP430, PIC, Propeller, STM32, Teensy and Xilinx in between.
The only thing I don’t have at hand is a real 6502, well not to my knowledge, only a simulation that runs on an ARM.
Enter the Z80.
My first exposure to microcomputers was in summer of 1978 when my high school acquired a Research Machines 380Z and part of a computers in schools educational grant. This was augmented in 1982 with a BBC Model B.
By 1981/82 several of the pupils had ZX81s and we held a computer club on Friday afternoons after school. I was hooked on Z80 and built an autonomous Turtle robot using the ZX81 pcb - powered by 4 C-size NiCads.
Skipping to my college days in 1984, a friend and I successfully built a wireless modem using an FM bug - and sent ZX81 program data about 30m (100ft) across the dorms courtyard.
So in this strange year, 37 years later, with some time on my hands, and craving for some mental gymnastics I thought I would have a go at another Z80 project.
At OSHCamp 2019, I picked up an RC2014 Micro kit.
Info here: RC2014 Micro « RC2014
This is a 4" x 2" double sided pcb that holds a cmos Z80, a 62256 RAM, a 27C512 ROM and a 68B50 UART.
It’s clocked at 7.3728 MHz and comes with BASIC, and a Small Computer Monitor (SCM) burned into the ROM. The SCM includes a line assembler and a disassembler.
Along edge of the board is a 40 way 0.1" SIL connector - which exposes most of the Z80 bus in a user friendly (breadboard and stripboard friendly) manner, inviting you to hack together some expansion board.
We have come a long way since my introduction to Z80 hand assembly in the summer of 1981. The logical thing to do would be to use modern technology to make this board easy to program, tethering it to a PC or other non-volatile stoage means for program development.
The CMOS Z80 has an 8-bit data bus and a 16 bit address bus - all at 5V logic levels. It should be possible to use a modern device to take over the Z80 bus and deposit code into its RAM. This used to be called a ROM Emulator - or ROMulator.
Unfortunately, as time progresses, there are a lot fewer 5V tolerant devices available:- AVR, early Teensy’s, some PICS and STM32 ARM devices.
I like the ATmega1284p because it comes in a chunky 40 pin DIL, it has four neatly arranged 8-bit ports, 128K bytes of ROM, 16K of RAM and is Arduino IDE compatible. As well as UART, SPI, ADC, I2C, GPIO and other modern peripherals, it could make an ideal ROMulator and peripheral support device for the venerable Z80.
Back in the 1980s, the Z80 home micros were often hampered with having to spend a lot of time servicing the video display, only computing during line and field blanking intervals. If you relieve them of this graphics generation burden and run them at 10MHz, then hopefully performance will be reasonable.
This will be an ongoing project, so expect updates in the near future.