After a long hiatus, there’s new progress for the Plus Too FPGA-based Macintosh replica. Till Harbaum has ported my original, unfinished design to the MiST board, and has begun making fixes and improvements. The video shows Plus Too booting on the MiST board, and selecting a boot floppy disk image from the MiST’s overlay menu.
Plus Too is a reimplementation of a Macintosh Plus, synthesized in an FPGA. All of the original Mac’s chips are modeled in a hardware description language and implemented in the FPGA’s logic cells: the 68000 CPU, VIA, SCC, IWM, memory controller, video circuitry, etc. I did the original work four years ago using an Altera DE1 evaluation board, which pairs an FPGA with some SRAM, flash memory, and other components. It worked well enough to boot Mac System 6.0.8 from a replica floppy disk, but it suffered from stability problems, and had no support for keyboard, sound, SCSI, serial ports, or real-time clock.
Till Harbaum designed the MiST board to implement classic 16-bit computers like the Amiga and Atari ST as a System-on-a-Chip using modern hardware, and it’s better suited to the task of replication than a generic board like the DE1. It combines a powerful Altera FPGA with a separate ARM-based CPU. The ARM CPU isn’t used directly in the replicated system, but performs helper functions like loading the selected FPGA core from the SD card, managing configuration overlay menus, and mimicking external peripherals like disks. MiST already has working cores for the Amiga and Atari ST, as well as a large number of 8-bit computers and game consoles. The classic Mac is the only computer from that era that’s still missing.
Till’s progress with Plus Too on MiST so far:
- ported the original design to the MiST
- adapted the memory controller to use SDRAM instead of SRAM
- updated the 68000 CPU model
- replaced the 6522 VIA implementation with one from the BBC Micro
- implemented keyboard support
- added an on-screen menu to select floppy disk images
- fixed assorted timing bugs
Somewhere along the way, the stability problems I observed with the DE1 version also disappeared. This might be a hardware difference, or something related to the timing problems that were fixed.
Till is currently working on implementing on-the-fly GCR encoding of standard Macintosh disk images, similar to the way Floppy Emu works. The original Plus Too required disk images to be GCR encoded ahead of time, using a separate utility program.
His roadmap after that includes:
- get both floppies to work nicely with .dsk images (read only)
- make the video timing closer to a real Mac
- add sound
Additional info on the MiST board is at http://code.google.com/p/mist-board/
Source code for Mac-MiST is at https://github.com/mist-devel/mist-board/tree/master/cores/plus_too
Binaries are at https://github.com/mist-devel/mist-binaries/tree/master/cores/plus_too
Some discussion about the Mac core for MiST is at http://atari-forum.com/viewtopic.php?f=101&t=28648
Additional German-language discussion is at http://mist-fpga.net/viewtopic.php?f=24&t=102