The Three Chip Retrocomputer


Where homebrew computers are usually complex bundles of wires and chips, [Mike]‘s own single board computer is not. It’s a three-chip computer with only a CPU, RAM, and a microcontroller that is able to emulate the retrocomputers of yore.

Normally, a homebrew computer project requires some amount of ‘glue’ logic – a few NAND, OR, or inverters to combine signals and send them where they’re needed for address decoding. This tiny pocket computer doesn’t need any of that; all the address decoding is done on a 40-pin PIC microcontroller.

With 64kB on the PIC 18F46K22, there’s enough space for all the address decoding logic, space for a pseudo ACIA mapped onto the $DF page, and a ROM image that provides a monitor program and a copy of BASIC. Basically, with the addition of a USB to serial adapter, this is a three chip 6502 single board computer, and with the right ROM monitor can emulate an Apple I, Woz monitor included.

Yes, 6502 projects are a dime a dozen, but [Mike]‘s work with the address decoding logic on the microcontroller is top-notch. There are a few remaining chip select lines in his schematic, and with another microcontroller it would be easy to add VGA out, a compact flash adapter, or some other really cool peripherals. Good thing there’s an expansion port on this thing.


  1. J.C. Wren says:

    That is a slick piece of work. It’s only relatively recently that microcontrollers have become fast enough to be able to decode the control signals of a another process in real-time. I had casually looked at doing something similar with a Z80 and an ARM-7 core a few years back, but the LPC-2148 just isn’t fast enough to keep up with a 2MHz Z80.

    This is seriously cool. If has PCBs available, I may have to build one. I spent thousands of hours on 6502-based systems (KIM-1, Apples, and some other more obscure ones).

    Nice work, Mike!

  2. Lallander says:

    I want a pocket PDP-8 so bad. :swoon:

    • J.C. Wren says:

      I have a several of the PDP-8 boards (they actually use the Intersil 6100 chip, which was used in the Decmate II). I’ve also got a couple of the IO boards another fellow did, and one of the front panels. It’s fun to pull them out once in a while and fire up OS/8.

      There are some FPGA implementations of the PDP-8. I haven’t looked at those recently, but a pocket PDP-8 isn’t out of the question.

      • mikemac says:

        I’m waiting for the pocket Cray-1! Along with the pocket Vax 11/780 to do the I/O! :-)

        So how big of a PIC does one need so that it can emulate the 6502 along with the I/O?

  3. Tomo says:

    OHOHOHOHOHOHOHOH! WANT! WANT! WANT! Gimme! Gimme! Gimme! Get this thing on Kickstarter.

  4. nes says:

    Awesome work! Is this not the sort of thing PICs were originally designed for? Mopping up the I/O functions for some ancient 16 bit processor with none of its own?

  5. JamesInCA says:

    “Retrocomputers of yore” strikes me as either redundant or incorrect. The computers of yore weren’t, at the time, retrocomputers; they were just computers. A “retrocomputer of yore” would be, say, a 1975 ENIAC emulator.

  6. Mike, Any chance of purchasing PCBs for this project?

  7. Figureitout says:

    This is what I come to hackaday for…Great work Mike!

  8. ke7eha says:

    interesting choice. you might be able to make it a two chip SBC by using a flash based FPGA in the place of the RAM and the PIC. the FPGA would be a more optimal solution to implement the glue logic, and most have some SRAM blocks tied into the routing fabric. Would be a bit more complex, though.

Leave a Reply

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

You are commenting using your 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,670 other followers