Test2000.Exe v2.36a [FileOnC: mode]       Copyright 1998, RighTime
August 30, 1998                                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 (+1 305) 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 (Dallas, Texas, USA, http://www.dalsemi.com)
has announced the availability of the DS12C887, the first truly
hardware year 2000 compliant, drop-in, PC compatible CMOS RTC
module.  Most motherboards that feature a CMOS RTC module socket can
accept this device and achieve year 2000 compliance at the cost of
physical intervention.  Although Dallas Semiconductor does not sell
the part directly, it is available through Resource 800
(http://www.resource800.com or 1 800 430-7030).


        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 and
Windows 95 Find do odd things to the year in file 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.  You can verify an apparent leap year failure by
setting dates and times appropriately and watching the results with
ViewCMOS.Exe, available on our web site.


        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.

Test2000.Exe cannot be run from within Windows because of
interference that the operating system can produce.  You must shutdown
to a pure DOS prompt (from Windows 95, click Start/Shutdown/Restart
in MS-DOS mode), or boot to a command prompt before running
Test2000.Exe.

It is not necessary to remove LAN cables with Test2000.Exe v2.30 or
later.

The program will accept several 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;

     Test2000 FileOnC: [or onc]
        modifies no system files and creates C:\Test2000.Tst.


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 can
result in a confused test.

Unless option FileOnC: is used, while the diagnostic is running the
original AUTOEXEC.BAT file is renamed AUTOEXEC.Y2K, and CONFIG.SYS
is renamed CONFIG.Y2K.  If, for some reason, the diagnostic fails to
complete its tests, you may restore the original system files by
renaming AUTOEXEC.Y2K in the root directory to AUTOEXEC.BAT and
CONFIG.Y2K to CONFIG.SYS, then restarting the machine.  A temporary
batch file which will do this is created by Test2000.Exe for the
duration of the test.  If UNDO2000.Bat exists in the root directory,
you may use it to restore the original system files.

Option FileOnC: will prevent renaming, modification, or creation
of system files, and it creates the test results summary file, 
\Test2000.Tst, always on the C: drive.
This means that if the reboot test is run, Test2000.Exe will not 
restart itself and must be restarted by the user or reexecuted in 
Autoexec.Bat.  This option is intended to be used when running the 
test from a bootable write-protected floppy diskette.


        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 will also detect if a CMOS RTC Alarm interrupt occurred
during the transition test; such an event very likely indicates the
presence of an active software fix.  At least one software fix
causes the CMOS RTC to skip the last few seconds of 1999; missing
seconds will be detected and indicated by Test2000.

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.  Unless option FileOnC: is used, 
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 usually force a 2000+ year to 2094 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.

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.


        Equivalent 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 (03-01-2094, for
     example) the machine cannot be corrected except via a BIOS
     upgrade if one is available.
- Reset to the current date and time.

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.  Other dates can
     result from system drivers that interfere with the transition.
- Reset to the current date and time.

     Don't try to do these tests from the BIOS Setup screen.  The
     BIOS will likely wrap the date from 12-31-1999 to 01-01-1980
     (or 1994), not to the normal 01-01-1900, invalidating the test.


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 year to 1994 or 2094, 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.


        Copyright notice:

ViewCMOS, RighTime, Y2KPCPro, Year2000.Com, Year2000.Exe,
Year2000.Txt, Test2000.Exe and this file (Test2000.Txt) are
Copyright 1998, 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 Clock Company, Inc.
80 Southwest 8th Street, Suite 2180
Miami, Florida 33130 USA

Email: Y2KPCPro@RighTime.com
Web:   http://www.RighTime.com
Government: (+1 305) 644-6500
Non-Government: (+1 305) 577-6400
Fax:   (+1 305) 577-6401

