                         QUIKMENU (tm) Version 1.0
                          Copyright (C) 1989-1995
                             By Kerry B. Rogers

Welcome to the world of custom menu-making! QUIKMENU (qm.exe) is designed 
to allow the average user (or advanced for that matter) to create an 
instantly recallable master menu system that can be independent of any 
other menus or chained to an unlimited number of menus from DOS.

Some possible applications of QUIKMENU are:

     1. Run from a batch file and allow the kids to choose from a list
        of games to play. This keeps less knowledgable persons from 
        entering "potentially dangerous" commands on their way to their
        ultimate goal (as well as elimination of some of the fear 
        associated with the supposed "complexity" of computers).

     2. Through the "+" command, full modem support can be obtained to
        allow one to set up a list of catagorically sorted phone numbers
        to dial. Chaining can be set up to jump from phone list to phone
        list and dial a number via your modem at the press of the 
        ENTER key. You can send any modem commands to your modem, from
        ATH1 (phone off hook) to ATS11=55 (fast tone dialing) to ATH0 
        (hangup). Keep in mind that all modem commands must be preceded
        by an "AT" for "attention". This is the HAYES (tm) Standard.

     3. The "!" command allows stacking of DOS commands and program calls
        to allow a variety of options, like possibly, file maintenance 
        after performing a certain command or running a certain program.

     4. Sort your favorite program calls by catagory... have a menu 
        for DISK PROGRAMS... one for FILE UTILITIES... one for GAMES 
        ...one for PROGRAMMING... one for AUTODIAL NUMBERS... one for 
        EDITORS/WORD PROCESSING... one to EDIT ALL MENUS... one for 
        just about ANYTHING! Chain them all together to create a custom
        access main menuing environment the way YOU want it.

Included in this release are the data files MAINMENU, DOSFUNCT, and EDITMENU.
Data files are simply QUIKMENU's source for descriptive text that, when high-
lighted & chosen with the ENTER key, point to another line (the following one)
that contains the commands for QUIKMENU to execute. MAINMENU is the only re-
quired data file as it is the default data file QM accesses in the event that
your invocation has no filename following it in the parameter field. Using the
included "QMSETUP.EXE" program, you can change the default data file name to
whatever you want. YOU MUST ensure that "QM.EXE" exists in the same directory,
though, while QMSETUP is in operation. QMSETUP writes the name of the default
data file name you want to use directly to QM.EXE, so, you may define a dif-
ferent default startup data file name for each copy of QM.EXE that exists on
your drive. Of course, to have more than one copy of QM.EXE in the same dir-
ectory (perhaps in your path) you will have to rename QM.EXE to something else
for each modified copy.

The additions of DOSFUNCT and EDITMENU are intended to show the chaining fea-
ture that allows users to link their data files together. This enables you to
call menus from within other menus (even create a closed loop of menu calls).

SETUP:
        Initially you must place the four files MAINMENU, DOSFUNCT, EDITMENU,
and QUIKMENU.DOC in the root directory. The reason for this is simple. To save
on a considerable amount of programming, I have NOT included a "disk-wide"
search feature that can locate the default MAINMENU data file. This file is
the file QUIKMENU accesses in the event that you don't specify a name of a
menu for it to use. To avoid a "file not found" error and a program halt
(if the default file happens to be located in some other directory), I have
elected to place MAINMENU in the root directory... everyone has a root dir-
ectory! As mentioned earlier, you may change this with QMSETUP.EXE. The
DOSFUNCT, EDITMENU, and QUIKMENU.DOC files are placed there only because,
again, I don't know what "your" present PATH specifications are and since
everyone has a root directory, it is the safest way to bring the demo to you
in a error-free environment.  After you are ready to set up the menuing
environment for yourself, any data files you set up may be placed anywhere
you want as long as you specify the full pathname (i.e. "C:\DATA\DOSFUNCT")
when you call them. They are just there, at first, for clarity in training.

You must either be in the same directory, or enter the full path name to access
programs you call or data files you jump to from inside QUIKMENU. The exception
to this, of course, is that a call to a program existing in your command path
may also be accessed regardless of your present working directory. See the DOS
manual for more on PATH SPECIFICATIONS.

Upon invoking QUIKMENU, you'll get a window designed to show-off some of the
features of QM. Use the cursor keys to move around, press ENTER or RETURN to
select, or press ESCAPE to abort the menu.

COMMAND LINE SYNTAX:

        From DOS you may type...  "qm [filename.ext]"

        Where "filename.ext" is the name of the data file conatining
        the instructions for QM.

        Leave off the quotes. They are there to delimit the command
        line. If you don't include a data file name, QM defaults to
        the name "\MAINMENU" (the "\" denotes root directory). Note
        the space after "qm". This tells QM that the name to follow
        is the data file you want to access instead of the default
        "\MAINMENU". QM will also tailor itsself to default to the
        data file name you may have already defined using QMSETUP.

DATA FILE SYNTAX:

        Take a look at the three data files included MAINMENU, DOSFUNCT,
        and EDITMENU and, if possible, print them out while reading on to
        make the descriptions clearer. Please note: MAINMENU, DOSFUNCT, and
        EDITMENU have no extensions. You may name your custom data files
        absolutely anything you want BUT MAINMENU MUST REMAIN NAMED AS IT
        IS OR QUIKMENU WILL RESULT IN A FILE NOT FOUND ERROR. It is this name
        that it is looking for in the event you don't specify a filename.
        To change this, use the QMSETUP program.

        Ironically, DOS directories named the same as files that have no
        extensions cause various naming convention conflicts. For this reason
        you shouldn't try to have a data file and sub-directory with the
        same names sitting in the same directory.

        The first line of any data file you create MUST HAVE THE NAME
        THAT YOU WANT DISPLAYED IN THE TITLE AREA OF THE MENU WINDOW.
        After that, the syntax is simply:

          Title of this menu (1st line of data file)
          description line
          command line
          description line
          command line
          ... etc ...

        The "description line" is the text you want displayed in the window
        and can be highlighted within the window to execute the command 
        line that follows it in the data file.

        The "command line" is either a special "QUIKMENU internal command"
        or a standard DOS command that you would regularly type from DOS.
        This "DOS" command can be in different forms. It can be a program
        name that you wish to execute, a DOS command (like "dir"), or, to
        be honest, ANYTHING you can type from DOS. The only exception to 
        this is changing the parameters in the "SET" environment table. I
        have found that this doesn't work as QM drops to a shell to perform
        the command and any saved parameters are discarded when returning 
        to the parent process. Sorry. More about "internal" commands will
        follow.

        The maximum allowed description and command line pairs is 20. This 
        means that any information after the 41st recognized line (blank
        lines are ignored and the count stops until text is encountered)
        is ignored and you may use as many lines as you deem necessary after
        the 41st interpreted line to, for instance, store alternate commands
        to move up into the body of data later, or even as a scrapbook note
        area or comment area. This is your perrogative. Mapwise, the data
        file looks like this:

        line 1: title line
        line 2: Descriptive text to display describing the following line
        line 3: Commands or program calls as described in last line
        lines 4 & 5: same as 2 & 3
        lines 6 & 7: same as 2 & 3
        lines 8 & 9.... and so on
        lines 40 & 41: same as 2 & 3
        line 42 to infinite number of lines: whatever you want

INTERNAL COMMAND SYNTAX:

        As described earlier, there are some internal commands that 
may be addressed from the data files you set up that will perform in 
the following manner:

     1. "!" allows command stacking within the data file
     2. "+" allows strings to be sent to comm port 1 or 2
     3. "$" allows chaining (or linking) to call another data file
     4. "&" allows recursive execution.

The data file syntax is: <symbol><space><text> (except for no. 4 above)

        where: <symbol> is one of the above symbols (!+$).
               <space> is required to separate the text from the symbol
               <text> is the command(s) or data file name as described below

THE "!" SYMBOL:

        The following is an example:

! cls;dir;pause;dir/w;pause;time;pause;cls 
                                
ĳĳĳĳĳĳĳĳ Here comes stacked commands
   ĳĳĳĳĳĳĳ clear the screen 
       ĳĳĳĳĳĳ display long directory
            ĳĳĳĳĳ pause
                  ĳĳĳĳ display wide directory
                        ĳĳĳ pause
                             ĳĳ run the "time" program
                                   ĳ pause
                                         clear the screen

Note that all of the above commands are separated by a semi-colon (;). 
This is required. Also, again, a space is required after the "!". 

THE "+" SYMBOL:

        The following is an example:

+ 2;atd1-555-1212&
             
ĳĳ Here comes modem commands.
  ĳ Comm Port (1 or 2).
   ĳ Semicolon. A required delimiter.
    ĳ Your command string (should begin with "at".
                  Recursive execute symbol. See Below.

Note that a space comes between every parameter, including the "+" 
symbol. QUIKMENU searches for the semicolon and sets the pointer to
the string you want passed as the character AFTER the semicolon (;). 
Because of this, there must be no spaces after the semicolon unless
you want to pass blanks to your modem (I don't know why...).

THE "$" SYMBOL:

        The following is an example:

$ games.dat
     
ĳ Here comes the name of the next data file you want to jump to
       The name of the data file to interpret

Once again, the space is required after the "$" symbol. This line 
tells QUIKMENU to immediately re-initialize itself and execute again 
using the file "games.dat" instead of the default "menustuf.dat" (or 
whatever you used previously). The "&" symbol on the end of this line 
would be useless, as you will see in the text to follow.

THE "&" SYMBOL:

        The following is an example:

qfiler&
     
   ĳ Run the program "QFILER.EXE" (by Ken Flee...awesome program...).
       Upon exiting, re-invoke last menu.

The "&" symbol can be used after any command line except for the "$" (alternate
data file). The purpose of this symbol is to allow faster notation while typing
in a data file to allow the re-execution of the same menu that the command was
executed from.

I hope you enjoy this program. I have MANY enhancements planned. If 
you find it in your heart, please donate $4 to cover the cost of 
distribution and time invested. I'd surely appreciate it. If you send 
$25 I'll place you on the owner's list and keep you informed of all 
future updates (as well as provide your next one free) and send you a 
list of other helpful programs I've written. My address is:

                Kerry B. Rogers
		CServe 71514,735

In the spirit of true programming, I must say that QUIKMENU was made 
possible only through the excellent windowing programming of Dave 
Evers. Dave has donated his WINDOW TOOLS 3.0 window programming 
package to the public domain at no cost or royalty. If you're 
interested in Dave's works (which grow day to day) drop him a line! 
The address is:

                Quincy Software Works
                2500 Larch Rd. #58
                Quincy, Illinios 62301
                C/O Dave Evers

Tell him Kerry sent ya! (and give a plug for my program...I don't even 
know if he knows that I wrote it or even knows me for that matter...).

Also, I'd like to thank Tim Hudson for his interrupt-level research 
and infinite availability. He's a great friend!

Enjoy! Caio!


