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.
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!
I want a pocket PDP-8 so bad. :swoon:
I have a several of the SpareTimeGizmos.com 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.
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?
OHOHOHOHOHOHOHOH! WANT! WANT! WANT! Gimme! Gimme! Gimme! Get this thing on Kickstarter.
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?
Absolutely correct, the PIC was started as a Peripheral I/O Controller for the General Instruments CP1600 processor.
6502 is 8 bit.
“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.
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.
Made me smile. Thanks.
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.
Yeah, er, doesn’t work like that.
Mike, Any chance of purchasing PCBs for this project?
This is what I come to hackaday for…Great work Mike!
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.
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.