<<This text file was automatically generated from HTML and hence the two column
  layout is not suitable for fixed width text as displayed below. This file is
  only for those who do not have access to the original web version. To view the
  original file point your favorite Web browser to
  http://www.intsoft.com/products/timesync/instructions.html
>>

TimeSync - an NT service for keeping clocks in sync

 Contents:       1. Introduction

                 TimeSync is an NT service that keeps the local clock of the
 Introduction    machine in sync with a reference source. Currently, time
                 reference sources may be one of the following:
 Prerequisites
                    * the PDC of an NT domain
 Installation       * a specific NT machine
                    * a unix (or any) machine that understands TCP/IP and has a
 Maintenance          time server (RFC868) using either TCP or UDP
                    * an NTP server (RFC1361).
 Deinstallation
                 As a service TimeSync does not require that a user be logged
 Upgrading       in: it starts off as soon as the machine boots up and runs
                 unobtrusively in the background. Before installing the
 Remarks         software please read the rest of this document.

 Command line    The current version of TimeSync is 1.7 and may be downloaded
 arguments       from my web server. Check out
                 http://www.intsoft.com/products/index.html#timesync for
 Notes on the    details. Alpha, x86 and PowerPC versions are available.
 Implementation
                 2. Prerequisites
 Future
 Enhancement     TimeSync can be installed on NT 3.51 or 4.0. I have tested
                 this version on NT 3.51 (build 1057 + Service Pack 5) and NT
 Contacting Me   4.0 (build 1381 + Service Packs 4). As Win95 and Win32s
                 systems do not support Win32 services, TimeSync will not run
 Revisions       on them.

 Purchasing      To install the service, the user has to have sufficient
                 privilege i.e. Administrator rights. A fairly accurate time
 Legalese.       source is required. This could be a machine with a radio clock
                 or synchronizes with one that does. Please check the time of
                 the machine where you intend to install TimeSync and ensure
                 that it within 10 minutes of the wall clock time. The reason
 Other docs:     for this is that TimeSync will not change the time if the
                 difference between the local clock and the remote machine
                 exceeds 10 minutes. This is intentional and done to avoid
                 changing the clock if the reference source is wildly
 FAQ (Frequently off-course. The normal drift of a computer clock should not
 Asked           exceed 8 seconds a day without any synchronization software
 Questions)      but I have seen rogue machines that deviate by more than 20
                 seconds per day! TimeSync can tame such beasts with ease.
 Examples of
 TimeSync's      3. Installation
 effectiveness
                 Copy the executable (TimeSync.exe) to a suitable directory on
 Order Form      the local disk. The suggested place is %SYSTEMROOT%\system32.
                 Change directory to wherever you copied it to and type
                 "TimeSync /?". You should see a brief list of accepted
                 arguments. Now type "TimeSync /install <time source>" where
                 <time source> is one or more of the following /domain,
                 /nt_machine, /tcp_machine or /ntp_machine followed by the
                 machine name. For simplified instructions check the install
                 section of the FAQ.

                 For example, "TimeSync /install /domain=sales" will use the
                 PDC of the domain sales. If the domain name or the entire
                 <time source> argument is omitted, the PDC of the domain of
                 the machine you are installing TimeSync on will be used as the
                 time source.

                 For other parameters that might be useful at your site, check
                 the section titled Command line arguments. If you have several
                 NT domains I recommend that servers (and domain controllers)
                 be synchronized with a machine outside the domain and
                 workstations should use their PDC (i.e. leave the <time
                 source> specification empty) or another server in the domain.
                 The sample configuration file is supplied for you to
                 customize.

                 If installation is successful you should see a message to that
                 effect in the console window. TimeSync will now be running. If
                 you would like to customize the startup, open the "Control
                 Panel | Services" applet and click on TimeSync in the list of
                 available services. If manual startup is required, click on
                 "Startup..." and change the radio button in the dialog box. In
                 the services window click on "Start". Within 5 seconds the
                 status should show "Started". If an error occurs check the
                 event log or the specified log file for details.

                 Once it is successfully started check the event log. You
                 should see a startup message. By default, synching is
                 performed when it starts and every 8 hours after that. If you
                 would like it to sync at a different time, specify it by
                 adding /at=<time> to the command line. For example, /at=15:30
                 will cause it to sync at 15:30:00. In order to sync as soon as
                 TimeSync starts, omit the /at argument as /at=+0:0:0 is the
                 default.

                 4. Maintenance

                 Check the log once a week to ensure that TimeSync is running
                 smoothly. You should only see informational messages that the
                 clock has been set. If an error is reported the message there
                 should be self-explanatory. The value for the deviation should
                 be considerably less than a second. On my machines they are
                 usually in the order of 30-80 milliseconds with an occasional
                 200 milliseconds. If you redirected the log to a file instead
                 of the NT event log, there will be no entries in the event log
                 at all; they will be in the log file that you specified during
                 installation.

                 5. Deinstallation

                 In a console window type "TimeSync /remove". The service will
                 be removed and all the registry entries that were added during
                 the install phase will be cleaned up. If errors occur, an
                 appropriate message will be displayed. If you just want to
                 stop and restart the service you may do so from the Control
                 Panel | Services. There, select TimeSync and click on the Stop
                 button followed by the Start button.

                 6. Upgrading from a previous version

                 TimeSync should always be removed using the instructions of
                 the version that is currently running. To upgrade from version
                 1.0 execute TimeSync /remove in a console window. Copy the new
                 version to %SYSTEMROOT%\System32 and then install it as per
                 your requirements.

                 All versions of TimeSync prior to 1.0 required the following:

                    * Stopping TimeSync in Control Panel | Services.
                      Alternatively, this can be achieved by typing "net stop
                      timesync" in a console window.
                    * Executing TimeSync /remove in a console window.

                 Note that in the current version, the remove control argument
                 first stops the service if it is currently running; version
                 0.6 and earlier did not do this and hence you have to do both
                 steps manually.

                 7. Remarks

                 The accuracy to which TimeSync can trim the local clock
                 depends very much on the accuracy of the time source that is
                 used. If /tcp_machine is used in the command line one could
                 expect an accuracy of +- 1 second. If /ntp_machine is used on
                 the command line the accuracy could be as high as +- 1
                 millisecond. As the time used by TimeSync is UTC you can
                 specify a time source that is in another time zone or half way
                 around the globe. The network delay is taken into
                 consideration when calculating the time. In other words, half
                 of the time required from the transmission of the request to
                 the receipt of the reply is added to the time. Caveat: this is
                 approximate as it is impossible to know what the real delay
                 was. The assumptions here are that the time for the
                 transmission and reply are the same and, further, that the
                 remote computer does not require any time to answer the
                 request. In practice, however, these assumptions do not
                 distort the result by any appreciable amount.

                 By default, each time source has to send 5 messages and the
                 average deviation of all 5 are calculated before the time is
                 changed. You may specify up to 10 time sources. The average of
                 all time sources will be used as the reference time. Thus, the
                 reference time may be averaged across multiple messages and
                 multiple machines.

                 The latest version (after version 1.1) has some fault
                 tolerance features that may interest large sites. With the
                 /select control argument one can decide how many of the
                 specified time sources are to be 'elected'. TimeSync will
                 average the time over the 'elected' time sources. Therefore,
                 one could specify 10 time sources but only use the best 2.
                 TimeSync decides on who are the best by comparing the network
                 delay; this is rough indication of the topological distance.
                 Closer and less loaded servers will therefore get preference.
                 Let's look at a simple example: let us assume that the user
                 installed TimeSync with the following arguments: TimeSync
                 /install /nt_machine=nt1 /nt_machine=nt2 /nt_machine=nt3
                 /select=1,8. He has specified 3 time sources: nt1, nt2 and
                 nt3. Of these, one machine (due to the 1 in the select
                 argument) will be elected as the time source by first asking
                 all three machines for the time and picking the one with the
                 lowest network delay. Once elected, this machine will be used
                 as the definitive time source for 8 synchronization cycles.
                 When the 8 synchronization cycles are up another election will
                 be held. If the elected machine returns an error before the 8
                 synchronization cycles are over, an election will be forced at
                 the next synchronization cycle. If the overhead associated
                 with the election process is deemed as prohibitive, restricted
                 mode can be turned on (by appending ",R" to the select
                 parameters shown above) which will cause TimeSync to use the
                 first of the machines that reply as the elected sources and
                 will not ask all the configured time sources for their time.

                 Clock adjustment will enable the time to be kept within a much
                 tighter range than without this feature. I have run it on
                 several pathological cases and the end result has been very
                 satisfactory. Here are some examples of machines that have
                 been made to behave once TimeSync took over the reins. If,
                 however,  the deviation is so large that adjustment is not
                 practical, TimeSync will set the clock as if /adjust was not
                 in effect. This will only happen if the deviation too large
                 for TimeSync to correct in the time provided.

                 This and the previous version of TimeSync has been tested by
                 the author on over 20 different machines without exhibiting
                 any serious errors. There are over 400,000 machines that are
                 currently using version 1.0 and higher.

                 TimeSync is meant only for NT systems.The port to Win95 has
                 been running in-house but there are no immediate plans to
                 release it as it has quite a few limitations in comparison to
                 the NT version.

                 8. Command line arguments

                 Some of the arguments have been discussed earlier. For normal
                 usage those are sufficient. Special circumstances may require
                 the advanced control arguments dealt with in this section.

                 /install
                   installs the service. Should be used only when installing
                   the service. Once the service is created it starts it
                   automatically. If the service is already installed, it does
                   an implicit remove before installing it anew.
                 /remove
                   deinstalls the previously installed service. It deletes the
                   service after stopping it.
                 /domain
                   /domain[=<domain name>[,<#messages>]] specifies that the
                   time source should be the PDC of that domain. If domain name
                   is omitted the domain of the machine is used.For example
                   /domain=sales,7 will cause TimeSync to send 7 messages to
                   the PDC of sales and average the time from all the received
                   messages. If <#messages> is left out the default is 5.
                 /nt_machine
                   /nt_machine=\\<nt machine name>[,<#messages>] to use that
                   node as time source. If the back-slashes are omitted they
                   are put in by TimeSync before passing the names to the API
                   calls. If <#messages> is left out the default is 5.
                 /tcp_machine
                   /tcp_machine=<machine name>[,<#messages>] to use TCP port 37
                   of that Unix (or whatever) node as time source. If
                   <#messages> is left out the default is 5.
                 /udp_machine
                   /udp_machine=<machine name>[,<#messages>] to use UDP port 37
                   of that Unix (or whatever) node as time source. If
                   <#messages> is left out the default is 5.
                 /ntp_machine
                   /ntp_machine[=<machine name>[,<# messages>]] to use an NTP
                   server as time source. If the machine name is omitted, it
                   waits for an NTP broadcast. If <#messages> is left out the
                   default is 5. Thus, /ntp_machine without a <machine name>
                   and <#messages> will cause TimeSync to wait for 5 broadcast
                   messages. TimeSync waits for up to 2 minutes for a reply or
                   a broadcast message.
                 /period
                   /period=<hours>:<minutes>:<seconds> to specify update
                   frequency. The default is 8 hours. /period=4:0:0 will cause
                   it to synchronize every 4 hours.
                 /at
                   /at=[+]<hours>:<minutes>:<seconds> to specify the start time
                   for synching. The + sign signifies that the time that
                   follows is relative; absence of the + indicates absolute
                   time. If this argument is omitted the default is at startup,
                   i.e. it is assumed to be /at=+0:0:0. Thus, if /at=+0:0:10
                   specifies that TimeSync should start its operation 10
                   seconds after start-up whereas, /at=0:0:10 specifies that it
                   should start 10 seconds after midnight.
                 /adjust
                   /adjust[=(yesno)] to specify whether TimeSync should slowly
                   adjust the clock to make up for the deviation or if the time
                   should be jammed into the clock. By default, adjustment is
                   enabled; the /adjust control argument without "=yes" also
                   indicates that adjustment is desired. If you are one of the
                   few who do not want adjustment you must specify
                   "/adjust=no". Note that this behavior is new in version 1.4:
                   earlier versions had a default of no adjustment. Adjustment
                   will cause the NT clock to be speeded up or slowed down by a
                   small amount during each clock interrupt (usually every 10
                   milliseconds). Depending on the actual deviation this might
                   take up to 30 minutes or half of the update frequency
                   (specified with /period). This feature is useful if there
                   are programs that depend on the fact that time cannot go
                   back. For example, make looks at the modification time of
                   files in order to decide what has to be generated anew.
                 /immediate
                   to run the program without installing a service. It
                   synchronizes once and then exits. This is mainly used for
                   testing. It ignores the /at argument, if specified, and
                   assumes that /at=+0:0:0 was entered (synchronize right
                   away).
                 /log
                   /log=<device or file>[,<size>] to redirect the messages from
                   TimeSync to another file or device. The default is console
                   during interactive use and the event log when it is running
                   as a service. To specify the console type /log=Console, for
                   the event log use /log=EventLog or to output to a file use
                   /log=somefile.log. <size> indicates the maximum number of
                   kilobytes the log file may grow to. If <size> is omitted the
                   default is 10K bytes. The file will be handled like a
                   circular buffer; when it gets to the end it will continue at
                   the beginning of the file. Each line in the log device
                   starts with the date, time and severity.
                 /trace
                   /trace[=<trace level>] to set the level of desired output to
                   a logging device. Outputs less or additional information to
                   the current log device. Permitted trace levels are debug,
                   success and error. If debug is specified all debug, success
                   and error messages are shown; specifying success will cause
                   success and error messages to appear; specifying error will
                   cause TimeSync to display error messages only. For example,
                   if you just want to see error messages use /trace=error. If
                   /trace is not specified it defaults to /trace=success, if
                   /trace is specified without a trace level, it defaults to
                   /trace=debug. The table summarizes what is described above.
                     /trace=debug   all debug, success and error messages
                     /trace=success all success and error messages
                     /trace=error   error messages only
                     /trace         equivalent to /trace=debug (see above)
                     <none>         equivalent to /trace=success (see above)


                 /file
                   /file=<parameter filename> to specify additional parameters
                   through a file. In the file each parameter must appear on a
                   line by itself. All characters from a # sign to the end of
                   the line are considered as a comment; comments are ignored.
                   This parameter makes it easy to remove and install TimeSync
                   without having to remember a whole bunch of arguments. It is
                   also useful if you intend to use the same settings on
                   several machines. Every time TimeSync starts up it will
                   re-read this file. You could therefore put control arguments
                   to override the installed ones by writing them into to file
                   and restarting TimeSync. If the file does not exist it runs
                   with the installed parameters. There is one exception to the
                   overriding rule: if any time sources are mentioned in the
                   file only those are taken; if no time sources are mentioned
                   the installed ones are used. TimeSync will not append time
                   sources in a configuration file to the installed ones.
                 /url
                   /url=<URL of file> to specify additional parameters through
                   a URL (Uniform Resource Locator). With this feature you can
                   store the arguments for TimeSync on a web server and have
                   TimeSync fetch them by specifying a control argument like
                   "/url=http://www.company.com/data/timesync-parameters.txt".
                   In the same conditions for the /file argument applies to
                   /url as well. Supported URL protocols are HTTP and FTP;
                   others like file and HTTPS might work but they have not been
                   tested.A final caveat: if the server does not find the
                   specified file it usually sends back a descriptive error
                   message that TimeSync could in very rare cases mistakenly
                   consider as the parameter file. TimeSync has been tested
                   with several popular web servers. Note that this feature
                   requires WinInet.DLL which gets installed on your system
                   with Internet Explorer 3.x and above. WinInet.DLL will not
                   be required if you do not use this control argument.
                 /max_deviation
                   /max_deviation=<#milliseconds> to indicate what the max
                   tolerated deviation is. If the deviation is more than this
                   amount TimeSync will not try to correct it. This might
                   indicate serious problems with the time source or wrong
                   setting of the time or time zone by the administrator. The
                   default value for the maximum deviation is 10 minutes. If 0
                   milliseconds is specified, it indicates that there is no max
                   tolerated deviation and hence it will not bother to check
                   the deviation. The use of this is not recommended but it is
                   there for those who have been clamoring for this feature.
                 /max_network_delay
                   /max_deviation=<#milliseconds> specifies what the maximum
                   tolerated network delay is for time queries. If it is more
                   than the maximum value the message is ignored. The default
                   value for this is 1 second. You might want to set it to a
                   higher number if the time source is far away from the
                   machine or if the available network bandwidth is
                   insufficient. If 0 milliseconds is specified, it indicates
                   that there is no max tolerated network delay and hence it
                   will accept any network delay.
                 /select
                   /select=<#sources>,<#periods>,<mode>. This introduces
                   fault-tolerance features to TimeSync. Of the multiple time
                   sources that may be specified, a subset are chosen based on
                   the information given in this control argument. The remarks
                   section has an example and the FAQ discusses this in detail
                   with a sample configuration file.
                   <#sources>     The maximum number of machines that are to
                                  be elected as definitive time sources. This
                                  must be a number smaller than the total
                                  number of machines that were specified with
                                  /domain, /nt_machine, /tcp_machine and
                                  /ntp_machine put together. The selection
                                  criterion is the network delay of the time
                                  messages.
                   <#periods>     The number of synchronization cycles for
                                  which TimeSync should use the time sources
                                  that were elected. At the end of this
                                  duration another election is held.
                   mode           The optional restricted mode is turned on by
                                  the letter 'R'. If specified, it indicates
                                  that TimeSync should consider the first
                                  <#sources> as elected and not attempt to
                                  contact all the specified sources. This
                                  reduces the network load but runs the risk
                                  of not using the best time sources. The
                                  order of appearance of the time sources
                                  during installation is therefore
                                  significant.
                 /status
                   Displays if TimeSync is installed and if it is currently
                   running. Some important parameters are displayed as well.

                 Although I provide a large number of arguments, I set up my
                 personal machine with the following simple command line:
                 TimeSync /install /adjust /tcp_machine=horus /trace
                 /log=timesync.log

                 9. Notes on the implementation

                 The TimeSync executable contains the installer, deinstaller,
                 the service itself and the text of the event log messages. It
                 stores registry parameters in the following key:
                 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeSync.
                 The command line parameters that were entered during
                 installation will be under the Parameters subkey.

                 The source was compiled with Microsoft VC++ 6.0 with SP 2.

                 10. Future Enhancement

                 I have been promising a control panel applet ever since
                 version 1.0 but most users have been pestering for other
                 features and it has been pushed to the back burner. Someday,
                 it will make its appearance in one form or another. Tell me
                 what you think is essential. Here are some to get the list
                 going: multiple log outputs, reduce EXE size, remote
                 installation, ....

                 11. Contacting me

                 I would welcome any constructive criticism regarding the
                 program, its usefulness to you and any assorted ideas you have
                 which might improve it. However, I cannot guarantee a response
                 and, further, I cannot guarantee that I will fix bugs and/or
                 incorporate your ideas into a future version. I will listen
                 carefully to what registered users have to say and will make
                 all reasonable attempts at fixing bugs in a timely manner.

                 Mail address: Raju Varghese Intellisoft Inc. Stckmattstr. 3,
                 CH-5316 Leuggern Switzerland

                 Fax: +41 56 245 5140 email: raju@intellisoft.ch CompuServe:
                 100116,1001

                 12. Revisions

                 0.3 to 0.4                      First public release
                 0.4 to 0.5                      Added tracing and redirection
                                                 of messages to different log
                                                 device. Fixed problem with
                                                 adjust that caused the
                                                 previous time to be restored.
                                                 This seems to be a 'feature'
                                                 of NT: if time adjustment is
                                                 disabled NT seems to get the
                                                 old time from somewhere
                                                 (presumably the HW clock) and
                                                 restore it once an hour. This
                                                 defeated the synchronization
                                                 performed by TimeSync.
                 0.5 to 0.6                      TimeSync occasionally crashed
                                                 in the kernel DLL when
                                                 converting Unicode to 8-bit
                                                 characters. I have not been
                                                 able to ascertain the reason
                                                 for this and hence I have
                                                 recoded that part. Also
                                                 removed a trace output with
                                                 the remote time after
                                                 synchronization.
                 0.6 to 1.0                      Major changes were made in
                                                 this release. Recoded in C++.
                                                 Made often used parameters
                                                 the default. /at=0:0:0 is now
                                                 the default as most users
                                                 want the machine to
                                                 synchronize at startup.
                                                 /period=8:0:0 is the default
                                                 rather than 24 hours.
                                                 /install starts the service
                                                 and /remove stops the service
                                                 before deleting it.Adjustment
                                                 improved to eliminate
                                                 'saw-tooth' deviation.
                                                 Earlier, if adjust was
                                                 specified with /immediate and
                                                 Control-C was pressed
                                                 adjustment continued till the
                                                 machine was rebooted; this
                                                 has been changed so that
                                                 adjustment is restored to the
                                                 prevailing state. C++
                                                 exceptions are used to handle
                                                 error conditions. Multiple
                                                 messages are sent to each
                                                 time source. Multiple time
                                                 sources may be specified.
                 1.0 to 1.1                      Fault-tolerance features
                                                 added (/select control
                                                 argument). If log device is
                                                 specified as Console, the
                                                 service opens a console
                                                 window. Relative start time
                                                 can be specified by
                                                 prepending a "+" to the time
                                                 in the /at control
                                                 argument.If installed with a
                                                 configuration file, it is
                                                 re-read during subsequent
                                                 start-ups. To re-install
                                                 TimeSync, one does not have
                                                 to first deinstall it (with
                                                 /remove): if it is already
                                                 installed an implicit remove
                                                 is performed followed by
                                                 install.
                 1.1 to 1.2                      Got bitten by an
                                                 end-of-leap-year bug. On the
                                                 last day of a leap year the
                                                 calculation for day count got
                                                 messed up by 1, which caused
                                                 an integer overflow
                                                 and...nah! you wouldn't want
                                                 to hear the gory details.
                 1.2 to 1.3                      There were NT machines where
                                                 NTP requests caused TimeSync
                                                 to crash when the replies
                                                 took an inordinate amount of
                                                 time. The kernel caused a
                                                 recursive exception. I now
                                                 use the timeout feature of
                                                 sockets instead of a
                                                 monitoring thread.
                 1.3 to 1.4                      UDP time port added
                                                 (/udp_machine control
                                                 argument), URL for specifying
                                                 parameter files (/url control
                                                 argument), ignore network
                                                 delay and clock deviation
                                                 (this was done due to popular
                                                 demand). The working set is
                                                 trimmed when TimeSync is
                                                 inactive and hence it should
                                                 not be using up memory
                                                 unnecessarily. Fixed a bug
                                                 that resulted in loss of
                                                 precision when manipulating
                                                 32-bit millisecond counter.
                                                 The end result was that if
                                                 the time deviation was more
                                                 than 49 days (an unlikely
                                                 scenario but a bug,
                                                 nonetheless) it lost the most
                                                 significant bits and the
                                                 counter became a small
                                                 number. This showed when Y2K
                                                 tests were being run. Thank
                                                 god for that!
                 1.4 to 1.5                      Quite a few complained that
                                                 version 1.4 required
                                                 WinInet.DLL even when the
                                                 features offered by it was
                                                 not used. Due to the implicit
                                                 linking of that DLL, TimeSync
                                                 would not load if that DLL
                                                 was not present. I have
                                                 changed it so that the DLL is
                                                 loaded dynamically only if
                                                 the /URL control argument is
                                                 used. IE 3.x users complained
                                                 that there were error
                                                 messages about cache
                                                 corruption of Internet files.
                                                 This was an error in the
                                                 version of WinInet that came
                                                 with IE 3.x.
                 1.5 to 1.6                      NTP broadcasts were not
                                                 handled correctly. This has
                                                 been fixed. NTP timeout has
                                                 been increased to 2 minutes
                                                 from 1 minute. The /status
                                                 command line argument has
                                                 been added. In immediate mode
                                                 TimeSync displays a message
                                                 while adjusting the clock so
                                                 that users do not panic
                                                 thinking that TimeSync is
                                                 hanging.
                 1.6 to 1.7[new.gif (116 bytes)] Bugs fixed: race condition
                                                 removed that caused a
                                                 registry error during
                                                 installation. Adjustment is
                                                 more accurate making 1
                                                 millisecond deviation a
                                                 reality. High-performance
                                                 timer used instead of Windows
                                                 timer to measure network
                                                 delay (accuracy of +-0.5
                                                 milliseconds instead of
                                                 +-10). Good adjustment values
                                                 are stored in the registry so
                                                 that it does not have to be
                                                 recalculated on start-up. TCP
                                                 time server added.

                 13. Purchasing

                 TimeSync is freely distributable software. Use it and test it
                 for up to 30 days. After that period you are required to
                 register it. As I do not want to appear greedy I shall not ask
                 for money from non-profit, private persons or small sites.
                 Therefore, all educational institutions - schools and
                 universities - as well as private users and commercial
                 organizations with less than 10 NT machines may continue to
                 use TimeSync provided they send me a postcard of their
                 town/city/state stating the approximate number of machines
                 that are running it. All others are required to pay according
                 to the following table:

                 Type of License        Suitable for ...          Price
                 Single user license    for one workstation or    $ 10.00 per
                                        server, up to 40          machine
                                        workstations or servers.
                 Small organization     between 40 and 100        $ 600.00
                 License                workstations or servers
                 Medium-sized           between 100 and 1000      $ 1000.00
                 organization License   workstations or servers
                 Large Enterprise       more than 1000            $ 2000.00
                 License                workstations or servers

                 Your contribution will pay for those little luxuries in my
                 life such as food, clothing, shelter and an NT machine.
                 TimeSync does not contain a time-bomb nor a nag dialog box
                 that incessantly demands that you register it. I have to
                 depend on your honesty. As a sign my goodwill, I will donate
                 10% of your payment to charity - not on the profit I make from
                 it or post-tax earnings, but on the amount that you send me -
                 no chance for me to fiddle with numbers. When making your
                 payment please indicate the desired type of charitable
                 organization. If you have any special wish please indicate it
                 there and I shall try my best to comply. Here is the
                 registration form you could use. If you have any questions ask
                 me at timesync@intellisoft.ch.

                 14. Legalese

                 TimeSync is supplied "as is" without warranty of any kind,
                 either expressed or implied, including, but not limited to,
                 the implied warranties of merchantability and fitness for a
                 particular purpose. The entire risk as to the quality and
                 performance of the program is with you. Should the program
                 prove defective, you assume the cost of all necessary
                 servicing, repair or correction.
------------------------------------------------------------------------
Copyright  1994..1999  Intellisoft Inc., Switzerland. All Rights Reserved.
Last edited on 1999-04-27.
