To emulate vintage microprocessor hardware, it’s normal to find a modern host that provides alongside the number-crunching grunt, sufficient physical connections to interface with its support hardware. Thus if you were shopping around it might be reasonable to pick something with a powerful core and plenty of pins. Yet to emulate an 8080, [Ted Fried] has eschewed both of these — opting for an ATtiny85, a microcontroller deficient in both pins and processing power.
This seemingly impossible feat is achieved by reducing the physical connection to an SPI bus and offloading the support functions to a Teensy. The emulation code is significantly optimized C, and includes a 128 byte cache to speed up matters. This delivers a speed claimed to be only very slightly slower than a real 8080 when booting CP/M, which is quite a feat.
We’re sure that CP/M enthusiasts will have fun with this project, and we especially like the full write-up. Going to the effort of making fake 1975 electronics magazine covers for the project really is going the extra mile, and we appreciate that. Meanwhile if you’d like one of your own, the whole thing can be found in a GitHub project.
If you’re not familiar with the 8080, maybe we can get you started.

Very cool! The teensy provides ram, roms, floppies. And the 128 byte cache cuts down on ram accesses so the performance is reasonable even though accessing all system memory over spi would otherwise be rather slow. Clever!
If ATtiny85 worked, how about a more challenging ATTiny10? Only 6 pins, 2 for power, 1 for reset (until it’s disabled to become another GPIO) and 3 GPIO. 1KB, 32 bytes RAM, and not a whole lot of power.
I’m confused, sorry. If you need a Teensy, why not just put everything on the Teensy?
In the old days, there were ROM / RAM emulators, that used ribbon cable and an IDC connector. Is this a modern version – a socket with a low pin count, and I2C instead of ribbon cable?
Is the ATtiny just doing 3.3V/5V logic level translation?
Leaning on the Teensy is like strapping a Ford F-150 to your moped and claiming you’ve given it the ability to haul freight.
I suppose you could say that you can get a capybara to write poetry if you also attach a human poet to that capybara via some sort of harness.
Now THAT is a poetry reading I’d pay to attend.
Fitting the core emulator on an ATTINY85 is an impressive feat. Several commenters here are kvetching about using a Teensy to make up for the dearth of pins, but I think their criticism is misplaced. The soul of the machine is in the ISA, and that’s 100% on the ATTINY85.
Agreed. Firstly, it’s an emulated 8080, which i think was the point here, so really, there is no blashemy done here. Secondly the cold hard fact is, that getting old chips is gettig harder and harder and there is no knowing what you get, if you try.
I’m trying to get a 8085 system up and running. No CPU emulation, it’s a a complete system other than no keyboard or display, but i also am going to use Nano or ESP32 for emulating the 8279 with a i2c keyboard and 7-segment display, and a serial interface. Sure it’d be nice to stay period correct, but then the system would stay in the box until i die and then it’d be tossed to trash. It’s either or, i don’t have a 8279 and making the board for it and all that, too much work.
I’m afraid I have to join the naysayers club. With the number of pins ATtiny85 has, it should be possible to attach a SPI flash chip for disk emulation, some serial RAM (static or pseudo-static) and a UART chip (e.g. MAX3100). But seeing author’s other projects I completely understand why he chose a Teensy ;-)
While the Tiny85 makes this a bit more challenging, CP/M was already running on Spritemods’ 8080 emulator on an ATmega88 more than 15 years ago: https://spritesmods.com/?art=avrcpm