IM> Perhaps I should clarify my question here. [:) I'm far less concerned
IM> with RTC roll-over as I am with whether the O/S will be able to
IM> accurately report dates beyond 31 December 1999. [:) Do you know of
IM> _any_ versions of OS/2 which will have trouble doing that?
16-bit OS/2 (/i.e./ version 1.x) provides only a means for directly reading
the RTC hardware, Dos16GetDateTime(). It returns the date and time as a
broken-down structure, the members of which are either UCHARs or USHORTs. The
`Year' field, in particular, is a `USHORT' meaning that the data structure can
cope with years up until the year 65535.
The 16-bit OS/2 kernel, therefore, can quite happily report dates up to the
limit imposed by the PC hardware and firmware (with the "windowing" fix that
is most commonly applied by BIOS manufacturers), which is 2079-12-31 .
32-bit OS/2 (/i.e./ version 2.0 and later) is similarly limited by the PC
hardware and firmware, but *it* reports dates as a 64-bit number, counting the
seconds since the start of the POSIX Epoch (1970-01-01 00:00:00 GMT). This is
via the new (relatively speaking) 32-bit system API function
Dos32QuerySysInfo(). (The Dos32GetDateTime() function is still there, for
backwards compatibility and ease of porting 16-bit applications, but this is
really the wrong way to obtain the system time on 32-bit OS/2, since it hits
the clock hardware directly.) This means that in theory, were the hardware and
firmware encumbrances not there, the 32-bit OS/2 kernel could report dates up
until the year 584,000,000,000 (roughly) to applications.
Operating system kernels are generally the wrong place to look for Year 2000
problems. Kernels generally don't have much to do with dates and times, other
than attaching them to files and reporting the current system date+time to
applications. The main area where the Century Bug rears its ugly head is in
applications programs. The version of Windows File Manager that ships with
OS/2 2.1, for example, uses two digits for a year when displaying file lists
and cannot handle displaying years after 1999 (it displays non-digit ASCII
characters in the year field).
¯ JdeBP ®
--- FleetStreet 1.22 NR
* Origin: JdeBP's point, using Squish (2:257/609.3)
|