Question about PC I bought in 1991

Back in 1991, my wife and I bought our first PC . IIRC it was a 386 that ran on DOS. One of the switches on it was labeled “TURBO,” and when it was pressed, a little green LED would light up.

I don’t see TURBO buttons on PCs any more, and it occurs to me that I never knew what it was supposed to do.

So, all you ‘90s computer experts out there, what was it meant to do, other than make that green light go on?

There’s a Wikipedia article that explains it probably better than I could as a layman.

Incidentally, it actually causes the computer to run slower.

The Turbo button set the computer’s CPU to run at a lower clock speed. It became fairly standard in the late 80s/early 90s when lots of the so-called “IBM Compatible” PCs were hitting the market. It also would sometimes be on cases for PCs that didn’t actually support the function, in those scenarios the button would typically not have any connection to anything inside and did nothing.

There is an old PC Magazine article talking about it in 1989 that Google has archived: PC Mag - Google Books

(It isn’t much of a write up.) [It is amusing to note the 286 they are talking about with a 20 MHz clock speed had some configurations where it cost up to $3000–in 1989 dollars, or around $6800 today.]

If you’re wondering why someone would want to deliberately slow down their PC, under the major IBM CPU releases, programmers developed applications to run against a specific, expected standard. As systems started to hit the market that had higher clock speeds…some programs would run in ways that made them hard to use. The most obvious example is a computer game, say imagine a PC port of Pac-Man, designed to run at a standard clockspeed, but then installed on a CPU that runs much faster, the movement of all the enemies and the game itself would start to move rapidly, too rapidly to be played.

You can run into this if you get really old DOS games to work on a modern computer, even on a DOSBox emulator if you don’t setup the emulator correctly to slow it down. These programs essentially tied activity speeds in the program to the expected speed of the CPU, so an faster CPU would render the program potentially unusable–the turbo button would simply have the CPU operate at a slower clock speed to make such programs usable.

I had Pacman on a 6502-based computer (Compukit UK-101) in the early 80’s. The CPU was clocked at 1MHz, but there was a clock switch that enabled a 2Mhz clock. Talk about turbo. Pacman was unplayable at that speed.

Basically, when you were grabbing as many cycles as you could get out of the CPUs of the time, there wasn’t sufficient time to sync delays to a hardware clock (if there was one available), so you made do with a few NOPs in a loop to make delays, and doubling the clock halved the delay.

Good times …

And here I always assumed that it was to speed things up if the computer took too long to connect to the BBS.

I think that’s because the “turbo” button toggled between the slower normal mode and the accelerated “turbo” mode. But “turbo” was activated by default, so the quirk was that pressing the button would switch to non-turbo mode and hence slow things down.

People who program embedded systems and drivers still have to deal with clock-cycle timings.

I had one of those !
I soldered it myself !
then had to have it repaired 'cause my soldering was crap !!

Although, according to the wiki, in a minority of cases it was wired the opposite way.

This is one of the worst labelling standards I’ve ever come across. “Turbo” will probably slow down your computer, though it might do the opposite. Press it and see!

Mine was second-hand, so pre-constructed with extra memory, ROM assembler and upgraded graphics to give an 80 column screen. A significant upgrade from my ZX81.

The turbo button should let the computer run at the fastest speed when enabled, although of course it’s probably possible to wire it the wrong way in hardware or software.

The name “turbo” is just marketing-speak for “non-compatibility-mode”. No one wants a button that makes their computer slower; they want one that makes it faster!

Certainly. I remember (in the mid to late 80’s) adding NOPs to code to allow the registers of a speech synthesizer to settle after writing a value, before reading from a different register. It is easier when the system clock is tightly constrained (like an embedded system) - but it must be more complex for a modern PC device where the CPU clock speed can be much more variable across processors/motherboards. I haven’t dug into any driver code to see how linux driver developers handle this.