rbthomas@frogpond.rutgers.edu (Rick Thomas) (04/04/91)
It seems I posted a bogus telephone number for getting the NIST software. I transposed a couple of digits. Here is the real scoop -- In fact, the whole telephone time service "HELP" file. (The phone number is at the end...) They take VISA and Master Charge. Enjoy! Rick PS -- the MS-DOS diskette also contains a rudimentary UNIX compatible clock setter. It would make a good base from which to launch the writing of an xntp driver for an "external clock" based on this time service. In fact, if all you want is approximate tracking between the local clock and real time, it may be that simply changing the "settimeofday" call in parset.c to an appropriate adjtime call and telling xntpd to use the computer's local clock will do the trick. (This last sentence will make more sense once you take a look at the software from NIST.) ======================================================================== DESCRIPTION OF THE AUTOMATED COMPUTER TELEPHONE SERVICE (ACTS) The following is transmitted (at 1200 Baud) after completion of the telephone connection. ? = HELP National Institute of Standards and Technology Telephone Time Service D L D MJD YR MO DA H M S ST S UT1 msADV <OTM> 47999 90-04-18 21:39:15 50 0 +.1 045.0 UTC(NIST) * 47999 90-04-18 21:39:16 50 0 +.1 045.0 UTC(NIST) * 47999 90-04-18 21:39:17 50 0 +.1 045.0 UTC(NIST) * 47999 90-04-18 21:39:18 50 0 +.1 045.0 UTC(NIST) * 47999 90-04-18 21:39:19 50 0 +.1 037.6 UTC(NIST) # 47999 90-04-18 21:39:20 50 0 +.1 037.6 UTC(NIST) # etc..etc...etc....... UTC = Universal Time Coordinated, the official world time referred to the zero meridian. _________________________________________________________________________ DST = Daylight savings time characters, valid for the continental U.S., are set as follows: 00 = We are on standard time (ST). 50 = We are on DST. 99 to 51 = Now on ST, go to DST when your local time is 2:00 am and the count is 51. The count is decremented daily at 00 (UTC). 49 to 01 = Now on DST, go to ST when your local time is 2:00 am and the count is 01. The count is decremented daily at 00 (UTC). The two DST characters provide up to 48 days advance notice of a change in time. The count remains at 00 or 50 at other times. _________________________________________________________________________ LS = Leap second flag is set to "1" to indicate that a leap second is to be added as 23:59:60 (UTC) on the last day of the current UTC month. The LS flag will be reset to "0" starting with 23:59:60 (UTC). The flag will remain on for the entire month before the second is added. Leap seconds are added as needed at the end of any month. Usually June and/or December are chosen. __________________________________________________________________________ DUT1 = Approximate difference between earth rotation time (UT1) and UTC, in steps of 0.1 second. DUT1 = UT1 - UTC ___________________________________________________________________________ MJD = Modified Julian Date, often used to tag certain scientific data. ___________________________________________________________________________ The full time format is sent at 1200 Baud, 8 bit, 1 stop, no parity. The format at 300 Baud is also 8 bit, 1 stop, no parity. At 300 Baud the MJD and DUT1 values are deleted and the time is transmitted only on even seconds. ___________________________________________________________________________ Maximum on line time will be 56 seconds. If all lines are busy at any time, the oldest call will be terminated if it has been on line more than 28 seconds, else, the call that first reaches 28 seconds will be terminated. ___________________________________________________________________________ Current time is valid at the "on-time" marker (OTM), either "*" or "#". The nominal on-time marker (*) will be transmitted 45 ms early to account for the 8 ms required to send 1 character at 1200 Baud, plus an additional 7 ms for delay from NIST to the user, and approximately 30 ms "scrambler" delay inherent in 1200 Baud modems. If the caller echoes all characters, NIST will measure the round trip delay and advance the on-time marker so that the midpoint of the stop bit arrives at the user on time. The amount of msADV will reflect the actual required advance in milliseconds and the OTM will be a "#". The NIST system requires 4 or 5 consecutive delay measurements which are consistent before switching from "*" to "#". If the user has a 1200 Baud modem with the same internal delay as that used by NIST, then the "#" OTM should arrive at the user within +-2 ms of the correct time. However, NIST has studied different brands of 1200 Baud modems and found internal delays from 24 ms to 40 ms and offsets of the "#" OTM of +-10 ms. For many computer users, +-10 ms accuracy should be more than adequate since many computer internal clocks can only be set with granularity of 20 to 50 ms. In any case, the repeatability of the offset for the "#" OTM should be within +-2 ms, if the dial-up path is reciprocal and the user doesn't change the brand or model of modem used. This should be true even if the dial-up path on one day is a land-line of less than 40 ms (one way) and on the next day is a satellite link of 260 to 300 ms. In the rare event that the path is one way by satellite and the other way by land line with a round trip measurement in the range of 90 to 260 ms, the OTM will remain a "*" indicating 45 ms advance. ___________________________________________________________________________ For user comments write: NIST-ACTS Time and Frequency Division Mail Stop 524 325 Broadway Boulder, CO 80303 Software for setting (PC)DOS compatable machines is available on a 360-kbyte diskette for $35.00 from: NIST Office of Standard Reference Materials B311-Chemistry Bldg, NIST, Gaithersburg, MD, 20899, (301) 975-6776 --------------------------------------------------------------------------
Mills@udel.edu (04/07/91)
Folks, The following is offered for what it's worth. The ACTS disk I have is dated 31 May 1988 and does not include the Sun version. Some time back I got an update from Judah Levine at NIST which included the Sun version. Since I use Microsoft C, I modified the code to use that compiler and also the Sun compiler, then built and tested both programs successfully. I haven't look at the code or thought about it since late 1988. I have taken the liberty of stashing the modified program disk on louie.udel.edu as the files acts.zoo and acts.arc in two popular PC compressed formats. Should you choose to snarf either one, please be advised I am not equipped to provide help and, on Judah's behalf, please don't bug him, either. It's likely that NIST is distributing newer stuff; if so, somebody having it might put us straight. Dave