The AMI 386 motherboards provide keyboard control of CPU speed, but
sometimes you want to control the speed in a batch file or a program.
The enclosed three programs let you change the speed from a batch
file. The programs are:
FAST.COM Sets fast speed and enables cache, same as Ctrl-Alt-Plus
SLOW.COM Sets slow speed, same as Ctrl-Alt-Minus
NOCACHE.COM Disables cache, same as Ctrl-Shift-Alt-Minus
To enable the memory cache after running NOCACHE.COM, use FAST.COM.
It enables the cache as well as setting the fast speed. In slow
speed, the cache is always disabled.
For those who would like to control the CPU speed or cache from their
own programs, here is how to do it. There is a byte register at I/O
port 460h that controls the speed and cache. This register also
contains some other bits that should be left alone.
To change the speed or cache setting:
1. Read the byte port 460h.
2. Change bits 5 and 6 as desired:
Bit 5 controls the speed. 1 = fast, 0 = slow.
Bit 6 controls the cache. 1 = enabled, 0 = disabled.
Note that the cache is always disabled in slow speed regardless
of the bit 6 setting, but it's recommended that you turn off
both bits if you are setting slow speed.
3. Turn on bit 7. The machine will crash if you don't do this!
4. Write the new byte value back to port 460h. You don't have to
do any JMP SHORT $+2's - this I/O port is on the motherboard.
In Microsoft C, the would look like this:
#define AMIPORT 0x460
// Set fast speed and enable cache
outp( AMIPORT, inp(AMIPORT) | 0xE0 );
// Set slow speed and disable cache
outp( AMIPORT, inp(AMIPORT) & 0x9F | 0x80 );
// Disable cache when in fast speed
outp( AMIPORT, inp(AMIPORT) & 0xBF | 0x80 );
These programs are in the public domain and may be freely
distributed. Please include this README.TXT file.
P.O. Box 1479
Los Gatos, CA 95031-1479