═══ 1. What is TimeKeeper/2? ═══ TimeKeeper/2 retrieves Coordinated Universal Time (UTC) from a time server using time protocol RFC868. and compares the results to your system time and optionally updates your system time if necessary. TimeKeeper/2 can be configured to adjust for Daylight Saving Time if you provide your time zone information in the program settings. TimeKeeper/2 has a set of predefined NIST (National Institute of Standards and Technology) servers which are synchronized with an atomic clock. When TimeKeeper/2 is installed, a server is automatically selected for you and may be changed at any time if you wish to use a different predefined server. If you have a preferred time server that is not in the preconfigured list there is an option to add servers. TimeKeeper/2 is as accurate as possible. Due to network delays and the 1 second time resolution of the time protocol you may encounter situations where the Local Time and Server Time are off by 1 second. This is normal and unpreventable. If you have any questions please contact us . For more information see:  TimeKeeper/2 Window  TimeKeeper/2 Clock Bar  TimeKeeper/2 Command Line Options  Settings  Technical support and License Agreement  Registration Latest version of TimeKeeper/2 is available at http://www.bmtmicro.com/catalog/timekeeper2.html ═══ 2. The TimeKeeper/2 Window ═══ The TimeKeeper/2 main window consists of  Menu Bar  Local Time Display  Server Time Display  Status Line  The Query and Adjust Buttons ═══ 2.1. Menu Bar ═══ The Menu bar consists of two items:  TimeKeeper/2  Help Through the TimeKeeper/2 menu you can access  Settings dialog,  Registration dialog,  or exit TimeKeeper/2. ═══ 2.2. Local Time Display ═══ Local Time displays your current system clock settings. ═══ 2.3. Server Time Display ═══ Server Time displays the actual time on the NIST time server. If the server has not been checked or is unavailable the display will let you know that the server is not accessible. You may wait a moment and try again or select another server. ═══ 2.4. Status Line ═══ The status line contains information about current operations and the difference between your system time and server time. ═══ 2.5. Query and Adjust Buttons ═══ The Query button queries time from the server. The Adjust button changes your system clock to match the server time. ═══ 3. Settings ═══ The TimeKeeper/2 settings allow you to configure the various functions of the program. All the settings are divided into 3 groups:  Options  Time Zone  Servers ═══ 3.1. Options ═══ Auto Check Time At Startup TimeKeeper/2 will automatically query the time from a server when the program is started. Auto Adjust Local Time TimeKeeper/2 will automatically adjust local time when the local time does not match the time received from the time server. Start minimized TimeKeeper/2 will start minimized. Tip: TimeKeeper/2 is ideal for your startup folder when started minimized with options Auto Check Time At Startup, Auto Adjust Local Time, Query Time from Server(s) Every: N minutes enabled. Minimize to Clock Bar TimeKeeper/2, when minimized, will display current local time, the time difference between local and server time and network activity in a small window ( Clock Bar ). 12 Hour Time Format Time will be displayed in 12 hour format (AM & PM). Server Time in the same TZ as Local Server Time will be modified to use your time zone settings if you provide your time zone information. Clock Bar Float On Top The Clock Bar will be always on top. Time/Date Presentation Time only Date will not be displayed. Date and Time (Digital) Date and Time will be displayed as digits. Date and Time Month will be displayed as words. Query Time from Server(s) Every: If this box is checked TimeKeeper/2 will query the time server on a regular schedule (in minutes) as specified in the entry field next to the checkbox. ═══ 3.2. Time Zone ═══ Time Zone information is required if you want TimeKeeper/2 to automatically handle local time. For more information see:  Do not Use Time Zone Information  Use TZ Environment Variable  Use the Following Time Zone Information ═══ 3.2.1. Do not Use Time Zone Information ═══ With this option enabled TimeKeeper/2 will not use time zone information. TimeKeeper/2 will be able to keep your system matched with the server time but it will not be able to automatically set Daylight Saving Time. TimeKeeper/2 will ignore any difference between local and server time if the difference is equal to a certain number of hours. For example, if the local time is 10h:30m:00s and the server time is 11h:31m:03s, TimeKeeper/2 will report the difference as 1m:03s. If the server time was 11h:29m:03s, TimeKeeper/2 would report the difference as -57s. ═══ 3.2.2. Use TZ Environment Variable ═══ This option forces TimeKeeper/2 to use the TZ Environment Variable This is useful when the variable is set by another program or is configured in your config.sys file using a SET statement. ═══ 3.2.3. Use the Following Time Zone Information ═══ With this option you may select one of the provided time zones or set the time zone manually. For more information about setting the custom time zone information see TZ Environment Variable. You can edit the 'Resulting TimeZone' string Note: Do not enter "SET TZ=", this is unnecessary. ═══ 3.2.4. TZ Environment Variable ═══ This is an excerpt from the C Runtime documentation which describes the TZ Environment Variable. This variable is used to describe the time zone information that the locale will use. To set TZ, use the SET which has the following format: ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │ >>──SET──TZ──=──SSS──┬──────────────────────────────┬──────────────────────> │ │ └─┬───┬──h──┬────────────────┬─┘ │ │ ├─+─┤ └─:──m──┬──────┬─┘ │ │ └─-─┘ └─:──s─┘ │ │ │ │ >──┬─────────────────────────────────────────┬────────────────────────────>< │ │ └─DDD──┬────────────────────────────────┬─┘ │ │ └─,sm,sw,sd,st,em,ew,ed,et,shift─┘ │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ The values for the TZ variable are defined below. The default values given are for the built-in "C" locale defined by the ANSI C standard. ┌──────────────────────────────────────────────────────────────────────────────┐ │ Table 1. TZ Environment Variable Parameters │ ├──────────────┬─────────────────────────────────────────────┬─────────────────┤ │ VARIABLE │ DESCRIPTION │ DEFAULT VALUE │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ SSS │ Standard-timezone identifier. It must be │ EST │ │ │ three characters, must begin with a letter, │ │ │ │ and can contain spaces. │ │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ h, m, s │ The variable h specifies the difference (in │ 5 │ │ │ hours) between the standard time zone and │ │ │ │ coordinated universal time (CUT), formerly │ │ │ │ Greenwich mean time (GMT). You can │ │ │ │ optionally use m to specify minutes after │ │ │ │ the hour, and s to specify seconds after │ │ │ │ the minute. A positive number denotes time │ │ │ │ zones west of the Greenwich meridian; a │ │ │ │ negative number denotes time zones east of │ │ │ │ the Greenwich meridian. The number must be │ │ │ │ an integer value. │ │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ DDD │ Daylight saving time (DST) zone identifier. │ EDT │ │ │ It must be three characters, must begin │ │ │ │ with a letter, and can contain spaces. │ │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ sm │ Starting month (1 to 12) of DST. │ 4 │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ sw │ Starting week (-4 to 4) of DST. Use nega- │ 1 │ │ │ tive numbers to count back from the last │ │ │ │ week of the month (-1) and positive numbers │ │ │ │ to count from the first week (1). │ │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ sd │ Starting day of DST. │ 0 │ │ │ 0 to 6 if sw != 0 │ │ │ │ 1 to 31 if sw = 0 │ │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ st │ Starting time (in seconds) of DST. │ 3600 │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ em │ Ending month (1 to 12) of DST. │ 10 │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ ew │ Ending week (-4 to 4) of DST. Use negative │ -1 │ │ │ numbers to count back from the last week of │ │ │ │ the month (-1) and positive numbers to │ │ │ │ count from the first week (1). │ │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ ed │ Ending day of DST. │ 0 │ │ │ 0 to 6 if ew != 0 │ │ │ │ 1 to 31 if ew = 0 │ │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ et │ Ending time of DST (in seconds). │ 7200 │ ├──────────────┼─────────────────────────────────────────────┼─────────────────┤ │ shift │ Amount of time change (in seconds). │ 3600 │ └──────────────┴─────────────────────────────────────────────┴─────────────────┘ For example: SET TZ=CST6CDT sets the standard time zone to CST, the daylight saving time zone to CDT, and sets a difference of 6 hours between CST and CUT. It does not set any values for the start and end date of daylight saving time or the time shifted. When TZ is not present, the default is EST5EDT, the "C" locale value. When only the standard time zone is specified, the default value of n (difference in hours from GMT) is 0 instead of 5. If you give values for any of sm, sw, sd, st, em, ew, ed, et, or shift, you must give values for all of them. the entire statement is considered not valid, and the time zone information is not changed. ═══ 3.3. Servers ═══ This page allows you to select the time servers which will be queried for time and specify the protocol used by these servers. Servers Available This is a list of predefined NIST servers. Servers Available ( user's ) This is the list of servers which were added by the user. Press the 'Add' button to add a server and 'Delete' button to delete a server from this list. Servers Selected This is the list of servers which will be queried for time. You may have more than one server selected and TimeKeeper/2 will then cycle through the selected list. For faster results select a single server rather than multiple servers. To insert a server into the list, select the server in one of the Servers Available lists and press the 'Insert' button. The 'Remove' button removes the server from the list. Protocol Time protocol may be used either above the Transmission Control Protocol (TCP) or above the User Datagram Protocol (UDP). For most cases TCP protocol is accepted by a server. The TCP protocol also provides better accuracy when network connection is slow. If a time server does not respond to TCP requests try to use UDP. ═══ 4. Registration ═══ TimeKeeper/2 is provided on a 30 day evaluation basis. After 30 days you must register or delete the program from your computer. When the evaluation period expires, TimeKeeper/2 will pop up a dialog box each time the program is started. TimeKeeper/2 is $10.00 and may be purchased at BMT Micro by calling 800-414-4268 or online at http://www.bmtmicro.com. For other ordering options, please consult the file ORDER.FRM included with this archive. Latest version of TimeKeeper/2 is available at http://www.bmtmicro.com/catalog/timekeeper2.html ═══ 5. Technical support and License Agreement ═══ Questions, suggestions or bug reports should be sent to timekeep@bmtmicro.com. BMT Micro does not warrant that TimeKeeper/2 will meet your requirements, that operation of TimeKeeper/2 will be uninterrupted or error-free, or that all TimeKeeper/2 errors will be corrected. BMT Micro is not responsible for problems caused by changes in the operating characteristics of computer hardware or computer operating systems which are made after the release of TimeKeeper/2 nor for problems in the interaction of TimeKeeper/2 with other software. BMT Micro will have no responsibility to replace or refund the fee of and media or license damaged by accident, abuse or misapplication. ═══ 6. RFC878 ═══ Network Working Group J. Postel - ISI Request for Comments: 868 K. Harrenstien - SRI May 1983 Time Protocol This RFC specifies a standard for the ARPA Internet community. Hosts on the ARPA Internet that choose to implement a Time Protocol are expected to adopt and implement this standard. This protocol provides a site-independent, machine readable date and time. The Time service sends back to the originating source the time in seconds since midnight on January first 1900. One motivation arises from the fact that not all systems have a date/time clock, and all are subject to occasional human or machine error. The use of time-servers makes it possible to quickly confirm or correct a system's idea of the time, by making a brief poll of several independent sites on the network. This protocol may be used either above the Transmission Control Protocol (TCP) or above the User Datagram Protocol (UDP). When used via TCP the time service works as follows: S: Listen on port 37 (45 octal). U: Connect to port 37. S: Send the time as a 32 bit binary number. U: Receive the time. U: Close the connection. S: Close the connection. The server listens for a connection on port 37. When the connection is established, the server returns a 32-bit time value and closes the connection. If the server is unable to determine the time at its site, it should either refuse the connection or close it without sending anything. When used via UDP the time service works as follows: S: Listen on port 37 (45 octal). U: Send an empty datagram to port 37. S: Receive the empty datagram. S: Send a datagram containing the time as a 32 bit binary number. U: Receive the time datagram. The server listens for a datagram on port 37. When a datagram arrives, the server returns a datagram containing the 32-bit time value. If the server is unable to determine the time at its site, it should discard the arriving datagram and make no reply. The Time The time is the number of seconds since 00:00 (midnight) 1 January 1900 GMT, such that the time 1 is 12:00:01 am on 1 January 1900 GMT; this base will serve until the year 2036. For example: the time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT, 2,398,291,200 corresponds to 00:00 1 Jan 1976 GMT, 2,524,521,600 corresponds to 00:00 1 Jan 1980 GMT, 2,629,584,000 corresponds to 00:00 1 May 1983 GMT, and -1,297,728,000 corresponds to 00:00 17 Nov 1858 GMT. ═══ 7. The TimeKeeper/2 Clock Bar ═══ TimeKeeper/2 can be minimized to Clock Bar when option Minimize to Clock Bar is checked. TimeKeeper/2 Clock Bar consists of three fields: Local Time displays current local time. The Time Difference displays the difference between local time and server time. If server time was not queried the field displays -. Network Indicator the indicator displays if server time is being queried. ═══ 8. The TimeKeeper/2 Command Line Options ═══ TimeKeeper/2 has the following command line options: -adjust TimeKeeper/2 starts, connects to the time server, adjusts local time and quits. Return code ( errorlevel ) is equal to 0 if the time was successfully adjusted. ═══ 8.1. Add New Time Server ═══ This dialog allows to enter information for a new time server. It contains the following fields: Name An arbitrary name for the server. The server will be referred to by the name. Address Internet address of the server ( fully qualified domain name or decimal IP ).