Year 2000 problem

This article is an attempt to explain what the Year 2000 problem, also known as the Y2K bug or (less  accurately) the millennium bug is and what you can (and should!) do about it. I’ve tried to be as accurate as possible while still trying to explain the problem in clear terms. Having said that, I should offer a standard disclaimer that any Year 2000 webpage will have : If use of the information leads to damage of equipment, the TTCS is not liable for any expenses that may be incurred.

(Written by : Dev Anand Teelucksingh, Paul Worswick, circa October 1998)

What is the Year 2000 problem?

The Year 2000 problem is a general description of the problem caused by computer hardware and software or anything else for that matter that is unable to deal correctly with the change from the year 1999 to 2000. It is not confined to personal computers but also anything which uses microprocessors (embedded technology) such as central heating systems, telephones PBXes, and industrial controllers.

The Y2K problem has been called the “millennium bug” but this is inaccurate as the occurance of the millennium itself has nothing to do with the problem. If we were living in 1899 instead of 1999, we would still have a problem when the year changed from 1899 to 1900.

Essentially, most computer hardware and software track only the last two digits of the year. So the year “1999” is treated as “99”. When the year 2000 occurs, these hardware and software will see the year as “00”, causing malfunctions as some will treat the year as “1900” and give incorrect results.


Hardware Aspect of the Y2K bug

Personal Computers

Most personal computers in use today are either IBM compatibles or Apple Macintoshes. From a hardware perspective, the Y2K problem occurs in IBM compatibles and not on the Macintosh platform.

There are three components in Personal Computers (PCs) that deals with the tracking of the date and time. They are the Real Time Clock (RTC), the BIOS (Basic Input/Output System), and the CMOS RAM.

  • The RTC keeps track of the current date and time. It is powered by a small battery, so it keeps track even when the PC is turned off.
  • The BIOS is the software that starts and configures the PCs. The BIOS program is stored on a IC chip. When the computer is switched on, the BIOS software is responsible for testing and configuring the computer before turning control over to an operating system, usually loaded from a hard disk.
  • The CMOS-RAM is a data storage area which is also powered by a battery and contains information about the actual date and time (as kept by the RTC) as well as user configuration settings (like hard drive settings, serial ports, etc).

When the machine is turned on, the BIOS gets the date from the RTC. The original specification of the 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 (OS). Since the century digits are not maintained by the RTC, and, even though the digits are set by any system date set command by the OS, they are not incremented when the RTC increments the year from 99 to 00; the result is that year 1999 will be followed by apparent year 1900.

Many IBM compatiables (even those claiming Y2K compliance!) have RTCs that perform this way. Apparently, the reason why RTCs weren’t updated is due to cost. However, the task of fixing this problem falls on the BIOS.

Most newer BIOSes automatically update the century byte when the computer is running when the date change happens. If a request for a date read/write is received by the BIOS, the BIOS will reset the century byte when the years byte value from the real time clock has a value less than “80” or sometimes “35”. A similiar situation occurs if the machine is turned on for the first time in the Year 2000.

For older BIOSes, changing the system date to years beyond 1999 may require a manual update. If the system is running when the date change takes place, the date can be easily updated by an application designed to monitor date and time and provide updates to the century byte CMOS or by the user changing the date/time using the operating system.

Testing the Hardware and CMOS for Year 2000 problems

You can test your computer for Y2K problems manually but there are several recognized tester programs which automatically sets and reboots the computer and checks the various clocks automatically (RTC/BIOS/DOS). These programs set the clock to 11:59pm, on Old Year’s night, 1999. Thus the transistion is checked and the results displayed.

Here are the links to some testers:

There are no software programs to test Apple Macintoshes since Macintoshes don’t have this hardware problem.

What to do if the BIOS is non-compliant

If the tester program says that the BIOS is non-compliant, what can you do?

First, check if your machine’s BIOS can be upgraded via software. This method is the most permanent solution: once applied, you don’t have to worry about the hardware not being compliant and you can focus on the software aspect of Y2K.

If you have brand name computers (e.g from Dell, Gateway, IBM, Compaq), visit their website to check. If you have a “no-name” brand, find out the brand and model number of the motherboard (usually etched on the motherboard itself) and then visit the motherboard manufacturer’s website. These software BIOS upgrades are usually free.

If your BIOS cannot be updated via software or if you have too many no-name computers to check, there are other alternatives :

  • if you know for certain the computer will not be on when the year 2000 occurs, you can change the date yourself after the year 2000 has arrived. This might be viable for small numbers of computers that you can control. Here are the steps necessary:
    • Create a DOS bootable disk. Test to see that the computer can boot from the floppy.
    • Shut down the computer before Dec 31st, 1999 before midnight
    • After the year 2000 has arrived, insert the bootable disk into your floppy drive and turn on the computer.
    • Type ‘date’. The non-compliant BIOS should say ‘1980’. Change the date to ‘2000’
    • Reboot the computer again from the floppy disk and run the date command. The year should be 2000. Remove the floppy disk and reboot the computer.

    You should NOT allow the computer to boot into Win3.x or Windows 95 after the year 2000 on a non-compliant computer because you may have application software which would read the incorrect date and may act upon it with incorrect results. Or worse, software licenses which are time sensitive (e.g demo software which works for only 30 days from the first install) might expire.

  • apply a software patch, which runs as a memory resident program, purchased from various vendors (many of whom have free Y2K testers). The price of these patches ranges from $30 US to $90 US. You should also investigate operating system upgrades, since these upgrades also include the software patch for non-compliant BIOSes.
    • For DOS/Win3.x, there’s IBM’s PC DOS 2000 and Caldera’s DR-DOS
    • For Windows 95, there’s Microsoft’s Windows 98 and Windows NT v4.0. Although, in April 1999, Microsoft released a Y2K patch for Windows 95 so there is no Y2K reasons to upgrade Windows 95.
    • For other operating systems, visit the vendor’s websites for upgrade information.
  • Hardware solutions including purchasing a hardware BIOS upgrade which is similiar to a CPU upgrade : you pull the chip containing the old BIOS code and insert the new chip with the updated BIOS. Also, you can purchase an expansion card that plugs into a ISA slot that can do the same thing. However the prices of these solutions often approaches the price of a new motherboard entirely so these hardware solutions aren’t viable for small numbers of computers but might be for large numbers of computers in a company.
  • Buy a new computer to replace the older one.

After you’ve tried one of these solutions, re-test the computer to see if the hardware is now Year 2000 compliant.

Embedded Systems

Embedded Systems use many programmed microprocessors (sometimes called programmable logic controllers or PLCs). These PLCs contain software code. So the possibility exists that even one non-Y2K compliant PLC in a embedded system can cause the embedded system to not function properly. Many PLCs cannot be upgraded so most likely the embedded system has to be replaced.

As with computers and software, you should compile a list of all possible date-sensitive hardware (e.g security systems, A/C controllers, telephone PBXes, network equipment) and contact the vendors you purchased them from (or the manufacturers of the devices) to see if they are Y2K compliant and to replace them if they are not.

Software Aspect of the Y2K bug

Operating Systems

All operating systems get the date and time from the BIOS at startup. So how does the operating system handle the year 2000? (assuming the BIOS reports the correct date) Many modern operating systems such as DOS, Windows 3.x, Windows 95, and Windows 98, Linux and OS/2 are compliant with only minor problems.

  • For DOS, the DATE command will not accept any two digit dates after the Year 2000. Only 4-digit dates will be accepted.
  • For Windows 3.11, the Windows File Manager displays the dates incorrectly although the files themselves are handled correctly. An update is available.
  • The Windows 95 Explorer and do not display the date properly although it is recorded correctly by the operating system. An update is available.
  • Windows 98 is compliant with minor issues. Patches are available.
  • Versions of Novell NetWare below v4.11 are not fully compliant. Updates are available.

Application software

Programmers in the 1980’s and earlier often used two digits to denote the date, such as “98” for 1998. This was due to the high expense of memory. Many of these programs are still in use. Also, since today’s software was often done by taking the previous code and incorporating it into newer versions, the problem of using two digits to represent the date is still very prevalent in many applications, regardless of platform or operating system (this includes Mac users!). You should compile a list of all your important software applications on your computer and then check the various software vendor’s websites for specific information on Y2K compliance. If software upgrades are needed, you might have to upgrade the computer hardware in order to run the upgraded program properly.

Also examine any macros you or your company have created for use in applications like wordprocessors or spreadsheets and check if they are Y2K compliant (does the macro use the date in any way? If so, does it use the 4 digits of the year?)

Also, check your data. If you’ve been entering dates in your Y2K compliant application using only two digits for the year (e.g. dd-mm-yy), you’re in trouble. While several work-arounds exist, the safest (but sometimes the longest and most expensive way) is to convert all two year dates in your data to four year ones.

Final Words and Various Y2K related sites

If you’re applying this on a home PC or a SOHO (Small Office/Home Office) and you think this is a lot of work, think of companies which have a large number of computers which have different operating systems and different software applications yet each exchanging data and hence relying on each other in order for the company to function.

The key problem with the Y2K bug is that solving it is time-consuming (not to mention expensive) since all aspects must be tested and debugged and there is no “magic bullet” purchase which can solve it. You have to take the responsibility by

  • compiling a list of the hardware (computers and embedded systems) and software (operating systems, applications and data)
  • Determine which of these systems are critical to you and your business so they can receive priority attention.
  • Test these systems for Y2K compliance.
  • If there are problems with compliance, determine which affected systems should be fixed or replaced first.
  • Actually fix or replace the non-compliant system.
  • Test to see if the upgrades and/or fixes worked.

Also, ensure that other companies that you do business with (either buying from or selling to) are Y2K compliant or are working on it. Imagine if your main supplier has Y2K troubles and is unable to deliver items or services you need to run your business. Apart from the obvious supplier of raw materials to your company, remember to include companies like accounting firms, shipping companies, repair companies, insurance companies and banking institutions.

Be aware that insurance companies in Trinidad and Tobago are NOT accepting liability for any Year 2000 problems you may have.

Here’s are a few Y2K related websites. The few listed here will offer a great deal of information and provide further links to help you to determine your Y2K compliance.