RighTime v2.58 Copyright 1991-93, GTBecker Released August 16, 1993 All Rights Reserved Shareware Notice The following files are contained in the evaluation distribution file: RIGHTIME.COM TESTINCR.COM RIGHTIME.TXT (this file) TESTTIME.COM RIGHTLOG.COM VIEWCMOS.COM SETUPRT2.COM WHATSNEW.TXT If any of these files are missing, you do not have a complete evaluation package. A fresh distribution file of the latest version of RighTime and its associated programs and documentation is always available on the Air System Technologies BBS, 214/869-2780 (1200-14400 N81). These commercial program and other files are the copyrighted property of G.T. Becker and Air System Technologies, Inc., of Dallas, Texas, USA. You may use these evaluation programs for up to one month, and you may - and are encouraged to - pass the unmodified evaluation distribution file along to others, but no one may modify, rename or sell the programs or files to anyone under any circumstances (except shareware distributors, who may charge a reasonable distribution fee). Although they will continue to function, the programs will notify you when the evaluation period has elapsed. If you choose to continue to use RighTime you must register your use. Registered RighTime users receive a diskette containing the current version of the registered programs and additional utilities, a printed user manual and license agreement, automatic notification of new releases, and enthusiastic support from the author whenever needed. The registered version of RighTime is functionally identical to the shareware distributed evaluation version, except that it lacks registration reminders, it is smaller in size, it can operate in a non-verbose and silent mode, and it is serial-numbered to the individual or business registrant. To register, fill in the form at the end of this document and send it with US $40 for each machine that is to run RighTime to Air System Technologies, Inc., 14232 Marsh Lane, Suite 339, Dallas, Texas 75234-3899, USA. What is RighTime Version 2.5? RighTime is a resident real time clock correcting program for MS-DOS, PC-DOS and DRDOS running on PC/AT-class machines. It corrects both DOS and CMOS Real Time Clock (RTC) clock rate error as large as 5.5 minutes per day, and it increases the DOS clock resolution from about 0.055 second to 0.01 second. It occupies only about 7K of system RAM and can normally be loaded high. If RighTime is installed as suggested, the system clock will behave as properly and accurately as the system clock of a computer should. RighTime brings exceptional system time-of-day clock performance to the machine with no additional hardware. With RighTime installed, the standard real time clock system becomes an Adaptive Mathematically Compensated Crystal- controlled Oscillator based clock. Under stable conditions, RighTime can produce a system clock that keeps time within 0.5 second per week or better (some users have reported consistent rate accuracy of 0.07 second per week). An error rate of 0.5 second per week is about 0.8 part per million, or more than 100 times better than an unconditioned crystal time base alone, or about 30 times better than a moderately conditioned one like a modern watch of quality. A technical paper about CMOS RTC and DOS clock problems and RighTime's approach to solving them can be found on the BBS (RT2@PTTI.ZIP). RighTime Version 2.5 exhibits many new features, but retains version 1.1 compatibility (except /H). In addition to numerous invisible internal improvements, RighTime Version 2.5 sports the following changes: * True 0.01 second DOS clock resolution: the 55-millisecond barrier is broken! The DOS clock increments in 0.01 second steps while maintaining the standard "tick" rate. [See /TH below.] * File mode correction storage can be directed to either RighTime.COM or to a separate data file (RighTime.COR), which will prevent anti-virus watchdog utilities from flagging RighTime. [/FR, /FM] * Correction storage can be directed to any valid CMOS RAM address that is available in the machine, including extended RTC CMOS and MCA-type (PS/2 and -SL) CMOS RAM. [/R, /RM] * Four levels of function disabling. [/TH, /TD, /TA, /K] *** * New serial port monitoring techniques eliminate problems with data communications. [/M, /MI] *** * Automatic disabling of 0.01 second DOS clock mode while Microsoft Windows in 386 Enhanced mode is resident. * Disabled cool correction and improved warm correction application. [/D, /U, /X] *** * Options are provided that allow learning disabling and ignoring time and date sets. [/L, /I] *** * Learning is now disabled by default for time sets from within Microsoft Windows in 386 Enhanced mode and the time set that follows any time set from within Windows in 386 Enhanced mode. [/LW] *** * Simple but effective security makes unauthorized time sets virtually impossible. [/#] * Automatic Daylight/Standard time change in the USA. [/A] * Fixed offset values may now range from -90.00 to +90.00 seconds. [/O] * Logging of all time-related activity. [/G] * Highlighting of significant data and ANSI color screens. [/Y] * On screen memory-jogging help. [/?] * Silent and defeatable self test. [/Q] * Non-verbose mode (registered version only). [/V] * /W, /C and /O values may be expressed as either integers (hundredthseconds) or as fractional seconds (i.e. /W-1234 = /W-12.34), consistent with a new displayed data format. * RighTime's status report includes duration since last time set, duration since last applied DOS correction, duration since last applied CMOS adjustment and percentage of warm system operation (any /F and extended CMOS /R only). * Intelligent application of warm and cool corrections, weighted observed error and distributed modification of correction values (both warm and cool corrections will be modified based on observed error at time set and percentage of warm system operation) (any /F and extended CMOS /R only). Although the practice remains the ideal, it is no longer necessary to set the clock immediately after booting and just prior to shutting the system down to learn the cool and warm corrections; you may set the time at any time, and RighTime will do its best to adjust the corrections appropriately. * Tools are provided to visualize and verify RighTime's actions. [TestTime, TestIncr, RighTLog, ViewCMOS] *** + An improved TestTime is able to resolve clock error to four decimal places (to tenths of milliseconds), reports the DOS- CMOS offset immediately, and displays the DOS time to hundredths. *** + TestIncr measures and displays the DOS clock resolution and counts time-related system interrupts over a prescribed test period. + RighTLog displays the record of all time-related activity on the system. It identifies the source of each time set and dateset by program name, making hidden time set troubleshooting easy. + ViewCMOS can now display the first 128 bytes of MCA-type CMOS on those machines equipped with it. * SETUPRT2, a full-screen install program, eases first-time installation and startup as well as reinstallation when changing options. * Professional TimeSet v7.1 or later (on August 8, 1993 the current version was 7.21) by Pete Petrakis (Life Sciences Software, Stanwood, Washington USA) can directly control several RighTime functions and provides a RighTime status screen. These two programs were developed in concert and work exceptionally well together. TimeSet uses a modem to call any of five atomic clock time standards (in the USA, Austria, Italy and Sweden) or a secondary local time source (TimeGen) to set the system clock to millisecond accuracy. It is highly recommended. Its shareware evaluation file is available on the Air System Technologies BBS and on BBSs worldwide. What Does RighTime Do? First, here is what RighTime cannot do: - RighTime cannot correct clock boards or computer motherboard clocks that do not emulate the PC/AT CMOS RTC hardware clock and its BIOS support precisely. The large majority of current 80286-, 80386- and 80486-based machines (termed PC/AT-class) are compatible. - RighTime cannot properly correct an unstable clock; most clocks are slow or fast and they are essentially unvarying. If your clock wanders aimlessly or has suddenly changed behavior, your hardware might need repair (perhaps simple battery or CMOS RTC module replacement). *** - RighTime will not run under OS/2. An OS/2 version is in development. Check the BBS for information. RighTime exploits the better qualities of each of the two clocks in the system and improves upon them by doing four fundamental things: 1) RighTime slaves the DOS system clock (which has higher resolution) to the CMOS RTC (which has higher stability). 2) RighTime augments the DOS clock driver routines with its own routines, which provide resolution in excess of 0.01 second. 3) RighTime monitors time set commands (and the equivalent system calls from any program) to learn the CMOS RTC clock error rate. 4) RighTime improves and maintains accuracy by regularly calculating and applying corrections or adjustments to each clock. The DOS clock is normally corrected every four seconds. The CMOS RTC is adjusted as required. RighTime intrinsically sets the CMOS RTC and solves the midnight rollover date error that exists in most DOS/BIOS combinations, eliminating the need for other utility programs or drivers that perform these functions. Unlike DOS alone, the CMOS RTC seconds transition will be properly set by RighTime and the time will be set to 0.01 second resolution, and these qualities will survive through rebooting. If the machine is powered off, the clocks will be appropriately adjusted for the off period at the next boot, and a separate correction is learned and maintained for that cool period. Each time you set the time, RighTime will improve the accuracy of the corrections, which will subsequently improve the accuracy of the clocks. It should be easy to achieve a worst-case error of less than 0.5 second per day (usually quickly improving to less than 0.5 second per week). Numerous options are provided that allow fine tuning the correction process to your system and application. An option is provided which assists in automatic time setting by directing RighTime to notify a batch file when a specified number of days has elapsed since the last time set or if the program's correction capabilities have been exceeded. This feature is available both at boot and when RighTime is resident. Large time changes will not affect the corrections. This permits seasonal time changes; these bi-annual changes can also be automated in the USA. RighTime usually runs fine with Microsoft Windows (although Windows in 386 Enhanced mode lags DOS by a second or two, so the system time should normally not be set from within Windows) and with most task switchers and DOS-based LANs. Knowledge Saves Time - Contraindications Just as with medicine that cures ills, RighTime needs to involve itself in several areas of the operating system to do its work, and there can be side-effects. Side-effects of RighTime are usually minor and easily correctable. While the following list might appear daunting, it is the compilation of all reported problems that users have encountered with RighTime. In all probability none of these items will apply to you, but be aware of the following so you'll know what you can do if you need to. * If your system issues messages that you've never seen before installing RighTime, or mysteriously locks up or outright crashes, you should either increase the STACKS parameters in your CONFIG.SYS file or replace them with STACKS=0,0. There are no steadfast rules, but if you currently have no STACKS statement or if you use STACKS=9,128, first try STACKS=0,0 (unless other software on your system requires an explicit STACK statement; in that case, try STACKS=16,256). Sophisticated installations might need even larger values. * If Microsoft Windows fails to properly load or issues surprising messages while loading, you might need to increase the FILES specification in your CONFIG.SYS file. If you have no FILES statement, add FILES=15 to it. Even if you have plenty of FILES in UMBs, Windows needs a minimum number in conventional RAM. After you make any changes to CONFIG.SYS, reboot the machine. * Some programs (usually games) reprogram the 8254 timer-counter to improve the video screen update rate or to produce sounds. Since the 8254 is part of the DOS clock mechanism, RighTime will normally immediately sense and correct the mode change - and slow the game or sound. This protection can be relaxed without compromising the clock by selectively disabling RighTime [usually /TD, sometimes /TA] for the duration of the affected program and reenabling it afterward. * Programs that bypass the operating system and control the hardware directly can cause odd symptoms. Tape backup utilities seem to be the most common offenders, potentially causing DMA errors with RighTime's /F options. Most of these programs offer an option that uses the DOS and BIOS function calls instead; use it, or disable RighTime [/TA] for the duration of the backup if necessary. *** * Communication sessions can sometimes be disturbed by RighTime. Two options [/M, /MI] yield automatic disabling during communication activity on selected ports. The methods used in this version are new and appear to be very effective. *** * Disk defragmenters (DEFRAG, PCCOMPRESS, SPEEDDISK, DOG, etc.) can produce cross-linked files resulting in loss of data if RighTime is active (with any /F option). DOS is not aware that these utilities are moving files around, so RighTime isn't either. USUALLY, RIGHTIME (WITH ANY /F OPTION) MUST NOT BE RUNNING [/K] WHEN DEFRAGMENTING THE DISK DRIVE ON WHICH IT RESIDES. Late versions of SPEEDDISK will sense that RighTime's files are in use and will not attempt to move them, allowing RighTime to safely continue functioning during the defragmentation. *** * Some screen savers and program schedulers misfire prematurely and some on-screen clocks run fast due to RighTime's high resolution DOS clock mode. Screen savers can also issue unexpected time sets that will disturb RighTime's learning unless ignored [/I-1]. Disabling the 0.01 second DOS clock mode [/TH] usually allows these programs to coexist with RighTime. *** * Berkeley Systems' popular screen saver, After Dark for Windows, usually also installs a DOS screen blanker which loads in AUTOEXEC.BAT. Some users have found that this module, AD-DOS.EXE, locks the system at the moment of a time set when RighTime is running. We suggest that you remove AD-DOS.EXE from the AUTOEXEC.BAT file. *** * RighTime can be run in high memory. Be aware that the program uses several anti-virus and anti-hacking techniques to protect itself. This requires a large (about 80K), but brief, use of memory, so load RighTime early when there is sufficient space; all but the resident portion will be released for subsequent modules. *** * PC Tools' RAMBoost has been reported to cause a RighTime selftest failure, as has SofNet's FaxWorks scheduler if loaded before RighTime. Defeat the selftest [/Q] in these instances. In most cases, a program conflict can be resolved by temporarily disabling RighTime. This can be accomplished manually at the DOS prompt, with a batch file, or via a multiple-command alias in 4DOS or NDOS. RighTime functions can be easily reenabled afterward. Standard Installation *** RighTime is now provided with a simple installation process that will assure successful startup. We strongly suggest that you follow this procedure. After you have some experience with the program you can manipulate options at the command line level if you wish, but even for these changes the supplied installer program, SETUPRT2, is recommended. 4DOS users: SETUPRT2 sometimes fails under 4DOS, yielding an erroneous "Out Of Memory" message. For the installation, change your COMSPEC to a copy of COMMAND.COM, then resume using 4DOS once RighTime is installed. 1) If you are currently running RighTime, kill it (RighTime /K). 2) Make a work directory and get in it, for example: MD \TEMP CD \TEMP 3) Copy the shareware distribution file into the new directory and unzip it. Verify that all of the files listed above are present. 4) Run from a pure DOS prompt (not a shell or DOS session): SETUPRT2 5) SETUPRT2 will allow you to select many options, but you can initially accept the defaults by simply selecting "Install"; you can change them anytime later. 6) When asked to do so, set the time accurately (preferably with TimeSet), and THEN TYPE EXIT to continue the installation process. Your AUTOEXEC.BAT and, if required, CONFIG.SYS files will then be modified, having a line or two added to them. The existing files will be renamed with an .RT2 extension. 7) You will normally be directed to reboot by pressing Ctrl-Alt-Del. 8) You may delete the contents of the work directory. 8) Set the time accurately for a few days, ideally immediately before you shutdown your system for the night and immediately after booting in the morning. If you never shutdown your system, set the time accurately a few times each day, well spaced. You should find that your system clocks rapidly become more accurate. If they do not, check RighTLog for invisible, unexpected time sets (which will confuse RighTime's learning). The name of the program that set the time is identified in the log. You might be surprised to find that some programs - that have no apparent business doing so - set the clock, usually incorrectly and always disturbing RighTime. You will need to consider an option [/I] that can deal with these rogue programs; read on. You will normally not need to proceed beyond this point, but if you have trouble with the standard installation, the following sections discuss RighTime in greater detail. Starting RighTime Part of the RighTime process requires storage of some correction data. The amount of data is small and it must be stored in a place that will survive rebooting and power failures. To use RighTime, first decide where to store the corrections. There are two options: disk file and unused CMOS RAM. In general, try the disk file option first if you can. If you have a hard disk, you can use the disk file or possibly the CMOS RAM option. If you have only floppies the disk file option is impractical, so consider the CMOS RAM option. A diskless machine cannot use the disk option, unless it is equipped with a non-volatile RAM disk which appears to the system as any other disk would. The CMOS RAM option will involve some initial bravado: although only the first 52 bytes of a 64-byte CMOS RAM are defined by the original IBM PC standard (presumably leaving the last 12 bytes available), most modern BIOSs use these 12 bytes for other functions. If you have adopted a user-specified hard disk format, for example, your specification might be stored there. Sometimes the area is used for the power-on password in machines so equipped. Many modern machines contain 128-byte CMOS RAM areas, and others (some PS/2 models and SL-based machines) contain 256 bytes of CMOS RAM. SETUPRT2 will only allow selection of CMOS RAM addresses that allow for the proper storage of RighTime's correction data, but there is no guarantee that the address you select is unused in your machine configuration. You can run ViewCMOS to look at the CMOS RAM contents, but again, there is no guarantee that even a large block of zeros is free and safe to use. Before attempting to use the CMOS RAM option, be forewarned that CMOS RAM contains system setup data that RighTime might inadvertently disturb; be prepared to reset the setup data if the CMOS RAM option is unsuccessful on your system. If this dissuades you or if you are otherwise reluctant, use the disk file option if you can. If you choose the disk file option, RighTime will attempt to write to a disk file (its own program file or a separate data file) from time to time, so write access must be allowed. If the "disk" is actually a non-volatile RAM disk card, the card must remain in the machine if this option is to work properly. If you use the disk file option on a battery powered hard disk laptop, you might want to decrease the update frequency to allow your hard disk to spin down after periods of inactivity to increase the battery life (see the /U option, Command Line Syntax, below). The disk file option causes RighTime to maintain an open handle to a file which will present a problem when running a file-defragmenting utility on the same disk drive that RighTime is updating, but RighTime can be killed during defragmentation and restarted afterwards (see the /K option, Killing, Disabling and Reenabling Resident RighTime, below). RighTime can also be configured with no correction storage, with consequential loss of some of its utility (see No Correction Storage Option, below). If you know how fast or slow your clock appears to run per day, you can optionally speed the learning process of RighTime by suggesting a correction to the program as a signed number in hundredths of seconds - positive for a slow clock, negative for a fast clock. For example, if your clock runs about two minutes fast per day, the suggested correction should be -120.00 (120 seconds). There are actually two corrections that RighTime normally applies, one while the system is running and warm, and another when the system is turned off and cool. If you know the cool correction, you can suggest it also. If you don't know one or either correction, RighTime will determine them anyway; it'll just take a little longer for the corrections to mature to good accuracy. If you need to restart RighTime and it is currently resident and running, you must first kill the resident program (see Disabling and Reenabling Resident RighTime, below). If appropriate, the corrections that RighTime has already learned can be suggested to the new program copy. If you have been using another resident driver or TSR to correct the weaknesses of your clock, remove all references to it from your CONFIG.SYS and AUTOEXEC.BAT files and, once you are confident that RighTime is all it purports to be, remove the other driver or TSR from your system. Setting the Time If you have access to a time standard, use it. For best accuracy, use a telephone service time-setting program such as TimeSet. Alternatively, you can listen to WWV, CHU or another shortwave time signal, or a radio network news broadcast, and be prepared to set your clock when you hear the beep on the minute or hour. Don't use a radio station that is airing a call-in talk show; the audio is usually delayed six to ten seconds on such programs to allow for profanity dumping, and so the beep will be equally late. An all- news format station is probably not delayed. To be certain, call the radio station and ask for engineering; they will know. Local telephone time services are usually poor; don't trust that they are correct. What is important is accuracy. RighTime will monitor each time set occurrence, learning from your adjustments. Whenever you notice or suspect that the indicated DOS system time is insufficiently correct to satisfy you, reset it accurately. You will find that the clocks will become more and more accurate and the need for adjustment will decrease, becoming infrequent; however, you must set the time accurately at least once per month (an option is provided to assist in automating this [/S] (see Errorlevels, below). Allow sufficient time to elapse between time sets so that enough error exists for RighTime to use in its correction calculations; the more time that you allow, the better the correction factors that are determined. Careless time sets will result in poor correction or even wild clock behavior; remember that you are "training" the program, so do it well. If you are eager, four hours will probably be an adequate initial wait; of course, you can use your system as you normally would during this time. Each time the time is set, RighTime will make appropriate adjustments to the cool and warm correction values. The Results After a few days of your diligent time setting, the corrections should settle to fairly constant numbers which will be true indications of the uncorrected performance of your CMOS RTC. Once RighTime is installed, you can display the current corrections by simply running RighTime again at a DOS prompt (no parameters are required). The correction values and other current status will be displayed and a functional self test will normally be performed, verifying that RighTime is currently running properly on your system. When running RighTime, whether at installation or when resident, the program will normally be silent. If RighTime beeps, pay close attention to its report; it is reminding or warning you of an unusual mode, condition or failure. If ANSI.SYS is present and data highlighting is not disabled [/Y0], the warning lines will be highlighted. As long as RighTime is in use and you've been diligent in your adjustments, and the corrections have matured, the CMOS RTC error will not be more than 0.5 second, and the DOS clock will be much more accurate than that. RighTime has limits of one week of inactivity, and one month between time sets, that can be corrected to a maximum of 5 minutes, 27.67 seconds per occasion; beyond that, all bets are off. In that case, unpredictable, and probably incorrect, clock changes can occur, but RighTime will advise you of its difficulty if it can. For example, if your clock runs two minutes slow per day and you don't use the system for three full days, when you boot up you will receive a message warning that the clock needs to be adjusted manually (or automatically; see Errorlevels, below). The subsequent adjustment will not affect the corrections. No Correction Storage Option If you have difficulty with both the CMOS RAM and disk file options or you need or wish to use neither option, RighTime can still correct the clocks for as long as the system runs continuously. What RighTime has learned will be lost when you reboot or power down, and there can be no cool correction. Otherwise, all of the comments above apply. If you suggest a good warm correction and you set the clock after you boot, RighTime will serve well. Killing, Disabling and Reenabling Resident RighTime There will normally be few, if any, occasions that will require you to disable RighTime, but some instances exist that can only be resolved by temporarily removing RighTime from contention. There are four levels of disabling; each level is more restrictive in what RighTime is permitted to do. From least restriction to most, the disabling options are /TH, /TD, /TA, and /K. Once RighTime is resident, it can be disabled by running at a DOS prompt: drv:\path\RighTime /TH [disables 0.01 second DOS clock] or drv:\path\RighTime /TD [disables DOS clock maintenance] or drv:\path\RighTime /TA [disables all functions (including logging)] Resident RighTime can then be reenabled by running: drv:\path\RighTime /E [enables all functions] Programs that defragment or reorganize the hard disk must always be run with no open files. When using RighTime's disk file option [any /F], an open handle is maintained to a file, so BEFORE RUNNING A DISK REORGANIZING UTILITY, RighTime MUST BE KILLED (except with late SPEEDDISK versions). After the utility completes, RighTime can be restarted with the same command line used in the AUTOEXEC.BAT file. However, most defragmenting utilities suggest rebooting afterward; in that case, AUTOEXEC.BAT will restart RighTime. This precaution is not required when using the CMOS RAM option. RighTime can be irreversibly disabled (or "killed") by running: drv:\path\RighTime /K [entire resident program terminated] The /K switch will cause the function of RighTime to terminate, but the memory that was allocated to RighTime will remain allocated and unavailable. If you wish, another copy of RighTime can be started with different options; in that case, a memory map will indicate multiple RighTime allocations, but only one will be active. If it is your intent to permanently remove RighTime from your system, you can do so by killing the resident program and removing or REMing the RighTime invocation in your AUTOEXEC.BAT. Rebooting is not immediately necessary. *** RighTime provides other methods to temporarily disable its function in instances where the program interferes with serial communication. An option will continually test for the presence of Data Carrier Detect (DCD) from each specified serial port, or communication activity can be sensed by counting IRQ interrupts. Option /Mport looks for DCD. When DCD is active, RighTime will be disabled similar to /TA. Normal function will resume when DCD becomes inactive. Multiple ports can be specified; if any of the specified ports indicates DCD active, RighTime will be disabled. This option will work with Microsoft Windows, but 386-Enhanced mode users will need to prevent a false contention report by clicking on Control Panel, 386-Enhanced, then select Never Warn for each affected port, then OK. To activate DCD monitoring, use the /M switch as follows: drv:\path\RighTime /M1 [for COM1] or drv:\path\RighTime /M2 [for COM2] or drv:\path\RighTime /M3 [for COM3] or drv:\path\RighTime /M4 [for COM4] Several ports can be simultaneously monitored, for example: drv:\path\RighTime /M1 /M2 DCD monitoring can be disabled with drv:\path\RighTime /M0 For DCD monitoring to function properly, the active modem control string must contain &C1 for Hayes-compatible modems. This will cause DCD to properly reflect the presence of carrier. If DCD is stuck on and a /M switch specifies that port, RighTime will never be permitted to function. If you run RighTime to display a status report, the current DCD state will be reported. It should normally report "... DCD monitoring is enabled", not "... DCD active; RighTime function disabled". *** Option /MIport determines serial port activity by counting IRQ3 and/or IRQ4 interrupts over a short period of time (approximately 0.5 second), regardless of the DCD state. If activity is indicated, RighTime will be disabled until activity ceases. This method will not work with Microsoft Windows in 386 Enhanced mode. To activate IRQ monitoring, use the /MI switch as follows: drv:\path\RighTime /MI1 [for COM1/IRQ4] or drv:\path\RighTime /MI2 [for COM2/IRQ3] or drv:\path\RighTime /MI3 [for COM3/IRQ4] or drv:\path\RighTime /MI4 [for COM4/IRQ3] Several ports can be simultaneously monitored, for example: drv:\path\RighTime /MI1 /MI2 IRQ monitoring can be disabled with drv:\path\RighTime /M0 The COM port, IRQ and I/O address assignments are standard: Port IRQ Address COM1 IRQ4 3F8 COM2 IRQ3 2F8 COM3 IRQ4 3E8 COM4 IRQ3 2E8 Specify the port number, not the IRQ. For example, IRQ3 will be monitored if either /MI2 or /MI4 is specified. Option /M and /MI should not be mixed. If they are, the IRQ method will be applied to all of the specified ports. For example, /M1/MI2 is equivalent to /MI1/MI2. Normally, RighTime learns from each time set. Some programs invisibly set the clock - in most cases for no apparently good reason - which disturbs RighTime's learning. If RighTime is run with logging enabled [/G], all time and date sets will be logged, and each log entry, displayed by running RighTLog, identifies the program name of the source of the time or date set. Once the sources of the offending time or date sets are identified, RighTime can be selectively controlled to ignore those errant sets. There are four approaches that work equally well, although the last of the four might be the easiest. 1) As when temporarily disabling RighTime in the examples above, the offending program can be preceded by a RighTime command which will cause the time sets to be ignored as if the program never issued them. If the program always issues a pair of sets, one for the date and one for the time, RighTime can be directed to ignore the following two sets with drv:\path\RighTime /I2 [ignore next two sets] OffendingProgramHere If the program issues only a time set, it can be ignored with drv:\path\RighTime /I1 [ignore following set] OffendingProgramHere In each case, once the specified number of sets to be ignored has been issued by the offending program, RighTime will resume normal function, accepting and processing time and date sets. If there are several offending programs, each will need to be treated similarly. 2) Another method, useful if the offending program issues a variable number of sets, is to precede the program with a RighTime command which causes all time and date sets to be ignored until further notice. The program can then be followed by a Rightime command which discontinues ignoring time and date sets. A small batch file might look like drv:\path\RighTime /I-1 [ignore all sets] OffendingProgramHere drv:\path\RighTime /I0 [resume allowing sets] 3) A logical extension of that method is to issue the /I-1 in the AUTOEXEC.BAT invocation of RighTime. This method (and the next one) will deal with time sets that are produced by a resident module like a screen saver. Including /I-1 in the AUTOEXEC.BAT invocation of RighTime will cause all time and date sets to be ignored, regardless of the source - even the DOS prompt TIME and DATE commands - until otherwise directed. Legitimate time sets - like from TimeSet - can be permitted by surrounding the TimeSet invocation with the inverse of the commands above, i.e. drv:\path\RighTime /I0 [allow sets] TimeSet drv:\path\RighTime /I-1 [resume ignoring all sets] TimeSet v7.10 or later, however, provides for this ability through its RighTime Control Panel. No additional RighTime commands are required, but you need to remember to use the RighTime Control Panel each time you use TimeSet to set the time. *** 4) If you will normally be using only one program to set the time and date, a special form of the /I switch will cause all time and date sets except those from the specified program to be ignored; time or date sets from the specified program will be allowed. For example, if you use TimeSet and issue a /I"TimeSet" in the AUTOEXEC.BAT invocation of RighTime, only TimeSet will be allowed to set the time or date; all other sets will be ignored as if /I-1 had been issued. If you want to allow the DOS prompt TIME and DATE commands, you must specify /I"COMMAND" since COMMAND.COM is the setting program (if you use 4DOS, use /I"4DOS"). If a network workstation is to be set to a server's time, the connection processor should be named (under LANtastic, NET CLOCK \\SERVERNAME will set the date and time to those of SERVER; if RighTime /I"NET" is invoked, no other time sets will be allowed). *** When combined with the /# switch, these ignore options cannot be changed by subsequent RighTime executions. This makes it possible to prevent unauthorized time or date changes. If, for example, AUTOEXEC.BAT invokes RighTime .../I"NET"/#, logs in and sets the time to a server, the workstation user will be unable to change the date and time - unless he uses extraordinary means like renaming a copy of COMMAND.COM to NET.COM to use its TIME or DATE command. If absolute security is required, a second RighTime line, RighTime /I-1/#, should be issued after the time and date is set in AUTOEXEC.BAT; in this case, the first RighTime invocation must not express /#, since that would disallow the second RighTime command line. Learning can also be disabled. This allows for time sets that will not affect the current corrections. The corrections are essentially fixed while learning is disabled. Learning can be disabled in the AUTOEXEC.BAT RighTime invocation and it can be temporarily controlled by TimeSet v7.10 or later. It cannot be disabled at any other time. To disable learning, add the /L0 switch to the AUTOEXEC.BAT RighTime invocation. In the registered version only, an additional option is allowed: drv:\path\RighTime /V0 [non-verbose mode produces no screen output (including errors), is completely silent, and disables self-testing] TestTime Included with RighTime is a program tool that can provide some interesting insight into the relationship of the clocks in your system and the function of RighTime. TestTime takes no command line parameters. It will determine and express whether or not RighTime is running in the system, tests and reports on some critical modes, and it provides a continuous single line display of the clock system status. The status line is straightforward: CMOS=date:hh:mm:ss DOS=date:hh:mm:ss.hh !Appl=+0.00 Meas=+00.0000 where: *** CMOS is the CMOS RTC clock data. An indicator following the CMOS seconds data will flash each second if the CMOS RTC interrupts are normal. DOS is the DOS system clock data, including hundredths. The hundredths digit might appear to be less than a blur due to your video vertical scan rate. It should be possible to see the difference between 0.01 second DOS clock mode and the standard 0.055 second mode [/TH]. Appl is the current correction being applied to the DOS clock in hundredths, if RighTime is resident. The exclamation mark (!) before it indicates the moment that the DOS clock is corrected. This normally occurs every four seconds, but can be skipped occasionally if internal resources don't allow it. Meas is the signed time difference between the CMOS RTC and DOS clock in seconds, resolved to four decimal places (tenths of milliseconds). A positive difference indicates that the DOS clock leads the CMOS RTC (it displays a higher, later, advanced time). Under normal conditions, this value should be well within a few milliseconds of the "Appl" value; how close it will be will depend upon the machine architecture and - to a lesser extent - on machine speed. It is usually possible to directly view the clock drift at this resolution; the difference might increase for awhile, then suddenly revert back to a value close to the "Appl" value each time the DOS clock is corrected. You can use TestTime to learn much about the behavior of the two clocks in your system. Try running it without RighTime installed and notice that the DOS clock is never the same as the CMOS RTC. Set the time and run TestTime again. If your DOS sets the CMOS RTC, check to see if the seconds are synchronized, which is indicated by a Meas value of essentially zero. They probably are not. Run TestTime some time later and see if the relationship between the clocks has changed; there's a good chance that it will have. Which, if either, is correct? Notice also that the Meas value flops around several hundredths of a second; this is due to the 0.055 second standard DOS clock resolution. Try these things with RighTime installed and see the difference for yourself. If RighTime is doing its job, you should see that Appl and Meas are essentially the same value - the former is the cause, and the latter is the effect. TestIncr *** TestIncr measures and displays the difference between one unique DOS clock time and the next. With RighTime running normally, this value should always be 0.01 second. Without Rightime running or when the 0.01 DOS clock mode is disabled [/TD or /TH], the value will average about 0.0549 second. TestIncr also counts interrupts 8, 1Ch, 4Ah and 70h, and it displays the difference in the DOS clock tick count after the test period. The test will normally run for five seconds, but this can be changed with a command-line parameter; the display can also be blanked to help avoid false results on slower machines. For example, TestIncr 15 Blanked will run the test for 15 seconds without a real time display. ViewCMOS ViewCMOS displays the content of the CMOS RAM. It can be useful to the adventurous RighTime user who is searching for an available area in which to store the corrections. Be warned once again, though, that it is not easy to identify such a space. Even if many zeros appear to suggest that an area is unused, remember that zero is a perfectly valid number that might be significant to the BIOS, and that, even if some space is available, the entire CMOS RAM might be checksummed. A bad checksum will result from any changes that are not brought about by the BIOS itself, so the next boot might fail, forcing you into Setup. On systems that contain additional CMOS RAM that is addressed like PS/2 MCA CMOS (the 386SL, for example), its presence is indicated. The full-screen display can be switched from conventional CMOS RAM to the MCA-type CMOS RAM contents. A message will announce that there is no MCA CMOS available if that is the case; this is not normally an error message but if you expect that your machine should have MCA-type CMOS RAM available this message could indicate a problem with your machine or its setup. RighTLog If RighTime is run with logging enabled [/G], file RighTime.Log will be present in the directory from which RighTime is run. RighTLog will display this binary file. Each time-related activity will be logged. The most important of the log's indications is the source of each time and date set. If a time or date set is present whose source you do not recognize, it is likely that the time is being set by a program that has no business doing so. Some program names might contain non-displayable characters which RighTLog replaces with an underscore; these programs are more difficult to identify, but are often resident modules like screen savers. These time and date sets will disturb RighTime's learning and can compromise the accuracy of the system clocks. As discussed above, these errant time and date sets must be ignored with RighTime's /I switch. Each time set log entry also notes the percentage of time since the last time set that the system was warm. If this value is much smaller than you think it should be, RighTime might not have been active when you thought it should have been. The most common cause of this is using a /M switch that monitors a communication port whose DCD is stuck active. You might need to make &C1 a default for your Hayes-compatible modem by doing the following: from within a communications program (ProComm, Telix, etc.), Type ATZ and press Enter [you should get an OK] Type AT&C1&W and press Enter [you should get an OK] This will initialize your modem to the required DCD mode at power up and, unless changed, each time ATZ is sent to the modem. Communication programs can change it, though; if you continue to have this problem, you'll need to do some more study. /GA will also log each CMOS RTC adjustment. These entries can become annoyingly numerous if the warm correction value is large. /GA is not normally required. RighTLog is intended to produce a screen display. If you try to redirect the output to a printer, you will get unexpected results. RighTLog writes to the screen in either bottom-to-top or top-to-bottom order, so the printout could be backwards. Microsoft Windows *** Microsoft Windows opens a number of files when it loads. If the FILES specification is CONFIG.SYS is too small, Windows will issue a misleading error message like "Incorrect DOS version" or something similar. Since RighTime also opens files and might keep some open continuously, the FILES specification that has always worked for you might no longer. Increasing the FILES parameter (in CONFIG.SYS) by five and rebooting will cure this problem. When Windows runs in 386 Enhanced mode, Microsoft acknowledges that its clock is usually a second or two behind the DOS clock. This is due to the multitasking mechanism that Windows uses and is unavoidable. Attempts to accurately set the system clock from within Windows in 386 Enhanced mode will also prove frustrating. This is true even when running a program like TimeSet, either full screen or in a DOS window. For the same reason, RighTime's 0.01 DOS clock mode will produce odd results when a program asks for the time from within Windows. RighTime now automatically senses the presence of Windows in 386 Enhanced mode and disables 0.01 DOS clock mode while this is true. RighTime also normally will not learn from time sets that are issued while in Windows 386 Enhanced mode, nor from the first time set after any time set that is issued from within Windows in 386 Enhanced mode. This prevents erroneous correction values from resulting from the false error that Windows produces. If you wish, you can defeat this protection with a switch (/LW) in the AUTOEXEC.BAT RighTime invocation; if this switch is used, all time sets - in Windows or not - will be eligible for learning, but the learned correction values and the resulting clock correction will likely be poor. RighTime's /MIport switch will not work with Windows in 386 Enhanced mode. The /Mport method works fine, but Windows might erroneously report that a communications port is in contention when a /Mport switch is used; this can be avoided by clicking on Control Panel, then 386-Enhanced, selecting the Never Warn button for each affected port, then OK. Command Line Syntax RighTime must be executed in the AUTOEXEC.BAT (or a batch file called by it) so that it becomes a resident extension of DOS. Most of the 29 options available can be expressed at this initial resident invocation. RighTime can also be run as a transient program at the DOS prompt to change modes or to report on its current status. A smaller number of options are effective in the transient execution. Each option listed below indicates when - resident or transient or both - it can be used. The options are not case sensitive (either /f or /F will work) and space between options is not required. There must be no space between an option switch and its associated parameter. *** RighTime [/F[M|R]|/R[[M]n]|/N] [/Un] [/W[n]] [/C[n]] [/Dn] [/L[0|W]] [/In] [/G[A]] [/K|/T[H|D|A]|/E] [/M[I]n] [/A] [/Sn] [/Yn] [/On] [/Xn] [/Hn] [/Pn] [/Q] [/V0] Storage: /F=File[coM|coR] /R=cmosRam[[Mca]addr] /N=None /Umin=Update Correction: /W[Warm] /C[Cool] /Dmin=warmupDelay /L[0|Win]=Learn State: /Inum|"name"=Ignore /K=Kill /T=Tempdisable[Hund|Dos|All] /E=Enable Other: /M[I]port=coMport /A=autoseAsonchange /Sdays=autotimeSet /G=log[All] /Ohunds=Offset /Xhours=eXtrapweight /V0=notVerbose /Ycolor=forceansi.Sys /Hbytes=stacklengtH /Pint=interruPt /Q=Quiet,noselftest where: /A Automatic Daylight/Standard time change. Implements the American standard biannual one hour adjustments at 0200 local time on the first April and the last October Sundays whether the machine is running or not. If RighTime is running, there will be no detrimental effects caused by the time change. If the machine is not running, the time change will shift the time-since-last-time- set by one hour which will, in turn, have an effect upon the next time set's learning. The error will normally be small and will diminish with subsequent time sets. The Dallas Semiconductor DS1287 and DS12887 and Motorola's MCCS146818B1M properly implement the time change rule as do most modern brand name chipset-based machines, but many machines are supplied with the Motorola MC146818P or its equivalent even today. Although they might have been manufactured as late as mid-1991, these parts will misbehave in April, advancing the clock on the last Sunday (which was the convention prior to 1986). Some modern chipset-based machines will not change at all. [Applicable at resident invocation only.] /Cn Sets the initial cool correction rate in seconds per day (default 0, maximum +327.67 or -327.68). [Resident only] /Dn Changes the cool adjust period allowance (after boot) from the 30 minute default. The valid range is 0 to 60. Consider this option if your system exhibits a large difference in warm and cool corrections and cabinet temperature is suspect, or if you need to disable cool correction. /D0 Disabled cool correction. Applies the warm correction value at all times and learns only a warm correction value from observed error. This is useful to users who never shut down their systems or who switch to and from other operating systems that cannot run RighTime. [Resident only] /E Reenables all temporarily disabled RighTime functions. If /TA has been in effect for less than the maximum period allowed (this duration depends on the warm correction value and is displayed when /TA is invoked) the clocks will be properly adjusted to correct for the disabled period. [Transient only] /F (or /FM) Directs RighTime to store corrections in and retrieve corrections from its own program file. /FR Directs RighTime to store correction factors in RIGHTIME.COR, a data file that will be created in RighTime's directory. [Resident only] /G Activity logging. Creates and maintains a comprehensive file of all user and program time-related activities. It produces a binary file, RighTime.Log, which is displayable with program RighTLog. This is an informative and valuable diagnostic tool. /GA Includes routine one-second CMOS clock adjustments. On a machine whose warm correction is large, these will be frequent and will clutter the log. [Resident only] /Hn Internal stack length. The default is 160 bytes; valid range is 64 to 1024 bytes. Since RighTime is an operating system extension, its stacks might be used by other programs for brief periods. RighTime reports on current internal stack usage. Following a system crash, when RighTime is restarted it will report on the stack usage prior to the crash (/F and extended CMOS /R, only). If the crash was due to insufficient stack space, this parameter value must be increased. There is no relationship between this option and the STACKS command in Config.Sys. [The /H switch of RighTime version 1.1 (for DR DOS 5.0) is no longer available, but a similar effect can be achieved by using /O-3.] [Resident only] *** /In Ignore time and date sets, semi-permanently (/I-1, restored via /I0), for a specific count (e.g. /I2), or from all but a single specified program (e.g. /I"TimeSet") to prevent the spurious time and date sets of several utilities, screen savers, games and other facilities from confusing RighTime's learning and to allow time comparison without setting. When used with /#, system time sets can be altogether disallowed or restricted to a specific source. /#/I"NET", for example, would assure that the time cannot be set from any source other than NET. The workstation system time could be set no other way, assuring that the time could be not falsely set. See /#. [Resident or transient] /K Terminates (kills) RighTime function. The memory that is occupied by RighTime remains allocated and unavailable. [Transient only] *** /Ln Controls learning. /L0 RighTime ignores errors at any time set and applies fixed corrections at all times. /LW All time sets will be eligible for learning whether issued from within Microsoft Windows or not. [Resident only] *** /Mn Directs RighTime to suspend all functions (except time and date set and read processes) while the specified communications port indicates that DCD (Carrier Detect) is active. n may be any of 1 through 4, corresponding to COM1 through COM4. This option prevents RighTime from potentially interfering with communications functions. Normal function will resume when communications activity ceases. PROPER DCD CONTROL REQUIRES THAT &C1 BE PART OF THE ACTIVE HAYES-COMPATIBLE MODEM CONTROL STRING. Several /M switches may be specified; for example, a system with both COM1 and COM2 serial ports monitored would have /M1 /M2 specified in RighTime's invocation. /M0 disables DCD monitoring until the next /M invocation. Microsoft Windows might erroneously report that a communications port is in contention when a /M switch is used; this can be avoided by clicking on Control Panel, then 386- Enhanced, selecting the Never Warn button for each affected port, then OK. *** /MIn will count IRQ activity rather than watch DCD level. If the IRQ that corresponds to the specified COM port is active (determined by a non-zero count over a 0.5 second period), RighTime functions will be suspended as above. Normal function will resume after a similar period of no IRQ activity. The /MI method will not work when communicating from within Microsoft Windows. [Resident or transient] /N Disables correction storage. Learned corrections will be lost at shutdown and there will be no cool correction possible. [Resident only] /On Offset allows DOS clock trim in seconds. Default is 0; the valid range is -90.00 to +90.00. This can be used to anticipate relay and contactor actuation delays and motor start times in process control system applications; [Resident only] *** /Pn Interrupt monitoring for use in special applications. If the specified interrupt (expressed in decimal) is active (as in /MIn, above), RighTime functions will be disabled until interrupt activity ceases. /P0 disables interrupt monitoring until the next /P invocation. [Resident or transient] /Q Defeats self testing and quiets minor status messages. [Resident or transient] /Rn Directs RighTime to store corrections in CMOS RAM. /Raddr directs RighTime to store corrections in CMOS RAM. The default address is 63, but it is increasingly unlikely that this will be a usable address; the address can range to 127. The specified location is that of the last of 12 bytes for the default address, or the last of 22 bytes for any other location. Using the default will not provide full features and is maintained for compatibility with earlier RighTime versions. This option is potentially harmful, since a careless value might allow RighTime to overwrite setup data. Inadvertently changing a hard disk type, for example, can lead to sadness. Be careful. /RMaddr will place the corrections in MCA-type CMOS RAM. There is no default: an address must be specified. The specified location is that of the last of 22 bytes. The valid address range is 22 to 127 for 82360SL-type CMOS RAM and 274 to 2047 for PS/2 MCA-type CMOS RAM. [Resident only] /Sn Changes the period that must elapse since the last time set before RighTime will set the corresponding program termination code. The termination code can be tested with the IF ERRORLEVEL command in a batch file. If this switch is not expressed, the default period is 28 days. If more than the specified period has elapsed since the last time set, RighTime will terminate with an ERRORLEVEL of 1. [Resident or transient] /T Temporarily disables RighTime functions. /TH disables 0.01 second DOS clock maintenance. /TD or /T disables DOS clock maintenance. CMOS clock maintenance continues. This mode can persist indefinitely. /TA disables all RighTime functions (including logging) and reports the maximum allowable disabled duration. If the disabled period is expected to exceed this duration, use /K instead, then restart RighTime as in the AUTOEXEC.BAT invocation with /D0 to force warm correction. These disabled modes can be reenabled with /E. [Resident or transient] /Un Changes the CMOS RAM or disk file update period from the two minute default. The valid range is 2 to 60, and the value must be even. If you think the default is unnecessarily frequent, you can decrease it by increasing this value. Remember that this is part of the cool correction process, and less frequency might affect correction accuracy in severe situations. [Resident only] /V0 Non-verbose. No screen output will be generated (including error messages). This option is available to registered users only. [Resident or transient] /Wn Sets the initial warm correction rate in seconds per day (default 0, maximum +327.67 or -327.68) [Resident only] /Xn Sets the error extrapolation weighting threshold. This can desensitize RighTime's learning by decreasing the significance of the observed error from any time set whose previous time set was less than n hours ago by a linear factor (e.g. for the 4-hour default, the observed error from the second of two time sets that are one hour apart is considered only 0.25 significant), range 1 to 72 hours. [Resident only] /Yn Forces data highlighting if a non-standard ANSI.SYS is undetectable or if colors other than the white-on-black default are desired. n is normally a two-digit value whose first digit represents the background color, while the second digit determines the foreground color. Standard ANSI color numbers are expected: 0=Black 4=Blue 1=Red 5=Magenta 2=Green 6=Cyan 3=Yellow 7=White White-on-red, for example, results from /Y17. To force the default on a non-standard ANSI driver, use /Y07 or simply /Y7. /Y0 Automatic significant data highlighting (if ANSI.SYS is present) is defeated with /Y0. To produce a text file of RighTime's report without ANSI sequences, use /Y0, redirected to disk. [Resident or transient] *** /# Lock RighTime command line interface. Placed on the AUTOEXEC.BAT invocation, this switch will prevent any transient RighTime execution from having effect. Although RighTime command lines will continue to be checked for validity, no action will be taken on any command, making it impossible to change RighTime's mode. If /I-1 is also used in the AUTOEXEC.BAT, it will normally not be possible for the system time or date to be changed except via the system BIOS setup screen. See /I. [Resident or transient] /? On screen help memory jogger. This is automatically produced if the command line contains a syntax error. [Transient only] A sophisticated AUTOEXEC.BAT invocation of RighTime might be: C:\RT2\RighTime /G /FR /D0 /U20 /S7 /A /I"TimeSet" > C:\RT2\RIGHTIME.RPT IF ERRORLEVEL 255 ECHO "** Trouble with RighTime load **" IF ERRORLEVEL 1 TIMESET [in automatic configuration] . . . TYPE C:\RT2\RIGHTIME.RPT *** IF you have SHARE loaded, this TYPE statement might yield an "Access denied" error. This message results from a COMMAND.COM bug which leaves RIGHTIME.RPT open after RighTime's startup. If you experience this, do not redirect the first invocation to a file (you may redirect to NUL); instead, a second RighTime invocation with no switches (except perhaps /Y), placed after the IF ERRORLEVEL commands, can be redirected to a file. Errorlevels RighTime provides four unique termination ERRORLEVELs. The ERRORLEVEL value can be tested in a batch file to guide subsequent operations. Code value Indication 0 Installed normally, cool correction within range, last time set within specified elapsed period. 1 Installed, cool correction within range, but more than the specified period has elapsed since a time set. 2 Installed, but cool correction was out of range (the system has been inactive too long), so a time set is externally required. 255 Not installed due to syntax error, insufficient memory, incompatible hardware, etc. These codes can be tested in a batch file with the IF ERRORLEVEL command. For example, if the ERRORLEVEL value code is 1, then more than 28 days have elapsed since the last time set (this duration can be changed with the /S option). It would be wise to have a NIST telephone service time setting program such as TimeSet automatically set the time in this situation to prevent RighTime from exceeding its one month limit, or you could cause execution of the system DATE and TIME commands to urge the user to set them manually. If You Have Trouble Please note the symptoms and circumstances as thoroughly as is reasonably possible and contact Tom Becker Air System Technologies, Inc. 14232 Marsh Lane, Suite 339 Dallas, Texas 75234-3899 USA BBS: 214/869-2780 Fax: 214/869-1166 CompuServe: 76436,3210 Telephone: 214/402-9660 RighTime Software License Agreement When you register, this will be the agreement between you (the user) and Air System Technologies to which both parties are bound upon the payment and acceptance of the license fee, which is part of the registration fee for RighTime and its associated programs. Grant of License In consideration of the payment of each license fee by the user to Air System Technologies, Air System Technologies will license to the user a nonexclusive right to use one copy of each of the software programs in the RighTime package on one computer at a time. The license is expressly for program use only, per the terms of the license. No other rights are implied. Ownership of Software Air System Technologies is the owner of the software programs and holds full title to them. The user may own the physical media on which the software programs are recorded, including the original disk which is provided by Air System Technologies to the user, but the user does not own the software programs nor any copy of the software programs. Copies The software programs and the documentation are copyrighted and therefore may not be copied without permission. Permission is granted to the licensed user to make copies of the software programs and the documentation as required in the conventional course of computer system data backup. Permission is granted to copy the shareware distribution file in its complete, unmodified form. No other permission to copy is granted. Use and Transfer The Grant of License applies only to one copy of each of the software programs. Simultaneously functional resident copies of the software programs each require licensing. You may not transfer any copy (except the shareware evaluation distribution file) of the software programs to a computer which is not under your control, nor may you rent, lease, sell or otherwise assign control of the software programs to anyone without the consent of Air System Technologies. Termination The license is in effect until it is terminated. When the license is terminated, the user's rights that are granted by the license are revoked. The license is automatically terminated without notice upon violation of any of its terms. Disclaimer of Warranty No warranty of performance or suitability is expressed or implied. Every effort has been made to make the software programs deliver as the documentation describes, but the correctness for your application or environment cannot be assured. Air System Technologies cannot assume responsibility for the failure of the software programs, nor for any consequence of their use. RighTime Use Registration Form RighTime Evaluation Version 2.58 Fill out this form, enclose the required funds and mail to: Air System Technologies, Inc. 14232 Marsh Lane, Suite 339 Dallas, Texas 75234-3899 USA I would like to register the use of RighTime v2.58. Name: ________________________________________________________________ Business name: _______________________________________________________ Address: _____________________________________________________________ _____________________________________________________________ City:______________________________ State:_________ Zip: _____________ Telephone:_________________________ Where did you get RighTime? __________________________________________ Registration is required for each copy of RighTime that is simultaneously machine resident. The registration fee is US$ 40.00 each up to 10 copies. Call for larger quantity pricing. How many copies of the RighTime package do you want?_______________________ On what media? 5.25"/1.2MB______ 3.5"/1.44MB______ Total enclosed: US$____________ Make your check or money order payable to Air System Technologies. Thank You!