Qascade - A Review
   By Timothy Swenson

Qascade (pronounced 'Cascade') is the latest freeware utility
from Jonathan Hudson.  Qascade is a user-defined menu system, not
unlike  the "Start" button in Windows95.  Qascade gets its name
because a menu can have submenus, which can have submenus, and so
on, looking as if  the menus cascade from each other.  The only
requirements for Qascade  are the Pointer Environment and
Environment Variable (env_bin) support.

Qascade allows the user to totally define the menu structure.  A
menu item  consists of either a selectable item or a submenu.
Each submenu also consists of selectable items or submenus. This
can continue until you either run out of memory or screen.
Selectable items are selections that execute programs, Things,
Mbasic or SBasic programs.  

When Qascade is executed it appears as a button.  When you select
the button, the main menu pops up.  From there you can select a
menu item, or select a submenu.  When you select a submenu, it
pops up, a little lower and to the right of the main menu.  This
continues on until you find the selection you want.

The purpose of Qascade is to provide a single menu system that
can replace one or more other menu systems.  It can be used as a
primary user interface for the QL.  One could run all of their QL
programs straight from the Qascade menu system.

The flexibility of Qascade comes from a configuration (_rc) file.
This files defines what the menu items are and what programs they
will execute.  This file is read when Qascade is executed.  You
can also force Qascade to reload the file by hitting ESC when you
have the mouse cursor over the Qascade button.  This way if you
change the _rc file you don't need to re-execute Qascade.  You
can name the file what ever you  want, meaning you could have
more than one file.  Qascade knows what the file name is through
an environment variable.  You set the variable with a command

   setenv "QASCADE_RC=flp1_qascade_rc"

Capitalization on QASCADE_RC is important and needed.  You can
either type this command in each time you execute Qascade, or you
can put it in a BOOT file.

The structure of the RC file is defined as:


Key is one of the following:

   EXEC  - Start an executable program
   ETHG  - Start an executable Thing
   MBAS  - Start a MultiBASIC session
   SBAS  - Start an SBASIC session
   TITLE - Define a new menu title
   MENU  - Start a sub-menu section
   MEND  - End a sub-menu section
   SEP   - Draw a separator line

Menu_text is your description of the menu item.  Action is the
program to run (like QED, Xchange, etc.).  Paramaters is the
command line options that you would normally put after a command
(like EXEC ZIP;"-x").  Any line that starts with a number (#)
sign is considered a comment.

A very simple menu configuration file would be this:

     #Very Simple Menu _rc File
     EXEC          Xchange   flp1_xchange
     TITLE         Games

     MENU          Games
     EXEC          Pente     pente
     EXEC          MineField Minefield

Remember that there are TAB characters between the words.  You
must use a text editor that will put in the TAB character and not
just a number of spaces.  Metacomco's ED does not work.  QED will
support TABs when read in, but when typing, TABs are converted to
spaces.   I have not tried Quill, or MicroEmacs, or Elvis (a vi
clone), or others.  The use of TABs might be the weakest part of
Qascade,  considering that TABs are non-printing QL characters.
I would have used something like a colon (standard for Unix

Noticed that for Xchange I explicitly defined what device to find
Xchange on.  For the other programs where I did not explicitly
define the device, Qascade with use PROG_USE and DATA_USE to find

Qascade has been tested on QDOS and SMS systems.  Additional
testing is needed to make sure that Qascade runs on all
QDOS-based platforms.  Jonathan is very quick to fix any problems
that come along.

The basic summary of Qascade is that it works.  It is not overly
complex.  It's simplicity makes it very powerful.  I'm not one
for using operating systems front ends, but I like Qascade.  I
have dome something similar with SuperBASIC and QMENU extensions,
but I would have to alter the code every time I wanted to add
another program.  With Qascade, you don't have to touch any code,
just edit a file.  I think once QLers try Qascade, it will become
very popular.


               (                   (