DOWN - Substitute for CD
Copyright (c) 1988
124 Valerie Lane
Sherman, Texas 75090
DOWN is a substitute for the DOS CD command, but also provides
the ability to descend to subdirectories without specifying
the full subdirectory name. Basically, it is for those who want
to fly around their directory structure from the command line.
Installation merely allows you to choose whether or not you want
error messages and/or showing current directory. If the version
of DOWN already works like you want it to, then don't bother
Installation is accomplished by typing DOWNINST at the DOS
prompt. DOWNINST requires a file, DOWN2.EXE, to be in the
current directory. You will be asked two easy-to-answer
questions before a working version of DOWN is produced.
1. Do you want error messages ?
If you answer "Y" then DOWN will notify you if an error has
been made in the command line, or if the destination to
which you have asked DOWN to take you does not exist. For
example, if you were in the root directory, and issued the
command DOWN .., it would reply "Cannot ascend another
level." You will also be notified if a specified
subdirectory was not found.
If you answer "N" then DOWN will never issue a message.
2. Do you want DOWN to show directory after each move ?
For those who do not specify a prompt of $P$G (to always
show the current drive and path in the prompt), answering
"Y" to this question forces DOWN to display the directory
you are left in when it terminates.
Now that DOWNINST has created DOWN.EXE, you may delete
DOWN2.EXE. If you ever wish to re-install, you may simply
rename DOWN.EXE to DOWN2.EXE and run DOWNINST again.
DOWN.EXE should now be placed in a location pointed to by your
path and renamed to something convenient. Many like to call it
DO.EXE or D.EXE to minimize typing (which is the primary reason
this program was written).
Replacing CD with DOWN (For those who use CED)
If you use CED this will be very easy. If you don't use CED,
you should. It is one of the most helpful, timesaving utilities
ever. Look it up on a BBS near you.
Anyway, all you have to do is set up a SYNonym which equates CD
to the full path name for DOWN. Example :
CED SYN CD C:\UTILS\DOWN
Now, whenever you use the CD command, it will automatically run
DOWN instead of the DOS CD command. So, to go to your
\COMM\DOWNLOAD directory, you could just say CD \CO\DO.
Yes, it's that easy. Without a parameter it takes you to the
first subdirectory located under your current directory.
Path is merely a string telling DOWN where to take you. It
differs from the CD command in that you don't need to specify
the full directory name for DOWN to find it. DOWN merely
searches for the substring you specify with a * wildcard
appended to it.
Before we all get too confused, a few examples might elucidate
things a bit :
DOS Command DOWN Command
CD \UTILITY\PCTOOLS DOWN \U\PCT
CD .. DOWN ..
CD ..\PASCAL DOWN ..\PA
However, if you had several top-level directories which began
with the letter U, DOWN would only take you to the first one.
My phrase to describe proper usage is "You may abbreviate to
the point of ambiguity."
In addition to the DOS "\" delimiter, the UNIX "/" delimiter
is also allowed. And if you like VAX/VMS as much as I do, you
can also use the "[" and "." just like DEC uses. You can mix
and match however you choose. Again, examples to keep us clear :
The following are all equivalent commands :
(You get the idea)
Also, a "-" can be substituted for ".." (again borrowed from
VMS) anytime you want to move up a level in your directory tree.
Another interesting rule is that delimiters need not be
delimited. (sounds strange). Example :
DOWN ..TURBO <-- See, ".." runs into "TURBO"
are all equivalent commands.
Or, if you really want to conserve keystrokes, you could say
Similarly, to go up two levels, rather than having to type
CD ..\.. you could say DOWN --
or even DOWN ..\..
or even DOWN .... (confused ?)
The DOS CD Command does not allow you to switch drives, so of
course, DOWN does. Putting a drive letter (with colon) in front
of your path causes DOWN to first switch to the specified
drive, and then proceed down (or up) your directory tree from
your current directory for that drive.
CD D:\ARC would take you to the D:\ARCFILES directory.
1. You must specify enough characters for DOWN to find
the intended subdirectory.
So, if you have a \TURBO directory and a \TURBOC directory,
the only way to get to the \TURBOC is to say
I do have a mind-reading algorithm in the works, though.
Look for it in the Fall 89 release 🙂
2. If you name a directory starting with a "-" character (which
IS possible), you will have trouble getting into it. Anytime
DOWN encounters a "-" in its parameter, it bumps you UP a
directory, not down into a "-" directory.
I could (I suppose) check to see if a "-" directory exists
before moving up, but that would take extra code, and I
didn't figure many people would do this sort of thing.
3. This isn't really a limitation, but I figure I'll say it.
If you don't have a hard disk, this program is pretty much
Characters that start you at the root directory :
"/", "\", "["
Characters that delimit a substring for descending :
"/", "\", "."
Substrings responsible for moving up a directory :
DOWN was originally written on VAX/VMS at North Texas State
University (now known as University of North Texas). The VMS
method of changing directories (called SET DEFAULT) was
cumbersome, to say the least.
SET DEFAULT DUA2:[JAMES.PROGRAMS.PASCAL]
is not my idea of a fun command line to type. Lee Harper (a
fellow programmer, now working in San Diego) and I combined
ideas for shortening this. We wrote a program in DCL (Digital
Command Language) which let you set default to an abbreviated
directory name. Billy Barron (now Vax System Manager at UNT)
suggested that I give the program the ability to descend
multiple directories (like DOWN does now), and with his help, we
modified the program to do so. The three of us had heard (and
it made sense) that the shorter a program is, the faster it runs,
so we made a restriction on our code : it had to fit on a single
page. So, with a 23 line maximum the original code became a
mastery of fantastic hacks, and evolved into a utility I just
can't live without.
When I became a PC hacker, I wanted my DOWN. So, using Turbo
Pascal 3.0, I wrote DOWN.PAS. The first version would only go
down into subdirectories, and was basically flaky. It was never
So, I bought Turbo Pascal 4.0 and completely rewrote the whole
program to bring us up to DOWN Version 2.0. It is much faster,
much smaller (thanks, Borland) and seems to be fairly bug-free.
The next version will probably be written in Turbo Assembler just
to cut down the code size. My free time ahs been very limited of
late, but I will eventually get around to it.
James Shoffit - Main design, idea of abbreviations, TP4 conversion
Billy Barron - Multiple directory descending, debugging (VMS)
Lee Harper - Logical translations (VMS), code bumming
Sean Wheeler - Debugging, Ideas, inspiration and documentation
1) Enjoy the program.
2) If you like it, or find a bug, send me a postcard or e-mail.
(e-mail will get responded to much quicker!)
3) Pass it around.
4) There is no rule #4.
I can be contacted at :
USMAIL : 124 Valerie Lane, Sherman, TX 75090
BITNET : [email protected]
THENET : NTVAXB::JAMES
INTERNET : [email protected]
SPAN : UTSPAN::UTADNX::NTVAXB::JAMES