[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hardware Bios not Y2K compliant.



PureBytes Links

Trading Reference Links

Take some of this Y2K bios stuff with a grain of salt ... just because a
machine flunks the Y2K clock rollover is no reason to panic ... it will
likely be just fine if turned off on 12/31 and turned on the morning of
01/01!!! I recommend visiting the NSTL web pages (probably www.nstl.com or
org) and downloading their check utility which will do a thorough check and
tell you where you need to watch for problems. See readme which accompied
test software below. Don't send me any e-mail on this I'm not an expert!

Earl

Test Instructions
1. Boot to DOS.
2. Execute 2000.EXE
3. Read the results on your monitor.

If YMark2000 should recommend a manual reboot test, perform the following
steps:

1. Create a DOS boot diskette and use it to boot the system you want to
test.
   Be sure you are using DOS version 3.2 or higher.
2. Set the date into the Year 2000 using the DATE command and reboot the
   system.  LEAVE THE BOOT DISKETTE IN THE DISKETTE DRIVE.
3. Check the date after the boot.  If it is the same as the date set in
   step 2 then you will need to set the date one time only once.
4. Be sure to restore the computer's date to today's date!


NSTL's Y2K test program, YMARK2000, performs the following tests:

  ú Verify MC146818 RTC compatibility.  This test ensures that the date
    and time indices are compatible to the MC146818 and the data is in
    packed BCD format.  Some non-DOS based operating systems, like Unix,
    do not use the BIOS but use drivers to access the clock directly.
    This test ensures that the clock is a Motorola MC146818 compatible
    chip.  If the chip is not compatible, then these "other" operating
    systems or programs that read the clock directly may fail.

  ú Verify real-time progression from December 31st, 1999 to January 1st,
    2000.  If real-time support fails, then the ability to set the date
    manually is checked.

  ú Verify recognition and support of the 2000 leap year.

NSTL considered including a power cycle test to confirm the retention
of century information.  Although conceivable, it is highly unlikely
that a BIOS reporting a correct century in real-time will fail after
a power cycle.  Nonetheless, a reboot test is an important part of the
total Year 2000 test process.


Batch file support:

YMark2000 returns an error level that can be used in batch files.
The error levels returned are:

      0 The system is Year 2000 compliant
      1 The hardware clock is not compatible to the MC146818
      2 Progression to the next century is not supported
      3 Progression to the next century is not supported and
        the hardware clock is not compatible to the MC146818
      6 The year 2000 is not supported
      7 The year 2000 is not supported and
        the hardware clock is not compatible to the MC146818
      8 The leap year of 2000 is not supported
     18 A manual Year 2000 reboot test is required since the system
        is using an Award BIOS.
     19 BadProgression & BadRTC & Award 4.50G BIOS
     22 BadY2K & Award 4.50G BIOS
     23 BadY2K & BadRTC & Award 4.50G BIOS
     26 BadLeapYear & BadProgression & Award 4.50G BIOS
     27 BadLeapYear & BadProgression & BadRTC & Award 4.50G BIOS

    255 The program failed to execute.  Either the license agreement was not
        accepted, the RTC is not running, or an unknown command line
        parameter was issued.


An explanation for the programmers.  Error levels are indicated by bit
fields.  Since multiple errors can be detected, the sum of the error
bits are returned.  For example, error level 6 (The Year 2000 is not
supported) is a combination of BadProgression and BadManualSet (2+4).

   struct {
     int BadRTC         :1;  // 1, The hardware clock is bad
     int BadProgression :1;  // 2, Progression to 2000 does not occur


     int BadManualSet   :1;  // 4, Cannot manually set 2000
     int BadLeapYear    :1;  // 8, Error in leap year support
     int AwardBIOS      :1;  // 16, An Award BIOS is in use
     };


Overview: The Year 2000

Is your personal computer ready to handle the 21st century?  You can't be
sure
unless your system is properly tested. National Software Testing
Laboratories,
a division of The McGraw-Hill Companies, has developed a program that can
definitively tell whether a personal computer system will handle the
transition
to the next century.

Software and operating systems retrieve the date from the computer.  If the
computer does not support the 21st century, neither will its software.

This program tests the personal computer's ability to support the year
2000, not the operating system or software applications.  Separate
testing must be performed on software.

The term "personal computer" in this document refers to any x86 based
"industry standard" computer that contains a built-in real-time clock.
"Industry standard" itself refers to IBM compatible or clone.  In general,
this applies to personal computers built since 1985.  Operating systems are
meant to include all flavors of DOS and Microsoft Windows.


How the Computer Clock Works

Every personal computer contains two clocks - a built-in hardware clock and
a virtual clock.  The hardware clock (real-time clock) runs whether the
system is on or off.  The virtual clock (system clock) is set to the real-
time clock when the computer is turned on and exists only while the computer
is operating.  While the computer is up and running, the two clocks run
independent of each other.

The system clock is a 24 hour timer and has no real concept of days;
whereas, the real-time clock tracks the time and date.  In fact the system
clock has no concept of traditional hours, minutes, and seconds.  It merely
increments a counter 18.2 times per second.  The operating system, which is
dependent upon the system clock for the time, converts the counter into
hours, minutes and seconds.  As for the date, the operating system, during
initialization, reads the real-time clock via the BIOS then tracks the date
independently based on the virtual system clock rolling over midnight.

For some reason, the real-time clocks used in today's personal computers do
not track centuries - only years, such as '96, are tracked.  When the next
century occurs, the real-time clock merely indicates year '00.  It is the
BIOS's responsibility to track the century and preserve that information in
the real-time clock's nonvolatile CMOS memory.

The BIOS assumes that the years 1900 through 1979 cannot occur, so when the
year is within 00 - 79 and the century information is 19, the BIOS should
set the century information to 20.  If the BIOS does not track the century,
the operating system will be given an invalid year and most likely will
assume 1980.  (Microsoft operating systems do not support dates earlier
than 1980.)

Caveats

Since the two clocks run independently, the real-time clock can be set to
any nonsensical value while the system is running and the operating system
will not notice.  Such will occur January 1, 2000 if your system does not
support the year 2000 and it is left on.  As long as the system is running,
the operating system will correctly support the occurrence of the year 2000.
Problems will occur, however, when the system is rebooted or powered off
then on.  This is the first caveat -- Setting the date and time just prior
to the year 2000 and just letting the new year occur is not a valid test.
The real-time clock may be invalid, but the date according to the operating
system will be correct.  The system must be powered off then on to complete
this type of test but there is still a catch.

The second caveat may occur when the operating system is used to set the
date and time.  The system clock will always be set by the operating system.
However, not all operating systems will concurrently set the real-time clock
along with the system clock.  In this scenario, the above methodology may
cause a system that correctly supports the year 2000 to fail if the
operating
system does not set the real-time clock as well.

Frequently Asked Questions

Q.  Is this test program free?
A.  Yes. The program, 2000.EXE, provided by National Software Testing
    Laboratories, a division of the McGraw-Hill Companies, is publicly
    available.

Q.  What does YMARK2000 do?
A.  The program tests a personal computer for its ability to support the
    year 2000.  The program tests only the BIOS and the real-time clock's
    functionality.  Operating systems and applications must be tested
    separately.

Q.  A manual test on my PC shows Y2K compliance, but NSTL's test program
    says my system is non-compliant.  Why the discrepancy?
A.  A manual test can not examine the real-time clock's ability to rollover
    to the 21st century in real time.  If a manual test indicates support
    yet NSTL's test shows otherwise, chances are this is what you are
    experiencing.  NSTL's program examines the hardware clock rolling over
    to the next century.  A DOS level manual test with system reboot does
    not.

    Why is real time support important?  For the majority of applications
    it is not important.  But for applications that must record the date
    and time accurately, this is very important.  The system clock (DOS's
    clock) is notoriously inaccurate and most applications, and certainly
    the operating system, use it.  But for accurate time, the hardware clock
    is far better.  Network operating systems, voice messaging systems,
    automated schedulers, etc. usually use the hardware clock since they run
    24hrs a day.

    An assumption is made that DOS sets the real-time clock hardware as well
    as the system clock.  This is true for later versions of MSDOS and
PCDOS.
    It is not true for earlier versions and I don't know off-hand whether
    other DOS "compatible" operating systems set the hardware clock or not.
    Testing the hardware clock is more accurate since the operating system
    must initially obtain its date and time from the hardware anyway.

    To avoid uncertainty, NSTL's test bypasses the operating system
    completely and examines the clock interface at the level that DOS, and
    some applications, use.  Thus, disclosure of more subtle problems are
    observed.

    Operating systems, such as Unix, do not use the BIOS but obtain the date
    directly from the RTC hardware.  NSTL's Y2K test makes sure the year in
    the RTC is located at the standard location.

    NSTL's Y2K test does not examine DOS's time/date functions.  The test
    interfaces solely with BIOS interrupt 0x1A, functions 2, 3, 4 and 5.

    The methodology is simple.  The RTC date and time is set via the BIOS
    and allowed to roll over to the next day.  The date is read via the
    BIOS and is examined and reported.  The date and time being displayed by
    the program is what the BIOS is reporting in real time.

    The following methodology demonstrates what you are witnessing.  It is a
    manual test, but it is a test of the hardware clock.

    At the DOS command line, enter "2000 READ".  The current date and time
    of the hardware clock is displayed.  Set the date and time via DOS prior
    to the next century just as you do in your manual test.  Enter
    "2000 READ" at the command line again to view the new date and time.
    Using the F3 key, re-issue the "2000 READ" command repeatedly and watch
    the time and date rollover midnight.  I believe you'll find that the
    date goes to 1/1/1900.  Power cycle the system.  Once back at DOS, enter
    the "2000 READ" command again and you'll find that the date is now
    1/1/2000.

    It is NSTL's position that a manual Y2K test is inadequate for this
    reason.

    Although NSTL may be biased, our Y2K program has a very strong track
    record.  We know it to have been run on hundreds of PCs with accurate
    results.  The Canadian government along with many major corporations
    currently use it for testing personal computers.

Q.  My computer does not support the year 2000, what can I do?
A.  Contact the system's manufacturer for a BIOS upgrade.  (It is the BIOS
    that is responsible for supporting the next century.)  If an upgrade is
    not available, the next best solution is to replace the system with one
    that does support the 21st century but that is expensive.

    Your system may maintain the new century if you set the date
    manually.  Do a manual year 2000 test by setting the date to
    1/1/2000 and rebooting the system.  If DOS returns 1/1/2000, then
    you will need to manually set the date only once when the next
    century comes.

    It is possible to install special programs that will fix the problem,
    but that program must be executed every time the computer is booted.
    Unfortunately, the program will always be susceptible to unsuspecting
    persons believing it was not needed and thus removing the program.  If
    supporting the 21st century is a must, this solution is not desirable.

    You can manually set the date every time you turn on the system or have
    the computer automatically retrieve the date from a network.  You're
    human and most networks seem to exhibit human traits too; thus, you can
    forget, accidentally enter the wrong date, are unable to connect to the
    network, the network is down, etc....

Q.  Does Windows 95 correct the year 2000 problem on systems that fail
    this test.
A.  Not really.  Windows 95 itself does.  But Windows 95 is based on
    DOS and the DOS itself does not.  Thus, the problem is most likely to
    affect DOS based applications that must run in dedicated DOS sessions.

Q.  Does Windows NT 4.0 correct the year 2000 problem on systems that
    fail this test.
A.  Yes, but only within the NT operating system.  If other operating
    systems are run on the same system, the problem may still exist.

Q.  Can the failure to support the 21st century be corrected via a software
    patch?
A.  Not reliably.  In order to correct this problem, the patch software must
    be loaded and executed everytime the computer is started and before date
    sensitive applications are run.  Unfortunately, device drivers and TSRs
    are loaded after the operating system and can easily be bypassed.  Also,
    the patch software must be loaded everytime the system is booted for the
    life of the computer which could extend well into the next century.
    Unsuspecting individuals, not knowing what the patch software is, could
    easily remove the patch software from CONFIG.SYS or AUTOEXEC.BAT files.

Q.  Does NSTL have any other Y2K services?
A.  Yes. NSTL has a Year 2000 System Compliance Program. Using YMARK 2000,
    NSTL will determine if a system is Year 2000 compliant. Systems meeting
    test standards will receive the NSTL Tested Year 2000 System Compliant
    logo.  System vendors and marketers can use this seal in advertising,
    packaging, sales materials and other promotional materials.  NSTL also
    offers consulting services and can recommend workarounds and solutions
    for software that does not support year 2000.

    While NSTL has made YMARK2000 available free of charge, NSTL's other
    services are all fee based. For more information on NSTL's commercial
    testing services e-mail year2000@xxxxxxxx or call 610-941-9600.

Q.  What is NSTL?
A.  NSTL, a division of The McGraw-Hill Companies, is the leading,
    independent testing facility for the computer industry.  Founded in
    1983, NSTL pioneered the use of objective, comparative testing of PC and
    LAN hardware and software. NSTL offers custom compatibility,
    certification, performance, usability, BIOS and comparison testing
    services to hardware developers, software publishers, government
    agencies and corporations throughout the world.  NSTL also publishes
    Software Digest and PC Digest and conducts testing for 60 business and
    trade publications worldwide.

NSTL does not guarantee accuracy, adequacy or completeness of the services
provided in connection with this program.  NSTL MAKES NO WARRANTIES, EXPRESS
OR IMPLIED, AS TO RESULTS TO BE OBTAINED BY ANY PERSON OR ENTITY FROM USE OF
THE CONTENTS OF THIS PROGRAM.  NSTL MAKES NO EXPRESS OR IMPLIED WARRANTIES
OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OF ANY PRODUCT MENTIONED
IN THIS PROGRAM.