ALIAS
ASSIGN
ATTRIB
BACKUP
BEEP
BREAK
CALL
CANCEL
CD
CDD
CHCP
CHDIR
CHKDSK
CLS
COMP
COPY
CTTY
DATE
DEL
DESCRIBE
DIR
DIRS
DISKCOMP
DISKCOPY
ECHO
ENDLOCAL
ERASE
ESET
EXCEPT
EXIT
FIND
FOR
FORMAT
FREE
GLOBAL
GOSUB
GOTO
GRAFTABL
HISTORY
IF
INKEY
INPUT
JOIN
KEYSTACK
LABEL
LIST
MD
MEMORY
MKDIR
MODE
MORE
MOVE
PATH
PAUSE
POPD
PRINT
PROMPT
PUSHD
QUIT
RD
REM
REN
RENAME
RESTORE
RETURN
RMDIR
SCREEN
SELECT
SET
SETDOS
SETLOCAL
SHARE
SHIFT
SORT
SUBST
SYS
TEE
TEXT
TIME
TIMER
TREE
TYPE
UNALIAS
VER
VERIFY
VOL
XCOPY
Y
*ALIAS*
Syntax:    ALIAS [arg1 arg2]

Purpose:   Display the alias list, or define arg1 as a substitute for
           arg2.

Comments:  If you don't specify any arguments, ALIAS displays the current
           alias list.  If you only specify arg1, ALIAS displays the current
           alias value for arg1.  Otherwise, ALIAS assigns the command(s) in
           arg2 to arg1.  Arg1 can now be used as if it were a built-in or
           external command.

           Aliases may be nested; i.e., an alias can refer to another alias,
           but they cannot refer back to themselves (a=b=a).  You can stop
           alias expansion by prefacing the alias with an asterisk (*).

           Alias definitions can include replaceable parameters, like those
           in batch files.  Alias parameters are referenced as %1 to %127,
           and expand to the matching command line argument.  The parameter
           %& expands to the remainder of the command line following the
           alias name.  If an alias includes replaceable parameters,
           unreferenced command line arguments and parameters with no
           matching command line argument will be deleted during alias
           expansion.  If an alias has no replaceable parameters, the
           command line arguments will be appended to the alias.

           An alias name can be truncated by including an asterisk (*) in
           the alias name.

           The alias name is limited to no more than 80 characters, and
           the alias argument to no more than 255 characters.

           Arg2 may contain environment variables or additional aliases.

           Aliases are useful as a means of executing a complex series of
           commands with a few keystrokes.  Aliases can also be used as in
           memory batch files, and will run much faster than disk-based
           batch files.

           To remove an alias, use the UNALIAS command.

Example:   Define D as an alias for DIR /AP:

             c:\> alias d dir /ap

           Rename the 4DOS LIST command to DISPLAY, and alias LIST to an
           external program:

             c:\> alias display *list
             c:\> alias list c:\util\list.com

           The following examples show the use of alias arguments:

             c:\> alias zap `erase %& ^ chkdsk ^ dir /w`
             c:\> alias reverse `echo %5 %4 %3 %2 %1`
*ASSIGN*
Syntax:    ASSIGN [x=y [...]]

Purpose:   Routes disk I/O requests to a different drive.

Comments:  ASSIGN allows you to use programs use a preassigned disk drive
           (such as A or B) with another drive (such as C).  The first
           argument specifies the drive whose assignment you want to
           change, and the second argument is the new assignment.  The
           equals sign (=) is optional.  Do not use a colon after the
           drive letters.

Example:   Route all requests for drive A to drive C:

             c:\> assign A=C
*ATTRIB*
Syntax:    ATTRIB [-|+[AHRS]] [d:][path]filename ...

Purpose:   Change the file attributes.

Comments:  +A   Set the archive attribute
           -A   Clear the archive attribute
           +H   Set the hidden attribute
           -H   Clear the hidden attribute
           +R   Set the read-only attribute (write-protected)
           -R   Clear the read-only attribute
           +S   Set the system file attribute
           -S   Clear the system file attribute

           4DOS will preserve the previous file attributes and change only
           the specified attributes.  New attribute values are allowed
           between filenames; otherwise ATTRIB changes the same attributes
           as the previous file(s).  You cannot modify the directory or
           volume attributes.

           You can display the file attributes using the /A option in DIR.

Example:   Set the read-only and hidden attributes for the file MEMO:

             c:\> attrib +rh memo

           Set the archive attribute (file has been modified) for MEMO
           and change TEXT.COM to system and not modified:

             c:\> attrib +a memo +s -a test.com
*BACKUP*
Syntax:    BACKUP [d:][path]]filename][.ext] d:[/S][/M][/A][/D:mm-dd-yy]

Purpose:   Backs up files from one disk to another.

Comments:  The first argument is the source, the second argument is the
           target.  You can use the wildcard characters (* and ?) in the
           filename.

             /S  Backup subdirectory files in addition to the specified
                 directory.
             /M  Backup only those files that have changed since
                 the last backup.
             /A  Add files to be backed up to the files already on
                 the backup disk.
             /D:mm-dd-yy - Backup files modified on or after the
                 specified date

Example:  Backup the fixed disk C to multiple floppies on A:

            c:\> backup c: a: /s
            
          Backup all the files with a .C extension in the C:\PROGRAM
          directory to A:
          
            c:\> backup c:\cprogram\*.c a:
*BEEP*
Syntax:    BEEP

Purpose:   Beep the speaker.

Comments:  BEEP is normally be used in batch files to signal that an
           operation has been completed, or that the computer needs
           attention (for example, to change disks).
*BREAK*
Syntax:    BREAK [on | off]

Purpose:   Display, enable, or disable ^C / ^BREAK checking.

Comments:  BREAK turns the ^C / ^BREAK checking on or off.  If no argument
           is given, it displays the current BREAK status.

           If BREAK is off, MS-DOS will only check for a ^C during screen,
           keyboard, serial port, or printer I/O operations.  Many programs
           don't use the MS-DOS functions to access the screen and keyboard,
           and it can be difficult to break out of them with BREAK off.  If
           BREAK is on, MS-DOS will check for a ^C or ^BREAK during any
           MS-DOS operation (including disk access).

           BREAK defaults to OFF.  You can change the default BREAK setting
           by adding the following line to your CONFIG.SYS file:

             BREAK=ON

Example:   Check the current BREAK status:

             c:\> break
             BREAK is OFF

           Enable ^C checking in all MS-DOS calls:

             c:\> break on
*CALL*
Syntax:    CALL [d:][path]filename

Purpose:   Call a secondary batch file.

Comments:  CALL allows batch files to call other batch files (batch file
           nesting) without invoking a secondary copy of the command
           processor.  4DOS supports batch file nesting up to 5 levels
           deep.  The calling batch file is suspended while the called
           batch file runs.  When the called batch file finishes, the
           calling batch file resumes execution at the next command.

           See also CANCEL and QUIT.

Example:   The following batch file fragment compares an input line to "wp"
           and calls a secondary batch file if it matches:

             input Enter your choice:  %%option
             if "%option" == "wp" call wp.bat
*CANCEL*
Syntax:    CANCEL

Purpose:   Terminate batch processing.

Comments:  The CANCEL command will end all batch file processing, regardless
           of the batch nesting level.  (Use QUIT to end a nested batch file
           and return to the previous batch file.)

           You can CANCEL at any point in a batch file.

           See also CALL and QUIT.

Example:   The following batch file fragment compares an input line to "end"
           and terminates all batch file processing if it matches:

             input Enter your choice:  %%option
             if "%option" == "end" cancel
*CD*CHDIR*
Syntax:    CD [[d:][pathname]
             or
           CHDIR [[d:][pathname]

Purpose:   Display or change the current directory.

Comments:  Entering CD with no argument or only a disk drive name will
           display the current directory.  Entering CD and a pathname will
           change the current directory.

           Every disk drive on the system has its own current directory.
           Specifying both a drive and a directory in the CD command will
           change the current directory on the specified drive, but will not
           change the default drive.  Use CDD to change both the drive and
           directory.

           To start at the root directory, start the pathname with a
           backslash (\).  To start at the parent directory, start the
           pathname with two periods (..).  All other pathnames start
           at the current directory.

           MS-DOS will not accept a directory name longer than 64
           characters.

           See also CDD.

Example:   Change to the subdirectory C:\FINANCE\MYFILES:

             c:\> cd \finance\myfiles

           Change the default directory on drive A:

             c:\> cd a:\utility
*CDD*
Syntax:    CDD [d:]pathname

Purpose:   Change the current disk drive and directory.

Comments:  CDD is similar to CD, except it can also change the default disk
           drive.

           See also CD.

Example:   Change from the root directory on drive A to the subdirectory
           C:\WP:
           
             a:\> cdd c:\wp
*CHCP*
Syntax:    CHCP [n]

Purpose:   Display or change the current system code page.

Comments:  Code page switching allows you to select different character sets
           for language support.  To use code page switching, you must have
           an EGA or VGA board, and MS-DOS 3.3 or above.
           
           Before using CHCP, you must load the device drivers (in the
           CONFIG.SYS file); make sure the information file (COUNTRY.SYS)
           is available; load national language support (using the NLSFUNC
           command); and prepare the specified code page for the devices
           (using the MODE command with the CODEPAGE PREPARE option).
           
           CHCP accepts one of the two prepared system code pages.  An error
           message is displayed if a code page is selected that has not been
           prepared for the system.

           Entering CHCP with no argument displays the active code page.

           See your MS-DOS manual for more information on CHCP.

Example:   Display the current code page:

             c:\> chcp
             Active code page: 437
             
           Set the code page to multilingual:
           
             cL\> chcp 850
*CHKDSK*
Syntax:    CHKDSK [d:][filename[.ext]] [/F][/V]

Purpose:   Checks the disk directories, files, and FAT, and reports on the
           disk and memory status.

Comments:  If you specify a filename, CHKDSK will check the disk for
           fragmentation and display a status report for the file.  You can
           use the MS-DOS wildcard characters (* and ?) in the filename.

             /F  Try to fix errors in the directory or FAT
             /V  Displays all files and their paths on the specified drive.

Example:   Check drive C and correct any errors:

             c:\> chkdsk c: /f
*CLS*
Syntax:    CLS

Purpose:   Clear the video display.

Comments:  CLS clears the display and moves the cursor to the upper left
           corner.

           CLS is normally used in batch files to clear the screen before
           displaying text (see ECHO, SCREEN, and TEXT).
           
Example:   Clear the display:

             c:\> cls
*COMP*
Syntax:    COMP [d:][path]filename [d:][path]filename

Purpose:   Compares files.

Comments:  COMP compares individual files or sets of files byte for byte.
           To compare sets of files, specify only the drive, the path, or
           use the MS-DOS wildcard characters (* and ?) in the filenames.

           If the file sizes differ, COMP does not make the comparison.

           COMP will display an error message for any location containing
           mismatched information between the two files.  After ten
           mismatches, COMP aborts the compare.

           See also DISKCOMP.

Example:   Compare the files MEMO.DOC and MEMO.BAK:

             c:\> compare memo.doc memo.bak
*COPY*
Syntax:    COPY [/PV] [d:][path]filename...[/A/B] [[d:][path]filename][/A/B]

Purpose:   Copy or append one or more files.

Comments:  Unlike COMMAND.COM, 4DOS allows you to copy several unrelated
           files to a target directory with a single COPY command.  If
           there are two or more arguments on the command line, COPY
           assumes the last argument is the target.  If there is only one
           argument, the target is assumed to be the current directory.

           The plus (+) tells 4DOS to append two or more files to a single
           target file.  If you don't specify a target, COPY will append
           each subsequent file to the first file.
           
           If you specify more than one source file, and the target is NOT
           a directory, COPY will automatically append the files to the
           target.

           The /P(rompt) option prompts you to confirm each file copy (Y or
           N).  An N response will skip that particular file.

           The /V(erify) option verifies each disk write.  This is the same
           as executing the VERIFY ON command, but is only active during the
           COPY command.

           The /A(SCII) or B(inary) switch applies to the filename preceding
           it and all subsequent filenames until another /A or /B.

           If you use the /A switch with a source filename, 4DOS will copy
           the file up to, but not including, the first ^Z character.  If
           you use /A with a target filename, 4DOS will add a ^Z to the end
           of the file.  4DOS defaults to /A when appending files, or when
           the source or target is a device.

           If you use the /B option with a source filename, 4DOS will copy
           the entire file.  Using /B with a target filename prevents 4DOS
           from adding a ^Z to the end of the target file.  4DOS defaults
           to /B for normal file copies.

           You cannot copy a file to itself.

           See also MOVE.

Example:   Copy the files MEMO1, PROJECT8.WKS, and UPDATE.BAT to the root
           directory on drive A:
           
             c:\> copy memo1 project8.wks a:\
           
           Append the files MEMO1, MEMO2, and MEMO3 and store the result in
           BIGMEMO:
           
             c:\> copy memo1+memo2+memo3 bigmemo
*CTTY*
Syntax:    CTTY device

Purpose:   Change the default console device.

Comments:  At startup, 4DOS uses the keyboard as the standard input device
           and the display as the standard output device.  CTTY allows you
           to change the console (CON:) to another device that can perform
           standard character I/O.

           CTTY works only for those programs that use the standard MS-DOS
           I/O functions (this includes all of the internal 4DOS commands
           with the exception of LIST and SELECT).

Example:   Change the console to the first serial port:

             c:\> ctty com1:
*DATE*
Syntax:    DATE [mm-dd-yy]

Purpose:   Display and (optionally) change the system date.

Comments:  If you don't enter any parameters, DATE will display the current
           system date and time, and prompt for the new date.  Press ENTER
           if you don't wish to change the date, otherwise enter the new
           date.

           The parameters for the DATE command are:

              mm (month) = 1 - 12
              dd (day)   = 1 - 31
              yy (year)  = 80 - 199 (1980 - 2099)

           You can use hyphens, slashes, or periods to separate the month,
           day, and year entries.
           
           The format for the date entry depends on the country code defined
           in the CONFIG.SYS file or by the CHCP command.  The default
           format is U.S. (mm-dd-yy).  The European format is dd-mm-yy; the
           Japanese is yy-mm-dd.
           
           See also CHCP and TIME.
           
Example:   Enter the date from the command line:

             c:\> date 12/25/89
             
           To be prompted for the date:
           
             c:\> date
             Mon  Dec 25, 1989  9:30:06
             Enter new date (mm-dd-yy):
*DEL*ERASE*
Syntax:    DEL [/P] [d:][path]filename...
             or
           ERASE [/P] [d:][path]filename... 

Purpose:   Erase the specified file(s) from the disk.

Comments:  If the /P(rompt) option is specified, 4DOS will prompt you
           to enter a Y or N to confirm file deletions for subsequent
           filenames.  If you want DEL to prompt for each filename on the
           command line, you MUST place the /P at the beginning of the
           command line.

           If you enter a subdirectory name, or a filename composed only of
           wildcards (* and ?), DEL asks for confirmation (Y or N).  If you
           respond with a Y, DEL will delete all the files in that
           subdirectory (except for hidden and read-only files).

Example:   Erase all the files in the current directory with a .BAK or .PRN
           extension:
           
             c:\> del *.bak *.prn
*DESCRIBE*
Syntax:    DESCRIBE [d:][path]filename ...

Purpose:   Create, modify, or delete file descriptions.

Comments:  DESCRIBE adds descriptions (up to 40 characters) to MS-DOS
           filenames.  The descriptions will be displayed when using DIR
           with the default single column option, or when using SELECT.

           File descriptions allow you to identify your files in much more
           meaningful ways than DOS allows in an eight character filename.

           Descriptions are stored in each directory in a hidden file
           called DESCRIPT.ION.  Use the ATTRIB command to "unhide" this
           file if you need to copy or delete it.
           
           The description file is modified appropriately whenever you do a
           COPY, MOVE, DEL, or RENAME.

Example:   Create a description for the file MEMO.TXT:

             c:\> describe memo.txt
             Describe "memo.txt": Memo to Bob about party
*DIR*
Syntax:    DIR [/[12ACDFHJNPQSWX /Oeirtuz]] [[d:][path]filename...]

Purpose:   Display information about files and subdirectories.

Comments:  DIR displays information about the files and subdirectories in
           the specified directory.  Depending upon the options specified,
           DIR can show the filename, the file attributes, the size, the
           date and time of the most recent change to the file, and the
           file description.

           DIR allows wildcard characters (* and ?) in the filename.  If
           you don't specify a filename, DIR defaults to *.* (display all
           files and subdirectories in the current directory).

           If a country code was defined in the CONFIG.SYS file or by the
           CHCP command, DIR will display the date in the format for that
           country.  The default date format is U.S. (mm-dd-yy).

           The DIR options are:

           1   Single column display - display the filename, size, date,
                 time, and description.  This is the default.
           2   Two column display - display the filename, size, date,
                 and time.
           A   Display the filenames and attributes only (see ATTRIB), in
                 the format RHSA, where:
                   R  read only
                   H  hidden
                   S  system
                   A  archive
           C   Display the filenames and directories in upper case (like
                 COMMAND.COM).
           D   Display the contents of the current directory and all of
                 its subdirectories.
           F   Display files only (no subdirectories).
           H   Display all files, including hidden and system files.
           J   Justify the output (same output as COMMAND.COM).
           N   Reset the DIR options to the default values.
           O?  Sort sequence, where ? can be any combination of the
                 following options:
                   e  Sort by extension
                   i  Sort by the file description (see DESCRIBE)
                   r  Reverse the normal sort order
                   t  Sort by time, oldest first
                   u  Unsorted (same as COMMAND.COM)
                   z  Sort by size
                 The default sort is by filename.
           P   Pause after each page and wait for a key to be pressed
                 (useful for displaying long directory listings).
           Q   Suppress the header line and summaries, and display file or
                 subdirectory names only, in a single column (useful when
                 redirecting output to another program).
           S   Display summary only (number of files & bytes used).
           W   Wide display - display the filenames only, horizontally
                 across the screen (5 columns on an 80-character display).
           X   Display directories only.

           See also DESCRIBE.
           
Example:   Display the .WKS files, and then the .PRN files in the
           current directory:
           
             c:\> dir *.wks *.prn
             
           Display the files in the current directory, sorted by time (most
           recent first):
           
             c:\> dir /otr *.*
*DIRS*
Syntax:    DIRS

Purpose:   Display the current directory stack.

Comments:  DIRS displays the directory stack used by PUSHD and POPD, (most
           recent entries first).  The directory stack holds up to 255
           characters (about 10 to 20 entries).

           See also PUSHD and POPD.
           
Example:   Change directories and then display the directory stack:

             c:\> pushd c:\database
             c:\database> pushd d:\wordp\memos
             d:\wordp\memos> dirs
             c:\database
             c:\
*DISKCOMP*
Syntax:    DISKCOMP [d:] [d:] [/1] [/8]

Purpose:   Compare the contents of two diskettes.

Comments:  DISKCOMP compares diskettes on a track-for-track basis.  It
           will not work on fixed or virtual disks.

           DISKCOMP does not recognize drive assignments made with ASSIGN.
           
             /1  Compare only the first side ot the disks.
             /8  Compare only 8 sectors per track.

Example:   Compare the disks in A and B:

             c:\> diskcomp a: b:
*DISKCOPY*
Syntax:    DISKCOPY [d:] [d:] [/1]

Purpose:   Copy diskettes

Comments:  DISKCOPY copies diskettes only.  It will not work on fixed or
           virtual disks.  DISKCOPY does not recognize drive assignments
           made with ASSIGN.
           
           The first drive is the source, the second drive is the target.

             /1  Copy only the first side of the diskette.

           See also XCOPY.

Example:   Make a copy of the diskette in drive A to drive B:

             c:\> diskcopy A: B:
*ECHO*
Syntax:    ECHO [on | off | message]

Purpose:   Display the echo status, enable or disable batch file or command
           line echoing, or display a message.

Comments:  4DOS defaults to ECHO ON in batch files.  To prevent a line from
           being echoed, preface it with the @ symbol.  You can tell 4DOS to
           default to ECHO OFF by setting the variable VERBOSE to 0 (see
           SETDOS).  The current ECHO state is inherited by called batch
           files.
           
           4DOS defaults to ECHO OFF during keyboard input.  If you set ECHO
           ON from the command line, 4DOS will display the fully parsed and
           expanded commands (including aliases and variables) before they
           are executed.
           
           If no arguments are entered, ECHO displays the current echo
           status (ON or OFF).
           
           ECHO commands in a batch file will send messages to the screen
           while the batch file executes, even if ECHO is set OFF.  You
           cannot use the command separator character or the 4DOS
           redirection symbols (|><) in an ECHO message, unless you
           enclose them in quotes or precede them with the escape character.
           
           See also SETDOS, SCREEN and TEXT.

Example:   Enable command line echoing:

             c:\> echo on
             
           Display a message in a batch file:
           
             echo Processing your print files...
             
           Turn off batch file echoing, without displaying the ECHO command
           itself:
           
             @echo off
*ENDLOCAL*
Syntax:    ENDLOCAL

Purpose:   Restore the saved disk drive, directory, and environment.

Comments:  ENDLOCAL restores the disk drive, directory, and environment
           saved by the previous SETLOCAL command.  SETLOCAL and ENDLOCAL
           can only be used in batch files.

           See also SETLOCAL.
           
Example:   This batch file fragment saves the environment, drive, and
           current working directory, changes the drive and directory,
           modifies some environment variables, runs a program, and then
           restores the original values:
           
             setlocal
             cdd d:\test
             set path=c:\;c:\dos;c:\util
             set lib=d:\lib
             rem run some program here
             endlocal
*ESET*
Syntax:    ESET varname ...

Purpose:   Edit environment variables and/or aliases.

Comments:  ESET allows you to edit your environment variables and aliases
           using the 4DOS line editing commands (see the Command Line
           Editing section in the 4DOS manual).  The cursor will be
           positioned at the first character of the variable or alias.

           ESET will search for environment variables first, and then
           aliases.

           4DOS limits environment variable and alias names to 80
           characters, and their arguments to 255 characters.
           
           See also ALIAS and SET.
           
Example:   Edit the default MS-DOS executable file search path:

             c:\> eset path
             
           Create and then edit an alias:
           
             c:\> alias d dir /djp
             c:\> eset d
*EXCEPT*
Syntax:    EXCEPT ([d:][path]filename...) command [args...]

Purpose:   Perform a command, except on the file(s) specified.

Comments:  EXCEPT provides a means of executing a command on a group of
           files and/or subdirectories, except those enclosed within the
           parentheses.

           You may use the wildcard characters (? and *) in a filename.

           EXCEPT prevents operations on the specified file(s) by setting
           the hidden attribute, performing the command, and then clearing
           the hidden attribute.  If EXCEPT is aborted in an unusual way,
           you may need to use the ATTRIB command to "unhide" (-H) the
           file(s).

           EXCEPT will not work with programs or commands that ignore the
           hidden attribute.

           See also ATTRIB.

Example:   Erase all but the files beginning with MEMO and those ending
           in .WKS:
           
             c:\> except (memo*.*) *.wks) del *.*
*EXIT*
Syntax:    EXIT

Purpose:   Return from a secondary command processor.

Comments:  Some application programs will start a secondary copy of the
           command processor to allow you execute MS-DOS commands.  To
           return to the application again, type EXIT.

           You cannot EXIT from the primary command processor.
*FIND*
Syntax:    FIND [/V][/C][/N] "string" [d:][path]filename...

Purpose:   Searches files for a specified string.

Comments:  You cannot use wildcard characters in the filenames.

             /V  Display all lines NOT containing the string.
             /C  Display the number of lines containing the string.
             /N  Display the relative line number of each matching
                 line before the line.

Example:   Search for the string "4DOS" in the file 4DOS.DOC, and display
           the line numbers it appears on:
           
             c:\> find /c "4DOS" 4dos.doc
*FOR*
Syntax:    FOR %%var IN (set) DO command

Purpose:   Repeat a command for several variables.

Comments:  4DOS sets "var" sequentially to each member of "(set)", and then
           evaluates and executes "command" for every argument in "(set)".
           If one of the arguments in "(set)" contains MS-DOS wildcard
           characters (* and ?), "var" will be set sequentially to each
           matching filename on the disk.
           
           You must use two percent signs (%%) before the variable name to
           prevent 4DOS from expanding the variable on the command line
           before it is passed to FOR.

Example:   The following example compiles the C programs in the current
           directory that have a "2" or a "3" somewhere in their name:
           
             c:\msc> for %%a in (*2*.c *3*.c) do cl %%a ;
*FORMAT*
Syntax:    FORMAT [d:][/S][/1][/8][/V][/B][/4]

Purpose:   Format (initialize) a disk.

Comments:  FORMAT analyzes a disk for any defective tracks and prepares the
           disk for MS-DOS files.  It initializes the directory and sets up
           the file allocation table (FAT) and the system loader.

           If you do not specify a drive, FORMAT will format the default
           drive.

             /S  Copy the operating system files to the new disk.
             /1  Format a diskette for single-sided use.
             /8  Format a diskette for 8 sectors per track.
             /V  Prompt for a disk volume label.
             /B  Leave space on a disk for the system files (IBMBIO.COM and
                 IBMDOS.COM).  You can add them later with the SYS command.
             /4  Formats a double-sided diskette in a high-capacity drive.

           The FORMAT command will destroy all files on the disk.

Example:   Create a boot disk in the drive A:

             c:\> format a: /s
*FREE*
Syntax:    FREE [d:] ...

Purpose:   Display the total and free disk space on the specified (or
           default) drive(s).

Comments:  FREE provides the same disk drive usage information as CHKDSK,
           but without the lengthy wait.

           See also MEMORY.

Example:   Display the status of drives A, B, and C:

             c:\> free a: b: c:
*GLOBAL*
Syntax:    GLOBAL [/I] command [args]

Purpose:   Execute a command in the current directory and its
           subdirectories.

Comments:  GLOBAL performs the specified command first in the current
           directory, and then in each of its subdirectories.  The command
           cannot be an alias.

           GLOBAL will terminate if the command returns a non-zero exit
           code, unless you specify the /I(gnore result) switch.

Example:   Erase all the files with a .BAK extension in every directory
           on C:
           
             c:\> global erase c:\*.bak
             
           Copy the files in every directory on drive A to the directory
           C:\TEMP:
           
             c:\> global copy a:\*.* c:\temp
*GOSUB*
Syntax:    GOSUB label

Purpose:   Call a subroutine in a batch file.

Comments:  GOSUB calls the specified label as a subroutine.  The subroutine
           must end with a RETURN statement.  After the RETURN, 4DOS will
           continue processing on the line following the GOSUB.

           If the label doesn't exist, the batch file is terminated with
           the error message "Label not found."

           The line with the label must begin with a colon (:), and contain
           only the label name.  4DOS ignores case differences when matching
           labels.

           GOSUBS may be nested up to 5 levels deep.

           See also GOTO and RETURN.
           
Example:   The following batch file fragment calls a subroutine which
           displays the directory and returns:
           
             echo Calling a subroutine
             gosub subr1
             echo Returned from the subroutine
             quit
             :subr1
             dir /hw
             return
*GOTO*
Syntax:    GOTO label

Purpose:   Continue batch file processing at the line following the label.

Comments:  GOTO jumps to the line immediately following the label.  If you
           don't enter a label, or the label doesn't exist, the batch file
           is terminated with the error message "Label not found."

           The line with the label must begin with a colon (:), and contain
           only the label name.  4DOS ignores case differences when matching
           labels.
           
Example:   The following batch file fragment checks for the existence of
           the file CONFIG.SYS.  If the file exists, 4DOS jumps to C_EXISTS
           and copies all the files from the current directory to the root
           directory on A.  If CONFIG.SYS doesn't exist, 4DOS prints an
           error message and exits.
           
             if exist config.sys goto C_EXISTS
             echo CONFIG.SYS doesn't exist - exiting
             quit
             :c_exists
             copy *.* a:\
*GRAFTABL*
Syntax:    GRAFTABL

Purpose:   Load a character table to allow the CGA to display ASCII values
           above 127.

Comments:  Use GRAFTABL to display the foreign language and line-drawing
           characters while in graphics mode on the CGA (color graphics
           adapter).
           
           This command increases the size of MS-DOS by approximately 1K.
*HISTORY*
Syntax:    HISTORY [/F]

Purpose:   Display or clear the history list.

Comments:  If no parameters are entered, HISTORY will display the current
           history list.

           The /F(ree) option clears the command history list.
           
           The number of commands saved in the history list depends on the
           length of each command line.  The history list size can be set
           at startup anywhere from 512 to 8192 characters.  The default
           size is 1024 characters.

           You can disable saving commands to the history list, or specify
           a minimum command line length to save, with the SETDOS /H
           command.

           See also SETDOS.
           
Example:   Display the history list:

             c:\> history
             
           Clear the history entries:
           
             c:\> history /f
*IF*
Syntax:    IF [NOT] condition command

Purpose:   Allow conditional execution of commands.

Comments:  4DOS first tests the given condition.  If the condition is true,
           4DOS executes the specified command, otherwise the command will
           be ignored.  If you use the NOT option, the command is executed
           only when the condition is false.

           For the string tests, case differences are ignored.

           The condition can be any of the following:

           string1 == string2
           string1 EQ string2
             If string1 is equal to string2, the condition is true.

           string1 NE string2
             If string1 is not equal to string2, the condition is true.

           string1 LT string2
             If string1 is < string2, the condition is true.

           string1 LE string2
             If string1 is <= string2, the condition is true.

           string1 GE string2
             If string1 is >= string2, the condition is true.

           string1 GT string2
             If string1 is > string2, the condition is true.

           ERRORLEVEL number
             If the preceding program returns an result code greater than
             or equal to number, the condition is true.  NOTE:  Not all
             programs return an error code.  In those cases, the behavior
             of ERRORLEVEL is undefined.

           EXIST [d:][path]filename
             If the file exists, the condition is true.  You can use
             wildcard characters (* and ?) in the filename.

           ISDIR [d:]path
             If the directory exists, the condition is true.

Example:   Test for the presence of A:\JAN.DOC and copy it to the root
           directory on drive C if it exists:
           
             c:\> if exist a:\jan.doc copy a:\jan.doc c:\
             
           This batch file fragment tests for a string value:
           
             if "%cmd" == "wp" goto wordproc
             if "%cmd" NE "graphics" goto badentry
*INKEY*
Syntax:    INKEY [text] %%varname

Purpose:   Enter a single keystroke environment variable from the standard
           input.

Comments:  You can optionally enter some prompt text before the variable
           name.

           ASCII values from 1 to 255 are stored as a character.  Extended
           characters (for example, function keys & cursor keys) are
           stored as a string in decimal format, with a leading @ (for
           example, the F1 key is stored as @59).  This is the same format
           used by the KEYSTACK command.

           INKEY and INPUT are normally used as batch file commands,
           allowing you great flexibility in entering or changing batch
           variables.

           See Appendix B in the 4DOS manual for a list of the extended key
           codes.

           See also INPUT.
           
Example:   The following batch file fragment prompts for a character and
           stores it in the variable NUM:
           
             inkey Enter a number from 1 to 9:  %%num
*INPUT*
Syntax:    INPUT [text] %%varname

Purpose:   Enter an environment variable from the standard input.

Comments:  You can optionally enter some prompt text before the variable
           name.

           All characters entered up to, but not including, the carriage
           return are stored in the variable.

           INPUT and INKEY are normally used as batch file commands,
           allowing you great flexibility in entering or changing batch
           variables.

           See also INKEY.

Example:   The following batch file fragment prompts for a string and
           stores it in the variable FNAME:

             input Enter the file name:  %fname
*JOIN*
Syntax:    JOIN
           JOIN d: d:\path
           JOIN d: [/D]

Purpose:   Connect a drive to a directory on another drive.

Comments:  The destination path must be empty and only one level deep from
           the root.  If the named directory doesn't exists, MS-DOS creates
           it automatically.

             /D  Disconnect a join.

           See also ASSIGN and SUBST.

Example:   Assign everything in drive A to C:\ADISK:

             c:\> assign a: c:\adisk

           Undo the join:

             c:\> join a: /d
*KEYSTACK*
Syntax:    KEYSTACK ["abc"] [nn] [@nn]

Purpose:   Feed keystrokes to a program from a batch file or alias.

Comments:  Characters entered within double quotes ("abc") will be stored
           "as is" in the keyboard bufer.  Numbers (nn) not enclosed in
           quotes are ASCII decimal codes (e.g., 13 (Enter), or 27
           (Esc)).  The number 0 is a special case; it is used with
           programs that flush the keyboard buffer (it tells the
           program the buffer is clear, so subsequent keystrokes will
           be accepted normally).  Numbers preceded by @ are extended
           keyboard codes generated by the Alt key, cursor pad keys,
           and the Function keys (e.g., @59 is the F1 function key).
           See Appendix B in the 4DOS manual for a list of the extended
           key codes.
           
           You can store a maximum of 255 characters.

           Each time KEYSTACK is executed, it will clear any remaining
           keystrokes stored by a previous KEYSTACK.

           You may need to experiment a bit with your programs to find the
           proper sequence of keystrokes.  Programs that bypass MS-DOS and
           the BIOS for keyboard input will not work with KEYSTACK.

           KEYSTACK requires the device driver KEYSTACK.SYS be loaded in
           the CONFIG.SYS file.

Example:   The following batch file starts Lotus 1-2-3 and loads the file
           specified on the command line (this could also be defined as an
           alias):
           
             pushd c:\123
             keystack 0 13 0 13 0 13 0 13 0 13 "/fr" 0 "%1" 13
             123
             popd
*LABEL*
Syntax:    LABEL [d:][volume label]

Purpose:   Create, change, or delete a volume label.

Comments:  A volume label can contain up to 11 characters.  Do not use the
           MS-DOS wildcard characters (* and ?) or any character from the
           following list:

              " + ; ' = [ , ] \ . | < >

           MS-DOS will convert lowercase letters to uppercase.

           If you omit the drive, MS-DOS will assume the default drive.

Example:   Label the disk in drive A as BACKUP_88:

             c:\> label a:backup_88
*LIST*
Syntax:    LIST [d:][path]filename ...

Purpose:   Display a file with forward and backward paging and scrolling.

Comments:  LIST provides a much faster and more flexible way to view a file
           than TYPE, without the overhead of using a text editor.  LIST
           can handle any size file.

           The PgUp key moves you back one page; the PgDn key moves you
           forward one page.  The Home key displays the first page of the
           file, the End key the last page.  The up arrow scrolls back one
           line, the down arrow forward one line.  The left arrow key moves
           the display left 8 characters at a time, and the right arrow key
           moves the display right 8 characters at a time.

           The F1 key will search for a text string; the F2 key will
           find the next matching text string (case differences are
           ignored).

           The F4 key will print the entire file on LPT1.

           The Esc key will exit the current file; the ^C or ^BREAK keys
           will exit LIST.
           
           LIST is normally only useful for displaying ASCII text files;
           executable files (.COM and .EXE) and many data files will be
           unreadable due to the presence of non-alphanumeric characters.
           
           See also TYPE.

Example:   Display the file MEMO.DOC:

             c:\> list memo.doc
*MD*MKDIR*
Syntax:    MD [d:]pathname...
             or
           MKDIR [d:]pathname...

Purpose:   Create subdirectories.

Comments:  To start at the root directory, start the pathname with a
           backslash (\).  To start at the parent directory, start the
           pathname with two periods (..).  All other pathnames start at
           the current directory.

           The longest allowable path in MS-DOS from the root directory to
           any subdirectory is 64 characters (including backslashes).

           See also RD.

Example:   Create a subdirectory called MYDIR in the root directory:

             c:\> md \mydir
*MEMORY*
Syntax:    MEMORY

Purpose:   Display the system RAM status.

Comments:  MEMORY displays the total RAM, the free RAM (available to
           applications programs after loading MS-DOS, device drivers,
           4DOS itself, and RAM resident programs); the total and free
           expanded memory; extended memory (on an 80286 or 80386), and the
           total and free environment space.

Example:   Display your RAM totals:

             c:\> memory
*MODE*
Syntax:    See below

Purpose:   Setup a printer, video display, or serial ports.

Comments:  To set the printer parameters:

             MODE LPT#[:][n][,[m][,p]]
             
               #  1, 2, or 3  (the printer number)
               n  80 or 132 characters per line
               m  6 or 8 lines per inch
               P  Continuous retry on time-out errors

           To set the video display parameters:

             MODE n
             MODE [n],m[,T]

               n  40, 80, BW40, BW80, CO40, CO80, or MONO
               m  R or L  (shift the display right or left)
               T  Display an alignment test pattern.

           To set the serial port parameters:

             MODE COMn:baud[,parity][,databits[,stopbits[,P]]]

               n  1 or 2 (serial port number)
               P  Continuous retry on time-out errors

           To redirect the parallel port output:

             MODE LPT#:=COMn

               #  1, 2, or 3  (the printer number)
               n  1 or 2 (serial port number)
*MORE*
Syntax:    MORE

Purpose:   Display a screen-full of data, then pause.

Comments:  Pressing any key sends another screen of data to the standard
           output device.  This continues until all input data has been
           read.

           You can usually use LIST, or TYPE with the /P option rather than
           MORE.

           See also LIST and TYPE.
*MOVE*
Syntax:    MOVE [/P] [d:][path]filename ... [d:][path]filename

Purpose:   Move files to other directories and drives.

Comments:  MOVE moves the specified file(s) to the last filename specified,
           which is designated as the target.  If the target already exists,
           it is deleted when the file is moved.  You cannot move a file to
           itself.

           If there is more than one source file specification, the target
           must be a directory, and the files are moved to the directory
           with their original filenames.  If the target is not a directory,
           MOVE will display an error message and exit.

           The /P(rompt) option will prompt you for a Y or N response
           to confirm each move.

           MOVE first attempts to rename the file(s).  If that fails (the
           target is on a different drive, or the target already exists),
           MOVE will copy the file(s) and then delete the originals.
           
           See also COPY and RENAME.

Example:   Move some files to a different directory:

             c:\> move *.wks *.txt c:\finance\myfiles
*PATH*
Syntax:    PATH [[d:]path][[;[d:]path]...]]

Purpose:   Tells 4DOS where to search for executable and batch files not
           in the current directory.
           
Comments:  When searching for an external command (.COM, .EXE, and .BAT),
           4DOS searches the current directory first, then the directories
           you specify in the order you list them.  The directory names are
           separated by semicolons (;).

           If you enter PATH with no parameters, 4DOS displays the current
           search path.  If you enter PATH and a semicolon, 4DOS clears the
           search path and will search only the current directory (this is
           the default at system startup).

           If you specify an invalid directory, 4DOS will skip that
           directory and continue searching with the next directory in
           the path.

           Some applications also use the PATH variable to search for their
           files.

           You can edit an existing path with ESET.

Example:   The following PATH command directs 4DOS to search for an
           executable file in the following order: the current directory,
           the root directory on C, the DOS subdirectory on C, and the UTIL
           subdirectory on C:
           
             c:\> path c:\;c:\dos;c:\util
*PAUSE*
Syntax:    PAUSE [message]

Purpose:   Suspend alias or batch file execution.

Comments:  A PAUSE command will suspend execution, giving you the
           opportunity to perform activities such as changing disks, turning
           on the printer, etc.

           PAUSE waits for any key (except ^C or ^BREAK) to be pressed
           and then continues executing.  If a message is specified, 4DOS
           will display the message and wait for a keystroke.  Otherwise,
           PAUSE will prompt:

              Strike a key when ready...

           If you press a ^C or ^BREAK while executing a batch file, 4DOS
           will prompt:

              Cancel batch job (Y/N)?

           This gives you a way to quit a batch file at an intermediate
           point.  If you are nesting batch files (see CALL), a Y response
           will return you to the calling batch file.

Example:   The following batch file fragment prompts the user before
           erase files:
           
             pause ^C aborts, any other key erases the .LST files:
             erase *.lst
*POPD*
Syntax:    POPD [*]

Purpose:   Change to the disk drive and directory at the top of the
           directory stack.
           
Comments:  POPD restores the disk and directory saved using PUSHD
           (most recent first).

           The * option clears the directory stack, without changing the
           current drive and directory.

           Use the DIRS command to display the directory stack.

           See also DIRS and PUSHD.

Example:   Save and change your disk drive with PUSHD, and then restore it:

             c:\> pushd d:\database\test
             d:\database\test> popd
             c:\>

           Clear the directory stack:

             c:\> popd *
*PRINT*
Syntax:    PRINT [/D:device][/B:bufsiz][/U:busytick]
              [/M:maxtick][/S:timeslice][/Q:quesiz]
              [/T][/C][/P] ...][[d:][path][filename][.ext]...]

Purpose:   Queue and print data files.

Comments:  /D  Specify the print device.  Defaults to PRN.
           /B  Set the size of the internal buffer.
           /Q  Specify the maximum number of files in the print queue
               (1 - 32).
           /S  Specify the time-slice value (1 - 255).
           /U  Specify the number of clock ticks to wait for the printer.
           /M  Specify how many clock ticks PRINT can have (1 - 255).
           /T  Stop printing and delete all files from the queue.
           /C  Cancel the preceding filename and all following
               filenames until the end of the line or a /P is found
               are deleted from the print queue.
           /P  Print the preceding filename and all following filenames
               until the end of the line or a /C is found.
*PROMPT*
Syntax:    PROMPT [text]

Purpose:   Change the 4DOS command line prompt.

Comments:  If you enter PROMPT with no parameters, 4DOS sets the prompt to
           "$p$g" (display current disk and directory).

           The prompt text can contain special strings of the form $?, where
           ? is one of the following:

              a   The & character
              b   The | character
              c   The open parenthesis (
              d   Current date, in the format: Sun Jan 1, 1989
              e   The ASCII ESC character (decimal 27)
              f   The close parenthesis )
              g   The > character
              h   BACKSPACE over the previous character.
              l   The < character
              n   Default drive letter
              P   Current disk and directory (upper case)
              p   Current disk and directory (lower case)
              q   The = character
              s   The space character
              t   Current time, in the format hh:mm:ss
              v   MS-DOS version number
              _   CR/LF (go to beginning of new line)
              $   The $ character

Example:   Set the prompt to the current date and time:

             c:\> prompt $d $t $g
             Mon Dec 25, 1989 18:29:19 >
*PUSHD*
Syntax:    PUSHD [d:]pathname

Purpose:   Save the current disk and directory.

Comments:  PUSHD saves the current directory on the directory stack, and
           changes the disk and directory.  The directory stack can hold
           up to 255 characters (about 10 to 20 entries).

           The saved directory is restored on a "last in, first out" basis
           by the POPD command.  The directory stack can be displayed with
           the DIRS command.

           See also DIRS and POPD.

Example:   Save the current directory and change to C:\WORDP\MEMOS:

             c:\> pushd c:\wordp\memos
             c:\wordp\memos>
*QUIT*
Syntax:    QUIT

Purpose:   Terminate the current batch file.

Comments:  You can QUIT at any point in a batch file, not just the end.

           If you QUIT a batch file called from another batch file, you
           will be returned to the previous file at the line following the
           original call.  To end all batch file processing, use CANCEL.
           
           See also CANCEL.

Example:   This batch file fragment checks to see if the user entered
           "quit" and exits if true.  Otherwise it calls two subroutines
           and then exits:
           
             input Enter your choice:  %%option
             if "%option" == "quit" quit
             rem Perform the option processing
             gosub firstroutine
             gosub secondroutine
             quit
*RD*RMDIR*
Syntax:    RD [d:]path ...
             or
           RMDIR [d:]path ...

Purpose:   Remove one or more directories.

Comments:  Before removing a subdirectory, you must delete all the files
           and subdirectories (and their files) in that directory
           (including any hidden or read-only files).

           You can use the MS-DOS wildcard characters (* and ?) in the
           directory names.

           You cannot remove the root directory (\), the current directory
           (.), or the parent directory (..).
           
           See also MD.

Example:   Remove the subdirectory MEMOS from the subdirectory WP:

             c:\> rmdir \wp\memos
*REM*
Syntax:    REM [comment]

Purpose:   Put a comment in a batch file.

Comments:  If ECHO is ON, or the variable VERBOSE (see the SETDOS command)
           is set, 4DOS will echo the comment.  Otherwise, 4DOS will ignore
           it.  If you don't want to echo the line, preface REM with the @
           character.
           
           Enter your comment following the REM, separated by a space or
           tab.  Comments can be up to 255 characters.  4DOS will ignore
           everything following a REM, including the redirection symbols
           (|><) and the command separator character.

           Batch file comments are useful for documenting the purpose for a
           batch file and the procedures used.

Example:   Enter comments in a batch file:

             rem This batch file provides a menu-based system for
             rem accessing the word processing utilities.
             rem Clear the screen and get a selection
             cls
*REN*RENAME*
Syntax:    REN [/P] [d:][path]filename ... [d:][path]filename
             or
           RENAME [/P] [d:][path]filename ... [d:][path]filename

Purpose:   Rename files or directories.

Comments:  The last filename is the new name; the preceding names are the
           files or directories to be renamed.  You can use the wildcard
           characters (* and ?) in the filenames.  The new filename must
           not already exist.
           
           If the /P(rompt) option is specified, 4DOS will prompt you to
           enter a Y or N to confirm each rename.

           4DOS allows you to rename files to a new directory on the same
           disk drive.  If you want to rename to a different drive, use the
           MOVE command.

           There is a minor difference with the RENAME command in
           COMMAND.COM.  COMMAND.COM only allows a path to be specified with
           the first file name; the path for the target is always the same
           as the path for the source.  In 4DOS, if no path is specified for
           the target, it defaults to the current directory.

           NOTE:  You cannot rename a directory to a new path!
           
           See also MOVE.

Example:   Rename the file MEMO.TXT to OFFICE.TXT:

             c:\> rename memo.txt office.txt
             
           Rename the file MEMO.TXT to another directory:
           
             c:\> rename memo.txt c:\wp\memos\memo.txt
           
           Rename the directory \WORDPROC to \WP:
           
             c:\> rename \wordproc \wp
*RESTORE*
Syntax:    RESTORE d: [d:][path][filename] [/S][/P]

Purpose:   Restore backup files to disk.

Comments:  The first argument is the source drive; the second is the target
           disk.  RESTORE will not restore existing system files.

             /S  Restore all subdirectory files in addition to
                 the specified directory.
             /P  Prompt before restoring files that have changed
                 since the last backup, or that are marked read-only.

Example:   Restore the fixed disk C from the backup disks in A:

             c:\> restore a: c: /s

           Restore the file \WP\MEMO.DOC from the backup disk in A:

             c:\> restore a: c:\wp\memo.doc
*RETURN*
Syntax:    RETURN

Purpose:   Return from a GOSUB (subroutine) call in a batch file.

Comments:  The RETURN command returns from a GOSUB call to the line
           following the original GOSUB.

           See also GOSUB.

Example:   The following batch file fragment calls a subroutine which
           displays the current directory:
           
             echo Calling a subroutine
             gosub subr1
             echo Returned from the subroutine
             quit
             :subr1
             dir /hw
             return
*SCREEN*
Syntax:    SCREEN row column [message]

Purpose:   Position the cursor on the screen, and optionally display a
           message.

Comments:  SCREEN allows you to create attractive batch file screen
           displays.

           See also ECHO and TEXT.

Example:   The following batch file fragment displays a menu:

             @echo off
             cls
             screen 3 10 Select a number from 1 to 4:
             screen 6 20 1 - Word Processing
             screen 7 20 2 - Spreadsheet
             screen 8 20 3 - Telecommunications
             screen 9 20 4 - Quit
*SELECT*
Syntax:    SELECT [/Oeitzur] command ([d:][path]filename ...) ...

Purpose:   Execute a command on the specified files.

Comments:  SELECT allows you to select command line file arguments by
           marking the directories using a full-screen "point-and-shoot"
           display.  SELECT substitutes the selected files for the argument
           enclosed in parentheses, and executes the command for each
           marked file.  If you specify multiple arguments in the
           parentheses, SELECT will display the matching files for the
           first argument, prompt you to mark the files, execute the
           command for each marked file, and then continue the same
           procedure with the next argument.

           SELECT uses the cursor up, cursor down, PgUp, and PgDn keys to
           scroll through the files matching the argument(s).  Use the + key
           to select a file, and the - key to unselect a file.  The * key
           will select all of the files (excluding subdirectories).  After
           marking the files, press ENTER to execute the command.  You can
           select a single file by moving the scroll bar to the filename
           and pressing ENTER.
           
           The /O option determines the sort order for the directory
           display (the default sort is by filename):

              e  Sort by extension
              i  Sort by description (see DESCRIBE)
              r  Reverse the normal sort order
              t  Sort by time (oldest first)
              u  Unsorted
              z  Sort by size

           To cancel the SELECT command, type an Escape, ^C, or ^BREAK.

Example:   Select from the files in the current directory with the
           extension .COM, and then from the files with the extension .EXE
           to copy to the root directory on drive A:
           
             c:\> select copy (*.com *.exe) a:\
*SET*
Syntax:    SET [variable[=][value]]

Purpose:   Display, create, modify, or delete environment variables.

Comments:  Entering SET with no variable or value displays the environment.
           If you don't enter a vlalue, SET will remove the variable from
           the environment.  Otherwise, the variable and value are placed
           in the environment.  If the variable already exists, its old
           contents are replaced by the new value.  4DOS limits the
           variable name to a maximum of 80 characters, and the value to
           a maximum of 255 characters.

           SET only affects the environment of the current command
           processor. If you EXIT to a parent command processor, the
           original environment will be unchanged.  The size of the
           environment is specified by the /E parameter at startup.  The
           default size is 1024 characters.

           You can edit environment variables with the ESET command.

           See also ESET.

Example:   Add a variable to the environment:

             c:\> set mine=c:\finance\myfiles

           Remove a variable from the environment:

             c:\> set mine
*SETDOS*
Syntax:    SETDOS [/C? /E? /H? /M? /N? /V?]

Purpose:   Display or set 4DOS configuration variables.

Comments:  SETDOS allows you to customize 4DOS to your personal tastes.
           You would normally define the SETDOS variables in your
           AUTOEXEC.BAT or 4START.BAT file.  The SETDOS options are:

             C  The COMPOUND argument is the character used for separating
                multiple commands on the same line.  The default is the
                caret (^).  You cannot use the redirection characters
                (|><) or the whitespace characters (=,;) as the command
                separator.

             E  The ESCAPE argument is the character used to suppress the
                normal meaning of the following character.  Any character
                preceded by the escape character will be passed unmodified
                to the command line.  The default escape character is ^X.
                You cannot use any of the redirection characters (|><) or
                the whitespace characters (=,;) as the escape character.

             H  The HISTORY variable determines the minimum command size
                to save.  Any command line whose length is less than this
                value will not be saved to the history list.  Setting /H
                to 256 will disable all history saves; setting it to 0 will
                save everything.  The default value is 0.

             M  The MODE variable controls the line editing mode.  4DOS
                defaults to overstrike mode (0).  If MODE is set to 1, the
                default is insert mode.

             N  The NOCLOBBER variable controls output redirection.  If
                NOCLOBBER is set to 1, then existing files may not be
                destroyed by output redirection, and when appending with
                >>, the output file must exist.  NOCLOBBER can be
                overridden with the ! character.  The default value is 0.

             V  The VERBOSE variable controls command echoing in batch
                files.  If VERBOSE is set to 0, batch files will NOT echo
                their input unless they set ECHO ON.  VERBOSE defaults to
                1 (that is, batch files WILL echo input).

Example:   Change the COMPOUND character to a ~ (tilde):

             c:\> setdos /c~

           Change MODE to insert, VERBOSE to off, and set NOCLOBBER on:

             c:\> setdos /m1 /v0 /n1
*SETLOCAL*
Syntax:    SETLOCAL

Purpose:   Save a copy of the current disk drive, directory, and
           environment.

Comments:  SETLOCAL is used in batch files to save the disk drive,
           directory, environment variables, and aliases to a reserved
           block of memory.  You can then change their values, and later
           restore the original values with ENDLOCAL.

           SETLOCAL and ENDLOCAL are not nestable within the same batch
           file.  However, you can have multiple SETLOCAL / ENDLOCAL pairs
           within a batch file, and nested batch files can each have their
           own SETLOCAL / ENDLOCAL.

           You cannot use SETLOCAL / ENDLOCAL in an alias.

           See also ENDLOCAL.

Example:   This batch file fragment saves the disk drive, directory, and
           environment, changes the disk and directory, modifies some
           variables, deletes all the aliases, runs a program, and then
           restores the original values:
           
             setlocal
             cdd d:\test
             set path=c:\;c:\dos;c:\util
             set lib=d:\lib
             unalias *
             rem run some program here
             endlocal
*SHARE*
Syntax:    SHARE [/F:filespace][/L:locks]

Purpose:   Load support for file sharing and file locking.

Comments:  SHARE is for network users.  To install shared files, put SHARE
           in your AUTOEXEC.BAT file.

             /F:filespace - allocate file space for the file sharing
                information area.  The default value is 2048 bytes.

             /L:locks - allocate space for the number of locks.  The
                default value is 20 locks.
*SHIFT*
Syntax:    SHIFT [n]

Purpose:   Allow the use of more than 10 variables in a batch file.

Comment:   SHIFT is provided for compatibility with COMMAND.COM.
           COMMAND.COM supports only 10 parameters (%0 through %9); 4DOS
           supports 128 parameters (%0 to %127), so you may not need to
           use SHIFT for batch files running exclusively under 4DOS.

           SHIFT moves each of the batch file parameters "n" positions
           (i.e., %1 becomes %0, %2 becomes %1, etc.).  The default
           value for "n" is 1.  You can also reverse a SHIFT, by giving
           a negative value for "n" (i.e., if "n" is -1, the former value
           for %0 is restored, %1 becomes %1, %1 becomes %2, etc.).

           SHIFT will also affect the %& (command line tail) batch variable.

Example:   Create a batch file called TEST.BAT:

             echo %1 %2 %3 %4
             shift
             echo %1 %2 %3 %4
             shift 2
             echo %1 %2 %3 %4
             shift -1
             echo %1 %2 %3 %4
             
           Executing TEST.BAT produces the following results:
           
             c:\> test zero one two three four five six
             zero one two three
             one two three four
             three four five six
             two three four five
*SORT*
Syntax:    SORT [/R][/+n]

Purpose:   Reads data from standard input, sorts the data, then writes it
           to the standard output.

Comments:  SORT is a filter used to organize information.  The largest file
           you can sort is 63K.  SORT ignores case differences.

             /R   Sort in reverse order (Z - A).
             /+n  Start sorting with column n.

Example:   Sort the file ADDRESS and write it to SORTED:

             c:\> sort < address > sorted
*SUBST*
Syntax:    SUBST
           SUBST d: d:path
           SUBST d: /D

Purpose:   Substitute a virtual drive for a pathname.

Comments:  If you don't enter any arguments, SUBST will display the current
           virtual drives.

             /D  Delete a substitution

Example:   Create a virtual drive D to access C:\WP\MEMOS\JAN89:

             c:\> subst d: c:\wp\memos\jan89
*SYS*
Syntax:    SYS d:

Purpose:   Copy the two hidden operating system files to another drive.

Comments:  SYS does NOT transfer COMMAND.COM.  The target disk must be
           formatted and blank, or be a bootable MS-DOS disk.
*TEE*
Syntax:    TEE [/A] [d:][path]filename ...

Purpose:   Copy standard input to standard output, and save a copy in the
           specified file(s).

Comments:  The /A option causes the output to be appended to the file(s)
           rather than overwriting it.

           If you are typing at the keyboard, you need to enter a ^Z to
           terminate the input.

           TEE is often used to save the intermediate output of a pipe.

           See also Y.

Example:   Search the file DOC for any lines containing the string
           "4DOS", make a copy of the matching lines in 4.DAT, and write
           them to the output file 4DOS.DAT:
           
             c:\> find "4DOS" doc | tee 4.dat | sort > 4dos.dat
*TEXT*
Syntax:    TEXT
             .
             .
             .
           ENDTEXT

Purpose:   Display a block of text in a batch file.

Comments:  TEXT is useful for displaying menus or multiple-line messages.
           TEXT will display subsequent lines in the text until terminated
           by ENDTEXT.

           If you have ANSI.SYS loaded, you can change screen colors by
           inserting ANSI escape sequences into the text block.
           
           See also ECHO and SCREEN.

Example:   The following batch file fragment displays a simple menu:

             @echo off
             cls
             screen 2 0
             text
             Enter one of the following:
             
               1 - Spreadsheet
               2 - Word Processing
               3 - DOS Utilities
               
             Enter your selection:
             endtext
*TIME*
Syntax:    TIME [hh:mm:ss]

Purpose:   Display or set the current system time.

Comments:  If you don't enter any parameters, TIME will display the current
           system time and prompt you for a new time.  Press ENTER if you
           don't wish to change the time, otherwise enter the new time.
           
           The parameters for the TIME command are:
           
             hh (hour) = 0 - 23
             mm (minute) = 0 - 59
             ss (second) = 0 - 59

           Whenever you create or modify a file, the system time is recorded
           in the directory entry.

Example:   Enter the time (9:30 am):

             c:\> time 9:30
             
           To be prompted for the time:
           
             c:\> time
             Mon Dec 25, 1989  9:30:10
             New time (hh:mm:ss):
*TIMER*
Syntax:    TIMER

Purpose:   System stopwatch.

Comments:  The TIMER command turns the system stopwatch on and off.  The
           first time you run TIMER, the stopwatch starts.  When you run
           TIMER again, the stopwatch stops and the elapsed time is
           displayed.

           TIMER is particularly useful for timing events in batch files.

           The smallest interval TIMER can measure 0.06 seconds; the
           largest interval is 23:59:59.99.

Example:   Start the timer:

             c:\> timer
             Timer on:  12:21:46
             
           Stop the timer:
           
             c:\> timer
             Timer off:  12:21:58   Elapsed time 0:00:12.06
*TREE*
Syntax:    TREE [d:][/F]

Purpose:   Display the directory and file structure.

Comments:  /F - Display the names and specifications of all files
             on the disk.
*TYPE*
Syntax:    TYPE [/LP] [d:][pathname]filename...

Purpose:   Display the contents of the specified file(s).

Comments:  The TYPE command displays a file.  Press ^S or ^NumLock to
           suspend the display, and any character key to continue the
           display.

           The /L option prints line numbers preceding each line of text.

           The /P option will pause after each page.  Press ^C to quit, or
           any other key to display the next page.

           TYPE is normally only useful for displaying ASCII text files;
           executable files (.COM and .EXE) and many data files will be
           undisplayable due to non-alphanumeric characters.

           You will probably find LIST to be more useful for displaying
           files.

           See also LIST.

Example:   Display the files MEMO1 and MEMO2, pausing at the end of each
           page:

             c:\> type /p memo1 memo2
*UNALIAS*
Syntax:    UNALIAS alias...
             or
           UNALIAS *

Purpose:   Remove aliases from the alias list.

Comments:  UNALIAS also accepts the wildcard character * to delete all
           aliases.

           See also ALIAS and ESET.

Example:   Remove the alias DDIR:

             c:\> unalias ddir

           Remove all aliases:

             c:\> unalias *
*VER*
Syntax:    VER

Purpose:   Display the current 4DOS and MS-DOS versions.

Comments:  The 4DOS and MS-DOS versions consist of a one digit major
           version number, a period, and a two digit minor version number.

Example:   Get the current version of 4DOS and MS-DOS:

             c:\> ver
*VERIFY*
Syntax:    VERIFY [on | off]

Purpose:   Display, enable, or disable disk write verification.

Comments:  When VERIFY is ON, MS-DOS will verify that no error occurred
           during the each disk write operation.  It does NOT compare the
           data actually written to the disk.  VERIFY will remain ON
           until you set it OFF.

           Entering VERIFY with no parameters will display the current
           VERIFY state.

           Verification will slow your disk write operations slightly.

           At system startup, VERIFY is OFF.  

Example:   Check the current verify status:

             c:\> verify

           Enable disk write verification:

             c:\> verify on
*VOL*
Syntax:    VOL [d:] ...

Purpose:   Displays the disk volume label(s).

Comments:  If you don't enter a drive name, VOL displays the disk label for
           the current drive.

           If the disk doesn't have a volume name, VOL will report it as
           "unlabeled."

           Volume labels can be created, changed or deleted with the MS-DOS
           LABEL command.

           See also LABEL.

Example:   Display the disk labels for drives A and B:

             c:\> vol a: b:
*XCOPY*
Syntax:    XCOPY [d:][path]filename [d:][path]filename [/A/D/E/M/P/S/V/W]

Purpose:   Copy files and directories, including subdirectories.

Comments:  The first argument is the source file or directory you want
           to copy.  The second argument is the target.  If you omit the
           target, XCOPY uses the default directory with the default
           filename *.*.

             /A  Copy source files that have the archive bit set.  This
                 option does not modify the archive bit.
             /D  Copy source files modified on or after the specified date,
                 in the format: /D:mm/dd/yy.
             /E  Copy any subdirectories, even if they are empty.  You must
                 use /S with this option.
             /M  Same as /A, but after copying a file, turn off the archive
                 bit in the source file.
             /P  Prompt with a "Y/N" before creating each target file.
             /S  Copy subdirectories, unless they are empty.
             /V  Verify each file as it is written.
             /W  Wait for a keystroke before copying files.
*Y*
Syntax:    Y [d:][path]filename ...

Purpose:   Copy standard input to standard output, and then copy the
           specified file(s) to standard output.

Comments:  Standard input from the console is terminated by a ^Z.

           See also TEE.

Example:   Get text from standard input, append the files MEMO1 and
           MEMO2 to it, and send the output to MEMOS:
           
             c:\> y memo1 memo2 > memos
