The Millennium Bug

Y2K - The cost-effective solution to tackling "The Millennium bug"


Portuguêses   Español   Deutsch   Italiano   Français

Frequently Asked Questions

Which Operating Systems does Y2K work under ?

Y2K will run on a PC under any version of DOS, Windows 3.x, Windows 95 and Windows 98. It will not work under Unix or Linux, or on any hardware that is not IBM compatible. Windows 98, NT and 2000 apparently do the same job that Y2K does in that they will detect that the century rollover has not occurred in the BIOS clock and correct it, so Y2K should not be needed on machines running one of these O/S, but only if you have installed the latest service packs from the Microsoft website. A freshly-installed copy of Windows 98 does not include this functionality, and so would benefit from the installation of Y2K if the BIOS is non-compliant.

I have downloaded Y2K, now how do I run it ?

DOS & Windows 3.x
Under Windows, use the File Manager to locate the directory into which you downloaded Y2K, then double-click to run it. Under DOS, change to the relevant drive and directory (using the CD or CHDIR commands) and type Y2K then press <Enter>.
Windows 95/98
If you downloaded it to your desktop, you should now have an icon for Y2K somewhere alongside "My Computer", "Recycle Bin" etc.. If not, open up the Windows Explorer and navigate to the appropriate folder. If you're not sure where it downloaded to, click the "Start" button and select "Find", "Files or Folders" then enter the filename as Y2K.EXE, look in "My Computer" and click "Find now". If you've downloaded okay, an icon will appear in the lower panel which you can then double-click. Y2K will then perform the relevant tests then displays the results.

How do I install it ?

When you register, you will be issued with a serial number which can then be used to activate the Y2K installation function. When you next run Y2K on a non-compliant machine you will be prompted to enter your license details. Alternatively, you can run Y2K with the command-line switch /REGISTER.

I have installed Y2K, but it still reports that my machine is non-compliant

Installing Y2K doesn't actually cure the Millennium Bug, what it does is to rectify the problem that the bug causes before it wreaks havoc with your applications. So your BIOS will always have the bug, but with Y2K installed it's effects will be neutralised and your machine will behave normally.

I have installed Y2K, but another program reports that my machine is still non-compliant

The problem with using one vendor's software to test anothers is that neither exactly knows how the other works. Some packages use the same technique as Y2K, setting the date and time to 31st December 1999 23:59:59 then waiting 2 seconds and checking the century, which is sufficient. It does not, however, take into account any software which may be set to run when your system fires up on the big day. Others take the somewhat more complicated approach of changing the date then rebooting the machine automatically before checking it again, which is perfectly legitimate if rather long-winded. In this case, they deliberately bypass your normal system startup files (CONFIG.SYS and AUTOEXEC.BAT) in order to prevent them from running any programs which might interfere with the testing process. This is a sensible thing to do, but unfortunately completely removes Y2K's effect because it normally runs as the first line of your AUTOEXEC.BAT, and it is only in this way that Y2K spots and corrects the date rollover problem.

Do I really need to change my Windows date settings?

An email has been circulating recently warning Windows users to ensure that their date settings can display 4 year digits, or risk their PC's clock not rolling over properly. While the instructions provided within the message are correct, the reasoning and explanation are entirely flawed. Adding the extra year digits to your "short date" setting will have no effect whatsoever on date rollover within the Operating System, it's function is purely cosmetic and simply controls how the date is displayed within Windows applications.

To this end, though, the necessity of making this change is open to debate. The likelihood of any application failing to process dates correctly because only 2 digits are displayed is actually extremely small, as programs usually store and process date values in a different format behind-the-scenes such as "days-since-1900" or "yyyymmdd".

Y2K does actually check this within the Windows date settings & offers to correct it, but to be perfectly honest we built in this option as an extra "frill" because it was easily implemented and most of the other compliance-test utilities also provide it, rather than because of any great practical value.

What are the command-line options, and how can I use them ?

Y2K supports a number of command-line options which influence it's behaviour. These are: When Y2K installs itself in AUTOEXEC.BAT it always sets the default behaviour as /FIX. If you want to use them, /NOWAIT and /NOREMOVE must be added manually. The latter should only be necessary on PCs on which a virus scanner or remote-configuration utility may object to AUTOEXEC.BAT being updated automatically - Y2K will always assume /NOREMOVE on BIOSes which do not retain the century byte, and will therefore remain installed permanently. Finally, if you run Y2K /TEST /NOWAIT it will not prompt to install itself but instead returns an ERRORLEVEL indicating the seriousness of non-compliance on the PC in question. The value returned is the sum of four values depending on the results of each test:

4 for the Windows date
8 for the O/S clock
16 for BIOS Leap-year recognition
32 for BIOS rollover

A return value of 36, for example, would mean that both the BIOS and Windows date tests failed.

How will Y2K affect my Novell Netware workstation ?

On DOS-based workstations the Novell LOGIN program normally synchronises the date & time with the currently-connected file server, which means that the effects of Y2K.EXE will immediately be reversed if the date on the server has not been corrected - the workstation will be set back to 1980 again. Worse still, even if you're using brand new machines with a millennium-compliant BIOS that don't need Y2K.EXE installed, these may also be affected if you're using an older server. However, Windows 95 workstations that use the built-in Netware client (rather than Novell's own 32-bit client) do not automatically synchronise date & time with the server, so they will benefit from the installation of this utility. Whatever O/S you're using on the workstations, the date on the server can be corrected by running the FCONSOLE supervisor utility & selecting the "Status" option.

Which clocks does Y2K test - a technical explanation

There has been some confusion over how many clocks "exist" in a PC due to the way in which they're accessed through software.

The first, which exists all the time (assuming the battery is not dead) is the BIOS clock. This is stored in the CMOS non-volatile RAM, which is maintained by the power from the battery. The CMOS is just a small area of memory which holds a variety of very important information about the PC, such as what sort of hard & floppy disk drives are attached to it. You can look at the value of the BIOS clock by going into the BIOS setup utility (usually by pressing DEL) when the machine fires up. Because accessing and updating the CMOS is only ever done by BIOS routines (as motherboard configurations vary), the terms BIOS and CMOS are always closely linked.

From a programming perspective, the clock value maintained in CMOS memory can be accessed in two ways. The easiest and most common method is to use what are called Interrupt calls to the BIOS. However, the value of the bytes in the CMOS memory can also be interrogated directly using what are called I/O ports, albeit in a rather more long-winded manner, and this manner has also changed occasionally over the years (such as when IBM introduced the PS/2). No-one would normally bother with this second technique, as the guys who wrote the BIOS routines in the first place have already done all the hard work so a programmer would just use the BIOS routines instead. But from the point of view of someone who doesn't realise they're exactly the same thing, this could be seen as two separate clocks, which is why the apparent distinction is made.

The "Real Time Clock" is exactly the same thing, just another name for it. The reason this term is used is to distinguish it from the processor's own internal "clock" which regulates sending of digital signals between the various peripherals inside the machine. It's just a term that a non-techie picked up on and has managed to get into circulation.

The other genuinely distinct clock in a PC is the one maintained by the Operating System. The O/S clock is "created" and initialised to the current value of the BIOS clock whenever the machine is switched on or the O/S is reset (but thereafter it's updated and maintained by the O/S) so it's ability to correctly process the century rollover is only relevant if the PC is to be left switched on over the crucial night. Anyway, from the results of the tests we have conducted, the clock in DOS version 3.20 was apparently afflicted in the same manner as some BIOSes but it's very unlikely that this is still in use anywhere (it can only cope with 640K of RAM and 32Mb hard disks).

The BIOS clock passed, but the O/S did not. What do I do?

Y2K does not try to correct the problem in the O/S, but this probably will not affect you anyway. You only need to be concerned if you normally leave your PC switched on overnight, running automated processes. If it is off over the New Year, the O/S clock will be set from the BIOS clock next time you switch on so the O/S rollover will never happen & you are in the clear.

Any other questions

If you have a more complicated problem, please mail it to y2k_support@harlend.com.

Click here to return to the Y2K home page.