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 fourdigit 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 reengineered 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
missioncritical 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 reengineer and test
the Year2000 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 COMP3 variable from a COMP index will be able
to find a job in 1999, and very likely a highpaying
one. There is an enormous amount of COBOL code out
there and just not enough programmers to go around.
There is a bestselling 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 nonleap 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 twodigit year need
a fix. I expect some will have the 19th century hardwired
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
specialpurpose 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 year2000 compliance means
PC hardware year2000 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 year2000 compliance
You need to do exactly two tests no more, no less
to see if your PC hardware is year2000 compliant:
a BIOS 19992000 transition test, and a BIOS date
retention test. If your system machine passes these
two tests, congratulations: it is year2000 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 year2000 date compliance diagnostic.
Free at http://www.RighTime.com
The Test2000.exe program tests the BIOS year 19992000
transition by setting the BIOS date to 19991231
23:59:58 and observing the change of century. A noncompliant
BIOS will not change the century, so the apparent date
becomes 19000101. 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 19940101 or 19800101
at boot.
There are three possibilities:
That the machine is compliant (passes both tests).
That the machine is not compliant (fails the 19992000
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 year2000
compliant: you'll know applications will receive the
correct date at all times.
If the machine fails the BIOS date year 19992000
transition test, unless corrected the operating system
date will probably boot to 19800104 on
20000101, 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 year2000 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.5xseries
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 (softwarebased) calendar is initialized
at bootup from the BIOS firmware, which gets
the date from the CMOS RTC, which is hardware.
The CMOS RTC maintains a twodigit year, so the
BIOS appends those two digits to a pair of stored century
digits to compose the fourdigit 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 19800104
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 19940101 or 19800101 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 19992000 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 (19000101,
for example) and will typically result in an operating
system date of 19800104; applications that
take the BIOS date will receive 19000101,
not 20000101. This BIOS date year 19992000
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 12311999
C:>TIME 23:59
.
Email comments and questions to:
kilenm@bigfoot.com
.
Back Home
|