Subscribe now

Letter: Letters : Last word on Y2K

Published 8 November 1997

From Ian Galpin

g1smd@amsat.org

Geraldine Fenton assumes that it is better to leave your PC on when the date
changes to 1 January 2000
(Letters, 27 September, p 53).

This fails to take into account that when an IBM-compatible PC is left on at
the end of 1999, the resultant “2000” date shown by the “DATE” command is only
the DOS date, not that held in the real-time clock (RTC) chip. Using a utility
to view the RTC contents will show it has rolled over from 1999-Dec-31 to
1900-Jan-01. Programs using a two-digit year or this incorrect RTC date will
fail at the start of 2000.

The RTC is crystal-controlled and stable. It is kept going by a small battery
while the machine is switched off. The DOS clock is interrupt-driven. It can
lose several minutes a day. After the machine has been switched off, DOS rereads
the RTC when the PC is next switched on.

The RTC date will roll over from 1999-Dec-31 to 1900-Jan-01 whether the
machine is on or off at the time. When DOS reads the RTC, if the RTC date is
outside the range 1980-Jan-01 to 2099-Dec-31, the DOS clock will default to
1980-Jan-04. This condition does not change the RTC date. So the next day the
RTC will read 1900-Jan-02, then 1900-Jan-03 and so on. The DOS date will default
to 1980-Jan-04 each and every time the machine is rebooted, causing problems to
users whether their programs use the RTC or DOS.

Only if the machine is left on at the end of 1999 does DOS correctly advance
to 2000 on its own—and then, only those applications that use the DOS
date/time with a four-digit year will carry on working. Leaving the machine on
at the end of 1999 will not correct the problem with the RTC. At the next reboot
the DOS clock will still go wrong because of the wrong date fed from the RTC.
Without user intervention, programs using the RTC will always fail, whether the
machine is left on or not.

Using DOS version 3.3 or later, the “1900” date in the RTC can be corrected
at the DOS prompt by using the “DATE” command. Even if the date shown appears to
be correct you still need to type the date in again. You are only looking at the
DOS date not the RTC. Pressing “enter” only will not update the RTC.

Only on the very latest machines does the BIOS intercept the 1900 date from
the RTC at reboot and correct it to 2000; the rest leave the RTC at 1900 and DOS
defaults to 1980. Even so, most new PCs are not currently capable of putting the
RTC date right if the machine is already on and running when 1999 ends.

Using utility programs like VIEWCMOS.EXE, 2000.EXE, DOSCHK.EXE will show
these things to be true. These can be obtained free by following the links at
http://ourworld.compuserve.com/homepages/dstrange/y2k.htm.

The above explanation for DOS applies equally to Windows.

A fuller version of this letter is available on the New Scientist Web site at:
http://staging.newscientistbeta.com/ns/971108/letter.html. This correspondence is
now closed until January 2000.

Issue no. 2107 published 8 November 1997

Sign up to our weekly newsletter

Receive a weekly dose of discovery in your inbox. We'll also keep you up to date with New Scientist events and special offers.

Sign up
Piano Exit Overlay Banner Mobile Piano Exit Overlay Banner Desktop