25

I have a PC with an Intel P133 (133 MHz). The motherboard (PcPartner MB520NH) only allows for it to be slowed down to 75 MHz at the least via jumper settings, but no lower. Yet the PC's case has an LED module that is configured to show the CPU's current speed setting:

PC front

Notice that the LED module comprises of three digits, meaning that the LED module was meant to be used on systems with over 100 MHz.

I thought the whole point of the turbo switch was to enable compatibility with games that expected 4.77 MHz. What was the purpose of the slow/fast turbo setting on PCs whose CPUs could not slow down to 4.77 MHz?

DBedrenko
  • 350
  • 3
  • 7
  • 8
    That Display looks like 2 1/2 digits, so max 199 MHz, isn't it? – Raffzahn Mar 17 '20 at 01:50
  • 11
    The manufacturer of the case and the motherboard likely had nothing to do with one another. As others have pointed out, the case probably has a series of jumpers to set the various display digits to a static value based on whether the turbo switch had been set or not. Put another way, you could set the displayed values to basically any combination of the available segments. – rnxrx Mar 17 '20 at 03:31
  • 8
    By that point there was no intent to slow to the original IBM PC. The point (besides marketing which was the biggest reason) was to slow the machine a bit to make last year's software behave properly if it was badly designed. – Jon Custer Mar 17 '20 at 12:27
  • 8
    I worked for a clone manufacturer in the early to mid 1990's; a lot of cases for our mid-towers and full-towers were selected based on whatever was cheapest to source. The motherboards were the same thing, cheap cheap cheap. The LED's on the cases looked sexy, but were rarely jumpered correctly, rarely wired to the mainboard at all, and rarely had any practical value except they looked cool. This was the same for the turbo buttons. Most times, the wires went to nowhere. - Somewhere, I have the photocopied docs for dozens of these LED displays... – Geo... Mar 17 '20 at 22:28

7 Answers7

29

Your premise that the point of the Turbo button was originally to slow down the computer to be timing compatible to an IBM PC/XT is correct. There was demand for that function, because a some of software, mostly games, were not synchronized to any timing source, but just scaled with the CPU frequency. some examples I encountered at that time are:

As you correctly identified, more modern computers are unable to enter a mode that has the same speed as the IBM PC/XT. This actually started as early as

  • 1984: the Compaq Deskpro, containing an 8086 processor that executed notably faster than the IBM PC/XT on software that was bound by main memory performance. The 8088 of the PC is known to be limited by the bandwidth of its 8-bit bus, whereas the Compaq Deskpro had 16-bit memory access.
  • Also 1984: the IBM AT, not only featuring a 16-bit memory bus, but also the 80286 processor that executes some instructions a lot faster than both the 8088 and the 8086.

Yet the Turbo button was still a useful feature. Even if the games did not run at the intended speed, they often were still playable at the slightly increased speed these machines had in de-turbo mode, while they were nearly unplayable in turbo mode. I remember quite well that I considered "Bugs" to be an unplayable game (on a 12MHz 80286 machine) until I had access to an old 8088 machine that had a 4,77MHz mode. On the other hand, digger was quite playable at the de-turbo mode of said 80286 machine (which happened to be 8 MHz).

While the relevance of IBM PC games that only were playable at 4.77MHz dropped significantly at the end of the eighties, the general concept of software (not only games) that failed to perform correctly on machines that were faster than the developers of the software tested on was a recurring theme. Some examples are:

  • Turbo Pascal's delay loop (up to version Turbo Pascal 6.0): The machine speed counter overflowed and delays were to small. An example game that used this code is 20th Century Frog, 1988 Gameplay Video here. On a 486 machine with 33MHz CPU clock, the intro music (played via Timer interrupts) matched the intro animation (timed using Pascal's delay function) only in de-turbo mode.
  • Again Turbo Pascal's delay loop, this time in version 7.0 resulting in Runtime Error 200 on startup.
  • A couple of games that synchronized their speed to video refresh, but actually expected to be at half the video refresh rate, because their game code took more than one frame to execute. On faster computers, these games suddenly ran at double speed, because they locked to every frame instead of every other frame. A notable example is the game Supaplex. There exists a wide-spread "speed fix" version that prevents running at 70fps instead of 35fps. Please note that the version at archive.org I linked does not seem to run at the intended speed in the javascript dosbox.
  • Windows 95 on AMD K6 processors with 350 MHz or more, resulting in the patch called AMDK6UPD (mentioned by Eric Towers)

So while the original purpose of the Turbo button, to be compatible to the IBM PC, was lost soon, the general concept of being able to slow down a machine to make a wider range of software run well on it was useful for a much longer time. As I observed it, the Turbo button started to disappear in the mid-90s, when multitasking got commonplace, and even games started to move to being Windows-95-based instead of DOS-based.

Michael Karcher
  • 7,941
  • 3
  • 25
  • 49
  • 1
    Another game that needed the Turbo button: Sopwith (1985): https://archive.org/details/msdos_Sopwith_1985; it was fixed in Sopwith 2. – Roger Lipscombe Mar 17 '20 at 15:02
  • I guess that an exhaustive list of all games between 1981 and 1987 that depended on 4.77MHz will not fit one Stack Exchange answer. Behaviour like this was commonplace at those times. Thanks for pointing out a later example than the two I listed in the answer. – Michael Karcher Mar 17 '20 at 15:16
  • The most famous game to use Turbo Pascal's delay was the original PC version of Tetris. – supercat Mar 17 '20 at 16:58
  • @supercat: That's the 1986 AcademySoft version of Tetris? Interesting, I didn't know that the authors used Turbo Pascal for that. – Schmuddi Mar 17 '20 at 17:17
  • @Schmuddi: Yup. I think I acquired my copy in 1987. – supercat Mar 17 '20 at 17:19
  • @supercat And that intoduces the third occurence of borland in the list... tetris uses the turbo pascal 3.0 runtime, i just thought about the 4.0-6.0 runtime and the 7.0 runtime... The 3.0 runtime likely overflows at lower computer speeds than the 4.0-6.0 runtime. – Michael Karcher Mar 17 '20 at 19:59
  • 4
    It wasn't just games. AMDK6UPD.EXE was a patch for Windows 95 that fixed a similar timing loop overflow during boot on CPUs faster than 350 MHz. Descendants of this patch are still used to get 95 running on much newer hardware. – Eric Towers Mar 17 '20 at 20:13
  • The Turbo Pascal delay loop issue didn't stop with TP6 -- applications I developed using Borland Pascal with Objects v7.0 also suffer the issue. I guess they just increased the delay time to make it work with faster systems, but didn't eliminate it. – occipita Apr 24 '20 at 09:04
  • Turbo Pascal 7 is in the next bullet point, just after the one about turbo Pascal, up to 6. – Michael Karcher Apr 24 '20 at 09:14
19

The purpose of the switch is to support CPUs that can work at different clock frequencies.

However, the presence of a turbo switch and a frequency display on a case, do not necessarily imply that the CPU can actually work at different clock frequencies, because the case is a generic case which has not been designed for one specific CPU.

Background

I worked in PC assembly in the mid-90's when such systems were state of the art. The cases were generic ones supplied by cheap Chinese manufacturers.

The LED displays can be configured by an array of jumpers to show any symbol you want. The turbo button will alternate the display between two different settings, as configured by these jumpers. You could e.g. have them alternate between 75 and 133.

In the shop I worked for, we were instructed to set the LED displays to read "HI" and "LO", no matter what processor was installed. This made assembly easier, since all displays could be configured identically.

Even when PCs were to be equipped with CPUs or motherboards that did not support a change of clock frequency, we were still configuring the displays. Because the shop had learned that customers would call for support when their turbo switch didn't work. But as long as the display flipped, the customers would be satisfied, even if their processor ran at exactly the same speed in either mode.

slingeraap
  • 291
  • 1
  • 4
  • 5
    There's a lot of talk about the turbo button and what it is supposed to do in other answers, but as someone that built my fair share of PCs, this is the best answer. Case makers kept legacy features forever. Way after something was never used you could still find support for it in cheap cases. They likely used the same case design for years and years because there was no reason to update it. – JPhi1618 Mar 17 '20 at 14:25
  • 1
    @JPhi1618 Case in point: When was the last time you used Scroll Lock or Pause/Break on your keyboard? At least SysReq has been phased out, but these two still persist. (I do know of one common program that uses Scroll Lock: MS Excel, but I almost never touch it even though I use Excel all the time. Pause/Break I can't think of any use for.) – Darrel Hoffman Mar 17 '20 at 16:09
  • When I was shopping for my first PC (in the 60MHz Pentium era), it was an absolute requirement for me that it did not have a turbo button -- that button seemed like an indication of not being a serious computer vendor. – dave Mar 17 '20 at 16:55
  • 1
    Thanks for the answer. "The purpose of the switch is to support CPUs that can work at different clock frequencies." sure, but I'm asking why would you want to switch a fast CPU (133MHz) to a slower setting when that slower setting is not slow enough to support compatibility with 4.77MHz dependent games? – DBedrenko Mar 17 '20 at 17:01
  • 2
    @another-dave: Sometimes it could be handy to have a miscellaneous button. For example, someone with a cat could wire the button to the key-switch input to disable the keyboard when stepping away from it. – supercat Mar 17 '20 at 17:20
  • @DarrelHoffman There are two usages of Pause/Break that I take advantage of several times per week. 1) When running a continuous ping (ping 8.8.8.8 -t), Ctrl-Break will display statistics and continue pinging. 2) Windows+Break is a quick way to get to the System Control Panel. – Doug Deden Mar 18 '20 at 18:28
  • 1
    @DarrelHoffman While you're correct that Scroll Lock is so obsolete that Linux distros don't even map it to a modifier by default anymore (I use it for global hotkeys), Pause/Break is commonly used as the pause button by games originally written for Linux and you can turn on Alt+SysRq as a way to send commands to the Linux kernel when your GUI has frozen up. For example, Alt+SysRq+f to trigger the OOM killer when your system is thrashing but not yet out of free memory. Likewise, Break substitutes for Alt+SysRq on a serial console, which can be useful for embedded systems. – ssokolow Mar 19 '20 at 13:26
  • I had KVM's that used Scroll Lock as the toggle KVM button – Foon Mar 19 '20 at 19:46
13

TL;DR;

Looking at the linked board manual reveals that it doesn't support any 'turbo' switch. So this is simply a case having it, while there is no purpose - maybe except for the fun of having a button that switches the illuminated segments :)

It might be safe to assume that the board has been updated or the case been used regardless. After all, why throw away a perfect good case just because it has some unused feature?

Looks like a typical home built machine anyway.


Yet the PC's case has an LED module that is configured to show the CPU's current speed setting

Is it really? Or is it just displaying some number that has been jumpered? Have you looked inside how it's wired to the board - also, what board it is?

Notice that the LED module comprises of three digits, meaning that the LED module was meant to be used on systems with over 100MHz.

It seems like a 2½ digit display, so 199 should be the maximum value that can be displayed, shouldn't it?

The number of digits in use doesn't say anything about the board. Not even about the time it was manufactured. Using a 2½ digit display doesn't cost much more than a two digit one, but allows setting nice fancy numbers. The machine does look like it's self (or small shop) assembled, so they used what was available. Think of it like any other form of 'modding' just meant to support the ego of its owner.

Bottom line, the display used doesn't say anything about the time or the board.

I thought the whole point of the turbo switch was to enable compatibility with games that expected 4.77MHz. What was the purpose of the slow/fast turbo setting on PCs whose CPUs could not slow down to 4.77MHz?

It's important to keep in mind that a turbo switch is a feature of the case, not of the board. So what function it may have, if any, is defined by the board; you may want to look up the board documentation and check the wiring used.

Besides that, it was in general a way to slow down - though not necessarily to 4.77 MHz.

Throttling down to 4.77 MHz was only a thing for 8088 based (aka PC/XT) machines. Already with 80286 based computers (starting in 1984) this no longer made any sense. Here, if at all, a reduction to 6 or 8 MHz, like the base AT or later models, was used. With introduction of the first 80386 in 1987 the relation changed again. A 386 running at the same speed as a 286 will perform considerably faster, so reducing the clock speed would not bring it down to the same level as an AT.

At the time most motherboards supporting turbo modes (or rather reduced speed modes) simply disabled the on board cache to reduce performance.

The discrepancy increased with 486 and Pentium even more. A Pentium running at 4.77 MHz is several times faster than an genuine 8088 PC at 4.77 MHz. At the time this machine was contemporary (late '90s), a turbo switch had for most part lost any meaning. For one, there weren't many games still able to run on machines that new at all - and even fewer people who wanted to run the old stuff.

In the late '90s, games had to comply with a range of 25 MHz 386 to 200 MHz Pentium, so none were still written to rely solely on clock speed.

Raffzahn
  • 222,541
  • 22
  • 631
  • 918
  • 2
    So after reading through a not really relevant stuff, I'm not seeing any answer to the question in this post. – cjs Mar 17 '20 at 03:09
  • 1
    cjs makes a good point. But I think Raffzahn hints at the possibility that there really was a motive to include a turbo button on this class of PCs (maybe marketing related, I don't think there is logic to it), which is at least a partial answer. – Omar and Lorraine Mar 17 '20 at 12:15
  • 2
    "It's important to keep in mind that a turbo switch is a feature of the case, not of the board. So what function it may have, if any, is defined by the board;" -- isn't this quite self-contradictory? Which one do you mean, the case or the board? – ilkkachu Mar 17 '20 at 14:58
  • 1
    @ilkkachu I think what is meant is that the function is defined by where exactly on the board the switch is connected, and it's this connection point that one has to read the documentation for. – Ruslan Mar 17 '20 at 15:00
  • 1
    @ilkkachu It means that a turbo switch on itself - much like the display is part of a case and has no meaning in itself. Having a turbo switch doesn't mean the computer can be throttled at all. To check if there is a function at all, and how it works, the board documentation needs to be checked. – Raffzahn Mar 17 '20 at 15:12
  • @Raffzahn, sure, the switch is part of the case, and whatever the signal on board does, depends on the board. The phrasing in the answer is just really confusing. – ilkkachu Mar 17 '20 at 15:45
  • "Or is it just displaying some number that has been jumpered?" it displays whatever I configure it to display via jumper blocks at the back of the LED module. Yes, "199" is the maximum it can be configured to display. I'm wondering why the case makers even included a turbo button, when a >100 MHz CPU can't be clocked down to 4.77MHz or anywhere close to that, so why would you still want to slow it down? – DBedrenko Mar 17 '20 at 16:56
  • @DBedrenko Well, maybe it was jaust part of the case he bought. Maybe it was an old case reused? The whole PC doesn't look like a of any serious brand, so it's most likely a combination of parts hat hand at the time. Also, a 100 MHz Pentioum can be clocked down to 4 MHz or even lower. But that's not a function of the case but the mainboard, to see what's possible you got to check the mainboard documentation. Mind to add what MB it is to your question? – Raffzahn Mar 17 '20 at 17:31
  • @Raffzahn It can't be that old of a case reused since the LED is designed to accomodate >100MHz CPUs. I didn't know that a 100MHz could be clocked down to 4. I added the motherboard model to the question and linked to its manual. Thanks – DBedrenko Mar 17 '20 at 22:46
  • @DBedrenko I'm a bit puzzled why you're so focused at 5 MHz - this was only true for 8088 based (PC/XT) type computers. already with 286 machines (~1986 - at least 10 years before above machine) throtteling wasn't anymore down to real XT speed. If at all it was down to AT speed (6/8 MHz). with 386 (~1990) not even this worked anymore. – Raffzahn Mar 17 '20 at 22:52
  • @Raffzahn Because I can't think of any other reason why one would throttle their CPU than for the compatibility with ~5MHz dependent software. Are there other reasons to throttle from e.g. 133MHz to 75MHz? – DBedrenko Mar 17 '20 at 23:09
  • @DBedrenko What about simply because one can? It was a feature in the mit and late 80s. So case manufacturers did add it. And people bought it without really needing it. And like many features it stayed way beyond its usefulness. Just compare with the existence of PS/2 keyboard/mouse plugs on mainboards - they lost their usefulness some 15 years ago, but were present until rather recent. Or think about people still today buying lamps with E27 sockets, despite there's no need to do so anymore. – Raffzahn Mar 17 '20 at 23:31
  • @Raffzahn By that logic current desktops can also add a turbo button... "just because they can". Yet they don't, because there is no purpose or benefit to. At least PS/2 connectors provided compatibility for older devices: this is a useful feature with an explicit purpose. – DBedrenko Mar 17 '20 at 23:35
  • @DBedrenko Erm, no. Not every argument can be reversed. The logic about adding a feature isn't a reversal of removing a feature. It was a feature during 8088 (and 286 time). It is about continuing this existing feature past its usefulness. Having it simply checks a potential customer question (Avoiding to argue why there is none - assume your Granny buying a computer). That's different from adding a new (useless) feature. Here customers need to learn why they need the new feature. – Raffzahn Mar 17 '20 at 23:47
  • FYI, regarding the TLDR at the top of your answer. The motherboard doesn't have a dedicated jumper for turbo switching in software but the jumperhead of the LED module can still be placed on the jumper pins controlling CPU speed. The head has 3 female pins, of which 2 are "on". The 2 that are "on" depends on whether the turbo switched is pressed/depressed. Thus I can indeed switch between 2 CPU speeds. – DBedrenko Mar 18 '20 at 17:09
  • @DBedrenko Changing the multiplier during run time is not safe and may damage the CPU as well. Doing so is most definitely not recommended or in any way professional. – Raffzahn Mar 18 '20 at 18:34
  • @Raffzahn I'm not doing it at runtime. I switch off the machine, press the turbo button, and start it back up again. If there's a dedicated turbo jumper on the motherboard, could you change the CPU speed at runtime? – DBedrenko Mar 18 '20 at 19:15
  • @DBedrenko A valid setup should not allow you to do so. So it's not about your handling. And yes, A dedicated turbo would work like that - except, for 386 and above it usually didn't change speed, but simply disabled (external) caches. That's also the reason why there is almost no Pentium with a similar function. – Raffzahn Mar 18 '20 at 19:52
  • @Raffzahn I see. Thanks for the warning, I'll be extra careful – DBedrenko Mar 19 '20 at 13:05
9

I thought the whole point of the turbo switch was to enable compatibility with games that expected 4.77MHz.

A very similar question was already asked here.

One answer was that the "Turbo" button was often used for other purposes (such as switching an additional fan on or off) by users whose motherboards did not support the "Turbo" button.

When there were no more motherboards supporting the "Turbo" button any more, manufacturers still produced cases with "Turbo" button to support users who misused the "Turbo" button for such purposes.

However, ...

What was the purpose of the slow/fast turbo setting on PCs whose CPUs could not slow down to 4.77MHz?

... as far as I remember there were also 486 class PCs where the "Turbo" button was used to switch between two different "high" frequencies (e.g. between 133 MHz and 60 MHz).

Martin Rosenau
  • 3,399
  • 3
  • 11
  • 23
6

I thought the whole point of the turbo switch was to enable compatibility with games that expected 4.77MHz. What was the purpose of the slow/fast turbo setting on PCs whose CPUs could not slow down to 4.77MHz?

The turbo switch lost that purpose much earlier. It did that job on 8088 PC compatible machines runing at slightly higher clock speeds (in the 8-10 MHz range). It didn't on 386+ machines.

There is no way to slow down a Pentium (or 486, or 386; not sure about 286) machine to be as slow as a 4.77 MHz 8088. Even if DRAM refresh permitted running that slow, the CPU architecture would still be faster because of pipelining, wider buses, and other improvements -- we're talking almost 20 years of R&D here.

There also would be next to no demand for such a feature. Not many people wanted to run mid-80s games on fancy Pentiums.

I've been using PC compatible machines since the 386 in the late 80s, and for all that time, the switch was either used to (pointlessly) switch between "a little slower" and "a little faster", or had no function at all. Practically everyone left it in "turbo mode" all the time.

As others have pointed out, the display is a function of the case, switching between two jumpered values, and does not show the actual clock frequency. What the motherboard does with the low / high signal is entirely up to it.

Michael Graf
  • 10,030
  • 2
  • 36
  • 54
  • 2
    "switching between two jumpered values, and does not show the actual clock frequency" -- I remember one that was jumpered to display "LO" and "HI"... – Roger Lipscombe Mar 17 '20 at 12:42
  • 1
    @RogerLipscombe: I jumpered mine to do that. The case used a double-throw double-pole switch, with one side going to the motherboard and the other going to the LED. Each segment could be configured as always off, always on, on when switch "in", or on when switch "out". – supercat Mar 17 '20 at 17:01
2

One nuance to the Pentium 133 is that it used precharge, domino logic (please correct me if I am wrong; I recall this from an Intel presentation). This logic requires a minimum speed to operate. This minimum speed is one reason that you could not have a legacy "turbo" switch change the speed, because it would violate the logic timing, which you could consider to be something like DRAM.

b degnan
  • 1,099
  • 7
  • 17
  • This seems plausible based on the datasheet at http://datasheets.chipdb.org/Intel/x86/Pentium/24199710.PDF, which suggests a maximum clock period of 40ns (ie 25MHz minimum frequency) for the 75MHz-100MHz models, and other values for different models. – occipita Apr 24 '20 at 09:22
1

IIRC at the time cheaper cases were sold as XT/AT cases and in addition to taking AT motherboards had the mounting holes and turbo switches for old XT motherboards years after people stopped buying them new, while newer AT only cases were slightly more premium. Also some newer motherboards would still have a jumper to accept a turbo switch and would slow down from say 200mhz to 75mhz, possibly adjustable by jumpers on the motherboard, which may still serve a compatibility function with poorly designed software. This would also enable overclocking as the turbo speed could be overclocked while the slower speed would be stock or slower.

RET
  • 111
  • 1
  • 1
    There would be a clock speed (e.g. 33.3mhz) and a multiplier (e.g. 6) which would give the clock speed (200mhz). The turbo switch would adjust one or the other, possibly depending on the motherboard. – RET Mar 17 '20 at 16:42
  • Not even necessarily clock speed or multiplier. IIRC the turbo jumper on my Cyrix Cx5x86 machine just disabled the L2 cache. – mnem Mar 18 '20 at 04:33
  • 1
    Things weren't really standardised in pre plug and play computers, so the only way to know for any given machine would be to find a copy of the motherboard manual. – RET Mar 19 '20 at 08:59
  • To get a feel for how overclocking worked in those days see this link. You would be able to adjust the multipliers voltages and FSB by rearranging the jumpers on the motherboard. You could then adjust the LED display to show off what speed you had managed to overclock to. : https://www.tomshardware.com/uk/reviews/overclocking-guide,15-10.html – RET Mar 19 '20 at 16:42