Dec 282017
Simple Menu System that is easy to use, and has many nice features.
File MENU33.ZIP from The Programmer’s Corner in
Category File Managers
Simple Menu System that is easy to use, and has many nice features.
File Name File Size Zip Size Zip Type
DEMO.FIL 4074 862 deflated
MENU.DOC 27193 8192 deflated
MENU.EXE 18416 10997 deflated
MSETUP.EXE 18296 10622 deflated

Download File MENU33.ZIP Here

Contents of the MENU.DOC file

MENU -- Automatic DOS Menu

Version 3.3

(c) 1987, John B. Harrell, III

4 September 1987

Automatic DOS MENU -- Version 3.3

Table of Contents

DISTRIBUTION RIGHTS . . . . . . . . . . . . . . . . . . . . . . . . 1

INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

HARDWARE REQUIREMENTS . . . . . . . . . . . . . . . . . . . . . . . 2

GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . . . . . 3

A BRIEF DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . 3

SETTING UP YOUR MENU . . . . . . . . . . . . . . . . . . . . . . . 5

Setting MENU Functions . . . . . . . . . . . . . . . . . . . . 6

Selecting MENU Colors . . . . . . . . . . . . . . . . . . . . . 8

Setting the Screen Blanking Time Delay . . . . . . . . . . . . 9

Setting the MENU Title . . . . . . . . . . . . . . . . . . . . 9

Exiting MSETUP and Returning to MENU . . . . . . . . . . . . . 9

FINAL THOUGHTS AND SUGGESTIONS . . . . . . . . . . . . . . . . . . 10

MENU Ver 3.3 Page i

Automatic DOS MENU -- Version 3.3


MENU is a public domain program written and compiled using Borland
International's Turbo C compiler. It is distributed as an archive
containing four files: MENU.EXE, MSETUP.EXE, MENU.DOC, and DEMO.FIL.
You may freely distribute this archive and associated material. You
may charge only a nominal fee for this service to cover costs of the
magnetic media and mailing. This material is solely intended as a
single-user environment. If you wish to use this material in a
corporate environment, I will be willing to discuss suitable


MENU Version 3.3 represents a complete restructuring of the basic
system that I first presented. Many new features were added to the new
MENU. Most importantly, it now virtually frees you from having to
construct simple batch files to link to the menu. As these were
inordinate "space wasters" on your disk and slow to execute, this
significant change has accomplished two things: MENU runs a lot faster
and you can reclaim all of your wasted disk space.

The second significant change was automating the installation
process. Prior versions of MENU required you to laboriously construct
a text file of all your menu options and color selections which you
almost never got right the first time. This version of MENU fully
automates this process by providing a prompt-driven "setup" utility
that can be executed directly from the MENU or as a separate stand-
alone program.

Version 3.3 is a significant change from the initial release of
version 3.0 and implements the following additional features: use of
the 'spawn' function to prevent loading another copy of COMMAND.COM,
(optional) pausing to allow entry of additional command line para-
meters, (optional) pausing on return from any menu option, and revision
of the installation procedure to provide additional error checking for
data entry as well as the new options. Version 3.3 also uses the
'spawn' feature to load COMMAND.COM when you select the 'DOS Prompt'
option as well as using it to load the installation utility. Both of
these features provide a significant performance increase, especially

MENU Ver 3.3 Page 1

Automatic DOS MENU -- Version 3.3

if COMMAND.COM is resident on a RAM disk with the COMSPEC environment
variable pointing to its location.

Why use a menu? That's a fair question. I find that the proper
level of assistance aids even a power user. Again, what's proper?
Well, that's a matter of opinion but I can tell you that I certainly
find it easier to press the "A" key on my computer and execute Word-
Perfect rather than the following list of commands:

CD \

And since I must "bounce" around a lot during the day, I find that
I achieve a great amount of time savings. Using this simple MENU
scheme, I manage over 1,500 files in 89 subdirectories with simple


MENU will run on any system that has a monochrome or color display
adapter and uses BIOS calls similar to the IBM compatibles. This
includes equipment like the Tandy Model 2000 which, while totally
hardware incompatible, maintains a very close relationship with the
IBM-style BIOS system.

MENU really performs best on a hard disk system as a directory and
application manager. However, MENU certainly does run on a floppy disk
system and serves as a helpful user interface. A minimum of 256 KB of
memory is required to run other applications and some of the larger
ones may require 512K.

MENU Ver 3.3 Page 2

Automatic DOS MENU -- Version 3.3


This archive file contains two executable programs (MENU.EXE and
MSETUP.EXE) which are the heart of the MENU system. Simply copy these
two files onto a floppy disk that you will use to start the system or
into a subdirectory on your hard disk that is located in your file
search path (DOS Path command). There is also a demonstration menu
setup file (DEMO.FIL) that contains a menu constructed for my system
which you may copy into the same directory as the executable menu
files. MENU and MSETUP will search all of the directories in the DOS
Path statement looking for the startup file -- more on this later.


Now, let's take a look at the MENU (I assume that you have
installed it where you want to place it). MENU allows one command line
parameter which may be the name of the setup file to read. This name
can contain a full path name as well as a file name. MENU searches in
this order for the specified file: if a pathname/filename is provided,
the setup file must exist where this name says it does. If no pathname
is present, MENU searches the current directory looking for the
filename; if it does not exist in the current directory, MENU searches
each of the paths specified in the PATH environment variable in the
order that they are listed. The default file name is MENU.FIL. Now,
make sure you are in the subdirectory (or on the floppy disk) where you
placed MENU and type the command 'MENU DEMO.FIL' and press the return
key. You should see a figure similar to the one below:

MENU Ver 3.3 Page 3

Automatic DOS MENU -- Version 3.3

| Saturday, 29 August 1987 |
| J. B. Harrell's Super Little GridCase Menu |
| MENU Version 3.3 |
| | |
| A. WordPerfect V4.2 Word Processor | N. Turbo Pascal Programming |
| B. WordPerfect V4.2 Program Editor | O. Turbo C Programming |
| C. WordPerfect Calculator | P. Microsoft Assembler Programming |
| D. WordPerfect Calendar | Q. A86 Assembler Programming |
| E. WordPerfect Notebook | |
| F. WordPerfect File Manager | |
| G. WordPerfect Macro Editor | T. DED - The Disk Editor |
| H. PC Tools Files Manager | U. Norton's Utilities Integrator |
| I. Set Up Modem for ProComm | V. Norton's Utilities |
| J. Set Up Serial Port For Kermit | W. Display Disk Allocation Map |
| K. Kermit Ver 2.29 File Transfer | X. Fast Directory Tree Display |
| L. ProComm V2.42 Communications | Y. Map Memory Resident Modules |
| | Z. Walking Lines Graphics Display |
| | |
| Press a letter key for your selection |
| 21:42:16 |
| F1 - DOS Prompt, F2 - DOS Command, F3 - Format, AF1 - Exit, AF2 - Setup |

This menu display provides twenty-six executable letter options
(some are blank and do not show because they are not installed), a
title line, the date and time, and several menu commands which may be
executed using the function keys. Note that the time is changing each
second. If you wait about 30 seconds, MENU will clear the screen and
place a moving prompt on the screen. The demonstration file is
installed with this delay set to 30 seconds.

Pressing any one of the letters corresponding to an installed
option does several things for you. First, MENU changes directories
(and disk drives, if necessary) to the one you specified. Next the
program you entered is concatenated with any of the command line
parameters. If you selected optional entry of additional command line
parameters, MENU now pauses to let you enter them and will concatenate
this string with the remainder of the command line. This new command
line is executed. When the command terminates, MENU will use the state
of an internal flag to determine whether it should pause before
returning to the menu. This is useful if you have executed a program
or DOS command whose output will be over-written by the menu. Lastly,

MENU Ver 3.3 Page 4

Automatic DOS MENU -- Version 3.3

MENU returns to the directory it was started from and restores the MENU
display to the screen.

MENU uses several of the function keys for various additional
tasks. F1 allows you to suspend the menu and use the normal DOS
command prompt. F2 opens a DOS command-line window and lets you type
any command that you could type at a normal DOS prompt. F3 prompts you
through a sequence that sets up the proper command for formatting
either a data or system disk -- no more hard disk problems. ALT-F1
terminates MENU completely while ALT-F2 executes the setup utility.
When you terminate MSETUP, MENU automatically re-initializes with the
updated information.


The second program, MSETUP.EXE, manipulates the data structures
used by MENU and provides an easy interface for changing the informa-
tion. You can invoke MSETUP directly from MENU by pressing the ALT-F2
keys. MENU passes the name of the current setup file to MSETUP so any
changes are made in the correct file. This feature makes implementa-
tion of multi-level menus for various applications a snap! If you run
MSETUP from the command line directly, it also defaults to the file
name MENU.FIL and has the same searching algorithm as MENU.

Exit from the demonstration menu by pressing the ALT-F1 keys to
return to the DOS prompt. Select the path name where you would like
the MENU setup file to reside and the file name for it. For example, I
elected to keep the menu setup file as MENU.FIL residing in the
\DOS\BIN subdirectory on my hard disk. To begin the installation, use
either MENU or MSETUP with the name you select:


I recommend leaving the name of your primary menu as MENU.FIL because
you can always quickly load the menu by simply typing MENU at the DOS
prompt. I began the installation process using MENU instead of using
MSETUP because whenever I exit the setup mode, MENU automatically
reinitializes with the changed information allowing immediate checkout
of the modifications. If you have made a mistake (wrong directory,
etc.) MENU will tell you about it -- simply press the ALT-F2 key and
make the required changes using MSETUP.

MENU Ver 3.3 Page 5

Automatic DOS MENU -- Version 3.3

a. Setting MENU Functions:

The first operations that you want to perform are to establish
the option entries for each of your applications. In the demonstration
menu, my first option was WordPerfect Version 4.2. Here's how I set
that up: WordPerfect is contained in subdirectory \WP on my hard disk
and I wrote a macro file for WordPerfect to set some initial para-
meters. It is a normal program file, I do not desire any additional
command line parameters, and it should not pause on return to the menu.
Press the "A" key to select the first option and then press the RETURN
key. Below the informational text at the top of the screen, you'll see
a display similar to the one below (but the actual data areas are blank
as this is a new menu). The information listed below tells MENU how to
make it perform the task I outlined above:

Enter entry title: WordPerfect V4.2 Word Processor

Enter program name: WP.EXE

Enter starting dir: C:\WP

Enter command line: /d-c:\wp /m-setup

Param Prompt (Y/N): N
Pause on Ret (Y/N): N
Command/Batch (Y/N): N

The 'entry title' is the name that will be displayed when the
menu is on the screen. Note that the highlighted screen area for this
item means that you can type in the 'box' provided. Pressing RETURN at
the beginning of the line tells MSETUP that you are happy with the
current contents and want to advance to the next item. Pressing ESCAPE
will instantly clear whatever you have typed and restore the text to
the original version. Pressing any other key causes the original text
to clear and new text will be entered -- press RETURN to store this new
text when you are done and advance the next item.

The 'program name' entry is the actual name of the program just
as you would type it in from the DOS command line. DOS (and MENU)
searches for COM files, followed by EXE files, and last for BAT files.

MENU Ver 3.3 Page 6

Automatic DOS MENU -- Version 3.3

The program's extension (i.e., EXE) is not required in this entry but
does speed the searching algorithm.

The 'starting dir' is the initial directory where you want to
begin executing the application named above. This DOES NOT have to be
the place where the 'program name' is located as MENU uses DOS to
search through the directories listed in the Path statement if it
cannot find the program. The directory name, if present, consists of a
path name and, optionally, a disk drive designation in the standard DOS
format. The drive does not have to be the same as MENU's current drive
-- MENU handles the change automatically.

The directory name for this entry may be left blank if there is
no particular reason to use one. MENU remembers the directory that it
was started from and always begins task execution in this directory.
If a directory change is required, you should always specify the
complete path name as MENU accepts exactly what you type -- remember,
if you don't begin your path name with the leading '\' and MENU does
not run from the root directory, it will be impossible to locate
subdirectories correctly. Also, the directory entry should be typed
without leading blanks. No matter what the application task does to
the directory, MENU always returns to its starting point when the task
has completed.

The next item is the command line parameters that you want to
pass to your application. Type them just exactly as you would type
them at the DOS prompt. My example above uses two parameters for
WordPerfect and you can use as many as you can fit into the allocated
space for the parameter string.

The 'Param Prompt' option lets you select an optional command
parameter window that will open just prior to the menu items' execu-
tion. Use this window as a command line to type any additional
parameters you need and press the Enter key to execute the command.

The next option, 'Pause on return', allows you to signify to
MENU that the command you will be executing writes to the screen and
requires a pause when it is finished so you may read the data. For
example, you may want to install a DOS directory command as a menu
option (with optional command line parameters). When the DIR command
executes, it will automatically return to MENU unless you use the
'pause' option destroying the displayed directory information.

The last item is used when you install a DOS command or batch
file that will be executed from the MENU. MENU preferentially will not
load another copy of COMMAND.COM for normal program execution. The
command interpreter IS required if you want to use an INTERNAL DOS
command or a batch file.

MENU Ver 3.3 Page 7

Automatic DOS MENU -- Version 3.3

b. Selecting MENU Colors:

From the main MSETUP menu, press the F1 key to start the screen
color selection process. MSETUP examines the video mode and uses
preset values if you are using a monochrome adapter or a black-and-
white monitor on your computer. Otherwise, MSETUP will display the
full color map of 128 possible choices for each of the four color
selections in a format similar to:

MENU Color Installation

| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Text Text Text Text Text Text Text Text |
| Default Text Text Text Text Text Text Text |

Select color for the main menu body
to move, to select

Each column is displayed with one background color while each
of the sixteen entries in a column is displayed in one selection of
foreground color. The word 'Text' is used to represent any entry while
the current value for the entry is shown using the word 'Default'. The
cursor blinks on the current 'default' or 'selected' item to aid you in

MENU Ver 3.3 Page 8

Automatic DOS MENU -- Version 3.3

visually locating it. As you move the cursor, the displayed word
changes to 'Select' to prompt you to make a choice.

Use any of the four arrow keys to move the cursor to the color
selection you want and press Return. You will make four selections of
colors: one for the main menu body, one for the title and prompts area,
one for the first window to open, and one for the second window to
open. You can see the effects of these changes by watching the bottom
line of the display. Each key area has a small token representing it
written in the colors selected.

c. Setting the Screen Blanking Time Delay:

After the fourth color selection (or acknowledging that you are
using a monochrome display, you will be able to select the time delay
that MENU will use prior to blanking the display. The Up and Down
Arrow keys change the time value in increments of one second. The Page
Up and Page Down keys change the time delay in increments of one minute
(60 seconds). The time delay may be selected anywhere in the range of
1 to 32,000 seconds (almost 9 hours).

d. Setting the MENU Title:

Use the F3 key to type the title line that you will see
displayed at the top of the menu. Editing is the same as for the
separate menu options.

e. Exiting MSETUP and Returning to MENU:

When you are ready to exit from MSETUP, you can exit and save
your work by pressing the F2 key. If MSETUP was invoked from MENU, it
will write the file back to the same one that MENU started with.
Otherwise, MSETUP will use its own startup information: either the
command-line parameter or the default name of MENU.FIL.

MENU Ver 3.3 Page 9

Automatic DOS MENU -- Version 3.3

You may also press the ALT-F1 key and abort without saving your
changes. In this case, MSETUP merely exits and, if invoked from MENU,
MENU will restart with the untouched information.


MENU uses COMMAND.COM a lot -- it may load it for each command
and/or function that is processed. MENU does read the DOS environment
and will load COMMAND.COM from where the variable COMSPEC points. You
can significantly improve the menu shell's performance by locating
COMMAND.COM on a small RAM disk and pointing COMSPEC there.

Remember that MENU will also search for its supporting startup file
by looking through the directories contained in your DOS Path variable.
You can easily set up a second level menu by using one option on the
primary MENU to invoke the subordinate one with another directory. If
you do this, make sure that the menu setup file passed as a parameter
DOES NOT contain a path separator (either '/' or '\') if you want to
use this path searching feature as these separators will limit the
search to the NAMED PATH on the command line.

Want to keep people from changing the MENU by invoking MSETUP?
Simply delete it from your hard disk or "hide" it in a subdirectory
that is NOT in the current Path structure. In the former case, you
will need to have MSETUP on a floppy if you desire to make changes
while, in the latter case, you will only need to remember where you hid
the program. Of course, others may, then, also find it.

I would like to hear your suggestions, comments, and, especially,
your reports of any problems encountered. I can be contacted on
CompuServe [73016,1326], on DELPHI [DOSWIZZ], or via the Defense Data
Network, ArpaNet, or MilNet [[email protected]]. If you cannot contact
me readily through these services, write to me at the following

LCDR John B. Harrell, III
1519-A Carswell Circle
Bolling Air Force Base
Washington, DC 20336

MENU Ver 3.3 Page 10

 December 28, 2017  Add comments

Leave a Reply