Once again we revisit the BIOS.
Most of the discussions to date have centered around what happens when a PC is switched off before midnight on 1997-12-31 and then switched on again on Saturday 2000-01-01 or later.
This is known as the "Tickover" or Rollover problem.
I would like to investigate a second scenario.
What happens when the power is left on?
The crux of the problem is in synchronising three elements.
1. The BIOS CMOS date storage (this should really be called the CMOS problem)
2. The RTC (Real Time Clock)
3. The Operating System Date (in fact two areas - the DOS clock and the Windows clock).
The CRUCIAL test is whether the BIOS can be reset to (and will hold) a four digit year e.g. 2000. Most commercial systems will fail the "Tickover" but will correctly handle being reset for 4 digit year operation.
So let us look at the following scenario:
Now this is of great interest for Servers and Real Time Operation machines i.e. the system must run continuously 24 hours out of 24.
I ran the following experiment using DOS 6.2 and Windows 3.1 (the principles apply to all other versions).
Note: Nervous Nellies should NOT run this procedure, as it can cause damage. Make sure you have full backups.
1. Prerequisite. Set CONFIG.sys to COUNTRY=002 This is so the DOS date is in YMD format - if for no other reason that it is easier to distinguish where the DOS date is used - as opposed to an internally programmed date format. Windows is set up using "International" to YMD, leading zero month, leading zero day, century on, separator minus. This converts most displays to YYYY-MM-DD.
Here again, if displays are YY-MM-DD then the DOS date is probably used, and if a display is not YYYY-MM-DD then the Windows date is not used. This helps to isolate "rogue" programs. It also has other benefits which we need not go into here.
Two programs (available from http://www.rightime.com) are also needed, VIEWCMOS (V5.1) and YEAR2000(V2.16).
2. use the DATE command to set 1999-12-31. (Optionally you can skip to step 4 and set this date and time using the Windows Control panel Date/Time tool).
3. use the TIME command to set the time to 23:50:00
4. Start Windows
5. Start the Windows Clock Program, setting it to Digital Display and create a one inch square window on the top right of the screen. The clock should display the time as 23:xx and the date as 1999-12-31.
6. Start an MSDOS window session, sizing the window as a wide "thin" window at the bottom of the screen. Make sure the Dos setting is for background operation. Run VIEWCMOS in this window, making sure that the top lines showing the BIOS CMOS date are visible.
7. Start the Control Panel, sizing it to appear in the top left of the screen. Start the Date/Time application.
8. Wait for zero hour to roll by.
9. The clock and the Date/Time screens will show 00:00:01 2000-01-01
10. Click on the header bar of the Dos window to ensure the latest reading is shown. VIEWCMOS shows that the BIOS clock has Ticked OVer incorrectly (on a faulty BIOS) and now shows 1900-01-01 (or thereabouts - some BIOS give other results)
11. Press Escape to end VIEWCMOS.
12. use the DATE command in the DOS window. Display will be 2000-01-01.
13. Start VIEWCMOS again. The date will still be 1900-01-01.
In other words, the CMOS starting value has not been reset. The Dos clock and the Windows clock are fine and provided power is not switched off, they will run correctly for years.
14. Use the Control Panel Date/Time to set 2000-01-01
and click OK. The point here is that the date value must be
CHANGED for the correct results to occur. I usually
doubleclick on the day change it to 2 and click OK.
The clock will display 2000-01-02.
Restart the date/Time application , change the day back to 01 and click OK again.
The clock will display 2000-01-01.
15. Click the Dos window to get the latest CMOS value from VIEWCMOS. It will show 2000-01-01.
This means that the CMOS storage has been RESET and the system is now correctly in Sync and will boot up correctly in the years following 2000, even if the power is switched off.
This emphasizes the crucial test. Does your BIOS retain a 4 digit year even after being switched off? A faulty BIOS which fails Tickover, but resets for 4 digit years is ACCEPTABLE and does not have to be replaced.
Current "sniffer" programs such as WILLIT, 2000.EXE DOSCHK, C2K etc emphasise the "Tickover" problem and if found report "This machine is not compliant" or words to that effect.
Essentially we are testing for the wrong thing.
These test programs generally report on whether the BIOS will reset or not and if 2001-02-29 is valid or not. Tthese last two tests are the crucial ones. Who cares about tickover, it is academic, and occurs once in a hundred years.
16. The above procedure can be modified by powering off after step 13 and rebooting the system will start up in 1980. A further variant would be to install YEAR2000 in the Autoexec, Rerun the procedure powering off after Step 13. On the reboot YEAR2000 should then kick in and trap the 1980 date, converting it to 2000-01-01.
17. Another option is to set the clock to 2000-02-29 and see if it sets correctly. Try 2001-02-29.
18. Remember to set your clock back to todays date and time. But the point is that we WANT servers to run uninterrupted.
LAN Server operators should:
1. leave their servers running over the transition period
2. Ensure that the year is reset online to 2000 before switching off. VIEWCMOS can be used to check this. (Specific networks may have special commands to reset the date over the Network)
3. The YMD format should be implemented on servers NOW
4. Where possible the option for Client (Network User) machines to obtain time from the server should be implemented. This is in line with future development plans from the Suppliers.
(And Now, Let the Screaming Begin).