868 lines
44 KiB
Plaintext
868 lines
44 KiB
Plaintext
|
|
SKIP'S COMPUTER MISCELLANEA
|
|
|
|
#28
|
|
|
|
(C) Copyright 1989 by
|
|
C. F. "Skip" Mowery, Jr.
|
|
Colonel, USAF (Ret.)
|
|
406 Van Reed Manor Drive
|
|
Brandon FL 33511
|
|
813-689-4212
|
|
|
|
"Skip's Computer Miscellanea" is copyrighted material and remains the
|
|
property of the author, who reserves all rights to its publication,
|
|
reproduction and distribution, with the following single exception: it
|
|
may be freely copied and distributed electronically via computer for
|
|
personal non-commercial use, provided that the content is not modified,
|
|
that it is not copied to or distributed on any form of print media and
|
|
that it is not copied or distributed by or for any type of business
|
|
endeavor without the prior written permission of the author.
|
|
|
|
**********
|
|
|
|
Your comments about this material, suggestions, and questions about any
|
|
aspect of computing are always welcome. Write to the address above or
|
|
leave a message for Charles Mowery on either of the boards mentioned
|
|
below.
|
|
|
|
"Skip's Computer Miscellanea" now orignates simultaneously on the
|
|
Computer Archives BBS (813-968-6220) and the Professional Data Exchange
|
|
BBS (813-920-0647), both in the Tampa Bay area in Florida. Some of the
|
|
content may have originally appeared in different form on those or
|
|
other boards.
|
|
|
|
**********
|
|
|
|
|
|
4DOS, Version 2.2a
|
|
|
|
One of the Finest, Most Useful Pieces of Shareware Ever Released
|
|
|
|
|
|
You absolutely, positively MUST try 4DOS. If you've put off trying it
|
|
because it's a little complicated to get set up, this article will show
|
|
you exactly what to do -- so, no more excuses: try it!
|
|
|
|
4DOS is a replacement for Command.Com and much more. It has all the
|
|
normal DOS commands, many of which are enhanced, plus it adds many new
|
|
internal commands and gives you a flexibility that you won't believe
|
|
until you try it. And it works on 8088 and 80286 systems equally well.
|
|
|
|
The bottom line of 4DOS is that you can do more with less: it will
|
|
save both memory and disk space, while giving you more computing power
|
|
than you've ever had. Used properly, 4DOS will allow you to get rid of
|
|
a bunch of batch files and utility programs, thereby saving disk space.
|
|
You can also eliminate some of your memory-resident programs and save
|
|
both disk space and memory. And further memory savings are accomp-
|
|
lished by the disk-swapping procedures in 4DOS, and the fact that 4DOS
|
|
actually occupies less memory than IBM/MS-DOS.
|
|
|
|
Here are just some of the files that you will no longer need because
|
|
4DOS has internal commands to replace them (or you can use Aliases to
|
|
replace them) -- and, in most cases, 4DOS will give you more flexibili-
|
|
ty:
|
|
|
|
Move utilities (e.g. Move.Com)
|
|
Command line editing and recall utilities (e.g. CED)
|
|
Utilities that fake keystrokes to programs (e.g. Key-Fake)
|
|
Global command utilities (e.g. Sweep)
|
|
Utilities that perform actions with exceptions (e.g. Delbut)
|
|
Directory utilities (e.g. SDIR, CDIR)
|
|
Utilities to change directories and drives (e.g. CDD)
|
|
Environment expanders and editors
|
|
File management utilities (e.g. Xtree clones)
|
|
Utilities that save and restore current directory (e.g. Pushdir
|
|
and Popdir)
|
|
Batch file enhancers and most regular batch files
|
|
List programs
|
|
Timing programs
|
|
Utilities that add and read file descriptions
|
|
Utilities for condensing several commands into one
|
|
Utilities that combine several batch files into one.
|
|
|
|
And the beauty of it all is that, since all the commands are internal,
|
|
everything runs much faster -- commands are executed immediately.
|
|
|
|
The documentation is excellent and it's easy to find things in it.
|
|
Even though complete on-screen help is available via the F1 key, I
|
|
recommend that you print out the documentation and keep it handy, since
|
|
you will be referring to it until you get used to the system. (This is
|
|
one of the few programs I've used for which the printed documentation
|
|
continues to be useful over a long period.)
|
|
|
|
4DOS is a little complicated to get set up (which is the primary reason
|
|
that I printed out the documentation) -- so, rather than try to explain
|
|
it all (and in effect reproduce the documentation), I'm going to show
|
|
you exactly how to get set up. Since I have an 8088 system and a hard
|
|
disk and don't have EMS memory, my comments, of course, will emphasize
|
|
that type of system, but the setup is basically the same for an 80286
|
|
system. If you have EMS memory, I suggest that you use my setup to try
|
|
4DOS and then go back and read the 4DOS documentation for using EMS
|
|
memory. The only real difference is that, with my system, 4DOS swaps
|
|
itself on and off of the hard disk instead of in and out of EMS memory.
|
|
(By the way, the disk swapping is not noticeable.) 4DOS can also be
|
|
set up to be memory-resident for use with a floppy-based system.
|
|
|
|
Before attempting to load and use 4DOS, do a complete backup of your
|
|
hard disk and have a system disk handy, just in case 4DOS doesn't work
|
|
as well on your system as it does on mine. This is especially impor-
|
|
tant if you decide to try to set up 4DOS on your own, without following
|
|
what I did. It took me quite a bit of experimenting (and a call to the
|
|
authors) before I finally got the system running properly and set up
|
|
the way I wanted it.
|
|
|
|
Installing 4DOS:
|
|
|
|
4DOS can be set up to be memory-resident (for floppy-based systems), or
|
|
it can be called as a transient (I can't imagine why you'd want to do
|
|
so), or it can use disk-swapping to/from EMS memory or a hard disk.
|
|
|
|
There are 4 basic steps to the setup:
|
|
|
|
1. Placement of 4DOS files.
|
|
|
|
2. Modification of the Config.Sys file.
|
|
|
|
3. Modification of the Autoexec.Bat file.
|
|
|
|
4. Creation of Aliases.
|
|
|
|
Step 1:
|
|
|
|
First, of course, you should create a directory named 4DOS and copy all
|
|
the 4DOS files into it, with these exceptions: the files KEYSTACK.SYS,
|
|
4DOS.COM and 4DOS88.EXE should be copied to the root directory of your
|
|
hard disk. (See "Alternatives" below.) If you have a 286 system, put
|
|
4DOS286.EXE in the root directory instead of 4DOS88.EXE.
|
|
|
|
Step 2:
|
|
|
|
The second step is to add 2 lines to your CONFIG.SYS file. Here are
|
|
the lines to add:
|
|
|
|
device=keystack.sys
|
|
shell=c:\4dos.com /s:dc:\4dos /m:2500 /p
|
|
|
|
These lines assume that your hard disk is C: and that KEYSTACK.SYS and
|
|
4DOS.COM are in the root directory. You can refer to the 4DOS documen-
|
|
tation for details about all the possible parameters that can be
|
|
included in the second line. All I'm going to mention are three
|
|
points. First, the "/s:dc:\4dos" part is what sets up disk swapping
|
|
and tells the system to put the disk-swapping file (a hidden file) in
|
|
the 4DOS directory. If you have EMS memory, you can use "/s:e" (in
|
|
place of "/s:dc:\4dos") and disk swapping will be to/from EMS memory.
|
|
|
|
Second, the "/m:2500" part tells the system to set up a Master Environ-
|
|
ment with space for 2500 characters. You can use /e instead of /m,
|
|
which saves a little memory space, but the documentation indicates that
|
|
there are a few applications that will look for a Master Environment
|
|
and lock up if one is not found. To avoid that potential problem and
|
|
not have to remember it later, I used /m and suggest that you do also
|
|
(see the explanation in the 4DOS documentation).
|
|
|
|
The 2500 can be any number, as long as it's large enough to include all
|
|
of your normal environment items as well as all of your Aliases. I
|
|
suggest 2000 to 3000 so that you can add Aliases later without having
|
|
to modify this line in the Config.Sys file. Once 4DOS is set up with
|
|
the Aliases that you want, you can use the 4DOS "MEMORY" command to
|
|
find out how much free environment space you have and then change that
|
|
line in the Config.Sys file to use a smaller or larger number if you
|
|
want to.
|
|
|
|
Third, the "/p" part is required if you want 4DOS to execute your
|
|
AUTOEXEC.BAT file on boot-up.
|
|
|
|
Alternatives:
|
|
|
|
Let me digress here briefly to mention some alternative setups. It
|
|
would be possible, of course, to copy all of the 4DOS files to your
|
|
root directory, but that's inefficient hard disk organization.
|
|
|
|
Another alternative is to put KEYSTACK.SYS in the 4DOS directory
|
|
instead of in the root directory. If you choose to do so, change the
|
|
Config.Sys line "device=keystack.sys" to "device=c:\4dos\keystack.sys".
|
|
|
|
A third alternative is to set up 4DOS with all of the 4DOS files in the
|
|
4DOS directory. That is explained in the documentation, but I don't
|
|
recommend it. If you do it that way, depending on how you configure
|
|
4DOS, you will probably encounter what the 4DOS documentation says is a
|
|
bug in MS-DOS that will cause problems because of a limit on the length
|
|
of the line in your CONFIG.SYS file (the 2nd line shown above). That's
|
|
all I'm going to say about that, except to note that there should be no
|
|
reason why you can't put 4DOS.COM and 4DOS88.EXE in your root directory
|
|
(just as you would with Command.Com) and thereby avoid the potential
|
|
problem. (I lied: I'm going to say one more thing. The documentation
|
|
says the line limit for the line I'm referring to is 34 characters
|
|
"following the name of the shell program", but I had problems when I
|
|
had exactly 34 characters after the program name, including the space
|
|
after the program name, which is why I chose to put 4DOS.COM and
|
|
4DOS88.EXE in my root directory and avoid the problem.)
|
|
|
|
Step 3:
|
|
|
|
The third step is to modify your AUTOEXEC.BAT file by adding the
|
|
following lines.
|
|
|
|
ALIAS /R C:\4DOS\ALIASES.LST
|
|
SET 4DSHELL=/S:DC:\4dos /M:2500
|
|
SETDOS /H4 /V0
|
|
|
|
The first line tells the system to set up the Aliases that you have
|
|
included in the file ALIASES.LST in the 4DOS directory. (See step 4
|
|
below.) This is the fast, easy alternative to having each of the Alias
|
|
definitions listed separately in the AUTOEXEC.BAT file.
|
|
|
|
The second line configures 4DOS as the secondary command processor (the
|
|
one that's called when you "shell to DOS" from some programs), and sets
|
|
it up to be the same as 4DOS when it's the primary command processor.
|
|
If you want to use COMMAND.COM as the secondary command processor, you
|
|
should not use the second line above but rather include the line
|
|
"COMSPEC=C:\COMMAND.COM". This was a preferred procedure in an earlier
|
|
version of 4DOS because, if 4DOS were used as the secondary command
|
|
processor, the entire 4DOS system would be loaded when the secondary
|
|
command processor was called and, hence, wasted memory. But, since the
|
|
latest version has 4DOS use disk-swapping even when it's the secondary
|
|
command processor, I see no point in using COMMAND.COM. If you want
|
|
4DOS to be both the primary and secondary command processor, it is NOT
|
|
necessary to include a "COMSPEC=..." line, since 4DOS sets itself up as
|
|
the secondary command processor automatically. (You can confirm this
|
|
after booting with 4DOS by entering the SET command with no parameter.)
|
|
|
|
The third line is optional but recommended. There are several optional
|
|
parameters that can be used with the SETDOS command (see the documenta-
|
|
tion). In this case, I have used the one that limits the command
|
|
history table to commands of 4 or more characters only, and that sets
|
|
ECHO OFF as the default for all batch files. In other words, if you
|
|
use "SETDOS /V0", you can eliminate the ECHO OFF line from all of your
|
|
batch files and from your Aliases. (In fact, by using appropriate
|
|
Aliases, you can eliminate a lot of the batch files themselves -- see
|
|
below).
|
|
|
|
4DOS has another feature that you might want to take advantage of via a
|
|
line in your AUTOEXEC.BAT file. Here's the line that I use:
|
|
|
|
SET .BAS=C:\BIN\B.EXE
|
|
|
|
That line tells 4DOS that, whenever I enter a file name, if there is a
|
|
file available with the .BAS extension, 4DOS should load Basic first
|
|
and pass the file name to it. (I have renamed Basic to simply B.EXE
|
|
and have placed it in my \BIN directory.) You can do the same thing for
|
|
any combination of file extensions and applications (e.g. .TXT and your
|
|
text editor) -- see the 4DOS documentation.
|
|
|
|
Important Notes for Saving Memory:
|
|
|
|
Add the above lines to the Autoexec.Bat file AFTER any lines that load
|
|
memory-resident programs. Also, if you use the PROMPT or SET commands
|
|
in any lines in your Autoexec.Bat file, place them AFTER any lines that
|
|
load memory-resident programs.
|
|
|
|
If you follow those 2 suggestions, you will save a lot of wasted
|
|
memory. If you have any doubts about that (or any of these sugges-
|
|
tions), try it both ways and you'll see the difference (use the 4DOS
|
|
"MEMORY" command for this purpose).
|
|
|
|
Another way to save some memory under any type of DOS is to put all
|
|
your memory-resident programs in the root directory. Even more memory
|
|
can be saved if you shorten the names of memory-resident programs to be
|
|
4 or less characters (not including the period and extension).
|
|
|
|
Finally, you can save additional memory by removing the COMSPEC and
|
|
PATH entries in your environment by including at the beginning of your
|
|
Autoexec.Bat file the lines "COMSPEC=" and "PATH=" with no parameters,
|
|
and then entering the proper COMSPEC and PATH settings at the end of
|
|
the Autoexec.Bat file.
|
|
|
|
The point here is that, according to what I've read, each memory-
|
|
resident program is loaded into memory together with its path specifi-
|
|
cation and a copy of the environment -- and the environment, especially
|
|
under 4DOS, can be very lengthy. At one point when I was testing
|
|
various formats for my Autoexec.Bat file, I managed to save about 9K of
|
|
memory just by rearranging the order of the lines so that the memory-
|
|
resident programs were called first.
|
|
|
|
As for the length of the memory-resident file names, I don't completely
|
|
understand this (any more than I understand the other hints -- but they
|
|
work), but apparently the file names are saved in 16-byte increments
|
|
and, if the name is 5 bytes long, it uses 16 bytes more memory than it
|
|
would if the name were 4 bytes long.
|
|
|
|
For more information about these memory-saving tips, see the August '89
|
|
issue of "REMark" magazine, the official Zenith/Heath computer users
|
|
magazine.
|
|
|
|
(I should have put these tips into a separate article, right?)
|
|
|
|
Step 4:
|
|
|
|
The fourth and final step is a continuing one: create a list of
|
|
Aliases in a single ASCII file. As you use the system, you'll discover
|
|
many opportunities to make your life easier by adding new Aliases to
|
|
the file. As mentioned in the documentation, you could include all
|
|
your Alias definitions in your Autoexec.Bat file, but that makes it
|
|
more difficult to add and test new Aliases (you'd have to reboot every
|
|
time you wanted to test a new Alias) and it takes longer to load them
|
|
that way.
|
|
|
|
Aliases give you tremendous flexibility and save a lot of disk and
|
|
memory space. You can think of them as in-memory batch files -- and
|
|
that's why you can eliminate most batch files under 4DOS.
|
|
|
|
You create Aliases the same way and for the same reasons that you
|
|
create a batch file, except that all of them can be placed in one file,
|
|
one Alias per line. Use a text editor and be sure to save the file in
|
|
ASCII format, with no formatting codes.
|
|
|
|
The file name for your Aliases can be any name you choose and it can be
|
|
in any directory, as long as you include the full file specification in
|
|
the "ALIAS /R ..." line in your Autoexec.Bat file (see Step 3 above).
|
|
|
|
NOTE: If you've already read the 4DOS documentation's discussion on
|
|
creating Aliases, you'll recall some discussion about using the single
|
|
quote mark (`) to begin and end a list of multiple commands in an
|
|
Alias. Forget everything you read about that. What the documentation
|
|
doesn't mention is that, if you put your Aliases in a file and have the
|
|
system read that file, as described above, you don't need the quote
|
|
marks. (Whew! One less thing to remember -- unless, of course, you
|
|
have to remember not to remember the business about the quote marks.)
|
|
There is one exception, which is described below ("Temporary Aliases").
|
|
|
|
If you know how to create a batch file, you know how to create a file
|
|
of Aliases. However, you should review the 4DOS documentation to see
|
|
all of the new and different batch commands that you can use in Aliases
|
|
(or in batch files). For now, I'm just going to mention four points:
|
|
|
|
1. Each Alias must be on a separate line in the file, the line
|
|
must be limited to 255 characters in length, and the line must
|
|
begin with the name of the Alias and an equals sign (=) with
|
|
no intervening space, i.e. Alias=definition.
|
|
|
|
2. If the Alias definition includes a word (file name, program
|
|
name, etc.) which is the same as the Alias name, the word
|
|
should be preceded by an asterisk (*).
|
|
|
|
3. You can put multiple commands in the Alias definition but you
|
|
must separate each one with the caret symbol (^). You can
|
|
also use multiple commands in the same way from the 4DOS
|
|
command line, not just in Aliases, with the same 255-character
|
|
limit. The ability to use multiple commands at the DOS level,
|
|
combined with the History feature (see below) provides
|
|
tremendous flexibility and ease of use.
|
|
|
|
4. Aliases can't have conditional (IF) commands. Use a regular
|
|
batch file if you need to use conditional commands.
|
|
|
|
Below are some of the Aliases that I have in my ALIASES.LST file. Note
|
|
that they are in alphabetical order. That makes it easier to edit the
|
|
file and also makes finding an Alias definition easier.
|
|
|
|
Once installed, you don't have to remember all of your Alias names.
|
|
You can see a list of the Aliases by entering the word "ALIAS" (which
|
|
makes sense, right?), and all established Aliases will be listed on-
|
|
screen in the same order in which they were entered (the order in which
|
|
they appear in the file).
|
|
|
|
In some of the Aliases listed below, I've had to break the line so that
|
|
you can read it, and I've indented the broken part so you know that
|
|
it's a part of the prior line. All Aliases should occupy only a single
|
|
line in your Aliases file. Also, I've inserted spaces on either side
|
|
of the ^ symbol to help you differentiate between multiple commands.
|
|
It is not necessary to include those spaces in the Alias definition.
|
|
|
|
Sample Aliases:
|
|
|
|
ALIAS=CLS ^ *ALIAS /P
|
|
|
|
The normal command "ALIAS" will list on-screen all established Aliases,
|
|
and the /P switch tells the system to pause when the screen is full.
|
|
So, what I did here was redefine the term "Alias" so that it includes
|
|
the /P switch. Note the use of the asterisk (*). That tells the
|
|
system in this case to treat the command "Alias" in its normal form,
|
|
rather than as an Alias. This is necessary whenever a term in the
|
|
Alias definition is the same as the name of the Alias. Confused? Try
|
|
it.
|
|
|
|
ARC=CLS ^ UNALIAS * ^ *ARC %& ^ *ALIAS /R C:\4DOS\ALIASES.LST
|
|
|
|
In this case, I've redefined the command "Arc". (My copy of PKPAK has
|
|
been renamed to be ARC.) The Alias first clears the screen, then
|
|
deletes all Aliases from the system, then calls the ARChive program
|
|
(using the * to tell the system to treat the name as a program name and
|
|
not as the Alias of the same name) and adds the file spec that was
|
|
typed after the Alias, and finally, after the archiving is complete,
|
|
reestablishes the Aliases from the ALIASES.LST file. Note the use of
|
|
the "%&" symbols, which tell 4DOS to include the remainder of the
|
|
command that was typed. For example, if I enter
|
|
|
|
ARC -a TEST TEST.EXE
|
|
|
|
the "%&" symbol would pick up "-a TEST TEST.EXE" as part of the whole
|
|
command.
|
|
|
|
This Alias highlights one of the very few problems with 4DOS -- or with
|
|
some of the applications that 4DOS has to deal with -- and the solution
|
|
to the problem. If, when trying to use any application under 4DOS, you
|
|
get an error that says, in effect, that there is insufficient memory
|
|
for the environment, or if the system locks up for no apparent reason,
|
|
you have encountered the problem I'm referring to. This error (or the
|
|
lockup) occurs when using PKPAK, PKUNPAK, WHIZ, ZMODEM, and some other
|
|
programs under 4DOS. The solution is simple: call the program via an
|
|
Alias that first deletes the Aliases, then calls the program, and then
|
|
reestablishes the Aliases. As you can see from my example above, the
|
|
Aliases are deleted via the command "UNALIAS *" and are reestablished
|
|
via the command "ALIAS /R" plus the drive, path and file name for your
|
|
Aliases file, which in this case is "C:\4DOS\ALIASES.LST". (The
|
|
problem occurs because the Aliases occupy so much environment space and
|
|
the solution clears that space.) If you encounter the problem with some
|
|
application and don't want to take the time to create an Alias to avoid
|
|
it, just enter "UNALIAS *" and press Return, and then enter the name of
|
|
the application as you would normally to run it. After exiting the
|
|
application, enter "ALIAS /R ...", where ... is the path and name of
|
|
your Aliases file.
|
|
|
|
BACKALL=ECHO Full Backup: Insert disks in drives A and B and ^ PAUSE
|
|
^ CLS ^ MB /GO @C:\MACE\BACKFULL ^ M
|
|
|
|
BACKDAY=ECHO Daily Backup: Insert disks in drives A and B and ^PAUSE
|
|
^ CLS ^ MB /GO @C:\MACE\BACKPART ^ M
|
|
|
|
Those two Aliases exemplify how an Alias can be used as a replacement
|
|
for a batch file, as well as the use of multiple commands in long
|
|
command lines. Each Alias used to be a separate batch file (used for
|
|
backing up files with MACE) with 5 separate lines in each batch file.
|
|
In fact, each batch file used to be 6 lines long because each began
|
|
with the line "ECHO OFF". Thanks to the "SETDOS ..." line in my
|
|
Autoexec.Bat file, as explained above, I no longer have to bother to
|
|
include that line in either batch files or Aliases.
|
|
|
|
As you may know, each short batch file (or any short file) will occupy
|
|
at least 2048 bytes of disk space, even if the file is smaller than
|
|
that. By converting from batch files to Aliases, I save a lot of disk
|
|
space and the commands execute instantaneously (instead of incurring
|
|
the delay required while the system finds and reads the batch file).
|
|
|
|
CW3=CD \WORKING\WORK3 ^ DIR
|
|
|
|
C=CD \
|
|
|
|
These Aliases allow me change to one of my working directories or to
|
|
the root directory with a minimum of typing. I use several similar
|
|
Aliases for moving between the directories that I use most often. Note
|
|
that, in the first example, I included the DIR command, which is
|
|
executed after the change to the new directory.
|
|
|
|
COMPILE=*COMPILE %1 /O; ^ LINK %1 \COMPILER\SMALLERR /E;
|
|
|
|
This is an example of both time and typing savings via the use of an
|
|
Alias. Note that the "%1" symbol has the same significance in an Alias
|
|
that it would in a batch file. Without this Alias and under normal MS-
|
|
DOS procedures, if I wanted to compile the file TEST.BAS, I would have
|
|
to first type "COMPILE TEST /O;" and wait for the compilation to be
|
|
completed. Then I would have to type "LINK TEST \COMPILER\SMALLERR
|
|
/E;" for the linking step. But, with the Alias, all I have to enter is
|
|
"COMPILE TEST" and 4DOS does the rest. When I'm working on a new
|
|
program, and compiling and re-compiling the program under development,
|
|
this Alias saves a lot of time and re-typing of the same commands.
|
|
|
|
CUTBAK=PUSHD ^ CLS ^ CD C:\ ^ GLOBAL DEL *.BAK *.CUT ^ POPD ^ M
|
|
|
|
This is the Alias I use to delete all files with the .BAK or .CUT
|
|
extension anywhere on the hard disk. The 4DOS GLOBAL command applies
|
|
the command that follows it to every directory and subdirectory on the
|
|
disk. (The .CUT refers to files created by SNIPPER, which are named
|
|
SCREEN.CUT.) Note that 4DOS permits the use of multiple file names
|
|
after commands such as DEL and COPY, a feature unavailable in MS-DOS.
|
|
Note also the use of PUSHD and POPD which are explained below.
|
|
|
|
LIST=C:\BIN\LIST.COM
|
|
|
|
4DOS has its own internal List command. This Alias redefines List so
|
|
that it refers to the program List.Com. (I haven't figured out why
|
|
this works, but it does.)
|
|
|
|
SCOPY=SELECT /Oe COPY (*.*)
|
|
|
|
SMOVE=SELECT /Oe MOVE [*.*]
|
|
|
|
These are the Aliases I use when I want to copy or move some but not
|
|
all of the files in the current directory. They make use of the 4DOS
|
|
"SELECT" command, which shows you a list of the files in the current
|
|
directory and lets you tag the ones to which the action command will
|
|
apply. The "/Oe" parameter tells the system to sort the files in Order
|
|
by Extension. The files to be listed are identified in parentheses
|
|
(*.* includes all files in this case) for all commands except the Move
|
|
command which, for reasons that are explained in the documentation,
|
|
requires the use of brackets instead of parentheses. (One of the
|
|
reasons that I set these up as Aliases, instead of just typing the
|
|
SELECT command when I needed it, was so that I wouldn't have to
|
|
remember things like the sort parameter and the use of brackets.) There
|
|
are several other options available with the SELECT command and, of
|
|
course, it can be followed by any action command that can be applied to
|
|
file names. I use a similar Alias for archiving a selection of files
|
|
in a directory.
|
|
|
|
WHEREIS=UNALIAS * ^ CLS ^ ECHO Searching for %1 ^ WHIZ C:%1
|
|
^ *ALIAS /R C:\4DOS\ALIASES.LST
|
|
|
|
WHEREBAK=UNALIAS * ^ CLS ^ ECHO Checking for all files on drive C
|
|
requiring backup (Archive bit ON) ^ SCREEN 3 1 ^ WHIZ C:*.* /ON
|
|
^ *ALIAS /R C:\4DOS\ALIASES.LST
|
|
|
|
WHEREHID=CLS ^ ECHO Searching for all Hidden files ... ^ HUNTATTR /H
|
|
|
|
WHEREARC=CLS ^ ECHO Searching for %1 in ARChives ^ PKFIND %1 /a
|
|
|
|
These 4 Aliases used to be 4 separate batch files, each occupying 2048
|
|
bytes of disk space. (I later combined them into one batch file. See
|
|
the "WHERE.BAT" article below.) Note the use of "UNALIAS *" and "ALIAS
|
|
/R ..." at the beginning and end of the definitions of the first 2
|
|
Aliases. As explained above, that procedure is required because WHIZ
|
|
locks up the system if Aliases are in the environment. Note also that,
|
|
in the first and fourth Aliases, the %1 picks up the file spec from the
|
|
command line. (And the eagle-eyed readers among you will note also
|
|
that I listed these Aliases out of alphabetical order here -- they are
|
|
in order in the Aliases file.)
|
|
|
|
Temporary Aliases:
|
|
|
|
If you want to establish an Alias just for use during the current
|
|
computing session, just enter an Alias name and definition in the same
|
|
way that you would if you were entering it as a line in the Aliases
|
|
file, with one exception: in this case, if you are using multiple
|
|
commands, you must enclose the definition in single quote marks (`).
|
|
|
|
To fully understand how much power and flexibility you are given via
|
|
the use of Aliases, you should read the 4DOS documentation and see the
|
|
variety of commands available to you.
|
|
|
|
ESET, Command Line Editing, HISTORY and PUSHD/POPD:
|
|
|
|
Before closing, let me just mention four other features. The command
|
|
ESET allows you to edit any item in the environment or any Alias. You
|
|
just enter ESET followed by the name of the Alias or environment item.
|
|
The system will then show you the current setting for that item and you
|
|
can use normal command-line editing techniques to edit it. To see
|
|
the items in the environment, enter the SET command by itself.
|
|
|
|
Command-line editing, under ESET or for any normal command line, is
|
|
really easy with 4DOS. You can use the left and right arrow keys to
|
|
move the cursor over the command line without erasing any characters,
|
|
and you can use the insert or overstrike mode (by pressing the Ins
|
|
key), as well as the Back Space and Del keys and a lot more, just as
|
|
you would with a normal text editor. Try it -- it's terrific.
|
|
|
|
4DOS automatically retains in memory a list of the commands that you've
|
|
used, and you can use the up and down arrow keys to see each of them.
|
|
When the one you want to use is on the screen, just press Return to
|
|
execute it. The HISTORY command will show you a complete list of the
|
|
commands currently being retained, and HISTORY /F will erase the list
|
|
from memory.
|
|
|
|
Here's a trick I learned for using HISTORY. If you have a complicated
|
|
command that you will be using regularly, first enter HISTORY /F, and
|
|
then enter the complicated command once. From then on, whenever you
|
|
want to use that command again, just press the down arrow key once and
|
|
that first command will appear (because it's at the top of the list and
|
|
you are currently at the bottom of the list). Simple, huh?
|
|
|
|
4DOS also can remember which directories you've been in and return you
|
|
to one of them. For example, if you are in the root directory, want to
|
|
move temporarily to several other directories and then return to the
|
|
root directory, here's how it works. From the root directory (or
|
|
whichever directory you want to return to later), enter PUSHD. That
|
|
puts the current directory name into a buffer in memory. Then move to
|
|
wherever you want. When you want to return to that saved directory
|
|
name, just enter POPD and -- poof! -- you're there. See the Alias
|
|
CUTBAK above for an example of the use of these commands in an Alias.
|
|
|
|
4DOS is everything that MS-DOS should have been. Ok, it doesn't do
|
|
everything. It doesn't make coffee, but try it anyway. See also the
|
|
discussion of UZK in the next article.
|
|
|
|
**********
|
|
|
|
|
|
UZK.ZIP
|
|
|
|
|
|
This program allows you to zip a program (and its related files) that
|
|
you don't use a lot, in order to save disk space, and then, via 4DOS
|
|
features, unzip and run it by just entering the program name.
|
|
|
|
The author had a good idea but apparently didn't fully understand the
|
|
flexibility of 4DOS, since UZK is a lot more complicated than just
|
|
using an Alias for this purpose. Here's an example of how I do it with
|
|
an Alias and, hence, don't need UZK:
|
|
|
|
STORM=PUSHD ^ CLS ^ CD \MISC\GRAPHICS\STORM ^ UNZIP STORM ^ CLS
|
|
^ DEL STORM.ZIP ^ CLS ^ *STORM ^ CLS ^ ZIP -ex -M STORM
|
|
^ CLS ^ POPD ^ M
|
|
|
|
Storm is a program for tracking hurricanes and uses several data files.
|
|
As you might imagine, I seldom use it. So, I keep it ZIPped in a
|
|
subdirectory by itself. When I want to use it, I just enter "Storm"
|
|
and the Alias above takes care of the rest -- including re-ZIPping the
|
|
files after I exit the program. (I have renamed PKZIP to be ZIP and
|
|
PKUNZIP to be UNZIP.) Note the use of the asterisk (*) to tell the
|
|
system to run the Storm program rather than the Alias by the same name,
|
|
and note that the asterisk isn't needed when "Storm" is used as an
|
|
archive name as part of the UNZIP and ZIP commands. Finally, note the
|
|
use of PUSHD and POPD to return to the directory from which Storm was
|
|
first called.
|
|
|
|
Even if the ZIP file were in a directory with other files, you could
|
|
still do the same thing by including in the Alias definition a command
|
|
to MOVE the file to an empty directory before unzipping it (I have a
|
|
directory, \ZDIR, that's always empty just for that purpose) and a
|
|
later command to MOVE it back to its original directory after zipping
|
|
it again. Here's how that would look:
|
|
|
|
STORM=PUSHD ^ CLS ^ CD \MISC\GRAPHICS\STORM ^ MOVE STORM.ZIP \ZDIR
|
|
^ CD \ZDIR ^ UNZIP STORM ^ CLS ^ DEL STORM.ZIP ^ CLS ^ *STORM
|
|
^ CLS ^ ZIP -ex -M STORM ^ MOVE STORM.ZIP \MISC\GRAPHICS\STORM
|
|
^ CLS ^ POPD ^ M
|
|
|
|
As complicated as that Alias is, it could be longer and still fit
|
|
within the 255-character limit for an Alias, and it could be shorter by
|
|
removing the spaces before and after each ^ symbol and/or removing some
|
|
of the CLS commands.
|
|
|
|
**********
|
|
|
|
|
|
MURF: A THOUGHT-FOR-THE-DAY PROGRAM
|
|
|
|
|
|
MURF is a program in a file called MURF.ZIP and is the best "thought-
|
|
for-the-day" program I've seen. I've been using it for some time now
|
|
and, while some of them are repeated, I continue to see new ones every
|
|
once in a while. They are take-offs on "Murphy's Laws" and include
|
|
such gems as "All things being equal, you lose."
|
|
|
|
The idea is to call it from your Autoexec.Bat file so that you see a
|
|
new saying each time you boot.
|
|
|
|
Even my wife likes them, and she's a tough person to please.
|
|
|
|
**********
|
|
|
|
|
|
SKIPPER'S LAWS
|
|
|
|
|
|
My laws are not as succinct as those in MURF or in "Murphy's Laws", but
|
|
succinctness is not one of my strong points, as regular readers will
|
|
have noted. Here are some of them:
|
|
|
|
The amount of line noise is directly proportional to the size
|
|
of the file being transferred.
|
|
|
|
The only time you should delete a file or throw away a note
|
|
is just before it will be needed. Conversely, files and
|
|
notes that are kept, only because they might be needed some
|
|
day, never are.
|
|
|
|
"Creativity" in programming refers to the fact that, when a
|
|
bug is fixed, at least two more are spontaneously generated.
|
|
|
|
The best way to find a bug is to upload the program to a BBS
|
|
as "the final version." Then, the first time you use the
|
|
program after uploading it, the bug will appear. Unfortu-
|
|
nately, this procedure only works for one bug at a time.
|
|
There is no known way to find all the bugs in a program at
|
|
one time.
|
|
|
|
The only time you really need to remember a person's name is
|
|
when you are absolutely, positively sure you will never have
|
|
contact with that person again.
|
|
|
|
All phone calls must be made twice. The second call is to
|
|
convey the information or ask the question that occurs to you
|
|
immediately after you hang up after the first call. In fact,
|
|
that information or that question is usually the reason you
|
|
called in the first place.
|
|
|
|
Never try to do anything constructive on a computer after
|
|
having had one alcoholic beverage.
|
|
|
|
Most brilliant ideas are conceived moments before falling
|
|
asleep. Corollary: Most brilliant ideas aren't, and those
|
|
that are will not be remembered after waking up.
|
|
|
|
Formula for scheduling when to leave for a meeting: From the
|
|
time of the meeting, subtract the time necessary to get to
|
|
the location, subtract an additional 15 minutes for contin-
|
|
gencies on the way, subtract the time necessary to get ready
|
|
to leave, subtract another 15 minutes for contingencies in
|
|
getting ready, subtract an additional 15 minutes times the
|
|
number of people who are going with you (if they are at your
|
|
location; otherwise, subtract additional travel time for
|
|
picking up each person), and ADD 15 minutes for each person
|
|
who will attend the meeting in addition to yourself and those
|
|
going with you. Even if the addition results in your
|
|
arriving after the scheduled beginning of the meeting, you
|
|
will still be there before anyone else. The short form is
|
|
this: if you plan carefully to arrive at a meeting on time,
|
|
no one else will (plan or arrive on time). The corollary is
|
|
this: if you arrive on time, the meeting will have been
|
|
cancelled or rescheduled; but if you arrive late, everyone
|
|
else will have arrived early.
|
|
|
|
If not watched carefully, printer paper and copier paper will
|
|
disappear. No one takes it and you don't use it -- it just
|
|
disappears.
|
|
|
|
The chances of any given call being a wrong number or an
|
|
anonymous hang-up or a telephone solicitation for free
|
|
cemetary plots are directly proportional to your distance
|
|
from the phone when it rings and are multiplied by a factor
|
|
of 10 if you are doing something difficult to interrupt.
|
|
|
|
If you have only one phone line, it will always be available
|
|
when you don't need it and not when you do. The trick here
|
|
is to tell everyone else in the vicinity that they can use
|
|
the phone because you don't need it -- then you can use it.
|
|
|
|
Things that are "so easy that a child could do it" are
|
|
usually too difficult for the average adult. Similarly,
|
|
things that are "child-proof" usually aren't, but they
|
|
are always adult-proof.
|
|
|
|
**********
|
|
|
|
|
|
WHERE.BAT FILE
|
|
|
|
|
|
Before I started using the Aliases available in 4DOS, I used a batch
|
|
file named WHERE to do my searching for files. By using the shareware
|
|
programs WHIZ, PKFIND and HUNTATTR, I could use the batch file to
|
|
search for either:
|
|
|
|
-- any type of file by name, with or without wildcards,
|
|
-- any file in an ARChive,
|
|
-- any files requiring backup, or
|
|
-- any hidden files.
|
|
|
|
(By the way, WHIZ is the fastest file-search program I've found.)
|
|
|
|
Here's the batch file:
|
|
|
|
CLS
|
|
GOTO %1
|
|
:IS
|
|
ECHO Searching for %2
|
|
WHIZ C:%2
|
|
GOTO END
|
|
:ARC
|
|
ECHO Searching for %2 in ARChives
|
|
PKFIND %2 /a
|
|
GOTO END
|
|
:BAK
|
|
ECHO Checking for all files on drive C requiring backup (Archive bit ON)
|
|
ECHO .
|
|
WHIZ C:*.* /ON
|
|
GOTO END
|
|
:HID
|
|
ECHO Searching for all Hidden files ...
|
|
HUNTATTR /H
|
|
:END
|
|
|
|
To use it, you simply type "WHERE" and a space, followed by either the
|
|
filespec you're searching for, the word "ARC" and a filespec, the word
|
|
"BAK", or the word "HID".
|
|
|
|
See the discussion on 4DOS above to see how to do those things using
|
|
4DOS Aliases.
|
|
|
|
**********
|
|
|
|
|
|
HELPME.ZIP
|
|
|
|
|
|
HELPME.ZIP contains HELPME.COM which has a male voice asking for help
|
|
because he's trapped in the computer. Cute, but it was programmed for
|
|
a system running at 4.77 MHz and can't be understood at 8 MHz.
|
|
|
|
**********
|
|
|
|
|
|
Using Communications Software Without a Modem
|
|
|
|
|
|
Procomm Plus (and probably any other comm program that initializes the
|
|
modem when it begins) won't work on a Zenith SupersPort laptop unless a
|
|
modem is connected to the system.
|
|
|
|
You didn't seriously think that I had found a way to communicate
|
|
without a modem, did you?
|
|
|
|
**********
|
|
|
|
|
|
HOW TO USE ZMODEM BATCH DOWNLOAD/UPLOAD
|
|
|
|
|
|
"Batch" upload or download refers to the ability to include several
|
|
file names in one up/download command. Until recently, I had always
|
|
assumed that it was a complicated procedure and I didn't feel like
|
|
going to the trouble to learn it.
|
|
|
|
I recently learned, almost by accident, how to do it and, while I don't
|
|
know how it works on other boards, on the two boards I access regular-
|
|
ly, it's incredibly simple and I only wish that I had known about it
|
|
before.
|
|
|
|
Try this: once you're logged onto the board, enter "open 1" (without
|
|
the quotes, of course). Then follow the prompts and enter the names of
|
|
the files you want processed, all on the same line or one after the
|
|
other (i.e. by pressing Return after you enter each file name). Zmodem
|
|
and the BBS software take care of the rest and you can sit back and
|
|
watch. Of course, you must have Zmodem on your end also.
|
|
|
|
When you're finished, just enter "QUIT" to get back to the Main Menu
|
|
section of the Board. It's so easy that an adult can do it. (See
|
|
Skipper's Laws above.)
|
|
|
|
**********
|
|
|
|
|
|
The Last Issue?
|
|
|
|
|
|
I've been writing these issues for over a year now and, while I've
|
|
enjoyed producing them, I've become a little discouraged at the lack of
|
|
comments, suggestions or questions from readers. In several articles
|
|
in past issues, I've posed questions to the readers, but the response
|
|
was always nil. I know there are a few of you out there that read each
|
|
issue and a couple of you have mentioned that you enjoy them, but I'm
|
|
finding it increasingly difficult to become enthusiastic about future
|
|
issues without some additional expression of support from the readers.
|
|
|
|
So, I'm going to leave it up to those of you who want to see more of
|
|
these issues to let me know. I'm not looking for praise -- just an
|
|
indication that you want me to continue writing. In fact, I'd welcome
|
|
constructive criticism. I try to cover a variety of topics in a manner
|
|
that will be of interest to novices as well as to more experienced
|
|
users, and I try to inject a little humor now and then. Am I succeed-
|
|
ing? What kind of articles do you prefer? Doesn't anyone have any
|
|
questions about anything related to computing? I'm not an expert by
|
|
any means, but I'd sure enjoy the opportunity to help -- especially to
|
|
help beginning computer users.
|
|
|
|
Last week, I sold a copy of my lottery program to a woman who didn't
|
|
know how to copy it from the floppy disk to her hard disk. There must
|
|
be others out there who need help with even the most basic computer
|
|
operations. If you're embarrassed to admit your ignorance (that's
|
|
ignorance, not stupidity -- although, given my experience with my own
|
|
children, I might even be able to help if you're stupid), send the
|
|
question in a private message on the board, or send me a letter to the
|
|
address in the heading above.
|
|
|
|
This may be the last issue. If you don't want it to be, let me know by
|
|
way of comments, suggestions or questions. Thanks.
|
|
|
|
**********
|
|
|