Flint - I'ld like to discuss the BIOS issue with you

greenspun.com : LUSENET : TimeBomb 2000 (Y2000) : One Thread

You've told us many times that a well behaved BIOS updates the century. I agree that most, but not all, "new" PCs do work that way. However, this is a relatively new feature of the BIOS. Most, if not all, older BIOSes didn't do this. That's why most older machines need a BIOS upgrade. And it's not available for all older computers.

I think this goes right to the heart of Y2K. The BIOS is the first of many things that must work for a PC to be Y2K compliant. If the BIOS doesn't work, you will have problems, on a 0-10 scale. If the BIOS doesn't work, then the GETDATE function of the OS doesn't work, and on and on.

How much "unawareness" is out there? How many PCs will be FOF? How many just won't get fixed? None? A few? Some?

This is the first layer of the problem. Add to this, the guy that upgrades his BIOS, and declares his machine Y2K compliant! Has he patched the OS? Has he checked all his applications? How's his network administrator doing? Has he stayed on top of the server issues? Or his mainframe guy, has he applied Cory's latest round of PTFs?

You gotta add it all up. A may fail. If it doesn't, B may. If B doesn't, C may. Y2K isn't an issue. It's many.

Tick... Tock... <:00=

-- Sysman (y2kboard@yahoo.com), September 14, 1999

Answers

Are you out there this evening, Flint? <:)=

-- Sysman (y2kboard@yahoo.com), September 14, 1999.

Sysman:

I covered these questions and more a short while ago in the embedded systems thread. From your questions here, I guess we missed connections. If you have further questions, probably this thread would be the best place to ask them.

-- Flint (flintc@mindspring.com), September 14, 1999.


Forgive me Flint, I haven't been on all day, and didn't get there yet. I hope you don't mind me reposting it:

Sysman: You're correct that most older BIOSs didn't do anything about the change of century. But you're not correct that the solution is a BIOS upgrade, except in a tiny minority of cases. The rest of the time, the solution is to check the date after rollover. If it's wrong, correct it one time. You're good until the battery dies. Then replace the battery and repeat.

This of course is for a desktop PC, not for a PC-based embedded system which may not look like a PC or have a keyboard or monitor. For such systems, you indeed need to test to see what the century change causes. In the vast majority of the cases, the answer is, nothing at all. In most of the remainder, there are simple workarounds depending on implementation -- setting the clock back, or turning off the unit during rollover, or wiping history files and re- installing after rollover. For many PC-based embedded systems, if there *is* a y2k error, it lies in the application as I explained. Software upgrades handle such problems.

Cases where the only solution is a BIOS upgrade are so rare I actually haven't heard of one. But I wouldn't be surprised if they exist. Usually, the solution there has been to replace the entire system and be done with it. In general, RTC problems don't worry me that much. -- Flint (flintc@mindspring.com), September 14, 1999.

--------------------

I'ld also like to quote a few other of your remarks from that thread.

"These RTC chips have 8-bit registers holding seconds, minutes, hours, day-of-month, month, and year (2 digits). They have no hardware provision for any 4-digit year. So the year register rolls over from 99 to 00, and no record of the "carry out" from this register is maintained anywhere in the 146818 hardware."

"And as a footnote, Motorola does make RTC chips that keep 4-digit years in hardware, but no PC BIOS I know of pays any attention to the century register."

Now Flint, I would like for you to explain to me, exactly, where a non-compliant BIOS "saves" the century after the machine looses power. Not just the battery, but when I, or whoever, hit the switch.

I just did it on my good old backup 386. I set the date ahead 1 year, saved the BIOS settings, turned off and on. Guess what year? 1900. Set it ahead 2 years. Guess what? 1901. Maybe all machines aren't created equal, but mine sure doesn't remember anything about a "20". Now, you've heard of one.

And as for:

"replace the entire system and be done with it."

Do you get out much? I do. Do you have any idea how many 486 and even 386 machibes I still see, working TODAY, at my client's sites? I still have a few at work. For easy stuff, like being the data transfer "box" between my mainframe and lan. Or the communications "box" that I dial info from home. I don't need a new hot rod to do that stuff. Hell, an original 8088 would do just fine. Not everybody on the block has a bright shiney new P3-600. I see alot that are colored coffee-stain and ash, with "burnt in" screens, on their last legs. But they're doing the job. Think they'll all be replaced for Y2K?

Tick... Tock... <:00=

-- Sysman (y2kboard@yahoo.com), September 14, 1999.


PS Flint,

This is an AMI BIOS (c) 1993, ID#:

40-0803-001397-00101111-080893-Op495XLC-H

I looked it up once. Part of it, I think the leading 40 (Don't have the book here) say it's for a 486, but it's on a 386 mother board. Also an AMD 386/40. Funny combination? Well, it was put together by a rather large LOCAL firm, not a Dell or IBM, but he has been doing a fine business for many years. I wonder how many of these he sold? <:)=

-- Sysman (y2kboard@yahoo.com), September 14, 1999.


Meanwhile, for the rest of us in the peanut gallery: If you want a FREE Y2K check of your PC, go to www.2000check.com. You get a report as to the Y2K compliant status of basic stuff like the real-time clock (RTC) and BIOS.

Of course, it does NOT check your applications, certainly NOT your data, and surely NOT your network, which is probably where most Y2K incompatibilities are anyway. Which is why you might as well not even bother, its hopeless to even try, RIGHT FLINT??? BWAHHHHAAAAAAA, only three and a half months to go, BWAHHHAAAAA, no way jose is this stuff going to make it, BWAHHHHAAA, its all going down the tubes, BWAHHHAAAAA, electricity too, BWAHHHAAAAA!!!!!

-- King of Spain (madrid@aol.com), September 14, 1999.


Sysman, maybe I'm misunderstanding, but isn't a free, simple solution just to put the DATE command in autoexec.bat? Maybe a little inconvenient, but that's how PC's used to work.

-- Hoffmeister (hoff_meister@my-deja.com), September 14, 1999.

Sysman:

I'm not being an advocate here. I'm just explaining what I know. If I explain it poorly, this may be because I work with this stuff all the time, and tend to take a lot for granted. But I'll try to be clear.

The 146818 and family (and a zillion non-MC clones) contain anywhere from 52 to several K of battery-backed CMOS RAM. Typically these are coin-cell batteries, but not always -- some PCs in the 385 days had a pair of AA batteries. The target battery life is at least 3 years when the unit is unpowered, and about 7 years if the unit is on most of the time (and the CMOS RAM is being held up by wall power, not the battery).

By IBM convention, the AT (NOT the microchannel) protocol put the century byte at offset 32h in the 146818 part. Using debug in a DOS session, just issue

mov al,32

out 70,al

in al,71

and the AL register will contain the current century value.

OK, now things get messy, because of course IBM's BIOS code could not be copied legally, so every different BIOS vendor had to reinvent this wheel, and by law had to reinvent it differently. Perhaps nobody knows exactly how many different ways were invented to handle time and date functions. I think I've seen hundreds personally (when I was working on that time dilation stuff almost 2 years ago). Also bear in mind that the AT BIOS was an extension of the XT BIOS, and the XT had no RTC part at all. This was blue-sky stuff.

The vast majority of what I've seen and heard of used a very simple approach to the year -- if you went into the CMOS setup utility during the bootup process, you could enter a date and it would be stored in the RTC chip, with the century in RAM location 32h. If you didn't go into setup and the century was undefined, the BIOS didn't care. DOS cared, and set the date to 1/4/80 as the default (1/1/80 was the minimum DOS date, and 1/4 indicated a corrected invalid date). But when you ask DOS for the date, you can't get out of that utility without writing *something* to the RTC registers and offset 32h. So when you say the year was 1900 or 1901, I must ask how you know this. DOS won't even display such a date. What OS are you using anyway?

But of course, as I said, there were different strategies. Another common one was to slam a 19 into offset 32h willy-nilly every time the unit was booted. This isn't common, but it was done. Apparently you found a unit that does that. In such cases, you have the XT option of setting the year every time you cycle power, or writing an 8-byte utility to write a 20 into offset 32h, and stick that into autoexec.bat. [As a joke, autoexec.bat is what you get when you cross Lee Iococca with Dracula]

Now, about replacing the entire system. I guess I really wasn't clear. This draconian measure was NOT intended to be applied to desktops, but to deeply embedded systems where the date bug wasn't so much in the BIOS as in the application, itself burned into ROM. Older machines had socketed ROMs, so you could replace the ROM if indeed there was any replacement ROM with compliant code. Often enough, the whole shebang was an orphan, and patching the ROM out of the question.

As I said above, you have easy options for desktops. Most of the time, just reset the date once. If that's not feasible (as in your unit), create a tiny utility to do it. If you want one, send me a private email and I'll send one, along with directions for making one using debug.exe. Trivial problem, trivial solution. The hard ones are the dedicated-purpose brains of robotic equipment, running ROM-based apps with date bugs. In the worst such cases, a complete change-out is the best bet. Start this two years ago minimum, by the way, just in case you need to change out the robots as well because the whole system is so tightly integrated. But in practice this is very rare, partly because few date errors are buried in ROM and can't be overridden with patches, and partly because few date bugs reduce functionality to unacceptable levels -- most dates in such applications are for logging, monitoring, and maintenance purposes. You might have some funny dates in your log for a day or two, you might need to keep paper maintenance records for a short time, you might even have a false-alarm idiot light come on. But the system rarely stops doing the job.

I hope that's a little clearer.



-- Flint (flintc@mindspring.com), September 14, 1999.


Sir Hoff,

I have at least a dozen machines at work that "come up by themselves" An NT server, Exchange server, SQL server, T1 server, and the above examples, the most important of which, is that dial-up connection. It's on my LAN, and has a 3270 card so I can see my mainframe. I can rule the world from home using this machine! One reason that I dial in is to check on the system after a power failure, to make sure that everything came back up like it should. I do that now, not even thinking Y2K. Make sure that you're there, all LONG holiday weekend, for me Hoff. You may be needed to enter a few dates!

I can just see it now:

"Ah, boss, can we talk. We just got the month end reports. It seems that the new operator, you know, the one we just fired for screwing things up? Well, it seems that a few weeks ago, he just hit enter on the SQL server date prompt. We've been updating the on-line database with 1900 for the last 3 weeks." (Not infering that you are the operator Hoff)

Yes, sometimes, a solution. Not always. And not safe. <:)=

-- Sysman (y2kboard@yahoo.com), September 14, 1999.


Curious, how many of those are 386/486's that don't retain the date?

-- Hoffmeister (hoff_meister@my-deja.com), September 14, 1999.

And as I wrote, you can fix this problem with an 8-byte program you can write in about 30 seconds or less. Forewarned is forearmed.

-- Flint (flintc@mindspring.com), September 14, 1999.


Sorry, forgot; as Flint, I was also curious as to what was displaying these 1900 and 1901 years.

-- Hoffmeister (hoff_meister@my-deja.com), September 14, 1999.

"Perhaps nobody knows exactly how many different ways were invented to handle time and date functions. I think I've seen hundreds personally (when I was working on that time dilation stuff almost 2 years ago)."

So, by your own words, you are saying that this whole area is "messy." I just gave you an example that you've never heard of. It's real, right now, in front of me. Come on over and I'll show ya!

Yes, every document that I have seen says that offset 32h SHOULD contain the century. Obviously, it doesn't always. Now this is just my HO, but I think that MOST OLDER BIOSES didn't do this. Why is the BIOS upgrade such a big issue?

"Older machines had socketed ROMs, so you could replace the ROM if indeed there was any replacement ROM with compliant code."

I couldn't find one for my machine. I spent several hours trying, and I've been around. How do you think the average Joe will do?

"What OS are you using anyway?" (Hoff)

This isn't an OS issue. I have a BIOS that ALLOWS me to enter a 4 digit year. No matter what I enter, after I turn the power off and on, the BIOS says 19xx. The battery isn't dead.

"DOS won't even display such a date"

You didn't say that, did you? Open a DOS window. Type DATE. Has been doing this since Ver 1.0 I think.

"Current date is Tue 09-14-1999"

"Enter new date (mm-dd-yy)"

I always liked that "typo" about yy!

You guys are missing the point. This isn't about my "backup" toy. This is about OLD computers, that I see every day, working at businesses. This about SME. The average Joe businessman. With all the Y2K spending, I sure hope all the average Joes are keeping up with this! I hope all those, not yet replaced "old" computers will get fixed or replaced. It's gettin' kinda late in the game!

"And as I wrote, you can fix this problem with an 8-byte program you can write in about 30 seconds or less. Forewarned is forearmed."

Flint, I have loved assembly programming, on several platforms, for most of my life. What about Joe?

Tick... Tock... <:00=

-- Sysman (y2kboard@yahoo.com), September 14, 1999.


Sysman:

[You are doing battle without an enemy here. Did someone run over your dog? Sometimes your responses convince me that my posts are simply not visible to you, although I can see them. But I'll keep trying just on the offchance you're curious about how these things work, rather than determined to win a fight nobody else has joined.]

So, by your own words, you are saying that this whole area is "messy."

[Yes. Many different methods were invented. I said that.]

I just gave you an example that you've never heard of.

[Not true at all. I said I was familiar with that particular error. I told you how it came about. I gave you two different fixes for it. AMI is a very common BIOS.]

It's real, right now, in front of me. Come on over and I'll show ya!

[I've seen it. I can probably dig up a disassembly or two here I've done of BIOSs that make that mistake. Do you want a fix or not?]

Yes, every document that I have seen says that offset 32h SHOULD contain the century. Obviously, it doesn't always.

[How is this obvious? Did you *examine* this location? How? To my knowledge, AMI has NEVER done a BIOS that doesn't contain the century in offset 32h. So I'm curious. What method or tool did you use to examine this location?]

Now this is just my HO, but I think that MOST OLDER BIOSES didn't do this. Why is the BIOS upgrade such a big issue?

[Utterly false. This has been done since at least 1985, when the first Phoenix clones came out. The first AT clones used versions of that Phoenix core (Compaq and others). But BIOS upgrades are a big issue because those ancient code bases no longer exist, and the EPROM or often 1-shot ROM parts that were soldered onto the board aren't even made anymore.]

"Older machines had socketed ROMs, so you could replace the ROM if indeed there was any replacement ROM with compliant code."

I couldn't find one for my machine. I spent several hours trying, and I've been around. How do you think the average Joe will do?

[Please, pretty please, read what I wrote FIRST, OK? I was clearly and specifically talking about embedded applications. In many of those old systems, there wasn't any disk at all. DOS was in ROM, and the application programs were in ROM. These chips were on cards in slots. You could change out the entire card, or you could change out chips in sockets. But those times are long gone for most such applications.]

"What OS are you using anyway?" (Hoff)

This isn't an OS issue. I have a BIOS that ALLOWS me to enter a 4 digit year. No matter what I enter, after I turn the power off and on, the BIOS says 19xx. The battery isn't dead.

[This isn't clear. Is this date displayed as part of a copyright notice during POST, or displayed in the date field in the CMOS setup menu reached during POST? Are you entering the year in this setup program in the ROM? Are you rebooting out of setup and re-entering setup to examine the date? How are you doing this?]

"DOS won't even display such a date"

You didn't say that, did you? Open a DOS window. Type DATE. Has been doing this since Ver 1.0 I think.

[And when you do this, the earliest date DOS will display is 1/1/80. I already said this. YOU said the date was 1900 or 1901. I said that DOS won't display such a date. By "such a date", I meant ANY date before 1980. Yes, I said that and it's true. That's why I (and Hoff) are asking HOW you are examining the date and seeing 1901. You aren't using the DOS DATE command, for damn sure. So what ARE you using?]

"Current date is Tue 09-14-1999"

"Enter new date (mm-dd-yy)"

I always liked that "typo" about yy!

You guys are missing the point. This isn't about my "backup" toy. This is about OLD computers, that I see every day, working at businesses. This about SME. The average Joe businessman. With all the Y2K spending, I sure hope all the average Joes are keeping up with this! I hope all those, not yet replaced "old" computers will get fixed or replaced. It's gettin' kinda late in the game!

"And as I wrote, you can fix this problem with an 8-byte program you can write in about 30 seconds or less. Forewarned is forearmed."

Flint, I have loved assembly programming, on several platforms, for most of my life. What about Joe?

[Joe can go to Sam's and buy essentially that same little program I was talking about, along with some other test utilities, for $29.95. I saw it there day before yesterday. Fixes Joe's BIOS problems right up nice as you please. Granted, if Joe is doing something fancy with spreadsheets or databases and has used 2-digit years and doesn't bother with this cheap patch kit, he can generate bad data and will have to reconstruct it.]



-- Flint (flintc@mindspring.com), September 14, 1999.



-- sigh (
hope this works@for apple.com), September 14, 1999.

Flint,

I don't have a dog.

I have several comments for you, just not now. My list above forgot to mention a Novell server, which seems to be down. Got to use this 'puter for real stuff. There's that damned phone again!

I'll be back, just maybe not tonight... <:)=

-- Sysman (y2kboard@yahoo.com), September 14, 1999.



Flint,

That was easy, a full volume. Net result, yeal at ops!

Let's forget the tech stuff. DEBUG is MASM's best friend, and MASM is mine. I'm not trying to pick on you, Flint, just make an example of an area where you are experienced. It isn't the only messy area of Y2K. Actually I agree with you, and Hoff, that there are ways to get by most problems in this case. The real question is does the average user know how? My SQL server was one of the first on the Y2K list! But my 386 bug is real.

"Joe can go to Sam's and buy essentially that same little program I was talking about, along with some other test utilities, for $29.95."

Thanks so much for making my point so well, Flint. Joe doesn't know Dick about the problem. For $29.95, his computer is taken care of. He doesn't have to buy a new one. He's happy now!

"What's an OS?"

Tick... Tock... <:00=

-- Sysman (y2kboard@yahoo.com), September 15, 1999.


Flint,

Let's keep this here, and leave that poor guys thread alone. If you don't mind:

Sysman:

I'm not sure I follow you here. I reread that thread, and I believe I made it quite clear that BIOS issues are trivial, and won't pose problems for us. If that was your point, you're quite welcome. Otherwise, you have misunderstood or I have expressed myself poorly. In either case, don't worry. BIOS issues won't be a problem.

-- Flint (flintc@mindspring.com), September 15, 1999.

--------------------

Flint, you're still missing my point. Thanks for the BIOS talk, but that's not what this about. Reread my last answer, again. It's about "how to be compliant for $29.95".

The BIOS is just a tiny part of the problem. The question is how tech is the average user? The small Joe Businessman. Yea, big companies have big tech support, and may have a better handle on the problem, But the little guy, and even some of the medium guys, who rely on companies like mine for "some" of their work, don't. Even if he does spend time researching the issue, is he going to find all the things that he needs? Hoff, and you, say that all kinds of "progress" is being made. Things are being "patched" left and right. What does Joe know about it? Does he have all the latest OS patches? All the application patches? Or does he think that for that $29.95 he's covered? Afterall, the box says "fixes Y2K problems".

How important is it if he isn't compliant? When will he discover that he isn't?

We're talking millions of users here, not programmers like us. How tech are they?

Tick... Tock... <:00=

-- Sysman (y2kboard@yahoo.com), September 15, 1999.


Sysman:

Your curiosity has wandered past the limits of my expertise. The BIOS per se won't be a problem, whether you buy the cheap fixit package or not. Most large companies, as you imply, have dealt with this problem. Private users are not potential dominoes. So you're probably talking about small businesses that use a PC or two but are too bone ignorant to know how to set the date (or even check it) after rollover. I suspect this is both a small and a noncritical population, with regards to the BIOS itself.

Now, if you're talking about date bugs in applications, or date 'issues' (like the database allows 4-digit years, but the default is 2-digits and you have to read the fine print in the appendix of the manual to realize it), I have no better idea than anyone else, and less of an idea than many. My understanding is that there are potential killer date bugs in relatively few packages, and that there are patches and upgrades for these packages (like Quicken). And I should think most small businesses that rely on such packages have been made aware and have installed these patches.

I suppose "All roads lead to doom overseas" George might claim that critical businesses, the big dominoes overseas, rely on Quicken and think Y2K is a jelly. It might be true, I don't know. Certainly I'll admit that the cheap fixit package won't help Quicken or any other application date bugs. I've read reviews of some packages that look through your data files for "date-like" strings, but the reviews have been lousy. I can only hope that companies small enough to rely on one or two PCs for their computing can recover relatively quickly. But if they can't, they don't deserve to be in business. The information is out there.

-- Flint (flintc@mindspring.com), September 15, 1999.


Flint,

I guess that you've pretty much answered my question. Let's just say that I hope you are correct.

IMHO, the 1 or 2 machines is a problem, but not that big of a deal either. It's the 10, or 20, or 30, that don't have a full time "network administrator" where a consultant installed a Novell server 5 years ago in a closet. Do they know to get the 3.12 fixes from Novell? Just one of a thousand examples that I can think of.

I guess there ain't much point in this. You think all bases will be covered, and if they're not, no big deal. I'm not so sure. It is a connected world, from the BIOS to the server. And I'm not sure that Joe understands just how it all works. I'm not even sure that I do, and I've been blah blah...

" <:00=

-- Sysman (y2kboard@yahoo.com), September 15, 1999.


Moderation questions? read the FAQ