










                                   Smart10  TM
                           X10 Powerhouse Home Control
                             CP290 Programming System

                                   version 2.1





                                   Users Guide








                   Ŀ
             Ŀ                   (R)
           ĳ         o    
                Ŀ   Association of
                           Shareware
             ĳ    o        Professionals
           ĳ        
                     MEMBER







     copyright 1991 Sympathetic Software

                          9531 Telhan Drive
                          Huntington Beach, CA  92646
                          USA



                               All Rights Reserved


        September 6, 1994            Smart10 v2.1                      Page 1

                                  Table of Contents

        The Shareware Concept                                      2

        Support                                                    3

        Introduction                                               4

        Configuration                                              5

        Programming Your Events                                    7

        Command Line Parameters                                   11

        The CHKTIME Program                                       14

        The DSTIME Program                                        15

        Sample Files                                              15

        Change History                                            15


        September 6, 1994            Smart10 v2.1                      Page 2

        The Shareware Concept


             Shareware distribution gives users a chance to try software
        before buying it.  If you try a Shareware program and continue using
        it, you are expected to register.  Individual programs differ on
        details - some request registration while others require it, some
        specify a maximum trial period.  With registration, you get anything
        from the simple right to continue using the software to an updated
        program with printed manual.

             Copyright laws apply to both Shareware and commercial software,
        and the copyright holder retains all rights, with a few specific
        exceptions as stated below.  Shareware authors are accomplished
        programmers, just like commercial authors, and the programs are of
        comparable quality.  (In both cases, there are good programs and bad
        ones!) The main difference is in the method of distribution.  The
        author specifically grants the right to copy and distribute the
        software, either to all and sundry or to a specific group.  For
        example, some authors require written permission before a commercial
        disk vendor may copy their Shareware.

             Shareware is a distribution method, not a type of software.  You
        should find software that suits your needs and pocketbook, whether
        it's commercial or Shareware.  The Shareware system makes fitting
        your needs easier, because you can try before you buy.  And because
        the overhead is low, prices are low also.  Shareware has the ultimate
        money-back guarantee - if you don't use the product, you don't pay
        for it.

             Smart10 is a "shareware program" and is provided at no charge to
        the user for evaluation.  Feel free to share it with your friends,
        but please do not give it away altered or as part of another system.
        The essence of "user-supported" software is to provide personal
        computer users with quality software without high prices, and yet to
        provide incentive for programmers to continue to develop new
        products.  If you find this program useful and find that you are
        using Smart10 and continue to use Smart10 after a reasonable trial
        period, you must make a registration payment of $20 to SYMPATHETIC
        SOFTWARE.  The $20 registration fee will license one copy for use on
        any one computer at any one time.  You must treat this software just
        like a book.  An example is that this software may be used by any
        number of people and may be freely moved from one computer location
        to another, so long as there is no possibility of it being used at
        one location while it's being used at another.  Just as a book cannot
        be read by two different persons at the same time.

             Commercial users of Smart10 must register and pay for their
        copies of Smart10 within 30 days of first use or their license is
        withdrawn.  Site-License arrangements may be made by contacting
        SYMPATHETIC SOFTWARE.

             Anyone distributing Smart10 for any kind of remuneration must
        first contact SYMPATHETIC SOFTWARE.  This authorization will be
        automatically granted to distributors recognized by the Association
        of Shareware Professionals (ASP) as adhering to its guidelines for
        shareware distributors, and such distributors may begin offering
        Smart10 immediately (However SYMPATHETIC SOFTWARE must still be


        September 6, 1994            Smart10 v2.1                      Page 3

        advised so that the distributor can be kept up-to-date with the
        latest version of Smart10.).

             You are encouraged to pass a copy of Smart10 along to your
        friends for evaluation.  Please encourage them to register their copy
        if they find that they can use it.  All registered users will receive
        a copy of the latest version of the Smart10 system including a
        printed version of this manual.  To register your copy of Smart10,
        send in a completed copy of the enclosed order form.


        Support


             The current version of Smart10 is available from the IBMHW forum
        on CompuServ.  The file to download is SMRTEN.EXE.  Problem reports
        may be made to Sympathetic Software or sent by CompuServ E-Mail to:

                  Stephen L Billard: 71046,1476

             This program is produced by a member of the Association of
        Shareware Professionals (ASP).  ASP wants to make sure that the
        shareware principle works for you.  If you are unable to resolve a
        shareware-related problem with an ASP member by contacting the member
        directly, ASP may be able to help.  The ASP Ombudsman can help you
        resolve a dispute or problem with an ASP member, but does not provide
        technical support for members' products.  Please write to the ASP
        Ombudsman at 545 Grover Road, Muskegon, MI 49442-9427 or send a
        CompuServ message via CompuServ Mail to ASP Ombudsman 70007,3536.
        The Ombudsman may be contacted by FAX by sending to the ASP FAX
        number: (616) 788-2765.  In communications with the Ombudsman please
        include a telephone number and/or FAX if available.


        September 6, 1994            Smart10 v2.1                      Page 4

        Introduction


             Smart10 is intended for use with the X10 Powerhouse CP290
        computer interface.  This interface can be programmed from a personal
        computer and will maintain and execute up to 128 timer events.  These
        events can be set for specific times and days of the week.  The
        controller has a span of only one week, and does not have the concept
        of sunrise and sunset.  The software which comes with the controller
        is somewhat clumsy to use if you wish to define more than a few
        events.

             Smart10 was devised to overcome the limitations of the CP290 and
        its supplied software.  It can maintain a year's calendar of events.
        You can use SUNRISE and SUNSET as times.  (You don't have use them as
        exact time, you can add or subtract time from them.)  Events can be
        conditioned to occur (or not to occur) if it is DARK (or LIGHT) or if
        they occur between dates you have specified.  You can also put
        parameters on the command line and use them as conditions.

             There is an "immediate" command mode (run from the command line)
        whereby you can issue direct or delayed commands and cancel pending
        events.  Two programs are included to help you automate your
        AUTOEXEC.BAT files.  These are CHKTIME and DSTIME.  CHKTIME compares
        the computer's date and time with target date and times.  ERRORLEVEL
        is set if there is a match.  DSTIME is used to adjust your computer
        clock for daylight savings time.  With Smart10 and these programs you
        can completely automate maintainence of your CP290.  (You can
        automate other periodic functions as well.  See the examples below.)

             Smart10 operates from a control file which describes the modules
        you have and the timer events you've scheduled.  The format of this
        file and its instructions is described below.  However, you don't
        need to know anything of its format to begin using Smart10.  If you
        are already using the CP290 you have the initial starting point for
        your home automation.  The program GENPGM will create a control file
        for you describing the modules and events you are currently using.
        Just modify this file to add the additional capabilities that Smart10
        provides.


        September 6, 1994            Smart10 v2.1                      Page 5

        Configuring Smart10


             When Smart10 is first run, or when you use /C on the command
        line, you will be presented with the Smart10 Registration screen and
        the Smart10 configuration screen.  These screens are shown below.

             Ŀ
              Smart10 X10 Powerhouse Control Program                    
              Copyright 1991 by Sympathetic Software                    
                                                                        
                                 Registration Information               
                                                                        
                   Your Name:                                           
                                                                        
                   Registration ID:                                     
                                                                        
             

        For now, type ESC to bypass the registration screen.  When you send
        in your registration, you will get instructions on filling in this
        screen.  (Note: if you do not type anything for 30 seconds, the
        registration screen automatically goes away.  Once you have
        registered Smart10, the screen will not be redisplayed.)

             Ŀ
              Smart10 X10 Powerhouse Control Program                    
              Copyright 1991 by Sympathetic Software                    
                                                                        
                                 Configuration Information              
                                                                        
                   House Code: A                                        
                                                                        
                   Latitude: 33 48' 0" N                               
                                                                        
                   Longitude: 117 54' 0" W                             
                                                                        
                   Time Zone: PACIFIC                                   
                                                                        
                   Do you observe Daylight Savings time? (Y/N) Y        
                                                                        
                   Confirm time override? (Y/N) N                       
                                                                        
                   Synchronize CP290 to the minute? (Y/N) N             
                                                                        
                   The CP290 is attached to: COM1                       
                                                                        
             


             You should set House Code to the House Code you wish the CP290
        to use when one of its eight rocker switches is activated.  Set the
        Latitude and Longitude to your location.  You do not need to be very
        precise with these.  They are used in computing Sunrise and Sunset
        times.  The location of any nearby major city will probably be close
        enough.  (The file LOCATION.TXT contains a list of cities and their
        latitudes and longitudes.)  Time Zone should be set to your time
        zone.  Smart10 will offer a default based on your longitude.  You


        September 6, 1994            Smart10 v2.1                      Page 6

        will have to correct this if you live near an irregularity of the
        time zone line.  If you live in an area which does not observe
        Daylight Savings time then you should answer N (for No) to the
        Daylight Savings time question.  Otherwise answer Y (for Yes).

             If you set Confirm time override to Y, Smart10 will ask you for
        confirmation if the computer's time differs from the time kept by the
        CP290 by more than about five minutes.  As long as you trust your
        computer's clock you should configure this as N.  The CP290's clock
        will then be set to the computer's time.  This is specially important
        if you are going to automatically load the CP290 in the middle of the
        night.

             The CP290's time setting accuracy is only within a minute.  In
        other words, it cannot be set to a particular second.  Thus, unless
        the computer waits until its clock is an even minute before setting
        the CP290, its time may be off by many seconds.  The Synchronize
        CP290 to the minute option causes Smart10 to wait until the computer
        clock is at an even minute before setting the CP290 clock.  The
        downside of this option is the extra time it takes to wait for an
        even minute.

             You may select any serial port to attach your CP290.  Enter COM1
        for the first serial port, COM2 for the second.  If you have a non
        standard IO base address for your serial port, you may the address
        instead of COM1 or COM1.  The address must be entered in hexidecimal
        (e.g.. 3F8 for COM1.)

             The configuration is stored permanently in the SMART10.INI file.
        This file will be located in the directory which contains the Smart10
        program.  Although this file is stored in a display format, you
        should not attempt to modify its contents.  Use the reconfiguration
        feature of Smart10 to change its configuration.


        September 6, 1994            Smart10 v2.1                      Page 7

        Programming Your Events


             You describe your timer events to Smart10 by providing it a
        module/event file.  This file is normally called X10.PGM.  (It is
        possible to use any file name.  X10.PGM is the default.)  This file
        contains a series of Module Identifications and associated Module
        Events.

             The GENPGM program is included to make it easier for you to get
        started using Smart10.  If you already have modules and events stored
        in your CP290 then creating a module/event file for Smart10 is just a
        matter of running GENPGM.  GENPGM needs to read the X10.DAT file that
        the software which comes with your CP290 creates.  This file must be
        in the currently logged on directory when you run GENPGM.  (That is,
        you must CD to the directory which has this file.  Most likely this
        is the \X10 directory.)  If the X10.DAT file is not available, GENPGM
        will not have the module names for your modules.  It will make up
        names for them.

             When you run GENPGM it will ask for the COM port where your
        CP290 is attached.  Enter the appropriate COM port or the hex IO
        address if your port does not use the standard addresses.  GENPGM
        will write GENX10.PGM.  This file will be a module/event file which
        reproduces the modules and events you are currently running.  Use
        this file as a starting point.  Edit with any ASCII text editor and
        turn it into a description of how you want to run your house.  (You
        should rename the edited file X10.PGM so that Smart10 will use it as
        the default program.)

             The Smart10 module/events program file consists of a series of
        Module Identification headings and the module's associated events.
        Module Identifications and Module Events must be wholly contained on
        one line.  You may include commentary (which may be multiple lines)
        by enclosing it within braces ("{" and "}").

             A Module Identification identifies the X10 unit you wish to
        control.  A Module Identification consists of a Location and
        Description separated by a colon (":") followed


        September 6, 1994            Smart10 v2.1                      Page 8

        by a crosshatch ("#") or asterisk ('*') and the House Code and Unit
        number of the module.  Example:

                Master bedroom : Light switch #A5

                Study : Computer *B1

        The text you provide for the Location and Description are written to
        the X10.DAT file used by the software which comes with the CP290.
        They are also optionally displayed by Smart10 when it is loading the
        CP290.  They can be any text (exclusive of a colon, crosshatch, or
        asterisk.)  The house and unit codes should match the setting on the
        X10 module.

             Crosshatch is the normal prefix for the House Code and Unit
        number.  Asterisk is used when you do not want the power fail restore
        function to set the module to its current programmed state.  (For
        instance, if the latest event for the Study Computer was off, you
        would not want the power fail restore function to turn if off as the
        restore was executing.)

             It is possible to have a Module Identification refer to more
        than one unit within a House Code.  In this case, the module events
        will effect all the units identified by the Module Identification.
        To specify multiple unit codes, Concatenate the additional unit codes
        with either an ampersand (&) or an ellipsis (..).  Example:

                Emergency Lights: Living Areas *A1&4

                All Lights: Whole House *B1..16

                Some Lights: Living Room *C3..5&8

        Ampersands are used to indicate single units.  Ellipses are used to
        indicate a series of units.  For the first example, module events
        will turn on and off modules A1 and A4.  Module events for the second
        example will effect modules B1, B2, B3, B4, B5, B7, B8, B9, B10, B11,
        B12, B13, B14, B15 and B16.  The third example controls modules C3,
        C4, C5 and C8.

             The software which comes with the CP290 does not support
        multiple unit Module Identifications.  Thus, if you use the X10
        program to review your events you will not see any these modules and
        events.  Also note that these Module Identifications do not appear in
        the Module Map.

             A Module Event consists of a command, time, optional condition,
        and the days the event should be activated.  The Module Event
        commands are ON, OFF, DIM, FADE and BRIGHT.  (These may be proceeded
        with CANCEL if you are deactivating an event.)  BRIGHT and FADE are
        undocumented commands of the CP290.  There is no guarentee that your
        CP290 will excute these commands in a useable manner.  FADE will dim
        a light to the off setting.  BRIGHT works like DIM, but brightens the
        light from a dimmed setting.  Times may be absolute or security mode,
        and can be expressed in military time or civilian time.  You may also
        use SUNSET, SUNRISE, or NOW as a time.  These latter may be modified
        by adding or subtracting a time value.  CANCEL and NOW are most
        useful in command line event setting.  See below.


        September 6, 1994            Smart10 v2.1                      Page 9

             There may be any number of Module Events following a Module
        Identification.  The only constraint it that the CP290 can manage
        only 128 events.  Examples of Module Events:

                ON @ 2300 EVERYDAY

                OFF ~ 10:00pm SATURDAY

                DIM 70% @ SUNSET + 0:10 WEEKDAYS

        The At sign ("@") is used when the time is absolute.  The tilde ("~")
        is used to specify approximate (security mode) time.  For security
        mode time, the event is set randomly to within 15 minutes of the time
        value given.  The CP290 will randomly vary this time each day as
        well.

             The days the event is to be activated is either TODAY, TOMORROW,
        EVERYDAY, DAILY, or a list of the actual days.  You can use WEEKENDS
        in place of SATURDAY SUNDAY and you can use WEEKDAYS in place of
        MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY.  These names can be
        abbreviated.  Examples of activation days:

                ON @ 0400 SUN MON

                OFF @ 11:45pm DAILY

                DIM 30 % @ SUNRISE - 2:00 FRI WEEKENDS

                OFF NOW+0:20 TODAY

        TODAY and TOMORROW have special meaning to the CP290.  These events
        occur only once.  The CP290 clears them once the day has past.

             You can use a specific date in place of an activation day list.
        An example of this is:

                ON @ 1700 ON 7/4

             There are modifiers which can be used to control when an event
        will be active.  It may be active only between certain dates,
        starting on a date or running until a date.  Alternatively, the event
        may be active only when a condition is met.  An example of the former
        is:

                ON @ SUNSET + 0:30 DAILY BETWEEN 11/15 AND 12/1

                ON @ SUNSET + 0:30 DAILY STARTING 11/15/95

                ON @ SUNSET + 0:30 DAILY UNTIL 12/1/94

        A condition may be DARK, LIGHT, EARLIERTHAN a time, LATERTHAN a time,
        or it may be a character string.  When the condition is a character
        string, it is true if the character string is a parameter on the
        command line when Smart10 is run.  Otherwise it is false.  (The
        character strings may not contain blanks or other special
        characters.)


        September 6, 1994            Smart10 v2.1                     Page 10

        The condition may also be an expression involving NOT, AND, OR, and
        parenthesis.  Some examples are:

                OFF ~ 11:00pm IF DARK AND NOT (OUT OR VISITORS) SAT

                ON @ Sunset IF EARLIERTHAN 7:00 PM EVERYDAY

        You may use ampersand ("&") for AND and bar ("|") for OR.  A Module
        Event may have both a condition and a date modifier.  Example:

                ON @ 2100 IF OUT | NOT VISITORS SAT BETWEEN 1/12 AND 3/3

             You can also use EXCEPT with ON and BETWEEN.  This causes the
        event be activated on all but the indicated date(s).  Examples are:

                ON @ 1700 EXCEPT ON 7/4

                ON @ SUNSET + 0:30 DAILY EXCEPT BETWEEN 11/15 AND 12/1

             The X10 software which came with your CP290 has an anomaly with
        its DIM function.  The X10 system allows for 16 levels of DIM from
        fully bright to fully dim.  The X10 software allows only nine levels
        (from 90% to 10%.)  It assigns (rather arbitrarily) dim levels to
        these nine steps.  Any intermediate value the X10 software finds is
        reported as 90% dim no matter what its real value is.  If you use the
        X10 software to review dim values set by Smart10 you will not get
        correct reporting.

             The CP290 can not deal with anything more complex than day of
        the week.  For the above events to work, you must run Smart10 at
        least once a week.  This allows the program to load the events for
        the week.  You must also re-run Smart10 if one of the character
        string conditions needs to be changed.  The program can optionally
        display the events which are active for the week as it loads the
        CP290 to show you what has been selected.

             Automatically loading the CP290 once a week is a simple task if
        you use an X10 module to turn on and off your computer.  You can set
        an event to turn on the computer once a week and use the CHKTIME
        program in your AUTOEXEC.BAT file to run Smart10 when the computer is
        automatically powered on.  For instance, for your computer have a
        Module Event as follows:

                Office:Computer #A1
                    ON @ 3am SUNDAY

        And in your AUTOEXEC.BAT file have:

                CHKTIME SUN 0300
                IF ERRORLEVEL 1 GOTO SETEVENTS
                .
                .
                .
                :SETEVENTS
                Smart10
                Smart10 /S A1 OFF


        September 6, 1994            Smart10 v2.1                     Page 11

        This would turn the computer on at 3am each Sunday.  The batch file
        would check to see if it was 3am, and if so would execute Smart10 to
        load the X10.PRG file into the CP290.  Then it uses Smart10 to send
        an immediate command to turn the computer off.


        Command Line Parameters to Smart10


        Loading a file other than X10.PGM:

             Run Smart10 with the command line parameter /F:filename.
        Smart10 will read filename to get the Module Descriptions and Module
        Events to load into the CP290. The CP290 is cleared before the events
        are loaded.  Example:

                Smart10 /F:vacation.sch

        Testing a schedule without loading the CP290

             Run Smart10 with the command line parameter /T if you wish to
        check the validity of your schedule program without actually loading
        the CP290.  This option causes Smart10 to go through all its
        processing with the exception that it will not send any commands to
        the CP290.  Example:

                Smart10 /T

        Adding events to a CP290 program

             Run Smart10 with the command line parameter /A:filename.
        Smart10 will read filename to get the Module Descriptions and Module
        Events to be added to the events loaded in the CP290.  The difference
        between loading events with the /A parameter and loading from the
        default file or from a file named via the /F parameter is that the
        CP290 is not cleared first.  This means that the events described in
        filename are added to the events already loaded in the CP290.
        Example:

                Smart10 /A:oneshot

        The file loaded might contain a lawn sprinkler program with events
        defined for TODAY.  You would run Smart10 to add these events to the
        CP290 when the lawn needs watering.  Since the events are defined for
        TODAY, the CP290 will clear them out once they are done.

        Reconfiguring Smart10:

             Run Smart10 with the command line parameter /C.  This will cause
        Smart10 to present you with the configuration screen.  (See page 5
        for configuring Smart10.)  Example:

                Smart10 /C

        Resetting all modules after a power failure:

             Run Smart10 with the command line parameter /R.  Smart10 will
        load the CP290 from your Description-Event file and set each module


        September 6, 1994            Smart10 v2.1                     Page 12

        to the state it would be if the power had not failed.  Modules which
        use asterisk in place of crosshatch for the house code-unit number
        prefix are omitted from this power fail restore.  Example:

                Smart10 /R

        Display the event commands being loaded to the CP290

             Run Smart10 with the command line parameter /E and it will
        display each event as it is loaded into the CP290.  (An events which
        is not active either because its condition is false or because the
        current date is out of range with its date range will not be shown.)

                Smart10 /E

        will display the active events.  You can direct the output of this
        option to a file or the printer by adding a colon and the file name
        to the parameter.

                Smart10 /E:EVENTS.LOG

        will write the active events to the file EVENTS.LOG.

                Smart10 /E:LPT1

        will write the active events to the printer.

        Print out a module map:

             Run Smart10 with the command line parameter of Smart10 /M to
        display a map of the X10 modules you have defined in your
        module/event program.

                Smart10 /M

        will display the module map.  As with Events, you can direct the
        output of this option to a file or the printer by adding a colon and
        the file name to the parameter.

                Smart10 /M:LPT1

        will print a list of module locations and descriptions and their
        module house and unit codes.


        September 6, 1994            Smart10 v2.1                     Page 13

        Send a module control command from your computer:

             Run Smart10 with the command line parameter /S Module-ID
        Module-Event.  Module-ID is any House Code Unit Code pair.
        Module-Event is as described for the Description-Event file.  In
        addition, you may use a simple ON, OFF, or DIM command with no time,
        etc.  This is equivalent of a time of NOW.  You may omit the day list
        as well.  Then the event is set for Today or Tomorrow depending on
        the time value.  (If you select a time greater then midnight and less
        then NOW, then the event is set for Tomorrow.  You might do this by
        using NOW + 23:00 or NOW -1:00.)  These events are one time
        occurrences.  The CP290 will discard the event once the day has past.
        If you use the /S parameter, the rest of the command line is assumed
        to be the Module ID and Module Event.  Examples:

                Smart10 /S A1 OFF
                Smart10 /S A2 CANCEL OFF @ 3:15am SUN
                Smart10 /S A3 OFF NOW + 0:10

        Events which are scheduled to occur within a minute of the current
        time are issued as direct commands by Smart10.  Others are loaded as
        one time events for Today or Tomorrow.

             I use OFF NOW + 0:05 to turn off my computer when it has
        finished doing my backups.  The extra five minutes gives the tape
        drive a chance to rewind.

        Setting conditions from the command line:

             Any character string not started with a slash ("/") and not
        including a blank is noted as a condition by Smart10.  Conditions can
        be tested in Module Events.  A condition is TRUE if it appears on the
        Smart10 command line.


        September 6, 1994            Smart10 v2.1                     Page 14

        Otherwise it is FALSE.  Examples of command line conditions:

                Smart10 SomeoneIsOut GuestsAreStaying
                Smart10 MichaelIsHome

        The case of the condition is ignored.  MichaelIsOut is the same as
        MICHAELISOUT.

             You may have combinations of the above parameters on the command
        line.  Of course, if you use /S, it must be the last command line
        function.  Example:

                Smart10 MichaelIsHome /R /E

        If you have a /S command, Smart10 will not read and process the
        Description-Event file.


        CHKTIME


             CHKTIME compares the computer date and time with command line
        target date-times.  If the computer date-time is within plus or minus
        15 minutes of a target time, the DOS ERRORLEVEL value is set to
        indicate the match.  If no targets match, ERRORLEVEL is set to 0.
        The targets are compared from left to right as they appear on the
        command line.  If the first target matches, ERRORLEVEL is set to 1.
        If the second matches, ERRORLEVEL is set to 2, etc.  If multiple
        targets match, ERRORLEVEL is set to the value for the first target
        which matches.

             The sensitivity value (15 minutes) may be changed by adding a
        slash ("/") parameter to the command line.  The parameter /0:20
        changes the sensitivity value to 20 minutes.  You may set more than
        one sensitivity value.  The value applies to all target times to its
        right on the command line.

             Target times can be one of: a simple time-3:00AM; a day of the
        week and time-SAT 1230; a month  day of the week  time-AUGUST 23
        6:15PM; an ordinal number (optionally with a month)  time-2ND 0800,
        1ST NOVEMBER 4:45AM; an ordinal number  day of the week (and
        optionally IN month)  time-2ND SUNDAY 1900, 3rd SUNDAY IN JANUARY
        5:45pm.  LAST may be used as an ordinal number to signify the last
        day in the month.  If months are left out, then the current month is
        assumed.  Examples

                CHKTIME SUN 0300, 1ST SUN IN APR 0300, LAST SUN IN OCT 0300
                CHKTIME 1ST 3AM, SEPTEMBER 11 5PM

        The first example looks for 3am on Sundays.  If it happens on the
        first Sunday in April (daylight savings time starts) then ERRORLEVEL
        is set to 2.  If it happened on the last Sunday in October (daylight
        savings time ends) then ERRORLEVEL is set to 3.  On any other Sunday
        at 3am ERRORLEVEL will be set to 1.  You can use this example to
        automate changing your computer clock for daylight savings time and
        then setting events in the CP290.  Your AUTOEXEC.BAT file would look
        like the following:


        September 6, 1994            Smart10 v2.1                     Page 15

                CHKTIME SUN 0300, 1ST SUN IN APRIL 0300, LAST SUN IN OCT 0300
                IF ERRORLEVEL 3 GOTO DSTOFF
                IF ERRORLEVEL 2 GOTO DSTON
                IF ERRORLEVEL 1 GOTO SETEVENTS
                GOTO NOTTIME
                :DSTOFF
                rem "Fall back" on the last Sunday in October
                DSTIME OFF
                GOTO SETEVENTS
                :DSTON
                rem "Spring forward" on the 1st Sunday in April
                DSTIME ON
                :SETEVENTS
                Smart10
                Smart10 /s A1 off
                :NOTTIME

        The DSTIME program


             The DSTIME program is used to add or subtract an hour from your
        computer's clock.  You can use it to automate changing the clock when
        Daylight Savings time

             changes.  DSTIME ON sets the clock forward one hour and DSTIME
        OFF sets it back one hour.


        Example files


             An example autoexec batch file and Smart10 module/event program
        file have been included with this distribution.  These files
        illustrate the topics described in this document.


        Change History:


        1.0  Original Release
        1.1  Corrected CHKTIME problem with "LAST"
             Corrected SMART10 problem with cancel
             Corrected GENPGM problem with DIM values
             Corrected handling of IF expressions using "|', "&" and Parens
        1.2  Added EARLIERTHAN and LATERTHAN conditions
        1.3  Added multiple unit Module Identifications
             Fixed error in registration code
        1.4  Added the INI file for configuration parameters
             Fixed handling of BETWEEN which wraps year end
        1.5  Cleaned up syntax checking on Module line
             Enhanced GENPGM to handle multi-events, Unknown modules
             Added verbiage on what Smart10 is doing
        1.6  Reclaimed dead event slots
        1.7  Fixed random failure of Daylight Savings Time
        1.8  Added file output option for Map and Event displays
             Added Clock synchronization to the second
             Corrected syntax parsing on missing day specification
             Fixed problems with Restore and multi-events


        September 6, 1994            Smart10 v2.1                     Page 16

        1.9  Fixed problems with NOW on immediate commands
        2.0  Fixed problem with "OK to override time"
        2.1  Fixed powerfail not taking into account previous day state
             Enabled Sunrise, Sunset and Now in EARLIERTHAN, etc.
             Configure now guesses at a timezone based on longitude.
             Added undocumented commands BRIGHT and FADE
             Added full date handling (Years now allowed)
             Added NOT to ON and BETWEEN syntax
             Added STARTING and UNTIL to date handling