Z80 Emulated On PIC Hardware

[Jaromir Sukuba] built a very portable, low power consumption Z80 emulator using a PIC microcontroller. Looking through his build photos we love the clean and resilient construction which includes a breakout board for the PIC 32MX795F512H that interfaces with the main board via pin headers and sockets. He’s using a home-built keyboard and a 4×40 character display but there is also the option to communicate with the device over an RS232 connection. Oh, and yes it plays Zork, which seems to be the benchmark whether you are emulating a Z80 with AVR hardware, or if you built one from transistor-transistor logic.

18 thoughts on “Z80 Emulated On PIC Hardware

  1. Hello guys, thanks for your comments.

    The code is written in pure C. So MIPS beast is needed here, as well for emulating peripherals (display, serial ports). Second reason for choosing this PIC was its 128kB of internal RAM – so I can run 64kB RAM virtual Z80 machine and huge RAM disk for CP/M. Adding external RAM to MCU lacking such as huge RAM would bring speed penalty, what more, device would be physically bigger. With PIC, it is only ONE(!) TQFP device – first revision of hardware had only two chips – PIC and MAX3232. Then I added external 128kB EEPROM and later I added FLASH, which is still not on pictures.
    I’m planning to bring more details (more info than just 17 pictures in flickr) about this device, and make its portable, hand-held version.

    The keyboard is made of single keys, salvaged from old computer, made in 80’s in former Czechoslovakia. There is a small PIC on board, outputting ASCII chars via USART for main PIC32.

  2. mike:
    sorry, I don’t know :-)
    There is PIC32, PIC16 in keyboard, 25LC1024 EEPROM, MAX3232 as RS232 converter, LF33 in voltage regulator, display, 10k trimmer for contrast adjustment, 33 keys, few resistors and capacitors, few LEDs.
    I’m planning to release schematics, sources etc… but I’m lacking spare time.

    cantido: yes, price WAS major consideration here. Emulating it in PIC32 is definitely cheaper than getting unobtainable and expensive chip, what more, I can configure it as I need for running CP/M. Development is easier, as I don’t need to flash external program memory and I can debug it very easily.

  3. Angelx: If you need to ask this question, then probably it is good for nothing, for you :)
    You can run CP/M on it – google for it. Under CP/M, you can run software from 70’s and 80’s and that is it. Simply old computer.

  4. i am looking to get into computer programming and this looks like a good starter project to get a general knowledge of how computers run, rather than just how to use one… any ideas for sites on how to build my own? and a overview of the coding? thanks brian

  5. Amazing project! Have you considered to build a low-power computer with eInk display?(e.g. like this: http://www.ebay.com/itm/1st-Edition-Barnes-Noble-Nook-ED060SC4-LF-6-BNRZ100-eInk-Display-Screen/111378182537?_trksid=p2047675.c100009.m1982&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%26asc%3D23309%26meid%3D7583085650423948237%26pid%3D100009%26prg%3D9834%26rk%3D7%26rkt%3D10%26sd%3D291165509502)
    I have HP100LX palmtop PC, which is powered from two AA-batteries. But having DIY CP/M computer with perfect display will be a dream :)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.