Short: V1.8: hardware clock at GMT util with SAS/C link lib Author: pueschel@imsdd.meb.uni-bonn.de Uploader: pueschel imsdd meb uni-bonn de Type: util/time Architecture: m68k-amigaos ClockDaemon 1.8 Features: --------- - Keeps your hardware clock at GMT (for NetBSD users). - Patches battclock.resource so that reads and writes to the hardware clock are transparently adjusted. - Handles daylight savings time. - Does not need ixemul.library. - Sets IXGMTOFFSET and internal time for ixemul.library V 42+. - Detects DST start & end while computer is running. - Optionally runs command when DST begins or ends. - DSTCheck program for use in scripts. - link library for SAS/C to replace broken time functions - NEW: optionally patch locale.library to give correct offset during DST Installation: ------------- Copy ClockDaemon and DSTCheck to C:, and add run >NIL: ClockDaemon (LOCALEPATCH) to your User-Startup, where is a program you want to be executed when daylight savings time begins or ends. Store an appropriate (see timezone.doc) timezone string in ENVARC:TZ. The switch LOCALEPATCH will make ClockDaemon patch the OpenLocale() function in locale.library. When OpenLocale() is called with a NULL argument to get the default locale setting, the field loc_GMTOffset will be set to the correct value. Caution: Some clever programs make a DST correction of their own. This will blow up now, so you have to disable that. ClockDaemon will set the IXGMTOFFSET variable and update the internal offset for ixemul.library V 42 or higher. Do not use ixtimezone ! Reboot and reset your clock to your local time via the Time preferences program. Since version 1.2, ClockDaemon notices the start or end of daylight savings time regardless if your computer is running at that time or not. (If it is not running, the change command will be executed the next time ClockDaemon is started.) ATTENTION: The command you want to have executed must terminate or ClockDaemon will hang ! Example (for Germany): ---------------------- User-Startup: run >NIL: ClockDaemon SetUMSRFCDST ENVARC:TZ: MET-1MEST,M3.5.0,M10.5.0/03 DSTCheck: --------- The DSTCheck command gives you an easy way to check the DST status in CLI scripts. Its return status is WARN (5) during DST, OK (0) otherwise. Example: DSTCheck If Warn Echo "We have DST !" Else Echo "We don't have DST !" Endif time.lib: --------- The original SAS/C functions gmtime, localtime, mktime and time do not work correctly. The supplied link library time.lib contains replacement functions for them. To use them, you can either copy time.lib to lib: and specify it explicitly when linking your programs, or replace the original modules in sc.lib. The script patch_sc.lib does this for you. Programs linked with time.lib work with or without ClockDaemon installed. You are free to distribute or sell your programs containing time.lib. I only require you to add timezone.doc to such a distribution. Legal Stuff: ------------ There is no warranty. ClockDaemon is Freeware. Credits: -------- I borrowed the timezone string description from the RdateTZ package. A big "thank you" to the author. The idea to run a script at DST start/end came from Henning Hucke. Thanks to Hans Verkuil for tips on how ixtimezone works, and for maintaining ixemul.library. Thanks to John Blyth for his feedback, which lead to the addition of LOCALEPATCH. And finally, a big "Thank You !" to Steve, Doug and Jim at SAS. History: -------- Version 1.0: Not released. 1.1: Added ixemul V 42 support. 1.2: Added DSTCHANGECOMMAND. Added detection of DST start/end while computer is on. Added DSTCheck command. 1.3: Restructured the code, fixed some minor bugs. Added link library for SAS/C. 1.4: Added setting of internal offset if ixemul.library is already loaded. Fixed documentation bug; the TZ string for Germany changed in 1996. 1.5: Added LOCALEPATCH. 1.6: The LOCALEPATCH mechanism was unnecessarily complicated, as apparently locale.library is never unloaded. Removed unnecessary patch of OpenLibrary. 1.7: Recompiled with SAS/C 6.57. Fixed a bug with julian dates. Enhanced time.lib to work better when ClockDaemon is not installed. 1.8: Fixed small bug in time.lib and ClockDaemon. Thanks to Walter Haidinger for finding the bug. Bug reports & suggestions: -------------------------- Send bug reports & suggestions to pueschel@imsdd.meb.uni-bonn.de.