1 DOWN
This utility provides an easy means to "move around" in your
subdirectories.  This utility allows you to move deeper in your
directory tree or up through your directory tree or even to change the
directory tree you are in even if it exists on another device; logical
names are also supported as valid directory specifications. 

Command syntax

$ DOWN[/PROMPT/LOG/HELP] [{directory_name_specification, directory_number}]

2 Advanced_features
3 Abort
Typing ^C will cause the program to do a controlled quick
abort without changing the default directory.
3 BOL
Typing ^A or backspace moves the cursor the the beginning
of the current line.
3 Cursor_wrapping
All cursor movement keys will wrap lines or screens.
3 EOL
Typing ^E moves the cursor to the end of the current line.
3 Exit
Typing ^Z will exit the program and leave you in the directory
that contains all of the subdirectories that were being displayed
on the screen when the ^Z was typed.
3 Expand_name
Typing ^X or ^U will print the full directory path of the indicated
directory within the confines of the top line of the screen.
This is intended to help those who have very large directory
names which get truncated in the normal display mode. 
3 Next_screen
This function is self explanatory except for the fact that it will
move the cursor to the last position if you are already viewing the
last screen.
3 Prev_screen
This function is self explanatory except for the fact that it will
move the cursor to the first position if you are already viewing the
first screen.
3 Recursion
The recursion feature allows you to view the directories
in the parent directory (up) or a child directory (down).
4 Down_level
Typing ^R will display all the subdirectories in the indicated
directory or will do nothing if it contains no directories.
4 Up_level
Typing ^J or line feed will cause the program to display the
directories in the parent directory.
3 Refresh_screen
Typing ^L or ^W will redraw the screen.
3 Set_Default
Typing Return, ^M, or the Do key will exit the program and
change the default to the indicated directory.
4 Directory_Number
Typing the number of the directory and then pressing the return
key will set your default to that directory.  The number that
you type will not be displayed on the screen.
3 Set_Page
The program calculates how many lines it can display on the screen by
checking the terminal page size.  This can be changed with the DCL
set terminal/page command.
3 Set_Width
The program calculates how many columns it can display on one line
by checking the width of the terminal.  This can be changed with
the DCL set terminal/width command.
2 Cursor_movement
If you do not specify a directory on the command line the program
will list all of the subdirectories in the current default directory
and will then allow you to choose the directory you wish by moving
the cursor on top of the directory name then pressing the return key. 

Cursor movement is just like it is in emacs, edt, or dcl line editing.
Up    = ^P, or the up arrow
Down  = ^N, or the down arrow
Left  = ^B, ^D, delete, or the left arrow
Right = ^F, tab, space, or the right arrow
Next screen = ^V, or the next screen key
Prev screen = ESC V, or the prev screen key
End Of Line = ^E
Beginning Of Line = ^A, or backspace
Recursive directory listing = ^R
Exit = ^Z
Abort = ^C       	Set Default = Return, ^M, or Do key
Refresh screen = ^L, or ^W
Expand directory name = ^X, or ^U
Move up a directory level (Jump) = ^J, (or line feed)
Help = ?, or the help key (also invoked at with the /help qualifier)
(See Advanced_features topic for more infomation)
2 Disclaimer
Written by Michael W. Wheeler (mww@tntech.bitnet)
Copyright (c) by Michael W. Wheeler, September 1987
This program is intended for Public Domain, and may not be sold or
marketed in any form without the permision and written consent
from the author Michael W. Wheeler.  I retain all copyrights to
this program, in either the original or modified forms, and no
violation, deletion, or change of the copyright notice is
allowed.  Futhermore, I will have no liability or responsibilty
to any user with respect to loss or damage caused directly or
indirectly by this program.
2 Logical_Names
Logical names may be used as parameters.  For example if you have a
subdirectory that you often have need to reference from another directory
it becomes easy if you define a logical name to point to it.  If the
directory is called USER:[ABC1234.SOURCE.FORTRAN] you can make a logical
name called F: by issuing the DCL command:
$ Define f user:[abc1234.source.fortran]
then from now on you can reference any file out of that directory by
simply saying F:<filename.extension>.  Here's an example:
$ Type f:sort.for
You can now also use this logical name as a directory specification as in
$ Down f:
2 Qualifiers
These are optional and may be abbreviated.
3 /HELP
   Invokes this help facility
3 /LOG
   Prints an informational message specifying the new directory.
3 /PROMPT
If this qualifier is present it will cause the program to change your
DCL prompt from the normal "$ " (dollar sign) to the name of the new
directory.  The program will also check for the definition of two
global symbols called PROMPT_PREFIX and PROMPT_SUFFIX and if they
exist will prefix and suffix the prompt with their respective
definitions. 
4 Lower_case
The /PROMPT qualifier will make the direcotry name portion of the
prompt lowercase by default which is preferred to upper case by most
experienced computer users because it is easier to read and is less
likely to be confused with the prompt of an application or utility.
Note that this program does not change the case of the prompt prefix
or prompt suffix portions of the prompt since they are always used
exactly as they are defined.
4 Upper_case
Since the /PROMPT qualifier will make the directory name portion of
the prompt lowercase by default you must define a global symbol called
UPPER_CASE to make your prompt be in upper case.  Note that this
program does not change the case of the prompt prefix or prompt suffix
portions of the prompt since they are always used exactly as they are
defined. 
5 Example
$ down/prompt fortran
fortran> show default
  USER:[MWW.PROGRAMS.FORTRAN
fortran>

$ UPPER_CASE :== TRUE
$ down/prompt fortran
FORTRAN> show default
  USER:[MWW.PROGRAMS.FORTRAN
FORTRAN>

To remove this global symbol type:
$ DELETE/SYMBOL/GLOBAL UPPER_CASE
4 Prefix
You can have this utility prefix any string constant to the prompt by
defining a global symbol called PROMPT_PREFIX.  An example use of this
feature would be to prefix the prompt with an indication of which
computer (node) you are using. This only becomes useful if you
frequently log onto various nodes or have simultaneous sessions
through a terminal server. The prefix will be used exactly as defined
whether it be in all upper case, all lower case, or mixed case. 
5 Example
$ PROMPT_PREFIX == "Gemini$"
$ down/prompt bin
Gemini$bin> show default
  USER:[ABC1234.BIN]
Gemini$bin> 

To remove this global symbol type:
$ DELETE/SYMBOL/GLOBAL PROMPT_PREFIX
4 Suffix
By default this utility will suffix your prompt with "> " but you can
override this by defining a global symbol called PROMPT_SUFFIX. The
suffix will be used exactly as defined whether it be in all upper
case, all lower case, or mixed case.
5 Example
$ PROMPT_SUFFIX == " "
This will change it to a space.

To remove this global symbol type:
$ DELETE/SYMBOL/GLOBAL PROMPT_SUFFIX

4 Examples
$ show default
  USER:[MWW]
$ down/prompt src.c
c> show default
  USER:[MWW.SRC.C]
$

$ down/prompt ada
ada> show default
  USER:[MWW.PROGRAMS.ADA]
$

$ prompt_prefix == "Gemini$"
$ down/prompt fort*
Gemini$fortran> show default
  USER:[MWW.PROGRAMS.FORTRAN]
$

$ prompt_suffix == ":: "
$ down/prompt c
Gemini$c:: show default
  USER:[MWW.PROGRAMS.C]
$

2 Parameters
If you don't specify a parameter on the command line this
utility will list all of the subdirectories in the current
default directory and then ask you which one you would
like to "go down into."
3 File_Specification
You can specify the name of the directory you wish to
"move into" on the command line (see NOTE:).  Notice
that I said "move into" and not "go down into" because
if you use this option the program will first look
for the subdirectory in your current default directory
and in any directories "down" further in your directory
structure.  If it doesn't find the directory it will
then start searching for it from your root directory on
down through you directory structure and will set your
default to the first one it finds that matches the
specification.  This allows you to effectivly "move up"
in your directory structure.

NOTE:  Full usage of the standard VMS DCL wildcard
characters is supported with this option.
3 Number
If you already know the number of the directory that
you wish to "go down into" then you may specify it
on the command line. 
4 Special_Cases
A special case may exists when you have a subdirectory called 5.dir
that you would like to make your default directory.  If you specify 5
as a parameter this utility will assume you want the 5th subdirectory
as it appears in a directory listing but 5.dir may be the first.  To get
around this problem simply put a "-" (minus sign) in front of the
parameter (example: Down -5).  If you do this the utility will then
know that you want it to look for a directory that has a number for
a name.
5 Example
$ show default
  USER:[MWW]
$ down 5
$ show default
  USER:[MWW.PROGRAMS]
$

$ show default
  USER:[MWW]
$ down -5
$ show default
  USER:[MWW.5]
$
2 Set_Default
Typing Return, ^M, or the Do key will exit the program and
change the default to the indicated directory.
3 Directory_Number
Typing the number of the directory and then pressing the return
key will set your default to that directory.  The number that
you type will not be displayed on the screen.
2 VMS_messages
This program reports all messages via the standard VMS message
facility.  This allows the user to tailor the detail of the messages
by using the DCL set message command.  For more information on
tailoring VMS messages type help set message.
2 VMS_standard_files
This program opens and uses the following VMS standard files:
SYS$INPUT, SYS$OUTPUT, and SYS$ERROR.  This is done so that
the user's can redirect the input, output, and error messages
to various sources.
2 Wildcard_Characters
Full usage of the standard VMS DCL wildcard characters is supported
with this option.  The VMS standard wildcard characters are * (asterisk)
and % (percent).  The asterisk will match any number of characters and
the percent will only match one character.
3 Examples
$ Down s*
   This will make your new default the first directory it finds that
   starts with an s.

$ Down s%
   This will make your new default the first directory it finds that
   starts with an s and is exactly two characters long.
2 /HELP
Invokes this help facility
2 /LOG
   Prints an informational message specifying the new directory.
2 /PROMPT
If this qualifier is present it will cause the program to change your
DCL prompt from the normal "$ " (dollar sign) to the name of the new
directory.  The program will also check for the definition of two
global symbols called PROMPT_PREFIX and PROMPT_SUFFIX and if they
exist will prefix and suffix the prompt with their respective
definitions. 
3 Lower_case
The /PROMPT qualifier will make the direcotry name portion of the
prompt lowercase by default which is preferred to upper case by most
experienced computer users because it is easier to read and is less
likely to be confused with the prompt of an application or utility.
Note that this program does not change the case of the prompt prefix
or prompt suffix portions of the prompt since they are always used
exactly as they are defined.
3 Upper_case
Since the /PROMPT qualifier will make the directory name portion of
the prompt lowercase by default you must define a global symbol called
UPPER_CASE to make your prompt be in upper case.  Note that this
program does not change the case of the prompt prefix or prompt suffix
portions of the prompt since they are always used exactly as they are
defined. 
4 Example
$ down/prompt fortran
fortran> show default
  USER:[MWW.PROGRAMS.FORTRAN
fortran>

$ UPPER_CASE :== TRUE
$ down/prompt fortran
FORTRAN> show default
  USER:[MWW.PROGRAMS.FORTRAN
FORTRAN>

To remove this global symbol type:
$ DELETE/SYMBOL/GLOBAL UPPER_CASE
3 Prefix
You can have this utility prefix any string constant to the prompt by
defining a global symbol called PROMPT_PREFIX.  An example use of this
feature would be to prefix the prompt with an indication of which
computer (node) you are using. This only becomes useful if you
frequently log onto various nodes or have simultaneous sessions
through a terminal server. The prefix will be used exactly as defined
whether it be in all upper case, all lower case, or mixed case. 
4 Example
$ PROMPT_PREFIX == "Gemini$"
$ down/prompt bin
Gemini$bin> show default
  USER:[ABC1234.BIN]
Gemini$bin> 

To remove this global symbol type:
$ DELETE/SYMBOL/GLOBAL PROMPT_PREFIX
3 Suffix
By default this utility will suffix your prompt with "> " but you can
override this by defining a global symbol called PROMPT_SUFFIX. The
suffix will be used exactly as defined whether it be in all upper
case, all lower case, or mixed case. 
4 Example
$ PROMPT_SUFFIX == " "
This will change it to a space.

To remove this global symbol type:
$ DELETE/SYMBOL/GLOBAL PROMPT_SUFFIX
3 Examples
$ down/prompt ada
ada> show default
  USER:[MWW.PROGRAMS.ADA]
$

$ prompt_prefix == "Gemini$"
$ down/prompt fort*
Gemini$fortran> show default
  USER:[MWW.PROGRAMS.FORTRAN]
$

$ prompt_suffix == ":: "
$ down/prompt c
Gemini$c:: show default
  USER:[MWW.PROGRAMS.C]
$
2 Examples
$ show default
  USER:[MWW]
$ down src.c
$ show default
  USER:[MWW.SRC.C]
$

$ down dua19:[abc]
$ show default
  DUA19:[ABC] 
$

$ down/log st_tmp:
ZEUS$DUA9:[TOOLS.TMP]
$

$ down user:[mww]
$ show default
  USER:[MWW]
$
