Vintage Computers With A Real Turbo

In prior centuries, it was common practice to tie the operation of a program to a computer’s clock speed. As computers got faster and faster, the programs tied to that slower clock speed sometimes had trouble running. To patch the issue temporarily, some computers in the early 90s included a “TURBO” button which actually slowed the computer’s clock speed down in order to help older software run without breaking in often unpredictable ways. [Ted Fried] decided that he would turn this idea on its head, though, by essentially building a TURBO button into the hardware of old computers which would greatly increase the execution speed of these computers without causing software mayhem.

To accomplish this, he is running CPU emulators on Teensys (Teensies?), but they are configured to be a drop-in replacement for the physical CPU of several retro computers such as the Apple II, VIC-20, and Commodore 64 rather than an emulator for an entire system. It can be configured to run either in cycle-accurate mode, making it essentially identical to the computer’s original hardware, or it can be placed into an accelerated mode to take advantage of the Teensy 4.1’s 800 MHz processor, which is orders of magnitude faster than the original hardware. This allows (most of) the original hardware to still be used while running programs at wildly faster speeds without needing to worry about any programming hiccups due to the increased clock speed.

The video below demonstrates [Ted]’s creation running in an Apple II but he has several other cores for other retro computers. It’s certainly a unique way to squeeze more computing power out of these antique machines. Some Apple II computers had a 4 MHz clock which seems incredibly slow by modern standards, so the 800 MHz Teensy would have been considered wizardry by the standards of the time, but believe it or not, it’s actually necessary to go the other direction for some applications and slow this computer down to a 1 MHz crawl.

42 thoughts on “Vintage Computers With A Real Turbo

  1. That’s an amazing idea! Definitely a why didn’t anyone think of this before, type moment. Great job!

    Now I find my self wondering why we’re constantly having to upgrade motherboards when upgrading CPUs. Why can’t they just be pin compatible?

    1. The idea isn’t new, but it needs a deceptively large amount of processing power to accomplish that haven’t really been available or cheap enough until recently. The hard realtime constraints of bitbanging a 1-MHz or higher parallel bus are *extremely* hard, and it’s not a use-case that any vendor has seen the need to create hardware peripherals for.

      The 65F02 reported on HaD a few weeks ago uses a full FPGA. The PiStorm uses a full Raspberry Pi 3 along with a CPLD. This M65-Fast uses a Teensy clocked at *800MHz*, and it needs it! My own still-unpublished Z80 project gets away with using a seemingly-modest Raspberry Pi Pico, but it critically depends on clever use of it’s unusual PIO hardware which can do multiple single-clock bus transactions in parallel.

      Practically all of those can run a full emulated system by themselves, not just act as a CPU for real hardware, so it’s a bit weird to stick it into an existing machine and make a hybrid system. Recent conditions must have been ripe for it, which is why suddenly we have multiple similar projects out of nowhere.

      1. “My own still-unpublished Z80 project”?! Definitely interested, and would love to see any details, if you don’t mind sharing, even if unfinished. (Having “grown up” on the Z80, even having made an IDE with assembly and full source editor in Z80 assembly that could assemble itself :) )

    1. The ARM microcontroller is running a 6502 emulator, and it drives the bus exactly as a ‘real’ 6502 would do. You don’t run ARM-compiled software on it, you run Apple II software. So please, tell us how that *isn’t* emulation.

      Also, the industry-standard name for this device is an In-Circuit-Emulator, or ICE. Those have been around long before emulation as you define it, since it’s how a lot of hardware was actually developed in the first place.

        1. Read the code, there’s software both emulation of various 6502s AND one which just allows you to run the 6502 bus off the ARM.

          The Apple ][ one is emulating a 6502, as you can see by looking at all the emulated opcodes, registers, and ram…

          1. Watch the video. You know, the one in the article. With the Apple II.

            0:30
            “The MCL 65-FAST is code that runs on this adapter, *which is not emulating the 6502 processor*.”

    1. The only reason to have the Turbo button was because for older software you needed to turn it OFF for it to work properly. Otherwise it wouldn’t have been present and the machine would have always run at the faster speed.

    2. Ha ha – the marketing got you too! The CPU had to designed to run at 8MHz, and without the Turbo button, that would have been that. Having Turbo off slows it down from it’s design speed, not the other way round

      1. With 22 NICE a PC or XT (or clone) with a V20 could run CP/M software faster than computers built to run CP/M. Even the PCjr I had with a V20 could run rings around a CP/M computer like a Xerox 820-II. If you had a Turbo XT running an 8086, swapping it for a V30 was even faster due to 16 bit RAM access.

    1. Well, I clearly remember those 7-segment displays: they had jumpers on the back to set the numbers manually for each segment, both on the “turbo on” and “off” settings. One could set it to simply show “HI” or “LO”, or any number at will.

      The skull key were for keyboard lock, but could also be easily connected as the “turbo” switch. A mean person (like me, lol) could lock the computer on the “turbo off” position and doom the younger brother to run slow programs.

    2. Can somebody link to some info on/a picture of this skull key? I couldn’t find any reference to it with Google, even including ‘old computer’ and ‘keyboard lock’ and excluding ‘skeleton key’.

      1. I vaguely recall them from the computers at school when I was a young kid in the early 00s. A Google search for “90s PC lock” brings up several relevant articles and videos such as:
        “Why did old PCs have key locks? [LGR Retrospective]” https://youtu.be/y0zZqHOZq7M

        TL;DR/W – it either locks the case to prevent it from being opened, disables keyboard input, or both.
        If it locks the keyboard, it can easily be connected to something else, e.g. the turbo switch as someone else mentioned.

  2. Orders of magnitude faster is true. 800MHz is 800 times faster than an Apple II.

    “Some Apple II computers had a 4 MHz ” they all had 1MHz clocks. Some had accelerators on a card for an expansion slot that were 2, 4, 8, and 10MHz. On of the signals and the expansion bus allowed taking over control of the bus and stopping the motherboard 65C02. For speed most RAM was mirror on the accelerator except the video, which use motherboard RAM in an interleaved access scheme and a 7MHz pixel clock.

    This project looks like a blast.

      1. True and I’m assuming the 6502 execution is written well. ARM can do 6502 code at nearly 1:1 since ARM is derived from 6502 and has the same condition register and branching ideas. To do correct cycle counting it is 5 or 6 times slower and if you don’t need cycle counting it can be faster than 1:1 with a smart compiler or hand written code. Faster because in ARM every instruction can be conditional so short branching is “free” and ARM has a barrel shifter and arbitrary shifts can be added to any instruction. So any shifting you would do to 8 or 16 bit numbers becomes a single cycle and can be added to another instruction.

        Apple made ARM based Apple //e prototypes in the early 1980’s and Jobs said no because 1) He did not like expansion slots. He had sen the support nightmare at Microsoft. 2) They outperformed the first Macs that had the 8MHz 68000 with 16 bit data bus. Apple was an ARM partner along with VLSI (which was down the street a ways) and the boards used VLSI ARM parts. It would have been spectacular.

    1. One Apple II model did run natively at 4MHz — the Apple IIc+. It was, if I’m remembering right, the last Apple II released, and was in the slim CPU+keyboard form factor of the earlier //c, but with a 3.5″ floppy drive instead of the //c’s 5.25″ drive. It was the one with a hardware turbo button, and ran on the 65C02.

      (The slightly earlier IIgs ran on the 65C816 and had a software turbo system; it had a Mac-like firmware where you could change various settings, and clock speed was one of those.)

  3. In my Acorn Archimedes, I had an ARM3 upgrade board which had a software speed switch to slow it down. There was a great car driving game which was CPU speed sensitive so you’d navigate the tricky sections at standard ARM2 speed then unleash the ARM3 like a Nitrous Oxide button – it was hilarious. I later noted that the ARM3 had 4k instruction & data caches and both the game program & BASIC interpreter were also under 4k so the entire thing ran from cache.

    1. Still super cool! Teensies are awesome for processing power to buck!

      I ported my PDP-11 SIM to one a few weeks ago and got a whopping 4 MIPS on it!

      Considering a Pi3 with SimH only gets 2.2 I’m happy with that 😁

  4. Clicked on this expecting to see the computer using a centrifugal compressor for something or other. Most likely either to cool an overclocked CPU or to make some sort of absurd spooling-up noise when you engage the turbo button.

    1. Yeah, I was looking for a turbocharger as well…
      It wasn’t “spooling-up noise”, but I recall a gag program for the IBM PC that popped up a message saying that your computers memory (or something) needed to be flushed, and then the PCs speaker produced some sounds (sort of) like a toilet flushing.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.