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.

17 thoughts on “The Three Chip Retrocomputer

  1. 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!

    1. 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.

      1. 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?

  2. 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?

  3. “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.

    1. arguably, a 1975 emulator of a 1946 ENIAC would in fact be a retro-retrocomputer if it is duplicating much of the inner workings of a 1943 Colossus.

        1. Noe step this up in speed and processing power, a lot. I mean *a lot*. Then write a custom OS just to mine scrypt based cryptocoins. A 3 chip Dogecoin miner… Take that, $1400 mining boxes.

  4. 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.

    1. Sure, but if you’re going to do that, you may as well just use a VHDL 6502 core. There’s dozens of them out there, along with a number of these other 8-bitters, because they’re all so well characterized.

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