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.

                                 **********