Is the Y2K bug inside your computer?
By Thomas Hobbs, MS, Systems Engineer
When the year 2000 rolls over, will your computer and software be affected by the infamous Y2K bug, now present in over 90% of the world's computers? Understanding the problem is the key to preventing an unnecessary crisis.
All personal computers and PC clones based on the Intel 8086, 286, 386, 486, Pentium, Pentium Pro and Pentium II processors utilize two internal timers: The battery-powered Real Time Clock (RTC), and the System Timer.
The RTC tracks the date and time and always runs, even when the computer's power is turned off. The system timer, on the other hand, is a 24-hour timer that runs only when the computer power is turned on. Because each timer plays a different role in the timekeeping achitecture of your computer, they run completely independent of each other.
Your computer's operating system initializes its own time and date from the RTC each time the computer is booted up. The operating system then depends on the system timer to track the time and to change the date when it rolls over every 24 hours.
The Hardware Problem - BIOS Firmware
In today's PCs, the Real Time Clock does not automatically update the century. It only updates the last two digits of the year, such as 98 for 1998. When December 31, 1999 changes to January 1, 2000, the year goes from 99 to 00. The century, which is stored in the CMOS memory area, remains at 19. Putting the century and year together yields an RTC date of January 1, 1900. Thus, any program that uses the RTC for its date information will receive an incorrect date of January 1, 1900 instead of January 1, 2000.
Since the RTC and system timer are completely separate, a change in the RTC date will not be noted by the operating system unless the operating system itself makes a call to set or retrieve the date. When the transition from 1999 to 2000 occurs, the RTC century setting will remain at 19, making the RTC year 1900.
The operating system, on the other hand, will correctly recognize the change from 1999 to 2000. Software applications that get date information from the operating system will receive the correct date, but software using the RTC for its date information will receive an erroneous date.
This problem is compounded by the fact that when the operating system is rebooted, it will retrieve the incorrect date from the RTC. Thus, as long as the computer is left on during and after the year 2000 transition, the operating system's date will be correct. But when it is rebooted, the operating system clock will be initialized once again to the incorrect date.
Some BIOS manufacturers have added changes to their BIOS firmware to correct these two problems. However, the older 386 and 486 computers are no longer in production, and BIOS upgrades are totally unavailable!
The following explanation of these changes provide a strong argument for our recommendation to leave your system switched off until after the stroke of midnight 1999.
The Software Problem - A Programming Oversight
When the operating system or a software application requests the RTC date from the BIOS, the BIOS first checks the century value in the CMOS. If the century is 19 and the RTC year is less than 80, the BIOS updates the RTC century value to 20 before returning the date.
By doing this, the RTC date will be corrected the first time it is accessed after the year 2000 transition. This may be during boot up, when the operating system initializes its date from the RTC, or when an application requests date information from the BIOS.
However, even if the computer's BIOS has year 2000 date checking implemented, it is STILL POSSIBLE for software applications to get an invalid date! If a software application reads the RTC date information directly from the RTC I/O ports, the BIOS does not have a chance to correct the date. Many older DOS-based programs, especially those of the database accounting flavor, use these protocols for retrieving date information.
So there is a time span --from the time the RTC rolls from 1999 to 1900 until an application uses the BIOS to access the RTC date-- during which any software application that reads the RTC I/O ports directly will get an invalid date!
Strategy for December 31, 1999 - Turn it off!
For the reason stated above, we recommend having your computer switched off during the transition from 1999 to 2000. This will ensure that, upon bootup, the date will be corrected before any software applications begin running.
Even if your system runs only Windows-based programs, you still can be affected by Y2K hardware and software bugs. Upgrading your system to a 32-bit operating system like Windows 98 or Windows NT can assist in resolving some issues, but is by no means a fail-safe solution when older PC hardware is the platform.
If you have mission-critical business and accounting programs, hire a qualified service tech in your area to evaluate the situation on each of your computers well before the end of the third quarter of 1999. Chances are you will discover many unforseen time and productivity-consuming factors involved in correcting the Y2K problems present in your PCs.