: i'm trying to write a programm that slows down the CPU-Frequenz by manipulating rthe CMOS-Registers, like you can do in the Bios-Setup.
: It would work, but i need the exact Information about the CMOS Memory-Layout (the Registers 0x70...).
: There are only very old Information/ CMOS-References which do not exactly inform about the extended Checksums.
: The german 'BIOS-Kompendium' for example is not complete enough.
: By the way; it's an AMI-Bios.
: Thanks, Maex
Aside from the date/time, floppy drive types and a few other bits and pieces, there is no standard layout for CMOS memory. It is entirely vendor specific, so the only way to get a map of CMOS would be to ask AMI for it. This map will likely change between BIOS revisions and different platforms as well.
However, you can find what you're looking for a different way.
Find (or write) a program to save the contents of CMOS to a file, then change the CPU frequency by 1, then dump CMOS again and compare the 2 files. You should see the change in frequency show a different value in CMOS, along with a CMOS checksum byte that changes. From there, you should be able to deduct where the frequencies are stored and know what values are for each. It'll take some work, but you can get it.
Some things to be aware of:
a) the checksum for CMOS may not be the last byte of the CMOS map.
b) the frequency tables might be stored in the 2nd bank of CMOS memory. You would use ports 72 and 73h to access this bank.
let me know if you need help getting access to CMOS.