There is a workaround for Windows 3.1x in Standard Mode:
Loading DEVICEHIGH=C:\DOS\POWER.EXE ADV:MAX in CONFIG.SYS and selecting MS-DOS System With APM in WINDOWS\SETUP.EXE.
It kinda works in Windows (it works in DOS), but CPU fan it's almost always at max speed in Windows.
Does anyone know any utility for Windows in Standard Mode?
Last edited by ntalaec on 2026-08-13, 11:34. Edited 1 time in total.
Standard mode power saving support is native in 3.1 but was always buggy and on most systems was just shutting off the monitor or the system going to sleep.
How the vintage laptops would throttle the cpu up and down I don’t know.
Worth noting there are external manual means of you the user adjusting the fan speed.
Win 3.1 tends to run certain loops continuously which maxes your fan, if your bios could choose a permanent slow clock speed, that might help.
How the vintage laptops would throttle the cpu up and down I don’t know.
Microcode. Intel and AMD came up with "mobile" variants of their CPUs, as early as 386SL. There's also low-power 386SX from Intel but I think it only follows AMD fully static design that can be clocked much lower. Standard CPUs of that era require a minimum clock frequency.
The microcode is basically a hidden micro-OS inside the CPU, with new extra ring of operation that bypasses all x86 protection mechanism. It's a ROM so safe-ish to do it that way, and completely transparent to software OS. That makes is compatible with any software (including DOS) but also limited in what it can do. Obviously BIOS support is required and some chipset signals as well (especially for any deep sleep). IIRC 386SL came with some extra HW like internal timers that can be used even without chipset support.
On early standard CPUs all you can really do is enter HALT state if there's a busy loop and just wait for interrupt. Everything else requires clock to be lowered and that is not possible without extra HW and software support for it. The problem is not every busy loop is terminated by interrupt, in a true multi-tasking OS there will be a timer running to limit CPU time slices given to processes but DOS and Win 3.x are single process OSes, with cooperative multitasking on top of it. So executing HLT without interrupt source will just hang the system.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
Does CpuSpd do on-demand throttling? Or is it a static tool to reduce overall CPU performance for DOS games? Because the latter will be of limited use, while it does reduce CPU power usage it will come at the cost of everything running that much slower. Though with Win 3.x as OS that might still be preferable?
As Deunan said, CPUSPD reduces the performance. It's only useful for old games running in much newer CPUs. This has nothing to do with put the CPU in idle when it's not used.
Does CpuSpd do on-demand throttling? Or is it a static tool to reduce overall CPU performance for DOS games? Because the latter will be of limited use, while it does reduce CPU power usage it will come at the cost of everything running that much slower. Though with Win 3.x as OS that might still be preferable?
3.x ran fine on 16mhz.
Yours is 100x faster in mhz, and probably another 10x in ipc.
I don't think it's possible to make it slow enough with any tool for it to be noticeably slow in anything 3.x can run.
Set the multiplier to the minimum and see if you notice anything but the heat reduction.
My assumption is that it is 166 x 10. I assume it can go as low as 5x. You'll still be 50x faster at worst.
Set the multiplier to the minimum and see if you notice anything but the heat reduction.
You confused me with OP 😀 I don't disagree with you, I'm just pointing out this particular solution is not exactly what OP wanted (though there might not be anything else).
How the vintage laptops would throttle the cpu up and down I don’t know.
In addition to everything Deunan said about System Management Mode above, one impression I get from looking at datasheets and about BIOSes, is that oftentimes extra hardware-oriented functionality like this was snuck into the keyboard controller 😀
The microcode is basically a hidden micro-OS inside the CPU, with new extra ring of operation that bypasses all x86 protection mechanism. It's a ROM so safe-ish to do it that way, and completely transparent to software OS.
You are describing SMM. Its not ROM based, BIOS has to reserve a piece of memory for SMRAM, load code there and lock that ram off - it vanished from Ring 0 and above like you said. Gets activated on programmed Traps (works like VMM trapping) or special external SMI interrupt.
Of all the people here, I believe you when you say that.
I'm pretty sure the P2/BX/piix datasheets I read only mentioned 25/75% for prochot though.
Could be wrong, but they leave things out sometimes.
I'm pretty sure the P2/BX/piix datasheets I read only mentioned 25/75% for prochot though.
Did prochot even exist in 2000 era hardware? in my head its something that came around LGA775 Core2?
STPCLK# is what https://github.com/scrapcomputing/ThrottleBlaster uses, but on PIIX and up you apparently can program a PWM signal to drive it internally with 3-4-8bit granularity depending on platform.
Looks like I was wrong. It's not called prochot and goes to 87.5%
So we are talking about same thing 😀 Afaik 87.5% setting is least slowdown, 12.5% slower than normal. The slow slow mode is 12.5% of STPCLK# duty cycle. But that register you linked wont work because it controls slowdown when southbridge Therm# pin afair hardwired to CPUs thermal diode goes low.
ACPI PCNTRL reg is what you want.
Definitely not an expert here. I'd just slow it down with the util I linked in the autoexec.
Half speed on a <5w atom is still several hundred times more than 3.x could ever use
Definitely not an expert here. I'd just slow it down with the util I linked in the autoexec.
Half speed on a <5w atom is still several hundred times more than 3.x could ever use
My apologies, I thought CPUSPD only enabled or disabled cache. There is a friendlier application to change voltage and frequency of the CPU: SSTEP.
CPU it's a lot quieter in Windows reducing frequency of CPU but I would like to know if there is any utility to change frequency automatically when needed in Windows Standard Mode.