Test2000.Exe v2.20 [ShowTiming option]     Copyright 1997, GTBecker
October 23, 1997                                All Rights Reserved


Test2000.Exe is a free, simple and complete PC hardware year 2000 
date compliance diagnostic.

This program or its documentation can change from time to time.  If 
you did not get this from

     www.RighTime.com

it's worth a visit to see if there's been a more recent version made 
available.  Our BBS at (+1305)644-6185 is another source.


     Introduction:

A serious problem was designed into the PC in 1984 (and into many 
applications, files and databases since) and remains a problem 
today: most computer systems will not gracefully enter the next 
decade, not long from now.  The system date will probably be 
incorrect - without assistance, anyway - on 2000-01-01 or later 
because of a hardware design flaw.  Similarly, many software 
applications will misbehave as the year 2000 is approached and 
passed, too, even if the system date is correct.

In brief: most applications get the system date from the operating 
system, whose software-based calendar is initialized at boot from 
the BIOS firmware, which gets the date from the CMOS RTC, which is 
hardware.  The CMOS RTC maintains a two-digit year, so the BIOS 
appends those two digits to a pair of stored century digits to 
compose the four-digit year that it provides to the operating 
system.  Since the century digits are not maintained by hardware 
and, even though the digits are set by any system date set command, 
they are not incremented when the year increments from 99 to 00; the 
result is that year 1999 will be followed by apparent year 1900. 
This results in an oddly erroneous system date of 1980-01-04 at the 
next boot since 1900 is an invalid year to the operating system. 
Some applications, which take the date from the BIOS rather than the 
operating system, will receive year 1900 instead of 2000.

As this is written, machines are being produced that contain BIOS 
code that exerts measures intended to cure the CMOS RTC century 
problem; it's probably safe to expect that these will become the 
norm eventually.  By applying a 'windowing' technique to the two 
digits of the CMOS RTC year, some BIOSs will infer and supply the 
correct  century; for example, year 2000 will be supplied to the 
operating system and applications even though the indicated CMOS RTC 
year is 1900.

Dallas Semiconductor will soon (1997-10-23) announce the 
availability of the DS12C887, the first truly hardware year 2000 
compliant, drop-in, PC compatible CMOS RTC module.  Motherboards 
that feature a CMOS RTC module socket will accept this device and 
achieve easy Y2K compliance at the cost of physical intervention. 


        Why Another Tester?

Here's another tester because the PC year 2000 CMOS/RTC/BIOS 
hardware problem isn't as complicated as many other testing programs 
suggest, and because many of those testing programs produce results 
that are incomplete or wrong.  This one is simple, complete, 
accurate and free.

Test2000 normally performs just two tests: a real time BIOS 
1999-2000 transition test, and a BIOS date retention after reboot 
test.  If a machine passes these two tests, it is year 2000 hardware 
compliant.

Additionally, Test2000 can perform a precision timing test that 
reveals the differences between true hardware compliance and 
software fixes, whether applied by the BIOS, BIOS extensions or by 
utility software such as our Y2KPCPro.


        What PC Hardware Year 2000 Compliance Means.

PC hardware year 2000 compliance means that the CMOS RTC hardware 
year - as provided via the BIOS - increments from 1999 to 2000, and 
that a valid 2000+ BIOS date will remain correct after rebooting.


        Here's why:

First, if the correct date is lost after a reboot, the machine - 
despite any other behavior - cannot be compliant.  Some BIOSs 
(notably some Award v4.5x-series), for example, will reset the date 
to a permitted window (1994 to 1999, in the Award v4.5x-series case) 
if the date exceeds those limits when the machine is rebooted.  This 
means that the machine date cannot be correct after 1999-12-31.

Such a BIOS cannot be corrected with software, since the date change 
occurs in the BIOS boot process before any corrective software has 
access to it; once the BIOS has changed the date, it is not possible 
to determine the correct date.

Second, if the BIOS century increments from 1999 to 2000, then the 
BIOS (or an applied corrective fix like Y2KPCPro) is correctly 
receiving or inferring the century from the CMOS RTC year; this 
means that the BIOS date makes the 1999-2000 transition correctly, 
and that the operating system (and therefore also most applications) 
will receive the correct date, and it means that applications whose 
date is taken directly from the BIOS will also receive the correct 
date.

If the BIOS date increments from 1999 to 1900 (rather than 2000), 
the date provided to the operating system at the next boot will be 
invalid (1900-01-01, for example) and will typically result in an 
operating system date of 1980-01-04; applications which take the 
BIOS date will receive 1900-01-01, not 2000-01-01.  This BIOS date 
year 1999-2000 transition problem can be corrected by installing 
Y2KPCPro on the machine.

Other testers of this sort test the CMOS RTC, which essentially 
always fails to increment from 1999 to 2000.  What is important is 
not the CMOS RTC date itself, but what the BIOS does with the CMOS 
RTC date, because the operating system uses the BIOS date and some 
applications use the BIOS date.  Although a fundamental design error 
that causes the year 2000 transition problem exists in the CMOS RTC, 
the CMOS RTC date itself is unimportant because no common 
application software uses it directly, so testing the CMOS RTC is 
immaterial, unnecessary and misleading.  The BIOS date is what 
matters; despite its pervasive century error, the CMOS RTC date 
doesn't matter.

Other testers also test the operating system 1999 to 2000 increment, 
which will always pass.  There is no reason to suspect an operating 
system date year 2000 failure.  [Windows 3.1 File Manager does odd 
things to the year in its displays, but those are only display 
artifacts; the underlying date is handled correctly.]

Other testers also look at a variety of leap year concerns, none of 
which need any concern.  No PC hardware leap year failures have ever 
been demonstrated, and there is no reason to suspect that PC 
hardware leap year errors exist.  If another tester fails a leap 
year test, it is probably the testing program that has failed - not 
the hardware.


        Running Test2000.Exe.

[Caution: Test2000.Exe will briefly set the system date to future 
dates.  If you run any scheduling software, you should terminate 
those applications before starting this diagnostic.  If you run no 
software that runs automatically and is triggered by date, you need 
not take any special precautions.]

A copy of Test2000.Exe must be in the root directory, and a results 
file, Test2000.Tst, will be left there unless the NoBoot option is 
used.

The program will accept three command line options:

     Test2000 NoBoot [or nob]
        will perform only a 1999-2000 BIOS date transition test;

     Test2000 NoPause [or nop]
        will cycle through the tests without pauses;

     Test2000 ShowTiming [or tim]
        measures the year-to-century delays in microseconds.

The program may be run from any bootable disk or diskette, but we 
recommend that it be run from the local hard disk root directory; if 
run with the ReBoot option from a floppy diskette, many machines 
will reboot to the hard drive, not back to the floppy, which will 
result in a confused test.

If it is started from within Windows, the user will be given an 
opportunity to shut Windows down prior to rebooting (usually 
Ctrl-Alt-Del, twice, works fine).  ShowTiming is not available while 
in Windows; shut down to MS-DOS first.

While the diagnostic is running, the original AUTOEXEC.BAT file is 
renamed AUTOEXEC.Y2K.  If, for some reason, the diagnostic fails to 
complete its tests, you may restore the original AUTOEXEC.BAT file 
by running UNDO2000.BAT in the root directory.


        What Does Test2000.Exe Do?

Test2000 tests the BIOS year 1999-2000 transition by setting the 
BIOS date to 1999-12-31 23:59:58 and observing the change of 
century.  A non-compliant BIOS will not change the century, so the 
apparent date becomes 1900-01-01.  A compliant BIOS or a corrected 
BIOS will increment the century to 20.  Since Y2KPCPro will correct 
this error, the machine will pass this test if Y2KPCPro is running.

Test2000 tests the reboot cycle by setting the BIOS date to 
2000-02-29 before rebooting the machine, then checking that the date 
has not been changed by the reboot.  The original AUTOEXEC.BAT file 
will be briefly renamed to AUTOEXEC.Y2K during the test, then 
restored to AUTOEXEC.BAT for the second reboot.  The machine's 
AUTOEXEC.BAT is never modified; it is only renamed.  [Incidentally, 
any valid 2000+ date will do for this test; the choice of date was 
arbitrary.]  This test will detect the uncorrectable BIOSs which 
force a 2000+ date to 1994-01-01 or 1980-01-01 at boot.

BIOS code, BIOS extensions and other software solutions to the 
transition failure are always accompanied by a delayed century 
change; the delay is small, but it can be measured.  Test2000 can 
measure the delay from the CMOS RTC year transition to the CMOS RTC 
century transition, and from the CMOS RTC year transition to the 
BIOS century transition, accurate to one microsecond on most 
machines.  This allows easy verification that a given machine is 
truly hardware compliant if that claim is made; a software solution 
in the BIOS is indicated if there is any CMOS RTC century increment 
delay.

If year 2000 compliant, the BIOS century increment will always be 
delayed from the CMOS RTC year increment, even on hardware-compliant 
machines, because the BIOS manipulates the CMOS RTC data and that 
takes time.

If the ShowTiming option is invoked and Test2000 detects a truly 
hardware compliant RTC, it will say so; if it does not say that this 
machine is hardware compliant, it is not hardware compliant.  Such 
machines are rare today but will become more common, and many 
current machines can be retrofitted with a compliant CMOS RTC module 
produced by Dallas Semiconductor, the DS12C887 [see references].

In addition to the onscreen test results, text file Test2000.Tst 
will contain the test results after the test cycle completes.  There 
are three possibilities:

 - that the machine is compliant (both tests pass),

 - that the machine is not compliant (fails the 1999-2000 transition
     test), but can be made compliant with Y2KPCPro,

 - that the machine is not compliant (fails the reboot test) and
     cannot be corrected, except by a BIOS change if one is available.


        Equivilent assisted manual testing:

[Caution: See the caution statement under "Running Test2000.Exe".]

Reboot test:
     C:>DATE 12-31-1999
     C:>TIME 23:59
- Wait for more than one minute.
- Reboot.
- Check the DOS date.  It should be 01-01-2000.  If it's 01-04-1980,
     the machine exhibits the year 2000 flaw and can be corrected
     with this software; if it's any other date (01-01-1994, for
     example) the machine cannot be corrected except via a BIOS
     upgrade if one is available.
- Reset the date to today's date.

Real time 1999-2000 transition test (requires ViewCMOS.Exe v5.11 or
     later, available on our web page):
     C:>DATE 12-31-1999
     C:>TIME 23:59
     c:>ViewCMOS
- Watch the "CMOS RTC date via the BIOS" as it passes midnight.  The
     date should become 2000-01-01.  If it becomes 1900-01-01, the
     BIOS does not correct the date in real time.
- Reset the date to today's date.

     Alternatively, you can use DOSCHK.Exe or NSTL's 2000.Exe (also
     available on our web page) to do this test, since they each
     report on the BIOS date.  Do not be concerned with DOSCHK's
     probable indication of a CMOS RTC failure.

True hardware compliance cannot be proven with manual testing.


        What Do the Results Mean?

If the machine passes both tests, it is year 2000 compliant: you'll 
know that applications will receive the correct date at all times, 
without concern.

If the machine fails the reboot test, it cannot correctly recall the 
last machine date if it was after 1999-12-31.  Some Award 
v4.5x-series BIOSs will force the date to 1994-01-01, for example. 
These BIOSs must be upgraded, or the machine must be removed from 
date-sensitive service before the end of the decade, so this is a 
serious failure.  It cannot be corrected with software and will 
probably require a BIOS upgrade, if one is available, to correct it.

If the machine fails the BIOS date year 1999-2000 transition test, 
unless corrected the operating system date will probably boot to 
1980-01-04 on 2000-01-01, and applications that get the date via the 
BIOS will receive the wrong century.  These failures can be 
corrected by running Y2KPCPro on the machine.


        Y2KPCPro:

Information on Y2KPCPro is available at http://www.RighTime.com or 
from The RighTime Company.


        References:

Information on the year 2000 complaint DS12C887 CMOS RTC module:

Jim Lott
Manager, Real Time Clock Group
Dallas Semiconductor
4401 S. Beltwood Parkway
Dallas, Texas  75244-3292
(972) 371-4939
jim.lott@dalsemi.com
http://www.dalsemi.com


        Copyright notice:

ViewCMOS, RighTime, Y2KPCPro, Year2000.Com, Year2000.Exe, 
Year2000.Txt, Test2000.Exe and this file (Test2000.Txt) are 
Copyright 1997, RighTime, Miami.  All rights are reserved.

Permission is granted to freely copy, distribute and use this 
program in its complete, unmodified form including this text file.

No warranty of performance or suitability is expressed or implied. 
Every effort has been made to make this software program deliver as 
this documentation describes, but the correctness for your 
application or environment cannot be assured.  The RighTime Company 
cannot assume responsibility for the failure of this software 
program, nor for any consequence of its use.  You are encouraged to 
test the applicability of this program to your requirements and to 
verify the test results to your satisfaction with the assisted 
manual tests, as described above, or with other valid testing 
procedures.


If you encounter trouble, or have any feedback or questions about 
this diagnostic, please contact us.

The RighTime Company, Miami

Voice: (305)644-6500
Fax:   (305)644-6515
BBS:   (305)644-6185
Web:   http://www.RighTime.com
Email: Y2KPCPro@RighTime.com

