F
Flash Gordon
John said:[...]It was indeed 2028 when it fell over. I can't remember all of the
exact details, but it was the HP Pascal system, which was based on
UCSD (IIRC). I think the data structure was either defined as being
0..99 or 0..127, and it definitely hit a problem when it rolled over
to 2028, but I can't remember the exact details and don't have access
to the systems any more (I work for a different company).
I suspect it could have been the date encoded in to a 16 bit word as
7 bits - year
4 bits - month
5 bits - day
I did clearly document the date of failure when I was asked to look
in to Y2K, but of course that documentation will be lost before then!
I also documented that the simple work-around would be to set the
date wrong and just write on the printouts the correct date!
For reference, UCDSD Pascal I.5/II.0/III.0:
daterec = packed record
month: 0..12; { 0 IMPLIES DATE NOT MEANINGFUL }
day: 0..31; { DAY OF MONTH }
year: 0..100 { 100 IS TEMP DISK FLAG }
end { DATEREC } ;
<http://invent.ucsd.edu/technology/cases/1995-prior/SD1991-807.shtml>
Then I was probably right
Actually, that does sound familiar, apart from the comment about 100. I
know I did active testing, including setting the time to before
midnight, doing power cycles after 2000 (makes sure it did not change on
power up) etc. I think there might have been some display issues outside
the application which we did not care about.
So it just goes to show, we've still got the 2028 problem to deal with!
Perhaps I should brush up on my Pascal!