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. **********