THE NODDY GUIDE TO Y2K WG2-0006 Elmar Roberg - Business Transformation Services CSSA/PMI Y2000 SIG WG2 http://www.cinderella.co.za/noddygui.txt Last update 1998-02-15 Testing PC's for Date Compliance There has been a tremendous amount of hype associated with the compliance, or rather, the lack of compliance of Personal Computers. This brochure is intended to assist people who are not computer literate to determine whether they should be concerned, or not. Firstly, let's reassure everyone: the world will not stop turning because bad computer programmers left two digits out of the date. Nor were the world's computer programmers bribed by the Council for Foreign Affairs, the Rockefellers, or anyone else as a part of a major conspiracy to cause the world economy to collapse. In simple fact, the problem was brought about by plain and simple sloppiness. The major problem, as I have described in my companion booklet, The Y2000 Software Problem: An Overview, is serious and can cause major problem, but it is large organisations that will suffer the most, and us, because we are their customers or beneficiaries (supposedly). The Noddy Guide to the Computer In order to understand the technical problem and what you can do about it, you need to understand something about computers. Any computer consists of 4 basic components. The Hardware It's hard because you can touch and feel it. If you dropped it on your toe, it would hurt. The hardware is the visible part that you can see. You can take a hammer to it if it drives you crazy. The hardware typically consists of a metal box which contains the so- called motherboard and "cards" that you can plug other pieces of hardware into - things like a screen, a keyboard, a mouse, a modem, and so on. The problem, as far as the hardware is concerned, is located on the motherboard. Other components, like the screen, do not usually use dates - unless you have something really different. On the motherboard are two chips called the CMOS and RTC (Real Time Clock). These two work together to provide date and time information. The CMOS is a form of memory that is not erased every time the computer is switched off. In fact, there is a tiny battery that keeps the memory alive. This CMOS could actually store dates between 0000-01-01 and 9999-12-31, but it suffers from the same problem that we do - apparently unnecessary rules that restrict us rather than protect us. I'll come to that later. The RTC is a clock like the watch you carry on your arm. Every full second, it updates the CMOS. When you switch the computer off, the RTC and CMOS continue to do their thing. If the little battery runs flat, the RTC stops ticking and the CMOS loses its settings. Which brings us to the next component, the BIOS, which is what you would use to re-set the CMOS settings (after you have replaced the battery, naturally). The Firmware It's firm because it is not hard like the metal stuff. I am using this as a fairly loose term to describe a program that is stored on a chip called the BIOS, or Basic Input Output System. This BIOS is what tells the processor on the motherboard about the hard disk and provides the means to load the operating system (MS-DOS, Windows 95, and so on - let's call them all the OS, or Operating System). When you switch on your computer, the BIOS displays the information that you first see on your screen. You can typically also use the BIOS program, after you press some combination of keys (the screen usually tells you which), to change various things about your computer - like the type of disk that is installed. You use the BIOS at your own risk. Many a user has fiddled around with the BIOS settings and found that, all of a sudden, the disk had disappeared, or something similar. It's like messing about with the inner parts of the engine of your car. The BIOS is stored in what we call ROM (Read Only Memory) and will not be erased, even if the small battery runs flat. Operating System The third part is the Operating System (OS). I have already alluded to the operating system in the previous section. The OS is software. Soft, because you cannot feel it (excepting as an emotion of anger, fear or frustration, when it doesn't work as you expect it to). Once the BIOS has gotten things going, the OS takes over from the BIOS and runs the show. This is also where the fun starts. The OS sets up a place in main memory (the RAM, that you never seem to have enough of) where it stores the system date by reading the RTC using the BIOS. Here, the OS keeps the system date and time accurate to approximately 1 hundredth of a second. When you switch your computer off, the RAM is wiped clean. Everything goes on its merry way. The RTC updates the seconds counter in CMOS every second. After sixty, it ticks over to 0, but adds one to the minutes counter. After 60 minutes, the minute counter ticks over to 0, but adds one to the hours counter. And so it goes, the days counter ticks over and updates the months counter, which ticks over and updates one part of the years counter, the inter-century years counter (00 to 99). When the inter-century years counter ticks over, it doesn't update the century counter, which means that the date that the BIOS then reads is 1900. Now, if your computer had a "year 2000 compliant" BIOS, then the BIOS would pick this up and go and correct the situation, which would mean that 1999 would tick over to 2000. If your computer is not year 2000 compliant, everything is fine whilst the computer is left switched on. The OS system date will probably continue to be correct until the year 2107. The problem comes when you switch your computer off. Remember that when you switch your computer on again, the OS will read the RTC using the BIOS. What it gets is a year of 1900. Since the earliest year that the OS wants is 1980, or something similar, it then sets itself to this date, since to it, the year "1900" is impossible. MS- DOS has a birth date of 1980-01-04. So that is what MS-DOS sets the system date to. MS-DOS has provided a means of setting the century manually. What you do is use the DATE command (ignore the format sample, which might indicate that you can only enter the year portion). Applications Finally, we have other software called the application. The applications are why you bought a computer. It is the computer's raison d'ˆtre. Examples of applications are games, WordPerfect, Lotus 123, MS Excel, yes, even languages like Cobol and Visual Basic, accounting packages and anything else that you would use to do your work. Most applications that need the date will get it from the OS, i.e. the system date. Some, though who knows which, actually get the date from the RTC. See the problem? If the RTC century has not been updated, then any application that reads the RTC for the date will get the wrong date after 31 December 1999. And those applications that read the OS system date will also get the wrong date the next time the PC is switched on. Why? Because when you switched the PC off, then on again, the OS read the RTC, which said the year was 1900, which caused the OS to set the system date to 1980-01-04, and so on. Question is, what will happen in your computer? You don't know. That's why you have to do some testing. The Noddy Guide to Testing a PC for Date Compliance If you own a PC, you need to test how it will react under different date conditions. You will need to test the hardware, the operating system and any applications that you use (or should I say, wish to continue to use). Dates are important, because they are typically used in a number of different ways: In arithmetic calculations. For example, when you want to calculate your age, or the interest on a loan, you typically subtract one date from another. In decision making. You may compare two dates and decide that if one date is greater than another, you do something, if it is not, you do something else. For example, if a deposit on a purchase is not paid by a given date, you cancel the deal. You convert it to different formats when you display or print it. For example, we typically write 5 March 1953 as 5/3/53. Our government tends to write it as 53/03/05. The Germans would write it as 5.3.53. The Americans would write it as 3/5/53 and so on. What century are we talking about? And is it 5 March, or 3 May? Sadly, this multiplicity of ways dates are written was part of what caused the problem in the first place. A body, called the International Standards Organisation (ISO), actually recommends that we write the date as 1953-03-05. If everyone did this, there would be no confusion, even if you moved from country to country. You might use dates when storing information. For example, when you back up your data, you need the date so that it is possible to identify which backup to use should it be necessary to recover the data (after that terrible disaster has occurred - you lost your hard drive). So testing it is. If anyone suggests to you that you need to buy something to test the system clock(s), you should regard him or her with a great deal of suspicion. You can do all the most important tests yourself. The Acid Test Using the MS-DOS DATE command, set the date to 2000-01-01. Switch the computer off, then switch it back on again. If the date is not correct, then there is no solution, you will have to replace your computer, or have it fixed by a technician. Fortunately, this is very rare. Testing the system clock whilst power is on. Set the date to 1999-12-31 (the last day of 1999). Set the time to 23:57:00 (3 minutes to midnight). Let the PC run for 5 minutes. Check the date. If it displays correctly, it means that the DOS date is rolling over OK. Now switch the PC off. After a few minutes, switch it back on. Check the date. If the date is not correct (2000- 01-01), then you know that the BIOS is not automatically updating the RTC century. The date will probably show 1/4/80 or something similar, if this is the case. Testing the system clock whilst power is off. Set the date to 1999-12-31 (the last day of 1999). Set the time to 23:57:00 (3 minutes to midnight). Now switch the PC off (within 3 minutes). After 5 or more minutes, switch it back on. Check the date. If it displays correctly, it means that the RTC and DOS dates are rolling over OK. If the date is not correct (2000- 01-01), then you know that the BIOS is not automatically updating the RTC century. The date will probably show 1/4/80 or something similar, if this is the case. Testing other dates. There are a few other dates and date-related information that you should also test. For example, leap years. A leap year is any year that is divisible by 4, unless it is divisible by 100, when it is not a leap year; excepting if it is divisible by 400, in which case it is a leap year. 1900 was not a leap year (divisible by 100, but not by 400). 2000 is a leap year (because it is divisible by 400). Oh, and by the way, 3600 is a special case and not a leap year - but I don't think you need to worry about that one. The way to test for leap years is to set the system date to 2000-02- 28. Then follow the exact same procedures described above. If the PC is working correctly, the date should roll over to 2000-02-29. Another thing you should test for is that the day of the week is correct. Here are some weekdays you should check: 1 January 2000 Saturday 29 February 2000 Tuesday 1 March 2000 Wednesday 31 December 2000 Sunday If these dates work OK, the chances are that your PC handles dates What's to do? If the date is not rolling over correctly, you have a number of options: If the computer is still under warranty, take the computer back to the store where you bought it. Ask for your money back, or that they fix it. If the dealer gives you any uphill, contact the ITA (Information Technology Association) at (011) 789-3805. The ITA will only be able to help you if the dealer is a member - but then, if the dealer was a member, he would have committed to the ITA's code of conduct, and he wouldn't have given you uphill in the first place. Life is tough. Or you could find out from the manufacturer of the PC whether there is a BIOS patch available to make the BIOS update the RTC clock automatically. I can tell you that there are patches available from Microsoft to fix the DOS date. Patches are small (or big) programs that you can run to fix problems in other programs - a bit like bicycle tyre patches actually). If you are on the Internet, visit http://www.cinderella/co.za Apart from telling you where you can find such patches, you will be able to find out an unbelievable amount of information about the Year 2000 problem. What's more, this is a South African site, and has been created and maintained by Computer Society Y2000 Special Interest Group members. If all of that fails, you can make a note to remind yourself to set the date, using the DATE command, first thing on 1 January 2000. In most cases, this should work (excepting if your computer failed the acid test). Testing applications. Testing applications is considerably more difficult. Don't attempt it unless you are a fairly skilled computer user. There are many more things that one needs to test for, and there are also often dependencies. For example, if you have the facility to download banking transactions directly from your bank, then it is not just your application that must be able to handle dates correctly, the bank also needs to send you the dates in the correct format as well. In any event, if you do attempt to test your applications, make absolutely certain that you have correctly backed up all the data files before you do any date changing. Sometimes, applications are sold on an annual licence and if you set the system date forward, the application will refuse access, on the basis that the licence has not been renewed. Other times, when you set the system date back to today's date, the application might think that you are trying to fiddle the licence and will refuse access. Either way, expect some degree of frustration and possible argument with your supplier. Better is to buy only compliant applications from a supplier who will guarantee your money back, and will still be in business on 3 January 2000 (first day of business in 2000). Better still, find out now whether the applications you are using are compliant. If not, you will have to buy an upgrade (sorry, there are typically not patches available for applications). Chances are, if you upgrade, you may have to upgrade your operating system, and if you have to do that, you will probably have to upgrade the hardware. This would mean considerable cost and retraining. I regret that I cannot sugar that pill. But at least, if you do it soon, you won't have to do it in a panic. It will also give you the chance to save up for all those upgrades. Who ever promised that life would be easy? ----------------------