Vintage computing enthusiast Ted Fried has released another Teensy 4.1-powered drop-in replacement for a classic computing chip, this time turning his focus to the Motorola 68000 and its local bus interface.
"The MCL68+ is a Motorola 68000 drop-in replacement emulator. It uses the Teensy 4.1 to emulate both the microprocessor and the local bus interface at full speed," Fried explains of his latest creation. "It is the most ambitious drop-in emulator I have designed to date, and I am pleased with the progress I was able to achieve."
One of Fried's hobbies is to use relatively high-performance but low-cost microcontroller boards to create drop-in replacements for processors from classic computers, sometimes to work around shortages of original components but often to crank up the speed and boost performance or add missing features. Previous projects have included the MCL64 upgrade chip for the Commodore 64, the MCL86jr for the IBM PCjr, and the MCL65+ — unusual for having actually "downgraded" an Apple II into an Apple I compatible.
This time, Fried focused on the Motorola 68000 — a part best known for driving Apple's Macintosh family of computers as well as Commodore's Amiga range. Given the complexity of the part, it proved a challenge — resulting in an emulation which Fried says is "the fastest bit-banged local bus speed that I have ever achieved" at the full 7.8MHz of the original hardware.
"It required a number of tricks such as pre-calculating addresses and using arrays to map GPIO [General-Purpose Input/Output] values to the Teensy's output registers," Fried explains. "The Motorola 68000 also required more pins than were available on the Teensy 4.1, so I used a series of byte-wide latches to shift out the address and data busses. I also needed to multiplex a few other signals to squeeze it all onto the Teensy's pins."
The hardware side of the project is already complete, but there are a few kinks to iron out in the emulator running atop it. "The progress always stops here," Fried says of a video showing an MCL68+ booting an Apple Macintosh 512k part-way into the operating system, "but I am able to move the cursor around with the mouse and reboot the machine, so the system is not locked up. I traced the error to an attempted subroutine jump to a misaligned address, but I have not had the time to trace the code backwards to find where this address comes from."