home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / sysutl / timgen10.arc / TIMEGEN.DOC < prev    next >
Encoding:
Text File  |  1989-09-18  |  25.8 KB  |  519 lines

  1.                          TIMEGEN.EXE
  2.                          Version 1.0
  3.  
  4.            A program for generating time signals in
  5.                   Naval Observatory format
  6.  
  7.                        Copyright 1989
  8.               Life Sciences Editorial Services
  9.                      1236 River Bay Road
  10.                   Annapolis, Maryland 21401
  11.  
  12.  
  13.                       SHAREWARE NOTICE
  14.  
  15.      TIMEGEN IS NOT A FREE PROGRAM AND IT IS NOT GIVEN
  16.      TO THE PUBLIC DOMAIN.  IT IS SHAREWARE, WHICH
  17.      MEANS YOU ARE REQUESTED TO COMPENSATE THE
  18.      AUTHOR FOR HIS EFFORTS IF YOU CONTINUE TO USE THE
  19.      PROGRAM.  THOUGH REGISTRATION AND PAYMENT ARE
  20.      EXPECTED IF YOU DECIDE TO KEEP AND USE TIMEGEN,
  21.      THE PROGRAM IS NOT "CRIPPLED" IN ANY WAY TO
  22.      COERCE YOU TO PAY BEFORE GETTING A FULLY
  23.      IMPLEMENTED VERSION.  THE FULLY IMPLEMENTED
  24.      VERSION IS IN YOUR HANDS RIGHT NOW, AND IT IS
  25.      ASSUMED THAT YOU ARE HONORABLE AND WILL PAY
  26.      FOR IT IF YOU CONTINUE USING IT AFTER A 14-DAY
  27.      TRIAL.  DETAILS ON REGISTRATION ARE PROVIDED NEAR
  28.      THE END OF THIS DOCUMENT. 
  29.  
  30.  
  31.                          DESCRIPTION
  32.  
  33.   TIMEGEN.EXE is a program that generates and transmits time signals
  34. in Naval Observatory format to computers running Professional TIMESET
  35. (TIMESET version 5 or higher).  The purpose is to make it unnecessary
  36. for all the computers in a local system to call the Naval Observatory for
  37. accurate time.  Only one of the computers needs to do it.  After that
  38. computer's clock has been synchronized with the Naval Observatory,
  39. TIMEGEN synthesizes accurate time data strings that other computers,
  40. calling it with Professional TIMESET, can use to set their own clocks. 
  41. The benefit (for all but the relatively small number of people for whom
  42. the Naval Observatory is a local call) is that a single long distance phone
  43. call allows several computers to become closely synchronized with the
  44. cesium clocks of the Naval Observatory and with each other.
  45.  
  46.   The program should be especially useful for large organizations,
  47. especially those using computer programs that time-stamp data in files. 
  48. For example, it would seem highly desirable for all the personal computers
  49. on a military base to be set to the same time.  Likewise, all the branch
  50. offices of banks and other corporations probably need to have their
  51. computer clocks synchronized.  The same goes for all the stations of a
  52. state police system.  All such organizations now have that potential with
  53. TIMEGEN.  In effect, the program allows organizations to create
  54. specialized computer bulletin boards to act as local "substations" of the
  55. U.S. Naval Observatory.
  56.  
  57.   Several options are available for defining the program's period of
  58. operation.  It can be set up to run for an indefinite time, between specific
  59. times of the day, for a specified length of time irrespective of actual time,
  60. or continuously with periodic updates from the Naval Observatory to
  61. correct drifting of the host computer's clock.
  62.  
  63.  
  64.  
  65.                    CONFIGURING THE PROGRAM
  66.  
  67.   TIMEGEN is a self-configuring program; that is, it writes your input for
  68. time zone, time season (daylight or standard), communication port number,
  69. and monitor type to its own source file on disk, thus eliminating the need
  70. for an external configuration data file.  Your configuration becomes a
  71. semi-permanent part of the program itself.  Reconfiguration is extremely
  72. simple, requiring only a switch on the command line to force configuration
  73. mode.  There are only four substantive prompts to answer during
  74. configuration, and three of them require pressing only a single key.
  75.  
  76.   If your copy of TIMEGEN has never been configured before, it will
  77. automatically load in configuration mode the first time you run it.  It
  78. seems unlikely that a copy you obtained from a computer bulletin board
  79. will not be configured, however, since responsible sysops usually test
  80. programs they receive before making them available for downloading.  The
  81. chances are, then, that the program will immediately start running as soon
  82. as you enter TIMEGEN in DOS and press return.  If the program has
  83. been previously configured, there is a good chance that the configuration
  84. will not be right for you.  The time zone might not be yours, or the time
  85. season might have changed, or you are using a different serial port, or you
  86. have a monochrome system and the program has been preconfigured for
  87. color (or vice versa).  For this reason, you should run TIMEGEN in
  88. configuration mode the first time you use it.
  89.  
  90.   To configure, you have to be in the same drive and directory as the
  91. program itself; you can't do it from any other drive and directory.  Once
  92. you're in TIMEGEN's drive and directory, type the following at the DOS
  93. prompt:
  94.  
  95.                       timegen /c
  96.  
  97.   The /C tells the program you want to configure.  The four questions you
  98. have to answer are easy ones, and explanation is provided on the
  99. configuration screen itself for one of the questions.  The first question is
  100. the only one that requires some thought (and very little at that).  It has
  101. to do with your time zone.  What is required here is a number
  102. representing the hours difference between your local time and the time in
  103. Greenwich, England (0 degrees longitude) when both places are under
  104. STANDARD time.  Examples are provided for all four time zones in the
  105. contiguous United States.  Don't try to make any adjustment here if you
  106. are on daylight time; the very next question will ask if you're on daylight
  107. time, and the program itself will make the necessary adjustment if your
  108. answer is yes.  Another point: for time zones west of Greenwich it is
  109. absolutely essential that the number you enter be preceded by a minus
  110. sign.
  111.  
  112.   A final point on the time zone setting: if the host computer's clock is set
  113. to universal time (which can be done automatically by calling the Naval
  114. Observatory with TIMESET configured for universal time), the offset to
  115. enter in response to the time zone prompt is 0.  Some organizations,
  116. notably airlines, are run on universal time, and it's likely that many of
  117. their computers are set to it.  If the host computer is on universal time,
  118. you must not choose daylight time at the next prompt because there are
  119. no seasons to universal time; there is no such thing as "universal daylight
  120. time."  Unlike civil time, universal time does not "spring forward" and "fall
  121. back" with the change of seasons, it's always standard time.
  122.  
  123.   The only question about your modem pertains to the port to which it
  124. is attached.  Other modem settings, including baud rate (1200), parity, data
  125. bits, and stop bits, are built into the program and are not configurable. 
  126. You have a choice of COM1, COM2, COM3, or COM4 and you make it
  127. by typing 1, 2, 3, or 4.  There are factors that limit the choice of COM3
  128. or COM4, however.  COM1 and COM3 can't be used at the same time,
  129. and COM2 and COM4 can't be used at the same time.  Thus, if you have
  130. a serial mouse attached to COM1, you may configure TIMEGEN to use
  131. a modem attached to either COM2 or COM4, but you can't have a modem
  132. (or any other device) on COM3.  And if you have a mouse on COM2, you
  133. may configure TIMEGEN to use a modem attached to either COM1 or
  134. COM3, but not to COM4.  The technical reason for this is that a PC does
  135. not have enough IRQ (interrupt request) lines to support four COM ports
  136. simultaneously and independently.  COM1 and COM3 have to share one
  137. line and COM2 and COM4 have to share another, and you can't have two
  138. devices using the same IRQ line.  This is a limitation of the PC, not of
  139. TIMEGEN.  If the program detects the presence of a serial port mouse
  140. in a multiple port system during configuration, it will indicate which
  141. COM ports may not be used for the modem.
  142.  
  143.   The last question is about your monitor.  You can have either a color
  144. or monochrome display if you have a color system.  If you have a
  145. monochrome video adapter, you will get a monochrome display no matter
  146. what you choose here.
  147.  
  148.   A final prompt asks whether your configuration is OK.  If you respond
  149. by typing "y" the configuration is written into a special buffer in the
  150. program's own disk file and the newly configured program is automatically
  151. reloaded.  If you type "n," the configuration procedure starts over.
  152.  
  153.   It's extremely simple to reconfigure this program.  Most likely you will
  154. have to do it only twice a year to adjust for changes between standard and
  155. daylight time.
  156.  
  157.   Once TIMEGEN is configured you can run it from any directory,
  158. provided you have created a path to it by means of the DOS PATH
  159. command.  You will also need a path to Professional TIMESET since
  160. TIMEGEN needs to run that program through a shell.
  161.                      ROUTINE OPERATION
  162.  
  163.  
  164.   TIMEGEN cannot function properly without TIMESET.  You will need
  165. both programs.  Furthermore, TIMESET must be version 5 or higher
  166. (Professional TIMESET).  Likewise, callers will not be able to access
  167. TIMEGEN with versions of TIMESET earlier than 5.  The reason is that
  168. the earlier versions have the Naval Observatory's phone number built into
  169. their code, whereas Professional TIMESET allows the user to enter any
  170. phone number (except mine).  Professional TIMESET (ver. 5 or later) is
  171. available for downloading as shareware from Compuserve and many
  172. computer bulletin boards.  It can also be obtained directly from Life
  173. Sciences Editorial Services, 1236 River Bay Road, Annapolis, Maryland
  174. 21401 (single user charge: individuals $35, institutions $75; special licensing
  175. is required for institutions making multiple copies for use on more than
  176. one computer).
  177.  
  178.   This section describes several ways of operating TIMEGEN.  Since the
  179. purpose of the program is to provide an accurate time standard for other
  180. computers, it is obvious that no matter what operating mode is selected,
  181. the source computer's clock needs to be as accurate as possible. 
  182. TIMEGEN makes this easy by automatically running Professional
  183. TIMESET to call the Naval Observatory before starting to generate its
  184. own time signals.  Furthermore, if TIMEGEN is loaded for continous
  185. long-term operation, the computer clock will be kept highly accurate by
  186. periodic calls to the Naval Observatory (calling interval is determined by
  187. the user).  These clock updates in the source computer are accomplished
  188. by an automatic shell to TIMESET.  The total amount of memory
  189. required for TIMEGEN and the shell to TIMESET is less than 145 kbytes
  190. (TIMEGEN requires about 51 kbytes and Professional TIMESET requires
  191. about 89 kbytes).
  192.  
  193.   After the initial call to the Naval Observatory is completed and the
  194. computer's clock is updated, TIMEGEN opens the designated serial port
  195. in answer mode, waits for incoming calls from computers calling with
  196. Professional TIMESET, and continuously displays Naval Observatory-style
  197. time data strings as it waits.
  198.  
  199.   As soon as connection is established, TIMEGEN will start sending the
  200. time data strings over the line to the calling computer.  The strings will
  201. have exactly the same form as the Naval Observatory's data strings:
  202.  
  203.                 <cr><lf>jjjjj ddd hhmmss UTC<cr><lf>*
  204.  
  205. where <cr> stands for carriage return; <lf> stands for line feed; jjjjj is
  206. the truncated number of the Julian day at Greenwich, England (the true
  207. Julian day would have the same number preceded by 24); ddd is the day
  208. of the year at Greenwich; and hhmmss stands for hours, minutes, and
  209. seconds at Greenwich.  The letters UTC stand for coordinated universal
  210. time.  The asterisk marks the instant when the time changes to the
  211. universal time just announced in the same data string.
  212.  
  213.   A universal time data string of this form is synthesized by TIMEGEN
  214. every second and part of it (jjjjj ddd hhmmss) is displayed on the screen
  215. in large numbers that change every second, whether or not a caller is on
  216. line.  To synthesize these strings, TIMEGEN makes use of the computer's
  217. clock and the time zone and time season information you supplied at
  218. configuration.  Each string displayed is what will be sent next, and
  219. therefore will be 1 second ahead of local seconds (local time is also
  220. displayed continously, in smaller numbers).  If a call is in progress, all the
  221. string characters except the asterisk are sent through the modem as soon
  222. as they are synthesized.  Then there is a slight pause as the program waits
  223. for the second to change.  The asterisk is sent at the instant the second
  224. changes, and the word "Sent" flashes simultaneously at the right side of the
  225. screen.  The calling TIMESET program reacts to the arrival of the asterisk
  226. by immediately setting the calling computer's clock to the time just
  227. announced by TIMEGEN, after making adjustments for local time zone
  228. and time season.
  229.  
  230.   The whole process is precisely orchestrated, but the results can be no
  231. more accurate than the accuracy of the host computer's clock.  As noted,
  232. high accuracy in the source computer's clock is ensured by automatic shells
  233. to TIMESET while TIMEGEN is running.
  234.  
  235.   The interval for these automatic clock updates is set by the user at the
  236. time of loading, and the choice depends on the stability of the computer's
  237. clock, the amount of time drift that can be tolerated, and how long
  238. TIMEGEN will be run.  If your computer gains 0.1 second per hour, as
  239. mine does, and accuracy within half a second is acceptable to you, you
  240. won't have to redial the Naval Observatory for 5 hours.  You wouldn't
  241. even have to do that if you wanted TIMEGEN to run for 5 hours or less.
  242.  
  243.  
  244. Indefinite Period of Operation
  245.  
  246.   The simplest way to run TIMEGEN is by typing its name in DOS and
  247. pressing return.  When loaded this way, the program will synchronize with
  248. the Naval Observatory then wait for timesetting calls until the ESC key is
  249. pressed to make it stop.  The time will probably have adequate accuracy
  250. if the run period is not too prolonged (you'll need to experiment to find
  251. out what is "too long" for your own computer clock).  If TIMEGEN is to
  252. be run for several hours, however, this is not the best way to do it.  A
  253. method to be described a little later is far better because it provides
  254. automatic updating of the host computer's clock by periodic calls to the
  255. Naval Observatory.
  256.  
  257.  
  258. Automatic Operation Between Designated Times
  259.  
  260.   Two command line switches, STARThh:mm:ss and STOPhh:mm:ss, are
  261. available for defining a specific period of operation during which
  262. TIMEGEN will respond to incoming calls.  For example, if you wanted to
  263. set up TIMEGEN to respond to calls between midnight and 8 am, you
  264. could enter the following at the DOS prompt:
  265.  
  266.              timegen start00:00:00 stop08:00:00
  267.  
  268. Notice that there must be no space between START and its numbers and
  269. between STOP and its numbers.  They must be run together as shown. 
  270. Notice also that times must always be entered in DOS's 24-hour format,
  271. where 1 p.m. is 13 hours, 11 p.m. is 23 hours, and midnight is 0 hours.
  272.  
  273.   Actually, it can be even simpler than that, because you don't have to
  274. enter values for minutes and seconds in this situation where you start and
  275. stop on the hour.  Thus the following would also work:
  276.  
  277.                     timegen start0 stop8
  278.  
  279.   Nor do you have to use seconds in the start and stop times if don't want
  280. to.  A command like this will also work:
  281.  
  282.                  timegen start0:30 stop08:30
  283.  
  284.   The program will load immediately, but it will wait until the designated
  285. starting time (local time) before dialing the Naval Observatory for an
  286. initial timeset.  Then it will open the serial port, put the modem into
  287. answer mode, and continuously display the local time as it waits for calls. 
  288. At the stop time it will restore the modem to its default settings, close the
  289. port, and exit to DOS.
  290.  
  291.   What if someone is on line when it's time to shut down?  Do they get
  292. cut off?  No, the stop time is automatically incremented second by second
  293. until the call is completed, then the shut-down occurs.
  294.  
  295.  
  296. Operation for a Specific Period of Time
  297.  
  298.   An alternative method of timed operation is simply to specify how long
  299. the program should run.  This is done by using the word PERIOD on the
  300. command line.  Thus, if you wanted the program to run for a period of
  301. two and one-half hours then quit, you would type the following in DOS
  302. (with no spaces inside the command line switch):
  303.  
  304.                       timegen period2.5
  305.  
  306.   The number of hours can range from 0 to 24.  The fractions of hours
  307. can only be .25, .50, or .75, that is, 15-minute blocks.  Any other fractions
  308. will be ignored.
  309.  
  310.   The START switch can be used in combination with PERIOD to make
  311. the program wait until a starting time before opening the port.  Here is
  312. a command that would load the program, make it wait until 8:15 p.m. to
  313. start, stay available for sending time signals for 4.25 hours, then shut down
  314. (at a half hour past midnight):
  315.  
  316.                 timegen start20:15 period4.25
  317.  
  318.   Don't bother putting in the STOP switch if the PERIOD switch is
  319. present.  The STOP switch is ignored in that situation.
  320.  
  321. Full-Time Operation with Periodic Naval Observatory Updates
  322.  
  323.   If you are willing or need to dedicate a computer to prolonged full-time
  324. generation of Naval Observatory time signals of the highest accuracy, you
  325. can do that too with TIMEGEN working in combination with Professional
  326. TIMESET.  The minimal command line switches needed for full-time
  327. operation are CONTINUOUS and PERIODnn.nn
  328.  
  329.   Thus the following command would cause continuous operation with
  330. automatic update calls to the Naval Observatory every 4 hours:
  331.  
  332.                  timegen continuous period4
  333.  
  334. The cycle will go on endlessly until you press the ESC key while in
  335. TIMEGEN.  Additional variations are possible.  For example, the START
  336. switch can be used together with CONTINUOUS and PERIODnn.nn to
  337. make TIMEGEN wait until a certain time before starting continuous
  338. operation with periodic clock updates from the Naval Observatory.  It is
  339. also possible to enter options on TIMEGEN's command line that will
  340. control the operation of Professional TIMESET during the periodic
  341. updates.  For example, Professional TIMESET can do remote digital
  342. loopback (RDL) tests to measure and correct for signal delays (most useful
  343. for satellite links).  However, both modems must be capable of doing the
  344. test.  Furthermore, the modem that TIMEGEN is using must be
  345. configured to grant the RDL request from the calling modem.  This is
  346. best done by using a standard communication program to write the
  347. configuration into the modem's nonvolatile memory; the command is
  348. AT&T4&W.  (Hayes 2400 Smartmodems are configured at the factory to
  349. grant an RDL request from a remote computer, but other brands may
  350. not be.)
  351.  
  352.   A full discussion of Professional TIMESET's command line switches is
  353. beyond the scope of this document -- you'll need to get Professional
  354. TIMESET anyway -- but all of them can be passed to Professional
  355. TIMESET by putting them on TIMEGEN's command line preceded by the
  356. word TIMESET.  For example, if you wanted TIMEGEN to run
  357. continuously, with a shell to TIMESET every 5 hours for automatic Naval
  358. Observatory update, and with correction for signal delay, you would type
  359. the following:
  360.  
  361.             timegen continuous period5 timeset/l
  362.  
  363. /L is the command line switch that tells Professional TIMESET to do a
  364. remote digital loopback test and calculate signal delay.  Please note that
  365. the word TIMESET is simply a flag to announce command line switches
  366. that are to be passed to TIMESET when TIMEGEN runs it.  If you don't
  367. want to pass any switches to TIMESET, you don't need to put the word
  368. TIMESET on the command line (TIMESET will be run anyway, in bare
  369. bones automatic fashion).
  370.  
  371.   The periodic calling of the Naval Observatory in the continuous mode
  372. of operation ensures that time signals sent to other computers by
  373. TIMEGEN will always be very close to the true time.  In fact, with
  374. sufficiently frequent update calls to the Naval Observatory, TIMEGEN's
  375. signals can be made practically as accurate as those obtained from the
  376. Naval Observatory itself.  For example, since my computer's clock gains
  377. about 0.1 sec per hour, I could maintain 1-second accuracy by calling the
  378. Naval Observatory with TIMESET every 10 hours, 0.5-second accuracy by
  379. calling it every 5 hours, 0.1-second accuracy by calling it hourly, and 0.05-
  380. second accuracy by calling it every 30 minutes.
  381.  
  382.  
  383.                      A NOTE ON ACCURACY
  384.  
  385.   Clearly, the greater the accuracy desired the more frequently the Naval
  386. Observatory has to be called.  You'll need to decide what level of
  387. inaccuracy is acceptable and adjust TIMEGEN's frequency of calls to the
  388. Naval Observatory to achieve that level.  Striving for extreme accuracy can
  389. require a lot of long-distance calls, depending on the stability of the host
  390. computer's clock.  On the other hand, you may need to consider how
  391. many more long distance calls would have to be made if, say, 25 computers
  392. in an organization that could be served locally by TIMEGEN were instead
  393. to call the Naval Observatory several times a day to maintain the same
  394. degree of accuracy.
  395.  
  396.   Here is a suggestion for fearless souls who know their way around the
  397. inside of a computer (others should not try it!).  It is possible, on some
  398. computers anyway, to fine tune a computer's clock by adjusting a set screw
  399. near the clock chip, which is usually located on the bottom side of the
  400. mother board.  With computers that have this feature, a daily small (very
  401. small!) incremental adjustment followed by delayed observation of effects
  402. on clock accuracy (checked with Professional TIMESET, of course, since
  403. it can create a log file to save your before-after system clock readings for
  404. analysis) should eventually lead to a significant improvement in the
  405. computer clock's accuracy and a corresponding reduction in the required
  406. frequency of update calls to the Naval Observatory.  It would seem
  407. advisable to make a micro adjustment and wait a full day before checking
  408. the results, then make another micro adjustment if necessary and wait
  409. another full day to measure the change, and continue this way until you
  410. are satisfied that the clock can't be made any more accurate.  (It's certain
  411. that it will never be perfect, because the clock speed can be affected by
  412. temperature variations.  That's why places like the Naval Observatory and
  413. the National Bureau of Standards use hugely expensive atomic clocks.) 
  414.  
  415.   Going to these lengths to achieve extreme accuracy for TIMEGEN is
  416. probably not necessary for most situations.  Most organizations will
  417. probably be quite satisfied to have their TIMEGEN-equipped host
  418. computer and all their other computers within one second of true time. 
  419. With a reasonably well behaved computer clock, TIMEGEN can achieve
  420. that with maybe a couple of well spaced calls to the Naval Observatory
  421. each day.
  422.  
  423.  
  424.  
  425.                   SHAREWARE REGISTRATION
  426.    
  427.   If you like TIMEGEN and continue to use it after a reasonable trial
  428. period (14 days), you should pay for it.  The price is $25 for a single copy
  429. for a single machine (with only backup copying).  Special licensing is
  430. required for institutional users who make copies for use on more than one
  431. computer (contact the author at the address shown below).
  432.  
  433.   Your registration will contribute to the program's further development,
  434. and it entitles you to one free upgrade on diskette when available and
  435. advice by telephone (your call) if you run into problems.   The address for
  436. registration and for licensing inquiries is:
  437.  
  438.                      Peter L. Petrakis
  439.               Life Sciences Editorial Services   
  440.                    1236 River Bay Road   
  441.                  Annapolis, Maryland 21401   
  442.    
  443.   Please make your check or money order payable to Peter L. Petrakis and
  444. include your name, address, zip code, and phone number.  Thanks.
  445.  
  446.  
  447.              TIME GENERATOR REGISTRATION FORM
  448.  
  449.   (Institutions using multiple copies of TIMEGEN on multiple computers
  450. should not use this form; instead contact Life Sciences Editorial Services
  451. for site licensing arrangements.)
  452.  
  453.  
  454. To:
  455.              Peter L. Petrakis
  456.              Life Sciences Editorial Services
  457.              1236 River Bay Road
  458.              Annapolis, Maryland 21401
  459.  
  460.  
  461. I enclose payment for registration as a user of TIMEGEN.EXE.
  462.  
  463.  
  464.  
  465.  
  466. YOUR NAME:
  467. ________________________________________________________
  468.  
  469. YOUR
  470. ORGANIZATION:_________________________________________________
  471.  
  472. YOUR ADDRESS:
  473. _____________________________________________________
  474.  
  475.               _____________________________________________________
  476.  
  477. CITY, STATE, ZIP  ____________________________________________
  478.  
  479. YOUR PHONE:   (____) ____ ______
  480.  
  481.  
  482.  
  483. METHOD OF PAYMENT (Check one)
  484.  
  485.     Check ___
  486.     Money Order ___
  487.  
  488. AMOUNT ENCLOSED (the $25 price entitles you to make copies of
  489. TIMEGEN for backup purposes for use on a single machine only)
  490.  
  491.     $25 ___
  492.  
  493.  
  494. YOUR SIGNATURE: ________________________________________
  495. DATE: ____________
  496.    
  497.                RESTRICTIONS AND DISCLAIMER 
  498.    
  499.   TIMEGEN.EXE and this document are copyrighted, with all rights
  500. retained by their author, Peter L. Petrakis, Life Sciences Editorial Services,
  501. 1236 River Bay Road, Annapolis, Maryland 21401.  The program may be
  502. freely distributed provided (1) this document always accompanies it and (2)
  503. neither the program nor this document is altered in any way. 
  504. TIMEGEN.EXE and its documentation are NOT donated to the public
  505. domain, and no one besides their author is allowed to sell, solicit payment
  506. for, or modify them.  Distributors of shareware, freeware, and public
  507. domain programs who charge only a modest disk copy fee to cover
  508. distribution expenses are permitted to distribute these files.  Violation of
  509. these terms is an infringement of copyright under the laws of the United
  510. States and associated international treaties.
  511.  
  512.   Although TIMEGEN.EXE has been extensively tested, Peter L. Petrakis
  513. makes no warranty concerning the program's fitness or safety, and he
  514. accepts no responsibility or liability for any kind of mishap resulting from
  515. its use.
  516.  
  517.   Your use or distribution of the program implies your acceptance of all
  518. these terms.
  519.