Laaca

Czech republic, 16.06.2026, 00:28 |
ACPI tools 1.3 (Announce) |
In the past I announced here my utility ACPI tools which started as a utility for detection the number of processor cores but later developped to quite feature rich utility for examining the ACPI informationm and for restarting a switchong off the computer.
Now, for version 1.3 I added the detection of TPM (trusted platform module) and functions for throttling the processor which effectively slows down the CPU.
Unfortunately, the throttling does not work on every machine (with ACPI) but only with older ones which have the processor block defined in the _PR block and not in the _SB block.
In practice, it will work on machines with ACPI 1, usually with ACPI 2 and it is very uncertain whether it will work on newer machines.
Download here --- DOS-u-akbar! |
mceric
Germany, 16.06.2026, 01:14
@ Laaca
|
ACPI tools 1.3 |
Hi Thanks for updating ACPI tools!
> version 1.3 I added ... throttling the processor ... slows down the CPU.
> Unfortunately, the throttling does not work on every machine (with ACPI)
> but only with older ones which have the processor block defined in the _PR
> block and not in the _SB block.
Well, does it work for *large* blocks of ACPI data? Then it still should work on machines where FDAPM with SPEEDn option cannot yet throttle  --- FreeDOS / DOSEMU2 / ... |
Laaca

Czech republic, 16.06.2026, 16:27
@ mceric
|
ACPI tools 1.3 |
> Hi Thanks for updating ACPI tools!
>
> > version 1.3 I added ... throttling the processor ... slows down the CPU.
> > Unfortunately, the throttling does not work on every machine (with ACPI)
> > but only with older ones which have the processor block defined in the
> _PR
> > block and not in the _SB block.
>
> Well, does it work for *large* blocks of ACPI data? Then it still should
> work on machines where FDAPM with SPEEDn option cannot yet throttle 
Yes, "large" DSDT block of ACPI/AML data is not problem as it is processed part-by-part.
Problem is when \_PR definition is not in DSST but in some of the SSDTs and mainly when the processor definition is not in \_PR but in \_SB
Nowever, as you probably know, the ultimate slowdown program for DOS is CPUSPD
https://www.vogons.org/viewtopic.php?t=74359
https://www.vogons.org/viewtopic.php?t=74359 --- DOS-u-akbar! |
RayeR

CZ, 16.06.2026, 19:14
@ Laaca
|
ACPI tools 1.3 |
> Nowever, as you probably know, the ultimate slowdown program for DOS is
> CPUSPD
> https://www.vogons.org/viewtopic.php?t=74359
> https://www.vogons.org/viewtopic.php?t=74359
Yes, I just wanted to notice about CPUSPD, s oyou already know...
It has an unique feature of a minimum DOS SMP - multiprocessor support. As I read it's needed to do this trick to properly set lower multiplier on some kind of CPUs that requires to program MSR of ALL available cores. I though that under DOS all other cores (except boot one) are disabled/deep sleep and no maters how they are set. But not always true. If multiplier is set from lower value (set in SETUP) to higher value it seems to be enough to set MSR just on the boot core but when going from high value to lower value it's necessary program all cores - so this requred a minimum of MPS/APIC programming - cool!
And not just this. CPUSPD supports also ODCM and throttling methods, P-state changes, VID, L1/L2 cache enable/disable, branch prediction and prefetch enable/disable so it allows really wide CPU speed and power consumption variability. I tested on my SandyB and can lower multi from 45x down to 16x, P-state/ODCM/throttle not supported here. In most cases I don't need my DOS sprinting at 4,5GHz so it's fine to be able to relax it and spin down the fans... :) --- DOS gives me freedom to unlimited HW access. |
Laaca

Czech republic, 16.06.2026, 22:05
@ RayeR
|
ACPI tools 1.3 |
Yes, CPUSPD is certainly extremely interresting piece of software. Unfortunately, we do not have the source for the last version (for 2.2), ve have only for 2.0.
The throttling is coded in throttle.asm but inside are few strange things.
At first - there is commented out the jump inside ".searchDSDT" function so the ACPI/AML code is never analysed. The Processor_block (P_BLK) is extracted from FACP table which is absolutely incorrect.
Also, CPUSPD heavily uses model specific registers and ports which is outside the scope of my utility ACPI tools. --- DOS-u-akbar! |
Zyzzle
16.06.2026, 22:59
@ RayeR
|
ACPI tools 1.3 |
> And not just this. CPUSPD supports also ODCM and throttling methods,
> P-state changes, VID, L1/L2 cache enable/disable, branch prediction and
> prefetch enable/disable so it allows really wide CPU speed and power
> consumption variability. I tested on my SandyB and can lower multi from 45x
> down to 16x, P-state/ODCM/throttle not supported here. In most cases I
> don't need my DOS sprinting at 4,5GHz so it's fine to be able to relax it
> and spin down the fans... :)
Yes, strange thing about CPUSPD with my CPU (i5-8250) is that if I first set BIOS to turn off all CPU cores but primary, and disable hyperthreading, I can change multiplier granularly and singly from 9x to 34x. (And ODCM/throttle is supported with 16 levels). However, if I leave SMP and hypthreading on (this i5 is quad-core), then I can only adjust multiplier to 15x,16x or 34x, and nowhere in between. Some sort of strange effect with SMP being enabled in the BIOS disabling multiplier changing in DOS.
(Lowering my CPU multi from 34x to 9x lowers my CPU voltage from 1.04V to 0.59V, and DOS cpu temps as measured by your CPUSPD program go down from 69C to 43C). |
Laaca

Czech republic, 16.06.2026, 23:04
@ Laaca
|
ACPI tools 1.3b |
I slightly improved the ACPI/AML scan and now uses the proper algorithm hot to decode PkgLength specificator. The previous implementation could fail in some computers.
http://laaca.borec.cz/soubory/acpitool.zip --- DOS-u-akbar! |
RayeR

CZ, 18.06.2026, 06:53 (edited by RayeR, 18.06.2026, 14:40)
@ Laaca
|
ACPI tools 1.3b |
Seems a minor typo (run with /s)...
ACPI tools v1.3b - created by Laaca (laaca@seznam.cz)
Error in getting CPU throttling information
Invali
My acpi/old cpu don't support throttle.
acpi timer test run ok. --- DOS gives me freedom to unlimited HW access. |
Laaca

Czech republic, 20.06.2026, 22:55
@ RayeR
|
ACPI tools 1.3c |
> Error in getting CPU throttling information
> Invali
Yes, you are right! I used too small buffer for string variable.
Now I corrected it and uploaded ver. 1.3c --- DOS-u-akbar! |