TIMESET 7.21 June 13, 1992 TimeSet 7.21 is a maintenance version correcting a flaw in Version 7.20 that prevented it from detecting nonstandard serial port configurations such as an unusual port address or IRQ number. This made it impossible for anyone not using a standard address or IRQ to detect connection with one of the atomic time sources. The flaw caused no problem for users whose computers have standard serial port configurations. There is good reason, however, for all users of version 7.20 to replace it with 7.21, namely that the precision and accuracy of time readings and settings have once again been improved significantly. With Tom Becker's RighTime 2.54 installed, trained for optimal clock drift correction and providing .01-sec resolution to the DOS clock, line delay calls made in quick succession to time services providing line delay measurement -- the NIST (Boulder), USNO (Washington), Tom's TimeGen service (Miami), and two European services (Sweden and Austria) -- consistently agree within .01 second and very often agree exactly. Pete Petrakis TIMESET (TM) Version 7.20 A program to set computers to the world's most accurate clocks Copyright 1987-1993, Life Sciences Software 8925 271st N.W., Suite 112 Box 1560 Stanwood, Washington 98292 360-387-9788 "TIMESET" is a trademark of Life Sciences Software (TM) FEATURES OF TIMESET 7.20 TimeSet has been evolving steadily ever since the first version was released in the summer of 1987. That version and several subsequent ones could only set a computer's clock from the U.S. Naval Observatory (USNO) in Washington, D.C. Version 6.00, released in 1990, added ability to use telephone time signals from the National Institute of Standards and Technology (NIST) in Boulder, Colorado, making it the first program of its kind able to address more than one atomic time service. This made it possible for computer users in the eastern and western United States to keep down long distance bills by choosing the time service closest to them. Version 7.20 continues that evolution with a number of new features and supporting utilities: o TimeSet can now access five atomic clock-based telephone time services on two continents: the USNO and the NIST in the United States, as before, and atomic time services in Sweden (Swedish National Time Service), Austria (Technical University of Graz), and Italy (National Electrotechnical Institute). People in European countries who want to set their computers to an atomic clock no longer need to make a trans-Atlantic phone call. In addition, to these formal services, TimeSet 7.20 can access any number of services that use TimeGen, a companion program in this package that generates time data strings in Naval Observatory format. o TimeSet 7.20 is designed to interact closely with versions 2.53 and 2.54 (or later) of RighTime (tm), the excellent memory-resident regulator for computer clocks developed by Tom Becker of The RighTime Company, Miami. RighTime learns the drift rate in the computer's clock and continuously applies a correction to compensate for it, and it refines the correction each time the computer clock is set. A computer with RighTime installed and trained can maintain system clock accuracy within a second or even a fraction of a second for at least a week. Furthermore, versions of RighTime later than 2.53 provide true 0.01-sec resolution in the DOS clock, in contrast to the normal 0.055-sec resolution. This allows greater accuracy in PC clocksetting than ever before, indeed the maximum accuracy that can be obtained with a computer clock. Life Sciences Software and The RighTime Company cooperated closely during the development of TimeSet 7.20 and RighTime 2.5+, with the result that TimeSet can access several RighTime functions directly. o In addition to the ability to address five official atomic clock time sources on two continents, users of TimeSet 7.20 can get time from Life Science Software's program TimeGen (tm) version 3.1. TimeGen, part of the TimeSet 7.20 distribution package, is a program that generates time data strings for Universal Time using the Naval Observatory's format. Its purpose is to allow one computer in a local system to get accurate time from an official service, then share it by telephone with many other computers in the local system, in effect making the TimeGen-equipped computer a "substation" of an official atomic time service. o TimeSet 7.20 is accompanied by a utility called AutoDial, which can be installed memory resident to trigger TimeSet to call a specified time service at a particular time every day. Also included in the TimeSet 7.20 package is the IF2DAY.COM utility by Gary Miller, which can be used to initiate a call by TimeSet during system bootup on a specific day of the week or month. o Another new feature in TimeSet 7.20 is optional automatic reconfiguration when the time season changes between daylight savings time and standard time, plus ability to calculate the dates when those season changes will occur during the current year. Unlike Version 7.10, which offered automatic season reconfiguration only for users in North America, TimeSet 7.20 also offers this feature for users following the time season rules of Europe and the British Isles. o TimeSet 7.20 allows custom serial port configuration, making it usable with serial ports up to COM8 and nonstandard IRQs and port addresses. o Also in response to many requests, TimeSet is now able to save data on your computer clock to a disk file each time you call a time service, allowing clock drift in the computer to be analyzed. It also produces error level codes for use by the DOS ErrorLevel command in batch files. SHAREWARE NOTICE TimeSet is a copyrighted commercial program. It is not free nor is it in the public domain. It is a shareware program, which means you may obtain it from a computer bulletin board or other source and try it out before paying for it. You are expected to pay for the program and become a registered user if you continue using it after a trial period of two weeks. Life Sciences Software retains all rights to TimeSet, its associated programs, and their names, which are trademarked. Sale of these programs by others is prohibited. However, firms that specialize in the distribution of shareware programs and charge only for that service are permitted to include the TimeSet package in their libraries, provided they notify customers that it is shareware and that they are expected to register shareware programs and send payment to the authors of those programs if they continue to use them. If you register and pay for TimeSet you get the following benefits: (1) technical support; (2) a printed and bound illustrated manual; (3) an evaluation copy of The RighTime Company's RighTime program; (4) a discount on the next version of TimeSet when it becomes available. Two procedures are available for registration: 1. You can fill out the registration form at the end of this document and mail it to us with a check or money order. The cost is $40.00 U.S. if you are not now a registered user of a previous version of TimeSet. If you are already a registered user, the following price schedule applies for each copy of TimeSet 7.20: o TimeSet version 6.00A ordered between November 1, 1992 and February 15, 1993, but not yet shipped -- $35.00 (the same price as the version you expected to get). o Registered, paid for, and received a previous version between January 1, 1992 and October 30, 1992 -- $20.00 (half-price). o Registered, paid for, and received a previous version before January 1, 1992 -- $25.00 (37.5% off). 2. Alternatively, you can use the accompanying program TsReg72.EXE to upload your name, address, and other information to our toll-free electronic mailbox (an 800 number). We will then send you an invoice, and on receipt of your payment (according to the above schedule) send you a fresh copy of TimeSet 7 with the latest revisions, if any, plus a printed manual. This is a convenience for people who, like many of us, intend to register shareware but forget to do it. It is also useful to businesses that require invoicing. Running TsReg72.EXE is very simple, involving no more than answering a few prompts about your system and your modem and typing in the information we need to send you an invoice. (NOTE: Since Version 7.20 corrects some minor defects that became apparent in Version 7.10 after it was released, people who have already registered for TimeSet 7.10 need not register this new version.) TIMESET CONFIGURATION TimeSet is designed for very easy configuration. If the copy you have has never been run before, it will automatically present a screen showing a default configuration (Figure 1). If you press F10 while this screen is displayed, that data will be saved to TimeSet's own file, and TimeSet will subsequently bypass configuration and use the saved data each time you run it. It is likely, however, that you'll need to make some changes in the default setup before pressing F10. For example, you may need to configure the program for your own time zone, the season of the year (daylight or standard time), your serial port, etc., or you may need to insert some prefixes in the telephone numbers that are displayed for the various time services. Such changes are simple to make. All you need to do is press the up or down arrow key to highlight the configuration item you wish to change. Then, depending on the particular configuration item, you can do it either by toggling a new option with the right or left arrow key or by editing what is displayed on your screen. TimeSet will tell you which method to use, toggling or editing, to make your change. The configuration process, then, involves examining the existing setup, scrolling to the lines that need change, making the necessary changes, then saving the configuration by pressing F10. Each configuration item has its own help screen. If a configuration line is highlighted, all you need to do to get help for that line is press F1 (aim carefully; if you press the nearby ESC key, you'll be out of the program and back in DOS). We strongly urge that, before making any changes, you review all the help screens by pressing F1 as you highlight each configuration item on the list. The help screens comprise an on-line tutorial, and not all the items are discussed in detail in this manual. In fact, it would be a good idea to load TimeSet right now and have the configuration screen in front of you as you read this section. If TimeSet has already been configured, you can force it to load in configuration mode by using /C on the DOS command line (TIMESET /C). TELEPHONE NUMBERS The first five lines on the configuration screen deal with phone numbers for time services. The first line, labled "Outside phone," is not likely to be needed by most users, who can leave it at the default "NULL." It is intended for those who need to dial a special phone number before they can dial a regular long distance number. Often the special number will be that of a long distance carrier that is not accessible by the standard 1 prefix that brings your assigned carrier when you make a long distance call. To put in such a number, press Enter to get in editing mode, delete NULL, type in the phone number, then press Enter again to get out of editing mode. The second line is the long distance number for the U.S. Naval Observatory. It is preceded by a 1, based on the assumption that you have an assigned long distance carrier. If you do not, or if you wish to use a carrier that has not been assigned to you, get into editing mode and insert, in front of everything else, the numbers that get you a particular long distance company. To get AT&T, for example, you would insert 10288 ahead of what is already there. The same considerations apply to the third line, for calling the National Institute of Standards and Technology. The fourth line, titled "European service," has NULL as the default. If you live in North America, you'll probably want to leave it that way since time is available at far less expense by calling the USNO or NIST. European users can get phone numbers for time services in Sweden, Austria, and Italy simply by toggling with the right or left arrow key. Note that the European phone numbers are preceded by a plus sign (+). You will need to get into editing mode to replace the plus sign with the international calling code used in your own country (in the U.S., the number is usually 011). IMPORTANT NOTE: There is no assurance that any of the European time services will remain available to callers who do not live in the host country. When when TimeSet 7.20 was released, some European services were planning to make calls chargeable to the caller's phone bill (equivalent to a 900 number in the United States), which would make the service unavailable to callers using the telephone system of another country. It is possible, however, that other European countries will begin providing telephone time services, using the same data format Sweden, Austria, and Italy have adopted. Should that occur, it will then be possible to replace existing European phone numbers in TimeSet by editing, so new services in other countries can be called. The fifth line, labeled "TimeGen service," is for users who wish to call a time service based on the program TimeGen, which is part of the TimeSet 7.20 package. TimeGen generates time data strings in U.S. Naval Observatory format, allowing a computer that is synchronized with an official atomic time service and stabilized by RighTime to transmit the time via modem to other computers equipped with TimeSet 7.20. The default for line 5 is NULL, but if you wish to call a TimeGen service (which we hope will proliferate), get into editing mode and replace NULL with the appropriate phone number. TimeGen is described in detail in a separate section. TIME ZONES AND TIME SEASONS Line 6 is the line for selecting your time zone, and the default is (North American) EASTERN time. If you live in, say, Miami, you don't need to do anything with that line. If you live in Denver, however, you are in the Mountain time zone, and you'll need to scroll to line 6 using the up or down arrow key, then press the right or left arrow key until the word "MOUNTAIN" appears. All the major named North American time zones are built into TimeSet and are available by toggling. If you don't live in North America, just go to line 6 and keep pressing the right or left arrow key until TimeSet tells you that you can enter editing mode. Then press Enter to get in editing mode, and type in the number of hours your time zone is offset from universal time (the time at the zero meridian, sometimes called Greenwich time, or "Zulu" time). If you live in Sweden, for example, your time zone is 2 hours later than universal time so you would need to type in a 2. The convention that must be followed here is to make the number positive if you are east of Greenwich, England and west of the International Date Line, and negative if you are west of Greenwich and east of the International Date Line. Configuration for daylight saving time or standard time (or Summer Time and Winter Time, as they are called in Europe) is available on line 7. Simply scroll to that line and toggle DAYLIGHT or STANDARD with the right or left arrow key. Some people need to have their computers set to universal time (in aviation and astronomy, for example). That option is also available by toggling at line 6. Notice that when the word UNIVERSAL appears on line 6, the word NULL automatically appears on line 7, the time season line. This is because universal time has no seasons; it is always standard time. (If you live in the United Kingdom and want your computer to be on local civil time, you should not select UNIVERSAL. The reason is that civil time in Britain has seasons and you will need to make a season selection on line 7. Instead enter 0 as your offset from Greenwich on line 6 so you can toggle the appropriate time season on line 7. If you wanted U.K. civil time and selected UNIVERSAL on line 6, the NULL on line 7 would cause your clock to remain on standard time, i.e., winter time, all year long, and thus an hour slow for the duration of summer time.) MODEM CONFIGURATION Lines 8-12 are for configuring TimeSet to work with your modem. With line 8 highlighted you can select the appropriate serial port (COM1-COM4) by toggling with the right or left arrow key. As you toggle through the options, you will see the default port address and IRQ number for each port, for both standard computers and PS/2 computers. COM1 and COM2 use the same addresses and IRQs in standard and PS/2 machines, but PS/2 computers use different addresses and IRQs for COM3 and COM4. If you have a PS/2 and want to use COM3 or COM4, just keep toggling until you see the correct port configuration for a PS/2 computer (configurations unique to PS/2s are identified as they come into view). In addition to the standard port configurations available by toggling at line 8, TimeSet 7.20 allows configuration for nonstandard serial port addresses and IRQs. Just keep toggling until the editing flag is shown, then edit the template string that appears, replacing the n's with actual numbers. It is very important to press F1 so you can read the help screen for this item. Note also that the port address you type in must be in hexadecimal notation. This feature in TimeSet 7.20 should allow the program to be used with any serial port using any port address and any IRQ line. Caution is needed, however. If you selected an IRQ that is being used by a disk drive, for example, you could cause some serious problems. Know what you are doing; check to see what IRQs are available for your COM port before proceeding. Line 9 allows you to toggle your dialing method. For most people, it will be either TONE or PULSE. A third option, AUTO, will be of no use to most users. Lines 10, 11, and 12 need to be considered together. Line 10 allows you to select a dial-up speed for your modem. There is really no need for it to be anything greater than 1200 bps, since that is the speed all the standard telephone time services use. Local speeds up to 153000 bps can be toggled with the right or left arrow key, although few modems go that high. High-Speed Modems If you have one of the newer modems that allow you to maintain a high speed locally, i.e., between your serial port and your modem, while allowing the modem to drop the line speed to match the remote modem, you can use that kind of action with TimeSet 7.20, but you'll need to make correct choices on lines 10, 11, and 12. First, you will need to toggle line 10 to some high speed, such as 38400. Second, you will need to toggle line 11 (labeled "Lock modem speed") to YES. This will tell TimeSet not to adjust the speed setting at the serial port after connection is made but to leave it at the high speed at which it was opened. Third, on line 12 (labeled "User's commands") you will need to insert an appropriate command to tell your modem to maintain the local speed high while allowing the line speed to drop to match that of the remote modem. For many of the newer high-speed modems, that command is &B1. Thus, if you wanted to dial at 38400 bps and maintain that same speed locally after connection while allowing the modem's line speed to match the 1200 bps time service modem, lines 10, 11, and 12 would have to show the following: Line 10 (Dialing baud rate): 38400 (could be as low as 1200) Line 11 (Lock modem speed): YES Line 12 (User's commands): ...&B1... (&B1 inserted in an existing string) The command your own modem uses for keeping the local speed locked high may be something other than &B1. Please check your modem manual to find out the correct command. Toggling on the user's command string line produces three different modem initialization strings. The first one, &C1&D2X4, which is the default, is for initializing older modems that do not feature error checking and data compression -- for example, a 2400 baud Hayes Smartmodem. The second, which reads &F&B1&C1&D2X4S37=5, should work with most of the newer high speed modems that use data compression and error checking protocols. It is essential that all such protocols be disabled and that the modem be set instead for basic asynchronous mode. In several of the newer modems this is accomplished by a single command, &F, which brings in factory defaults for that mode. If your modem uses some other command to be put into basic asynchronous mode, use the editing function and replace &F in this string with the appropriate command for your modem. It may also be necessary to use a separate command to turn off all flow control in newer modems that use hardware flow control (RTS/CTS) as a default, if that command is not part of the defaults for basic asynchronous mode. In many newer modems the command for turning off all flow control is &K0. Turning off flow control is essential to avoid a situation where TimeSet waits endlessly for a Request to Send that is not produced by any of the time service modems. As noted earlier, &B1 in this string tells the modem to hold the local (port to modem) speed constant while allowing the line speed to match that of the remote modem. If your modem uses some other command for this, using the editing function to replace &B1. One more toggle brings up the string %C0&Q6N0\G0&C1&D2X4S37=5, which is specifically for use with Zoom 14.4 Fax and similar modems. This option is provided because the Zoom, while it is a very popular low-cost brand, has generated more configuration problems for TimeSet users than any other brand. Finally, if none of the hard-coded initialization strings works with your high-speed modem, here is another string you can try, using the editing function on the User's command line: &C1&D2X4N0B1S37=5&Q0. This has been reported to work with the Boca and several other brands. Conventional Modems The default user's initialization string in line 12 (User's commands) is &C1&D2X4. This is the string to use with conventional modems, with speeds no higher than 2400 bps and with no error checking or data compression protocols. These are what today might be considered "old-fashioned" modems, capable of only basic asynchronous communication. The commands &C1 and &D2 in the string are discussed in the next section, but notice that they are needed for the newer modems as well. X4 in this string tells the modem to use a result code set that includes the words CONNECT, NO CARRIER, NO DIALTONE, and BUSY. Some very early modems lack a result set that includes BUSY. If yours is of that vintage you probably can use an Xn value no higher than X2 or X3. In that case you will have to edit to change X4 to the highest Xn value your modem can use. Since the modem will not be able to detect and report a busy signal, you will need to rely instead on the timing-out of register S7 to cause the words NO CARRIER to be sent to TimeSet by the modem if connection is not made in a reasonable time. TimeSet will then assume that the line is busy (though it may not actually be) and take the same actions it would if an actual BUSY report had been received. The timing of S7 is hard-coded at 45 seconds in TimeSet (S7=45), but you can adjust it upward or downward simply by adding an S7=nn command to the user's initialization string using TimeSet's editing functions. Carrier Detection and Hanging Up Please note that for practically all newer modems, whether conventional or high speed, &C1 and &D2 in the default initialization strings must always be left in place. &C1 tells such modems to wait for a carrier, not to assume one is always present. &D2 tells such modems to hang up when the DTR is dropped. If these functions are not present, TimeSet will not work properly. The only users who should remove those commands are those using older modems that cannot be configured by software commands and must rely instead on dip switch settings to accomplish the functions of &C1 and &D2. If you have that type of modem, use the editing functions to remove those commands from the initialization string. Then, before running TimeSet, adjust dip switches on your modem as specified by your modem's manual to make it always wait for a carrier and to hang up when the DTR is dropped. Carriage Returns in Modem Initialization Strings Although most people will never need to insert a carriage return in the modem initialization string, the capability is provided for special situations. The effect of the carriage return is to terminate a preceding configuration string so a second one can be sent. Thus a carriage return can be used to create two user initialization strings on the modem initialization line. The character to use if you want a carriage return is the colon (:). This was chosen instead of the more common ^M symbol because it takes one less character. Remember that if you use the colon, the string that comes after it should start with AT, but also remember that the string that starts after a colon is the only place where AT is allowed, since TimeSet itself supplies that command elsewhere. In other words, no string that's sent to the modem by TimeSet should have the letters AT at the far left. By the way, the colon also causes a carriage return to be sent to the modem if it's inserted in a phone number string, which may be useful in some complex dialing situations. THE COMPUTER CLOCK Line 13, another toggle line (labeled "Computer clock"), allows you to specify the manner in which TimeSet will set the time in your computer. The default setting is to have TimeSet set the DOS clock/calendar only. This is the setting to use if either of the following conditions is true: (1) your computer has only a DOS clock/calendar or (2) your computer has both a DOS clock/calendar and a battery powered real-time clock, and furthermore has resident software to instantly pass new time and date settings from DOS to the battery powered clock. If your battery-powered clock is a CMOS clock, the only resident software you need for this is DOS itself, provided it's version 3.3 or later. If your computer does not have a CMOS clock and instead uses the XT-style real-time clock that plugs into a card slot in the computer, the resident software you'll need to install is Tom Strickland's ClockDrv.SYS (install it in your CONFIG.SYS file), which is included in the TimeSet package. With either kind of battery powered clock, any setting TimeSet makes in the DOS clock/calendar will instantly be passed on to the battery clock, provided the appropriate memory-resident software for that clock is installed (DOS 3.3 or later for the CMOS clock, ClockDrv.Sys for XT-style battery powered clocks). Pressing the right or left arrow key while line 13 is highlighted displays one more clocksetting option, which reads "CMOS, DOS ver. < 3.3." This setting is for users who have a computer with a CMOS clock but are using a version of DOS earlier than version 3.3. Those older versions of DOS do not automatically pass changes in the DOS clock/calendar to the CMOS clock and instead require use of the SETUP utility. Toggling this configuration option allows TimeSet to set both the DOS clock and the CMOS clock directly and at practically the same instant, thus eliminating the need to run SETUP. Do NOT select this option if your DOS version is 3.3 or later. AUTOMATIC TIME SEASON ADJUSTMENT TimeSet 7.20 makes automatic reconfiguration for time season changes available to all users, whether they follow the North American system (where daylight time starts on the first Sunday in April and standard time starts on the last Sunday in October), the continental European system (where Summer Time starts on the last Sunday in March and Winter Time starts on the last Sunday in September), or the British system (where Summer Time starts on the last Sunday in March and Winter Time, or GMT, starts on the day after the fourth Saturday in October). This is in contrast to Version 7.10, which offered automatic season changes only to those using the North American system. Toggling at Line 14, labeled "Auto time season," presents four options: AUTOMATIC SEASONS U.S.A., AUTOMATIC SEASONS EUROPE, AUTOMATIC SEASONS BRITAIN, and MANUAL SEASONS. The first three configure TimeSet to follow the desired season rules automatically, as described in the preceding paragraph. The fourth option, MANUAL SEASONS, requires you to keep track of time season changes and to reconfigure the program for a new season by pressing F7 before the next call to a time service. It is included mostly for the benefit of people who live in countries that do not use either the North American, European, or British conventions for time season changes. If any automatic season change mode is selected, TimeSet will automatically reconfigure for a new time season the first time it is used after a season change has occurred. The adjustment, which occurs immediately after the time is obtained from a service, reconfigures TimeSet for the appropriate time season and simultaneously advances the clock one hour (daylight time) or sets it back one hour (standard time). There is one exception to this, however: If TimeSet 7.20 detects the presence of RighTime 2.53 (or a later version) and also detects that RighTime has been loaded with the /A switch, which provides automatic system clock adjustment when seasons change, it will make no time adjustment and instead will only reconfigure for the appropriate season in order to have the correct offset from UTC for calculating local time. Detecting RighTime's /A switch is essential since the result otherwise would be a two-hour change in the system clock -- one from RighTime and another from TimeSet. In TimeSet 7.20 the dates for automatic time season changes are calculated by an algorithm that is good indefinitely or until conventions regulating the dates these changes occur are changed by a government. If the conventions for time season changes are altered in your country, the automatic season reconfiguration will no longer work properly and you will have to revert to manual season reconfiguration until a new version of TimeSet becomes available to deal with the new rules. Although NIST and the Swedish and Austrian time services all provide dates for the next season change in their data strings, TimeSet does not use them and instead calculates the dates itself. The reason is that the U.S. Naval Observatory and the Italian service do not provide such information in their data strings. Since a way had to be provided for TimeSet to calculate change dates for those services, it made sense to reduce program code by calculating them for all the services. A further important advantage in this approach is that it allows a user to get automatic season adjustment according to rules of his own country even when getting time from another country that follows a different convention for season change dates. MANUAL OR AUTOMATIC DIALING Line 15 (labeled "Manual/Auto dial") provides a choice of operating TimeSet manually, that is, initiating a call to one of the time services by pressing appropriate keys at the main menu, or configuring it to dial one of the time services automatically as soon as the program is loaded. Automatic operation is included specifically for those who want to run TimeSet out of a batch file as part of the bootup procedure. In automatic mode, the program runs, gets the time from the preselected service, sets the clock, and immediately exits to DOS. There are several options for automatic operation, depending on the service you plan to call, namely USNO, NIST, a European service (the specific service determined by the phone number you used in line 4), and a TimeGen service (determined by the phone number you entered on line 5). For all but the Italian service, there is an option to make a call with or without line delay measurement (the Italian service does not offer line delay measurement). Line delay measurement is indicated by /LAG following the name of a particular service toggled into view with the right or left arrow key. If TimeSet is configured for automatic operation and dialing is interrupted by pressing the backspace key, the program will jump to the main menu and revert to manual operation for the remainder of that session. The next time it is loaded it will again be in automatic mode. If you want to switch from an automatic mode to manual mode semi-permanently, you will have to reconfigure the program and select MANUAL at line 15. COLOR OR MONOCHROME If you have a color monitor, toggle COLOR on line 15 (labeled "Video type"). Toggle MONOCHROME if you have a monochrome monitor. Selecting monochrome display is also useful on laptop computers that may not show sufficient contrast between certain colors in TimeSet. Toggling between color and monochrome display is also available at the TimeSet main menu by pressing F8, and is also obtainable by using /m on the command line. SAVING YOUR CONFIGURATION Again, before even starting to make any configuration changes, you are urged to scroll to each configuration line and press F1 to read the help screen associated with that line. When all configuration changes are made, they must be saved to TimeSet's own disk file by pressing F10 at the configuration screen. Please note that even though a fresh copy of TimeSet shows a full set of configuration data on the configuration screen, the data is only a starting point for any changes you might need to make and is not yet in a form that's functionally accessible to the program. Thus, even if the defaults are acceptable and you make no changes, you will still have to press F10, otherwise you will find yourself at the configuration screen the next time you run the program. RECONFIGURING TIMESET After TimeSet has been configured, you can get the configuration screen again in two ways: (1) press F2 at TimeSet's main menu, or (2) load TimeSet with /C on the command line. You can then make any changes you want, but be sure to press F10 if you want to save them. If you only want to inspect the settings, you can get to the main menu by pressing F2. OPERATING PROCEDURES If TimeSet has been configured to run in one of the automatic modes, it will immediately begin dialing the time service you selected for automatic calling during configuration. THE MAIN MENU If you configured for manual operation, or if you interrupt automatic dialing by pressing the backspace key, the program jumps to the main menu screen (Figure 2), one of whose main features is a large digital time display, and waits for you to enter commands at the keyboard. The command options at the main menu are in two categories: dialing commands and what might be called housekeeping commands. Dialing Commands Dialing commands for calling specific time services include W for the Naval Observatory in Washington; B for the National Institute of Standards and Technology in Boulder, Colorado; E for the European time service you selected during configuration (by putting in its phone number); and T for the TimeGen service you selected during configuration (again by putting in its phone number). There are two options for each of these letters -- the letter alone, which initiates a call the specific time service without a request for line delay measurement, and the letter combined with the Alt key (Alt-W, Alt-B, etc.), which initiates a call to the specific time service with a request for line delay measurement. (If the phone numbers for a European time service and a TimeGen time service were left as "NULL" during configuration, the keys for calling those services at the main menu will be nonfunctional.) Housekeeping Commands Nearly all commands at the main menu that are in the category of "housekeeping" involve use of function keys. The relevant function keys are F1, F2, F7, F8, and F9. F1 brings a help screen that explains the other function keys as well as other commands at the main menu. F2 allows access to the configuration screen for checking or making changes. F7 toggles daylight or standard time. That is, if TimeSet is configured for standard time, pressing F7 will reconfigure it for daylight saving time and simultaneously advance the system clock one hour. If TimeSet is configured for daylight saving time, pressing F7 will reconfigure for standard time and set the clock back one hour. (This function is not needed if you have configured TimeSet for automatic time season adjustment, unless your country changes its rules concerning the dates when those changes occur.) F8 toggles monochrome or color display. This function will probably be most useful when running TimeSet on certain laptop computers that do not produce gray equivalents of certain colors with sufficient contrast. F9 allows a pulse to be generated at the parallel port at the instant the clock is set by a call to one of the time services. If this feature is activated, the pulse, with a duration of approximately 55 ms, will occur at pin 1 of the parallel port. It is a negative-going pulse in which the voltage at pin 1 drops from +5 volts to 0 volts with respect to pin 25 (ground). However, it can be inverted and otherwise shaped to drive an external electronic device of the user's own design. (A printer should not be attached to the parallel port if this feature is used.) If the /LPTn command is not used on TimeSet's command line to designate the printer port to be pulsed, TimeSet will use LPT1 as the default. F5 Access to RighTime Another function key, F5, is active only if TimeSet 7.20 has detected the presence of RighTime ver. 2.53 or later. Pressing F5 in that case produces information about RighTime's current status and also allows some of RighTime's functions to be controlled (Figure 3). Status information includes the time in days and hours since the computer clock was last set, RighTime's current warm and cool corrections, whether RighTime's learning function is turned on or off, whether the next time and date setting will be ignored, whether RighTime's maintenance of the DOS clock is turned on or off, whether 0.01 sec resolution in the DOS clock is enabled or disabled, and whether automatic season adjustment in the CMOS clock is enabled or disabled by RighTime. Control functions for RighTime accessible with TimeSet 7.20 include disabling of RighTime learning for the next call to a time service, ignoring the next time and date set, disabling or reenabling DOS clock maintenance, and disabling or reenabling 0.01 sec resolution in the DOS clock. For further information about these and other RighTime functions, please consult the RighTime manual. Note that while Life Sciences Software has permission to distribute evaluation copies of RighTime to registered users of TimeSet, RighTime is a shareware program owned by Tom Becker of The RighTime Company, of Miami. Registration of RighTime and technical questions about it should be directed to them, not to us. COMMAND LINE SWITCHES Several command line switches are available for TimeSet, and most of them can be reviewed by typing "timeset ?" at the DOS prompt. For reference, here is a complete list of what is available. Note that all such commands are preceded by a forward slash (/) and that more than one can be used on the command line (with no need to be separated by a space): /ab, /aw, /ae, /at -- These commands, all of which are preceded by "/a", allow TimeSet to be run in automatic mode even if it has been configured for manual operation. Recall that automatic operation means dialing a specific time service, getting the time, and immediately exiting to DOS. The second letter in each command designates the time service to be called automatically; "b" stands for Boulder (NIST); "w" stands for Washington (USNO); "e" stands for a European time service (provided a number for one was selected during configuration); and "t" stands for a TimeGen time service (provided a phone number for one was entered during configuration). /fs -- This command eliminates the "parting curtains" special effect used by TimeSet when one screen replaces another, causing screen changes to occur almost instantly. /s -- This command causes TimeSet to skip the logo screen (the starry sky) when loaded and instead go directly to the main menu. /lag -- This command specifies line delay measurement for the time service selected for automatic operation with a "/a" command (see above). Thus if you wanted to call NIST with line delay measurement, the command line would be "timeset /ab/lag." /m -- Loads TimeSet with forced monochrome display, whether in manual or automatic dialing mode. /p, /0p -- The /p command tells TimeSet to generate a pulse at pin 1 of the parallel port at the instant the clock is set, just as would occur if F9 were pressed at the main menu before placing a call. The function needs to be available as an optional command line switch when TimeSet is run in any automatic mode. The /0p is alternative command for pulse generation. Unlike /p, which causes a pulse to be generated at the instant of time setting, /0p delays pulse generation until seconds in the newly set time are equal to zero, that is, until the minute changes. This can be useful in situations where an external device needs to be started on the minute. (See /lptn command, below.) /0c -- The /0c command is similar to the /0p command in that it causes a countdown to zero seconds after the new time is obtained. It differs from /0p, however, in that a pulse is not generated at the parallel port when the next minute arrives. It simply provides a countdown for the convenience of those who want to synchronize a watch or a clock manually. /lptn -- This command specifies the parallel port to be used for generating a pulse at the instant of clock setting (lpt1, lpt2, etc.). The default is lpt1, so the command is not necessary if that is the port you want to use or if it is the only parallel port you have. /lf -- This command tells TimeSet to append timesetting data to a log file. The log file, named TimeSet.Log, is maintained on TimeSet's home directory and includes the date of a call, the service called, the computer time before and after the call, and the error (i.e., the difference between the time before and after the call). /wb, /ww, /we, /wt -- These commands tell TimeSet to wait at the opening menu until a specified time, then call a time service (b, w, e, and t specify the time service to be called. The command must be followed by the time you want the call to be made, in hours, minutes, and seconds using the standard DOS time format (midnight = 00:00:00, 1 pm = 13:00:00, etc.). Thus if you wanted TimeSet to wait until 5:00 a.m. and call the USNO, the command would be /ww05:00:00. Note that there should be no space between the command and the time. (NOTE: A far better method than a /w command for timing a call is to load the companion program AutoDial, which is part of the TimeSet 7.20 package. This is a memory-resident program that detects the presence of TimeSet 7.20 and initiates a call to a given time service at a particular time, both of which are specified when AutoDial is loaded. AutoDial is discussed in detail in a separate section below.) CALLING AND CONNECTING As soon as dialing is initiated, a new screen appears (Figure 4) displaying modem intitialization commands and the phone number as they are being fed to the modem. The service being called is also displayed. When connection is made, a new screen appears that includes a window for displaying incoming data strings (Figure 5). The strings begin to appear in just a few seconds. Eight or nine such strings are displayed before the final one is captured for parsing and use in setting the clock. The purpose is to allow time for modem "jitter" to abate. THE SUMMARY SCREEN The summary screen (Figure 6) is the last screen that appears during a TimeSet run. This screen displays information on the results of the call, including UTC data, the delay correction used, and the local time and date before and after. If TimeSet 7.20 was loaded with the /lf command line switch, the local time data will be appended to the file TimeSet.Log, which will be in TimeSet's home directory. DOS ERROR LEVELS Whenever TimeSet 7.20 finishes its work and exits to DOS it supplies DOS with a code that indicates what condition caused the program to end. This code can be read with DOS's ErrorLevel command in a batch file. Error level codes supplied by TimeSet are most useful when the program is configured for automatic operation and run from a batch file -- on bootup, for example. They allow a user to design the .BAT file so it can read the code using the ErrorLevel command and take some desired action depending on what the error level is. Your DOS manual explains how to use the ErrorLevel command. If you wish to design such a batch file, here are TimeSet's error level codes and their meaning. Keep in mind that the full set is possible only if TimeSet is configured for automatic operation: 0 -- Call was completed normally, time and date set 1 -- Carrier was lost while call in progress 2 -- Line was busy (10 automatic dial attempts) 3 -- No dial tone was detected 4 -- Line was too noisy (15 garbled strings in a row) 5 -- Program was terminated by user There is no point in trying to use error levels if TimeSet is configured for manual operation (since the program in manual mode is always terminated by the user, the code returned to DOS will always be 5). LINE DELAY MEASUREMENT Line delay is the time it takes for a time mark sent by a telephone time service to reach your computer. It consists of two major components, the actual time it takes the character to travel through the telephone system and delays introduced by modems and your own computer. For land line communication less than a few thousand miles, modem delay is a far larger contributor than phone system delay. Phone system delay is typically around 7 ms in calls to a U.S. time service from any point in the country over land lines, whereas modem delay can be 40 or 50 ms or greater. Except for the Italian service, line delay measurement is available for all time services addressable by TimeSet. At this time it appears that there are no plans to add line delay measurement capability to the Italian service. Accordingly, if you have configured for the Italian service and press Alt-E, TimeSet will not initiate the call and will instead display a message reminding you of the unavailability of line delay measurement with that service; only the E command alone will work with the Italian service. Line delay measurement makes the most sense when one or more of the following conditions exist: (1) you need the most accurate time setting possible for some special purpose; (2) your connection to the time service is by satellite (which can cause up to a quarter-second delay); and (3) you have Becker's RighTime installed to maintain that high accuracy in your clock for a reasonable length of time. Without RighTime installed, a computer clock can drift up to 15 or more seconds a day; if you can tolerate a significant daily drift you obviously don't need to worry about a fraction of a second of time setting delay. If none of these conditions exists, a call without line delay measurement is probably accurate enough and usually takes a lot less time. Furthermore, nearly all the time services routinely advance the departure of their time mark by a fixed amount to give an approximate precompensation for land line and modem delays when actual measurement is not requested. Usually, that fixed amount of advance is very close, within a few hundredths of a second, to the line delay that could actually be measured on a land-line call within the same country. The one exception is the USNO, and TimeSet takes care of that by adding .05 seconds for delay to the set time when delay is not actually measured with the USNO. The various atomic time services use different methods for delay measurement. The NIST measures delay for you, then advances its time mark to compensate for it so the mark arrives on time. The USNO lets the caller measure the delay by means of a remote digital loopback (RDL) test then add the measured delay to the new time before setting the clock (to make the delay measurement you must have a modem that accepts the &T6 and &T0 commands for RDL). The Swedish and Austrian services also let the caller measure the delay, but by a method that does not require RDL. As noted, the Italian service does not offer delay measurement. Delay measurements done by TimeSet 7.20 are far more accurate than in any previous version, with resolution to .0001 second (the measured value is rounded to the nearest .01 second before use, however, since that is the smallest unit of time the DOS clock will accept). USING AUTODIAL AutoDial, a memory-resident program for controlling TimeSet 7.20, is a new program that is part of the TimeSet 7.20 package. The program occupies about 10k of memory and can be loaded in high memory with a memory manager. Its purpose is to trigger a call to a specified time service at a preselected time. TimeSet must be configured for manual operation if you want to use AutoDial to control its operation. Both the service to be called and the time to call it are specified on the command line when AutoDial is loaded. The syntax for loading AutoDial is: AutoDial