If you’ve been following my writings for any length of time, you might recall my making mention of my chum Ted Fried who is an embedded hardware engineer at a little Silicon Valley company whose name may be familiar to you… Orange… or Grapefruit… or… Apple — that’s it!
As a hobby, Ted creates interesting devices that he documents on his MicroCoreLabs website. Every now and then, he pops up and surprises me with something I wasn’t expecting, such as his MCL86 (a micro-sequencer-based, cycle-accurate 8088/8086 soft processor core that consumes only 308 look-up tables (LUTs) in an FPGA), or his MCL51 (a micro-sequencer-based 8051 processor core that consumes only 312 LUTs).
Just for giggles and grins, Ted used his MCL51 core as the basis for a radiation-tolerant Lockstep Quad Modular Redundancy (Lockstep QMR) system with the ability to rebuild itself after experiencing a variety of soft errors, including Single Event Upsets (SEUs) and Single Event Transients (SETs) (you can access all of the files for this and other projects from Ted’s MicroCoreLabs Github Page).
Ted was also the originator of the idea to create a simulator for my 12 x 12 pong pong ball array, where each pixel (ping pong ball) is equipped with a tricolor WS2812B LED (a.k.a. NeoPixel), thereby allowing other folks to create, debug, and verify programs before sending them to me to be run on the real array.
Well, I just received an email from Ted saying: “For your amusement, may I introduce the MCL64, which is a little project/stunt where I created a small PCB that uses a 600 MHz Teensy 4.1 (Arduino-like microcontroller board) to emulate a MOS 6510. This was the CPU used in the Commodore 64 (17 Million Commodore 64s were sold over the course of 17 years). The resulting performance increase is no surprise with such a fast microcontroller, but it is entertaining to see such a popular vintage machine run so fast!”
You can read all about the MCL64 and see lots of cool photos here. Meanwhile, as you may recall from my AWBOS (A Whole Bunch of Stuff) column, about a year and a half ago I splashed the cash for a Commodore 64 Retro-Rewind called THEC64. This came with 64 classic games and it’s the envy of all my techno-geek and nerdy-nerd friends.
As an aside, speaking on behalf of the nerd community, of which I am a card-carrying member, did you know that the first documented appearance of the word “nerd” is as the name of a creature in Dr. Seuss’s book If I Ran the Zoo (1950), in which the narrator Gerald McGrew claims that he would collect “a Nerkle, a Nerd, and a Seersucker too” for his imaginary zoo? You’re welcome!
But we digress… Returning to Ted’s MCL64, now I’m wondering what THEC64’s classic games would look like running at hyper-speed on the MCL64. How about you? Do you have any thoughts you’d care to share with the rest of us?
Another terrific article Max, Thank you! Yes, my board drops right in replacing the original CPU. I am also emulating the bus interface where my code is “sensitive” to the clock the motherboard supplies to the CPU… The result is that I can be cycle accurate on both the bus interface as well as the 6502 instructions. In addition, it can run 6502 instructions while “insensitive” to the original CPU’s clock for a massive acceleration. (Teensy 4.1 is >600Mhz after all). The bus interface remains sensitive to the motherboard clock however so it can still communicate with the Commodore 64’s peripherals.
Hi Ted — thanks for the additional info– it was when I was looking at the photo above that I realized your board with the Teensy 4.1was plug-in-replaceable for the original CPU — this is a very clever project — thanks for sharing it.
Ted- If you could go back in time and put that CPU upgrade in the original C-64, I wonder how the computer industry would have evolved differently? Heck- the IBM PC may never have been invented with so much processing power coming from a “gaming” PC.
Or bring back a smartphone running a Commodore 64 emulator which would totally blow their minds!
Did you see that awesomely cool rotary dial cell phone? https://www.wired.com/story/justine-haupt-rotary-phone/
Is it true that rotary phones in England dialed counter-clockwise… 🙂
Only the good ones 🙂