|
|
|
|
|
|
|
In this scheme, MJD 0.0 corresponds to the date of 17 November 1858 at midnight UTC. |
|
|
|
|
|
|
|
|
Other variants are similar in intent but may retain the "noon" convention and/or substitute another base date. One such variant uses the date of 1 January 2000 as the base date, for example. |
|
|
|
|
|
|
|
|
2.6
Calendric Terminology and Definitions |
|
|
|
|
|
|
|
|
A glossary of terms basic to discussions in the following sections and chapters appears at the back of the book. Review the glossary to familiarize yourself with the terminology I will use. |
|
|
|
|
|
|
|
|
In this section, I consider some technical aspects of time as it is implemented on, and by, computers. Throughout this entire section, you should be aware that information regarding telephone numbers, addresses, Net URLs, the availability of services, and so on may be obsolete at the time of reading. Internet information, in particular, is evanescent. Electrons move faster than dead trees. |
|
|
|
|
|
|
|
|
Computers are typically considered by the general public to be the very epitome of remorseless exactitude and unrelenting accuracy, so it always comes as a bit of a shock to learn that, as a general rule, computers do not keep clock time very well at all. |
|
|
|
|
|
|
|
|
The original PC/XT provides a good example of the problems encountered in computer time. The guts of the timing system is an Intel 8253 counter/timer IC. This chip contains three different timers fed by the 14.31818MHz crystal oscillator. This stream is fed through a divide-by-12 circuit to generate a 1.193180MHz pulse stream. |
|
|
|
|
|
|
|
|
Of the three timers, timer 0 is used to drive the system clock. At power-up, the BIOS programs timer 0 to divide the input pulse steam by 64K, yielding an output frequency of 18.206482Hz, for a timing interval of 0.0549255 seconds, called a timer "tick." The timer 0 output line is connected to the IRQ0 line, so a hardware interrupt 0 occurs every timer tick. |
|
|
|
|
|
|
|
|
The interrupt vector for IRQ0 is set by the BIOS at power-up to a service routine, an interrupt handler, which increments a 16-bit word in the BIOS data area of memory referred to as TIMER_INT or TIMER_LO, located at 0000:046Ch. A simple calculation shows that 64K ticks occupy 64K0.0549255 = 3599.597124 seconds, a |
|
|
|
|
|