Z80 Retro!

An all through-hole Z80 system running CP/M.

Public Chat
Similar projects worth following
A 100x100mm board (cheap to order from proto-board shops like jlcpcb, pcbway,...) that hosts a Z80, 512KB SRAM, FLASH ROM, serial and parallel ports, and an SD card along with all the software to bring up CP/M from scratch. Also included is an adapter board that allows the FLASH to be programmed in-circuit (and in-application) with any 40-pin Raspberry PI.

I am putting together a YouTube series on this project.  The first video in the in the series is:

There is a playlist that I will fill in as I go here: Z80 Retro! YouTube playlist

The basic plan is to build a Z80 board that only uses through-hole parts so that any beginner can build one.  The only problem is that I could not find a through-hole micro-SD card socket. So you have an option of either attaching a SD breakout board from Sparkfun (DEV-13743) or soldering on a surface-mount SD socket.

With a 10-MHZ Z80 and a bit-banged SD card driver, the transfer speed is about 150kbits/sec... which is a single-density 5 1/4 floppy... but with zero rotational delay.  So it runs at a traditionally realistic disc-speed.

The KiCad design files as well as gerbers ready for ordering your own boards and a PDF of the schematic can be found on the github projects repos: 2063-Z80 and 2065-Z80-programmer

The boot loader and BIOS software can be found in this repo: 2063-Z80-cpm

  • Testing The Peripherals

    john12/28/2021 at 20:54 0 comments

    I added some more videos to the YouTube playlist describing the details of this project:

    Today I am recording a walk-through of the CTC test code that is used to change the bit-rate of the SIO ports.

  • Initial firmware tests

    john10/23/2021 at 12:57 0 comments

    First software testing of the Z80 Retro board.

    It appears that the SIO /RTS pins don't quite work the way I expected when in Async mode.  I can't use them as a general-purpose output.  I should have used /DTRA and /DTRB for general purpose outputs.

    This problem only affects the /PRN_LF signal if and when there is data being rendered by the printer and the console at the same time.

    I have done much printing and have not seen any issues. But I should correct the mistake... on Rev 4?

    A hand-wire fix looks easy enough to do on a Rev 3 board as well.

View all 2 project logs

Enjoy this project?



john wrote 03/26/2022 at 01:22 point

I have been actively posting new videos discussing this project on my YouTube playlist.  But I think it is time that a Wiki is started to provide a place for guides.  If you are interested in participating, add a comment to this issue thread on github:

Thanks, John

  Are you sure? yes | no

john wrote 02/08/2022 at 21:26 point

I added a link to the github repo for the boot loader and BIOS code that I will be talking about in this YouTube playlist:

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates