CmosTool for Windows

This tool use the MB database vom nvram-wakeup and InpOut32 from http://www.highrez.co.uk/

Before the first usage run "InstallDriver.exe" to install the necessary dll.
This requires administrator rights. You will be asked for it.

!!! Important !!!
This tool writes to the CMOS area of you main board !

I'm not responsible for any damage / misconfiguration on your hardware !!!
If you have problems you can use the Clear CMOS Jumper / Button on
your main board to set everything to default !

Description:

Day, Mon, …: CMOS Byte of this value e.g. 112

Day Bit, … : Start bit shifted left of the value

ChkD: Value is necessary for checksum calculation

ChkH: if checked then value is in hex notation, e.g. 01 = 1; 10 = 10, otherwise in Value is in decimal notation, e.g. 01 = 1; 0A = 10

Reset: Reset common Alarm byte to 0 (very rare, normally only in old MB)

0=C0: Wakeup value 0 is saved as C0 (very rare, normally only in old MB)

Use RTC-Clock: Use the Alarm clock from RTC (very rare, normally only in old MB)

Day Hack: not implemented (very very rare, normally only in old MB)

ChkSum HI –LO: Checksum bytes in CMOS for HI and LO values

ChkSum 2 HI –LO: Sometimes a second checksum is used (very rare)

Checksum required: Check if checksum calculation is necessary

Reboot required: Some MB needs a reboot to wake up next time

 

Buttons:

Get…: Load prior values from Registry

Set …: Set selected values to Registry

Wakeup +5Min: Wakeup Test, Set wakeup to now + 5 minutes.

Save new MB: Save your new configuration to database. Please send me the output file!

BitMask analyse: Display all possible values of a selected CMOS cell using Bitmask+Bitshift

 

 

How to get your Cmos values for RTC wakeup:

 

1. Try WMI-Info to get you MB Model or search in “Known Boards” for your MB

2. Search the Net for a nvram configuration file and use nvram-converter

3. You can try to use “Special->Wizzard” to get your MB values. (beta not finished !!!)

4. Do all steps manually

 

 

1. WMI-Info

  1. Press WMI Info -> Read WMI Info.
  2. Your MB will be searched in the “Known Boards”
  3. If no MB is shown, try to search manually in the “Known Boards”
  4. If you find you MB, select it and press “Read CMOS”
  5. Select you MB again to see the current CMOS location and info.
  6. If the Info looks correct, reboot and change the RTC wakeup settings and gotostep 4&5.
  7. If still everything looks correct press “Set Settings to registry” to save your configuration

 

2. nvram-converter

1. Search the Net for a nvram configfile e.g Mainbaord model + nvram wakeup.
Locations: nvram-wakeup forum @ sourceforge or search in VDR forums e.g. VDR-portal.de

2. If you find a config file, start nvram-converter and click to “Convert nvram config file”
3. Then start Cmos and select your Mainbaord.
4. Check if the values are correct, see 1. WMI-Info 4-7

 

3. CMOS Wizzard (not finished jet !!!)

  1. Enter Bios and set all RTC values to 0, RTC wakeup to disabled.
  2. Start Wizzard and click to Start/Continue Wizzard
  3. Follow instruction 1st, 2nd 3rd.
  4. You get a listing off all changed values with a description, if possible.

 

4. How to find your values manually

 

1. Enter your Bios and find your RTC page.
2. Set all values to: 00 (day, hour, …) and disable RTC wakeup
3. Start Windows

4. Select CMOS type (128byte or 256byte method)

You must try it, because it can not be detected automatically.

Most Common = 128, 256VIA, 256Intel

“Try autodectct” only searches for 128 or 256 bytes.

5. Read CMOS


 

6. Save your dump with “Save to file” to [MB Model]_0_0_0_[128,256].bin
7. Reboot and enter Bios again and set RTC to these values:

Day: 20
Month: 12 (if available)
Hour: 21
Min : 22

Sec : 23
RTC: Enable

8. Start Windows
9. Read Cmos
10. Save your dump with “Save to file” to “[MB Model]_20_21_22_[128,256].bin”
11. Select CMOS file1 tab and load “[MB Model]_0_0_0_[128,256].bin”
12. Select CMOS -> Compare file with CMOS -> System <-> File1

 

You should get some red marked values.
These settings changed during last reading.


 

13. You can normally (!) ignore the first 3 lines. Modern MB do not use these positions for RTC
14. 2 red positions in line 4 are typical checksum positions for HI and LO.

 

Since the CMOS is limited to 256bytes, all Bits can be used.

E.g. A minute/second entry only needs 6 Bit (max value 0-59 minutes)

 

DECimal

HEX

Binary

59

3B

111011

 

These bits can be shifted: e.g.

No shift & No other settings: 00111011
No shift & + other settings: 10111011 or 01111011 or 11111011
1 shift & No other settings: 01110110
1 shift & + other settings: 01110111 or 11110110
2 shift & No other settings: 11101100

 

On some boards the values are saved in HEX.
That means HEX values 59 (DEC=89) is interpreted as DEC 59.
If this occur you have to check “HexD” option
To check all these easily, select value and press “BitMask analyse”


15. Look for all values:

Then look for one of the values in RTC wakeup setting, e.g Day=20 or Hour=21

The Enable option is only one Bit !

If you have some values which have nothing do with the RTC Wakeup, you probably found your Checksum position.

You can figure out which settings is part of the checksum.

Just change only e.g. Day and repeat the above steps. If checksum change these settings is part of checksum.

If you have a checksum change, normally all settings are part of the checksum.

Common checksum positions are: 62-63, 123-124, 124-125, 222-223

 

If you got all your positions enter them in the “CMOS RTC Wakeup field” and “Save new MB”

 

Reboot again and select some different values and check if everything is OK.

When you Read CMOS and select you MB in “Known Board Settings” the current RTC Wakeup is calculated and printed beside “CMOS RTC Wakeup”

 

If all is correct, select your MB and “Set Settings to Registry”