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.


  1. hackme says:

    I was impressed. Until I read “PIC 32″… that’s a heavy MIPS-beast, that’ll happily run C-Code. Anyway, nice job!

  2. Anon says:

    Pretty neat, I must say, I like the keyboard especially.

  3. Dongcoptar says:

    it could be done way simplier with a couple of atmegas (or single arduino)

    • cantido says:

      you can also get a z80 clone from toshiba with a the standard chips (io etc) built in…

      something tells me that price etc wasnt a major consideration here

  4. therian says:

    you Atmel fans just cant keep it quiet cant you ?

  5. therian says:

    and Dongcoptar don’t compare 8.87$ for 32MX795F512H to arduino price. I wont go into performance comparison since there is no point

  6. mike says:

    i wonder how you build it. i wish there was a parts list.

  7. Ben Ryves says:

    How odd, I was mentioning this project to someone else today and now here it is on Hack a Day. :-) Excellent work, Jaromir!

  8. DrF says:

    I like that keyboard, reminds of the old Soviet built Zx Spectrum clones.

  9. strider_mt2k says:

    It’s as visually pleasing as it is clever and well made.

    Which is to say that it is beautiful all around!

  10. Jaromir Sukuba says:

    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.

  11. Orv says:

    That’s a nice, neat build. I’d be embarrassed to show some of the ugly stuff I’ve put together on perfboard.

  12. mike says:

    hey Jaromir if you look at this page again could you please post a parts list!

  13. Jaromir Sukuba says:

    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.

  14. Angelx says:

    So i have a question for what is this thing good?thx

  15. Jaromir Sukuba says:

    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.

  16. brian says:

    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

  17. vitasam says:

    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

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,513 other followers