The original Macintosh computer, quickly renamed to the Macintosh 128k, sold for $2,495 (£1,969) when it launched in 1984. Now, thanks to the Raspberry Pi Pico and one dedicated maker, you can build your own for less than $6.34 (£5).
Matt Evans developed the project over an undisclosed amount of time. He was inspired by a conversation about building a desktop GUI for the Raspberry Pi Pico’s RP2040 MCU. He’d commented on running an old operating system instead, and the original Macintosh came to mind.
When it debuted in 1984, the Macintosh only had 128KB of RAM. Within months, Apple quadrupled that and released the Macintosh 512K. The original model was rebranded the Macintosh 128K. It came bundled with MacWrite and MacPaint. Eventually, software such as MacProject, MacTerminal, and Microsoft Word were released for the computer. When the Macintosh 512K was released, Apple soon offered the vector graphics drawing software MacDraw.
Evans’s goal was to bring the Macintosh 128K to life to run the originally bundled software and the all-important Missile Command. If he could pull it off, he’d also hoped to run MacDraw on his budget Macintosh. While putting together the hardware for the job was easy enough, getting it to run the Macintosh operating system took some doing.
Along the way, Evans developed three software projects: a Mac emulator he named umac, the pico-mac project to embed the umac emulator on the Pico, and the means to connect to a monitor and USB keyboard and mouse. For hardware, he used the Raspberry Pi Pico with three series resistors, a VGA connection, and DC power. He also used a USB OTG micro-B to A adapter for connecting a USB keyboard and mouse.
After a fair bit of trial and error, reverse engineering, and hacking various registers and variables in the Macintosh System 3.2 operating system, Evans had accomplished what he set out to do. Embedded into a Raspberry Pi Pico, the Pico MicroMac runs the original Macintosh operating system, MacWrite, MacDraw, and Missile Command.
Hardware-wise, Evans has built in support for the following hardware, according to the notes in the GitHub project:
- VIA A/B GPIO ports, and IRQs (1Hz and Vsync)
- VIA shift register for keyboard
- SCC DCD pin change interrupts, for mouse
- Paravirtualised disc storage
- Defaults to 128K of RAM, but will run as a Mac 512K by changing a #define(RAM_SIZE).
His project does not support:
- IWM/realistic floppy drives
- More than one disc, or runtime image-switching
- Sound (a lot of work for a beep)
- VIA timers (Space Invaders runs too fast, probably because of this)
- Serial/printer/Appletalk
- Framebuffer switching: the Mac supports double-buffering by moving the base of screen memory via the VIA (ha), but I haven't seen anything using it. Easy to add.
- Disc writes (easy to enable, untested). I didn't need to save my MacWrite essays so far.
Evans provides instructions to build the Pico MicroMac on the Github project page. He does warn potential builders, though, that a lack of soldering skills could lead to a zapped mouse. Nevertheless, it’s a great use for a Pico and demonstrates just how fast microcontrollers have come.