                                  Thinkle 
                                version 1.1
                               -------------

        Purpose
        -------

        Thinkle is a small program that interprets scripts written
        in a very simple 'C-like' language.  These scripts can be used
        to do any number of things, such as:

          a) generate ideas for short stories
          b) help you make up an interesting menu for a week's meals
          c) tell your fortune
          d) generate silly phrases and funny nonsense sentences
          e) stimulate your imagination, helping you create new
             inventions, artwork, games, or whatever

        The fundamental idea behind thinkle is to use random selection
        in a very structured way.  The unexpected twists of chance
        combine with a meaningful base system to create thought
        provoking and unique results.

        Thinkle may be one of the few shareware programs you'll ever
        use where *I* might pay *you* to use it!  See below for 
        information about this.

        Using Thinkle
        -----------

        Thinkle's command syntax is

                thinkle {file}

        Where {file} is a thinkle "script".  For example, if you
        were to try the "menu" script that comes along with the
        program, you would type:

                thinkle menu

        Once you start the program, it will first try to read the
        script file and will give you error messages if the file
        contains any syntax errors.  Assuming that's not the case,
        the next thing it will ask you for is a word to use to
        initialize the pseudo-random number generator.  It uses
        this rather than the system clock so you can repeat a 
        sequence (if you wish) by starting with the same word.

        Following this it will construct the first randomly replaced
        selection (determined by the script), and will display the
        key command options on the bottom of your screen.  The options
        are (currently):

           a -- Get another (which causes it to generate another
                selection)
           d -- Toggle "debug" mode, which is a mode that (when
                debugging is enabled) will show you the results
                of each substitution as it is made).  This is useful
                when you are constructing your own scripts.
           q -- Quit
           s -- Save the current selection.  The first time you select
                this it will ask for a file name to save it in.  If
                you select this again it will automatically append
                the selection to the end of the save file.



        Thinkle File Syntax
        -------------------

        Thinkle scripts contain "comments" and "replacements".  A comment
        can (presently) only be put in-between replacements, not within 
        a replacement, and is contained in "/*" and "*/".  For example:

           /* this is a comment */

        A replacement looks like:

        <name> : { <text1> }
               | { <text2> }
               | { <text3> }
                  ...
               | { <textN> }
               ;

        In other words, there is a keyword, followed by a colon, followed
        by one or more replacement strings enclosed in curly brackets, and
        terminated by a semicolon.  The <name> must be alphanumeric.  Each
        replacement string may cover multiple lines.  There are some
        special characters to beware of in the replacement strings:

            "}" -- curly bracket (signifies the end of the replacement)
            "$" -- dollar sign (signifies a reference to another replacement)

        The first replacement of the script file is always the one that
        is used as the basis for all of the resulting entries that you
        see while running Thinkle.

        Here is a complete example Thinkle script:

        greeting: {$hi world!}
           ;
        hi: {Hello}
            | {Hi}
            | {Howdy}
            | {Yo!}
            | {Greetings}
            ;

        When you run Thinkle on the script, the possible results you
        will see are:
          "Hello world!"
          "Hi world!"
          "Howdy world!"
          "Yo! world!"
          "Greetings world!"

        Obviously, the more layers of replacements you have, and the more
        strings per replacement, the more possible outcomes you will get.



        Money Matters
        -------------

        In order to encourage you to use Thinkle, I may give you $100
        if you send me a Thinkle script that is significantly new or
        better than the ones I'm currently distributing with Thinkle.
        The constraints are:

          1) It must be an original script or a significantly modified
             script that's better than the original.
          2) You must give me permission, in writing, to freely
             distribute it without charge.  (You must sign this.)
          3) I will decide whether or not to include it in the Thinkle
             scripts that I distribute based upon all the other
             submissions and the space available.  If I don't include
             it, I won't pay you the $100 reward.  If I do include
             it, I will pay you!
    ->    4) Due to time constraints, I will only review scripts
             submitted by "registered" owners of Thinkle.
    ->    5) I cannot be responsible for returning disks or other
             material that you send me.
          6) Please send 5 & 1/4 inch diskettes only (for now).

        You should register this shareware (as you should any) if you use
        it more than a few times.  If you register, I will send you the
        most recent copy of the program, applications, and documentation.

        In order to register, please do one of the following:

          a) Send $22 to:   Evan Lunde
                            18335 S.W. Broad Oak Ct
                            Aloha, OR 97007

                - or -

          b) Be the first person to copy this program onto a BBS system.
             (Please send enough info about the BBS and the location of
             the archive that I can verify that you did this.)

                - or -

          c) Send me original suggestions for how to improve Thinkle.
             This can be in the form of either bug reports or enhancement 
             requests.  If you are the first person to send me a suggestion,
             and if I decide to implement it, I will register you "for free".



        Copyright/License/Warranty
        --------------------------
        This document and the program file THINKLE.EXE ("the software")
        are copyrighted by the author.  The copyright owner hereby
        licenses you to: use the software; make as many copies of the
        program, scripts, and documentation as you wish; give such copies 
        to anyone; and distribute the software and documentation via
        electronic means.  There is no charge for any of the above.

        However, you are specifically prohibited from charging, or
        requesting donations, for any such copies, however made; and
        from distributing the software and/or documentation with
        commercial products without prior permission.  An exception is
        granted to not-for-profit user's groups, which are authorized to
        charge a small fee (not to exceed $8) for materials, handling,
        postage, and general overhead.  

        No copy of the software may be distributed or given away without
        this document; and this notice must not be removed.

        There is no warranty of any kind, and the copyright owner is not
        liable for damages of any kind.  By using this software,
        you agree to this.

        The software and documentation are:

                       Copyright (C) 1989 by

                            Evan Lunde
                      18335 S.W. Broad Oak Ct
                         Aloha, OR 97007


