Site hosted by Angelfire.com: Build your free website today!

Back Home

How hard will the Millennium Bug bite?

Kilen Mathews Special to the Middle East Times
.

Starting in the wee hours of 1 January 2000, the world will be very different. If you listen to the doomsayers, January 2000 will not be a good month.

They make predictions of hospitals able to provide only emergency care for the first month, electricity only available 50 percent of the time in the first week and major disruptions to postal, telephone and transportation systems. And let's add very confused computerized bank vaults and automatic teller machines for good measure.

Leaders in almost every industry in the States are scrambling to avert disaster: government, law, finance and insurance are likely to be the hardest hit.

All this stems from the fact that many computers and programs in use today use only two digits for the year instead of four, as a result of programmers and system designers in the early days of computing saving precious disk space and bytes of memory.

On one customer billing system I worked on in the early 1980s, the main bill calculation program was already at maximum size. To be able to implement any change or fixes to the program we first had to rewrite the code of other sections to make room for the new software code. You can be sure the four­digit year was the first to go.

A date like 31/12/99 is perfectly acceptable to us and the computers. But when it becomes 01/01/00... (01/01/2000), most mainframe computers will consider that date to be 1 January 1900, many PCs will reset to 1984 and others will pick 1995 or some other date.
.

Just how bad is it, really?

The estimates, even conservative ones, for fixing software for the "Y2K problem," as the Millennium Bug is known, are staggering. The Gartner Group estimates that the cost is between $300 billion and $600 billion.

I am not one to panic over widely published threats and warnings about computer security, and I am always downplaying the threat of computer viruses (if you follow a few simple rules). But this is one problem that is real. And big. And part of the problem is companies' denial that it exists.

In one discussion I had with management at one Egyptian governmental organization (with over 40,000 employees), the classic denial behavior was on full display. They believe that since the most modern relational database software has solved this problem they will not have to deal with it.

Wrong. Their payroll systems are, in many cases, going to crash unless they are re­engineered to deal with the 20th century.
.

The five top mistakes being made

According to Y2K expert Jeff Kurtzman, president of the Tenagra Corporation of Houston, Texas, the five top mistakes being made by companies on the Y2K issue are:

Denial: "The problem really doesn't exist," or "We don't have this problem."

Wishful thinking: "Someone will come up with a solution (just in the nick of time) that makes the problem disappear cheaply and quickly."

Unjustified optimism: They think will be able to meet the schedules they have set out for achieving Y2K compliance.

Putting on blinders: They believe that they only need to deal with their own (small) internal Y2K system problems, ignoring the fact that if their vendors, suppliers or customers have major problems, they may fail also.

Failure to triage: Trying to fix everything will mean failing to identify and fix the truly critical systems.

This is an excellent time for organizations to make an assessment of the usefulness and value of their information systems. There is just not enough time to check and fix every information processing system in a large organization for the Y2K bug. But an organization that takes a hard look at their information systems to determine which systems are critical, which are essential and which are actually not needed and can be abandoned will gain immensely.

By abandoning outdated or unneeded systems or taking the steps to finally upgrade a system that is just held together with old technologies and little support, companies can free up resources for addressing truly mission­critical systems.
.

That spells opportunity

This is a fantastic opportunity for Egypt. This is a perfect application for talented programmers to do offshore work for the States and Europe. Other countries, such as India, are already offering Y2K solutions.

Program source code can be shipped via the Internet. Here, programmer teams can re­engineer and test the Year­2000 compliant code, then transfer it back electronically.

Who would like to make a million? There will be a huge demand in seven or eight months for programmers and analysts who have any experience solving the Y2K problem.

Get a project now, do it for free if you have to, but get at least a minimal client list that establishes some credentials for your company as a Y2K solution provider. Then get ready for a hectic but lucrative 18 months from next fall through early 2000, helping companies beat the deadline.
.

Can you say COBOL?

Is there anyone else out there who actually likes COBOL (besides me)? The Common Business Oriented Language was the main business application language of the IBM mainframe 360/370.

Guess what? There are millions of lines of COBOL code out there still running today. Anyone who can tell a COMP­3 variable from a COMP index will be able to find a job in 1999, and very likely a high­paying one. There is an enormous amount of COBOL code out there and just not enough programmers to go around. There is a best­selling computer book called "Learn COBOL in 21 days" it is only going to sell more as the clock ticks...

Already, fortunes are being made by specialty companies with solutions to the Y2K problem. And fortunes are being made by investors. Right now, just about any company offering Y2K services is a good investment. The problem for investors is determining which companies will last after the year 2000.
.

2000 is a leap year

Many software programs may be ready for the year 2000 and expect every century year to not be a leap year. In the Gregorian calendar every four years is a leap year (which includes a day for February 29). However, century years not divisible by 400 are not leap years. That means while the years 1700, 1800 and 1900 were not leap years, the year 2000 is. Not all programmers will have gotten that right. Thus, many programs will expect the year 2000 to be a non­leap year.

There is a 29 February 2000 and not every billing and forecasting program will get that right.
.

Day of the week and other problems

Expect problems with reservation systems and ticketing systems. Many if they use a two­digit year need a fix. I expect some will have the 19th century hard­wired and so will believe that 01/01/00 is a Monday (1 January 1900) and not a Saturday (1 January 2000). You may turn up at the opera to find someone in your seat; both of you will have tickets for 18 January, but one will say Tuesday and one will say Thursday!

Similar problems can be expected from electronic cash registers and many other devices we don't think of as "computers" but that are basically just special­purpose microcomputer systems.
.

The September 1999 holiday planning guide

Let's see, 9 September is a Thursday a good day for a holiday. I'm predicting we'll see a preview of the impact of the Millennium Bug that day.

You see, many programmers used a convention of having 9/9/99 as a test date to mean "no valid date" or "date expired." So many programs will crash when they cannot handle that perfectly normal date because they are programmed to figure that something has gone wrong if the date is 9/9/99!

So while everyone is getting ready for the New Year's Eve fiasco, the early fall "meltdown" will catch many unprepared... and there have been a few other "standards" used by programmers.

A common one I have seen is 31/12/99 or any date with year 99 for indeterminate date. That could mean that the first big millennium "bomb" hits a full year earlier than expected.
.

Why it happened to the PC

A serious problem was designed into the PC in 1984 (and in many programs since), which means that most computer systems will not gracefully enter the next decade. Because of this hardware design limitation, or flaw, if you like, it is most likely that the PC system date will be incorrect without assistance, anyway on 01/01/2000 or later. There's more. Many software applications will misbehave, if not crash, as year 2000 is approached and passed, too, even if the system date is correct.
.

It's being fixed in new PCs

Newer machines are being produced that contain firmware code that can cure the PC hardware century problem; they will no doubt become the norm eventually.

It is possible through a software "windowing technique" for the PC firmware BIOS's to infer and supply the correct year (2000) to the operating system and applications even though the indicated PC hardware year is 1900. The hardware component that stores the date is called the CMOS Real Time Clock (RTC).
.

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.
.

Testing your PC for year­2000 compliance

You need to do exactly two tests no more, no less to see if your PC hardware is year­2000 compliant: a BIOS 1999­2000 transition test, and a BIOS date retention test. If your system machine passes these two tests, congratulations: it is year­2000 hardware compliant.

If you want to test your PC quickly but not completely (I strongly urge you to go get the free Test2000.exe program afterward, which will perform a complete test) try this reboot test. See box.
.

Free test for your PC

Go get Test2000.exe, a free, simple and complete PC hardware year­2000 date compliance diagnostic. Free at http://www.RighTime.com

The Test2000.exe program 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 from 19 to 20.

This test will detect the uncorrectable BIOS's, which forces a 2000+ date to 1994­01­01 or 1980­01­01 at boot.

There are three possibilities:

That the machine is compliant (passes both tests).

That the machine is not compliant (fails the 1999­2000 transition test), but can be made compliant with software.

bThat the machine is not compliant (fails the reboot test) and cannot be corrected, except by a BIOS change.
.

What do the results mean?

If the machine passes both tests, it is year­2000 compliant: you'll know applications will receive the correct date at all times.

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 (also available at www.RightTime.com) on the machine.
.

It's not a new century!

By the way, it's not the 21st century until 1 January 2001. There wasn't a year zero.

So all those "new millennium" parties have their own "software" bug and are planned, technically, a year early. But hey, I won't rain on the parade, on with the millennium!

Just a personal word of advice. On 1 January 2000 just to be safe take the stairs.
.

For PC techies and true geeks only.

It's all in the BIOS

The date in your PC starts its life in the CMOS RTC. 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.

The year­2000 transition problem exists in the CMOS RTC because of a fundamental design flaw but, ironically, the fact that the CMOS RTC doesn't work is almost immaterial. Since almost no common application software programs use the CMOS RTC directly, testing it is unnecessary and can even be misleading. The date in your BIOS date is what matters.

It is a bit more complicated than many people believe. Some PC BIOS's will reset the date to a particular range (1994 to 1999, in the Award v4.5x­series BIOS case) if the system date is outside of that range when the machine is rebooted. This means that the machine date cannot be correct after 31/12/1999 if you ever turn the machine off and back on again.
.

The flaw

Most PC programs get the system date from the operating system, whose (software­based) calendar is initialized at boot­up 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 changes from 99 to 00; this means that the year 1999 is followed by 1900.

This results in an erroneous system date of 1980­01­04 at the next boot (since 1900 is an invalid year to the operating system) and the system will reset to a safe date. Some applications, which are designed to go around the operating system and take the date directly from the BIOS, will process it as year 1900.

There are three situations depending on how the BIOS on your PC works.
.

1. Unfixable BIOS

Some BIOS's will force a 2000+ date on the system back to 1994­01­01 or 1980­01­01 at startup. 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.
.

2. BIOS works!

If the BIOS century increments from 1999 to 2000, then the BIOS 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 also most applications will receive the correct date.
.

3. BIOS doesn't work but can be fixed

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 that 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 software like Y2KPCPro (available from http://www.RighTime.com).
.

Boot Test

Boot up in DOS mode. Type:

C:>DATE 12­31­1999

C:>TIME 23:59


.

E­mail comments and questions to: kilenm@bigfoot.com
.

Back Home