home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-08-12 | 111.8 KB | 1,969 lines |
- |Tby Kari M. Jackson|T
-
- |TDDDDDD OOOO SSSS |T
- |TDD DD OO OO SS SS|T
- |TDD DD OO OO SS |T
- |TDD DD OO OO SS |T
- |TDD DD OO OO SSS |T
- |TDD DD OO OO SS |T
- |TDD DD OO OO SS|T
- |TDD DD OO OO SS SS |T
- |TDDDDDD OOOO SSSS |T
- (Disk) (Operating) (System)
-
- |TSimply Said,|T
-
- |TSimply Done,|T
-
- |TSIMPLY EASY!|T
- |TVersion 1.0|T |T(c)1991|T
- <page down> for menu
- Main Menu
- -=|sWhat Is DOS?|s=- -=|sAbout This Program|s=-
- ╔═════════╗
- APPEND |sDATE|s/|sTIME|s FDISK MKDIR » SHARE ║ DOS 5.0 ║
- ASSIGN DEBUG FILES MODE » SHELL ╚═════════╝
- ATTRIB » |sDEL|s/|sERASE|s FIND MORE SHIFT DEVICEHIGH
- » BACKUP DEVIC|1E FOR NLSFUNC SORT DO|1S
- BREAK » DIR FORMAT » PATH STACKS » DOSKEY
- BUFFERS DISKCOMP GOTO PAUSE SUBST EDIT
- CALL DISKCOPY GRAFTABL PRINT SWITCHAR EMM386
- CHCP DOSSHELL GRAPHICS PROMPT SWITCHES EXPAND
- CHDIR DRIVPARM GWBASIC » RECOVER SYS HELP
- CHKDSK ECHO IF REM TREE LOADFIX
- CLS EDLIN INSTALL RENAME TRUENAME LOADHIGH
- COMMAN|1D EXE2BIN JOIN REPLACE » TYPE MIRROR
- COMP EXIT KEYB RESTORE VER QBASIC
- » COPY FASTOPEN LABEL RMDIR VERIFY SETVER
- COUNTRY FC LASTDRIVE SELECT VOL UNDELETE
- CTTY FCBS MEM SET » XCOPY UNFORMAT
- <page down> for more subjects
- » ASCII Floppy » Memory » Device|1s
- » Attributes Fragmented ══════ ═══════
- BIOS Hidden Files » CMOS AUX
- » |sBoot|s/|sReboot|s » Keyboard Conventional CLOCK$
- » Boo|1t Disk Logical Drives EMS COM1
- Bytes Macros Expanded CON
- Cache Multitasker Extended LPT1
- COMSPEC NOT High NUL
- Concatenation Overlay LIM PRN
- Current Parameters Protected Mode
- Default Parent RAM
- » Directory POST Real Mode
- » Disks RAMdisk ROM CPU
- » Editing Keys » Redirection Shadow ═══
- Environment Replaceable » TSR 8088
- ERRORLEVEL Root Upper 286
- » Executable » Shelling Out XMS 386
- EXIST Virtual Disk AT
- FAT » Wildcards XT
- <page down> for more subjects
- Error Messages Files
- ══════════════ ═════
- Abort, Retry, Fail, Ignore *.* HIMEM.SYS
- Access denied » ". and .." IBMBIO.COM
- Bad command or filename ANSI.SYS IBMDOS.COM
- Disk full » AUTOEXEC.BAT IO.SYS
- File creation error » Batch File MSDOS.SYS
- Invalid COMMAND.COM » COMMAND.COM RAMDRIVE.SYS
- Non system disk » CONFIG.SYS SMARTDRV.SYS
- Out of environment space Device Driver VDISK.SYS
- DRIVER.SYS
- » Caution! Numbering Systems
- ════════ ═════════════════ » Software Distribution Methods
- Cleaning Binary ═════════════════════════════
- Low-Level Decimal BBS Freeware
- Magnetism Hexadecimal Commercial Public Domain
- Park Demo Shareware
- Power Downloading
- Write-protect
- -=|sTrademarks|s=-
- The |TSHELL|T and |tCOMSPEC|t Commands
-
- Many experts say that it is just good sense to have a "clean" root direc-
- tory. That means you want to have the smallest possible number of files
- in the |nroot|n directory. Many people will try to tell you that COMMAND.COM
- is one of the files that must remain in the |nroot|n |ndirectory|n, but this is
- just not true.
-
- When you boot your computer, the first files loaded into memory are the
- Hidden files, which are named |tIO.SYS|t and |tMSDOS.SYS|t if you use MS-DOS, or
- |tIBMBIO.COM|t and |tIBMDOS.COM|t if you use PC-DOS. (These two |nHidden files|n
- must be in the |nroot|n |ndirectory|n of the boo|1t disk, and in most versions of
- DOS they must be the first two files stored on the disk, or they will not
- be found and you will receive the "|tNon system disk|t replace and strike any
- key" message.) Next, a file called CONFIG.SYS (which must always be in
- the |nroot|n |ndirectory|n in order to be located by DOS) is read, then COMMAND
- .COM is loaded. DOS looks in the |nroot|n |ndirectory|n to find |nCOMMAND.COM|n.
-
- However, if there was a |nSHELL|n statement in |nCONFIG.SYS|n, then DOS will in-
- <page down> for more
- SHELL and COMSPEC continued
- stead search the directory indicated there! Next, COMMAND.COM reads and
- executes each line of your AUTOEXEC.BAT file, if one is present in your
- root |ndirectory|n. After this process is complete, you are greeted by a DOS
- prompt.
-
- Now if you run a program which requires a great deal of memory, the tran-
- sient portion of |nCOMMAND.COM|n will drop out of |nmemory|n, to leave room for
- this program. Therefore, the first thing that DOS needs to do when you
- exit from this program, is to reload |nCOMMAND.COM|n. However, this reload-
- ing cannot use the |nSHELL|n statement in CONFIG.SYS to find the |ndirectory|n
- where |nCOMMAND.COM|n resides. |nCONFIG.SYS|n can only be read by DOS during
- |sboot|sup. But DOS knows that it should check the environment for a vari-
- able called |nCOMSPEC|n. The |nCOMSPEC|n variable tells DOS where to look to re-
- load |nCOMMAND.COM|n, whereas the |nSHELL|n statement tells DOS where to look to
- find |nCOMMAND.COM|n during bootup. Therefore you need both of these items
- if you want to move |nCOMMAND.COM|n out of the |nroot|n |ndirectory|n.
-
- There are two ways to set this |nCOMSPEC|n |nenvironment|n variable:
- <page down> for more
- SHELL and COMSPEC continued
- 1. The |nCOMSPEC|n statement in the AUTOEXEC.BAT. You could also enter this
- command from the command line if you ever want to. Here it is:
- |nSET|n |nCOMSPEC|n=C:\DOS\|nCOMMAND.COM|n
- (That is assuming that DOS is the name of the directory to which you have
- moved COMMAND.COM.) However, there's no sense cluttering up your AUTOEX-
- EC.BAT file with this line, when there is a much easier way to set this
- variable.
- 2. The |nSHELL|n statement in CONFIG.SYS. Most people will tell you that
- the |nSHELL|n statement should look like this:
- |nSHELL|n=C:\DOS\|nCOMMAND.COM|n /P
- However, this will not set the |nCOMSPEC|n variable in the environment.
- With just a slight change to the |nSHELL|n statement, though, like this:
- |nSHELL|n=C:\DOS\|nCOMMAND.COM|n C:\DOS /P
- the second occurrence of the name of the |ndirectory|n will tell DOS to set
- the |nCOMSPEC|n variable. It seems redundant, but it is necessary to do
- this, or when you exit a large program you will receive this message:
- "|tInvalid COMMAND.COM|t system halted", because if the |nCOMSPEC|n variable is
- set incorrectly, then DOS has no way of finding |nCOMMAND.COM|n. There is
- <page down> for more
- SHELL and COMSPEC continued
- nothing you can do about that except reboot.
-
- So remember, you can move COMMAND.COM out of the root directory and in-
- to a subdirectory, but only if you use the proper syntax for the |nSHELL|n
- statement in CONFIG.SYS, or else the |nCOMSPEC|n statement in AUTOEXEC.BAT
- along with the "popular" syntax of the |nSHELL|n statement.
-
- If you do not move |nCOMMAND.COM|n from the |nroot|n |ndirectory|n, you do not need
- the |nSHELL|n statement, unless you want to increase the size of your envir-
- onment. If you receive an "|tOut of environment space|t" message, you will
- need this line in your |nCONFIG.SYS|n file:
- |nSHELL|n=C:\|nCOMMAND.COM|n /E:nnn /P
- where nnn = the number of bytes (for DOS 3.2 or later) or the number of
- 16-byte paragraphs (for DOS 3.1) of environment space you would like to
- have. In this case, you do not need to specify the |ndirectory|n name where
- |nCOMMAND.COM|n is, twice, since |nCOMMAND.COM|n is in the |nroot|n |ndirectory|n, so
- |nCOMSPEC|n will be set automatically. The purpose of this form of the |nSHELL|n
- line is only to enlarge the |nenvironment|n.
- <page down> for more
- SHELL and COMSPEC continued
- Of course, if you do have COMMAND.COM in a subdirectory, and you need
- more environment space also, you can combine those statements like this:
- |nSHELL|n=C:\DOS\|nCOMMAND.COM|n C:\DOS /E:nnn /P
-
- About the size of the |nenvironment|n you want to set: The default is 160
- bytes (except for DOS version 5, where the |ndefault|n is 256 |nbytes|n), so if
- you've run out of space, obviously you need a higher number than that.
- The highest number you can use is 32,767. A good setting is 256 |nbytes|n.
- Don't increase it over that unless you run out of space with that set-
- ting. Also, the number of |nbytes|n in the |nenvironment|n must be a multiple of
- 16, or DOS will "round up" and give you a multiple of 16 anyway. And if
- you have DOS 3.1, remember to use the number of 16-byte paragraphs, rath-
- er than the number of |nbytes|n.
-
- By the way, the purpose of the /P is to cause |nCOMMAND.COM|n to be the pri-
- mary command interpreter, as opposed to being a secondary shell which can
- be exited from. (See shelling out.) The primary shell runs AUTOEXEC.BAT
- whenever it is done loading. If there is no shell statement, AUTOEXEC
- <page down> for more
- SHELL and COMSPEC continued
- .BAT will be called anyway. But if there is a shell statement, then
- AUTOEXEC.BAT will only be called if the /P switch is present.
-
- Now the fact that /P causes COMMAND.COM to be the primary shell, is
- quite important. If you left out the /P in the shell statement, and
- you accidentally typed EXIT at the DOS prompt, then |nCOMMAND.COM|n would
- drop out of memory and you wouldn't be able to do anything except re-
- boot.
-
- One more thing about the |nCOMSPEC|n environment variable. The default set-
- ting is the root directory of the disk you booted from, unless you tell
- DOS otherwise. So if you have a hard drive, but you sometimes |nboot|n from
- a floppy disk, then when you do, you'll probably want to issue a command
- such as |nSET|n COMSPEC=C:\DOS\COMMAND.COM depending on where your COMMAND
- .COM file really is, so that DOS will use that copy instead of always
- asking you to "Place disk with |nCOMMAND.COM|n into drive A:" every time you
- exit from a large program after having booted from the |nfloppy|n drive.
-
-
- The |tEnvironment|t
- (See also SHELL.)
-
- The |nenvironment|n is a sort of a scratch pad that DOS and many applications
- programs know how to use for certain purposes. Certain functions of DOS
- know that if they need some information, this information can possibly be
- found in the |nenvironment|n, and memory is set up in such a way that these
- functions know where to look to find the |nenvironment|n. So, if you set
- these information variables in the |nenvironment|n, then the information will
- be there when it is needed.
-
- The variables that DOS can use are COMSPEC, PATH, and PROMPT. Also any
- batch file can use variables that have been placed into the |nenvironment|n
- using the SET command. Many programs are written so that they know to
- look for a certain variable in the |nenvironment|n. For example, many pro-
- grams need to use files other than the main executable program file while
- they're running. Programs will look for these files in the current dir-
- ectory, whatever directory you were in when you first loaded the program.
- Some programs though, know that if the files are not located in the cur-
- <page down> for more
- Environment continued
- rent directory, they may be located in a |ndirectory|n specified by a certain
- variable in the |nenvironment|n. So if you have previously set that particu-
- lar variable to be equal to the |ndirectory|n where these files are located,
- then the program will be able to find these overlay files.
-
- Suppose the manual to your word processor says that the program knows
- how to search for files in a |ndirectory|n specified by a WORD variable.
- And suppose all your word processing files are in a |ndirectory|n called
- WP. Then what you want to do is put this line into your AUTOEXEC.BAT
- file:
- |nSET|n WORD=C:\WP
- Now your word processor will always be able to find its files, even if
- you do not change to the WP |ndirectory|n before you start the program.
- If a program uses |nenvironment|n variables in this way, it will be men-
- tioned in the installation chapter in that program's manual.
-
- DOS version 5 uses two more |nenvironment|n variables than previous versions.
- The DIRCMD variable which relates to the DIR command, and the TEMP vari-
- able which is for redirection and for the DOSSHELL.
- File |tAttributes|t
-
- A file can have any of four |nattributes|n, which can be turned on or off by
- the ATTRIB command. (DOS versions previous to 5.0 can only alter the R
- and A |nattributes|n. If you need to alter an H or S attribute and you have
- an older version of DOS, there are many utilities that can do it, such as
- PC Tools, Norton, and several public domain or freeware ones such as HIDE
- .COM from PC Magazine.) The |nattributes|n for each file are stored in the
- directory. The possible |nattributes|n are Hidden, System, Archive, and
- Read-only. (The word "attributes" can also refer to screen colors.)
-
- |tHidden files|t can be executed, but they cannot be deleted, updated, cop-
- ied, or even seen in a |ndirectory|n listing. Many programs give a Hidden
- attribute to their most important files, on the assumption that since you
- can't see them in a |ndirectory|n listing, you won't know they're there, and
- you won't try to mess with them. DOS has two |nHidden files|n named IO.SYS
- and MSDOS.SYS for MS-DOS, or IBMBIO.COM and IBMDOS.COM for PC-DOS.
-
- The System attribute is quite similar to the Hidden one.
- <page down> for more
- Attributes continued
- The Archive attribute is turned on every time a file is created, copied
- into a directory, or updated in any way. The main purpose of this is so
- that a backup program can tell which files need to be backed up. Most
- |nbackup|n programs turn the Archive attribute off each time they |nbackup|n a
- file, so the program knows that if the Archive attribute is on, the file
- has been changed since the last |nbackup|n was done.
-
- A file which has its Read-only attribute set can be executed, read, re-
- named, or copied, but can't be deleted or updated. Setting the R attrib-
- ute is a good way to save your files from accidental deletion. If you
- try to delete a file that has an R attribute, you'll get "|tAccess denied|t".
-
- However, some programs will search for certain companion files that they
- need in order to run, and if the companion file has its R attribute set
- to on, the program might think the file is missing. So if you ever run a
- program which says, "I cannot find my |toverlay|t file named ABCDEF.OVL, I am
- aborting myself", even though you can see that the file is in the current
- |ndirectory|n, just turn the R attribute for that file off, and the program
- should run just fine.
- The |tATTRIB|t Command
-
- The syntax for this command is as follows:
- |nATTRIB|n +a FILENAME.EXT
- where "a" can be the initial of any one of the four file attributes, and
- the + is for turning the attribute on. To turn one off, use - instead.
- But DOS versions previous to 5 can only work with the R and A |nattributes|n.
-
- A very little-known use for the |nATTRIB|n command, is to search your hard
- drive for a file. If you use the |nATTRIB|n command without any +a or -a,
- it will just show you the names of the specified files, with their at-
- tributes displayed next to each. An extra benefit of this is that the
- file's entire |spath|sname is included! So now you know in which directory
- that file resides! For example, suppose you have a file named ABCDEF
- .EXE, and you can't remember where it is. Go to the root |ndirectory|n and
- use this command:
- |nATTRIB|n ABCDEF.EXE /S
- The /S tells |nATTRIB|n to search not only the current |ndirectory|n, but also
- every subdirectory below the |ncurrent|n one, so if you start from the |nroot|n,
- <page down> for more
- ATTRIB continued
- the whole drive will be searched. The result may be this:
- A R C:\DOS\ABCDEF.EXE
- Now you see that the file is in the \DOS directory.
-
- The |nATTRIB|n command also fully supports wildcards. For example, you can
- set the R attribute of every .EXE file on the drive with the command AT-
- TRIB +R *.EXE /S, if you do it from the root |ndirectory|n. Or, if you want
- to find every .BAT file you have on the drive, |nATTRIB|n \*.BAT /S will show
- you their full file specifications, even if you're not in the |nroot|n direc-
- tory because the backslash (\) tells DOS to start the search in the |nroot|n.
-
- In DOS version 5, this command works on H and S attributes as well as A
- and R ones. But you can't do anything with a file that has H and/or S
- until those two |nattributes|n are gone. If you have a file with all four
- |nattributes|n, and you want to remove the A, for example, you can't do it
- while the file has H and S, so |nATTRIB|n -H -S -A FILE.EXT will do it. If
- you wanted that file to keep its H and S, then put them back with |nATTRIB|n
- +H +S FILE.EXT. Yes, it is ok to change more than one attribute on one
- command line like that.
- The |t". and .."|t Directory Entries
-
- What on earth are these things? They appear at the top of every direc-
- tory on my hard drive, except the root |ndirectory|n! What are they? The .
- stands for the current |ndirectory|n, and the .. stands for the parent direc-
- tory. You can use them as a form of shorthand. If you want to delete
- every file in the |ncurrent|n |ndirectory|n, you can type:
- |nDEL|n |n*.*|n
- or you can save typing those bothersome asterisks by typing:
- |nDEL|n .
- with the same results.
-
- Suppose you're in a subdirectory of a subdirectory of (etc.) named
- C:\WP\LETTERS\OCT1990\JOHN
- and you want to change to the |ndirectory|n C:\WP\LETTERS\OCT1990. You can
- either type
- CD C:\WP\LETTERS\OCT1990
- or, since .. stands for the |nparent|n |ndirectory|n of the |ncurrent|n |ndirectory|n,
- you can just type:
- <page down> for more
- ". and .." continued
- CD ..
- with the same results! Won't that save a few thousand keystrokes per
- year? Actually you don't even need the space in there, you could type
- CD.. just as well.
-
- And remember, when the DOS manual says that you can't remove a directory
- until it is empty, it really means until it is empty of everything except
- the . <DIR> and .. <DIR> entries! Don't ever try this:
- |nDEL|n ..
- to empty your |ndirectory|n in preparation for the RMDIR command, since what
- that command will do is delete every file in the parent |ndirectory|n!
-
-
-
-
-
-
-
-
- The |tANSI.SYS|t Device Driver
-
- You can do really great things with this console driver, if you install
- it in your CONFIG.SYS file. Edit |nCONFIG.SYS|n to include this line:
- DEVICE=C:\DOS\|nANSI.SYS|n
- (That is assuming you have the |nANSI.SYS|n file in your DOS directory.) And
- reboot your computer. Now you're ready to use |nANSI.SYS|n, but what is it?
- It's a |ndevice driver|n that allows you much more control over your |sCON|ssole,
- or monitor-and-keyboard. You can change the colors on your screen, or
- make your own keyboard macros. This involves using a thing called the
- ESCape character. The easiest way to get this character to the screen,
- where the ANSI |ndevice driver|n can see it and interpret it, is with the
- PROMPT command. One of the metacharacters which are used as parameters
- to this command is $e, which will put an ESCape character into your
- |nprompt|n. Well this is what it's for.
-
- To change the color of your screen from the dull drab gray-on-black of
- normal DOS, here is the |nPROMPT|n command you'll need:
- |nPROMPT|n $e[3x;4ym
- <page down> for more
- ANSI.SYS continued
- where 3x is the foreground (text) color, and 4y is the background color.
- The color codes, that take the place of the x and the y, are as follows:
- 0 black 1 red 2 green 3 yellow
- 4 blue 5 magenta 6 cyan 7 white
- Notice that the m at the end of that command must be in lowercase or the
- command will not work. It's that simple to make your screen whatever
- color you choose. Remember, though, that this changes the PROMPT vari-
- able in the environment, so you lose the |nPROMPT|n statement you had already
- set up. It will look like you don't have a |nprompt|n at all anymore. So
- what you might want to do is add your normal |nPROMPT|n statement to the end
- of that one, like this:
- |nPROMPT|n $e[3x;4ym$p$g
- Now you have both your new color scheme and your old |nprompt|n! Another way
- is to use two separate commands, the color changing command, followed by
- the regular |nPROMPT|n command to get your normal |nprompt|n back. This would
- save space in the |nenvironment|n, because the longer color command would be
- replaced by the shorter normal |nPROMPT|n command. If you use this method in
- a batch file though, you need to observe the rules mentioned under macros
- <page down> for more
- ANSI.SYS continued
- about the use of multiple PROMPT statements in a batch file.
-
- Now when ANSI changes your screen colors, it will only change what is
- written on the screen from that time on. It will not automatically make
- your whole screen change. In order to get the whole screen filled with
- your new colors, all you need to do is clear the screen with the CLS
- command. Another way to clear the screen is to use the ANSI ESCape
- sequence 2J. Just add it to the end of your color-changing command:
- |nPROMPT|n $e[32;40m$e[2J
- This time the J ANSI command must be in uppercase, as opposed to the m
- and p ANSI commands which must be in lowercase. Now remember, if you use
- this method of clearing the screen, don't add your normal |nprompt|n to the
- end of it. You must give a normal |nPROMPT|n command separately, and after
- that one that includes 2J, or else the screen will be cleared every time
- you hit <Enter>, before you get a chance to see the result of the command
- you just entered.
-
- Using ANSI to set up keyboard |tmacros|t is just as easy! A |nPROMPT|n command
- <page down> for more
- ANSI.SYS continued
- for that purpose would look like this:
- |nPROMPT|n $e[0;68;"DIR";13p
- Notice that the p at the end of that command must be in lowercase or the
- command will not work. The number combination 0;68 stands for the <F10>
- key, and the 13 stands for the <Enter> key. (See the ASCII subject for
- the codes for all the function keys.) Therefore, the above PROMPT would
- cause the <F10> key to be reassigned as |nDIR|n <Enter>, so every time you
- hit the <F10> key, you would automatically get a directory listing. You
- can put any command you want into one of these macros, even more than one
- command into the same macro. Suppose that you like to clear your screen
- before you look at a DIR listing. The following command would set up the
- <F10> key to do that for you:
- |nPROMPT|n $e[0;68;"CLS";13;"DIR";13p
- ANSI will write the parts in quotes exactly the way they are entered.
- The parts that are not in quotes are interpreted as decimal |nASCII|n codes.
- The quoted strings and the |ndecimal|n |nASCII|n strings must be separated by
- semicolons (;).
-
- <page down> for more
- ANSI.SYS continued
- Another useful code for ANSI macros is 32 which means the <Space> bar.
- You might want to reassign a function key to "DIR";32. Notice that one
- has a <Space> (32) instead of an <Enter> (13). That way, what it puts on
- your screen at the command line, is "DIR " (without the quotes) so that
- if you want to add /W or *.EXE or any other parameters to the DIR com-
- mand, you can, or if not, just hit <Enter>. Actually, it would be just
- as good to assign "DIR " to the key, as to assign "DIR";32, but that was
- just to show that 13 for <Enter> is not the only key code that's worth
- anything.
-
- Another type of "macro" you can use ANSI for, is rearranging the way your
- keyboard is set up. Do you need to use the " a lot more often than the '
- and you're tired of hitting the <Shift> key to get to the "? Well, since
- the ASCII code for " is 34 and the code for ' is 39, you can do this:
- |nPROMPT|n $e[34;39p
- |nPROMPT|n $e[39;34p
- Now whenever you hit the ' key you'll get " and then to make a ' you'll
- have to use the <Shift> key.
- <page down> for more
- ANSI.SYS continued
- This is not a perfect solution, however, because not all applications
- recognize ANSI key reassignments. Some programs will still give you '
- whenever you hit ' even though you have " assigned to the ' key. But it
- can't hurt to try. Maybe your favorite word processor will let you do
- these reassignments. At any rate, the changes will work in DOS for sure.
-
- You can put all your keyboard redefinition |sPROMPT|ss, and your color change
- |nPROMPT|n into your AUTOEXEC.BAT file or any other batch file. There is one
- problem with this, however. Most people like to have ECHO off in their
- |nAUTOEXEC.BAT|n file, so the screen stays as clean as possible during |sboot|s-
- up. But when |nECHO|n is off, the |nPROMPT|n sequence is not sent to the screen.
- So the ANSI ESCape character is not seen by the ANSI driver, so it will
- not be acted upon, until the end of the |nbatch file|n, when DOS automatical-
- ly turns |nECHO|n back on. But by then it's too late for all but the last of
- the |nPROMPT|n strings to be interpreted by the ANSI driver, since each new
- |nPROMPT|n statement replaces the old |nPROMPT|n statement in the environment.
- The last |nPROMPT|n statement executed is the only one which will be seen by
- the ANSI driver, unless |nECHO|n is on while these |nPROMPT|n statements are be-
- <page down> for more
- ANSI.SYS continued
- ing sent to the environment. You don't need to leave ECHO on for the
- entire batch file, however, just from the line immediately following the
- first PROMPT statement, until the line immediately preceding the last
- |nPROMPT|n statement.
-
- There's an easy way to get around this problem, though, if you have DOS
- version 3.3 or later. This version added the @ symbol to the list of
- |nbatch file|n commands, to suppress the display of any line in a |nbatch file|n.
- You still need to have |nECHO|n on for this, but the ugly old |nPROMPT|n lines
- will not show on the screen. You just precede each |nPROMPT|n command with
- the @ symbol, and then leave a blank line right after that, then the next
- @PROMPT line, another blank line, etc. After all your @PROMPT lines and
- blank lines, then turn |nECHO|n off for the rest of the |nbatch file|n. And do
- not forget to issue a normal |nPROMPT|n command afterward, or else it will
- look like you don't have a |nprompt|n at all, since any ESCape sequences sent
- to the screen are intercepted and interpreted by the ANSI driver before
- they get there.
-
- <page down> for more
- ANSI.SYS continued
- There are other ways to get the ESCape character to the screen, besides
- using the PROMPT command, but they aren't really used so much by begin-
- ners. The ESC character can be represented by the ^[ keystroke combin-
- ation, but in most text editors or word processors, if you enter ^[, the
- same thing will occur as what would happen if you hit the <Esc> key. (A
- symbol like ^[ always means to hold down the <Ctrl> key while typing [.)
- But most text editors and word processors do have a way to enter control
- characters into the text. The DOS command EDLIN uses ^V. If you enter
- ^V followed immediately by the [ character, then the ^[ (ESC) character
- will be inserted into the text. When you enter this into |nEDLIN|n it's go-
- ing to look like this on the screen at first: ^V[[31;40m. But if you
- later list the file, or save it and edit it again later, you will see
- ^[[31;40m. The V has disappeared! But that's ok, it's supposed to do
- that. The ^V was just there to tell |nEDLIN|n that the [ was supposed to
- mean a ^[, and that's what it did, because now it says ^[. But don't
- forget, the ^[ represents only the ESCape character, and the combination
- that ANSI will recognize as one of its commands, is ESC + [. The [ needs
- to follow the ^[ which stands for ESC.
- <page down> for more
- ANSI.SYS continued
- If you have DOS version 5.0, you can use the EDIT command instead of the
- EDLIN line editor, because it's easier to use. If you do, ^P + ESC will
- do the same thing as ^V + [ does in |nEDLIN|n--give you an ESC character.
-
- Different editors use different methods, however, so if you're not using
- |nEDLIN|n or |nEDIT|n, you'll have to check the manual for your editor. Once you
- know the method your editor uses to get control characters into the text,
- the possibilities are endless. You could create a text file called HELLO
- .TXT which looks kind of like this:
- ESC[31;40mHi there! (red)
- ESC[37;40mHow are you? (white)
- ESC[34;40mI am fine. (blue)
- ESC[0m (back to normal)
- Now when you enter the command |nTYPE|n HELLO.TXT, your screen will show that
- text (not including the ugly part) in colors! You can also use a similar
- technique in a batch file. Just use the ECHO command, like this:
- |nECHO|n ESC[31;40mHi there!
- And remember, with |nTYPE|n and |nECHO|n, you do not need to have |nECHO|n on during
- <page down> for more
- ANSI.SYS continued
- this part of the batch file like you do if you're using PROMPT $e to en-
- ter the ESCape character, because these commands will send the string to
- the screen even if DOS doesn't send the command to the screen.
-
- Of course you use the same techniques to get the ESC character into a
- file, whether for the purpose of color, or for the purpose of macros.
-
- To un-assign function keys that have been made into |nmacros|n using ANSI
- ESCape sequences, you just reassign them to their normal ASCII code.
- For example, if you had the <F10> key reassigned to "DIR";13, you just
- need to reassign it back to <F10>, like this:
- |nPROMPT|n $e[0;68;0;68p
-
- A few caveats about using ANSI to create |nmacros|n. First, remember that
- DOS has its own functions for the <F1> through <F7> keys, so you don't
- want to reassign those. But you can reassign <F8> through <F10>, as well
- as <Shift-F1> through <Shift-F10>, <Alt-F1> through <Alt-F10>, and <Ctrl-
- F1> through <Ctrl-F10>. (Although if you're using DOS version 5 with the
- <page down> for more
- ANSI.SYS continued
- DOSKEY command, you don't want to reassign any keys that it uses either.)
- But not all of them! The |nANSI.SYS|n device driver sets aside only a limit-
- ed amount of memory for holding these keystroke redefinitions. I can't
- tell you how many keys you can assign, because it'll depend on the length
- of each macro you're using. But if you have some keys assigned, and try
- to assign one more and it won't work, chances are that it's because that
- chunk of |nmemory|n is full.
-
- One last thing. Don't expect these macros to work anywhere except in DOS
- because most programs have their own uses for the function keys, and will
- take over control of them while you're in the program. But as soon as
- you exit back to DOS, the |nmacros|n will work again. Some programs will
- allow the ANSI reassignment to work though, and it can't hurt to try.
-
- There are also some other very useful ANSI commands, which are probably
- listed in your DOS manual, and now that you know more about the ESC char-
- acter, you can probably understand that chapter in the manual. And there
- are several shareware clones of |nANSI.SYS|n, such as NANSI.|nSYS|n, which work
- just the same way only much faster! So check them out and have some fun!
- The |tAUTOEXEC.BAT|t File
-
- The |nAUTOEXEC.BAT|n is a very special batch file. As long as it is located
- in the root directory of the boo|1t disk, it will automatically be read by
- COMMAND.COM every time you restart your system. (Exception: If there is
- a SHELL statement in CONFIG.SYS, that does not have the /P switch, then
- |nAUTOEXEC.BAT|n will not be run after all.) This file should contain any
- commands that you want to have executed with each reboot.
-
- If you load a TSR from |nAUTOEXEC.BAT|n, it should always come earlier in
- the file than any PATH, SET, or PROMPT statements, if possible. This is
- because every program, including TSRs, that runs under DOS gets its own
- copy of the environment. The commands |nPATH|n, |nSET|n, and |nPROMPT|n put variable
- strings into the |nenvironment|n. Therefore, if any of these commands are
- used before the TSRs are loaded, the TSR's copy of the |nenvironment|n uses
- more RAM than is needed.
-
- This is not the case if the TSRs are loaded before any strings are placed
- into the |nenvironment|n. Also, if you have any real need to place a string
- <page down> for more
- AUTOEXEC.BAT continued
- into the environment before loading a TSR, then it would be best if you
- could also remove that |nenvironment|n string again before loading the |nTSR|n.
-
- The only trouble with placing the PATH statement near the end of AUTOEXEC
- .BAT, though, is that DOS won't be able to find the command files for the
- commands issued from the |nAUTOEXEC.BAT|n unless the full file specification
- for each command is listed on the command line of the batch file. For
- example, to load a screen saver called EXPLOSIV into memory, the command
- would usually be simply EXPLOSIV if the directory containing the EXPLOSIV
- .COM file is listed on the |nPATH|n variable in the |nenvironment|n. But since
- the |nPATH|n variable has not yet been set, the command must instead read as
- follows:
- C:\UTIL\EXPLOSIV
- That is providing the EXPLOSIV.COM file is located in the \UTIL |ndirectory|n
- of the C: drive. That way, DOS knows exactly where to find the command
- file, even without the |nPATH|n variable. Sure, it's a little more typing to
- do, but that is not a real problem, since you only need to type this com-
- mand once, when you first create your |nAUTOEXEC.BAT|n file.
- <page down> for more
- AUTOEXEC.BAT continued
- If there is no |nAUTOEXEC.BAT|n file located in the root directory of the
- boo|1t disk, then DOS will |nprompt|n you for the date and time during each
- bootup, just as if you did have an |nAUTOEXEC.BAT|n file that contained just
- the DATE and TIME commands.
-
- One thing you do not want to do, if there are any |sTSR|ss loaded from your
- |nAUTOEXEC.BAT|n, or if you're not sure, and there might possibly be any TSRs
- in there, is execute this file from the DOS prompt by entering AUTOEXEC
- as a command. The reason is that any TSRs that are listed in there have
- already been loaded into memory, while you booted the computer, and so
- executing |nAUTOEXEC.BAT|n again without rebooting, would load a second copy
- of those TSRs into |nmemory|n. Well some TSRs realize when they're being
- loaded a second time, and just won't go for it. That's fine. Other TSRs
- just go ahead and load a second copy. That won't hurt anything, neces-
- sarily, but it sure would be a waste of |nmemory|n. But other TSRs, when you
- try to load them twice, will lock up the whole computer. Don't execute
- AUTOEXEC manually unless you're positive there are no TSRs in it. So if
- you make a change to this file and want to see what happens, just reboot
- the computer. But have a |nboot|n disk handy first, in case of trouble.
- The |tRMDIR|t Command
-
- This command can also be abbreviated as RD. What it does, is to ReMove
- any completely empty DIRectory. Before you can remove a |ndirectory|n, you
- must remove all subdirectories from it (except the ". and .." entries),
- as well as all the files.
-
- The main problem with removing directories is that sometimes a |ndirectory|n
- will contain files which have their Hidden, System, or Read-only attrib-
- utes turned on. These files must first be deleted, but in order to del-
- ete them, those attributes must be removed with the ATTRIB command.
-
- Another problem with removing directories is that you cannot remove the
- current |ndirectory|n. You must change to a different |ndirectory|n first, using
- the CHDIR command.
-
- See the section on the MKDIR command for the syntax of this one, since
- it's just the same.
-
-
- The |tDISKCOPY|t Command
-
- This command will make an exact duplicate of a floppy disk. It copies
- every single byte of data on the disk, including bad sector marks and
- the formatting codes. For this reason you don't have to FORMAT the tar-
- get disk first, but you should anyway because if you don't, then you
- won't know whether the disk has any bad sectors, and you could end up
- copying good data to a bad sector. If the target disk does have any bad
- sectors, you must not use it for a |nDISKCOPY|n purpose. Because although
- the |nFORMAT|n command will mark out the bad sectors, the |nDISKCOPY|n command
- will ignore that, and copy the data to the target disk in the exact same
- way the data was sitting on the source disk.
-
- If the target disk has been used before, it will be completely erased!
-
- Another problem with this command is that it can only be used to copy one
- disk to another disk of the exact same size and capacity. A whole lot of
- beginners get fooled by that. Since |nDISKCOPY|n makes a sector-by-sector
- mirror image of the source disk, the target disk has to have the exact
- <page down> for more
- DISKCOPY continued
- same number of sectors as the source disk. You can't |nDISKCOPY|n from a
- double-density to a high-density disk, or from a 3.5" disk to a 5.25"
- disk, or anything like that, or to or from a hard disk.
-
- Now, some good points about this command: For one, since it copies every
- byte on the source disk, it copies any System and/or Hidden files, which
- are otherwise impossible to copy without changing those attributes first.
-
- Second, this command will copy files from the source disk to the target
- disk in the same logical drives, with the command |nDISKCOPY|n A: A: or the
- |nDISKCOPY|n B: B: command. So you can copy files between disks of the same
- size even if you have both sizes of floppy drives, which is not possible
- with the COPY or XCOPY commands. DOS will tell you when to switch |ndisks|n,
- so you just need to be careful to remember which disk is which. It is a
- good idea to write-protect the source disk, so that even if you forget
- and put the source disk in when DOS asks for the target disk, the source
- disk will not get ruined.
-
-
- The |TSET|T Command
-
- This command is used to place variable strings into the environment. The
- syntax is:
- |nSET|n VARIABLE=VALUE
- The variable name will be changed to uppercase, but the value will be
- placed into the |nenvironment|n in the same form it is entered. The value
- and variable name can include any alphanumeric characters.
-
- You can also use the |nSET|n command, with no parameters, to see what strings
- are already in the |nenvironment|n.
-
- To remove a variable from the |nenvironment|n, just set it equal to nothing,
- like this:
- |nSET|n VARIABLE=
-
- If you use the |nSET|n command to set a variable that already exists in the
- |nenvironment|n, the new string replaces the old string. There is no way
- outside of a batch file, to add another string to the end of a string
- that's already there, without retyping the part that's already there.
- |tDirectory|t Structure
-
- A |ndirectory|n is like a Table of Contents that tells DOS where to find each
- file on the disk. But a directory's size is set at the time a disk is
- |sFORMAT|sted, and cannot be enlarged. A |ndirectory|n on a hard drive can only
- contain 512 entries. If you try to add another file to a |ndirectory|n that
- is already full, you'll get a "|sdisk full|s" message. Well surely a hard
- disk can hold more than 512 files?
-
- Yes, it can, by putting subdirectory names in place of some of the file-
- names in the |ndirectory|n. Subdirectories can have a number of files or
- other subdirectories in them that is limited only by the amount of disk
- space. A subdirectory listing is just like any other file; if the file
- or the listing gets larger, it simply gets more space allocated to it.
- Only the root |ndirectory|n is limited in size.
-
- There are also other reasons for breaking the files up into groups in
- subdirectories, rather than leaving them all in the |nroot|n |ndirectory|n. For
- one thing, if you actually had 512 files in your |nroot|n |ndirectory|n, wouldn't
- <page down> for more
- Directory continued
- it be awfully hard to see what's there, with all those other filenames
- getting in the way? Well it's hard for DOS to find a file that way, too.
- DOS has to look through the entire |ndirectory|n listing, just like you do,
- to find a file that you tell it to find. So it's best to keep large pro-
- grams, that include many files, each in their own subdirectory, so that
- both you and DOS can find them more quickly. (See also MKDIR.)
-
- The easiest way to visualize a |ndirectory|n structure, is like a file room.
- The |troot|t |ndirectory|n (the main |ndirectory|n which covers the contents of the
- entire disk) is like the fileroom. There are a bunch of file cabinets,
- and a few separate file folders laying around that have not been placed
- into the cabinets. The file cabinets are like subdirectories. Each sub-
- |ndirectory|n can contain further subdirectories. These would be like the
- drawers in the file cabinets. The drawers contain the files, just like
- subdirectories contain files.
-
- The |tcurrent|t |ndirectory|n is like whichever file cabinet or drawer DOS is
- currently sitting in. To CHange the |ncurrent|n |nDIRectory|n, you use the
- <page down> for more
- Directory continued
- |tCHDIR|t command, which can be abbreviated as CD. The current |ndirectory|n is
- also called the |tdefault|t |ndirectory|n. A |ndefault|n just means whatever will be
- used as parameters if the |nparameters|n are not specified.
-
- The terms |ncurrent|n and |ndefault|n can also apply to drives, and have about
- the same meanings when they do. The |ncurrent|n drive is the one whose drive
- letter is shown in your prompt. But the |ncurrent|n |ndirectory|n is not always
- the same as the |ncurrent|n drive. Each drive on your system has a |ncurrent|n
- |ndirectory|n at all times, even when that drive is not the |ncurrent|n one. The
- |ncurrent|n |ndirectory|n, on a drive that is not |ncurrent|n, is the |ndirectory|n that
- would be |ncurrent|n if that drive were made |ncurrent|n. Unless you change the
- |ncurrent|n |ndirectory|n on a disk, it is the root |ndirectory|n. Each time you re-
- boot your system, the |nroot|n |ndirectory|n of each drive is the |ncurrent|n one.
-
- You can even use the |nCHDIR|n or CD command to change the |ncurrent|n |ndirectory|n
- on a drive other than the |ncurrent|n one. For example the CD C:\UTIL com-
- mand will change the |ncurrent|n |ndirectory|n on drive C: to \UTIL, whether C:
- is the |ncurrent|n drive or not.
- <page down> for more
- Directory continued
- The way to change the current drive is quite simple. To make C: the cur-
- rent drive, the command is just C:. To make A: the |ncurrent|n drive, the
- command A: would do it. There is no way in DOS to change the |ncurrent|n
- drive, and the |ncurrent|n |ndirectory|n on that drive, all in one step. It
- takes a C:, A:, etc. type of command as well as a CHDIR or CD command.
-
- Another way to visualize a |ndirectory|n structure is like an upside-down
- tree. The root |ndirectory|n is the trunk of the tree, the subdirectories
- are the main branches, which can be further divided into smaller bran-
- ches, and the leaves are the files.
-
- The |tparent|t of the |ncurrent|n |ndirectory|n is the one that's next closer to the
- |nroot|n. If the |ncurrent|n |ndirectory|n is a second-level subdirectory, then the
- |nparent|n is the first-level subdirectory immediately above it in the upside
- down tree. If the |ncurrent|n |ndirectory|n is a first-level subdirectory, then
- the |nparent|n is the |nroot|n |ndirectory|n.
-
- Referencing all these different drives and directories is not all that
- <page down> for more
- Directory continued
- difficult. To tell DOS what disk you're talking about, you use the drive
- letter followed by a colon, as in C:. Then you start out with a back-
- slash. A leading backslash always refers to the root |ndirectory|n of the
- disk in question. Then you tell the subdirectory names, in order, start-
- ing from the |nroot|n, that lead to the file. Each subdirectory name is sep-
- arated from the others by another backslash. Then you tell DOS the file-
- name, a period, and the filename extension. |nDirectory|n names can be from
- one to eight characters, and filenames are the same. The filename exten-
- sion can be from zero to three characters. So, a full filename specific-
- ation might look like this:
- C:\WORD\LETTERS\FILENAME.EXT
-
- Of course it's best if you use really short words or abbreviations for
- your |ndirectory|n names, because that will save you a whole lot of typing
- over the years. Also, the PATH variable in the environment can only be
- 127 characters long, so if your |ndirectory|n names are long, you'll only be
- able to fit a few of them into that variable.
-
- <page down> for more
- Directory continued
- DOS can tolerate a lot of shortcuts when dealing with file specifica-
- tions. Anything that is the default can be left out. Suppose your cur-
- rent drive is C: and the current |ndirectory|n on C: is \DOS. If you want
- to refer to the file C:\UTIL\FOO.BAR, you can just say \UTIL\FOO.BAR
- because if you leave out the drive letter, DOS will assume the |ncurrent|n
- drive, and in this case that's the drive you wanted anyway.
-
- If your |ncurrent|n drive is still C: and the |ncurrent|n |ndirectory|n on the A:
- drive is \GAMES and you want to reference the file A:\GAMES\PLAY.EXE,
- then all you need to tell DOS is A:PLAY.EXE because if you leave out
- the |ndirectory|n, DOS will assume the |ncurrent|n |ndirectory|n on the drive men-
- tioned, which is the right one. However, if you put a leading backslash
- in there, as in A:\PLAY.EXE, that wouldn't work because a leading back-
- slash always refers to the root |ndirectory|n, and PLAY.EXE is not in the
- |nroot|n, it's in the GAMES subdirectory which branches from the |nroot|n.
-
- Now suppose your |ncurrent|n drive is still C: and drive C:'s |ncurrent|n direc-
- tory is still \DOS, and you want to refer to the file C:\DOS\GO.EXE, then
- <page down> for more
- Directory continued
- all you have to say is GO.EXE because C: and \DOS\ are both the |sdefault|ss.
-
- Now let's say the current drive is C: and the |ncurrent|n |ndirectory|n is \ (the
- |sroot|s) and we want to tell DOS about that same file named C:\DOS\GO.EXE.
- This time we can still leave out the C: and also the leading \ because
- those are the defaults, and we can say DOS\GO.EXE.
-
- If the |ncurrent|n |ndirectory|n were \UTIL instead then we would have to include
- the \ to remind DOS to start back up in the |nroot|n |ndirectory|n again, then
- look for the |ndirectory|n named DOS which is branching from a different spot
- in the |nroot|n.
-
- Now how about the ". and .." directories that show up in every |ndirectory|n
- listing except the |nroot|n? The .. entry stands for the parent |ndirectory|n.
- Well suppose that the |ncurrent|n drive is C: and the |ncurrent|n |ndirectory|n is
- \WORD\LETTERS\JOHN and we want to tell DOS to do something with a file in
- a |ndirectory|n called C:\WORD\LETTERS\BILL. How do we do that? Well, we
- have to first go up one level in the upside-down tree to LETTERS, and
- <page down> for more
- Directory continued
- then down one level to BILL. This will look pretty complicated at first,
- but believe me, when you get used to it, it will be easier than typing
- out the whole name, C:\WORD\LETTERS\BILL\FILENAME.EXT. Here's the short
- way: ..\BILL\FILENAME.EXT. If it weren't for the .. symbol that takes
- us up one level, then the shortest way to do it would have been \WORD\
- LETTERS\BILL\FILENAME.EXT. So, even though the .. symbol will take a bit
- of getting used to, it's worth it!
-
- If you don't have a hard drive, you might think that you will never be
- interested in directories. Guess again! Remember that the root direc-
- tory of any disk is limited as to how many entries it can hold. For 360K
- and 720K disks, that limit is 112 files, and for 1.2M and 1.44M |ndisks|n, it
- is 224. If you want to have more files than that on a disk, you have to
- create a subdirectory on the disk to put the files into. Because al-
- though the |nroot|n |ndirectory|n is of a limited size, a subdirectory can con-
- tain an unlimited number of files.
-
- If you have more than 150 files in any |ndirectory|n, you should divide that
- <page down> for more
- Directory continued
- |ndirectory|n into subdirectories, so that DOS can find your files faster.
-
- Now remember that even though it's easier for you to think of directories
- in terms of file rooms, and upside-down trees, and stuff, in reality all
- they are is files. They're just files which contain information about
- other files. For example here's the |ndirectory|n entry for my |nAUTOEXEC.BAT|n:
- 0192(0000) 41 55 54 4F 45 58 45 43 42 41 54 00 00 00 00 00
- 0208(00D0) 00 00 00 00 00 00 89 BE DC 16 6C 01 5D 03 00 00
- Well the eleven bytes starting with 41, 55, 54, if you convert those hex
- numbers to decimal and then look them up in the ASCII chart, you'll find
- that they spell AUTOEXECBAT. (If the filename were less than eight let-
- ters long, there would be one or more 20s between the name and extension
- of the file.) The next number is the attribute byte, and since it says
- 00, you know that this file doesn't have any of its attributes turned on.
- The four |nbytes|n 89, BE, DC, 16, are the date and time of the most recent
- update to the file. Also in that |ndirectory|n entry somewhere are the size
- of the file (number of |nbytes|n in length) and the number of the first clus-
- ter of the file (where it's located on the disk). Well, a |ndirectory|n is
- just a file that holds an entry like that for each file in the |ndirectory|n.
- The |tBACKUP|t Command
-
- How important is it to |nbackup|n your hard disk? Well, how hard is it for
- you to get your files all organized the way you want them? How hard is
- it for you to create your data files in your word processor, spreadsheet,
- database, or whatever other type of programs you use? Do you want to
- take the very real chance that it could all be lost, and you'll be right
- back to square one, when there's something you can do to prevent it? Of
- course backing up is a pain! Most worthwhile things are. But once you
- have done it a couple times, it won't be confusing anymore. You'll get
- the hang of it in no time flat. Make it a habit, and just like all hab-
- its, it will become second nature.
-
- You have to be really careful to stick a label onto each disk as you're
- doing the |nbackup|n, because the RESTORE command, which is the only way to
- read |nbackup|n disks, has to have the |ndisks|n in the right order to be able to
- put your files back together later after your hard drive has crashed. Be
- really sure that you know the correct order of the |nbackup|n |ndisks|n. Include
- the date and time on the labels too!
- <page down> for more
- BACKUP continued
- Not too many people use the DOS |nBACKUP|n command, but it's fine for a while
- 'til you get something better. The syntax is |nCOMMAND|n SOURCE TARGET SWIT-
- CHES just like most any other DOS command. So let's take those parts one
- at a time. The command is |nBACKUP|n, or C:\DOS\BACKUP, or A:\BACKUP, depen-
- ding on where the executable file is located.
-
- The source is what files you want to |nbackup|n. If you want to |nbackup|n the
- whole disk, you must perform this command from the root directory of the
- disk, and the source would then be C:\*.*, which means everything in the
- |nroot|n |ndirectory|n. Later we'll get to the part of the command that tells
- DOS to also include the subdirectories of the |nroot|n |ndirectory|n.
-
- Now the target is where you want the |nbackup|n files to end up. That's just
- a drive letter, like A:.
-
- Now for the harder part. Don't worry, it's not that hard. The |nBACKUP|n
- command has quite a few switches from which to choose. Here they are:
- /S /M /A /D:05-16-91 /T:10.02 /F /L:C:FILENAME.EXT
- <page down> for more
- BACKUP continued
- So, what on earth do all those things do? Well the /S switch is for
- subdirectories. That's what tells DOS to |nbackup|n not only the current or
- specified directory, but also all of the subdirectories anywhere under
- that |ndirectory|n.
-
- The /M switch checks the Archive attributes for all the files, and only
- backs up files that have been created or modified since the last |nbackup|n
- was done. You don't want to use this switch the first time you |nbackup|n,
- but only for incremental backups. (Incremental means just the files that
- have changed since the last time.)
-
- The /A switch tells DOS not to erase the files that are already on the
- target disk, the way it usually happens, but to leave them there, and
- just add the files now being backed up, to the space that is left on the
- disk from the previous |nbackup|n. So obviously this switch is only for in-
- cremental backups also. If your last incremental |nbackup|n took 5.2 disks,
- then you still have 80% of that last disk empty. Well the /A switch will
- allow you to fill up the empty space on that disk for this incremental
- <page down> for more
- BACKUP continued
- |nbackup|n, instead of making you start fresh on a new disk.
-
- The /D:05-16-91 switch tells DOS to only |nbackup|n files that were last mod-
- ified on or after that date. You don't want to use that switch with the
- /M switch because they'd both be trying to do the same thing in different
- ways. In fact, I'd never trust this switch, in case the system clock had
- been wrong at some point. Because then you'd end up backing up the wrong
- files all together! The /T:10.02 switch which didn't appear in DOS until
- version 3.3, allows you to be even more specific, about the time. It can
- tell DOS to only |nbackup|n files modified at or after that time of day. Do
- not forget to convert times to military format though, because if you en-
- ter 3.00 then you're going to get 3 am. If you want to say 3 pm then use
- 15.00. Don't even think about using the /T switch without using /D also.
-
- The /F switch tells DOS to FORMAT the disks before backing up files to
- them. If the |nFORMAT|n command file is located in a directory listed in the
- PATH variable in the environment, then the |nBACKUP|n command can |nFORMAT|n the
- |ndisks|n while it's backing up.
- <page down> for more
- BACKUP continued
- This switch didn't exist until DOS version 3.3, so before that, we had to
- FORMAT a whole stack of disks before we even started backing up. Then
- what would happen, is that we hadn't formatted enough |ndisks|n, and we would
- run out, and do you know what that used to mean to the |nBACKUP|n process?
- That would mean we would have to start over completely from the beginning
- after we went and formatted some more |ndisks|n. Because there isn't any way
- to tell the |nBACKUP|n command to pick up where we left off before we ran out
- of formatted |ndisks|n. Oh yes, the /F switch was welcomed by all DOS users!
-
- Ok, last one, the /L switch. This one also didn't exist until version
- 3.3 of DOS. What it does is it creates a log file of what the |nBACKUP|n
- command did. That way, after you've backed up your whole disk and you
- have a stack of 38 floppy |ndisks|n, you can tell which files are on which
- floppies. Because the |nBACKUP|n command concatenates all the files into one
- big file, which fills up the whole disk, so you can't tell from the dir-
- ectory listing which files are where! If you leave out the path and
- filename info in the /L switch, |nBACKUP|n will automatically use the default
- name of |nBACKUP|n.LOG and put it in the root directory of the source disk.
- <page down> for more
- BACKUP continued
- In my opinion, the worst thing about the DOS |nBACKUP|n command is that there
- are only two ways to do it. You can do a full |nbackup|n which backs up the
- whole drive, and each time after that you can do an incremental |nbackup|n of
- just the files that have changed since the last time you backed up.
-
- Know what that means? That means that when it comes time to RESTORE the
- files to the hard drive, you need to have that original full |nbackup|n's set
- of floppy disks, and you also need the |ndisks|n from each and every increm-
- ental |nbackup|n you've done since then. If you're backing up twice every
- week like you should be, then after a year you've got over a hundred sets
- of |nbackup|n floppies.
-
- True, each set after the first one, might have been only one or two |ndisks|n
- but still, that's a tremendous amount of |ndisks|n to mess with! You have to
- keep them all safe and secure until such time as you do another complete
- |nbackup|n. After that time, but not until then, you can re-use all of the
- |ndisks|n from the full |nbackup|n and the incremental backups. What a pain!
-
- <page down> for more
- BACKUP continued
- Some commercial |nbackup|n programs have another choice in |nbackup|n strategies,
- though, and PC Tools, for example, calls it Differential |nbackup|n. Here is
- what it does:
-
- The first full |nbackup|n you do backs up every file you have, right? And
- it also turns off the Archive attributes for all the files it backed up.
- Now you've probably only got a few dozen files that are ever going to
- change, if you don't go out and buy any more software. All these files
- that are ever going to change will probably fit on one or two disks.
-
- Well the Differential |nbackup|n method backs up all the files that have the
- Archive attribute set, but it doesn't turn it back off! That way, the
- next time you do a Differential |nbackup|n, it backs up everything that has
- changed since the original full |nbackup|n! That means you don't have to
- keep every single set of Differential |nbackup|n |ndisks|n you've made!
-
- So, on week one you do a full |nbackup|n. On week two you do a Differential
- |nbackup|n. On week three you do another Differential |nbackup|n. Now on week
- <page down> for more
- BACKUP continued
- four you can re-use the disks that you used for week two's |nbackup|n, and
- on week five you can re-use the week three |nbackup|n |ndisks|n! You only need
- to keep your original full |nbackup|n |ndisks|n, and the two most recent sets of
- Differentials! (The reason you want to keep last week's set as well as
- this week's set is not because there are any files on last week's that
- aren't on this week's, but only because in case you've made a big goof
- in data entry this week, you can RESTORE last week's copy of the file,
- from before you made the big goof.)
-
- So that's just one of the reasons you want to get some other |nbackup|n pro-
- gram besides the DOS |nBACKUP|n command, so you can do Differential backups
- instead of just incremental ones.
-
- One thing you really want to do whenever you're about to use the |nBACKUP|n
- or |nRESTORE|n commands, is to reboot the computer without loading any |sTSR|ss
- into memory, because they can seriously interfere with the operation of
- these two commands. That goes for the DOS commands, or any other |nbackup|n
- program. And in most cases, you can only restore a |nbackup|n using the RE-
- STORE command from the same version of DOS that made the |nbackup|n.
- |tMemory|t and Related Concepts
-
- First of all, when many beginners get their first "Out of |nmemory|n" error
- message, they think that deleting files from their hard drive will help.
- But |nmemory|n has nothing to do with hard drive space. |nMemory|n means the
- |tRAM|t (Random-Access |nMemory|n) chips inside the computer case, where the
- computer stores data while it's being processed. Disk space is where
- data is stored while it's not being used. It's like your file cabinet,
- where you keep your files, out of your way, while you're not working on
- them. The |nmemory|n is like the surface of your desk, where the computer
- keeps the files it's working on at the moment. The size of your file
- cabinet has nothing to do with the size of your desktop.
-
- There are several different kinds of |nRAM|n. The only kind DOS knows how to
- use for running programs, is |tconventional|t |nmemory|n. The most |nconventional|n
- |nmemory|n a computer can have, is 640K. (There is an exception to this just
- like there are exceptions to many rules when it comes to the subject of
- |nmemory|n. We'll get to that exception later.) DOS just doesn't know how
- to access any more than that. So even if you have 6 Megs of |nRAM|n in your
- <page down> for more
- Memory continued
- computer, DOS can still only use 640K of it.
-
- By the way, you can think of |tbytes|t as being about the same as characters
- of data. A text file that contains 3564 |nbytes|n of data has pretty close
- to 3564 characters in it. (You have to also count 2 extra |nbytes|n per line
- for the carriage return and linefeed characters, and there's also an End-
- of-File character, and maybe a few other things too. But it comes out
- pretty close to the same.) K means kilobyte, which is 1024 |nbytes|n. M or
- Meg means megabyte which is 1024K or 1,048,576 |nbytes|n. (See also Binary.)
-
- Part of the 640K is used up by DOS itself. DOS is in |nmemory|n at all times
- or else your computer just wouldn't know how to do anything. But that's
- ok, because when it says on a package of software that it requires 640K
- of RAM, it doesn't mean it needs the 640K all to itself. It means that
- it just needs for your computer to have that much installed. The soft-
- ware makers know that you have to have DOS loaded into |nmemory|n.
-
- Actually DOS does know how to access 1M of |nmemory|n, not just 640K. But
- <page down> for more
- Memory continued
- the |nmemory|n addresses from 640K to 1M are reserved for use by such things
- as the |nmemory|n on your video card, the |nmemory|n on your disk controller, the
- BIOS, |nROM|n, and other assorted things. These things are taking up some
- space in the 640-1024K area of |nmemory|n, but most of that space is empty.
- This space is called the |tupper|t |nmemory|n blocks. On most machines, there is
- no motherboard RAM in this area unless you have |nshadow|n |nRAM|n enabled. So
- since this area of |nmemory|n addresses is reserved for that other stuff, the
- motherboard |nmemory|n skips these addresses, and continues on above the one
- meg |nmemory|n address. Many people just don't understand this, even those
- who claim to be experts. But this is why a computer that only has 1M of
- |nRAM|n does have extended |nmemory|n above the 1M address--because the 384K of
- |nmemory|n above the first 640K does not use the 640-1024K area since that
- area is reserved (unless the 384K is configured as |nshadow|n |nRAM|n, that is).
-
- What on earth is |tshadow|t |nRAM|n, you say? Well you see, normally the video
- |nBIOS|n is in a very slow type of |nmemory|n called Read-Only |nMemory|n, which is
- also called |tROM|t. On many computers, you can enable |nshadow|n |nRAM|n which
- means that when you start the computer up, it will copy the video |nROM|n in-
- <page down> for more
- Memory continued
- to some RAM that it has re-mapped to addresses between 640K and 1M, and
- your screen writes will be faster, because |nRAM|n is faster than ROM.
-
- So when shadow |nRAM|n is enabled, some of the |nRAM|n above the 1M line will be
- re-mapped to the addresses between 640K and 1M so that DOS will be able
- to access it. Because DOS just can't access anything above 1M. But if
- |nshadow|n |nRAM|n is disabled, then all the motherboard |nRAM|n is either at 0-640K
- or else at 1M or above. The 640-1024K |nmemory|n area is "just there", on
- all computers, even if you only have 512K of motherboard |nRAM|n.
-
- If you have 1M of |nRAM|n on your motherboard, then most likely, that is, if
- |nshadow|n |nRAM|n is disabled or your computer doesn't do |nshadow|n |nRAM|n, then its
- addresses are 0-640K and 1024-1408K. That's right, even though you only
- have one meg, you have 384K of |nmemory|n above the one meg address mark. So
- when you read in the manual that a RAMdisk can use extended |nmemory|n above
- one meg that doesn't mean you can't use the |nRAMdisk|n because you only have
- one meg, because your 384K probably is above one meg.
-
- <page down> for more
- Memory continued
- Well actually, there are some programs that can make a little bit of the
- upper |nmemory|n blocks available for programs, but at the expense of graph-
- ics. These programs (Quarterdeck's VIDRAM is one) can take some of the
- RAM that's on your video board and remap it so that DOS can use it. That
- can give you over 700K of conventional |nmemory|n to run programs in, if you
- have a VGA board! Trouble is, when you have things set up that way, you
- can't use any graphics because your video board's |nmemory|n is being used
- for programs. You can only use text-based programs in this case. But
- this program can be temporarily disabled to give you back the graphics.
-
- There is also another way to use the |nupper|n |nmemory|n blocks. On any 386 or
- newer machine, and on a 286 that has a LIM 4 hardware-compatible expanded
- |nmemory|n, and on a |n286|n that has shadow |nRAM|n capability, all of which are ab-
- le to remap |nmemory|n, there are programs (like Quarterdeck's QRAM) that can
- move some of your |sTSR|ss into |nmemory|n that has been remapped into addresses
- in this area. This way you can free up as much of your |nconventional|n mem-
- ory as possible and still be able to run your favorite TSRs!
-
- <page down> for more
- Memory continued
- Uh-oh, here comes yet another contradiction. I said that there's no way
- for DOS to access any |nmemory|n above the one meg address for program use.
- That's mostly true, but not totally. DOS has a program called |tHIMEM.SYS|t
- which, when installed on a |n286|n or newer computer, can allow DOS to reach
- the first 64K block of |nextended|n |nmemory|n. This block of |nmemory|n is called
- |thigh|t |nmemory|n. It still can't be used as conventional |nmemory|n, but some
- programs can make good use of it. Some programs, including DOS version
- 5.0, can put part of their own code into |nhigh|n |nmemory|n to release the space
- they would otherwise have been using up in the |nconventional|n |nmemory|n area.
-
- Now here comes a really troublesome contradiction! Some people refer to
- |nhigh|n |nmemory|n as upper |nmemory|n blocks, and refer to the |nupper|n |nmemory|n blocks
- as |nhigh|n |nmemory|n. So if someone is talking about |nhigh|n |nmemory|n or |nupper|n mem-
- ory blocks, you won't ever know whether they're talking about what I've
- called |nhigh|n |nmemory|n, or what I've called |nupper|n |nmemory|n blocks, unless you
- ask them what they mean. Isn't that going to be fun?
-
- |tExtended|t |nmemory|n is RAM that's above the one meg mark. DOS can't use it
- <page down> for more
- Memory continued
- for anything. Because extended |nmemory|n can only be accessed through pro-
- tected mode, and DOS can't go into protected mode, ever. But there are a
- few programs that can use |nextended|n |nmemory|n. A RAMdisk, a print spooler,
- or a disk cache can access |nextended|n |nmemory|n without any assistance from
- any |nmemory|n management program. There are also programs which have been
- written especially to be able to use |nextended|n |nmemory|n, but they are few
- and far between, except for a type of thing called a |nmultitasker|n.
-
- A |tmultitasker|t is a very complicated sort of a program which does a very
- exciting thing on a 386 or newer computer. It can take advantage of a
- mode called Virtual 8086 mode. In V86 mode, a |nmultitasker|n can set aside
- 640K of |nextended|n |nmemory|n and run one copy of DOS there, and set aside an-
- other 640K chunk and run another copy of DOS there and set aside another
- 640K chunk and run yet another copy of DOS, and all of these copies of
- DOS each think that they're running in the bottom 640K of conventional
- |nmemory|n!
-
- Each copy of DOS is actually running in |treal mode|t, but the |nmultitasker|n
- <page down> for more
- Memory continued
- keeps each Virtual Machine protected from what the others might be doing,
- so that one Virtual Machine doesn't try to access some part of |nmemory|n
- that another program in another Virtual Machine is using. That's basic-
- ally what |tprotected mode|t means.
-
- The reason Virtual 8086 mode is named that, is because 8086 is the name
- of the CPU in the first personal computer, and in V86 mode the 386 is
- pretending to be a bunch of small processors instead of one big one.
-
- Well the multitasker is also in charge of dividing up the CPU's time.
- In multitasking, there really isn't more than one program running at the
- same time. A |nCPU|n can't possibly do more than one thing at a time. But
- since the |nCPU|n can do things so much faster than the rest of the hardware
- can, the |nmultitasker|n can give one slice of the |nCPU|n's time to one program
- while another program is waiting for data to be retrieved from the hard
- drive and a third program is waiting for you to finish typing a command,
- then the |nmultitasker|n gives the next timeslice to another program while
- the first one is waiting for the printer to finish what it's printing and
- <page down> for more
- Memory continued
- you're still typing at the keyboard on the third program, and on and on.
- The CPU is never doing more than one thing at a time, but since it swit-
- ches so rapidly among its chores, it just looks like it is.
-
- Some examples of really good |smultitasker|ss are VM/386, DESQview/386, and
- Windows/386, although personally I would never recommend Windows to any-
- one. Just my own opinion. I use VM/386 and I am very happy with it, al-
- though I must warn you that program is quite picky about what hardware it
- is used on. But if it will work on your system, it does a great job.
-
- Most anything that uses extended |nmemory|n needs an |neXtended|n |nMemory|n Specif-
- ication (|tXMS|t) driver to run. But on the other hand, most things that use
- |nextended|n |nmemory|n have their own driver built right in. So you don't hear
- too much about |nextended|n |nmemory|n managers. HIMEM.SYS is one.
-
- |tExpanded|t |nmemory|n, however, is another matter! Everybody's always talking
- about how to manage |nexpanded|n |nmemory|n. So what is it? Well, on a 8088 or
- 286 machine, it's a board full of |nmemory|n chips with special hardware that
- <page down> for more
- Memory continued
- can dynamically remap the |nmemory|n addresses. (This remapping capabili-
- ty is built into the 386 and higher CPU, so it can use expanded |nmemory|n
- without the special |nexpanded|n |nmemory|n board.) What do I mean by remap?
- Well, if you're looking out a window, you can see one small part of the
- world outside, right? But if you move to the other side of the room and
- look out the same window, you can see a slightly different part of the
- outside world. (The "window" is generally called a "page frame".) Ex-
- panded |nmemory|n is sort of like that. It puts the window into the upper
- |nmemory|n where DOS can access it, and then it does some "bank switching".
- You see, the |nexpanded|n |nmemory|n manager can see all of the |nexpanded|n |nmemory|n,
- even though DOS can't see any of it because it's not in a location that
- the |nCPU|n can address. So the |nexpanded|n |nmemory|n manager finds out what data
- DOS wants next, and it switches the bank of |nmemory|n that contains that
- data, into the window where DOS can get it. It just keeps doing that,
- whenever DOS wants some data it changes the angle through which DOS is
- looking out the window, so that DOS sees the data it's looking for.
-
- Examples of |nexpanded|n |nmemory|n managers are EMM386, which comes with recent
- <page down> for more
- Memory continued
- versions of DOS, and QEMM which comes from Quarterdeck. Each of these,
- as well as most any expanded |nmemory|n manager that's still alive these days
- supports what's called the |tEMS|t (|nExpanded|n |nMemory|n Specification) 4.0, also
- known as |tLIM|t (Lotus-Intel-Microsoft) 4.0.
-
- There are a lot more programs which have been designed to use |nexpanded|n
- |nmemory|n than those that can use extended |nmemory|n. Not only is |nexpanded|n
- |nmemory|n probably easier to write a program for, but also because it's not
- possible for an 8088 processor to use any |nextended|n |nmemory|n. There are
- still a lot of 8088s in use, and software publishers like to be compat-
- ible with as many computers as possible. So software companies don't
- like to use |nextended|n |nmemory|n, even though it is more efficient. |nExpanded|n
- |nmemory|n can be used on any computer, whereas |nextended|n can only be used on
- a 286 or higher CPU.
-
- Now how do you remember the difference between the words |nexpanded|n and
- |nextended|n? Well you know that the word |nexpanded|n means that something has
- gone from being narrow, to being wide. Well |nexpanded|n |nmemory|n is like
- <page down> for more
- Memory continued
- that, because DOS just sees this little window of |nmemory|n, and there is
- really a wide chunk of |nmemory|n being viewed through that window. The word
- extended means that something has gone from being short, to being long.
- Well |nextended|n |nmemory|n is like that, because without it, there is just a
- short list, from 0 to 1024K, of |nmemory|n locations that can be accessed.
- But with it, there is a long list, from 0K all the way up to 16 megs or
- more, in a row, that can be accessed. (Not by DOS, of course, but just
- by the computer.)
-
- Now DOS version 5 includes some great |nmemory|n management programs. First
- of all, it knows how to use the High |nMemory|n Area (HMA) to load its own
- kernel into, as long as you have HIMEM.SYS installed as the first line of
- CONFIG.SYS, and use the DOS=HIGH command to tell DOS to go |nhigh|n. That
- DOS kernel that goes |nhigh|n takes up about 45K of |nmemory|n so when it's |nhigh|n,
- that frees up 45K of conventional |nmemory|n, that DOS would otherwise have
- been using. Also, when DOS goes |nhigh|n the BUFFERS go |nhigh|n too, if you
- don't specify too many of them, so that frees up even more |nconventional|n
- |nmemory|n. This will work on any computer that has any |nextended|n |nmemory|n.
- <page down> for more
- Memory continued
- Now on a 386 or higher computer, which has built-in |nmemory|n mapping capa-
- bilities, DOS version 5 can do an even better job. First, the HIMEM.SYS
- device driver converts the extended |nmemory|n to XMS |nmemory|n (that just means
- |nextended|n |nmemory|n that's being managed by an |neXtended|n |nMemory|n Specification
- version 2.0 driver, which |nHIMEM.SYS|n is). Now the EMM386 |ndevice driver|n
- can take that |nXMS|n |nmemory|n, on a |n386|n, and make it pretend to be expanded
- |nmemory|n (which is called |nexpanded|n |nmemory|n emulation). So now that this
- |nmemory|n is doing the job of |nexpanded|n |nmemory|n, it can be remapped into some
- empty addresses between 640K and 1024K, where DOS can access it, and then
- |sTSR|ss and device drivers can be loaded into it, so that they aren't taking
- up any conventional |nmemory|n anymore.
-
- In order to make all this happen, if you have a |n386|n with |nextended|n |nmemory|n,
- you just use the |nHIMEM.SYS|n, |nEMM386|n, and DO|1S commands in CONFIG.SYS to
- make the Upper |nMemory|n Blocks available, and then use DEVICEHIGH commands
- instead of DEVIC|1E commands, and use the LOADHIGH command for TSRs. To
- make this work on a 286, you need the special shadow RAM capability, or
- a LIM 4 hardware-compatible |nexpanded|n |nmemory|n board, along with a program
- such as Quarterdeck's QRAM.
- What Is the |tCPU|t?
-
- The |nCPU|n is the computer's brain. It stands for Central Processing Unit.
- It is just a little square chip about an inch and a half on each side, if
- you can believe that, and that's where all the computing takes place.
- The |nCPU|n for the first set of personal computers was the 8086, which was
- put into an IBM computer model which was named the PC. Next came the
- |t8088|t processor, and that one went into a model called the |tXT|t. That one
- cannot in any way access memory above the one meg address, but it can use
- expanded |nmemory|n. After that came the 80286 |nCPU|n, which is usually abbrev-
- iated as |t286|t. This was the first computer that could take advantage of
- extended RAM. It went into a model of computer called the |TAT|T. After
- that, the |t386|t and 486, now even 586, came along. Who knows, by the time
- you read this, there could be an 80686 processor being developed!
-
-
-
-
-
-
- What Is a |tCache|t?
-
- There are two different kinds of |ncache|n. The most common one is a hard
- drive |ncache|n, and that is a piece of software which, when you install it
- into memory, sets aside a large chunk of extended or expanded |nmemory|n to
- do the caching. Now what it does, is every time you read something off
- the hard drive, it keeps it in this chunk of |nmemory|n, and then when you
- need that piece of info again, you get it from the |ncache|n which, since it
- is in RAM, is a lot faster than going back to the hard drive to get that
- piece of data again. The |ncache|n that comes with recent versions of DOS
- is called SMARTDRV.SYS.
-
- Most caches also do what's called look-ahead, which means that every time
- you get some data from the hard drive, it also gets the next one or two
- sectors of data, and puts that in the |ncache|n also. So if you're running a
- type of program that does a lot of sequential disk access, then the next
- time the program needs more data, it's probably already in the |ncache|n be-
- cause the next data it needs is what came right after the last data it
- needed, which the |ncache|n already looked ahead to get.
- <page down> for more
- Cache continued
- Another thing that most caches do, is pay attention to the frequency with
- which each piece of data is requested by the application. I mean when
- you've been running the computer for a while since the last time you re-
- |sboot|sed, then a whole lot of data has been read from the disk, and the
- |ncache|n gets filled up. Well instead of the |ncache|n just dumping the oldest
- data to make room for the next data that gets requested from the hard
- drive, the |ncache|n instead dumps the piece of data that has so far been
- asked for the smallest number of times. Now if your |ncache|n is all filled
- up with stuff that keeps getting requested over and over again, then the
- |ncache|n is not going to dump it for new info that's only been requested
- once. If that same piece of new info gets requested several times, so
- the |ncache|n figures it must be a pretty important piece of info, then and
- only then will the |ncache|n dump some older piece of often-requested info to
- let the new often-requested info in. So that's one reason why BUFFERS
- are still sort of important, even if you have a |ncache|n. Because buffers
- only keep the most recently accessed data, regardless of the frequency
- with which it is requested. So it's possible to have data in the buffers
- that isn't in the |ncache|n, so you can save an extra trip to the hard drive
- <page down> for more
- Cache continued
- by having some BUFFERS. Another reason you need to have a few buffers
- even if you have a |ncache|n, is that most caches don't pay any attention to
- floppy drives. They only work on hard drives. Well the buffers will do
- a little bit of caching with the |nfloppy|n drive info. And one more reason
- for buffers even with a |ncache|n, is that sometimes you need to disable the
- |ncache|n, like when you're about to optimize your hard drive (that means fix
- the fragmented files). If the |ncache|n is disabled for a while, you'll be
- glad that you have a few buffers loaded. But I do mean just a few, be-
- cause with a |ncache|n, which does basically pretty much the same thing as
- the buffers, the memory that having a lot of buffers takes up, is not
- worth it. Unless you've never had a shortage of conventional |nmemory|n in
- the first place, or if you have DOS version 5, where buffers go into the
- high |nmemory|n area and don't take up any |nconventional|n RAM anyway.
-
- Now one thing you need to remember. You'd think that if a large |ncache|n
- is good, then a huge |ncache|n would be even better, right? Wrong. A |ncache|n
- that's too large slows things down instead of speeding them up, because
- looking through all that data that's stored in the |ncache|n can take longer
- <page down> for more
- Cache continued
- than it would have taken to just get the data from the hard drive! So
- pay attention to the manual for your |ncache|n program, and if it says a cer-
- tain size is recommended, then use that size until you know more about
- the subject and have some spare time to go testing things with a bench-
- mark program.
-
- There is one thing to watch out for with a disk |ncache|n, though. Remember
- that the information in the |ncache|n is just a copy of what's on the disk.
- Just because the CHKDSK command tells you that your hard drive is trashed
- does not necessarily mean that it's true! Suppose you're playing around
- with trying to load a new TSR into upper memory. Something goes wrong
- and the |ncache|n in the extended |nmemory|n gets trashed, and then for some rea-
- son you use the |nCHKDSK|n command and it says your hard drive has no files
- on it, only a million lost chains in a zillion lost clusters. Well don't
- panic! It's quite likely that when |nCHKDSK|n went to check your directory
- structure for you, it found the information that it thought it was look-
- ing for, in the |ncache|n so it didn't even look at the hard drive. The copy
- of the |ndirectory|n structure that was sitting in the |ncache|n has been corrup-
- <page down> for more
- Cache continued
- ted so CHKDSK just thinks your disk is trashed, but there's really not
- a thing wrong with your hard drive at all.
-
- So remember, if |nCHKDSK|n ever tells you that your whole disk is trashed
- while you have a disk |ncache|n active, flush or disable the |ncache|n and then
- try again to read your hard drive. I'll bet you'll find that it's just
- fine. Just get rid of whatever it was that you were trying to load into
- your extended or upper memory that trashed your |ncache|n information.
-
- The other type of |ncache|n is a RAM |ncache|n, which is just a small chunk of
- super-fast |nmemory|n. It performs the same function for the |nmemory|n as what
- a hard drive |ncache|n does for the hard drive.
-
- By the way, it's pronounced "CASH", not "cash-AY".
-
-
-
-
-
- What Is |tCMOS|t?
-
- If you have a 286 or newer computer, you probably have |nCMOS|n. What is it?
- Complementary Metallic Oxide Semiconductor. Now don't be asking me what
- that is supposed to mean, I just thought you'd like to know what the in-
- itials stand for.
-
- What does it do? Well it's a little piece of memory that is backed up by
- a battery, that keeps track of the date and time, as well as what sort of
- hardware you have installed in your system. The amount of RAM, the num-
- ber and types of floppy drives, the number of hard drives and detailed
- information about each, the type of graphics adapter, the number of ser-
- ial and parallel ports, all this information is stored in |nCMOS|n. If your
- |nCMOS|n gets wiped out, your computer won't even know that you have a hard
- drive, so you'll have to boot from a |nfloppy|n.
-
- So may I suggest that you quickly get into your |nCMOS|n setup and write down
- every detail of what it says, because some day your battery is going to
- run down and the |nCMOS|n information will all be lost, so you'd better know
- <page down> for more
- CMOS continued
- what information is supposed to be there so you can put it back!
-
- The way to get into the |nCMOS|n is a little different for each type of BIOS,
- but for mine, a little message comes up on the screen every time I turn
- on the power, which says something like, "Press |nDEL|n to enter |nCMOS|n setup".
- If I press the <Delete> key while that message is on the screen, then af-
- ter a couple seconds I get the |nCMOS|n setup screen. I'm sure that if your
- screen doesn't give you any such message, then the manual that came with
- your computer will tell you what to do to get to your |nCMOS|n setup.
-
- Just write down whatever it says there, be sure not to change anything,
- and then exit. Keep that information that you wrote down in a very safe
- place, and whenever your battery dies, just get a new one, and you'll be
- able to put the correct information back into the |nCMOS|n.
-
-
-
-
-
- Shareware and Other Methods of Software Distribution
-
- The normal method for distribution of software is plain old |tcommercial|t
- software that you buy in a store or from a catalog, and it generally
- costs five or fifty times what it's worth.
-
- Sometimes you can get a |tdemo|t version of a |ncommercial|n program, which you
- can try out for free, but some of its best features will be disabled, so
- that it won't do you much good except for seeing whether you like the
- program or not. That way, if you like it, you'll buy a real copy.
-
- |tShareware|t is a method of distribution where you can also try the program
- out for free, and only buy it if you like it, but in most cases it is not
- crippled the way |ncommercial|n demos are. There are some exceptions to that
- and we generally refer to such programs as "crippleware", but for the
- most part, |nshareware|n is fully functional.
-
- The quality of a piece of |nshareware|n depends on the attitude of the au-
- thor. Some authors realize that the only way they're going to get paid
- <page down> for more
- Shareware continued
- for the program, is if it's really good, and so they put a lot of work
- into releasing an excellent product. Commercial software authors don't
- always do that, because they get their money before you get the software
- home and find out you don't like it! Unlike most any other type of prod-
- uct in the world there is rarely a money-back guarantee for any software.
- This is because, once the package is opened, it is possible that whoever
- opened it has made a copy of the disks to keep, or perhaps infected them
- with a virus, so most stores won't accept any opened software for return.
- So the author knows that once you buy the product, he gets his money re-
- gardless of whether you like the program or not! Why should he waste a
- bunch of time making a good program?
-
- |nShareware|n authors know better, because the only way they can possibly get
- any money at all is if you like the program well enough to send some mon-
- ey. So they put a lot of time into getting it right. Also, |ncommercial|n
- software programmers have time limits placed on them by the marketing de-
- partment of their company. |nShareware|n authors don't have to release their
- products until they're ready for market. Just a couple explanations for
- <page down> for more
- Shareware continued
- the fact that there are so many |nshareware|n products available that are
- even better than equivalent commercial programs!
-
- Some |nshareware|n authors, though, realize that very few people ever bother
- to register their |nshareware|n, so they don't try that hard, because they
- figure they're not going to make any money on it anyway. Those authors
- give |nshareware|n a bad name, but then again, that's only because so many
- |nshareware|n users don't pay for their |nshareware|n! So in a way, if you don't
- register the |nshareware|n you like, and you get some other |nshareware|n that
- isn't any good, that's just as much your fault as the fault of the author
- who didn't try hard because he knew you wouldn't register it anyway.
-
- If you like the concept of downloading software from a BBS, trying it out
- for a day or a week or a month, to make sure you like it, and then send-
- ing a reasonable amount of money to the program's author, then please do
- support the |nshareware|n industry by sending in a registration fee for what-
- ever programs you like. Because if |nshareware|n authors don't make any mon-
- ey, they're going to stop releasing their work in the |nshareware|n form, and
- <page down> for more
- Shareware continued
- it will no longer be possible for you, or for anyone to benefit from such
- an equitable arrangement as what |nshareware|n is.
-
- Besides, if you use a piece of |nshareware|n for more than a month or so,
- without paying for it, you're basically breaking the law! You're never
- going to get caught or go to jail for it, but that still doesn't make it
- right.
-
- Another reason to register your |nshareware|n, is that if you do, you might
- get free upgrades, free technical support, a nice neat typeset manual, or
- some special features like a new copy of the program that allows you to
- change its screen colors.
-
- There are also other software authors who are just so generous, and have
- written some program that they think is so necessary that everyone should
- be able to have it, that they release the program as |tfreeware|t. This type
- of software is just like it sounds, free! Totally and completely!
-
- <page down> for more
- Shareware continued
- Another type of free software is |tpublic domain|t. This is just like free-
- ware, only the author doesn't even care if anyone knows he wrote it.
- This stuff is not even copyrighted! A body could even use it as part of
- a program that they're writing, without worrying that they'll get sued or
- anything.
-
- So, what types of |nshareware|n, |nfreeware|n, and |npublic domain|n software are
- available? Just about every type that is available through |nconventional|n
- commercial outlets, and more! Because |ncommercial|n distributors are only
- interested in software that would appeal to large numbers of people. So
- there are fewer types. But if some programmer somewhere writes a little
- program for his own use, and then decides he may as well try to get a
- little money out of it, he releases it as |nshareware|n. Even if it is some-
- thing that so few people would be interested in, that no software house
- would take it, it is still available as |nshareware|n. I don't think there's
- any function possible on a computer, that some |nshareware|n author somewhere
- hasn't written a program to accomplish!
-
- <page down> for more
- Shareware continued
- Ok, so how do you get this stuff? Well there are a lot of mail order
- companies that advertise in the computer magazines, that distribute
- |nshareware|n. However, they charge anything from $1 to $5 per disk, for
- the copying and shipping fees. So that is in addition to the registra-
- tion fee that is due the author if you like the program. The other main
- way to get this sort of software, is by |ndownloading|n it over your modem,
- from national online services or from local BBSs.
-
- So, what is |tdownloading|t? Well that's when you use your modem to dial up
- a local |nBBS|n, or one of the national online services, and you have your
- software tell their software to send you a file. Then the file is sent
- from their hard drive straight to your hard drive, over the phone line.
-
- All, right, now what is a |tBBS|t? Well that stands for Bulletin Board |nSys|n-
- tem. What it means is that someone has a very expensive hobby! The
- Sysop (System Operator) of a |nBBS|n has a spare computer with a large hard
- drive, and a separate phone line, and some special |nBBS|n software, and you
- can just use your modem to call up his computer, and play some games, or
- <page down> for more
- Shareware continued
- write messages to other users, or download software!
-
- One thing that most people have to find out the hard way, that is, by
- having someone publicly ask them on the BBS to stop it, which is kind
- of embarrassing: It is considered rude to type in ALL CAPS on a |nBBS|n
- because it's kind of hard to read, and it's interpreted as shouting.
- Please turn off your <CapsLock> key when writing messages on any |nBBS|n.
-
- Now usually a program that you download is all packed together into one
- file with an extension like .ZIP, .ARC, .LZH, .ARJ, .ZOO, or .PAK. These
- are called archive files or compressed files. They've been compressed so
- that the compressed file is smaller than the sum of the files before com-
- pression, so that it won't take so long to download it, and so that it
- won't take up so much space on the hard drive of the |nBBS|n, and also so
- that you can get the whole program by downloading just one file, rather
- than |ndownloading|n each file of the program separately.
-
- So what do you do with a .ZIPped or .ARCed file when you get it? Well
- <page down> for more
- Shareware continued
- you need the compression program it was compressed with, to decompress
- it. There's a different compression program that works on each of those
- archive extensions. One of the most popular is PKZIP which makes the
- files with .ZIP extensions. All these compression programs are share-
- ware and they are available on the same BBS you downloaded the file from.
- You just need to download the file that contains the compression program.
- Now this file will have an .EXE extension, and it is called a Self-Ex-
- tracting compressed file. What that means, is that if you just type its
- name, like any other .EXE file, it will uncompress itself. That way you
- don't have to have the PKUNZIP.EXE file already, in order to unzip the
- PKZIP program. That wouldn't work at all, would it?
-
- So when you execute the self-extracting file, it will unzip itself into
- all of the files that make up the program. Like PKZIP.EXE, PKUNZIP.EXE,
- PKZIPFIX.EXE (in the case of the PKZIP program), and MANUAL.DOC which
- contains all the instructions on how to use the program. Now you can
- unzip any .ZIP file you might want to download.
-
- <page down> for more
- Shareware continued
- The next program you need to download after you get your decompression
- programs, is a virus detection utility. A really popular one is John
- McAfee's ViruScan. First use it to scan your hard drive, and also every
- floppy disk you have, and then from then on, just scan everything you
- download, and everything you buy, before you use it. And always keep the
- most recent version of ViruScan, because the program won't find any vi-
- ruses that weren't invented yet by the time it was written. If you have
- an old version of ViruScan, it will protect you from old viruses, but not
- from new ones! Just like a vaccination.
-
- So that's all there is, to get tons of software at minimal cost. Just
- download, decompress, scan for viruses, and take it for a test drive.
- But if it's |nshareware|n, and you like it, and you intend to use it, please
- send in the registration fee! The only thing that keeps |nshareware|n auth-
- ors writing more programs, is if they made some money on the last one
- they wrote.
-
- Well what do you do with the .ZIP or .ARC or whatever file that you down-
- <page down> for more
- Shareware continued
- loaded, after you've opened it up and gotten all of the files out of it?
- Well you erase it from your hard drive, because it takes up a lot of hard
- disk space for nothing. But wait! First, make sure to copy it to a disk
- for safe-keeping. Not only because maybe you deleted the program's docu-
- mentation file, and you might need it again later. Well if so, you just
- get it back out of the compressed file which you copied to a floppy disk.
- But the most important reason to save the compressed file on a |nfloppy|n, is
- that eventually you'll need to upload the file to somewhere. You see, a
- lot of BBSs keep an upload/download ratio. That means you're only allow-
- ed to download a certain number of files from each BBS, before you have
- to upload a file to them in exchange for what you got from them. Well if
- you kept the files you downloaded from another |nBBS|n, you can upload them
- to this |nBBS|n where your up/down ratio is no good. So if you kept the com-
- pressed files on a |nfloppy|n disk, then you've got them handy, ready to up-
- load whenever you need to.
-
- You must not ever just zip up a bunch of files from your hard drive and
- upload that. Because it is a copyright violation, to distribute part of
- <page down> for more
- Shareware continued
- a program without every single bit of it just the way its author wanted
- it distributed. And the only way to make sure you send all of the files
- in their original form, is if you still have the .ZIP or .ARC or whatever
- file in the form you downloaded it in. Because maybe there was a little
- README.TXT file or a batch file that you knew you wouldn't need, and you
- deleted it to save space. Or maybe the program has a little utility that
- allows you to customize the program to your own favorite colors or some-
- thing, and you did that. So if you were to compress the program back in-
- to a .ZIP or .ARC or whatever file, and upload it, that would be illegal
- because it's not in the original form anymore. Well all you have to do,
- to avoid such problems, is copy every file you download, to floppy disks
- before you delete them from your hard drive. It's not so bad, I have all
- the files I've ever downloaded, sitting on just twelve 720K |ndisks|n.
-
- Another thing that is a copyright violation, is to use one paid-for copy
- of a software program, on more than one computer. Some authors allow it,
- but most don't. If you want to use a program on two computers, you usu-
- ally have to pay for two copies. This is true for both |nshareware|n and
- commercial programs, and even for DOS itself.
- The |tCHKDSK|t Command
-
- This is a very useful command that performs many different functions.
- The main thing it is supposed to do is CHecK the directory structure of
- your DiSK. There are lots of things that can go wrong when the read/
- write heads are writing to a disk. Any sort of disturbance can cause
- the heads to not write what they were supposed to write, and |nCHKDSK|n can
- find what problems may have been caused, and can also correct some of
- them.
-
- However, |nCHKDSK|n will only make corrections if the /F switch was specified
- on the command line. If the /F switch was not given, and |nCHKDSK|n finds
- any errors, it will say something like, "F parameter not specified, cor-
- rections will not be written to disk". |nCHKDSK|n will continue to act like
- it is making corrections, however, just to show you what corrections it
- would have made if the /F switch had been specified. So if you like the
- corrections, you can re-run the |nCHKDSK|n command with the /F switch and it
- will actually write the corrections to the disk. With DOS version 5, do
- not ever use the /F switch while any |sTSR|ss are in |smemory|s!
- <page down> for more
- CHKDSK continued
- The most common error that |nCHKDSK|n finds is something like "4 lost chains
- in 6 clusters". What that means is that there is some data on the disk
- that has space allocated to it in the FAT, but that has no entries in the
- directory. If you specify the /F switch, |nCHKDSK|n will convert those lost
- chains to files, and give the files names like FILE0000.CHK and put them
- into the root |ndirectory|n of the disk. Now what do you do with them?
-
- Well, first look at them with the TYPE command or some other file brow-
- ser. If they are nothing but strange symbols, then they must have been
- .COM or .EXE files, and there is no way you can |nrecover|n them. Because it
- is highly unlikely that the files are complete, and who knows what might
- happen if you try to run a command file that is not complete. Just del-
- ete those files.
-
- If there is some recognizable text inside though, you should be able to
- tell what application the lost chain was from. Just load it into that
- application, and do your best to put the file back to the way it used to
- be. It's usually better than losing the whole file.
- <page down> for more
- CHKDSK continued
- Most often, though, these FILE0000.CHK files that |nCHKDSK|n makes are not
- anything important at all. They're usually pieces of temp files that
- some application was using, which would have been deleted by that app if
- the app had been properly exited, but maybe your machine locked up and
- you had to reboot, so the app didn't get a chance to delete its temp
- files. Those will quite often end up as lost chains, and deleting them
- is no problem.
-
- Well as long as these lost clusters are sitting on your disk, they're
- just taking up disk space for no reason. So you want to run the |nCHKDSK|n
- command every week or so, to free up any space that might be in use by
- these silly things.
-
- Another error message that |nCHKDSK|n comes up with pretty often is "FILE1 is
- cross-linked on cluster ##, FILE2 is cross-linked on cluster ##". This
- means that both FILE1's and FILE2's FAT entries say that the two files
- are using the same cluster of disk space. This is a |nFAT|n error that CHK-
- DSK can't do anything about. You have to try to fix it yourself. You
- <page down> for more
- CHKDSK continued
- must not ever try to run an executable file that has been cross-linked!
- Just delete it. But if one or both of the files are non-executable,
- there is hope for recovery. Just COPY the files to a different disk or
- directory and delete them both from the original location. Now load the
- files into whatever application created them and see how much data you
- can save. One of the files will contain a cluster from the other file,
- and also one or both of them may have been truncated (cut off) at the
- point where the cross-linkage had occurred. But it's better than losing
- both files altogether. Of course if they were both |nexecutable|n files then
- it's a total loss. That's what |sbackup|ss are for.
-
- So, what else is the |nCHKDSK|n command good for? Well, it gives you a real
- nice summary of what's on your disk, as well as how much free RAM you
- have. It can also give you a list of every file on the disk, if you use
- the /V (verbose) switch. And that will include all the Hidden files too.
- If you pipe the output of |nCHKDSK|n /V to the FIND command, you can find the
- location of any file on your disk:
- |nCHKDSK|n C:\|n*.*|n /V || |nFIND|n ".BAT"
- <page down> for more
- CHKDSK continued
- would show you the full filespec for every .BAT file on the disk. But
- remember, the FIND command is case-sensitive, and filenames are always
- stored in all caps, so |nFIND|n ".bat" would not work at all.
-
- Another thing the |nCHKDSK|n command can do is tell you whether you have any
- |tfragmented|t files. What does that mean? Well, DOS stores files on a disk
- a cluster at a time. A cluster, depending on the version of DOS the disk
- was formatted with, and also the size of the disk, can be anywhere from
- 512 to 16384 bytes. Most hard disks have 2048-byte clusters. Well when
- DOS is writing a file to disk, it puts down one cluster's worth of data
- into the first available cluster on the disk, then it puts the second
- cluster of the file into the second available cluster on the disk, then
- it puts the third cluster of the file into the third available cluster on
- the disk, etc. These clusters aren't necessarily next to each other on
- the disk, and if they're not, then the file is said to be |nfragmented|n.
- Your hard drive will appear to work faster if all the pieces of a file
- are right next to each other, or in contiguous clusters. There are lots
- of disk defragmenters on the market, and it's a very good idea to get one
- <page down> for more
- CHKDSK continued
- and use it weekly.
-
- If you can't yet afford to buy a disk defragmenter (often called a disk
- optimizer) and you can't find a shareware one, another solution to frag-
- mentation is to BACKUP the disk, FORMAT it, and RESTORE the files. This
- is because any time you |nbackup|n or COPY a file to a blank disk, all the
- pieces of the file are placed into contiguous clusters. Then when you
- format that first disk, all the clusters become available again so when
- you restore the files, they also stay in contiguous clusters. It's only
- after you have deleted some file from the disk, that a space opens up in
- the middle of the disk space so the next file that's written to the disk,
- if it's longer than the file that got deleted, may become fragmented.
-
- In order to make the |nCHKDSK|n command tell you about fragmentation on a
- whole disk, you have to use the command on each directory separately.
- For example, |nCHKDSK|n C:\*.* and |nCHKDSK|n C:\DOS\*.* and |nCHKDSK|n C:\UTIL\*.*,
- et cetera.
-
- Please see the last couple pages of the Cache chapter!
- PLEASE IGNORE THIS PAGE!
- |TMain Menu|T
- |TEXIT|T|fSIMPLY2|f
- |TFORMAT|T|fSIMPLY2|f
- |TRAMDRIVE.SYS|T|fSIMPLY2|f
- |TRESTORE|T|fSIMPLY2|f
- |TSYS|T|fSIMPLY2|f
- |TVDISK.SYS|T|fSIMPLY2|f
- |tASCII|t|fSIMPLY2|f
- |tBoo|1t Disk|t|fSIMPLY2|f
- |tDisks|t|fSIMPLY2|f
- |tEDLIN|t|fSIMPLY2|f
- |tExecutable|t|fSIMPLY2|f
- |tLow-Level|t|fSIMPLY2|f
- |tMagnetism|t|fSIMPLY2|f
- |tParameters|t|fSIMPLY2|f
- |tPower|t|fSIMPLY2|f
- |tRAMdisk|t|fSIMPLY2|f
- |tReplaceable|t|fSIMPLY2|f
- |tShelling Out|t|fSIMPLY2|f
- |tVirtual Disk|t|fSIMPLY2|f
- |tdisk full|t|fSIMPLY2|f
- |tediting keys|t|fSIMPLY2|f
- |tfloppy|t|fSIMPLY2|f
- |TAPPEND|T|fSIMPLY3|f
- |TASSIGN|T|fSIMPLY3|f
- |TAUX|T|fSIMPLY3|f
- |TAbout This Program|T|fSIMPLY3|f
- |TBREAK|T|fSIMPLY3|f
- |TBUFFERS|T|fSIMPLY3|f
- |TCALL|T|fSIMPLY3|f
- |TCHCP|T|fSIMPLY3|f
- |TCLOCK$|T|fSIMPLY3|f
- |TCLS|T|fSIMPLY3|f
- |TCOM1|T|fSIMPLY3|f
- |TCOMP|T|fSIMPLY3|f
- |TCON|T|fSIMPLY3|f
- |TCOPY|T|fSIMPLY3|f
- |TCOUNTRY|T|fSIMPLY3|f
- |TCTTY|T|fSIMPLY3|f
- |TDATE|T|fSIMPLY3|f
- |TDEBUG|T|fSIMPLY3|f
- |TDEL|T|fSIMPLY3|f
- |TDEVICEHIGH|T|fSIMPLY3|f
- |TDEVIC|1E|T|fSIMPLY3|f
- |TDIR|T|fSIMPLY3|f
- |TDISKCOMP|T|fSIMPLY3|f
- |TDO|1S|T|fSIMPLY3|f
- |TERASE|T|fSIMPLY3|f
- |TFOR|T|fSIMPLY3|f
- |TGRAFTABL|T|fSIMPLY3|f
- |TKEYB|T|fSIMPLY3|f
- |TLPT1|T|fSIMPLY3|f
- |TNLSFUNC|T|fSIMPLY3|f
- |TNUL|T|fSIMPLY3|f
- |TPRN|T|fSIMPLY3|f
- |TSHIFT|T|fSIMPLY3|f
- |TTIME|T|fSIMPLY3|f
- |tBad command or filename|t|fSIMPLY3|f
- |tDevice|1s|t|fSIMPLY3|f
- |tPATH|t|fSIMPLY3|f
- |tconcatenation|t|fSIMPLY3|f
- |TCOMMAN|1D|T|fSIMPLY4|f
- |TDOSKEY|T|fSIMPLY4|f
- |TDRIVPARM|T|fSIMPLY4|f
- |TECHO|T|fSIMPLY4|f
- |TEDIT|T|fSIMPLY4|f
- |TEMM386|T|fSIMPLY4|f
- |TEXE2BIN|T|fSIMPLY4|f
- |TEXPAND|T|fSIMPLY4|f
- |TFASTOPEN|T|fSIMPLY4|f
- |TFCBS|T|fSIMPLY4|f
- |TFC|T|fSIMPLY4|f
- |TFDISK|T|fSIMPLY4|f
- |TFILES|T|fSIMPLY4|f
- |TFIND|T|fSIMPLY4|f
- |TGOTO|T|fSIMPLY4|f
- |TGRAPHICS|T|fSIMPLY4|f
- |THELP|T|fSIMPLY4|f
- |TINSTALL|T|fSIMPLY4|f
- |TLABEL|T|fSIMPLY4|f
- |TLASTDRIVE|T|fSIMPLY4|f
- |TLOADFIX|T|fSIMPLY4|f
- |TLOADHIGH|T|fSIMPLY4|f
- |TMKDIR|T|fSIMPLY4|f
- |TMORE|T|fSIMPLY4|f
- |tBIOS|t|fSIMPLY4|f
- |tPark|t|fSIMPLY4|f
- |tWrite-protect|t|fSIMPLY4|f
- |TDOSSHELL|T|fSIMPLY5|f
- |TGWBASIC|T|fSIMPLY5|f
- |TJOIN|T|fSIMPLY5|f
- |TMEM|T|fSIMPLY5|f
- |TMIRROR|T|fSIMPLY5|f
- |TMODE|T|fSIMPLY5|f
- |TPAUSE|T|fSIMPLY5|f
- |TPOST|T|fSIMPLY5|f
- |TRECOVER|T|fSIMPLY5|f
- |TREM|T|fSIMPLY5|f
- |TRENAME|T|fSIMPLY5|f
- |TREPLACE|T|fSIMPLY5|f
- |TSELECT|T|fSIMPLY5|f
- |TSHARE|T|fSIMPLY5|f
- |TSTACKS|T|fSIMPLY5|f
- |TTRUENAME|T|fSIMPLY5|f
- |TUNDELETE|T|fSIMPLY5|f
- |TUNFORMAT|T|fSIMPLY5|f
- |TVERIFY|T|fSIMPLY5|f
- |TVER|T|fSIMPLY5|f
- |TVOL|T|fSIMPLY5|f
- |t*.*|t|fSIMPLY5|f
- |tBoot|t|fSIMPLY5|f
- |tCOMMAND.COM|t|fSIMPLY5|f
- |tReboot|t|fSIMPLY5|f
- |tWildcards|t|fSIMPLY5|f
- |TDRIVER.SYS|T|fSIMPLY6|f
- |TPRINT|T|fSIMPLY6|f
- |TQBASIC|T|fSIMPLY6|f
- |TSETVER|T|fSIMPLY6|f
- |TSORT|T|fSIMPLY6|f
- |TSUBST|T|fSIMPLY6|f
- |TSWITCHAR|T|fSIMPLY6|f
- |TSWITCHES|T|fSIMPLY6|f
- |TTREE|T|fSIMPLY6|f
- |TTYPE|T|fSIMPLY6|f
- |tAbort, Retry, Fail, Ignore|t|fSIMPLY6|f
- |tCONFIG.SYS|t|fSIMPLY6|f
- |tCleaning|t|fSIMPLY6|f
- |tFAT|t|fSIMPLY6|f
- |tKeyboard|t|fSIMPLY6|f
- |tLogical Drives|t|fSIMPLY6|f
- |tRedirection|t|fSIMPLY6|f
- |tTSR|t|fSIMPLY6|f
- |tbinary|t|fSIMPLY6|f
- |tdecimal|t|fSIMPLY6|f
- |thexadecimal|t|fSIMPLY6|f
- |TERRORLEVEL|T|fSIMPLY5|f
- |TEXIST|T|fSIMPLY5|f
- |TIF|T|fSIMPLY5|f
- |TNOT|T|fSIMPLY5|f
- |TSMARTDRV.SYS|T|fSIMPLY4|f
- |TXCOPY|T|fSIMPLY2|f
- |tBatch File|t|fSIMPLY7|f
- |tDevice Driver|t|fSIMPLY3|f
- |tFile Creation Error|t|fSIMPLY2|f
- |tPROMPT|t|fSIMPLY6|f
- |TWhat Is DOS?|T|fSIMPLY4|f
- |TTrademarks|T|fSIMPLY3|f
-