BMOW title
Floppy Emu banner

A Working Hardware Replica of the Mac Plus

Plus Too is a home-made replica of a classic Macintosh computer using an FPGA. The project reached a major milestone yesterday, booting to the Finder for the first time, and running several programs. Since then I’ve been getting many inquiries, and because not everyone’s been following the project since its beginning, I’ve created a Plus Too project summary page to document the progress so far and my plans for the next version. If you’re new to Plus Too, please begin by reading the project summary page.

The screenshot above shows a Mac Write document opened with Plus Too. Because there’s no keyboard support yet, the document was created on another computer and added to the Plus Too boot disk image. Below the Macintosh screen region, hardware debugging information is displayed in green. This debug overlay is possible because a pixel-doubled 512 x 342 Mac image conveniently leaves some extra vertical space on a 1024 x 768 VGA display. From left to right, the debugging information shows the current state of the CPU address bus, data bus in, data bus out, address strobes, previous address, and breakpoint address. A poor-man’s breakpoint system is implemented by setting a breakpoint address with panel switches. When the address bus matches the breakpoint address, the CPU’s memory transfer acknowledge signal is withheld, effectively pausing the CPU.

The current system is implemented entirely with an unmodified Altera DE1 FPGA development board. The next version will use a custom-designed circuit board instead of the DE1 kit. The revised Plus Too will use a real 68000 CPU, and will add a microcontroller to manage the floppy disk SD card interface. It will also add the physical connectors necessary to use a real Mac Plus mouse and keyboard if desired.

What Works

The current system recreates a computer similar to a Mac 512Ke, with 512K of RAM and no SCSI. It boots from a System 6.0.8 floppy disk image stored in ROM. The disk image is pre-encoded into a series of virtual tracks and sectors, with the proper low-level layout, header, footer, checksum, and GCR disk byte format. This encoding is performed offline, using a custom-made utility program. Applications can be launched from the disk and run normally.

What Doesn’t Work

The disk is read-only, and there’s no keyboard, sound, SCSI, serial ports, real-time clock, or parameter RAM. The planned SD card interface for loading disk images hasn’t yet been built. There are some obvious stability problems, and the system tends to freeze up if the mouse is moved too rapidly. Disk I/O seems strangely slow– slower even than on a real Mac 512Ke or Mac Plus. There’s a long, long way to go before this project could be considered “done”, but it’s an exciting start!

Read 4 comments and join the conversation 

4 Comments so far

  1. Brad - October 10th, 2011 2:04 pm

    That was fast! (I know it’s not quite finished yet, but still)

  2. Erik Petrich - October 12th, 2011 8:52 am

    Congrats!

    “The revised Plus Too will use a real 68000 CPU”: are you thinking there are problems with the synthesized version, wanting a more traditional hardware approach, or just need to use a smaller FPGA that can’t also hold the CPU?

  3. Steve - October 12th, 2011 10:04 am

    No, I haven’t found any problems with the synthesized version. I expect to need a smaller capacity FPGA that can’t fit the synthesized CPU, since all the larger capacity FPGAs come in BGA packages that can’t really be hand-soldered. I also like the more traditional hardware approach. I guess the real 68000 could be optional, if I’m able to find an FPGA with a large enough capacity that I can use.

  4. Korrmet - November 27th, 2012 1:43 pm

    REALLY GREAT JOB!

    I trying to fix to powerbooks. And when i read this page i feel myself as little children with toys…

    Sorry by my English, i’m from Russia.

Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.