Hello, Welcome to Bmenu ....

SETTING UP THIS DEMO DISK

  Since MSDOS is not a public domain program you will have to supply
  Your own.  Format a disk with the /s (system) switch then copy the
  contents of this disk there.Copy COMMAND.COM if the format didn't.
  Some of the menu items require MORE.COM,  copy that to the disk as 
  well. Then to see the demo boot on your new disk.

  I have prepared a sample menu that calls all of the other programs.

Contents of the disk:
 BMENU.EXE     This is a menu program.  It reads its menu file and presents
               you with a menu. You can edit the menu with any text editor.
               Once the menu is displayed you can choose menu items by pres-
	       sing the up and down arrow keys or pressing a letter key.

               When you press a letter key the menu item with that letter
               capitalized leftmost will be chosen and the pointer will move
               there. When the pointer is on the choice you want press return.
         

 ESC.COM       This program will detect the press of an escape key without
               stopping your batch file. Do you want to be given a choice
               when you run the batch file but if your not there you want
               the batch file to continue? Escape will fill that bill. I
               use escape in my autoexec.bat to controll some options while
               I start my computer. If I am doing my normal work I can just
               walk away while its booting, if I am doing somthing special
               then I hit escape at the proper time to modify my bootup
               environment.

To use in a batch file:
               Esc sets the dos batch variable ERRORLEVEL according to what
               goes on while it is running while it is running. If escape
               is pressed at the proper time then Errorlevel is set to 2,
	       If any key is pressed then errorlevel is set to 1, and
	       if no key is pressed then errorlevel is set to 0.



                  ECHO PRESS ESCAPE TO PREFORM SPECIAL PROCCESSING
		  ECHO PRESS ANY OTHER KEY TO ABORT
		  ESC
                  IF ERRORLEVEL 2 GOTO SPECIAL
		  IF ERRORLEVEL 1 GOTO ABORT
                      -- normal proccessing --
                          .
                          .
                          .

                 :SPECIAL
                      -- special proccessing --
		 :ABORT
		          -- abort code --


 MENUGET.EXE   Build menus into your batch files! Menuget waits and accepts
               a single ascii character then creates a small file that you
               can test for in your batch file. When Menuget exits there
               will be a file named MENU$<x>.$$$, where x is the letter the
               user pressed.

                    (Display your menu (use type <filename> or echo))
                    ECHO  A  Do "A" stuff
                    ECHO  B  Do "B" stuff
                    :GETAGAIN
		    MENUGET
                    IF EXIST  MENU$A.$$$ GOTO ASTUFF
                    IF EXIST  MENU$B.$$$ GOTO BSTUFF
                    IF EXIST  MENU$<any letter in your menu>.$$$ <Do what
                            you need to for that menu item>
                    ECHO An error message because the user picked the
                    ECHO wrong thing...
                    GOTO GETAGAIN
                    :ASTUFF
                    .
                    .
                    .
                    GOTO SKIPOTHERS
                    :BSTUFF
                    .
                    .
                    .
                    GOTO SKIPOTHERS
                    .
                    .
                    :SKIPOTHERS
                    ---- continue with other things... ----




 DATIME.EXE    I got tired of entering the date and time on separate lines
               and having to enter it just the way the computer wanted.
               Datime accepts the date and the time in any order on one line
               and in many formats:

               HH:MM{:SS} {AM|PM}               10:25  13:45:20  1:45 pm
               D{D}/M{M}/YY{YY}                 3/5/85 10/4/85   10/12/1985
               D{D}-M{M}-YY{YY}                 3-5-85 10-4-85   10-12-1985
               MONTH  D{D},YY{YY}               MARCH 5,1985     MAY 12,2010
	       
               {optional stuff}

LINES.EXE     These three are graphic demonsrations. Great to watch. Only
EGGS.EXE      Lisajous needs an input, the others will run unattended but
LISAJOUS.EXE  can accepth input.

COOKIE.EXE    A fortune cookie program, randomly selects a peice of wisdom
              from COOKIE.DAT for your enjoyment. COOKIE.DAT may be edited
              with any ascii editor (wordsar in non-document...).

HANGMAN.EXE   Can you guess the word before its too late?? The program
              chooses from over 1000 words, and you can add words of your
              own. Words are kept in WORDS.


BMENU.MNU File Format:

  The first line of the file Bmenu gives the menu title. This data will be
  written in the box above the menu. The text is taken littaraly and should
  not be enclosed in any delimiters

  Each of the following lines deals with a menu item. For each menu item
  there should be a line in the BMENU.MNU file. Each will have this format:

  <PROMPT>,<MENU ITEM>,<COMMAND A>,<COMMAND B>

 Prompt Field Format:

  P<text>    The text will be used as a prompt if this menu item is
             selected to prompt for an input string.  If no text is
             provided the prompt will be `Enter Parameter'.

  -          A dash in this field marks a non menu item. These may
             be used to display static text that many not be selected
             as an action. Note `-,,,' will produce an blank,
             non-selectable line in your menu.

  Color control Commands:
             A special subset of comment fields are the color control
             commands. Each of these commands control the color of 
             particular parts of the display. For each part the forground
             and background colors can be defined.

             -POINTER,fg,bg  Sets the foreground and background colors for
                             the pointer.

             -BORDER,fg,bg   Sets the foreground and background colors for
                             the border around the menu.
   
             -TEXT,fg,bg     Sets the foreground and background colors for
                             the text displayed on the screen

             Colors are defined using the same parameters as the color 
             command from basic. Here is the list:

               Background Colors       Foreground Colors
                 0  Black                8 Grey
                 1  Blue                 9 Light Blue
                 2  Green               10 Light Green
                 3  Cyan                11 Light Cyan
                 4  Red                 12 Light Red
                 5  Magenta             13 Light Magenta
                 6  Brown               14 Yellow
                 7  White               15 Intense White

             Background colors may be used in the foreground. Adding 16 to
             any color will cause that item to blink (foreground only).

  Pointer Arrow Display
             You can select the charactors that make up the pointer
             arrow. What ever you enter will be used.

             Example
               -arrow,Arrowtext> ,,
               -arrow,,,

             The second example displays no pointer, this is good for
             menus where you have set the pointer color so the pointed
             to item is very visible (such as reverse video).

  Help File

             Bmenu displays the contents of a help file whenever the `?' key
             is pressed. The name of this file may be specified in the
             menu file. If no filename is specified then the default of
             BMENU.MNU is used.

             -help,{filename},,



  X          Any other character marks a menu item that execute its
             action without prompting for input


             Case of the first charachter in the prompt field controlls the
             inclusion of the "Strike any key..." prompt after the menu
             selection finishes. Capitalize if no pause is desired, use
             lower case if you want the "Strike any Key... " prompt.


  Menu Item Field:

      Text entered in this field will be shown on the menu. Leading and
      trailing spaces are ignored. The text is centered. If the prompt
      field is a `-' the the pointer will not come to this text. If the
      user enters a letter while the menu is displayed, the pointer is 
      moved to the menu item that has that letter capitalized closest to
      the begining.
      
      Example:    All these menu items are together in one menu.
      
         Menu items:    Press to select	Note 
          xAxYx	            Y		A wont work because of last line
      	  xxxxB             B		This is the only menu with a capital B
      	  Cxxxx             C		
      	  AxxDx           A or D	An A in the first column beats
      	  				any other A
      				
      				
      
  Command A and Command B:

      A dos command may be split between these two fields. When the user
      is prompted for input (P<text> in the prompt field) that input string
      is placed between CommandA and CommandB. "'" may be used to enclose
      parts of a command that have important spaces (example: 'dir ' the
      space after dir is important because the user will be prompted for
      a file name and there must be at least one space between the file 
      name and the command DIR.)


 Hints

  Sub Menus:

    Bmenu.exe reads the file Bmenu.mnu each time the menu is displayed.
    If you were to copy a new menu file to Bmenu.mnu a new menu will be
    displayed when bmenu returns. To do this NONE of you menus must  be
    named Bmenu.mnu. This way any of them may be copied with one command
    to bmenu Example:

    Main.mnu

   Main Menu
   X,Call First,Copy first.mnu bmenu.mnu,
   X,Call Second,Copy Second.mnu bmenu.mnu,
   X,END,,

   First.mnu

   First Menu
   X,Call Main,copy Main.mnu Bmenu.mnu,
   X,Call Second,copy second.mnu bmenu.mnu
   x,END,,


	  ect...

   Each submenu is loaded when it is copyed into bmenu.mnu.  Any sort of
   menu structure may be built.


   Calling Batch files from menus:

    X,Call the batch file,command /c <batch filename>,

 Setting Up Bmenu:

  Copy BMENU.EXE to a disk with a system.

  Write your menu files using any ascii text editor. (wordstar in
  non-document,edlin,sidekick notepad...) or copy BMENU.MNU

  If you are using a multiple level menu be sure that the main menu is
  copied to bmenu.mnu to start with.

  Execute bmenu.exe  (type BMENU) when the menu appears press Escape. This
  step will generate a file MENU.BAT. To run bmenu type MENU. If you wish
  bmenu to start automaticaly, put MENU at the end of your autoexec.bat
  file

