Technical Editor:
Curtis Stevens
Phoenix Technologies
135 Technology Drive
Irvine, CA 92618
Phone: (949) 790-2000
Fax: (949) 790-2001
Curtis_Stevens@Phoenix.COM
As the year 2000 approaches, the primary focus continues to be placed on the computer industry, both software and hardware.
Many computer programs store the year in a date field using only two digits, "88", for example. The century designator "19" was assumed.
These applications might recognize the date "00" as the Year 1900, when in fact the year should be "2000."
As a result, after Dec. 31, 1999, these computer applications may shut down or produce incorrect data. The concern relating to computer hardware is simply whether the hardware will be capable of retaining and reporting proper dates into 2000 and beyond.
Each manufacturer has used its own set of definitions and terms describing year 2000 compliance or readiness. The following sections formally document generally accepted practices that already exist as they relate to the year 2000 and the Personal Computer technology.
This document specifies the PC platform requirements for year 2000 compliance in personal computers. The reader should be familiar with the following:
1. PC architecture
2. Issues associated with year 2000 compliance
3. Issues associated with setting the date and time on a PC
The following items are specified in this document:
1. PC hardware components associated with year 2000 compliance
2. Mechanisms for achieving year 2000 compliance
3. What the user should see in year 2000-compliant PCs
In short, this document specifies requirements for year 2000 implementation, but not the implementation details.
a) The technology is used in accordance with its
associated documentation, and
b) All other technology used with it properly exchanges
data with it."
The Year 2000 PC Compliance Specification provides the additional compliance information required to determine if a PC is year 2000 compliant.
These services provided by the execution environment generally includes, but are not limited to, output device (screen) management, input device (keyboard) management, mass storage device management, memory management, and power management.
The RTC does not rely on the system for power. The RTC is associated with a memory area known as CMOS-RAM and uses this area to store values indicating the date and time and provide storage for other system settings that must be maintained while the computer system is switched off.
The RTC, as originally defined for the PC was designed to allow the computer’s user to set the date and time once when the PC is first started, and to automatically maintain date/time information from then on. When the operating system (OS) is booted, it normally initializes its current date from the RTC through a BIOS call. Once initialized, the OS maintains the PC's date as long as the PC is powered on. Originally, the RTC was located in its own device.
In today’s PCs, the chipset handles RTC operations, which remain essential for setting and maintaining information about date and time. The chipset is one or more chips that provide an interface between the CPU and other hardware devices such as memory, I/O ports, and the RTC.
The CMOS-RAM data area contains information about the actual date and time as well as settings specified by the user in Setup. These settings configure the computer when it is started and used to identify the appropriate device for booting the operating system.
In most current PC's, only the lower two digits of the year are maintained automatically. When the year 1999 changes to 2000, the RTC will update the year digits from "99" to "00".
However, because the century is not a hardware counter register in the core functionality of the RTC, it may not be automatically updated when a century rollover occurs. But unlike software applications, compatible PCs may store data describing the correct century in a separately defined area of CMOS-RAM, which can vary from system to system in location and form.
The following diagram describes the various PC components and highlights the components associated with hardware year 2000 compliance. The BIOS is the only component that should access the RTC directly, as highlighted with the solid lines found in the diagram below. If an application or operating system bypasses the BIOS for reading the RTC, the burden of support for year 2000 compliance belongs to the operating system or application that is reading the RTC, as shown by the dotted line arrows.
Many tools are available for application to legacy PCs that may not be Year 2000 compliant as described in this specification. These tools include:
Terminate and Stay Resident (TSR) programs, device drivers, boot sector programs, operating system controls and add-on hardware.
A platform that is Year 2000 Operational can also benefit from year 2000 tools. It is recommended that the PC manufacturer be contacted for information on programs addressing non-compliant PCs.
Some operating systems do not support power management. When a system resumes from a suspended state, these operating systems may not automatically obtain the current date and time from the platform. Regardless of the operating system, the year 2000 compliance requirements for a resume operation for the platform are the same as those described in section 4.1, "System Is On."
As PC architecture evolved , the century was placed in byte 37h in some PC’s. Today, some PC’s move the century byte outside of the normal CMOS memory locations where the update is automatic using addtional hardware. Many of the industry’s PC’s still use the CMOS century byte location of 32h.
There has never been a standard location for the century byte in a PC. This is why applications or operating systems should not read the century byte directly, as explained in the overview (section 3). Operating systems or applications that read the century byte directly are responsible for the year 2000 update process.
While some PC’s do have a hardware automated century byte in the RTC, the majority of PC manufacturers still maintain this byte using BIOS. When a request by an operating system or an application for the date is made from the BIOS, the century byte may be updated from "19" to "20". The logic used to determine if the update should occur uses a windowing technique as described in the following example:
If year is greater than or equal to 00 and year is less than [xx] Read the century If century equals 19 Update century to 20 xx ranges normally less than or equal to 80Another event that may invoke this algorithm is when the PC is powered on or reset, the first time in the 21 st century. The system may then correct the century byte to "20", prior to the initialization of an operating system.