* Welcome to the 4DOS/4OS2 Hypertext System For Multi-Edit

   @ABOUT[A. About 4DOS/ACI HyperText]          @≈INDEX[!L. Index of Chapters]

   @VARIABLES[!B. Variables]                         @FUNCTIONS[!M. Functions]
   @COMMANDS[!C. Commands & Keywords {A-J}]         @DIRECTIVES[!N. 4DOS.INI Directives]
   @COMMANDS2[!D. Commands & Keywords {K-Z}]         @KEYS[!O. Key Names & Scan Codes]
   @ANSI[!E. ANSI Sequences]                    @>SUPPORT^ASCII[!P. ASCII Character Chart]
   @GROUPING[!F. Command Grouping]                  @REDIRECTION[!Q. Redirection & Piping]
   @WILDCARDS[!G. Wildcards]                         @INCLUDE[!R. Include Lists]
   @CONDITIONAL[!H. Conditional Commands]              @COLORS[!S. Color Attributes & Names]
   @EXITCODE[!I. Exit Codes]                        @GLOSSARY[!T. Glossary]

   @ACI_HYPE^USING_HYPE[!J .Using the Hypertext Help System]   @ACI_HYPE^QUICKREF[!U. Quick reference to ACI Hypertext]
   @ACI_HYPE^SEARCH[!K. Searching for Text]                @ME^[!V. Multi-Edit Reference Guide]


 ^1 Release #920110 ^0
ABOUT About this 4DOS/4OS2 HyperText HELP System
     ^B┌────────────────────────────────────────────────────────────────╖^b
     ^B│^b	 Based on original 4DOS Help Text By Rex Conn and Tom Rawson  ^B║^b
     ^B│^b All material in this file is Copyright 1991, JP Software Inc., ^B║^b
     ^B│^b                      All Rights Reserved.                      ^B║^b
     ^B╘════════════════════════════════════════════════════════════════╝^b

4DOS is a registered trademark and 4OS2 is a trademark of JP Software Inc.
All American Cybernetics products are trademarks or registered trademarks of
American Cybernetics, Inc.  Other product names are trademarks of their
respective manufacturers.

This product is provided AS-IS AND WITHOUT WARRANTY OF ANY KIND, express or
implied, including warranties of merchandability or fitness for a particular
purpose.

^BDistribution Restrictions^b:

   ■ You may only distribute this file for the use of Multi-Edit and 4DOS
     users and not for use in any general-purpose DOS, 4DOS, or other
     help system.

   ■ You may modify this file for your own use or for the use of
     properly licensed 4DOS and Multi-Edit users within your own company,
     but you may not distribute modified copies of this file in any
     other way.  Specifically, you may not modify this file and make the
     modified version available on any public bulletin board, on-line
     service, or other similar location, or distribute modified copies
     for a fee in any way, including as part of any other product.

   ■ You may distribute unmodified copies of this file in any way you
     choose, provided that no charge is made for the use or distribution
     of the file, except actual copying costs not to exceed $5.00 per
     copy. This restriction also applies when unmodified copies of this
     file are included as part of any other product

If you have questions about this policy or feel you have a situation
which merits an exception, please contact JP Software in advance for
additional information and/or permission.

This online help system for 4DOS/4OS2 includes all 4DOS internal commands,
plus all MS-DOS external commands.  Information on external commands is
up-to-date as of MS-DOS version 5.0.  For coverage of topics not included
here, please refer to your 4DOS documentation.

This is not meant to be a comprehensive reference tool, but merely a
convenience for Multi-Edit users who often edit 4DOS batch files and/or
aliases.  We suggest you make this the default HELP file for extensions
".BAT" and ".BTM".

For information on Multi-Edit and       For further information on 4DOS and
the ACI HyperText, contact:            4OS2, contact:

  ^BAmerican Cybernetics, Inc.^b             ^BJP Software, Inc.^b
  1830 W. University - Suite 112         PO Box 1470
  Tempe, AZ 85281 USA                    East Arlington, MA 02174 USA
  Tel. 602-968-1945                      Tel. 617-646-3975
  Fax  602-966-1654                      Fax  617-646-0904

Comments about this particular implementation of the ACI HyperText system,
as well as suggestions and bug reports, should be directed to:

               ^1Michael R. Bessy^0
               ^1JP Software, Inc.^0
               ^1INTERNET 75300.1215@@compuserve.com^0
	       ^1CompuServe 75300,1215^0

VARIABLES Environment and Internal Variables

Environment @VARIABLES%Variables Index[variables] are referenced in a command by starting the variable
name with a percent sign (^B%^b).  (If you want to enter a percent sign without
referring to a variable, use two percent signs (^B%%^b).)  An environment
variable name is terminated by either another percent sign, or by an
invalid character (see below).  To pass a variable name (instead of the
value) to a command (for example, in @INKEY[INKEY] or @INPUT[INPUT]), you must precede it
with ^Btwo^b percent signs.

Environment variable names may be composed of any alphanumeric character,
plus the underscore (^B_^b), and ^B$^b characters.  In addition to the standard
variable name characters, you can force 4DOS to accept any sequence of
characters as a valid variable name by enclosing them in square brackets.
For example, ^B%[AB##1]^b refers to an environment variable named ^BAB##1^b.

Batch file variables, more properly called ^Bpositional parameters^b, are only
active inside a batch file.  They are referenced as ^B%0^b to ^B%127^b, and
expand to the matching argument on the command line that started the batch
file. Parameter ^B%0^b will contain the name of the batch file itself, as it
was entered on the command line.  The parameter ^B%n&^b is a special case, and
expands to all arguments in the command line tail, starting with argument
number ^Bn^b.  If ^Bn^b is not specified, it defaults to ^B1^b (therefore, ^B%&^b will
expand to all arguments in the command line tail).

There are some variable names that have special meanings in 4DOS.  Only
@CDPATH[CDPATH], @COLORDIR[COLORDIR], @COMSPEC[COMSPEC], @CMDLINE[CMDLINE], @PATH[PATH], @TEMP[TEMP], and @TEMP4DOS[TEMP4DOS] are actually
stored in the environment. the remainder are internal to 4DOS, and cannot
be viewed or modified with @SET[SET] or @ESET[ESET].  (The internal variable names are
checked _after_ variable expansion, so they can be overridden by creating an
environment variable of the same name.)

(Select this @4DOSMEMAC[Link] for information on viewing the current contents of
the 4DOS environment variables for Multi-Edit 6.0 and later)


		          ^B Variables Index ^b

   @#[%#]                  @÷?[%?]                  @_?[%_?]                 @CDPATH[%CDPATH]
   @CMDLINE[%CMDLINE]            @COLORDIR[%COLORDIR]           @COMSPEC[%COMSPEC]            @÷PATH[%PATH]
   @TEMP[%TEMP]               @TEMP4DOS[%TEMP4DOS]           @_4VER[%_4VER]              @_ALIAS[%_ALIAS]
   @_ANSI[%_ANSI]              @_BATCH[%_BATCH]             @_BG[%_BG]                @_BOOT[%_BOOT]
   @_CDPATH[%_CDPATH]            @_CODEPAGE[%_CODEPAGE]          @_COLUMN[%_COLUMN]            @_COLUMNS[%_COLUMNS]
   @_CPU[%_CPU]               @_CWD[%_CWD]               @_CWDS[%_CWDS]              @_CPW[%_CWP]
   @_CWPS[%_CWPS]              @_DATE[%_DATE]              @_DISK[%_DISK]              @_DOS[%_DOS]
   @_DOSVER[%_DOSVER]            @_DOW[%_DOW]               @_DV[%_DV]                @_ENV[%_ENV]
   @_FG[%_FG]                @_LASTDISK[%_LASTDISK]          @_MONITOR[%_MONITOR]           @_MOUSE[%_MOUSE]
   @_NDP[%_NDP]               @_ROW[%_ROW]               @_ROWS[%_ROWS]              @_SHELL[%_SHELL]
   @_TIME[%_TIME]              @_TRANSIENT[%_TRANSIENT]         @_VIDEO[%_VIDEO]             @_WIN[%_WIN]

4DOSMEMAC The 4DOSME Macro

The current value of 4DOS @VARIABLES[variables] which are kept in the environment
(COMSPEC, PATH, etc.) can optionally be viewed directly from the HELP
screen where they are defined.  Those screens will show the line:

    (Select this ^B[link]^b  to view the current contents of this variable)

If you select the "[link]" area, macro ^B4DOSME^b will be invoked to
query your system.  If the variable is not currently defined in your
environment, you will receive an appropriate message.  If the contents of
the variable are longer than your screen width, they will be truncated
to fit, and the string "^B...^b" will be appended to show that only a partial
value is displayed.

Pressing <ENTER>, <ESC> or a mouse button will restore the HELP screen.

There is no garantee that this macro will work on all systems and all
versions of Multi-Edit.  The compiled 4DOSME.MAC is included in the
distributed version of this 4DOS/ACI Help system, but the CMAC-format
source is shown below in case you need to recompile it.


 Macro 4dosme Trans {
 /**********************************************************************
 *                                                                     *         *
 *   This macro is part of file 4DOSME.HLP and is subject to the same  *
 *   copyrights and distribution restrictions.                         *
 *   Copyright 1991 JP Software, Inc.                                  *
 *   Please refer to 4DOSME.HLP for usage instructions                 *
 *                                                                     *
 ******************************************** MRB 01-08-92 03:46pm ****/
   Str Var_Name, Var_Value, Msg;
	Int Ref;

	Ref = Refresh;
	Refresh = False;
	Mark_Pos;
	Var_name = Caps(Parse_Str('/K=',Mparm_Str));
	Return_Str = '<%' + Var_Name+ '>';
	Rm('Mesys^Xlatecmdline');
	Var_Value = Return_Str;
	If( Var_Value == '') {
		Msg ='';
		Var_Value = 'Variable "' + Var_Name +
                                       '" is not currently defined.';
	} Else {
		Msg = 'Current value of %' + Var_Name+ ' is:';
  	If(Svl(Var_Value) > (Screen_Width-10) ) {
	  	Var_Value = Copy (Var_Value,1,Screen_Width-14) + ' ...';
		}
	}
	Put_Box(2,5,Screen_Width-4,8,0,H_B_Color,Msg,True);
				 Write(Var_Value,4,6,0,H_T_Color);
				 Rm('Userin^Xmenu
	/X=4/Y=5/S=1/T=0/B=0'); Kill_Box;
	Goto_Mark;
	Refresh = Ref;
 };

# %#  (Internal Variable)

    ^B%#^b returns the number of command line arguments in a batch file.

÷? %?  (Internal Variable)

    ^B%?^b returns the @EXITCODE[exit code] of the previous ^Bexternal^b command.
      (see the @_?[%_?] variable - do not confuse with the @?[?] command).

_? %_?  (Internal Variable)

    ^B%_?^b returns the @EXITCODE[exit code] of the previous ^Binternal^b command.  Save this
      value immediately; it is overwritten by the next internal command.
      (see the @÷?[%? variable]).

CDPATH %CDPATH  (Environment Variable)

    ^B%CDPATH^b tells 4DOS where to search for directories names specified by
      a @CD[CD] or @CDD[CDD] command.  4DOS will append the specified directory name
      to each directory in ^B%CDPATH^b and attempt to change to that directory.
      If you have already have a ^B%CDPATH^b environment variable, you can use
      ^B%_CDPATH^b instead for the directory search.

      This variable can be viewed/modified with @SET[SET] or @ESET[ESET].

    (Select this @>4DOSME /K=CDPATH[link] to view the current contents of this variable)

CMDLINE %CMDLINE  (Environment Variable)

    @>4DOSME[%CMDLINE] is the fully expanded 255-character command line for the
      external command.  You can access it from an external program by
      searching the environment.

      This variable can be viewed/modified with @SET[SET] or @ESET[ESET].

    (Select this @>4DOSME /K=CMDLINE[link] to view the current contents of this variable)

COLORDIR %COLORDIR  (Environment Variable)

    @>4DOSME[%COLORDIR] is the "directory colorization" variable.  See the @DIR[DIR] and
      @SELECT[SELECT] commands for usage.

  The format for COLORDIR is:

    ^Bext [...]:[bright][blink] fg [ON bg]; ...^b

where "^Bext^b" is the file extension, or one of the following file attributes:

    ^2DIRS^0 - directory
    ^2RDONLY^0 - read-only file
    ^2HIDDEN^0 - hidden file
    ^2SYSTEM^0 - system file
    ^2ARCHIVE^0 - file modified since last backup

COLORDIR uses the standard @COLORS[4DOS color attributes] and names.

The same information may also be entered with the "@ColorDir[ColorDir=]" INI directive.
If variable COLORDIR is defined, it overrides any existing "ColorDir="
directive.

For example, to display the .COM and .EXE files in red, the .C and
.ASM files in bright cyan, and the read-only files in blinking green:

    set colordir=com exe:red; c asm:bright cyan; rdonly:blink green

If you don't select a background color, @DIR[DIR] and @SELECT[SELECT] will use the current
screen background color.

      This variable can be viewed/modified with @SET[SET] or @ESET[ESET].

    (Select this @>4DOSME /K=COLORDIR[link] to view the current contents of this variable)

COMSPEC %COMSPEC  (Environment Variable)

    ^B%COMSPEC^b contains the path and filename that programs use to launch
      a secondary shell.  Normally, this will be set automatically by 4DOS
      as it installs itself.  However, in rare circumstances, you may wish
      to load 4DOS.COM for secondary shells from a directory other than the
      one it's in when you boot (for example, from a RAM disk).  In these
      cases, you will need to reset the COMSPEC variable.  For example, if
      you want to load secondary copies of 4DOS.COM from the root directory
      of drive D, you would use this command:

                      set comspec=D:\4DOS.COM

      This variable can be viewed/modified with @SET[SET] or @ESET[ESET].

(Also see the @4StartPath[4StartPath] and @AutoExecPath[AutoExecPath] INI directives).

    (Select this @>4DOSME /K=COMSPEC[link] to view the current contents of this variable)

÷PATH %PATH  (Environment Variable)

    ^B%PATH^b tells 4DOS where to search for executable files (.COM, .EXE, .BTM
      and .BAT) not in the current directory.  Some applications also use
      the ^B%PATH^b variable to find their files.
      (see the @αPATH[@PATH function] and the @PATH[PATH command]).

      This variable can be viewed/modified with @SET[SET] or @ESET[ESET].

    (Select this @>4DOSME /K=PATH[link] to view the current contents of this variable)

TEMP %TEMP  (Environment Variable)

    ^B%TEMP^b specifies where 4DOS should put the temporary pipe files if the
      variable @TEMP4DOS[%TEMP4DOS] doesn't exist.
      (see @REDIRECTION[Redirection & Piping]).

      This variable can be viewed/modified with @SET[SET] or @ESET[ESET].

    (Select this @>4DOSME /K=PATH[link] to view the current contents of this variable)

TEMP4DOS %TEMP4DOS  (Environment Variable)

    ^B%TEMP4DOS^b specifies where 4DOS should put the temporary pipe files
      (see @REDIRECTION[Redirection & Piping] and @TEMP[%TEMP]).

      This variable can be viewed/modified with @SET[SET] or @ESET[ESET].

    (Select this @>4DOSME /K=TEMP4DOS[link] to view the current contents of this variable)

_4VER %_4VER  (Internal Variable)

    ^B%_4VER^b returns the 4DOS version number (for example, 4.0).

_ALIAS %_ALIAS  (Internal Variable)

    ^B%_ALIAS^b is the free space in the @ALIAS[alias] list, in bytes.

(Also see the "@Alias[Alias]" INI directive).

_ANSI %_ANSI  (Internal Variable)

    ^B%_ANSI^b is 1 if there is an @ANSI[ANSI] device driver loaded.

_BATCH %_BATCH  (Internal Variable)

    ^B%_BATCH^b is the current batch nesting level (^B0^b if not in a batch file).

_BG %_BG  (Internal Variable)

    ^B%_BG^b is a string containing the screen background color at the current
      cursor position.

_BOOT %_BOOT  (Internal Variable)

    ^B%_BOOT^b returns the boot disk (for example, C).

_CDPATH %_CDPATH  (Environment Variable)

      (see @CDPATH[%CDPATH]).

_CODEPAGE %_CODEPAGE  (Internal Variable)

    ^B%_CODEPAGE^b is the current code page number.

_COLUMN %_COLUMN  (Internal Variable)

    ^B%_COLUMN^b is the current cursor column. (see @_COLUMNS[%_COLUMNS]).

_COLUMNS %_COLUMNS  (Internal Variable)

    ^B%_COLUMNS^b is the current number of screen columns. (See @_COLUMN[%_COLUMN]).

_CPU %_CPU  (Internal Variable)

    ^B%_CPU^b is the CPU type:
         ^B86^b  8086 and 8088
        ^B186^b  80186 and 80188
        ^B200^b  NEC V20 and V30
        ^B286^b  80286
        ^B386^b  80386
        ^B486^b  80486

_CWD %_CWD  (Internal Variable)

    ^B%_CWD^b is the current directory in the format d:\pathname. (see @_CWDS[%_CWDS]).

_CWDS %_CWDS  (Internal Variable)

    ^B%_CWDS^b has the same value as @_CWD[%_CWD], except it ensures the pathname ends in
      a backslash (\).

_CWP %_CWP  (Internal Variable)

    ^B%_CWP^b is the current directory in the format \pathname. (see @_CWPD[%_CWPS]).

_CWPS %_CWPS  (Internal Variable)

    ^B%_CWPS^b has the same value as @_CWP[%_CWP], except it ensures the pathname ends in
      a backslash (\).

_DATE %_DATE  (Internal Variable)

    ^B%_DATE^b contains the current system date, in the format mm-dd-yy (U.S.),
      dd-mm-yy (Europe), or yy-mm-dd (Japan).

(Also see @_DOW[%_DOW], @DATE[DATE] and @CHCP[CHCP]).

_DISK %_DISK  (Internal Variable)

    ^B%_DISK^b is the current disk (for example, C).

_DOS %_DOS  (Internal Variable)

    ^B%_DOS^b is the operating system type (^BDOS^b or ^BOS2^b).  This is useful
      if you have .BTM files running in both modes.

_DOSVER %_DOSVER  (Internal Variable)

    ^B%_DOSVER^b is the current MS-DOS version (for example, 3.3).

_DOW %_DOW  (Internal Variable)

    ^B%_DOW^b is the current day (^BMon^b, ^BTue^b, ^BWed^b, etc.).

(Also see the @DATE[DATE] command and the @_DATE[%_DATE] variable).

_DV %_DV  (Internal Variable)

    ^B%_DV^b returns a ^B1^b if Quarterdeck's DESQview is loaded.

_ENV %_ENV  (Internal Variable)

    ^B%_ENV^b is the free space in the environment, in bytes.
variables
(Also see the "@Environment[Environment]=" and "@EnvFree[EnvFree=]" INI directives).

_FG %_FG  (Internal Variable)

    ^B%_FG^b is a string containing the screen foreground color at the current
      cursor position.

_LASTDISK %_LASTDISK  (Internal Variable)

    ^B%_LASTDISK^b returns the last disk on the system (^BA^b - ^BZ^b).

_MONITOR %_MONITOR  (Internal Variable)

    ^B%_MONITOR^b is the monitor type (^BMONO^b or ^BCOLOR^b).

_MOUSE %_MOUSE  (Internal Variable)

    ^B%_MOUSE^b returns ^B1^b if a mouse is installed.

_NDP %_NDP  (Internal Variable)

    ^B%_NDP^b is the coprocessor type, returned as a string:
          ^B0^b  no coprocessor is installed
         ^B87^b  8087
        ^B287^b  80287
        ^B387^b  80387 or 80486

_ROW %_ROW  (Internal Variable)

    ^B%_ROW^b is the current cursor row. (see @_ROWS[%_ROWS]).

_ROWS %_ROWS  (Internal Variable)

    ^B%_ROWS^b is the current number of screen rows. (see @_ROW[%_ROW]).

_SHELL %_SHELL  (Internal Variable)

    ^B%_SHELL^b is the current shell nesting level (in swapping mode).  The
      root shell is ^B0^b.  If you are not in swapping mode, ^B%_SHELL^b returns ^B99^b.

(Aloso see the @SWAPPING[SWAPPING] command and the "@Swapping[Swapping=]" INI directive).

_TIME %_TIME  (Internal Variable)

    ^B%_TIME^b contains the current system time in the format hh:mm:ss.  The
      separator character may vary depending upon your country information.
      (See @TIME[TIME] and @CHCP[CHCP])

_TRANSIENT %_TRANSIENT  (Internal Variable)

    ^B%_TRANSIENT^b returns a ^B1^b if the current shell is transient (started
      with a ^B/C^b).

_VIDEO %_VIDEO  (Internal Variable)

    ^B%_VIDEO^b is the video card type (^BMONO^b, ^BCGA^b, ^BEGA^b, or ^BVGA^b).

_WIN %_VIDEO  (Internal Variable)

    ^B%_WIN^b returns the current Microsoft Windows mode:
          ^B0^b  Windows not loaded
          ^B1^b  Windows 2.x
          ^B2^b  Windows 3.x 386 Enhanced mode
          ^B3^b  Windows 3.x Real or Standard mode
         ^^B20^b  OS/2 2.x DOS box

FUNCTIONS Variable Functions

@FUNCTIONS%Functions Index[Variable Functions] are pseudo-variables which take one or more arguments
(which can themselves be environment variables or variable functions), and
return a value.  The variable function name must be preceded by a ^B%^b
(^B%@@eval^b, ^B%@@len^b, etc.).

Some functions return the number of bytes, kilobytes, or megabytes based
on a "^Bb|k|m^b" argument:
    ^Bb^b  bytes
    ^Bk^b  bytes / 1000
    ^BK^b  kilobytes (bytes / 1024)
    ^Bm^b  bytes / 1,000,000
    ^BM^b  megabytes (bytes / 1,048,576)

All variable functions must have square brackets ("^B[]^b) enclosing their argument(s).


		          ^B Functions Index ^b

    @αALIAS[%@@ALIAS]           @αASCII[%@@ASCII]            @αATTRIB[%@@ATTRIB]            @CHAR[%@@CHAR]
    @αDATE[%@@DATE]            @DESCRIPT[%@@DESCRIPT]         @DEVICE[%@@DEVICE]            @DISKFREE[%@@DISKFREE]
    @DISKTOTAL[%@@DISKTOTAL]       @DISKUSED[%@@DISKUSED]         @DOSMEM[%@@DOSMEM]            @EMS[%@@EMS]
    @EVAL[%@@EVAL]            @EXEC[%@@EXEC]             @EXT[%@@EXT]               @EXTENDED[%@@EXTENDED]
    @FILEDATE[%@@FILEDATE]        @FILESIZE[%@@FILESIZE]         @FILETIME[%@@FILETIME]          @FULL[%@@FULL]
    @INDEX[%@@INDEX]           @INT[%@@INT]              @αLABEL[%@@LABEL]             @LEN[%@@LEN]
    @LINE[%@@LINE]            @LINES[%@@LINES]            @LOWER[%@@LOWER]             @LPT[%@@LPT]
    @MAKEDATE[%@@MAKEDATE]        @MAKETIME[%@@MAKETIME]         @NAME[%@@NAME]              @αPATH[%@@PATH]
    @READSCR[%@@READSCR]         @READY[%@@READY]            @REMOTE[%@@REMOTE]            @REMOVABLE[%@@REMOVABLE]
    @SEARCH[%@@SEARCH]          @αSELECT[%@@SELECT]           @SUBSTR[%@@SUBSTR]            @αTIME[%@@TIME]
    @αTRUENAME[%@@TRUENAME]        @UNIQUE[%@@UNIQUE]           @UPPER[%@@UPPER]             @WORD[%@@WORD]
    @XMS[%@@XMS]

αALIAS %@ALIAS[]  (Function)

    ^B%@@ALIAS[name]^b returns the @ALIAS[alias] argument for the specified name.

      (see the @ALIAS[ALIAS Command]).

αASCII %@ASCII[]  (Function)

    ^B%@@ASCII[c]^b returns the @>SUPPORT^ASCII[ASCII] value of the specified character.

αATTRIB %@ATTRIB[]  (Function)

    ^B%@@ATTRIB[filename,attrib]^b returns a ^B1^b if the specified file
      has the matching attribute(s), ^B0^b otherwise.  The attributes are:
        ^2N^0  Normal (no attribute bits set)
        ^2R^0  Read-only
        ^2H^0  Hidden
        ^2S^0  System
        ^2D^0  Directory
        ^2A^0  Archive
      The attributes (other than ^2N^0) can be combined; ^BATTRIB^b will
      only return a ^B1^b if _all_ the attributes match.
      (see the @ATTRIB[ATTRIB Command]).

CHAR %@CHAR[]  (Function)

    ^B%@@CHAR[n]^b returns the character for the specified @>SUPPORT^ASCII[ASCII] value.

αDATE %@DATE[]  (Function)

    ^B%@@DATE[mm/dd/yy]^b returns the number of days since 1/1/80 for the
      specified date.  ^BDATE^b will use the date format mandated by your
      country code (dd/mm/yy in Europe; yy/mm/dd in Japan).
      (see the @MAKEDATE[@MAKEDATE] function, the @_DATE[%_DATE variable] and
      the @DATE[DATE command]).

DESCRIPT %@DESCRIPT[]  (Function)

    ^B%@@DESCRIPT[filename]^b returns the file's description.

DEVICE %@DEVICE[]  (Function)

    ^B%@@DEVICE[name]^b returns a ^B1^b if the specified name is a character device.

DISKFREE %@DISKFREE[]  (Function)

    ^B%@@DISKFREE[d:,b|k|m]^b returns the free disk space for the specified
      drive, in bytes, kilobytes, or megabytes.

DISKTOTAL %@DISKTOTAL[]  (Function)

    ^B%@@DISKTOTAL[d:,b|k|m]^b returns the total disk space for the specified
      drive, in bytes, kilobytes, or megabytes.

DISKUSED %@DISKUSED[]  (Function)

    ^B%@@DISKUSED[d:,b|k|m]^b returns the disk space used on the specified
      drive, in bytes, kilobytes, or megabytes.

DOSMEM %@DOSMEM[]  (Function)

    ^B%@@DOSMEM[b|k|m]^b returns the free MS-DOS memory in bytes, kilobytes,
      or megabytes.

EMS %@EMS[]  (Function)

    ^B%@@EMS[b|k|m]^b returns the free EMS memory in bytes, kilobytes, or
      megabytes.

EVAL %@EVAL[]  (Function)

    ^B%@@EVAL[expression]^b evaluates an arithmetic expression.  It supports
      addition (^B+^b), subtraction (^B-^b), multiplication (^B*^b), division (^B/^b), and
      modulo (^B%%^b).  The expression can contain environment variables,
      including other variable functions.  ^BEVAL^b supports commas and
      decimal places; the maximum size is 16.8 (16 integer and 8 decimal
      places).  ^BEVAL^b strips leading and trailing zeros from the result.

EXEC %@EXEC[]  (Function)

    ^B%@@EXEC[command]^b executes the command and returns its exit code.
      The command can be an alias, an internal 4DOS command, or an external
      program or batch file.  This is a back door entry to 4DOS command
      processing -- ^B^Kuse with caution!^k^b

EXT %@EXT[]  (Function)

     ^B%@@EXT[filename]^b returns the file extension (without a leading period).

EXTENDED %@EXTENDED[]  (Function)

    ^B%@@EXTENDED[b|k|m]^b returns the amount of extended memory in bytes,
      kilobytes, or megabytes.

FILEDATE %@FILEDATE[]  (Function)

    ^B%@@FILEDATE[filename]^b returns the last modified date of the file, in
      the default country format (mm-dd-yy for US).

FILESIZE %@FILESIZE[]  (Function)

    ^B%@@FILESIZE[filename,b|k|m]^b returns the size of the file in bytes,
      kilobytes, or megabytes.

FILETIME %@FILETIME[]  (Function)

    ^B%@@FILETIME[filename]^b returns the last modified time of the file, in
      hh:mm format.

FULL %@FULL[]  (Function)

    ^B%@FULL[filename]^b returns the fully qualified path name.

INDEX %@INDEX[]  (Function)

    ^B%@@INDEX[string1,string2]^b returns the position of string2 within
      string1, or ^B-1^b if string2 is not found.  The first position in
      string1 is ^B0^b.


	^1Other Links into this File:^0
	───────────────────────────
	^1Index of^0 @≈INDEX[Chapters]               @VARIABLES%Variables Index[Variables] ^1Index^0
	@FUNCTIONS%Functions[Functions] ^1Index^0                 @COMMANDS%Commands Index[Commands & Keywords] ^1Index^0
        ^1Index of^0 @DIRECTIVES[4DOS.INI Directives]

INT %@INT[]  (Function)

    ^B%@@INT[n]^b returns the integer part of "^Bn^b".  See @αEVAL[%@@EVAL].

αLABEL %@LABEL[]  (Function)

    ^B%@@LABEL[d:]^b returns the volume label of the specified disk.

     (see the @LABEL[LABEL command]).

LEN %@LEN[]  (Function)

    ^B%@@LEN[string]^b returns the length of the string.

LINE %@LINE[]  (Function)

    ^B%@@LINE[filename,n]^b returns line "^Bn^b" from the specified file.  If you
      specify "^BCON^b" for the filename, it will read from standard input.

      (see @LINES[@@LINES]).

LINES %@LINES[]  (Function)

    ^B%@@LINES[filename]^b returns the number of lines in the specified file,
      base ^B0^b.  If there are no lines, it returns ^B-1^b.

      (see @LINE[@@LINE]).

LOWER %@LOWER[]  (Function)

    ^B%@@LOWER[string]^b returns the string converted to lower case.

LPT %@LPT[]  (Function)

    ^B%@@LPT[n]^b returns a ^B1^b if the specified printer (n = ^B1^b, ^B2^b or ^B3^b) is ready,
      ^B0^b otherwise.

MAKEDATE %@MAKEDATE[]  (Function)

    ^B%@@MAKEDATE[n]^b returns the date, given the number of days since 1/1/80.

     (see the @αDATE[@DATE] function).

MAKETIME %@MAKETIME[]  (Function)

    ^B%@@MAKETIME[n]^b returns the time, given the number of seconds since
      midnight.

      (see the @αTIME[@TIME] function).

NAME %@NAME[]  (Function)

    ^B%@@NAME[filename]^b returns the filename only (no path or extension).

αPATH %@PATH[]  (Function)

    ^B%@PATH[filename]^b returns the path only, including the trailing
      backslash.

      (see the @÷PATH[%PATH variable] and the @PATH[PATH Command]).

READSCR %@READSCR[]  (Function)

    ^B%@@READSCR[row,column,length]^b returns the text on the screen at the
      specified row and column, for the specified length.

READY %@READY[]  (Function)

    ^B%@@READY[d:]^b returns a ^B1^b if the specified drive is ready.

REMOTE %@REMOTE[]  (Function)

    ^B%@@REMOTE[d:]^b returns a ^B1^b if the specified drive is remote (LAN).

REMOVABLE %@REMOVABLE[]  (Function)

    ^B%@@REMOVABLE[d:]^b returns a ^B1^b if the specified drive is removable.

SEARCH %@SEARCH[]  (Function)

    ^B%@@SEARCH[filename]^b searches for the filename using the @÷PATH[%PATH]
      environment variable, appending an extension (.COM, .EXE, .BAT,
      .BTM, or executable extension) if one wasn't specified.

αSELECT %@SELECT[]  (Function)

    ^B%@@SELECT[filename,top,left,bottom,right,title]^b displays the file
      as a popup selection list.  If you press ^BEnter^b, it returns the
      string highlighted by the selection bar; if you press ^BEsc^b it returns
      an empty string.
      (see the @SELECT[SELECT Command])

SUBSTR %@SUBSTR[]  (Function)

    ^B%@@SUBSTR[string,start,length]^b returns a substring, starting at the
      position "start" and continuing for "length" characters.  If the
      length is negative, the start is relative to the right side.  If
      the length isn't specified, ^BSUBSTR^b will return the remainder of
      the string.  For example, ^B%@@SUBSTR[%_time,0,2]^b gets the current
      time and extracts the hour.  If the string includes commas it must
      be quoted with double quotes or back-quotes (^B"^b or ^B`^b).

αTIME %@TIME[]  (Function)

    ^B%@@TIME[hh:mm:ss]^b returns the number of seconds since midnight for the
      specified time.  The time must be in 24-hour format.
      (see the @MAKETIME[@MAKETIME] function, the @_TIME[%_TIME variable], and
      the @TIME[TIME command]).

αTRUENAME %@TRUENAME[]  (Function)

    ^B%@@TRUENAME[filename]^b returns the true fully expanded name for the
      specified file.  ^BTRUENAME^b will see "through" a @JOIN[JOIN] or @SUBST[SUBST], and
      requires MS-DOS 3.0 or above.
      (see the @TRUENAME[TRUENAME Command]).

UNIQUE %@UNIQUE[]  (Function)

    ^B%@@UNIQUE[d:\path]^b returns a unique filename in the specified drive
      and path.  This function will only work with DOS 3 or higher.

UPPER %@UPPER[]  (Function)

    ^B%@@UPPER[string]^b returns the string converted to upper case.

WORD %@WORD[]  (Function)

    ^B%@@WORD[n,string]^b returns the "^Bn^bth" word in the string (base ^B0^b).  If
      "^Bn^b" is negative, ^BWORD^b starts from the end and counts backwards.

XMS %@XMS[]  (Function)

    ^B%@@XMS[b|k|m]^b returns the free XMS memory in bytes, kilobytes, or
      megabytes.

ANSI ANSI Sequences

The presence of an ANSI driver can be tested with the @÷ANSI[ANSI variable].
(Also see the "@ANSI=[ANSI=]" INI Directive).

This section is a quick-reference to commonly-used @ANSI%Commands[ANSI commands].  This
information is generally applicable to the MS-DOS ^BANSI.SYS^b driver, and
to other ANSI drivers such as ^BFANSI-Console^b, ^BANSI.COM^b, ^BNANSI.SYS^b, etc.

Note that ANSI drivers vary widely in how much of the ANSI Standard they
implement.  See the documentation for the driver you use for more details.

An ^BANSI.SYS^b command string consists of three parts:

    ^BESC[^b        The @>SUPPORT^ASCII[ASCII] character ^BESC^b, followed by a left bracket.
                These two characters must be present in all ANSI strings.

    ^Bparameters^b  Optional parameters for the command.  If there are
                multiple parameters they are separated by semicolons.

    ^Bcmd^b         A single-letter command.  The case of the letter IS
                meaningful.

For example, to position the cursor to row 7, column 12 the ANSI command is:

    ^BESC[7;12H^b

To transmit ANSI commands to the screen with 4DOS, you should use the
@ECHO[ECHO] command.  The ^BESC^b character can be generated by inserting it
into the string directly (if you are putting the string in a batch
file and your editor will insert such a character), or by using
4DOS's internal "escape" character (ctrl-X, appearing as ^B^b) followed
by a lower-case "^Be^b".  For example, the sequence shown above could be
transmitted from a batch file with either of these commands (the first
uses an ^BESC^b character directly; the second uses ^Be^b):

    ^Becho [7;12H^b
    ^Becho e[7;12H^b

You can also include ANSI commands in your prompt, using ^B$e^b to transmit the
^BESC^b character.  You can ^BNOT^b use @PROMPT[PROMPT] to transmit ANSI commands to the
screen from a batch file.


                                  ^BCommands^b

    Command              Description
    ------------------   ---------------------------------------------------
    ^BESC[^brows^BA^b            Cursor up
    ^BESC[^brows^BB^b            Cursor down
    ^BESC[^bcols^BC^b            Cursor right
    ^BESC[^bcols^BD^b            Cursor left
    ^BESC[^brow^B;^bcol^BH^b         Set cursor position (top left is row 1, column 1)
    ^BESC[2J^b               Clear screen
    ^BESC[K^b                Clear from cursor to end of line
    ^BESC[J^b                Clear from cursor to end of screen
    ^BESC[^brow^B;^bcol^Bf^b         Set cursor position, same as "^BH^b" command
    ^BESC[=^bmode^Bh^b           Set display mode; see table of mode values below
    ^BESC[=^bmode^Bl^b           Set display mode; see table of mode values below
    ^BESC[^battr^B;^battr^B;^b...^Bm^b   Set display attributes; see table of attribute
                         values below
    ^BESC[^bkey^B;^bstring^B;^b...^Bp^b  Substitute "string" for the specified key; see key
                         substitutions section below.
    ^BESC[s^b                Save cursor position (may not be nested)
    ^BESC[u^b                Restore cursor position after a save


                             ^BDisplay Attributes^b

    Attribute      Description
    ---------      ---------------------------------------------------
        ^B0^b          All attributes off (normal white on black)
        ^B1^b          High intensity (bold)
        ^B2^b          Normal intensity
        ^B4^b          Underline (usually effective only on monochrome displays)
        ^B5^b          Blinking
        ^B7^b          Reverse Video
        ^B8^b          Invisible
        ^B30^b-^B37^b      Set the foreground color:
                     ^B30^b=Black   ^B31^b=Red       ^B32^b=Green   ^B33^b=Yellow
                     ^B34^b=Blue    ^B35^b=Magenta   ^B36^b=Cyan    ^B37^b=White
        ^B40^b-^B47^b      Set the background color, same values as above but
                   substitute ^B40^b for ^B30^b etc.

Settings are cumulative, so (for example) to set bright red foreground set
all attributes off, then set red, then bold:  ^Becho [0;31;1m^b.


                               ^BDisplay Modes^b

    Mode           Description
    ----           ---------------------------------------------------
     ^B0^b             Text 40x25 monochrome
     ^B1^b             Text 40x25 color
     ^B2^b             Text 80x25 monochrome
     ^B3^b             Text 80x25 color
     ^B4^b             Graphics 320x200 4-color
     ^B5^b             Graphics 320x200 4-color
     ^B6^b             Graphics 640x200 2-color
     ^B7^b             (cursor wrap kludge)

Mode ^B7^b is an unfortunate kludge; Setting mode ^B7^b with an "^Bh^b" command tells
ANSI to wrap text to the next line when it passes the end of a line; setting
mode ^B7^b with an "^Bl^b" (lower-case L) command tells ANSI not to wrap text.  For
all other modes the "^Bh^b" and "^bl^b" commands are equivalent.


                             ^BKey Substitutions^b

The key substitutions ("^Bp^b") command causes ANSI to substitute the text in
"string" when the specified key is pressed.  The key code can be a single
character in quotes, a numeric @>SUPPORT^ASCII[ASCII] value, or an extended code for a non
ASCII key (e.g. function or cursor keys) in the form ^B0;n^b, where ^Bn^b is the scan
code for the key.

The string to be substituted can be a single character or character string
in quotes, a numeric @>SUPPORT^ASCII[ASCII] value, or an extended key code.

Key substitutions set up with your ANSI driver will be in effect for 4DOS and
for any other program which uses MS-DOS to read the keyboard.

To clear a key substitution, "substitute" the original key for itself (see
examples).


                                  ^BExamples^b

Clear the display attributes, then set the display to bright cyan on blue,
and clear the screen:

    ^Becho e[0;44;36;1me[2J^b

Substitute ^B"dir"<cr>^b for ^BF4^b:

    ^Becho e[0;62;"dir";13p^b

Undo the above substitution:

    ^Becho e[0;62;0;62p^b

Set up a prompt which saves the cursor position, displays the 4DOS shell
level, date, and time on the top line in bright white on magenta, and then
restores the cursor position and sets the color to bright cyan on blue, and
displays the standard prompt:

    ^Bprompt $e[s$e[1;1f$e[0;45;37;1m$e[K($z)   $d   $t$e[u$e[0;44;36;1m$p$g^b

COLORS Color Attributes and Names

Several 4DOS commands accept color directives of the form:

               ^B[bright][blink] fg [ON bg] [BORDER bc]^b

where ^Bfg^b is the foreground color, ^Bbg^b the background color, and ^Bbc^b" is the
border color (not available on all display adapters and screen modes).

Only the first three characters of the color names and attributes ("^2bri^0^Bght^b",
"^2bli^0^Bnk^b" and "^2BOR^0^Bder^b") are required.

The available color names are:

    ^2Bla^0^Bck^b      ^2Blu^0^Be^b      ^2Gre^0^Ben^b      ^2Red^0
    ^2Mag^0^Benta^b    ^2Cya^0^Bn^b      ^2Yel^0^Blow^b     ^2Whi^0^Bte^b

Also see @ANSI[ANSI], @COLORDIR[%COLORDIR], and related topics.

EXITCODE Exit Code

When an internal command or external program finishes, it returns a result
called the @EXITCODE[exit code].  4DOS's @CONDITIONAL[conditional commands] allow you
to perform tasks based upon the previous command's exit code.

4DOS internal commands return the following exit codes:

	^B0^b - normal (successful) exit
	^B1^b - usage/syntax error
	^B2^b - other error (DOS errors)
	^B3^b - terminated with a Cltr-C or Ctrl-Break

Most external programs return a ^B0^b if they are successful and a non-zero
value if they encounter an error.

     (see @÷?[%?], @_?[%_?], and @IF%ERRORLEVEL[ERRORLEVEL]).

&& &&  "AND" Conditional Command

     (see @CONDITIONAL%&&[Conditional Commands]).

|| ||  "OR" Conditional Command

     (see @CONDITIONAL%||[Conditional Commands]).

CONDITIONAL Conditional Commands

     If you separate two commands by ^B&&^b (AND), the second command
     will be executed only if the first returns an ^Bexit code^b of ^B0^b.
     For example, the following command will only erase files if
     the BACKUP operation succeeds:

              c:\> backup c:\ a: && del c:\*.bak;*.lst

    If you separate two commands by ^B||^b (OR), the second command
    will be executed only if the first returns a non-zero ^Bexit
    code^b.  For example, if the following BACKUP operation fails,
    then ECHO will display a message:

            c:\> backup c:\ a: || echo Error in the backup!

    All 4DOS internal commands return an explicit @EXITCODE[exit code], but
    not all application programs do.  Conditional commands will
    behave unpredictably if you use them with programs which do
    not return an explicit exit code.

INCLUDE Include Lists

         Any 4DOS command that accepts multiple filenames can also
         accept one or more include lists.  An include list is simply a
         group of filenames, with or without @WILDCARDS[wildcards], separated by
         semi-colons [^B;^b].  All files in the include list must be in the
         same directory.  You may not add a space on either side of the
         semi-colon.

	 Examples are:

              c:\> copy *.txt;*.doc a:
              c:\> copy a:\details\*.txt;*.doc c:

         Include lists are similar to multiple filenames, but have
         three important differences.  First, you don't have to repeat
         the path to your files if you use an include list, because all
         of the included files must be in the same directory.  Second,
         if you use include lists, you aren't as likely to accidentally
         overwrite files if you forget a destination path for commands
         like COPY, because the last name in the list will be part of
         the include list, and won't be seen as the destination file
         name.  Include lists can only be used as the source parameter
         (the location files are coming from) for @COPY[COPY] and other
         similar commands.  They cannot be used to specify a
         destination for files.

         Third, multiple filenames and include lists are processed
         differently by the 4DOS @DIR[DIR] and @SELECT[SELECT] commands.  If you use
         multiple filenames, all of the files matching the first
         filename are processed, then all of the files matching the
         second name, and so on.  When you use an include list, all
         files that match any entry in the include list are processed
         together, and will appear together in the directory display or
         SELECT list.  You can see this difference most clearly if you
         experiment with both techniques and the DIR command.  For
         example,

                   c:\> dir *.txt *.doc

         will list all the .TXT files with a directory header, the file
         list, and a summary of the total number of files and bytes
         used.  Then it will do the same for the .DOC files.  However,

                   c:\> dir *.txt;*.doc

         will display all the files in one list.

         Like extended @WILDCARDS[wildcards] and multiple filenames, the 4DOS
         ^Binclude list^b feature will work with internal 4DOS commands
         but not with external programs unless they have been programmed
         especially to parallel 4DOS's features.

REDIRECTION Redirection & Piping

DOS assumes input comes from the keyboard and output goes to the display.
The keyboard is referred to as standard input, and the display is referred
to as standard output.  You can change the default standard input and
standard output by using the ^B<^b and ^B>^b symbols on the command line.  4DOS
also allows you to redirect the standard error by appending an ^B&^b character.

To get standard input from a file instead of the keyboard:

    ^B<^b filename

To redirect standard output to a file:

    ^B>^b filename

To redirect standard output and standard error to a file:

    ^B>&^b filename

To redirect standard error only to a file:

    ^B>&>^b filename

To append standard output or standard error to a file, use "^B>>^b" in place of
the first ^B>^b.  If @SETDOS%NOCLOBBER[NOCLOBBER] is set, the file must exist before it can be
appended to (unless overridden by a ^B!^b).  Otherwise, 4DOS will create the
file.

To send the standard output of "cmd1" to the standard input of "cmd2":

    cmd1 ^B|^b cmd2

To send the standard output and standard error of "cmd1" to the standard
input of "cmd2":

    cmd1 ^B|&^b cmd2

4DOS creates temporary files to hold the output of the pipes.  The default
directory for these temporary files is the root directory of the boot
drive, but this can be overridden with the @TEMP4DOS[TEMP4DOS] or @TEMP[TEMP] environment
variables (see @VARIABLES[VARIABLES]).

GROUPING Command Grouping

Command grouping allows you to logically group a set of commands together
by enclosing them with parentheses.  For example, this grouping:

    ^B(^bglobal /iq echo %_cwd^B)^b > dirlist

allows you to redirect all output from @GLOBAL[GLOBAL] to the specified file.  The
following command will take the output of @DIR[DIR] and @TYPE[TYPE], sort the whole
mess, and save it in the file AZ:

    ^B(^bdir *.com ^^ type autoexec.bat^B)^b | sort > AZ

To group commands, the first character of the command must begin with a
'^B(^b'.  Note that if you have a close parenthesis '^B)^b' in a filename, you'll
need to "escape" it to keep 4DOS from assuming it's the end of the command
group.

You can also use command grouping to split commands over several lines.
For example:

    for %x in (*.c) do ^B(^b
        echo %x
        dir *.c
    ^B)^b

WILDCARDS Wildcards

Wildcards let you specify a file or group of files by typing a partial
filename.  4DOS scans the appropriate directory to find all of the files
that match the partial name you have specified.

Most 4DOS commands accept filenames with wildcards anywhere that a full
filename can be used.  4DOS recognizes 2 wildcard characters, the asterisk
[^B*^b] and the question mark [^B?^b], plus a special method of specifying a range
of permissible characters.  You can combine various wildcard types in a
single filename.  Note that 4DOS wildcard extensions are not interpreted
properly by most external programs, so when passing file names to external
programs you must continue to use the traditional wildcard syntax.

An asterisk [^B*^b] in a filename means "any zero or more characters in this
position."  Normally, DOS (and COMMAND.COM) only allows trailing asterisks
(it will ignore any characters following an asterisk until the end of the
filename or extension).  4DOS allows both leading and trailing asterisks.
For example, to get a directory of all files beginning with "ab":

    ^Bdir ab*.*^b

To get a directory of all files with an "ab" somewhere in the filename:

    ^Bdir *ab*.*^b

A question mark [^B?^b] matches any single filename character.  A ^B?^b doesn't
require that a character exist if it's at the end of the filename or
extension.

4DOS 4.0 includes a new wildcard type.  It acts like a ^B?^b except that it
always requires a character to be in that position, and it allows
you to specify ranges or exclude specific characters.  The square brackets
^B[]^b delimit the set of characters to be tested.  If you enter a "^B!^b" as the
first character following the left bracket, the test is reversed (only
return names that DON'T match).  If you list several characters (i.e.,
^B[abc]^b) 4DOS will return those filenames that have any of those characters
in the specified position.  If you separate two characters with a dash (^B-^b)
4DOS will return those filenames that have a character equal to or greater
than the first character, and less than or equal to the second character.

For example, to get a directory of all filenames with either a "p" or "q"
as the first letter of the filename:

    ^Bdir [pq]*.*^b

To get a directory of all filenames beginning with a number from
1 to 6, or the letters "a" or "b", and ending with a "9":

    ^Bdir [1-6ab]*[9].*^b

KEYS Key Names & Scan Codes


(see @ALIAS[ALIAS], @INKEY[INKEY], @INPUT[INPUT] and @KEYSTACK[KEYSTACK]).

			 @KEYS%Key Names[Key Names]

          (see below for @KEYS%Scan Codes and Key Codes[Scan Codes / Key Codes])

The format for a key name is:  [Prefix^B-^b]Keyname.  The prefix and key name
must be separated by a ^Bdash^b.  The prefix can be left out, or it can be
any of the following:

        ^BAlt^b     followed by A - Z, 0 - 9, F1 - F12, or Bksp
        ^BCtrl^b    followed by A - Z, F1 - F12, Bksp, Enter,
                Left, Right, Home, End, PgUp, PgDn, Ins, or Del
        ^BShift^b   followed by F1 - F12 or Tab.

The possible key names are:

        ^BA^b - ^BZ       Esc         Up          PgUp^b
        ^B0^b - ^B9       Bksp        Down        PgDn^b
        ^BF1^b - ^BF12    Tab         Left        Home^b
        ^BIns         Enter       Right       End^b
        ^BDel^b

Examples:

	 Ctrl-Home
	 Shift-F1
	 Alt-Q
	 Enter


	                 @KEYS%Scan Codes[Scan Codes and Key Codes]

                        (see above for @KEYS%Key Names[Key Names])

Please refer to your 4DOS documentation for details on the following charts.
Note that your BIOS may not report all key combinations.

	   ^BScan Codes and Key Codes for Top Two Keyboard Rows^b
              (also see @KEYS%Bottom Two Keyboard Rows[Bottom Two Rows] and @KEYS%Keypad and Function Keys[Keypad/F-Keys])

                                    Shift  Shift  Ctrl   Ctrl   Alt
           Key Cap    Scan   ASCII  Scan   ASCII  Scan   ASCII  Scan
           Symbol     Code   Code   Code   Code   Code   Code   Code
           -------    -----  -----  -----  -----  -----  -----  -----
           Esc        1      27     1      27     1      27     1
           1  !       2      49     2      33                   120
           2  @@       3      50     3      64     3      0      121
           3  #       4      51     4      35                   122
           4  $       5      52     5      36                   123
           5  %       6      53     6      37                   124
           6  ^^       7      54     7      94     7      30     125
           7  &       8      55     8      38                   126
           8  *       9      56     9      42                   127
           9  (       10     57     10     40                   128
           0  )       11     48     11     41                   129
           -  _       12     45     12     95     12     31     130
           =  +       13     61     13     43                   131
           Backspace  14     8      14     8      14     127    14
           Tab        15     9      15     0      148    0      165
           Q          16     113    16     81     16     17     16
           W          17     119    17     87     17     23     17
           E          18     101    18     69     18     5      18
           R          19     114    19     82     19     18     19
           T          20     116    20     84     20     20     20
           Y          21     121    21     89     21     25     21
           U          22     117    22     85     22     21     22
           I          23     105    23     73     23     9      23
           O          24     111    24     79     24     15     24
           P          25     112    25     80     25     16     25
           [  {       26     91     26     123    26     27     26
           ]  }       27     93     27     125    27     29     27
           Enter      28     13     28     13     28     10     28


	  ^BScan Codes and Key Codes for Bottom Two Keyboard Rows^b
                (also see @KEYS%Top Two Keyboard Rows[Top Two Rows] and @KEYS%Keypad and Function Keys[Keypad/F-Keys])

                                    Shift  Shift  Ctrl   Ctrl   Alt
           Key Cap    Scan   ASCII  Scan   ASCII  Scan   ASCII  Scan
           Symbol     Code   Code   Code   Code   Code   Code   Code
           -------    -----  -----  -----  -----  -----  -----  -----
           A          30     97     30     65     30     1      30
           S          31     115    31     83     31     19     31
           D          32     100    32     68     32     4      32
           F          33     102    33     70     33     6      33
           G          34     103    34     71     34     7      34
           H          35     104    35     72     35     8      35
           J          36     106    36     74     36     10     36
           K          37     107    37     75     37     11     37
           L          38     108    38     76     38     12     38
           ;  :       39     59     39     58                   39
           '  "       40     39     40     34                   40
           `  ~       41     96     41     126                  41
           \  |       43     92     43     124    43     28     43
           Z          44     122    44     90     44     26     44
           X          45     120    45     88     45     24     45
           C          46     99     46     67     46     3      46
           V          47     118    47     86     47     22     47
           B          48     98     48     66     48     2      48
           N          49     110    49     78     49     14     49
           M          50     109    50     77     50     13     50
           ,  <       51     44     51     60                   51
           .  >       52     46     52     62                   52
           /  ?       53     47     53     63                   53
           Space      57     32     57     32     57     32     57


	  ^BScan Codes and Key Codes for Keypad and Function Keys^b
             (also see @KEYS%Top Two Keyboard Rows[Top Two Rows] and @KEYS%Bottom Two Keyboard Rows[Bottom Two Rows])

                                    Shift  Shift  Ctrl   Ctrl   Alt
           Key Cap    Scan   ASCII  Scan   ASCII  Scan   ASCII  Scan
           Symbol     Code   Code   Code   Code   Code   Code   Code
           -------    -----  -----  -----  -----  -----  -----  -----
           F1         59     0      84     0      94     0      104
           F2         60     0      85     0      95     0      105
           F3         61     0      86     0      96     0      106
           F4         62     0      87     0      97     0      107
           F5         63     0      88     0      98     0      108
           F6         64     0      89     0      99     0      109
           F7         65     0      90     0      100    0      110
           F8         66     0      91     0      101    0      111
           F9         67     0      92     0      102    0      112
           F10        68     0      93     0      103    0      113
           F11        133    0      135    0      137    0      139
           F12        134    0      136    0      138    0      140
           np *       55     42     55     42     150    0      55
           np Home    71     0      71     55     119    0
           cp Home    71     224    71     224    119    224    151
           np Up      72     0      72     56     141    0
           cp Up      72     224    72     224    141    224    152
           np PgUp    73     0      73     57     132    0
           cp PgUp    73     224    73     224    132    224    153
           np Minus   74     45     74     45     142    0      74
           np Left    75     0      75     52     115    0
           cp Left    75     224    75     224    115    224    155
           np 5       76     0      76     53     143    0
           np Right   77     0      77     54     116    0
           cp Right   77     224    77     224    116    224    157
           np Plus    78     43     78     43     144    0      78
           np End     79     0      79     49     117    0
           cp End     79     224    79     224    117    224    159
           np Down    80     0      80     50     145    0
           cp Down    80     224    80     224    145    224    160
           np PgDn    81     0      81     51     118    0
           cp PgDn    81     224    81     224    118    224    161
           np Ins     82     0      82     48     146    0
           cp Ins     82     224    82     224    146    224    162
           np Del     83     0      83     46     147    0
           cp Del     83     224    83     224    147    224    163
           np /       224    47     224    47     149    0      164
           np Enter   224    13     224    13     224    10     166


COMMANDS Commands & Keywords (1 of 2)

^1Note:^0  Commands shown as "^BExternal MS-DOS^b" may not be implemented in all
       DOS versions, and/or may have a different syntax on your system.
       Under MS-DOS 5+, external commands usually support an ^2/H^0 switch
       to display that command's syntax.

                            ^B Commands Index ^b

^1(more^0@COMMANDS2[  ]^1)^0

    @?[!?]              @ALIAS[!ALIAS]          @APPEND[APPEND]         @ASSIGN[ASSIGN]         @ATTRIB[ATTRIB]
    @BACKUP[!BACKUP]         @BEEP[BEEP]           @BREAK[BREAK]          @CALL[!CALL]           @CANCEL[CANCEL]
    @CD[CD]             @CDD[CDD]            @CHCP[CHCP]           @CD%CHDIR[CHDIR]          @CHKDSK[CHKDSK]
    @CLS[CLS]            @COLOR[COLOR]          @COMP[COMP]           @COPY[COPY]           @CTTY[CTTY]
    @DATE[!DATE]           @DEL[DEL]            @DELAY[DELAY]          @DESCRIBE[DESCRIBE]       @DIR[DIR]
    @DIRS[DIRS]           @DISKCOMP[DISKCOMP]       @DISKCOPY[DISKCOPY]       @FOR%DO[DO]             @DRAWBOX[DRAWBOX]
    @DRAWHLINE[!DRAWHLINE]      @DRAWVLINE[DRAWVLINE]      @ECHO[!ECHO]           @ECHOS[ECHOS]          @EDIT[EDIT]
    @IFF%ELSE[ELSE]           @IFF%ELSE[ELSEIFF]        @IFF%ENDIFF[ENDIFF]         @ENDLOCAL[ENDLOCAL]       @DEL%ERASE[ERASE]
    @ESET[ESET]           @EXCEPT[EXCEPT]         @EXIT[EXIT]           @FASTOPEN[!FASTOPEN]       @FC[FC]
    @FIND[FIND]           @FOR[FOR]            @FORMAT[FORMAT]         @FREE[FREE]           @GLOBAL[!GLOBAL]
    @GOSUB[GOSUB]          @GOTO[GOTO]           @GRAFTABL[GRAFTABL]       @GRAPHICS[GRAPHICS]       @HISTORY[!HISTORY]
    @IF[!IF]             @IFF[IFF]            @FOR%IN[IN]             @INKEY[INKEY]          @INPUT[INPUT]
    @JOIN[!JOIN]

^1(more^0@COMMANDS2[  ]^1)^0
COMMANDS2 Commands & Keywords (2 of 2)

                        ^B Commands Index (continued)^b

^1(more^0@COMMANDS[  ]^1)^0

    @KEYB[!KEYB]           @KEYSTACK[KEYSTACK]       @LABEL[!LABEL]          @LH[LH]             @LIST[LIST]
    @LOADBTM[LOADBTM]        @LH%LOADHIGH[LOADHIGH]       @LOG[LOG]            @MD[!MD]             @MEM[MEM]
    @MEMORY[MEMORY]         @MIRROR[MIRROR]         @MD%MKDIR[MKDIR]          @MODE[MODE]           @MORE[MORE]
    @MOVE[MOVE]           @NLSFNC[!NLSFUNC]        @PATH[!PATH]           @PAUSE[PAUSE]          @POPD[POPD]
    @PRINT[PRINT]          @PROMPT[PROMPT]         @PUSHD[PUSHD]          @QUIT[!QUIT]           @RD[!RD]
    @REBOOT[REBOOT]         @RECOVER[RECOVER]        @REM[REM]            @REN[REN]            @REN^RENAME[RENAME]
    @REPLACE[REPLACE]        @RESTORE[RESTORE]        @RETURN[RETURN]         @RD%RMDIR[RMDIR]          @SCREEN[!SCREEN]
    @SCRPUT[SCRPUT]         @SELECT[SELECT]         @SET[SET]            @SETDOS[SETDOS]         @SETLOCAL[SETLOCAL]
    @SETVER[SETVER]         @SHARE[SHARE]          @SHIFT[SHIFT]          @SORT[SORT]           @SUBST[SUBST]
    @SWAPPING[SWAPPING]       @SYS[SYS]            @TEE[!TEE]            @TEXT[TEXT/ENDTEXT]   @IFF%THEN[THEN]
    @TIME[TIME]           @TIMER[TIMER]          @TREE[TREE]           @TRUENAME[TRUENAME]       @TYPE[TYPE]
    @UNALIAS[!UNALIAS]        @UNDELETE[UNDELETE]       @UNFORMAT[UNFORMAT]       @UNSET[UNSET]          @VER[!VER]
    @VERIFY[VERIFY]         @VOL[VOL]            @VSCRPUT[VSCRPUT]        @XCOPY[!XCOPY]          @Y[!Y]

^1(more^0@COMMANDS[  ]^1)^0
CHDIR CHDIR  (Internal 4DOS)

     (see the @CD%CHDIR[CD] command).

DO DO  (4DOS Keyword)

     (see the @FOR^DO[FOR] command).

ERASE ERASE  (Internal 4DOS)

     (see the @DEL%ERASE[DEL] command).

ELSE  ELSE  (4DOS Keyword)

     (see the @IFF%ELSE[IFF] command).

ELSEIFF ELSEIFF  (4DOS Keyword)

     (see the @IFF^ELSE[IFF] command).

ENDIFF ENDIFF  (4DOS Keyword)

     (see the @IFF%ENDIFF[IFF] command).

ENDTEXT  ENDTEXT  (4DOS Keyword)

     (see the @TEXT%ENDTEX[TEXT] command).

IN IN  (4DOS Keyword)

     (see the @FOR%IN[FOR] command).

LOADHIGH LOADHIGH (Internal 4DOS)

     (see the @LH%LOADHIGH[LH] command).

MKDIR MKDIR  (Internal 4DOS)

     (see the @MD%MKDIR[MD] command).

RENAME RENAME  (Internal 4DOS)

     (see the @REN%RENAME[REN] command).

RMDIR RMDIR  (Internal 4DOS)

     (see the @RD%RMDIR[RD] command).

THEN THEN  (4DOS Keyword)

     (see the @IFF%THEN[IFF] command).

? ?  (Internal 4DOS)

^1SYNTAX^0

	^B?^b

^1PURPOSE^0

Display a list of the 4DOS internal @COMMANDS[commands].

Note that if you have disabled a command with @SETDOS%/I[SETDOS /I-], it will
not appear in the list.

(do not confuse with the @÷?[%? variable]).

ALIAS ALIAS  (Internal 4DOS)

^1SYNTAX^0

	^BALIAS [/P] [/R [d:][path]filename...] [name[=][value]]^b

^1PURPOSE^0

Load or display the alias list, or define name as a substitute for value.

^1COMMENTS^0

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

4DOS supports two types of aliases; normal aliases (where 4DOS
substitutes the alias definition for the first argument on the command
line), and "keystroke aliases", where the command line editor will
immediately substitute the alias when the key is pressed.

Keystroke alias names are composed of an ^B@@^b followed by the key name.  You
can add a carriage return to a key alias by ending the alias with a
^Br^b (^B^^X^^Xr^b) if defined at the command line or in a batch file, or ^Br^b
(^B^^Xr^b) if defined in an ALIAS /R file.  The valid key names are the same
as those listed in the section on Key Mapping in the 4DOS manal.
(see @KEYS%Key Names[Key Names]).

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


"Name" is limited to no more than 80 characters, and "value" to no more
than 255 characters.

The ALIAS options are:

    ^2/P^0  Pause after displaying each page and wait for a key to be pressed.
    ^2/R^0  Load an alias list from a file.  This is much faster than loading
        aliases from a batch file.  The file is in the same format as the
        ALIAS display, so ALIAS /R can accept as input a file generated by
        redirecting ALIAS output.  You can add comments to an alias file by
        starting the comment line with a colon (^B:^b).

        For example, the following commands will save the aliases to a file,
        and then reload	them from that file:

            alias > alist
            alias /r alist

        (You can load aliases from multiple files by listing all the
        filenames after the /R.)

When defining aliases at the command line, back quotes must be used around
the alias arguments that contain multiple commands or variable references
(%2, %&2, etc.) to prevent premature expansion.  Back quotes should NOT be
used when defining aliases in a file to be read with ALIAS /R.

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 (^B*^b).  This also allows an alias to
refer to a command of the same name (see below for an example).

Alias names can be truncated by including an asterisk (^B*^b) in the name.

To edit an alias, use @ESET[ESET]; to remove an alias, use @UNALIAS[UNALIAS].

The total alias space available is defined by the optional "@Alias[Alias=]" INI directive.

For more information on aliases (including the use of variables), see the
Aliases section in the 4DOS manual, and the sample file ALIASES distributed
with 4DOS.

^1EXAMPLES^0

Define D as an alias for DIR /AP:

    c:\> alias d dir /ap

Rename the 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`

The following keystroke alias will insert a "dir /2 /v /p " on the command
line when the Alt-F1 key is pressed:

    c:\> alias @@Alt-F1 `dir /2 /v /p `

The same alias set up to execute immediately when Alt-F1 is pressed:

    c:\> alias @@Alt-F1 `dir /2 /v /pr`

APPEND  APPEND  (Internal/External MS-DOS)

^1SYNTAX^0

	^BAPPEND [/X[:on|:off]] [/E] [[d:]path][[;d:]path]...^b

^1PURPOSE^0

Forces MS-DOS to search the specified directories when looking for files.

^1COMMENTS^0

^B^KThis is a dangerous command^k^b and could cause you to update, overwrite or
delete files in the wrong directory.  We recommend against using it unless
absolutely necessary.  If you must use APPEND, we recommend that you set
the APPEND path to an empty string except when the applications that need
APPEND are actually running.

Use of APPEND should be unnecessary except for older applications or those
which do not provide adequate mechanisms for you to specify where the
application's files are stored.

Before using APPEND with 4DOS, read the section on APPEND in the COMPAT.DOC
file (included with all copies of 4DOS).

The APPEND options are:

    ^2/X^0  Expand the use of the APPEND path to include wildcard searches,
        not just searches for specific filenames.
    ^2/E^0  Store the APPEND path in the environment.  This option is not
        compatible with 4DOS.

APPEND is memory-resident, and uses about 5K of RAM (DOS 3.3).

ASSIGN ASSIGN  (External MS-DOS)

^1SYNTAX^0

	^BASSIGN [/status] [x=y [...]]^b

^1PURPOSE^0

Routes disk I/O requests to a different drive.

^1COMMENTS^0

ASSIGN allows you to use programs that 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 equal sign (^B=^b) is optional.  Do not use a colon
after the drive letters.

The ^2/status^0 switch (DOS 5+ only) displays the current assignments.

ASSIGN with no operands clears all assignments.

Reassignment of drives should only be done when necessary.  It should never
be used with @BACKUP[BACKUP], @LABEL[LABEL], @PRINT[PRINT] or @RESTORE[RESTORE], and @ASSIGN[ASSIGN] should not be used
with drives that have been @JOIN[JOIN]ed or @SUBST[SUBST]ituted.  @DISKCOMP[DISKCOMP], @DOSKCOPY[DISKCOPY] and
@FORMAT[FORMAT] ignore drive reassignments.

ASSIGN is memory-resident, and uses about 1.5K of RAM (DOS 3.3).


^1EXAMPLES^0

Route all requests for drive A to drive C:

    c:\> assign A=C

Clear current assignments.

    c:\> assign

ATTRIB ATTRIB  (Internal 4DOS)

^1SYNTAX^0

	^BATTRIB [/D /Q /S -|+[AHRS]] [d:][path]filename...^b

^1PURPOSE^0

Change the file or subdirectory attributes.

^1COMMENTS^0

The ATTRIB options are:

    ^2/D^0  Also modify subdirectory attributes
    ^2/Q^0  Quiet mode - don't display filenames
    ^2/S^0  Modify files in the current directory and its subdirectories
    ^2+A^0  Set the archive attribute
    ^2-A^0  Clear the archive attribute
    ^2+H^0  Set the hidden attribute
    ^2-H^0  Clear the hidden attribute
    ^2+R^0  Set the read-only attribute
    ^2-R^0  Clear the read-only attribute
    ^2+S^0  Set the system file attribute
    ^2-S^0  Clear the system file attribute

If you don't specify the ^B/D^b option, ATTRIB only modifies file attributes.

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

You can display the file attributes using the ^B/T^b option in @DIR[DIR].

^1EXAMPLES^0

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

(see the @αATTRIB[ATTRIB function]).

BACKUP BACKUP  (External MS-DOS)

^1SYNTAX^0

^BBACKUP [d:][path][filename][.ext] d: [/A /D:date /F[:size] /L /M /S /T:time]^b

^1PURPOSE^0

Backs up files from one disk to another.

^1COMMENTS^0

The first argument is the source, the second argument is the destination.
You can use wildcard characters in the source filename.

The BACKUP options are:

    ^2/A^0  Add files to be backed up to the files already on the backup disk.
    ^2/D:date^0  Back up files modified on or after the specified date
        (the date format depends on the current country setting).
    ^2/F^0  Format the target disk if it is not already formatted.  @FORMAT[FORMAT.COM]
        must be in the current directory or a directory in @÷PATH[%PATH].
    ^2/L^0  Keep a log of the backup.  If a filename is not specified, BACKUP
        keeps a log on BACKUP.LOG in the root directory of the source drive.
        If the log file exists, the information is appended to that log.
    ^2/M^0  Back up only those files that have been modified since the last
        backup (those with the archive bit set).
    ^2/S^0  Back up subdirectory files in addition to the specified directory.
    ^2/T:time^0  Back up all files modified on or after the specified time
        on the specified date (^2/D^0) (time is in the format hh:mm:ss).  If no
        date is specified, this parameter selects files modified on or after
        the specified time on all days.

BACKUP may not work correctly if used on a drive that has been @ASSIGN[ASSIGN]ed or
@SUBST[SUBST]ituted, or when a @JOIN[JOIN] or @APPEND[APPEND] is in effect.

When using the ^2/F^0 parameter, the target diskette and the target drive
capacity must be identical; for example do not use a 360KB diskette in a
1.2MB drive.

(See also @COPY[COPY], @REPLACE[REPLACE], @RESTORE[RESTORE] and @XCOPY[XCOPY]).

^1EXAMPLE^0

Backup the fixed disk C to multiple floppies on A:

    c:\> backup c: a: /s

Backup all the files with a .DOC extension in the C:\WS directory to A:

    c:\> backup c:\ws\*.doc a:

BEEP BEEP  (Internal 4DOS)

^1SYNTAX^0

	^BBEEP [frequency duration ...]^b

^1PURPOSE^0

Beep the speaker.

^1COMMENTS^0

BEEP is normally used in batch files to signal that an operation has been
completed, or that the computer needs attention (for example, to change
disks).  Because BEEP allows you to specify the frequency and duration, you
can use it to play simple music.  You can specify multiple frequency and
duration pairs on the command line.

The frequency is specified in Hertz, and the duration in 1/18th second
intervals.  No sound will be generated for frequencies less than 20 Hz,
allowing you to insert short delays.  The default value for frequency is
^B440 Hz^b; the default value for duration is ^B2^b.

See the "@BeepFreq[BeepFreq=]" and "@BeepLength[BeepLength=]" INI directives for
information on how to change or disable the default values

The following table gives the frequency values for a five-octave range
(middle C is 523 Hz):

         ╔════════╦═══════╤═══════╤═══════╤════════╤═══════╗
         ║ C      ║  131  │  262  │  523  │  1046  │  2093 ║
         ║ C#/Db  ║  139  │  277  │  554  │  1108  │  2217 ║
         ║ D      ║  147  │  294  │  587  │  1175  │  2349 ║
         ║ D#/Eb  ║  156  │  311  │  622  │  1244  │  2489 ║
         ║ E      ║  165  │  330  │  659  │  1318  │  2637 ║
         ║ F      ║  175  │  349  │  698  │  1397  │  2794 ║
         ║ F#/Gb  ║  185  │  370  │  740  │  1480  │  2960 ║
         ║ G      ║  196  │  392  │  784  │  1568  │  3136 ║
         ║ G#/Ab  ║  208  │  415  │  831  │  1662  │  3322 ║
         ║ A      ║  220  │  440  │  880  │  1760  │  3520 ║
         ║ A#/Bb  ║  233  │  466  │  932  │  1866  │  3729 ║
         ║ B      ║  248  │  494  │  988  │  1973  │  3951 ║
         ╚════════╩═══════╧═══════╧═══════╧════════╧═══════╝

^1EXAMPLE^0

The following batch file fragment runs the program DEMO, plays a few notes,
and waits for you to press a key:

    demo
    beep 440 4 587 2 1040 6
    pause Finished with the demo - press a key to continue

Approximation of a popular tune:

    beep 523 5 523 5 587 9 523 9 698 9 659 18
    beep 523 5 523 5 587 9 523 9 784 9 698 18


BREAK BREAK  (Internal 4DOS)

^1SYNTAX^0

	^BBREAK [on | off]^b

^1PURPOSE^0

Display, enable, or disable Ctrl-C / Ctrl-BREAK checking.

^1COMMENTS^0

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 MS-DOS character I/O
(screen, keyboard, serial port, or printer 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 I/O).  This will slow your system slightly.

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

    BREAK=ON

^1EXAMPLE^0

Check the current BREAK status:

    c:\> break
    BREAK is OFF

Enable ^C checking in all MS-DOS calls:

    c:\> break on

CALL CALL  (Internal 4DOS)

^1SYNTAX^0

	^BCALL [d:][path]filename^b

^1PURPOSE^0


Call a secondary batch file.


^1COMMENTS^0

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 10 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.
If you execute a batch file from another batch file without using CALL,
the first batch file is terminated before the second one starts.

The current ECHO state will be inherited by a called batch file.

See also @CANCEL[CANCEL] and @QUIT[QUIT].

^1EXAMPLE^0

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

    input Enter your choice:  %%option
    if "%option" == "ws" call ws.bat

CANCEL CANCEL  (Internal 4DOS)

^1SYNTAX^0        (Internal 4DOS)

	^BCANCEL [value]^b

^1PURPOSE^0

Terminate batch processing.

^1COMMENTS^0

The CANCEL command will end all batch file processing, regardless of the
batch nesting level.  (Use @QUIT[QUIT] to end a nested batch file and return to
the previous batch file.)  If you enter a value, CANCEL will set the
@IF%ERRORLEVEL[ERRORLEVEL] to that value.

You can CANCEL at any point in a batch file.

See also @CALL[CALL] and @QUIT[QUIT].

^1EXAMPLE^0

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 CD  (Internal 4DOS)

^1SYNTAX^0

	^BCD [[d:][pathname]^b   or  ^BCHDIR [[d:][pathname]^b

^1PURPOSE^0

Display or change the current directory.

^1COMMENTS^0

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

If CD can't change to the specified directory, it will look for the
CDPATH environment variable.  CD will append the specified directory
name to each directory in @CDPATH[%CDPATH] and attempt to change to that
directory, until the first match or the end of the CDPATH argument.

The previous directory is saved on each CD, and you can switch back to it
with "^BCD -^b".  You can switch between two directories by repeatedly entering
"^BCD -^b".  Note that the saved directory is the same for both CD and @CDD[CDD].

You can change to the parent directory with "^BCD ..^b".  You can also go up
one additional directory level with each additional "^B.^b".  For example,
"^BCD ....^b" will go up three directory levels.

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[CDD] to change both the drive and directory.

See also @VARIABLES%Variables Index[VARIABLES], @CDD[CDD] and @PUSHD[PUSHD].

^1EXAMPLES^0

Change to the subdirectory C:\FINANCE\MYFILES:

    c:\> cd \finance\myfiles

Change the default directory on drive A:

    c:\> cd a:\utility

Set the CDPATH environment variable and then CD to a directory called DOCS
(CD will first attempt to change to DOCS in the current directory, then
C:\DOCS, then C:\DOS\DOCS, etc.):

    c:\> set cdpath=c:\;c:\dos;c:\util;c:\ws
    c:\> cd docs

CDD CDD  (Internal 4DOS)

^1SYNTAX^0

	^BCDD [d:]pathname^b

^1PURPOSE^0

Change the current disk drive and directory.

^1COMMENTS^0

CDD is similar to @CD[CD], except it can also change the default disk drive.

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

If CDD can't change to the specified directory, it will look for the
@CDPATH[%CDPATH] environment variable.  CDD will append the specified directory
name to each directory in CDPATH and attempt to change to that directory,
until the first match or the end of the CDPATH argument.

The previous directory is saved on each CDD, and you can switch back to it
with "^BCDD -^b".  You can switch between two directories by repeatedly entering
"^BCDD -^b".  Note that the saved directory is the same for both CDD and CD.

You can change to the parent directory with "^BCDD ..^b".  You can also go up
one additional directory level with each additional "^B.^b".  For example,
"^BCDD ....^b" will go up three directory levels.

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

See also @VARIABLES%Variables Index[VARIABLES], @CD[CD] and @PUSHD[PUSHD].

^1EXAMPLE^0

Change from the root directory on drive A to the subdirectory C:\WS:

    a:\> cdd c:\ws

Set the CDPATH environment variable and then CDD to a directory called DOCS
(CDD will first attempt to change to DOCS in the current directory, then
C:\DOCS, then C:\DOS\DOCS, etc.):

    c:\> set cdpath=c:\;c:\dos;c:\util;c:\ws
    c:\> cd docs

CHCP CHCP  (Internal 4DOS)

^1SYNTAX^0

	^BCHCP [n]^b

^1PURPOSE^0

Display or change the current system code page.

^1COMMENTS^0

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/or an appropriate printer, and MS-DOS 3.3 or above.

Before using CHCP, you must load the device drivers (in CONFIG.SYS); make
sure the information file (COUNTRY.SYS) is available; load national
language support (using the @NLSFUNC[NLSFUNC] command); and prepare the specified
code page for the devices (using the @MODE[MODE] command with the ^BCODEPAGE PREPARE^b
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.

Entering CHCP with no argument displays the active code page.

The code pages supported by MS-DOS are:

    ^2437^0     United States
    ^2850^0     Multilingual (Latin I)
    ^2852^0     Slavic (Latin II)
    ^2860^0     Portuguese
    ^2863^0     Canadian-French
    ^2865^0     Nordic

See your MS-DOS manual for more information on CHCP and code page switching.

See also @MODE%CODEPAGE[MODE] and @NLSFUNC[NLSFUNC].

^1EXAMPLES^0

Display the current code page:

    c:\> chcp
    Active code page: 437

Set the code page to multilingual:

    c:\> chcp 850

CHKDSK CHKDSK  (External MS-DOS)

^1SYNTAX^0

	^BCHKDSK [d:][filename[.ext]] [/F /V]^b

^1PURPOSE^0

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

^1COMMENTS^0

If you specify a filename, CHKDSK will check the disk for fragmentation
and display a status report for the file.  You can use wildcard characters
in the filename.

The CHKDSK options are:

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

If the ^B/F^b option is specified, CHKDSK will attempt to correct any errors it
finds.  If ^B/F^b is not specified, CHKDSK will analyze the disk for errors but
will not attempt to correct them.

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

See also @FREE[FREE] and @MEMORY[MEMORY].

^1EXAMPLE^0

Check drive C and correct any errors:

    c:\> chkdsk c: /f

CLS CLS  (Internal 4DOS)

^1SYNTAX^0

	^BCLS [[bright] [blink] fg ON bg [BORDER fg]]^b

^1PURPOSE^0


Clear the video display, optionally to the specified colors.


^1COMMENTS^0

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

CLS uses the standard @COLORS[4DOS color attributes] and names.

If an ANSI driver is not loaded, the optional colors will not
be "sticky" - you may lose them when you run an application.

If 4DOS thinks you have an ANSI driver loaded, it first tries an ANSI
clear screen.  If that doesn't work, 4DOS will do a BIOS clear screen.
You can force 4DOS to recognize the ANSI state with the @SETDOS%/A[SETDOS /A] option,
or with the ANSI= option in 4DOS.INI.

CLS is normally used in batch files to clear the screen before displaying
text.

See also @COLOR[COLOR], @SETDOS[SETDOS] and @ANSI[ANSI].

^1EXAMPLES^0

Clear the display:

    c:\> cls

Clear the display to a blue background, and set white characters as the
new default:

    c:\> cls white on blue

COLOR COLOR  (Internal 4DOS)

^1SYNTAX^0

	^BCOLOR [[bright] [blink] fg ON bg [BORDER fg]]^b

^1PURPOSE^0

Set the screen display colors.

^1COMMENTS^0

COLOR uses the standard @COLORS[4DOS color attributes] and names.

If you don't have ANSI.SYS (or another ANSI compatible screen driver)
loaded, the colors will not be "sticky" - you may lose them when you run
an application.

See also "@StdColors[StdColors]=", @CLS[CLS] and @ANSI[ANSI].

^1EXAMPLE^0

Set the default screen colors to bright white text on a blue background:

    c:\> color bright white on blue

COMP COMP  (External MS-DOS)

^1SYNTAX^0

     ^BCOMP [/A] [/C] [/D] [/L] [/N=number] [d:][path]filename1^b
                                                   ^B[d:][path]filename2^b

^1PURPOSE^0

Compares files.

^1COMMENTS^0

COMP compares individual files or sets of files byte for byte.  To compare
sets of files, specify only the drive, the path, or use wildcard characters
in the filenames.

The COMP options vary in different versions of DOS; the following are for
MS-DOS 5.0:

    ^2/A^0  Display differences as characters.
    ^2/C^0  Ignore case differences.
    ^2/D^0  Display differences in decimal (base 10) format; default is
        hexadecimal (base 16).
    ^2/L^0  Display the line number where a difference occurs.
    ^2/N^0  Compare only the first "number" of lines.

If one or both parameters are missing or if no file matches the primary
parameter, you will be prompted to enter both filenames.  If a path is
specified without a filename, COMP assumes all files in the directory (*.*).

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

COMP displays an error message for any location containing mismatched
information between the two files.  COMP ends the compare after ten
mismatches.

See also @FC[FC] and @DISKCOMP[DISKCOMP].

^1EXAMPLE^0

Compare the files MEMO.DOC and MEMO.BAK:

    c:\> comp memo.doc memo.bak

COPY COPY (Internal 4DOS)

^1SYNTAX^0

	^BCOPY [d:][path]filename[+]...[/A /B] [[d:][path]filename] [/A /B]^b
	     				     ^B[/C /M /N /P /Q /R /S /U /V]^b

^1PURPOSE^0

Copy or append one or more files.

^1COMMENTS^0

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 (^2+^0) 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 ^B/A^b(SCII) or ^B/B^b(inary) options apply to the preceding filename and to
all subsequent filenames on the command line until another ^B/A^b or ^b/B^b is
entered.  All other options apply to all filenames on the command line.

The COPY options are:

    ^2/A^0 (^BA^bSCII)
        If used with a source filename, 4DOS will copy the file up
        to, but not including, the first ^B^Z^b character in the file.  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.
    ^2/B^0 (^BB^binary)
        If used with a source filename, 4DOS will copy the entire file.
        Using /B with a target filename prevents 4DOS from appending a ^Z to
        the target file.  4DOS defaults to /B for normal file copies.
    ^2/C^0 (^BC^bhanged)
        Copy only those files where the target exists and is older than
        the source (see ^B/U^b).
    ^2/H^0 (^BH^bidden)
        Copy hidden and system files too.
    ^2/M^0 (^BM^bodified)
        Copy only those files with the archive bit set (see @ATTRIB[ATTRIB]).  The
        archive bit will NOT be cleared after copying.
    ^2/N^0 (^BN^bothing)
        Do everything except actually perform the copy (for testing what
        the result of the COPY would be).
    ^2/P^0 (^BP^brompt)
        Confirm each file copy (^BY^b or ^BN^b).  An N response will skip that
        particular file.
    ^2/Q^0 (^BQ^buiet)
        Don't display filenames as they are copied.
    ^2/R^0 (^BR^beplace)
        Prompt before overwriting an existing file.
    ^2/S^0 (^BS^bubdirectories)
        Copy subdirectories - the target must be a directory (4DOS will
        create it if it doesn't exist).  4DOS will copy each subdirectory
        to a matching subdirectory of the target.
    ^2/U^0 (^BU^bpdate)
        Copy only those source files that are newer than a matching target
        file, or where a matching target file doesn't exist (see /C).
    ^2/V^0 (^BV^berify)
        Verify each disk write.  This is the same as executing the @VERIFY[VERIFY ON]
        command, but is only active during the COPY.

See also @MOVE[MOVE], @REPLACE[REPLACE], and @XCOPY[XCOPY].

^1EXAMPLES^0

Copy the files MEMO1 and PROJECT8.WKS 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

Copy only those files in the root directory on drive A that are newer than
the matching files in the current directory, or which don't exist in the
current directory:

    c:\> copy /u a:\*.* c:\*.*

Copy files from the root directory on drive A to the current directory, but
prompt before overwriting existing files:

    c:\> copy /r a:\*.*

Copy a downloadable font file to the printer in binary mode:

    c:\> copy myfont.dat lpt1: /b

CTTY CTTY  (Internal 4DOS)

^1SYNTAX^0

	^BCTTY device^b

^1PURPOSE^0

Change the default console device.

^1COMMENTS^0

 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 @DRAWBOX[DRAWBOX], @DRAWHLINE[DRAWHLINE], @DRAWVLINE[DRAWVLINE], @LIST[LIST], @SCREEN[SCREEN], @SCRPUT[SCRPUT], @SELECT[SELECT],
and @VSCRPUT[VSCRPUT]).

^1EXAMPLE^0

Change the console to the first serial port:

    c:\> ctty com1:

Change the console back to the standard keyboard and display:

    c:\> ctty con:

DATE DATE  (Internal 4DOS)

^1SYNTAX^0

	^BDATE [mm-dd-yy]^b

^1PURPOSE^0

Display and (optionally) change the system date.

^1COMMENTS^0

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

The format for the date entry depends on the country code defined in the
CONFIG.SYS file or by the @CHCP[CHCP] command.  The default format is U.S.
(mm-dd-yy).  The European format is dd-mm-yy; the Japanese is yy-mm-dd.

The parameters for the DATE command are:

    ^2mm^0  Month (^B1^b - ^B12^b)
    ^2dd^0  Day (^B1^b - ^B31^b)
    ^2yy^0  Year (^B80^b - ^B199^b or ^B1980^b - ^B2099^b)

You can use hyphens ("^B-^b"), slashes ("^B/^b"), or periods ("^B.^b") to separate the
month,
day, and year entries.

See also @_DATE[%_DATE], @CHCP[CHCP] and @TIME[TIME].

^1EXAMPLES^0

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 DEL  (Internal 4DOS)

^1SYNTAX^0

	^BDEL [/N /P /Q /S /X /Y /Z] [d:][path]filename...^b
      or
	^BERASE [/N /P /Q /S /X /Y /Z] [d:][path]filename...^b

^1PURPOSE^0

Erase the specified file(s) from the disk.

^1COMMENTS^0

The DEL options are:

    ^2/N^0  Do everything except actually delete the file(s) (for testing
        what the result of a DEL would be).
    ^2/P^0  Confirm file deletion for each file.
    ^2/Q^0  Don't display filenames as they are deleted.  DEL will do a
        fast delete if you specify the ^B/Q^b switch, and the filename
        doesn't use the extended 4DOS wildcards.
    ^2/S^0  Delete matching files in the subdirectories.
    ^2/X^0  Remove empty subdirectories after deleting (use with ^B/S^b).
    ^2/Y^0  The reverse of ^B/P^b - it assumes a Y response to everything,
        including deleting an entire subdirectory.  ^B^KUse with caution!^K^b
    ^2/Z^0  Delete read-only, hidden and system files as well as normal files.

If you enter a subdirectory name, or a filename composed only of wildcards,
DEL asks for confirmation (Y or N), unless you specified the ^B/Y^bes option.
If you respond with a Y, DEL will delete all the files in that subdirectory
(except for hidden, system, and read-only files).

^1EXAMPLE^0

Erase all the files in the current directory with a .BAK or .PRN extension:

    c:\> del *.bak *.prn

Delete the entire subdirectory tree starting with C:\UTIL, including hidden
and read-only files:

    c:\> del /sxyz c:\util

DELAY DELAY  (Internal 4DOS)

^1SYNTAX^0

	^BDELAY [seconds]^b

^1PURPOSE^0

Pause for a specified period of time.

^1COMMENTS^0

DELAY is useful in batch file loops while waiting for a condition to occur.
The default value is one second.

If you need a shorter delay, use @BEEP[BEEP] with a frequency < 20 Hz.

You can cancel a DELAY loop by pressing ^BCtrl-C^b.

See also @BEEP[BEEP].

^1EXAMPLE^0

Wait for 10 seconds:

    delay 10

DESCRIBE DESCRIBE  (Internal 4DOS)

^1SYNTAX^0

	^BDESCRIBE [d:][path]filename... ["description"]^b

^1PURPOSE^0

Create, modify, or delete file and subdirectory descriptions.

^1COMMENTS^0

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

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

You can enter a description on the command line by entering the filename
followed by the description enclosed in quotes.  Using wildcards and/or
multiple filenames with a description on the command line will give all
matching files the same description.

Descriptions are stored in each directory in a hidden file called
^BDESCRIPT.ION^b.  Use the @ATTRIB[ATTRIB] command to "unhide" this file if you need to
copy or delete it.

The description file is modified appropriately whenever you perform an
internal command (such as @COPY[COPY], @DEL[DEL], @MOVE[MOVE], or @REN[REN]), but not if you use
an external command (such as @REPLACE[REPLACE], @XCOPY[XCOPY], or a "DOS shell").

See also @DIR[DIR] and @SELECT[SELECT].

^1EXAMPLE^0

Create a description for the file MEMO.TXT interactively:

    c:\> describe memo.txt
    Describe "memo.txt": Memo to Bob about party

Create the same description in a single command:

    c:\> describe memo.txt "Memo to Bob about party"

DIR DIR  (Internal 4DOS)

^1SYNTAX^0

  ^BDIR [/1 /2 /4 /A[:-rhsda] /B /C /D /F /J /K /L /M /N /O:-deginsu /P /S^b
      ^B/T /U /V /W] [[d:][path]filename...]^B

^1PURPOSE^0

Display information about files and subdirectories.

^1COMMENTS^0

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

The DIR options are:

    ^2/1^0 (^B1^b column)
        Single column display - display the filename, size, date, time, and
        description.  This is the default.
    ^2/2^0 (^B2^b columns)
        Two column display - display the filename, size, date, and time.
    ^2/4^0 (^B4^b columns)
        Four column display - display the filename and size, in K(ilobytes)
        or M(egabytes).
    ^2/A^0 (^BA^bttribute select)
        Display only those files that have the specified attribute set.
        A ^B/A^b with no attributes will display all files, including hidden
        and system files.  Preceding the attribute character with a '^2-^0' will
        display those files that do ^BNOT^b have that attribute set.  Attributes
        can also be combined.  The attributes are:
          ^2R^0  Read only
          ^2H^0  Hidden
          ^2S^0  System
          ^2D^0  Directory
          ^2A^0  Archive
    ^2/B^0 (^BB^bare)
        Suppress header line and summaries, and display file or subdirec-
        tory names only, in a single column (useful when redirecting output
        to a file or another program).
    ^2/C^0 (^C^base - use upper case)
        Display filenames in upper case (like COMMAND.COM).  See also
        @SETDOS%/U[SETDOS /U].
    ^2/D^0 (^BD^bisable colors)
        Disable directory colorization.
    ^2/F^0 (^F^bull path)
        Display fully expanded filenames (including drive & path) in one
        column.
    ^2/J^0 (^BJ^bstify names)
        Justify filenames (same format as COMMAND.COM).
    ^2/K^0 (suppress headers)
        Suppress the header display.
    ^2/L^0 (^BL^bower case)
        Display names in lower case.  This option will not convert
        extended characters to lower case.
    ^2/M^0 (suppress footers)
        Suppress the footer display.
    ^2/N^0 (reset DIR options)
        Reset DIR options to the default values (useful when displaying some
        files in one format, and then changing back to the default format.
    ^2/O^0 (sort ^BO^brder)
        Sort order; any combination of the following options:
          ^2-^0  Reverse the sort order for the next option
          ^2a^0  Sort by ASCII value rather than numeric value
          ^2d^0  Sort by date and time (oldest first)
          ^2e^0  Sort by extension
          ^2g^0  Group subdirectories together
          ^2i^0  Sort by the file description
          ^2n^0  Sort by the filename (this is the default)
          ^2r^0  Reverse the sort order for all options
          ^2s^0  Sort by size
          ^2u^0  Unsorted (same as COMMAND.COM)
    ^2/P^0 (^BP^bause)
        Pause after each screen page and wait for a key to be pressed
        (useful for displaying long directory listings).
    ^2/S^0 (^BS^bubdirectories)
        Display contents of the current directory and all of its subdirec-
        tories.  DIR will only display headers and summaries for those
        directories with matching filenames.
    ^2/T^0 (a^BT^btributes display)
        Display the filenames and attributes only (see @ATTRIB[ATTRIB]), in the
        format ^BRHSA^b, where:
          ^2R^0  Read only
          ^2H^0  Hidden
          ^2S^0  System
          ^2A^0  Archive
        When displaying attributes, DIR cannot display file descriptions.
    ^2/U^0 (s^B^bmmaries only)
        Display summary only (number of files & bytes used; both actual
        file size and the disk space used).
    ^2/V^0 (^BV^bertical sort)
        Display filenames sorted vertically rather than horizontally (with
        the ^B/2^b, ^B/4^b, or ^B/W^b option.
    ^2/W^0 (^BW^bide)
        Wide display - display the filenames only, horizontally across the
        screen (5 columns on an 80-character display).

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

If you append filenames with a ^B;^b (an "@INCLUDE[include list]"), DIR will display
the matching filenames in a single directory listing.  Only the first file
in an include list can have a path.

If you have an ANSI driver loaded, you can display the subdirectories and
files in color by setting the @COLORDIR[%COLORDIR] variable or using the "@ColorDir[ColorDir=]"
INI directive.

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

DIR can handle directories of any size, limited only by the available
memory.  Each filename requires 32 bytes of MS-DOS memory plus the size of
the description (if any); a system with 128K of free MS-DOS memory can
display up to 4,000 files per directory.

Options on the command line apply only to the filenames which follow the
option, except that options at the end of the line apply to the preceding
filename only.  This allows you to specify several options for a group of
files, and retains compatibility with COMMAND.COM when a single filename
is specified.

See also "@ColorDir[ColorDir=]", @COLORDIR[%COLORDIR], @DESCRIBE[DESCRIBE], @SELECT[SELECT] and @TREE[TREE].

^1EXAMPLES^0

Display the .WKS files, and then the .WK1 files in the current directory:

    c:\> dir *.wks *.wk1

Display the .WKS and .WK1 files together (an "include list"):

    c:\> dir *.wks;*.wk1

Display the files on drive C, including hidden and system files, pausing
after each page:

    c:\> dir /a/sp c:\*.*


DIRS DIRS (Internal 4DOS)

^1SYNTAX^0

	^BDIRS^b

^1PURPOSE^0

Display the current directory stack.

^1COMMENTS^0


DIRS displays the directory stack used by @PUSHD[PUSHD] and @POPD[POPD], most recent
entries first.  The stack holds ^B255^b characters (about 10 to 20 entries).


See also @PUSHD[PUSHD] and @POPD[POPD].

^1EXAMPLE^0

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 DISKCOMP  (External MS-DOS)

^1SYNTAX^0

	^BDISKCOMP [d:] [d:] [/1 /8]^b

^1PURPOSE^0

Compare the contents of two diskettes.

^1COMMENTS^0

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[ASSIGN].

The DISKCOMP options are:

    ^2/1^0  Compare only the first side of the disks.
    ^2/8^0  Compare only 8 sectors per track.

If no drive is specified, DISKCOMP uses the default drive.  If one drive is
specified, the default drive is used as the second drive for comparison.
DISKCOMP will prompt for disk changes if the comparison is between two disks
in the same drive.

See also @DISKCOPY[DISKCOPY].

^1EXAMPLE^0

Compare the disks in A and B:

    c:\> diskcomp a: b:

DISKCOPY DISKCOPY  (External MS-DOS)

^1SYNTAX^0

	^BDISKCOPY [d:] [d:] [/1 /V]^b

^1PURPOSE^0

Make exact track-for-track copies of diskettes.

^1COMMENTS^0

DISKCOPY copies diskettes only.  It will not work on fixed, network or
virtual (RAM) disks, or on drives that have been @ASSIGN[ASSIGN]ed, @JOIN[JOIN]ed or
@SUBST[SUBST]ituted.

The first drive is the source, the second drive is the target.  If no
drive is specified, DISKCOPY uses the default drive as both source
and target.  If one drive is specified, the default drive is used as
the target.  DISKCOPY will prompt for disk changes if the comparison
is between two disks in the same drive.

DISKCOPY will format target disks that are unformatted, using exactly the
same format as the source disk.

The options for DISKCOPY are:

    ^2/1^0  Copy only the first side of the diskette.
    ^2/V^0  Verify the copy.

See also @COPY[COPY], @XCOPY[XCOPY] and @DISKCOMP[DISKCOMP].

^1EXAMPLE^0

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

    c:\> diskcopy A: B:

DRAWBOX DRAWBOX  (Internal 4DOS)

^1SYNTAX^0

    ^BDRAWBOX ulrow ulcol lrrow lrcol style [bright][blink] fg ON bg^b
            ^B[FILL bgfill] [SHADOW]^b

^1PURPOSE^0

Draw a box on the screen.

^1COMMENTS^0

DRAWBOX is useful for creating attractive screen displays in batch files.
DRAWBOX detects other lines and boxes on the display, and creates the
appropriate connector characters when possible (not all types of lines can
be connected with the available characters).

The row and column are zero-based, so on a standard 25 line by 80 column
display, valid rows are 0 - 24 and valid columns are 0 - 79.

The DRAWBOX parameters are:

    ^2ulrow^0   Row for upper left corner
    ^2ulcol^0   Column for upper left corner
    ^2lrrow^0   Row for lower right corner
    ^2lrcol^0   Column for lower right corner
    ^2style^0   Box drawing style:
                ^20^0  no line drawing characters (box is drawn with blanks)
                ^21^0  single line
                ^22^0  double line
                ^23^0  single line on top and bottom, double on sides
                ^24^0  double line on top and bottom, single on sides
    ^2fg^0      Foreground character color
    ^2bg^0      Background character color
    ^2bgfill^0  Background fill color (for the inside of the box)
    ^2SHADOW^0  Include a transparent drop shadow.

DRAWBOX uses the standard @COLORS[4DOS color attributes] and names.

See also @ANSI[ANSI], @DRAWHLINE[DRAWHLINE] and @DRAWVLINE[DRAWVLINE].

^1EXAMPLE^0

Draw a single line box around the entire screen with bright white lines on
a blue background:

    drawbox 0 0 24 79 1 bright white on blue fill blue

DRAWHLINE DRAWHLINE  (Internal 4DOS)

^1SYNTAX^0

	^BDRAWHLINE row columns length style [bright] [blink] fg ON bg^b

^1PURPOSE^0

Draw a horizontal line on the screen.

^1COMMENTS^0

DRAWHLINE is useful for creating attractive screen displays in batch files.
DRAWHLINE detects other lines and boxes on the display, and creates the
appropriate connector characters when possible (not all types of lines can
be connected with the available characters).

The row and column are zero-based, so on a standard 25 line by 80 column
display, valid rows are 0 - 24 and valid columns are 0 - 79.

The DRAWHLINE parameters are:

    ^2row^0     Start row
    ^2column^0  Start column
    ^2length^0  Length of line
    ^2style^0   Line drawing style:
                ^21^0 - single line
                ^22^0 - double line
    ^2fg^0      Foreground character color
    ^2bg^0      Background character color

DRAWHLINE uses the standard @COLORS[4DOS color attributes] and names.

See also @ANSI[ANSI], @DRAWVLINE[DRAWVLINE], @DRAWBOX[DRAWBOX], and @SCRPUT[SCRPUT].

^1EXAMPLE^0

Draw a double line along the top row of the display with green characters
on a blue background:

    drawhline 0 0 79 2 green on blue

DRAWVLINE DRAWVLINE  (Internal 4DOS)

^1SYNTAX^0

	^BDRAWVLINE row columns length style [bright] [blink] fg ON bg^b

^1PURPOSE^0

Draw a vertical line on the screen.

^1COMMENTS^0

DRAWVLINE is useful for creating attractive screen displays in batch files.
DRAWVLINE detects other lines and boxes on the display, and creates the
appropriate connector characters when possible (not all types of lines can
be connected with the available characters).

The row and column are zero-based, so on a standard 25 line by 80 column
display, valid rows are 0 - 24 and valid columns are 0 - 79.

The DRAWVLINE parameters are:


    ^2row^0     Start row
    ^2column^0  Start column
    ^2length^0  Length of line
    ^2style^0   Line drawing style:
                ^21^0 - single line
                ^22^0 - double line
    ^2fg^0      Foreground character color
    ^2bg^0      Background character color

DRAWVLINE uses the standard @COLORS[4DOS color attributes] and names.

See also @DRAWBOX[DRAWBOX], @DRAWHLINE[DRAWHLINE], and @VSCRPUT[VSCRPUT].

^1EXAMPLE^0

Draw a double line along the left margin of the display with bright red
characters on a black background:

    drawvline 0 0 24 2 bright red on black

ECHO ECHO  (Internal 4DOS)

^1SYNTAX^0   (Internal 4DOS)

	^BECHO [on | off | message]^b

^1PURPOSE^0

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

^1COMMENTS^0

4DOS defaults to ^BECHO ON^b in batch files.  To prevent a line from being
echoed, preface it with the ^B@@^b symbol.  You can default to ^BECHO OFF^b by
setting the variable VERBOSE to 0 (see @SETDOS%/V[SETDOS /V]).  The current ECHO state
is inherited by called batch files.

4DOS defaults to ^BECHO OFF^b during keyboard input.  If you set ^BECHO ON^b from
the command line, 4DOS will display the fully parsed and expanded commands
(including aliases and variables) before they are executed.  ^BThe keyboard
ECHO state is independent of the batch file ECHO state^b; changing ECHO in a
batch file has no effect on the display at the command prompt, and vice
versa.

If no arguments are entered, ECHO displays the current echo state.

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[redirection] symbols (^B|><^b) in an ECHO
message, unless you enclose them in quotes or precede them with the escape
character.  If you want to echo a blank line, enter:

    ^Becho.^b

See also @ECHOS[ECHOS], @SETDOS[SETDOS], @SCREEN[SCREEN], @SCRPUT[SCRPUT], @VSCRPUT[VSCRPUT]
@TEXT[TEXT], and the "@BatchEcho[BatchEcho=]" INI directive).

^1EXAMPLE^0

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

ECHOS ECHOS  (Internal 4DOS)

^1SYNTAX^0

	^BECHOS message^b

^1PURPOSE^0

Display a message, without printing a trailing CR/LF.

^1COMMENTS^0

ECHOS is useful for outputting text when you don't want 4DOS to add a
carriage return / linefeed pair.  (For example, when redirecting control
sequences to a printer.)  You cannot use the command separator character
or the 4DOS @REDIRECTION[redirection] symbols (^B|><^b) in an ECHOS message, unless you
enclose them in quotes or precede them with the escape character.

See also @ECHO[ECHO].

^1EXAMPLE^0

Send a control sequence (an Esc+H) to the printer:

       c:\> echos eH > lpt1:

EDIT EDIT  (External MS-DOS)

^1SYNTAX^0

	^BEDIT [/B /G /H /NOHI] [[d:][path]filename]^b

^1PURPOSE^0

Full-screen editor for ASCII files.

^1COMMENTS^0

EDIT invokes the ^BQBASIC^b editor to do the actual file editing.

The EDIT options are:

       ^2/B^0  Display in black and white.
       ^2/G^0  Use fast screen updating on a CGA monitor.
       ^2/H^0  Display maximum number of lines possible.
    ^2/NOHI^0  Display in 8 colors rather than 16.

ENDLOCAL ENDLOCAL  (Internal 4DOS)

^1SYNTAX^0

	^BENDLOCAL^b

^1PURPOSE^0

Restore the saved disk drive, directory, and environment.

^1COMMENTS^0

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

See also @SETLOCAL[SETLOCAL].

^1EXAMPLE^0

This batch file fragment saves the aliases, environment, drive, and current
working directory, changes the drive and directory, modifies some
environment variables, runs the program TEST1, and then restores the
original values:

    setlocal
    cdd d:\test
    set path=c:\;c:\dos;c:\util
    set lib=d:\lib
    test1
    endlocal

ESET ESET  (Internal 4DOS)

^1SYNTAX^0

	^BESET [/A /M] varname...^b

^1PURPOSE^0

Edit environment variables and/or aliases.

^1COMMENTS^0

ESET allows you to edit your environment @VARIABLES[variables] and @ALIAS[aliases] using the
4DOS line editing commands.  The cursor will be positioned at the first
character of the variable or alias.  The ESET options are:

    ^2/A^0  Assume the argument is an alias.  This allows you to edit
        an alias with the same name as an environment variable.
    ^2/M^0  Edit an environment variable in the master environment rather
        than the local environment.


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

4DOS limits each environment variable or alias name to ^B80^b characters, and
its arguments to ^B255^b characters.

See also @ALIAS[ALIAS], @UNALIAS[UNALIAS], @ESET[SET], and @UNSET[UNSET].

^1EXAMPLE^0

Edit the MS-DOS executable file search path:

    c:\> eset path

Create and then edit an alias:

    c:\> alias d dir /djp
    c:\> eset d

EXCEPT EXCEPT  (Internal 4DOS)

^1SYNTAX^0

	^BEXCEPT ([d:][path]filename...) command^b

^1PURPOSE^0

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

^1COMMENTS^0

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

The command can be a 4DOS internal command or alias, an external command,
or a batch file.

You may use @WILDCARDS[wildcard] characters in a filename.

When using filename completion (see Command Line Editing in the 4DOS
manual) to get the filenames inside the parentheses, type a space after
the open parenthesis before entering a partial filename or pressing TAB.
Otherwise the command line editor will treat the open parenthesis as the
first character of the filename to be completed.

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[ATTRIB]
command to "unhide" (^B-H^b) the file(s).

^BEXCEPT will not work with programs or commands that ignore the hidden
attribute^b.

See also @ATTRIB[ATTRIB].

^1EXAMPLE^0

Erase all but the files beginning with MEMO and those ending in .WKS:

    c:\> except (memo*.* *.wks) del *.*

EXIT EXIT  (Internal 4DOS)

^1SYNTAX^0

	^BEXIT [value]^b

^1PURPOSE^0

Return from a secondary command processor.

^1COMMENTS^0

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.

If you specify a value, EXIT will return that value to the parent process.

You cannot EXIT from the primary command processor, except when running a
"DOS box" in OS/2 2.0.

^1EXAMPLE^0

Return to the previous command processor or application:

    c:\> exit

(Also see @EXITCODE[Exit Code]).

FASTOPEN  FASTOPEN  (External MS-DOS)

^1SYNTAX^0

	^BFASTOPEN d:[=nnn] ... [/X]^b

^1PURPOSE^0

Save information on recently-opened files in memory to speed disk access.

^1COMMENTS^0

When possible, use of ^Bdisk cache^b software (or hardware) provides more
flexibility and more significant performance improvement than FASTOPEN.

The FASTOPEN parameters are:

    ^2d:^0   Drive letter of the fixed disk drive to process.  Floppy disk
         drives, network drives, and drives created by @JOIN[JOIN], @SUBST[SUBST] or
         @ASSIGN[ASSIGN] may ^Bnot^b be used.

    ^2nnn^0  The number of directory or file entries to retain for drive d:.
         The value must be between ^B10^b and ^B999^b; the default is ^B34^b.  This
         parameter should be larger than the maximum number of nested
         subdirectories in the system.

    ^2/X^0   (DOS 5+ only) Create the FASTOPEN cache in expanded memory.

Too small a value of ^Bnnn^b will provide little performance improvement, and too
large a value will unnecessarily increase MS-DOS's overhead while it searches
the list, and may therefore degrade performance.

FASTOPEN is memory-resident, and uses about 3K of RAM (DOS 3.3).  Additional
memory used to store FASTOPEN's internal file list will be (35*nnn) bytes.

FASTOPEN will frequently generate critical errors if you rename directories
or move files to other directories.

^1EXAMPLE^0

Initialize FASTOPEN for hard disk C:, with room to store information on the
last 64 directories/files accessed.

    fastopen c:=64

FC FC  (External MS-DOS)

^1SYNTAX^0

     ^BFC [/A] [/C] [/L] [/LB] [/N] [/T] [/W] [/nnnn] [d:][path]filename1^b
                                ^B[d:][path]filename2^b
    or
     ^BFC /B [d:][path]filename1 [d:][path]filename2^b

^1PURPOSE^0

Compares files.

^1COMMENTS^0

FC compares two files or sets of files and displays the differences between
them.

The FC options may vary in different versions of DOS; the following are for
MS-DOS 5.0:

    ^2/A^0     Abbreviated display.  FC will only show the first and last lines
           for each set of differences.
    ^2/B^0     Compare files in ^Bbinary^b mode byte-by-byte.  This is the
	   default mode for files with extensions .COM, .EXE, .OBJ, .LIB,
           and .BIN.  If the ^B/B^b option is specified, no other option is
           allowed.
    ^2/C^0     Ignore case differences.
    ^2/L^0     Line-by-line compare in ASCII mode.  FC will attempt to
           resynchronize the files after each mismatch. ^BDefault^b mode for
           files which do not have extensions of .EXE, .COM, .OBJ, .LIB, or
           .BIN.
    ^2/LBn^0   Define the maximum number of differing lines allowed.  If more
           than ^Bn^b lines are different, the comparison is cancelled.  The
           default value is to allow up to ^B100^ different lines.
    ^2/N^0     Show line numbers during an ASCII comparison.
    ^2/T^0     Treat ^B^TAB^b characters and ^B^SPACE^ differently. If ^B/T^b is
           not specified, each tab is expanded to ^B8^b consecutive spaces.
    ^2/W^0     Compress consecutive white space characters (^Btabs^ and ^Bspaces^b)
	   to a single space.
           hexadecimal (base 16).
    ^2/nnnn^0  Number of consecutive matching lines required to consider
           the files resynchronized after a mismatch.  If ^B/nnnn^b is not
	   specified, FC will assume a value of ^B2^b.

See also @COMP[COMP] and @DISKCOMP[DISKCOMP].

^1EXAMPLE^0

Compare ASCII files MEMO.DOC and MEMO.BAK:

    c:\> fc memo.doc memo.bak

Compare binary files TESTA.OVL and TEXTB.OVL

    c:\> fc /b testa.ovl and testb.ovl

FIND FIND  (External MS-DOS)

^1SYNTAX^0

	^BFIND [/C /I /N /V] "string" [d:][path]filename...^b

^1PURPOSE^0

Searches files for a specified string.

^1COMMENTS^0

You cannot use wildcard characters in the filenames.

The FIND options are:

    ^2/C^0  Display the number of lines containing the string.
    ^2/I^0  (DOS 5+ only) Ignore case in search.
    ^2/N^0  Display the line number of each matching line.
    ^2/V^0  Display all lines NOT containing the string.

^1EXAMPLE^0

Search for the string "4DOS" in the file 4DOS.DOC, and display the line
numbers it appears on:

    c:\> find /n "4DOS" 4dos.doc

FOR FOR  (Internal 4DOS)

^1SYNTAX^0

	^BFOR [/A[:-RHSDA]] %%var IN (set) [DO] command^b

^1PURPOSE^0

Repeat a command for several variables.

^1COMMENTS^0

4DOS sets ^Bvar^b sequentially to each member of ^B(set)^b, and then evaluates and
executes ^Bcommand^b for every argument in ^B(set)^b. If an argument in ^B(set)^b
contains @WILDCARDS[wildcard] characters, ^Bvar^b will be set sequentially to each matching
filename on the disk.  If a filename in ^B(set)^b begins with an ^B@@^b, ^Bvar^b will
be set sequentially to each line in the file.

The only switch in FOR is:

    ^2/A^0  Retrieve only those files with the specified attribute.  A /A with
        no attributes will retrieve all files, including hidden and system
        files, and subdirectories.  Preceding the attribute character with
        a '^2-^0' will retrieve those files that DON'T have that attribute set.
        Attributes can also be combined.  The attributes are:
          ^2R^0  Read only
          ^2H^0  Hidden
          ^2S^0  System
          ^2D^0  Directory
          ^2A^0  Archive

The command can be a 4DOS internal command or alias, an external command,
or a batch file.

In COMMAND.COM, you must use a single ^B%^b for the variable name from the
command line, and ^B%%^b when in a batch file.  4DOS will accept either ^B%^b or
^B%%^b in either case.

COMMAND.COM requires the variable name to be a single character; 4DOS
supports variable names up to ^B80^b characters.

COMMAND.COM requires the word ^BDO^b on the command line; it is optional in
4DOS.

Note that 4DOS supports ^Bnested^b FOR statements; COMMAND.COM does not.

^1EXAMPLE^0

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 ;

The following example uses variable functions to delete the .BAK files for
which a corresponding .TXT file exists in the current directory:

    c:\docs> for %a in (*.txt) if exist %@@name[%a].bak del %@@name[%a].bak

FORMAT FORMAT  (External MS-DOS)

^1SYNTAX^0

	^BFORMAT d: [/1 /4 /8 /B /F:nn /N:sn /S /T:tn /V[:label]]^b

^1PURPOSE^0

Format (initialize) a disk.

^1COMMENTS^0

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.

^B^KCAUTION^k^b:  The FORMAT command will destroy all files on the target disk.

The FORMAT options are:

    ^2/1^0  Format a diskette for single-sided use.
    ^2/4^0  Format a double-density 5 1/4" diskette in a high-capacity drive.
    ^2/8^0  Format a diskette for 8 sectors per track rather than the default
        9 sectors in a double-density drive, or 15 in a high capacity drive.
    ^2/B^0  Leave space on the disk for the system files (IBMBIO.COM and
        IBMDOS.COM, or IO.SYS and MSDOS.SYS) so that they can be added
        later with the @SYS[SYS] command.
    ^2/F:nn^0  (DOS 5+ only) Specifies the formatted disk size.  (For example,
        ^B/F:360^b, ^B/F:720^b, ^B/F:1.2^b, ^B/F:1.44^b, and ^B/F:2.88^b)  This is an easier
        way to specify the disk size than having to combine ^B/N^b and ^B/T^b.
    ^2/N:nn^0  Specifies the number of sectors per track on the formatted
        disk.  Use ^B/N:9^b to format a 720KB disk in a 3.5" 1.44 MB drive.
    ^2/Q^0  (DOS 5+ only) Quick format - deletes the File Allocation Table
        and root directory of a formatted disk, but does not scan the
        disk for bad sectors.
    ^2/S^0  Copy the hidden operating system files and the command
        processor to the new disk.
    ^2/T:tn^0  Specifies the number of tracks per disk side on the formatted
        disk.  Use ^B/T:80^b to format a 720KB disk in a 3.5" 1.44 MB drive.
    ^2/U^0  (DOS 5+ only) Unconditional format - destroys all data on the
        disk and prevents unformatting the disk.
    ^2/V[:label]^0  Prompt for an 11-character disk volume label.  In DOS 4.0 and
        above, you can enter the label on the command line by following
        the ^B/V^b option with a colon and the label.

^RIn MS-DOS 3.3 and earlier versions, ^BFORMAT /S^b will copy "COMMAND.COM" as the
command processor.  In MS-DOS 4.0 and later, ^BFORMAT /S^b will copy the program
specified by the @COMSPEC[%COMSPEC] environment variable, but name it "COMMAND.COM" on
the target disk, regardless of its original name.^R

See also @DISKCOPY[DISKCOPY], @SYS[SYS] and @UNFORMAT[UNFORMAT].

^1EXAMPLES^0

Create a boot disk in drive A:

    c:\> format a: /s

Format a 3 1/2" double density disk in high capacity drive B: and prompt for
a volume label:

    c:\> format b: /n:9 /t:80 /v

FREE FREE  (Internal 4DOS)

^1SYNTAX^0

	^BFREE [d:] ...^b

^1PURPOSE^0

Display the total disk space, total bytes used, and total bytes free on the
specified (or default) drive(s).

^1COMMENTS^0

FREE provides the same disk information as the external MS-DOS command
CHKDSK, but without the wait.

See also @CHKDSK[CHKDSK] and @MEMORY[MEMORY].

^1EXAMPLE^0

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

    c:\> free a: b: c:

GLOBAL GLOBAL  (Internal 4DOS)

^1SYNTAX^0

	^BGLOBAL [/H /I /P /Q] command^b

^1PURPOSE^0

Execute a command in the current directory and its subdirectories.

^1COMMENTS^0

GLOBAL performs the specified command first in the current directory, and
then in every subdirectory under the current directory.

The command can be a 4DOS internal command or alias, an external command,
or a batch file.

The GLOBAL options are:

    ^2/H^0  Process @ATTRIB%hidden[hidden] subdirectories.
    ^2/I^0  Ignore exit codes.  If this option is not specified, GLOBAL will
        terminate if the command returns a non-zero @EXITCODE[exit code].
    ^2/P^0  Prompt for a Y/N whether to execute the command in each directory.
    ^2/Q^0  Do not display the directory names as each directory is accessed.


^1EXAMPLE^0

Copy the files in every directory on drive A to the directory C:\TEMP:

    c:\> cd a:\ ^ global copy a:*.* c:\temp

GOSUB GOSUB  (Internal 4DOS)

^1SYNTAX^0

	^BGOSUB label^b

^1PURPOSE^0

Call a subroutine in a batch file.

^1COMMENTS^0

GOSUB calls the specified label as a subroutine.  The subroutine must end
with a @RETURN[RETURN] statement.  After the RETURN, 4DOS will continue processing
with the command following the GOSUB command.

4DOS searches for the label starting at the first line of the batch file.
If the label doesn't exist, the batch file is terminated with the error
message "Label not found."

The label must begin with a colon (^B:^b), and appear by itself on the line.
4DOS ignores case differences when matching labels.

See also @GOTO[GOTO] and @RETURN[RETURN].

^1EXAMPLE^0

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 GOTO  (Internal 4DOS)

^1SYNTAX^0

	^BGOTO [/I] label^b

^1PURPOSE^0

Continue batch file processing at the line following the label.

^1COMMENTS^0

GOTO changes the current position in the batch file to the line immediately
following the label.

4DOS searches for the label starting at the first line of the batch file.
If the label doesn't exist, the batch file is terminated with the error
message "Label not found."

The label must begin with a colon (^B:^b), and appear by itself on the line.
4DOS ignores case differences when matching labels.

A GOTO will cancel all @IFF[IFF] nesting, unless you specify the ^B/I^b option.

See also @GOSUB[GOSUB].

^1EXAMPLE^0

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 GRAFTABL  (External MS-DOS)

^1SYNTAX^0

	^BGRAFTABL [ ? | 437 | 860 | 863 | 865 | /STA ]^b

^1PURPOSE^0

Load a character table to allow the CGA to display @>SUPPORT^ASCII[ASCII] values above ^B127^B.

^1COMMENTS^0

Use GRAFTABL to display foreign language and line-drawing characters while in
graphics mode on a CGA (color graphics adapter).

The GRAFTABL options are:

    ^2?^0     Display the GRAFTABL syntax options.
    ^2437^0   Use the U.S./English code page (default).
    ^2860^0   Use the Portugese code page.
    ^2863^0   Use the French code page.
    ^2865^0   Use the Nordic code page.
    ^2/STA^0  Display the current GRAFTABL status.

GRAFTABL is memory-resident, and uses about 1.5K of RAM (DOS 3.3).

See also @GRAPHICS[GRAPHICS].

GRAPHICS GRAPHICS  (External MS-DOS)

^1SYNTAX^0

	^BGRAPHICS [printer] [/B /P=n /R /LCD]^b

^1PURPOSE^0

Enables graphics printing, allowing a compatible printer to print a screen
image displayed on a graphics monitor.

^1COMMENTS^0

The GRAPHICS parameters are:

    ^2printer^0  Selects one of the following printer types:
               ^BGRAPHICS^b = IBM Personal Graphics Printer, IBM Proprinter
                          or IBM Quietwriter
               ^BCOLOR1^b   = Black ribbon
               ^BCOLOR4^b   = Red/green/blue/black ribbon
               ^BCOLOR8^b   = Cyan/magenta/yellow/black ribbon
               ^BTHERMAL^b  = IBM PC convertible Thermal Printer
             The following printer types are only available with DOS 5:
               ^BHPDEFAULT^b = Any Hewlett-Packard PCL printer
               ^BDESKJET^b   = Hewlett-Packard DeskJet
               ^BGRAPHICSWIDE^b = IBM Personal Graphics Printer with an
                              11-inch wide carriage
               ^BLASERJET^b  = Hewlett-Packard LaserJet
               ^BLASERJETII^b = Hewlett-Packard LaserJet II
               ^BPAINTJET^b  = Hewlett-Packard PaintJet
               ^BQUIETJET^b  = Hewlett-Packard QuietJet
               ^BQUIETJETPLUS^b = Hewlett-Packard QuietJet Plus
               ^BRUGGEDWRITER^b = Hewlett-Packard RuggedWriter
               ^BRUGGEDWRITERWIDE^b = Hewlett-Packard RuggedWriterwide
               ^BTHINKJET^b  = Hewlett-Packard ThinkJet
    ^2/B^0       Prints background color (default is not to print background).
    ^2/P=n^0     Specifies the parallel port to which GRAPHICS sends screen
             output (default = first parallel port, normally LPT1:).
    ^2/R^0       Reverses the printed image to print black and white as they
             appear on the display.  The default is to print a white on
             black screen as black on white.
    ^2/LCD^0     Prints the image as it appears on the IBM PC Convertible LCD
             screen.  May not be implemented in some versions of MS-DOS.

GRAPHICS is memory-resident, and uses about 3.5K of RAM (DOS 3.3).

See also @GRAFTABL[GRAFTABL].

^1EXAMPLES^0

Enable graphics printing on a graphics printer connected to parallel port 1;
background color will not be printed and the foreground image will print
in black:

    c:\> graphics

Enable graphics printing on a four color printer connected to the second
parallel port:

    c:\> graphics color4 /p=2 /r

HISTORY HISTORY  (Internal 4DOS)

^1SYNTAX^0

	^BHISTORY [/A command] [/F /P] [/R [d:][path]filename]^b

^1PURPOSE^0

Display, read, or clear the history list.

^1COMMENTS^0

If no parameters are entered, HISTORY displays the current history list.

The HISTORY options are:


    ^2/A^0  Add the specified command to the history list.
    ^2/F^0  Clear the command history list.
    ^2/P^0  Prompt for a key after displaying each page.
    ^2/R^0  Read the command history from the specified file. You can save the
        history list by redirecting the output of HISTORY to a file.


The number of commands saved in the history list depends on the length of
each command line.  The history list size can be specified at startup from
^B256^b to ^B8192^b characters.  The default size is ^B1024^b characters.

You can disable saving commands to the history list, or specify a minimum
command line length to save, with the "@HistMin[HistMin=]" INI directive.

The HISTORY stack may also be accessed in a "popup" window. See the
@DIRECTIVES[History Window] INI directives.

^1EXAMPLES^0

Display the history list:

    c:\> history

Clear the history entries:

    c:\> history /f

Save the history list to the file HISTFILE, and then read it in again:

    c:\> history > histfile
    c:\> history /r histfile

IF IF  (Internal 4DOS)

^1SYNTAX^0

    ^BIF [NOT] condition [.AND. | .OR. | .XOR. [NOT] condition ...] command^b

^1PURPOSE^0

Allow conditional execution of commands.

^1COMMENTS^0

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 ^BNOT^b option, the command is executed only when the condition is
false.  ^BIF^b statements can be nested.

The command can be a 4DOS internal command or alias, an external command,
or a batch file.

For the string tests, case differences are ignored.  When comparing strings,
you should enclose them in double quotes (see examples).  The use of double
quotes reduces problems when the strings being compared contain characters
which may have another meaning to 4DOS.  If the strings begin with a digit,
IF will do a numeric comparison. Otherwise, ^BIF^b does an @>SUPPORT^ASCII[ASCII] comparison.

The ^B.AND.^b, ^B.OR.^b, and ^B.XOR.^b tests allow you to combine tests in an
IF statement.  The expressions are scanned from left to right.

The condition can be any of the following:

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

    string1 ^2!=^0 string2
    string1 ^2NE^0 string2
      If string1 is not equal to string2, the condition is true.

    string1 ^2LT^0 string2
      If string1 is < string2, the condition is true.

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

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

    string1 ^2GT^0 string2
      If string1 is > string2, the condition is true.

In the tests below, the term "condition" refers to one of the relational
operators described for the string tests above (^B==^b, ^BEQ^b, ^BNE^b, ^BLT^b, etc.).

    ^2ERRORLEVEL^0 ^B[condition] number^b
      Test the exit code of the preceding external program.  If no
      relational operator (EQ, GT, etc.) is specified, the default is ^BGE^b.
      NOTE:  Not all programs return an explicit @EXITCODE[exit code].  In those
      cases, the behavior of ERRORLEVEL is undefined.

    ^2EXIST^0 ^B[d:][path]filename^b
      If the file exists, the condition is true.  You can use wildcard
      characters in the filename, in which case the condition is true if
      any file matching the wildcards exists.

    ^2ISALIAS^0 ^Baliasname^b
      If the specified name is an @ALIAS[alias], the condition is true.

    ^2ISDIR^0 ^B[d:]path^b
      If the subdirectory exists, the condition is true.

    ^2ISINTERNAL^0 ^Bcommand^b
      If the specified command is an internal 4DOS command, the condition
      is true.

    ^2ISLABEL^0 ^Blabelname^b
      If the specified label exists in the current batch file, the
      condition is true.

See also @IFF[IFF].

^1EXAMPLES^0

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" == "ws" goto wordproc
    if "%cmd" NE "graphics" goto badentry

Test for more than 500K of free DOS memory:

    c:\> if %@@dosmem[k] gt 500 echo More than 500K free

Test for EMS and XMS memory both greater than 1 Mb:

    c:\> if %@@ems[m] gt 2 .AND. %@@xms[m] gt 1 echo Plenty of memory!

Run the program MONOPROG if the monitor type is monochrome:

    c:\> if %_monitor == mono monoprog

IFF IFF  (Internal 4DOS)

^1SYNTAX^0

  ^BIFF [NOT] condition [.AND. | .OR. | .XOR. [NOT] condition ...] THEN ^^^b
     ^B ... ^ ELSE[[IFF] ... THEN] ^^ ... ^^ ENDIFF ^b

^1PURPOSE^0

Allow IF/THEN/ELSE conditional execution of commands.

^1COMMENTS^0

4DOS first tests the given condition.  If the condition is true, 4DOS
executes the specified command(s) until the next ELSE, ELSEIFF, or ENDIFF;
otherwise the command(s) will be ignored and 4DOS will continue parsing at
the next ELSE, ELSEIFF, or ENDIFF.  If you use the ^BNOT^b option, commands are
executed only when the condition is false.  ^BIFF^b statements can be nested up
to ^B15^b levels deep.

The ^B.AND.^b, ^B.OR.^b, and ^B.XOR.^b tests allow you to combine tests in an
IFF statement.  The expressions are scanned from left to right; each
new ^B.AND.^b, ^B.OR.^b, or ^B.XOR.^b tests the combination of all preceding tests.

The command can be a 4DOS internal command or alias, an external command,
or a batch file.

If you do a @GOTO[GOTO] inside an IFF, 4DOS assumes you are jumping outside the
IFF statement.  You cannot GOTO another part of the same IFF, or inside
another IFF statement.

See the @IF[IF] command for a list of the tests available.

^1EXAMPLE^0

The following batch file fragment tests the monitor type (monochrome or
color), and sets the appropriate colors and prompt:

    iff %_monitor == color then
      color bright white on blue ^^ cls
      prompt=$e[s$e[1;1f$e[41;1;37m$e[K  Path: $p$e[u$e[44;37m$n$g
    else
      prompt=$e[s$e[1;1f$e[0;7m$e[K  Path: $p$e[u$e[0m$n$g
    endiff

The following alias checks to see if the argument is a subdirectory.  If
so, the alias deletes the subdirectory's files and removes it (enter this
on one line):

    c:\> alias zap `iff isdir %1 then ^^ del /s/x/z %1 ^^ else ^^^
                                        echo Not a directory! ^^ endiff`

.OR. .OR.  (Logical Operator)

   (see @IF%.OR.[IF] and @IFF%.OR.[IFF]).

.AND. .AND.  (Logical Operator)

   (see @IF%.AND.[IF] and @IFF%.AND.[IFF]).

.XOR. .AND.  (Logical Operator)

   (see @IF%.XOR.[IF] and @IFF%.XOR.[IFF]).

INKEY INKEY  (Internal 4DOS)

^1SYNTAX^0

	^BINKEY [/K"..." /Wn] [text] %%varname^b

^1PURPOSE^0

Get a single keystroke environment variable from standard input.

^1COMMENTS^0

You can optionally display prompt text before the variable name.

The INKEY options are:


    ^2/K^0  The allowable keystrokes (@KEYS[Key Names], enclosed in double quotes.
        If you want to read a control or function key, you must enclose it in square
        brackets (for example, ^BINKEY /K"ab[F1][F10]"^b).

    ^2/W^0  Timeout period, where "^Bn^b" is the number of seconds to wait for a
        response.  If no keystroke is entered by the end of the timeout
        period, INKEY returns with the variable unchanged.  You can specify
        ^B/W0^b to check if a keystroke is waiting, and return immediately.


@>SUPPORT^ASCII[ASCII] values from ^B1^b to ^B255^b are stored as a character.  Extended characters
(for example, function keys & cursor keys) are stored as a string in decimal
format, with a leading ^B@@^b (for example, the F1 key is stored as @@59).

^BINKEY^b and ^BINPUT^b are normally used as batch file commands, allowing you
great flexibility in entering or changing batch variables.

If you press ^BCtrl-C^b or ^BCtrl-BREAK^b while INKEY is waiting for a key, execution of an
alias will be terminated, and execution of a batch file will be suspended
while you are prompted whether to cancel the batch job.

See also @INPUT[INPUT].

The following table lists the common extended key codes:

    F1  @@59   Alt-F1  @@104   Ctl-F1  @@94    Shift-F1  @@84
    F2  @@60   Alt-F2  @@105   Ctl-F2  @@95    Shift-F2  @@85
    F3  @@61   Alt-F3  @@106   Ctl-F3  @@96    Shift-F3  @@86
    F4  @@62   Alt-F4  @@107   Ctl-F4  @@97    Shift-F4  @@87
    F5  @@63   Alt-F5  @@108   Ctl-F5  @@98    Shift-F5  @@88
    F6  @@64   Alt-F6  @@109   Ctl-F6  @@99    Shift-F6  @@89
    F7  @@65   Alt-F7  @@110   Ctl-F7  @@100   Shift-F7  @@90
    F8  @@66   Alt-F8  @@111   Ctl-F8  @@101   Shift-F8  @@91
    F9  @@67   Alt-F9  @@112   Ctl-F9  @@102   Shift-F9  @@92
   F10  @@68  Alt-F10  @@113  Ctl-F10  @@103  Shift-F10  @@93

    Home  @@71     Up    @@72    PgUp   @@73
    Left  @@75                  Right  @@77
    End   @@79     Down  @@80    PgDn   @@81
    Ins   @@82     Del   @@83

    Ctl-Home  @@119            Ctl-PgUp   @@132
    Ctl-Left  @@115            Ctl-Right  @@116
    Ctl-End   @@117            Ctl-PgDn   @@118

    Ctl-A  1    Ctl-N  14
    Ctl-B  2    Ctl-O  15
    Ctl-C  3    Ctl-P  16
    Ctl-D  4    Ctl-Q  17
    Ctl-E  5    Ctl-R  18
    Ctl-F  6    Ctl-S  19
    Ctl-G  7    Ctl-T  20
    Ctl-H  8    Ctl-U  21
    Ctl-I  9    Ctl-V  22
    Ctl-J  10   Ctl-W  23
    Ctl-K  11   Ctl-X  24
    Ctl-L  12   Ctl-Y  25
    Ctl-M  13   Ctl-Z  26

    Alt-A  @@30   Alt-N  @@49   Alt-1  @@120
    Alt-B  @@48   Alt-O  @@24   Alt-2  @@121
    Alt-C  @@46   Alt-P  @@25   Alt-3  @@122
    Alt-D  @@32   Alt-Q  @@16   Alt-4  @@123
    Alt-E  @@18   Alt-R  @@19   Alt-5  @@124
    Alt-F  @@33   Alt-S  @@31   Alt-6  @@125
    Alt-G  @@34   Alt-T  @@20   Alt-7  @@126
    Alt-H  @@35   Alt-U  @@22   Alt-8  @@127
    Alt-I  @@23   Alt-V  @@47   Alt-9  @@128
    Alt-J  @@36   Alt-W  @@17   Alt-0  @@129
    Alt-K  @@37   Alt-X  @@45
    Alt-L  @@38   Alt-Y  @@21
    Alt-M  @@50   Alt-Z  @@44

^1EXAMPLES^0

Prompt for a number and store it in the variable NUM:

    inkey /K"123456789" Enter a number from 1 to 9:  %%num

The following batch file fragment waits up to 10 seconds for a character,
then tests to see if a "Y" was entered:

    set net=N
    inkey /w10 Do you want to load the network (Y/N)? %%net
    if "%net"=="Y" goto load_net

The following code fragment  checks to see if the ESCAPE key was pressed
since the last time the keyboard buffer was cleared:

     inkey /w0 %%i
     if "%@ascii[%i]" == "27" goto user_esc


INPUT INPUT  (Internal 4DOS)

^1SYNTAX^0

	^BINPUT [/Wn] [text] %%varname^b

^1PURPOSE^0

Enter an environment variable from the standard input.

^1COMMENTS^0

You can optionally display prompt text before the variable name.

The only INPUT option is:

    ^2/W^0  Specify a timeout period, where "^Bn^b" is the number of seconds to
        wait for a response.  If no keystroke is entered by the end of the
        timeout period, INPUT returns with the variable unchanged.  If you
        enter a key before the timeout period, INPUT will wait indefinitely
        for the remainder of the line.  You can specify ^B/W0^b to check if a
        key is already in the buffer, and return immediately.

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

^BINPUT^b and ^BINKEY^b are normally used as batch file commands, allowing you
great flexibility in entering or changing batch variables.

See also @INKEY[INKEY].

^1EXAMPLE^0

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

    input Enter the file name:  %%fname

JOIN JOIN  (External MS-DOS)

^1SYNTAX^0

	^BJOIN d: d:\path^b    or    ^BJOIN d: [/D]^b    or    ^BJOIN^b

^1PURPOSE^0

Connect a drive to a directory on another drive.

^1COMMENTS^0

The specified path must be an empty directory which is only one level deep
from the root; it cannot be the current directory.  If the named directory
doesn't exist, MS-DOS creates it automatically.

Entering JOIN with no parameters will produce a list of the drives and
directories that are JOINed.  The only JOIN option is:

    ^2/D^0  Disconnect a join.

Once a drive is JOINed it no longer exists to the system and "invalid drive
specification" will be indicated if the user attempts to refer to the drive.
The JOIN must be disconnected before the drive can be used again.

After a JOIN, the entire directory structure of the source drive appears
within the destination subdirectory.  Files in the root directory of the
source drive appear in the destination subdirectory itself; lower-level
directories on the source drive appear as corresponding lower-level
directories in the destination subdirectory.  This is the inverse of @SUBST[SUBST].

Do not JOIN a drive that has been @ASSIGN[ASSIGN]ed or @SUBST[SUBST]ituted.  Do not use
@BACKUP[BACKUP], @DISKCOMP[DISKCOMP], @DISKCOPY[DISKCOPY], @FORMAT[FORMAT] or @RESTORE[RESTORE] when JOIN is in effect.

See also @ASSING[ASSIGN] and @SUBST[SUBST].

^1EXAMPLES^0

Join everything in drive A so that it appears in directory C:\ADISK:

    c:\> join a: c:\adisk

Undo the join:

    c:\> join a: /d

KEYB  KEYB  (External MS-DOS)

^1SYNTAX^0

	^BKEYB [/E /ID:nn] [xx[,[yyy],[[d:][path]filename]]]^b

^1PURPOSE^0

Replaces the keyboard program contained in ROM BIOS to support keyboards
which do not have the default U.S. English layout.

^1COMMENTS^0

The KEYB parameters are:

    ^2/E^0      (DOS 5+ only) An enhanced keyboard is installed on an 8086
            or 8088 computer.
    ^2/ID:nn^0  (DOS 5+ only) The keyboard in use, for countries with multiple
            keyboard layouts for the same language.
    ^2xx^0      The keyboard code such as "^BUK^b" (See MS-DOS documentation).
    ^2yyy^0     The code page number (See MS-DOS documentation).  If this is
            omitted, the default @CHCP%code pages[code page] for the country is assumed.
    ^2filename^0  The filename of the keyboard definition file.  If omitted,
            KEYB attempts to load KEYBOARD.SYS from the root directory of
            the current drive.

If there are no parameters, KEYB displays its current status.

KEYB supports two hot-keys:  ^BCtrl-Alt-F1^b switches back to the U.S. keyboard
while ^BCtrl-Alt-F2^b returns to the specified country keyboard.

KEYB is memory-resident, and uses about 5.5K of RAM (DOS 3.3).

See your MS-DOS documentation for more information on KEYB.

^1EXAMPLES^0

Set the computer to use the UK keyboard:

    c:\> keyb uk,437,c:\dos33\keyboard.sys

Display the current KEYB status:

    c:\> keyb

KEYSTACK KEYSTACK  (Internal 4DOS)

^1SYNTAX^0

	^BKEYSTACK ["abc"] [nn] [key] [@@nn] [!] [/Wn]^b

^1PURPOSE^0

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

^1COMMENTS^0

The KEYSTACK command depends on a small resident program called ^BKSTACK.COM^b,
which must be installed in your AUTOEXEC.BAT file.  If you don't have
KSTACK.COM installed, the KEYSTACK command will display an error message.

Characters entered within double quotes (^B"abc"^b) will be stored "as is" in
the keyboard buffer.  Numbers (^Bnn^b) not enclosed in quotes are @>SUPPORT^ASCII[ASCII] decimal
codes (e.g., 13 (Enter), or 27 (ESC)).  The number ^B0^b 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).

Characters not in double quotes are assumed to refer to control keys,
function keys, or Alt keys (i.e., F1, Alt-F7, etc.).  You can also
enter these keys by preceding them with an ^B@@^b followed by the @KEYS%Scan Codes and K[scan code]
(for example, @@59 is the F1 function key).

A "^B!^b" will clear all pending keystrokes, both in the KEYSTACK buffer and in
the keyboard buffer.

The ^2/W^0 option allows you to wait for the specified number of clock ticks
(each tick = 1/18th second) before passing the following characters.

You can store a maximum of ^B255^b characters.

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

The 4DOS Keystack overcomes two weaknesses of input redirection: many
programs ignore standard input and read the keyboard directly, and input
redirection doesn't end until the program or command terminates.  You can't,
for example, use redirection to send the opening commands to a program and
then type the rest of the commands yourself.  But the Keystack lets you do
exactly that.

The 4DOS Keystack, which is often used in batch files and aliases, sends
keystrokes to an application program.  Once the Keystack is empty, the
program will receive the rest of its input from the keyboard.  The Keystack
is useful when you want a program to take certain actions automatically when
it starts.


If you are using a DOS-based multitasking system such as DESQview or Windows,
see your 4DOS documentation for information on loading KSTACK within a
window.

Some programs require both the @SUPPORT^ASCII[ASCII] code and the key's @KEYS^Scan Codes[scan code].
To put both together in the Keystack, multiply the scan code by ^B256^b, add
the ASCII code, and use the resulting numeric value as an argument to
KEYSTACK.  For example, the Enter key has a scan code of 28 and an ASCII code
of 13.  The combined code is (28 * 256) + 13 = 7181.  To put the combined
code for the Enter key on the keystack:

	c:\> keystack 7181

If a program has different uses for the similar keys on the regular keyboard
and the numeric keypad, it will need combined codes.

You may have to experiment with some programs to find the proper sequence of
keystrokes.  Programs which bypass both DOS and the computer's BIOS, and read
keystrokes directly from the keyboard hardware, will not accept input from
the 4DOS Keystack.  Few programs fit into this category except memory-
resident utilities.

When you use the Keystack, remember that you must put the keystrokes into the
Keystack ^Bbefore^b you run the program that will receive them.  The Keystack
will hold the keystrokes until a program asks for them.

^1EXAMPLES^0

The following batch file starts Lotus 1-2-3 and loads the file specified
on the command line:

    pushd c:\123
    keystack 0 13 0 13 0 13 0 13 0 13 "/fr" 0 "%1" 13
    123
    popd

The same command defined as an alias (enter this on one line):

    alias 321 `pushd c:\123 ^^ keystack 0 13 0 13 0 13 0 13 0 13 "/fr"
                                  0 "%1" 13 ^^ 123 ^^ popd`

LABEL LABEL  (External MS-DOS)

^1SYNTAX^0

	^BLABEL [d:][volume label]^b

^1PURPOSE^0

Create, change, or delete a volume label.

^1COMMENTS^0

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

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

MS-DOS will convert lowercase letters to uppercase.

If the drive is omitted, MS-DOS will assume the default drive.  If the volume
label is omitted, LABEL will prompt for it.  If a blank label is entered in
response to the prompt, the disk label is deleted.

See also @αLABEL[@LABEL], @DISKCOPY[DISKCOPY] and @VOL[VOL].

^1EXAMPLE^0

Label the disk in drive A as BACKUP_88:

    c:\> label a:backup_88

LH  LH  (Internal 4DOS)

^1SYNTAX^0

	^BLH [d:][path]filename^b    or    ^BLOADHIGH [d:][path]filename^b

^1PURPOSE^0

Load a program into high DOS memory.

^1COMMENTS^0

LOADHIGH requires MS-DOS or DR-DOS 5.0 or above, and (in MS-DOS) the
DOS=UMB command in your CONFIG.SYS file.  If there are no UMBs, or if the
program is too large to load in the largest available UMB, the program will
be loaded in low memory.

If you are using DR-DOS, LOADHIGH replaces the ^BHILOAD^b command.

^1EXAMPLE^0

Load the program C:\UTIL\CACHE.EXE into high memory:

    c:\> loadhigh c:\util\cache.exe

LIST LIST  (Internal 4DOS)

^1SYNTAX^0

	^BLIST [/H /S /W] [d:][path]filename...^b

^1PURPOSE^0

Display a file with forward and backward paging and scrolling.

^1COMMENTS^0

LIST provides a much faster and more flexible way to view a file than @TYPE[TYPE],
without the overhead of using a text editor.

The LIST options are:

    ^2/H^0  Strip the high bit from each character before displaying.  This
        is useful when displaying files created by some word processors
        that turn on the high bit for formatting purposes.
    ^2/S^0  Read from the standard input rather than a file.  This allows you
        to redirect command output and view it with LIST.
    ^2/W^0  Wrap the text at the right margin.  This option is useful when
        displaying non-text files.

LIST uses the cursor pad to scroll through the file.  The following keys
have special meanings (the caret ^B^^^b means press the ^BCtrl^b key together with
the specified key):

    ^BHOME^b  Display the first page of the file
    ^BEND^b   Display the last page of the file
    ^BPgUp^b  Scroll back one page
    ^BPgDn^b  Scroll forwards one page
    ^BEsc^b   Exit the current file
    ^B^^C^b    Quit LIST
    ^B^b     Scroll up one line
    ^B^b     Scroll down one line
    ^B^b     Scroll left 8 columns
    ^B^b     Scroll right 8 columns
    ^B^^^b    Scroll left 40 columns
    ^B^^^b    Scroll right 40 columns
    ^BF1^b    Call the on-line help (^B4HELP.EXE^b)
    ^BF^b     Prompt and search for a string (case is ignored)
    ^BH^b     Toggle the "strip high bit" (^B/H^b) option
    ^BN^b     Find next matching string (case is ignored).  LIST saves the
            search string, so you can LIST multiple files and search for
            the same string by pressing ^BN^b in each file.
    ^BP^b     Print the file on LPT1
    ^BW^b     Toggle the "line wrap" (^B/W^b) option

^BNote:^b The above default key assignments can be overridden with the proper
      INI directives.

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[TYPE].


^1EXAMPLES^0

Display the file MEMO.DOC:

    c:\> list memo.doc

Display the output from a DIR command:

    c:\> dir | list /s

LOADBTM LOADBTM  (Internal 4DOS)

^1SYNTAX^0

	^BLOADBTM [on | off]^b

^1PURPOSE^0

Switch a batch file to or from BTM mode.

^1COMMENTS^0

LOADBTM switches a batch file (BAT or BTM) to and from ^BBTM^b mode.  If no
argument is given, it displays the current LOADBTM status.

^BBTM^b mode runs from two to five times faster than ^BBAT^b mode, but should
not be used to load memory resident programs or for self-modifying batch
files.

LOADBTM can only be used within a BAT or BTM file.

See the 4DOS manual for more information on BTM files.

^1EXAMPLE^0

The following batch file (BAT) fragment loads some memory resident
programs, and then switches to BTM mode:

    Rem The initial default state is LOADBTM OFF
    Rem loading TSRs...
    ansi.com
    mouse.com
    Rem Switch to high-speed (BTM) mode now that TSRs are loaded
    loadbtm on
    set path=c:\;c:\util;c:\dos
    alias /r c:\aliases
    set temp=d:\

LOG LOG  (Internal 4DOS)

^1SYNTAX^0

	^BLOG [/W [d:]pathname] [ON | OFF | "text"]^b

^1PURPOSE^0

Save a log of commands to a disk file.

^1COMMENTS^0

The default LOG filename is "^B4DOSLOG.^b" in the root directory of the boot drive.
The LOG status and log filename will be passed to secondary shells.

Entering LOG with no parameters displays the log status (^BON^b or ^BOFF^b).
Entering LOG with text writes the text to the log file, even if LOG is
set OFF.  This allows you to enter headers in the log file.

You can specify a different filename with the ^2/W^0^B(rite)^b option.  ^B/W^b
automatically enables command logging.

Also see the "@LogName[LogName=]" INI directive.

The commands are stored in the log file as they are executed, after
performing any alias or variable expansion.

The LOG file format looks like:

    ^B[mm/dd/yy  hh:mm:ss] command^b

^1EXAMPLES^0

Display the LOG status:

    c:\> log
    LOG is OFF

Enable command logging:

    c:\> log on

Enable command logging to the file C:\LOG\LOGFILE and insert a header:

    c:\> log /w c:\log\logfile
    c:\> log "Started work on the database system"

MD MD  (Internal 4DOS)

^1SYNTAX^0

	^BMD [d:]pathname...^b    or    ^BMKDIR [d:]pathname...^b

^1PURPOSE^0

Create subdirectories.

^1COMMENTS^0

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

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

See also @RD[RD].

^1EXAMPLE^0

Create a subdirectory called MYDIR in the root directory:

    c:\> md \mydir

MEM MEM  (External MS-DOS)

^1SYNTAX^0

	^BMEM [/C /D /P]^b

^1PURPOSE^0

Display information about allocated and free memory, and resident programs.

^1COMMENTS^0

You cannot combine any of the MEM options.  The options are:

    ^2/C^0  Display a summary of memory usage by resident programs in
        conventional and upper memory.
    ^2/D^0  Displays a summary of memory usage by internal device drivers and
        resident programs, and total and available memory.
    ^2/P^0  Display the status of resident programs.

See also @MEMORY[MEMORY]

MEMORY MEMORY  (Internal 4DOS)

^1SYNTAX^0

	^BMEMORY^b

^1PURPOSE^0

Display the system RAM status.

^1COMMENTS^0

MEMORY displays the ^Btotal RAM^b, the ^Bfree RAM^b (available to applications
programs after loading MS-DOS, device drivers, 4DOS, and RAM resident
programs); the total and free ^Bexpanded^b memory; ^BXMS^b and ^Bextended^b memory (on
an 80286, 80386, or 80486), the total and free ^Benvironment space^b, the total
and free ^Balias list space^b, and the total command ^Bhistory space^b.

If you compare the free RAM displayed by MEMORY with that displayed by
@CHKDSK[CHKDSK] and some memory map programs, MEMORY will usually show a slightly
higher value.  The difference is the size of the environment passed to
these external programs; these programs do not count the passed environment
as free space.

See also @MEM[MEM].

^1EXAMPLE^0

Display your RAM totals:

    c:\> memory

MIRROR MIRROR  (External MS-DOS)

^1SYNTAX^0

	^BMIRROR [d: ...] [/1 /Td[-entries]]^b
    or
	^BMIRROR [/U]^b
    or
	^BMIRROR [/PARTN]^b

^1PURPOSE^0

Records information about disk drives for use by @UNDELETE[UNDELETE] and @UNFORMAT[UNFORMAT].

^1COMMENTS^0

The MIRROR parameters are:

    ^2d:^0  The drive for which MIRROR should save information.
    ^2/L^0  Save only the latest information.  If no ^B/L^b is specified, MIRROR
        will make a backup copy of the existing file before saving the new
        information.
    ^2/PARTN^0  Save hard disk partition information to a file on a floppy
        disk.  UNFORMAT uses this file to rebuild partitions.
    ^2/Td[-entries]^0  Load a TSR program that monitors deletes and saves
        information used by UNDELETE to recovered deleted files.  ^Bd:^b
        specifies the disk to monitor; the optional ^Bentries^b parameter
        specifies the maximum number of entries in the deletion-tracking
        file (PCTRACKR.DEL).
    ^2/U^0  Unload the deletion-tracking program from memory.

See also @UNDELETE[UNDELETE] and @UNFORMAT[UNFORMAT].

^1EXAMPLE^0

Save a copy of the FAT and root directory of drives C: and D:, and
install deletion tracking for C: and D:

    c:\> mirror c: d: /tc /td

MODE MODE  (External MS-DOS)

^1SYNTAX^0

See below

^1PURPOSE^0

Setup a printer, video display, serial port, or code page switching.

^1COMMENTS^0

MODE is memory-resident, and uses about 1.2K of RAM (DOS 3.3).

To set the ^Bprinter^b parameters:

    ^BMODE LPT#[:][n][,[m][,p]]^b

      ^2#^0  ^B1^b, ^B2^b, or ^B3^b (the printer number).
      ^2n^0  ^B80^b or ^B132^b characters per line.
      ^2m^0  ^B6^b or ^B8^b lines per inch.
      ^2P^0  Force a continuous retry on printer time-out errors.

To set the ^Bvideo display^b parameters:

    ^BMODE n^b    or    ^BMODE [n],m[,T]^b

      ^2n^0  ^B40^b, ^B80^b, ^BBW40^b, ^BBW80^b, ^BCO40^b, ^BCO80^b, or ^BMONO^b.
      ^2m^0  ^BR^b or ^BL^b  (shift the display right or left).
      ^2T^0  Display an alignment test pattern..

To set the ^Bserial port^b parameters:

    ^BMODE COMn:baud[,parity][,databits[,stopbits[,P]]]^b

      ^2n^0  ^B1^b, ^B2^b, ^B3^b or ^B4^b (serial port number)
      ^2baud^0  ^B11^B^b, ^B15^B^b, ^B30^b0, ^B60^b0, ^B12^b00, ^B24^b00, ^B48^b00, ^B96^b00 or ^B19^b200 (baud
          rate; only the first two digits are required).
      ^2parity^0  ^BN^b (none), ^BO^b (odd) or ^BE^b (even); the default is E.
      ^2databits^0  ^B7^b or ^B8^b; the default is 7.
      ^2stopbits^0  ^B1^b or ^B2^b  the default is 2 for 110 baud, and 1 for all
          other baud rates.
      ^2P^0  Force a continuous retry on printer time-out errors.

To redirect parallel port output to a serial port:

    ^BMODE LPT#:=COMn^b

      ^2#^0  ^B1^b, ^B2^b, or ^B3^b (parallel port or printer number).
      ^2n^0  ^B1^b, ^B2^b, ^B3^b or ^B4^b (serial port number).

Before parallel port output can be redirected, the serial port must be
initialized (see the previous option to set serial port parameters).

To prepare one or more code pages:

    ^BMODE device CODEPAGE PREPARE=((cplist) [d:][path]filename)^b

      ^2device^0  ^BCON^b, ^BPRN^b, ^BLPT1^b, ^BLPT2^b or ^BLPT3^b
      ^2(cplist)^0  one or more code page numbers.  The valid code page numbers
          are ^B437^b, ^B850^b, ^B860^b, ^B863^b and ^B865^b.
      ^2filename^0  Specifies the file containing the code page(s).  On an IBM
          PC these are:
             ^24201.CPI^0  IBM Proprinter
             ^25202.CPI^0  IBM Quietwriter III Printer
             ^2EGA.CPI^0   EGA type devices
             ^2LCD.CPI^0   IBM Convertible LCD display

CODEPAGE PREPARE can be abbreviated "^Bcp prep^b".  In the code page list,
unchanged pages are surrounded by commas.  For example in the list
(850,,863), the second code page remains as it was set in the previous
CODEPAGE PREPARE command for the device.

To select a code page:

    ^BMODE device CODEPAGE SELECT=cp^b

      ^2device^0  ^BCON^b, ^BPRN^b, ^BLPT1^b, ^BLPT2^b or ^BLPT3^b
      ^2cp^0  the code page number to be activated.  The valid code page
          numbers are ^B437^b, ^B850^b, ^B860^b, ^B863^b and ^B865^b.

CODEPAGE SELECT can be abbreviated "^Bcp sel^b".  The value of ^Bcp^b must be one
of the code pages previously activated for the specified device with the
CODEPAGE PREPARE option.

To display the active code page:

    ^BMODE device CODEPAGE [/STA]^b
      ^2device^0  ^BCON^b, ^BPRN^b, ^BLPT1^b, ^BLPT2^b or ^BLPT3^b
      ^2/STATUS^0  (or ^2/STA^0) is optional and has no effect

This command displays the active code page and a list of selectable code
pages for the specified device.

To refresh a code page:

    ^BMODE device CODEPAGE REFRESH^b

This command refreshes the code page on the specified device if it has been
lost (for example, by turning off the printer).  CODEPAGE REFRESH can be
abbreviated "^Bcp ref^b".

See the MS-DOS manual for more information on code pages.  Also see @CHCP[CHCP]
and @NLSFUNC[NLSFUNC].

MORE MORE  (External MS-DOS)

^1SYNTAX^0

	^BMORE^b

^1PURPOSE^0

Display a screen-full of data, then pause.

^1COMMENTS^0

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 ^BLIST^b, ^BLIST /S^b or ^BTYPE /P^b rather than MORE.

See also @LIST[LIST] and @MOVE[TYPE].

MOVE MOVE  (Internal 4DOS)

^1SYNTAX^0

 ^BMOVE [d:][path]filename... [d:][path][filename] [/C /D /H /N /P /Q /R /S /U]^b

^1PURPOSE^0

Move files to other directories and drives.

^1COMMENTS^0

The MOVE command 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.

^B^KUse caution^k^b when using ^BMOVE^b commands with commands like @SELECT[SELECT].  If
multiple files are selected and the target is not a subdirectory, each
file will be moved in turn to the target, overwriting the previous file.
The net result is that all files but the last will be deleted.  If SELECT
is invoked using square brackets instead of parentheses, the MOVE will be
done in a single command and MOVE will detect the error.

The MOVE options are:

    ^2/C^0 (^BC^bhanged)
        Move only files that exist in the target directory, and where
        the source file is newer than the target.
    ^2/D^0 (^BD^birectory)
        The target must be a directory.  If it doesn't exist, you will
        be prompted whether to create it.
    ^2/H^0 (^BH^bidden and system)
        Move all files, including hidden & system.
    ^2/N^0 (^BN^bothing)
        Do everything except actually move the file(s) (for testing what
        the result of a MOVE would be).
    ^2/P^0 (^BP^brompt)
        Prompt for a Y or N response to confirm each move.
    ^2/Q^0 (^BQ^buiet)
        Don't display filenames as they are moved.
    ^2/R^0 (^BR^beplace)
        Prompt for a Y or N response before overwriting an existing file.
    ^2/S^0 (^BS^bubdirectory tree)
        Move an entire subdirectory tree to another location.  The
        target directories will be created if they don't exist (except
        for the first target, which must already exist).  4DOS will remove
        empty subdirectories after the move.
    ^2/U^0 (^BU^bpdate)
        Move only those files that either don't exist in the target
        directory, or where the source file is newer than the target.

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.  If MOVE cannot delete the original
(for example, a read-only file), it will display an error message, but the
target file is still created.

See also @COPY[COPY], @REN[REN] and @XCOPY[XCOPY].

^1EXAMPLES^0

Move some files to a different directory:

    c:\> move *.wks *.txt c:\finance\myfiles

Move all the files in the current directory to A:\, prompting before
overwriting any existing files:

    c:\> move /r *.* a:\

NLSFUNC NLSFUNC  (External MS-DOS)

^1SYNTAX^0

	^BNLSFUNC [[d:][path]filename]^b

^1PURPOSE^0

Supports extended country information, and allows for the display and
printing of national symbol sets.

^1COMMENTS^0

NLSFUNC must be loaded prior to using @CHCP[CHCP].

The filename specifies the name and location of the country information file.
If this parameter is omitted, the command will use the path and filename
specified in the ^BCOUNTRY=^b statement in the CONFIG.SYS file.

See your MS-DOS manual for more information on code page switching.

See also @CHCP[CHCP] and @MODE[MODE].

^1EXAMPLE^0

Setup code page switching using COUNTRY.SYS in the C:\DOS33 directory:

    c:\> nlsfunc c:\dos33\country.sys

PATH PATH  (Inter 4DOS)

^1SYNTAX^0

		^BPATH [[d:]path][[;[d:]path]...]]^b
	  or    ^BPATH ;^b
	  or    ^BPATH^b

^1PURPOSE^0

Tells 4DOS where to search for executable and batch files not in the
current directory. This information is kept in the @÷PATH[%PATH variable].

^1COMMENTS^0

When searching for an external command (.COM, .EXE, .BTM, and .BAT, in that
order), 4DOS searches the current directory first, then the directories you
specify in the PATH, in the order you list them. The directory names are
separated by semicolons (^B;^b).

Like COMMAND.COM, 4DOS shifts the entire path to upper case before storing
it in the environment. This maintains compatibility with programs which
can only recognize an upper case path.

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.

If you have a directory '^B.^b' in the PATH, 4DOS will not search the current
directory first, but wait until it reaches that point in the PATH.

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

You can edit an existing path with the @ESET[ESET] command.

^1EXAMPLES^0

The following PATH command directs 4DOS to search for an executable file
in the following order: the current directory, the root directory on drive
C, the DOS subdirectory on drive C, and the UTIL subdirectory on drive C:

    c:\> path c:\;c:\dos;c:\util

Display the current search path:

    c:\> path

PAUSE PAUSE  (Internal 4DOS0

^1SYNTAX^0

	^BPAUSE [message]^b

^1PURPOSE^0

Suspend alias or batch file execution.

^1COMMENTS^0

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 ^B^^C^b or ^B^^BREAK^b) to be pressed and then
continues executing.  If a prompt message is specified, 4DOS will display
the message and wait for a keystroke.  Otherwise, PAUSE will prompt:

     ^BPress a key when ready...^b

If you press a ^B^^C^b or ^B^^BREAK^b while PAUSE is waiting for a key, execution
of an alias will be terminated, and execution of a batch file will be
suspended while you are prompted whether to cancel the batch file.

See also @INKEY[INKEY] and @INPUT[INPUT].

^1EXAMPLE^0

The following batch file fragment prompts the user before erasing files:

     pause ^^C aborts, any other key erases the .LST files:
     erase *.lst

POPD POPD  (Internal 4DOS)

^1SYNTAX^0

	^BPOPD [*]^b

^1PURPOSE^0

Change to the disk drive and directory at the top of the directory stack.

^1COMMENTS^0

POPD restores the disk and directory saved using @PUSHD[PUSHD] (most recent first).

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

Use the @DIRS[DIRS] command to display the directory stack.

See also @DIRS[DIRS] and @PUSHD[PUSHD].

^1EXAMPLES^0

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 PRINT  (External MS-DOS)

^1SYNTAX^0

 ^BPRINT [/D:device] [/B:bufsiz] [/U:busytick] [/M:maxtick] [/S:timeslice]^b
      ^B[/Q:quesiz] [/T] [/C] [/P]...] [[d:][path][filename][.ext]...]^b

^1PURPOSE^0

Queue and print data files.

^1COMMENTS^0

The PRINT options are:

    ^2/D^0  Specify the print device; the default is ^BPRN^b.
    ^2/B^0  Set the size of the internal buffer; the default is ^B512^b.
    ^2/Q^0  Specify the maximum number of files in the print queue (^B1^b - ^B32^b;
        the default is ^B10^b).
    ^2/S^0  Specify the time-slice value (^B1^b - ^B255^b; the default is ^B8^b).
    ^2/U^0  Specify the number of clock ticks to wait for the printer; the
        default is ^B1^b.
    ^2/M^0  Specify how many clock ticks PRINT can have (^B1^b - ^B255^b; the default
        is ^B2^b).
    ^2/T^0  Stop printing and delete all files from the queue.
    ^2/C^0  Deletes the preceding filename from the print queue, and all
        following filenames until the end of the line or a ^B/P^b.
    ^2/P^0  Adds the preceding filename to the print queue, and all following
        filenames until the end of the line or a ^B/C^b.
    ^2filename^0  File(s) to be added (the default) and/or cleared from the
        print queue (see the ^B/C^b and ^B/P^b options).  The wildcard characters
        * and ? are allowed in file names.

Since PRINT is memory-resident, the ^B/D^b, ^B/B^b, ^B/U^b, ^B/M^b, ^B/S^b and ^B/Q^b options can
only be specified the first time it is invoked.  PRINT uses about 5K of RAM
(DOS 3.3), plus the amount of buffer space requested with the ^B/B^b option.

^1EXAMPLE^0

Set the print device to LPT2, set the buffer to 4K, and the maximum queue
size to 10:

    c:\> print /D:lpt2 /B:4096 /Q:10

PROMPT PROMPT  (Internal 4DOS)

^1SYNTAX^0

	^BPROMPT [text]^b

^1PURPOSE^0

Change the 4DOS command line prompt.

^1COMMENTS^0

If you enter PROMPT with no parameters, 4DOS sets the prompt on drives A
and B to ^B$n$g^b (display current disk only), and on all other drives to ^B$p$g^b
(display current disk and directory).

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

    ^2b^0  The ^B|^b character
    ^2c^0  The open parenthesis ^B(^b
    ^2D^0  Current ^Bdate^b, in the format:  Tue  Jan 1, 1991
    ^2d^0  Current ^Bdate^b, in the format:  Tue  1-01-91
    ^2e^0  The ASCII ^BES^bC character (decimal 27)
    ^2f^0  The close parenthesis ^B)^b
    ^2g^0  The ^B>^b character
    ^2h^0  ^BBACKSPACE^b over the previous character
    ^2l^0  The ^B<^b character
    ^2n^0  ^BDefault drive^b letter (upper case)
    ^2P^0  ^BCurrent disk and directory^b (upper case)
    ^2p^0  ^BCurrent disk and directory^b (lower case)
    ^2q^0  The ^B=^b character
    ^2s^0  The ^Bspace^b character
    ^2t^0  Current ^Btime^b, in the format hh:mm:ss
    ^2v^0  MS-DOS ^Bversion number^b, in the format:  3.31
    ^2Xd:^0  Current disk and directory (upper case) on drive ^Bd:^b
    ^2xd:^0  Current disk and directory (lower case) on drive ^Bd:^b
    ^2z^0  Display the current 4DOS shell ^Bnesting level^b (you must be running
       4DOS as the primary shell in swapping mode).  The primary command
       processor is ^B0^b.
    ^2$^0  The ^B$^b character
    ^2_^0  ^BCR/LF^b (go to beginning of new line)

You can embed any environment variable, 4DOS internal variable, or variable
function in your PROMPT string to view system status or resources.  When
defining the PROMPT to include variables of this type, use two "^B%^b" signs
before the variable name, or enclose the prompt string in back-quotes [^B`^b]
(if you don't, the prompt display will show the value the variable had when
the prompt was defined, not the value at the moment the prompt is displayed).
For example, to show free DOS memory to the left of the standard $p$g prompt:

                prompt [%%@@dosmem[K]K] $p$g
        or      prompt `[%@@dosmem[K]K] $p$g`

See @VARIABLES%Variables Index[VARIABLES] and @FUNCTIONS%Functions Index[FUNCTIONS] for lists of the variables and functions
available.

Under COMMAND.COM, it is possible to use the PROMPT command in a batch file
to transmit ANSI control sequences to the screen (for example, to redefine
function keys).  This is because COMMAND.COM displays a prompt when echoing
lines in a batch file.  This technique will not work with 4DOS, because
4DOS doesn't display a prompt within batch files; hence the characters in
the PROMPT string are never sent to ANSI.SYS.  To send ANSI sequences in
4DOS, use the @ECHO[ECHO] command, substituting ^Be^b (^BCtrl-X^b followed by an ^Be^b) for
^B$e^b in the PROMPT string.

See also @ANSI[ANSI].

^1EXAMPLE^0

Set the prompt to the current date and time:

    c:\> prompt $d $t $g
    Mon Dec 25, 1989 18:29:19 >

PUSHD PUSHD  (Internal 4DOS)

^1SYNTAX^0

	^BPUSHD [[d:]pathname]^b

^1PURPOSE^0

Save the current disk and directory.

^1COMMENTS^0

PUSHD saves the current directory on the directory stack, and if a pathname
is specified on the command line, changes the disk drive and directory.
The directory stack can hold up to ^B255^b characters (about 10 to 20 entries).
If you exceed the directory stack size, the oldest directory is removed
before adding the current directory.

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

See also @CDD[CDD], @DIRS[DIRS] and @POPD[POPD].

^1EXAMPLE^0

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

    c:\> pushd c:\wordp\memos
    c:\wordp\memos>

QUIT QUIT (Internal 4DOS)

^1SYNTAX^0

	^BQUIT [value]^b

^1PURPOSE^0

Terminate the current batch file.

^1COMMENTS^0

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 command following the original call.  To end all batch
file processing, use @CANCEL[CANCEL].  If you specify a value, QUIT will set the
@IF%ERRORLEVEL[ERRORLEVEL] to that value.

You can also use QUIT in an alias.  If you QUIT an alias while inside a
batch file, 4DOS will end both the alias and the batch file.

See also @CANCEL[CANCEL].

^1EXAMPLE^0

Check to see if the user entered "quit" and exit if true:

    input Enter your choice:  %%option
    if "%option" == "quit" quit

RD RD  (Internal 4DOS)

^1SYNTAX^0

	^BRD [d:]path...^b    or    ^BRMDIR [d:]path...^b

^1PURPOSE^0

Remove one or more directories.

^1COMMENTS^0

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 wildcard characters in the directory names.

You cannot remove the root directory (^B\^b), the current directory (^B.^b), or
the parent directory (^B..^b).

See also @MD[MD].

^1EXAMPLE^0

Remove the subdirectory MEMOS from the directory WS on the current drive:

    c:\> rd \ws\memos

REBOOT  REBOOT  (Internal 4DOS)

^1SYNTAX^0

	^BREBOOT [/C /V]^b

^1PURPOSE^0

Do a warm or cold reboot.

^1COMMENTS^0

REBOOT defaults to performing a "^Bwarm^b" boot, without any prompting.  The
options are:

    ^2/C^0  "^BCold^b" reboot.  This is the same as powering the system off and
        on.  A cold boot may be necessary to properly initialize the system.
    ^2/V^0  Prompt for confirmation (Y or N) before rebooting.

REBOOT flushes the disk buffers, resets the drives, and waits one second
before rebooting the system, to allow disk caching programs to finish
writing any cached data.

^1EXAMPLE^0

The following command prompts you to verify the reboot, then does a cold boot:

    c:\> reboot /v /c

RECOVER RECOVER  (External MS-DOS)

^1SYNTAX^0

	^BRECOVER [d:][[path]filename]^b    or    ^BRECOVER d:^b

^1PURPOSE^0

Recover a single file that contains a bad sector (if its directory entry is
intact), or recover all of the files on a disk with a damaged directory.

^1COMMENTS^0

^K^BWARNING:  ^k^2^KThis is an extremely dangerous command.^0^b^k  If you specify recovery
of an entire disk, either explicitly or by failing to specify a file name,
RECOVER will attempt to recover the entire disk without further prompting!
In this case all directory structures, file names, and other distinguishing
information on the disk will be lost.  All files, including those with no bad
sectors, will be converted into root-directory files with names like
FILE0001.REC.

^BWe strongly recommend you delete the RECOVER program provided with MS-DOS
from your disk^b.

The RECOVER parameters are:

    ^2d:^0        The drive designator for the drive that contains the single
              file or the entire drive that is to be recovered (default is
              the current drive).
    ^2path^0      The path containing the single file to be recovered (default
              is the current directory of the specified drive).
    ^2filename^0  The name of the file to be recovered (default is to recover
              the entire disk).

^1EXAMPLES^0

Recover the entire disk in drive A:.  All files on the disk in drive A: will
be placed in the root directory and renamed FILEnnnn.REC.

    c:\> recover a:

Recover only the file named MEMO.ONE in the \REPORT directory on drive C:.
If this file has no bad sectors, it will remain unchanged.

    c:\> recover c:\report\memo.one

REM REM  (Internal 4DOS)

^1SYNTAX^0

	^BREM [comment]^b

^1PURPOSE^0

Put a comment in a batch file.

^1COMMENTS^0

If @ECHO[ECHO] is ON, or the variable VERBOSE (see the @SETDOS%/V[SETDOS /V] 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 ^B@@^b character.


Enter your comment following the REM, separated by a space or tab.
Comments can be up to ^B255^b characters.  4DOS will ignore everything
following a REM, including quote characters, the redirection symbols
(|><) and the command separator character.  An alternate way to put a
comment in a batch file is to begin the line with a "^B:^b"; 4DOS will
interpret the line as a label and ignore it; make sure you don't have
any actual labels beginning with the same word!

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

^1EXAMPLE^0

Enter comments in a batch file:

     rem This batch file provides a menu-based system for accessing the
     rem word processing utilities.  Clear the screen and get a selection
     cls

REN REN  (Internal 4DOS)

^1SYNTAX^0

	^BREN [/N /P /Q /S] [d:][path]oldname... [d:][path]newname^b
      or
	^BRENAME [/N /P /Q /S] [d:][path]oldname... [d:][path]newname^b

^1PURPOSE^0

Rename files or subdirectories.

^1COMMENTS^0

The last filename is the new name; preceding names are the files or
directories to be renamed.  You can use @WILDCARDS[wildcard] characters in the
filenames.  The new filename must not already exist.  You cannot rename
a subdirectory to a new path!

The REN options are:

    ^2/N^0  (^BN^bothing): Do everything except actually rename the file(s) 
        (for testing what the result of a REN would be).
    ^2/P^0  (^BP^brompt): Confirm each rename (Y or N).
    ^2/Q^0  (^BQ^buiet): Don't display filenames as they are renamed.
    ^2/S^0  (^BS^bubdirectory):  Normally, you can rename a subdirectory only if 
	  you do not use any wildcards in the old_name.  This prevents 
          subdirectories from being renamed inadvertently when a group of 
          files is being renamed with wildcards.  ^B/S^b will let you rename a 
          subdirectory even when you use wildcards.

REN in 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 source.  4DOS allows
you to optionally select the target path, renaming the source file to a new
directory on the same disk drive.  If you don't specify a path for the
target, 4DOS will assume a "COMMAND.COM compatible RENAME" and will rename
the source file to the new name without moving it to another directory.

If you want to rename to a different drive, use @MOVE[MOVE].

See also @MOVE[MOVE].

^1EXAMPLE^0

Rename the file MEMO.TXT to OFFICE.TXT:

    c:\> ren memo.txt office.txt

Rename the directory \WORDPROC to \WS:

    c:\> ren \wordproc \ws

REPLACE  REPLACE  (External MS-DOS)

^1SYNTAX^0

	^BREPLACE [d:][path]source [target] [/A /P /R /S /U /W]^b

^1PURPOSE^0

Selectively replaces files in one directory from those in another directory.

^1COMMENTS^0

REPLACE copies the specified files to the destination directory.  If the
files already exist in the destination directory they are overwritten (unless
^B/A^b is specified).  The default target is the current directory.

The ^B/S^b switch can be used to replace all copies of a file anywhere on a
disk with a newer copy.

REPLACE cannot copy or update @ATTRIB%hidden[hidden] or @ATTRIB%system[system] files.

The REPLACE parameters are:

    ^2/A^0  Add files to the destination directory that don't already exist,
        but do not replace existing files.  Cannot be used with ^B/S^b or ^B/U^b.
    ^2/P^0  Prompt before replacing or adding files.
    ^2/R^0  Replace read-only files.  If ^B/R^b is not specified, REPLACE stops
        at the first read-only source file it finds.
    ^2/S^0  Search all subdirectories of the target directory to find matches
        for source files.  Cannot be used with ^B/A^b.
    ^2/U^0  Replace only those files in the target directory that are older
        than those in the source directory.  Cannot be used with ^B/A^b.
    ^2/W^0  Prompt for a key-press before starting to replace files, allowing
        you to insert a source diskette on a floppy-only system.

See also @COPY[COPY] and @COPY[XCOPY].

^1EXAMPLES^0

Replace files named PHONES.* in the \clients directory on drive C: with files
with the same name in the root directory of drive A:.  You will be prompted
before each replacement:

    c:\> replace a:\phones.* c:\clients /p

Copy all files from the root directory of drive A: to directory C:\UTILS,
except those which already exist in C:\UTILS:

    c:\> replace a:\*.* c:\utils /a

RESTORE  RESTORE  (External MS-DOS)

^1SYNTAX^0

	^BRESTORE d: [d:][path][filename] [/S /P /B:date /A:date /N /M /L:time^b
	                                        ^B/E:time /D]^b

^1PURPOSE^0

Restore backup files to disk.

^1COMMENTS^0

The first argument is the source drive; the second is the target disk or file
specification.

The RESTORE options are:

    ^2/S^0  Restore all subdirectory files in addition to the
        specified directory.
    ^2/P^0  Prompt before overwriting files that have changed since
        the last backup, or that are marked read-only.
    ^2/B:date^0  Restore files modified on or before the date specified
        (the date format depends on the current country setting).
    ^2/A:date^0  Restore files modified on or after the date specified
        (the date format depends on the current country setting).
    ^2/M^0  Restore files that have been modified or deleted since the most
        recent backup.
    ^2/N^0  Restore files that no longer exist on the target.
    ^2/L:time^0  Restore only files modified at or after the time specified.
        The time is in hh:mm:ss format.
    ^2/E:time^0  Restore only files modified at or before the time specified.
        The time is in hh:mm:ss format.
    ^2/D^0  Display a list of the matching files on the backup disk, without
        actually restoring any files.

If no target is specified RESTORE will use the current drive and directory.
Files must be restored to the same directory they were in when the backup was
created with @BACKUP[BACKUP].  The wildcard characters ^B*^b and ^B?^b are allowed in the file
name.

RESTORE may not work properly if an @ASSIGN[ASSIGN], @JOIN[JOIN] or @SUBST[SUBST] was in effect at
the time the files were backed up, or if @APPEND[APPEND] is in effect when RESTORE is
run.

RESTORE will not restore existing system files.

See also @BACKUP[BACKUP].

^1EXAMPLE^0

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

    c:\> restore a: c: /s

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

    c:\> restore a: c:\ws\memo.doc

RETURN RETURN  (Internal 4DOS)

^1SYNTAX^0

	^BRETURN^b

^1PURPOSE^0

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

^1COMMENTS^0

The RETURN command returns from a @GOSUB[GOSUB] call to the command following the
original GOSUB.

See also @GOSUB[GOSUB].

^1EXAMPLE^0

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 SCREEN  (Internal 4DOS)

^1SYNTAX^0

	^BSCREEN row column [message]^b

^1PURPOSE^0

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

^1COMMENTS^0

The row and column are zero-based, so on a standard 25 line by 80 column
display, valid rows are 0 - 24 and valid columns are 0 - 79.

SCREEN allows you to create attractive batch file screen displays.

SCREEN does not change the screen colors.  If you have ANSI.SYS installed
and have set colors with @CLS[CLS] or @COLOR[COLOR], those colors will be used for the
display.  To display text in specific colors, use @SCRPUT[SCRPUT].

SCREEN checks for a valid row and column, and displays an error message if
either value is out of range.

See also @ECHO[ECHO], @SCRPUT[SCRPUT], @TEXT[TEXT], and @VSCRPUT[VSCRPUT].

^1EXAMPLE^0

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

SCRPUT SCRPUT  (Internal 4DOS)

^1SYNTAX^0

	^BSCRPUT row column [bright] [blink] fg ON bg text^b

^1PURPOSE^0

Display text in color.

^1COMMENTS^0

The row and column are zero-based, so on a standard 25 line by 80 column
display, valid rows are 0 - 24 and valid columns are 0 - 79.

SCRPUT works like @SCREEN[SCREEN], but allows you to specify the display colors, and
writes directly to the screen.

The parameters are:

    ^2row^0     Start row
    ^2column^0  Start column
    ^2fg^0      Foreground character color
    ^2bg^0      Background character color
    ^2text^0    The text to display

SCRPUT uses the standard @COLORS[4DOS color attributes] and names.

See also @ECHO[ECHO], @SCREEN[SCREEN], @TEXT[TEXT] and @VSCRPUT[VSCRPUT].

^1EXAMPLE^0

The following batch file fragment displays a menu in color:

    @@echo off ^^ cls white on blue
    scrput 3 10 bri white on blue Select a number from 1 to 4:
    scrput 6 20 bri red on blue 1 - Word Processing
    scrput 7 20 bri yellow on blue 2 - Spreadsheet
    scrput 8 20 bri green on blue 3 - Telecommunications
    scrput 9 20 bri magenta on blue 4 - Quit

SELECT SELECT  (Internal 4DOS)

^1SYNTAX^0

	^BSELECT [/A[:-rhsda] /C /D /O:-deginsu] command ([d:][path]filename) ...^b

^1PURPOSE^0

Execute a command on the specified files.  This command is completely
different from and replaces the MS-DOS command with the same name!

^1COMMENTS^0

SELECT allows you to select command line file arguments by marking the
files 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.

The SELECT options are:

    ^2/A^0 (^BA^btributes)
        Display only those files that have the specified attribute set.
        Preceding the attribute character with a '^2-^0' will display those
        files that DON'T  have that attribute set.  Attributes can also be
        combined.  The attributes are:
          ^2R^0  Read only
          ^2H^0  Hidden
          ^2S^0  System
          ^2D^0  Directory
          ^2A^0  Archive
    ^2/C^0 (^BU^bpper case)
        Display filenames in upper case (like COMMAND.COM).  See also
        @SETDOS%/U[SETDOS /U].
    ^2/D^0 (^BD^bisable)
        Disable directory colorization.
    ^2/O^0 (^BS^bort order)
        Sort sequence, where ? can be any combination of the following:
          ^2-^0  Reverse the sort order for the next option
          ^2a^0  Sort by ASCII value rather than numeric value
          ^2d^0  Sort by date and time (oldest first)
          ^2e^0  Sort by extension
          ^2g^0  Group subdirectories together
          ^2i^0  Sort by the file description
          ^2n^0  Sort by the filename (this is the default)
          ^2r^0  Reverse the sort order for all options
          ^2s^0  Sort by size
          ^2u^0  Unsorted (same as COMMAND.COM)

If you append filenames with a ^B;^b (an "@INCLUDE[include list]"), SELECT will
display the matching filenames in a single listing.  Only the first
filename in an include list can have a path.

If you have an ANSI driver loaded, you can display the subdirectories and
files in color by setting the @COLORDIR[%COLORDIR] variable or using the "^BColorDir^b"
INI directive.

If you enclose the arguments in square brackets ^B[]^b rather than parentheses,
SELECT will insert all of the arguments into the command line and only
execute the command once.  You must be careful not to exceed the maximum
line length (^B127^b characters for external commands, and ^B255^b characters for
internal 4DOS commands).

SELECT uses the following keys:

	^BUp^b, ^BDown^b, ^BPgUp^b, and ^BPgDn^b  Scroll through the files matching the
           argument(s).
        ^B+^b  Select a file.
        ^B-^b  Unselect a file.
        ^B*^b  Reverse all of the current marks (excluding subdirectories).
        ^B/^b  Unmark everything.
        ^BENTER^b  Execute the command on the marked files.  You can select
           a single file by moving the scroll bar to the filename and
           pressing ENTER.
        ^BEscape^b, ^B^^C^b, or ^B^^BREAK^b  Cancel the SELECT command.

^1EXAMPLE^0

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:\

Select and run an executable program (.COM, .EXE, or .BAT) from files in
the C:\UTIL directory (an "include list"):

    c:\> select (c:\util\*.com;*.exe;*.bat)

SET SET  (Internal 4DOS)

^1SYNTAX^0

	^BSET [/M /P] [/R [d:][path]filename...] [variable=[value]]^b

^1PURPOSE^0

Display, create, modify, or delete environment @VARIABLES[variables].

^1COMMENTS^0

Entering SET with no variable or value displays the entire environment.  If
you don't enter a value, SET will display the value of that variable.
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 ^B80^b characters, and the value
to a maximum of ^B255^b characters.  The variable names are shifted to upper
case before being stored in the environment; the value is stored exactly
as entered.

The SET options are:

    ^2/M^0  Display or modify the master environment rather than the local
        copy of the environment.
    ^2/P^0  Pause after displaying a page of environment entries. Press ^B^^C^b to
        quit, or any other key to display the next page.
    ^2/R^0  Read environment variables from a file.  This is much faster than
        loading variables in a batch file.  The file is in the same format
        as the SET display, so SET /R can accept as input a file generated
        by redirecting SET output.

        For example, the following commands will save the environment
        variables to a file, and then reload them from that file:

            set > varlist
            set /r varlist

        You can load variables from multiple files by listing the filenames
        individually after the /R.

        You can add comments to a variable file by starting the comment
        line with a colon (^B:^b).

Unless you use the ^B/M^b option, SET only affects the environment of the
current command processor.  If you @EXIT[EXIT] to a parent command processor,
the original environment will be unchanged.  The size of the environment
is specified by the ^B/E^b parameter or the ^BEnvironment=" INI directive at
startup.  The default size is ^B512^b characters, the minimum size ^B256^b
characters, and the maximum size ^B32000^b characters.

You can remove multiple environment variables with the @UNSET[UNSET] command, and
edit environment variables with the @ESET[ESET] command.

See also @ESET[ESET] and @UNSET[UNSET].

^1EXAMPLE^0

Display the current environment:

    c:\> set

Add a variable to the environment:

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

Remove a variable from the environment:

    c:\> set mine=

SETDOS SETDOS  (Internal 4DOS)

^1SYNTAX^0

	^BSETDOS [/A? /C? /E? /I+|-command /L? /M? /N? /R? /S?:? /U? /V?]^b

^1PURPOSE^0

Display or set 4DOS configuration variables.


^1COMMENTS^0

SETDOS allows you to customize 4DOS to your personal tastes.  You would
normally define the SETDOS variables in AUTOEXEC.BAT or 4START.BAT.
Note that all SETDOS functions correspond to (and override) 4DOS.INI
@DIRECTIVES[Directives].

The SETDOS options are:

    ^2/A^0 (^BA^bNSI)
       The ANSI variable determines whether 4DOS will attempt to use an
       ANSI escape sequence for @CLS[CLS].  4DOS normally determines this itself,
       but if you are using a non-standard ANSI driver or your loading
       sequence is unusual, you may need to explicitly inform 4DOS.  ^B/A0^b
       allows 4DOS to determine whether an ANSI driver is installed; ^B/A1^b
       forces 4DOS to assume an ANSI driver is installed; and ^B/A2^b forces
       4DOS to assume ANSI is not loaded.
       (Also see the "@ANSI=[ANSI=]" INI directive).

    ^2/C^0 (^BC^bompound character)
       The COMPOUND variable is the character used for separating
       multiple commands on the same line.  The default character is the
       caret (^B^^^b).  You cannot use any of the redirection characters (|><),
       or the whitespace characters (blank, tab, comma, semicolon, or
       equal) as the command separator.
       (Also see the "@CommandSep[CommandSep=]" INI directive).

    ^2/E^0 (^BE^bscape character)
       The ESCAPE variable is the character used to suppress the normal
       meaning of the following character.  Any character following the
       escape character will be passed unmodified to the command line.  The
       default escape character is ^B^^X^b (^BCtrl-X^b).  You cannot use any of the
       redirection characters (|><) or the whitespace characters (blank,
       tab, comma, semicolon, or equal) as the escape character.
        (Also see the "@EscapeChar[EscapeChar=]" INI directive).

    ^2/I^0 (^BI^bnternal)
       The INTERNAL variable allows you to disable or enable internal 4DOS
       @COMMAND%Commands Index[commands].  To disable a command, precede the command name with a
       ^Bminus^b (^B-^b).  To reenable a command, precede it with a ^Bplus^b (^B+^b).
        (Also see the "@CommandSep[CommandSep=]" INI directive).

    ^2/L^0 (^BL^bine)
       The LINE variable controls how 4DOS gets its input from the command
       line.  The default value is ^B/L0^b (character input).  If you set ^B/L1^b,
       4DOS uses the MS-DOS "Get Line" call (like COMMAND.COM). Note
       that this will disable command line editing, @HISTORY[history] recall, and
       filename expansion.  If you have a program that requires line input,
       you can define an alias or batch file:

           setdos /L1 ^^ program %& ^^ setdos /L0

       See the file APPNOTES.TXT for information on programs which require
       this option.
       (Also see the "@LineInput[LineInput=]" INI directive).

    ^2/M^0 (edit ^BM^bode)
       The MODE variable controls the line editing mode.  4DOS defaults
       to ^Boverstrike^b mode (^B/M0^b).  If MODE is set to ^B1^b, the default is
       ^Binsert^b mode.
       (Also see the "@EditMode[EditMode=]" INI directive).

    ^2/N^0 (^BN^boclobber)
       The NOCLOBBER variable controls output @REDIRECTION[redirection].  If NOCLOBBER is
       set to ^B1^0, existing files may not be destroyed by output redirection,
       and when appending with ^B>>^b, the output file must exist.  NOCLOBBER
       can be overridden with the ^B!^b character.  The default is ^B/N0^b.
       (Also see the "@NoClobber[NoClobber=]" INI directive).

    ^2/R^0 (^BR^bows)  The ROWS variable determines the number of screen rows used by the
       video display.  Normally 4DOS detects the screen size, but if you
       have a non-standard display you may need to set it explicitly.  The
       ROWS variable does not affect screen scrolling (that is controlled
       by your video BIOS or ANSI.SYS); it is used only for @LIST[LIST], @SELECT[SELECT],
       the paged output options (i.e., @TYPE%/P[TYPE /P]), and error checking in the
       screen output commands.
       (Also see the "@ScreenRows[ScreenRows=]" INI directive).

    ^2/S^0 (cursor ^BS^bhape)
      The SHAPE variable sets the 4DOS cursor shape.  The format is ^B/So:i^b,
       where "^Bo^b" is the cursor size for overstrike mode, and "^Bi^b" the cursor
       size for insert mode.  The size is entered as a percentage of the
       total character cell size.  The default values are ^B10:100^b (a thin
       underscore cursor for overstrike mode, and a block cursor for insert
       mode).  Because of the way video BIOSes remap the cursor, you may
       not get a smooth progression in the cursor size from 0 - 100%.
       To disable the cursor, use ^B/S0:0^b.
       (Also see the "@CursorIns[CursorIn=]" and "@CursorOver[CursorOver=]" INI directives).

    ^2/U^0 (^BU^bpper case)
       The UPPER variable controls the way filenames are displayed for the
       internal commands (@COPY[COPY], @DIR[DIR], etc.).  If UPPER is ^B1^0, filenames will
       be displayed in upper case (like COMMAND.COM).  The default is ^B/U0^0
       (filenames will be displayed in lower case).
       (Also see the "@UpperCase[UpperCase=]" INI directive).

    ^2/V^0 (^BV^berbose)
       The VERBOSE variable controls command echoing in batch files.  If
       VERBOSE is set to ^B0^b, batch files will NOT be echoed unless ECHO is
       set ON.  The default is ^B1^b (batch file commands WILL be echoed).  If
       VERBOSE is set to ^B2^b, 4DOS will echo all batch file lines, including
       those prefaced by a '^B@@^b', and when ECHO is OFF.
       (Also see the "@BatchEcho[BatchEcho=]" INI directive).

^1EXAMPLES^0

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

Disable the internal LIST command to force 4DOS to use an external command:

    c:\> setdos /i-list

SETLOCAL SETLOCAL  (Internal 4DOS)

^1SYNTAX^0

	^BSETLOCAL^b

^1PURPOSE^0

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

^1COMMENTS^0

SETLOCAL is used in batch files to save the disk drive, directory, and
environment variables to a reserved block of memory.  You can then change
their values, and later restore the original values with @ENDLOCAL[ENDLOCAL].  You
cannot use SETLOCAL in an alias.

SETLOCAL and ENDLOCAL are ^Bnot^b 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.
^B4DOS will automatically perform an ENDLOCAL at the end of a batch file^b.

Note that if you invoke a batch from another without using @CALL[CALL], the first
batch file is implicitly terminated, and an automatic ENDLOCAL performed.
The second batch file will inherit the drive, directory, and environment
variables as they were prior to the SETLOCAL.

Do not use TSRs (memory-resident programs) from a batch file while SETLOCAL
is in effect.  If you do, when ENDLOCAL is executed and the memory used by
SETLOCAL is released, a "hole" will be left in memory below the TSR.  This
is not harmful, but wastes memory.

See also @ENDLOCAL[ENDLOCAL].

^1EXAMPLE^0

This batch file fragment saves the disk drive, directory, and environment
variables, changes the disk and directory, modifies some 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

SETVER SETVER  (External MS-DOS)

^1SYNTAX^0

	^BSETVER [d:][path]^b
    or
	^BSETVER [d:][path]filename n.nn^b
    or
	^BSETVER [d:][path]filename [/DELETE / QUIET]^b

^1PURPOSE^0

Set the version number that MS-DOS reports to a program.

^1COMMENTS^0

SETVER will not necessarily allow a program to run under an unknown DOS
version.  It merely effect the ^Breported^b DOS version, not its behavior.

SETVER must be defined as a device ("DEVICE=") in CONFIG.SYS to be effective.
When called from the command line (or batch file) it only allows you to
maintain its internal version table.  See your DOS manual for details.

The SETVER options are:

    ^2/DELETE^0  Delete the version table entry for the specified program.
    ^2/QUIET^0   Don't display a message when deleting an entry from the
             version table.

^1EXAMPLE^0

Tell DOS to return version 4.00 to MSCDEX.EXE:

    c:\> setver c:\cdrom\mscdex.exe 4.00

SHARE SHARE  (External MS-DOS)

^1SYNTAX^0

	^BSHARE [/F:filespace] [/L:locks]^b

^1PURPOSE^0

Load support for file sharing and file locking.

^1COMMENTS^0

SHARE is for ^Bnetwork^b users.  To load SHARE automatically under MS-DOS 4.0
and above, put SHARE.EXE in the root directory of your boot disk, or the
directory pointed to by your SHELL= command in CONFIG.SYS.

You can load SHARE manually from the AUTOEXEC.BAT file (or CONFIG.SYS if
you are running MS-DOS 4.0 or greater), but it usually works better if loaded
automatically.

The SHARE options are:

    ^2/F:filespace^0  Allocate file space for the file sharing information
       area (default ^B2048^b).  Each open file requires the length of the full
       filename plus 11 bytes.
    ^2/L:locks^0  Allocate space for the number of locks (default ^B20^b).

SHARE is memory-resident, and uses about 6K of RAM in MS-DOS 3.3.

^1EXAMPLE^0

Allocate 4096 bytes for file space and 40 locks:

    c:\> share /F:4096 /L:40

SHIFT SHIFT  (Internal 4DOS)

^1SYNTAX^0

	^BSHIFT [n]^b

^1PURPOSE^0

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

^1COMMENTS^0

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


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


SHIFT also affects the ^B%&^b (command line tail) and @#[%#] (number of command
arguments) batch variables.

^1EXAMPLE^0

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 SORT  (External MS-DOS)

^1SYNTAX^0

	^BSORT [/R] [/+n]^b

^1PURPOSE^0

Read data from standard input, sort it, and write it to standard output.

^1COMMENTS^0

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

The SORT options are:

    ^2/R^0   Sort in reverse order (Z - A).
    ^2/+n^0  Start sorting with column ^Bn^b.

^1EXAMPLE^0

Sort the file ADDRESS and write it to SORTED:

    c:\> sort < address > sorted

SUBST SUBST  (External MS-DOS)

^1SYNTAX^0

	^BSUBST^b    or    ^BSUBST d: d:path^b    or    ^BSUBST d: /D^b

^1PURPOSE^0

Substitute a virtual drive for a pathname.

^1COMMENTS^0

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

SUBST is useful for applications that do not recognize paths; it permits the
use of a drive to represent a path.  When a SUBST is in effect the specified
path appears as if it were the root directory of the specified drive.
Lower-level subdirectories appear as lower-level subdirectories on the new
drive.  This is the inverse of @JOIN[JOIN].

The only option for SUBST is:

    ^2/D^0  Delete a substitution

The first and second drive specifiers must be different; the first drive
letter cannot be the current default drive; and you cannot reference a
network drive.  The drive letter being substituted must be less than or
equal to the letter specified in the LASTDRIVE statement in the CONFIG.SYS
file (default E:).

@CD[CD], @MD[MD], and @RD[RD] should be used with care when SUBST is in effect. ASSIGN,
@BACKUP[BACKUP], @DISKCOMP[DISKCOMP], @DISKCOPY[DISKCOPY], @FDISK[FDISK], @FORMAT[FORMAT], @JOIN[JOIN], @LABEL[LABEL] and @RESTORE[RESTORE] should ^Bnot^b
be used when SUBST is in effect.

See also @ASSIGN[ASSIGN] and @JOIN[JOIN].

^1EXAMPLE^0

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

    c:\> subst d: c:\ws\memos\jan89

SWAPPING SWAPPING  (Internal 4DOS)

^1SYNTAX^0

	^BSWAPPING [on | off]^b

^1PURPOSE^0

Display, enable, or disable the 4DOS swapping state.

^1COMMENTS^0

SWAPPING will temporarily disable or enable the swapping of the 4DOS
transient portion to EMS, XMS, or disk.  If swapping is enabled, 4DOS saves
its transient portion before executing any external command.  When the
command finishes, 4DOS performs a checksum on the transient portion, and
restores it if necessary.  (When swapping to EMS or XMS, 4DOS always
restores the transient portion.)  When you are running several small
programs from a batch file and using disk swapping, the swapping can
sometimes cause a noticeable delay.  Turning SWAPPING OFF can speed up such
operations, particularly in a lengthy AUTOEXEC.BAT file.

If SWAPPING is ^BOFF^b, available MS-DOS memory will be reduced by the size
of the 4DOS transient portion.  Setting SWAPPING OFF does not close the
disk swap file, or release any reserved EMS or XMS memory.

(Also see the "@Swapping[Swapping=]" INI directive).

^1EXAMPLES^0

Check the current SWAPPING status:

    c:\> swapping
    SWAPPING is ON

The following batch file fragment disables swapping, runs several programs,
and then reenables swapping:

    swapping off
    c:\util\mouse
    c:\video\ansi.com
    cls bright white on blue
    c:\bin\cache.com
    swapping on

SYS SYS  (External MS-DOS)

^1SYNTAX^0

	^BSYS d:^b

^1PURPOSE^0

Copy the two @ATTRIB%hidden[hidden] operating system files to another drive.

^1COMMENTS^0

Not all versions of SYS will transfer COMMAND.COM.  The target disk must be
@FORMAT[formatted] and blank, or be a bootable MS-DOS disk.

See also @FORMAT[FORMAT].

^1EXAMPLE^0

Copy the system files to drive A:

    c:\> sys a:

TEE TEE  (Internal 4DOS)

^1SYNTAX^0

	^BTEE [/A] [d:][path]filename...^b

^1PURPOSE^0

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

^1COMMENTS^0

The only option for TEE is:

    ^2/A^0  Append output to the file(s) rather than overwriting it.

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

TEE is often used to save the intermediate output of a @REDIRECTION[pipe].


See also @Y[Y].

^1EXAMPLE^0

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 TEXT  (Internal 4DOS)

^1SYNTAX^0

	^BTEXT^b
	  ^B.^b
	  ^B.^b
	  ^B.^b
	^BENDTEXT^b

^1PURPOSE^0

Display a block of text in a batch file.

^1COMMENTS^0

The TEXT command is useful for displaying menus or multiple-line messages.
TEXT will display subsequent lines in the text until terminated by ENDTEXT.
Both TEXT and ENDTEXT must be entered as the only command on that line.

If you have ANSI.SYS loaded, you can change screen colors by inserting @ANSI[ANSI]
escape sequences into the text block.

See also @ECHO[ECHO], @SCREEN[SCREEN], @SCRPUT[SCRPUT], and @VSCRPUT[VSCRPUT].

^1EXAMPLE^0

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 TIME (Internal 4DOS)

^1SYNTAX^0

	^BTIME [hh:mm:ss]^b

^1PURPOSE^0

Display or set the current system time.

^1COMMENTS^0

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:

    ^2hh^0  Hour (^B0^b - ^B23^b)
    ^2mm^0  Minute (^B0^b - ^B59^b)
    ^2ss^0  Second (^B0^b - ^B59^b)

TIME defaults to 24-hour format; you can optionally enter the time in
12-hour format by appending an "^Bam^b" or "^Bpm^b".

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

See also @_TIME[%_TIME], @CHCP[CHCP], @DATE[DATE], and @TIMER[TIMER].

^1EXAMPLES^0

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 TIMER  (Internal 4DOS)

^1SYNTAX^0

	^BTIMER [/1 /2 /3 /S] [ON]^b

^1PURPOSE^0

System stopwatch.

^1COMMENTS^0

The TIMER command turns the 4DOS 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.  There are three timers available
(1, 2, and 3), so you can time multiple overlapping events.  The default
timer is #^B1^b.

The options for TIMER are:

    ^2ON^0  Force the timer to restart
    ^2/1^0  Use timer #^B1^b
    ^2/2^0  Use timer #^B2^b
    ^2/3^0  Use timer #^B3^b
    ^2/S^0  Display split time without stopping the timer

TIMER is particularly useful for timing events in batch files.

The smallest interval TIMER can measure ^B0.06^b seconds; the largest interval
is ^B23:59:59.99^b.

See also @TIME[TIME].

^1EXAMPLE^0

Start the timer:

    c:\> timer
    Timer on:  12:21:46

Display a split time:

    c:\> timer /s
    Elapsed time:  0:00:06.19

Stop the timer:

    c:\> timer
    Timer off:  12:21:58   Elapsed time 0:00:12.06

TREE TREE  (External MS-DOS)

^1SYNTAX^0

	^BTREE [d:] [/A /F]^b

^1PURPOSE^0

Display the directory and file structure.

^1COMMENTS^0

The options for TREE are:

    ^B/A^b  (DOS 5+ only) Use text characters rather than graphics characters
        to show the lines linking subdirectories.
    ^B/F^b  Display the names and specifications of all files on the disk.

See also @DIR[DIR].

^1EXAMPLE^0

Display the names of the files in all directories on the current drive:

    c:\> tree /f

TRUENAME TRUENAME  (Internal 4DOS)

^1SYNTAX^0

	^BTRUENAME [d:][path]filename^b

^1PURPOSE^0

Returns a fully qualified filename.

^1COMMENTS^0

TRUENAME will see "through" @JOIN[JOIN] and @SUBST[SUBST] commands, and requires MS-DOS 3.0
or above.

^1EXAMPLE^0

The following command uses TRUENAME to get the true pathname for a file:

    c:\> subst d: c:\util\test
    c:\> truename d:\test.exe
    c:\util\test\test.exe

TYPE TYPE  (Internal 4DOS)

^1SYNTAX^0

	^BTYPE [/L /P] [d:][pathname]filename...^b

^1PURPOSE^0

Display the contents of the specified file(s).

^1COMMENTS^0

The TYPE command displays a file.  Press ^B^S^b to suspend the display, and
any character key to continue the display.

The TYPE options are:

    ^2/L^0  Print line numbers preceding each line of text.
    ^2/P^0  Pause after each page.  Press ^B^^C^b 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 unreadable due to the
presence of non-alphanumeric characters.

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

See also @LIST[LIST].

^1EXAMPLE^0

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

    c:\> type /p memo1 memo2

UNALIAS UNALIAS  (Internal 4DOS)

^1SYNTAX^0

	^BUNALIAS alias...^b    or    ^BUNALIAS *^b

^1PURPOSE^0

Remove @ALIAS[aliases] from the alias list.

^1COMMENTS^0

UNALIAS also accepts the wildcard character ^B*^b to delete all aliases.

See also @ALIAS[ALIAS], @ESET%/A[ESET], and @SETLOCAL[SETLOCAL].

^1EXAMPLES^0

Remove the alias DDIR:

    c:\> unalias ddir

Remove the aliases DDIR and ZAP:

    c:\> unalias ddir zap

Remove all the aliases:

    c:\> unalias *

UNDELETE UNDELETE  (External MS-DOS)

^1SYNTAX^0

	^BUNDELETE [[d:][path]filename] [/ALL /LIST /DOS /DT]^b

^1PURPOSE^0

Restore files deleted with the @DEL[DEL] command.

^1COMMENTS^0

The UNDELETE options are:

    ^2/ALL^0   Recover deleted files without prompting for confirmation, using
           the deletion-tracking file if present.
    ^2/LIST^0  List the deleted files, but do not recover them.
    ^2/DOS^0   Recover only those files internally listed as deleted by MS-DOS,
           prompting for confirmation on each file.  The ^B/DOS^b switch will
           ignore a deletion-tracking file.
    ^2/DT^0    Recover only those files listed in the deletion-tracking file
           produced by @MIRROR[MIRROR], prompting for confirmation on each file.

If you don't specify any options, UNDELETE will use the deletion-tracking
file (if found).

See also @MIRROR[MIRROR] and @UNFORMAT[UNFORMAT].

^1EXAMPLE^0

Undelete all .COM files in the current directory, using the MIRROR
deletion-tracking file, and prompting for confirmation for each file:

    c;\> undelete *.com /dt

UNFORMAT UNFORMAT  (External MS-DOS)

^1SYNTAX^0

	^BUNFORMAT d: [/J]^b    or    ^BUNFORMAT d: [/L /P /PARTN /TEST /U]^b

^1PURPOSE^0

Attempts to restores a disk erased by the @FORMAT[FORMAT] command or corrupted by
the @RECOVER[RECOVER] command, using the file created by @MIRROR[MIRROR], if available.

^1COMMENTS^0

The UNFORMAT options are:

    ^2/J^0  Tests to see if the file created by @MIRROR[MIRROR] matches the system
        information on the disk.
    ^2/L^0  When used without the ^B/PARTN^b option, lists every subdirectory and
        file found on drive ^Bd:^b.  Without the ^B/L^b, UNFORMAT will only list
        subdirectories and files that are fragmented.  When used with the
        ^B/PARTN^b option, displays the partition table of the current drive.
    ^2/P^0  Send output messages to LPT1.
    ^2/PARTN^0  Restore a corrupted partition table.  Requires a PARTNSAV.FIL
        created using @MIRROR%/PARTN[MIRROR's /PARTN] option.
    ^2/TEST^0  Shows how UNFORMAT would unformat the disk, but does not
        do the unformatting.
    ^2/U^0  Unformat a disk without using the mirror file.

See also @MIRROR[MIRROR] and @UNDELETE[UNDELETE].

^1EXAMPLE^0

Restore drive D: using a MIRROR file:

    c:\> unformat d:

UNSET UNSET  (Internal 4DOS)

^1SYNTAX^0

	^BUNSET name...^b    or    ^BUNSET [/M] *^b

^1PURPOSE^0

Remove @VARIABLES[variables] from the environment.

^1COMMENTS^0

The only option for UNSET is:

    ^2/M^0  Remove the environment variable from the master environment
        rather than the local environment.

UNSET also accepts the wildcard character * to delete all environment
variables.  Use caution with ^BUNSET *^b; many programs are dependent on
environment variables.  (4DOS uses @÷PATH[%PATH], @COMSPEC[%COMSPEC], @TEMP[%TEMP], etc.)

UNSET is often used in conjunction with @SETLOCAL[SETLOCAL]/@ENDLOCAL[ENDLOCAL] in order to
clear the environment of variables that may cause problems for some
applications.

See also @ESET[ESET], @SET[SET] and @SETLOCAL[SETLOCAL].

^1EXAMPLES^0

Remove the variable CMDLINE:

    c:\> unset cmdline

Remove the variables CMDLINE and PATH:

    c:\> unset cmdline path

Remove all the environment variables:

    c:\> unalias *

VER VER  (Internal 4DOS)

^1SYNTAX^0

	^BVER [/R]^b

^1PURPOSE^0

Display the current 4DOS and MS-DOS versions.

^1COMMENTS^0

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

The only option for VER is:

    ^2/R^0  Displays the 4DOS revision level and, for DOS 5+ only, the DOS
        revision level and whether DOS is loaded in low memory, the HMA, or
        in ROM.

^1EXAMPLE^0

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

    c:\> ver
    4DOS 4.0  DOS 5.0

VERIFY VERIFY  (Internal 4DOS)

^1SYNTAX^0

	^BVERIFY [on | off]^b

^1PURPOSE^0

Display, enable, or disable disk write verification.

^1COMMENTS^0

When VERIFY is ^BON^b, MS-DOS will verify that no error occurred during 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 ^BOFF^b.

^1EXAMPLES^0

Check the current verify status:

    c:\> verify
    VERIFY is OFF

Enable disk write verification:

    c:\> verify on

VOL VOL  (Internal 4DOS)

^1SYNTAX^0

	^BVOL [d:] ...^b

^1PURPOSE^0

Display the disk volume label(s).

^1COMMENTS^0

If you don't enter a drive name, VOL displays the disk label for the current
drive.  If you are running MS-DOS 4.0 or above, VOL will also display the
volume serial number.

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

Volume labels can be created, changed or deleted with the @LABEL[LABEL] command.

See also @DISKCOPY[DISKCOPY] and @LABEL[LABEL].

^1EXAMPLE^0

Display the disk labels for drives A and B:

    c:\> vol a: b:
    Volume in drive A: is unlabeled
    Volume in drive B: is BACKUP_2

VSCRPUT VSCRPUT  (Internal 4DOS)

^1SYNTAX^0

	^BVSCRPUT row column [bright] [blink] fg ON bg text^b

^1PURPOSE^0

Display text in color in a vertical column.

^1COMMENTS^0

The row and column are zero-based, so on a standard 25 row by 80 column
display, valid rows are 0 - 24 and valid columns are 0 - 79.

VSCRPUT works like @SCRPUT[SCRPUT], but writes the text vertically.

The parameters are:


    ^2row^0     Start row
    ^2column^0  Start column
    ^2fg^0      Foreground character color
    ^2bg^0      Background character color
    ^2text^0    The text to display

VSCRPUT uses the standard @COLORS[4DOS color attributes] and names.

See also @ECHO[ECHO], @SCREEN[SCREEN], @SCRPUT[SCRPUT], and @TEXT[TEXT].

^1EXAMPLE^0

The following batch file fragment displays an X and Y axis and labels them:

    drawhline 20 10 40 1 bright white on blue
    drawvline 2 10 18 1 bright white on blue
    scrput 21 20 bright red on blue X axis
    vcrput 8 9 bright red on blue Y axis

XCOPY XCOPY  (External MS-DOS)

^1SYNTAX^0

 ^BXCOPY [d:][path]filename [d:][path]filename [/A /D:date /E /M /P /S /V /W]^b

^1PURPOSE^0

Copy files and directories, including subdirectories.

^1COMMENTS^0

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 ^B*.*^b.

The XCOPY options are:

    ^2/A^0  Copy source files that have the archive bit set.  This option
        does not modify the archive bit.
    ^2/D^0  Copy source files modified on or after the specified date (the
        date format depends on the current country setting).
    ^2/E^0  Copy any subdirectories, even if they are empty.  Using this
        option without the ^B/S^b option will cause an error.
    ^2/M^0  Same as ^B/A^b, but after copying a file, turn off the archive bit
        in the source file.
    ^2/P^0  Prompt with a "^BY/N^b" before creating each target file.
    ^2/S^0  Copy subdirectories, unless they are empty.
    ^2/V^0  Verify each disk write.  This is the same as executing the @VERIFY[VERIFY]
        ON command, but is only active while XCOPY is running.
    ^2/W^0  Wait for a keystroke before copying files.

XCOPY may not work correctly if it is used while an @APPEND%/X[APPEND /X] is in effect.

The 4DOS description file created by @DESCRIBE[DESCRIBE] is ^BNOT^b updated by XCOPY.

See Also @BACKUP[BACKUP], @COPY[COPY], and @MOVE[MOVE].

^1EXAMPLES^0

Copy all of the files from drive D to drive C:

    c:\> xcopy d:\ c:\ /s

Copy all of the files in the WS directory on drive C that were modified on
or after January 1, 1989 to drive A:

    c:\> xcopy c:\ws a:\ /d:1-1-89

Y Y  (Internal 4DOS)

^1SYNTAX^0

	^BY [d:][path]filename...^b

^1PURPOSE^0

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

^1COMMENTS^0

Standard input from the console is terminated by a ^B^^Z^b.

See also @TEE[TEE].

^1EXAMPLE^0

Get text from standard input, append the files MEMO1 and MEMO2 to it, and
send the output to MEMOS:

    c:\> y memo1 memo2 > memos

GLOSSARY Glossary (in alphabetical order)

^B4EXIT.BAT:^b A batch file (.BAT or .BTM) which is automatically executed
by a 4DOS secondary shell as part of its EXIT process when it terminates
normally.

^B4START.BAT:^b A batch file (.BAT or .BTM) which is automatically executed
by any 4DOS shell as part of its startup procedure.  4START is exected before
AUTOEXEC by the primary shell.

^BArgument:^b A piece of additional information placed after a command or
function name. For example in the command DIR XYZ, XYZ is an argument. Also
used to refer to an alias argument or batch file argument.

^BASCII:^b The American Standard Code for Information Interchange, which
defines numeric values for 128 different characters comprising the English
alphabet, numbers, punctuation, and some control characters.

^BASCII File:^b A file containing ASCII text, as opposed to a binary file
which may contain codes, numbers, or other information that cannot be
sensibly interpreted as text.

^BAttribute:^b A characteristic of a file which can be set or cleared.  The
standard attributes are Read-Only, Hidden, System, and Archive.  The
special attributes Volume Label and Directory are also used for files of
those types.

^BAUTOEXEC.BAT:^b A batch file which is AUTOmatically EXECuted when the
computer is started.

^BAutomatic Directory Change:^b A 4DOS feature which allows changing
directories by typing the directory name and a backslash [\] at the prompt.

^BBase Memory:^b The portion of your computer's memory available for use by
DOS, the command processor, and application programs. On most PCs this area
consists of the first 640K bytes of the computer's memory (one K is 1024
bytes).

^BBAT File:^b Same as a Batch File.

^BBatch File:^b A text file containing a sequence of DOS or 4DOS commands.
Batch files are used to save command sequences so that they can be
re-executed at any time, transferred to another system, etc.

^BBatch File Argument:^b A numeric variable used within a batch file,
allowing a different value to be used at that spot in the file each time it
is executed.

^BBinary File:^b A file containing information which does not represent or
cannot sensibly be interpreted as text. See also ASCII File.

^BBlock Device:^b A physical device for input or output which can transmit
or receive large blocks of data while the computer is engaged in other
activities.  Examples include disk, tape, and CD-ROM drives, and many
networks.

^BBoot:^b The process of starting the computer and loading DOS and the
command processor into memory.

^BBoot Directory:^b The current directory at the time the system is booted,
almost always the root directory of the boot drive.

^BBoot Drive:^b The disk drive that the system is booted from, usually A:
(the floppy disk) or C: (the hard disk).

^BBreak:^b A signal sent to a program (including 4DOS) to tell it to halt
what it is doing. The Ctrl-C key or Ctrl-Break key is used to send this
signal.  Some external commands abort when they receive a break signal;
others return to a previous screen or menu, or abort the current operation.

^BBTM File:^b A special type of batch file which is loaded into memory,
dramatically speeding up execution.

^BBuffer:^b An area of memory set aside for storage.  Usually refers to
disk buffers, used to save information as it is transferred between your
program and the disk; or to the keyboard buffer, which holds keystrokes
until a program can use them.

^BCharacter Device:^b A physical device for input or output which must
communicate with your computer one character at a time. Examples include
the console, communications ports, and printers.

^BCode Page:^b A set of definitions which tells DOS how to get and display
date, time, and other information in the format appropriate to a particular
country.

^BCommand Completion:^b A 4DOS feature which allows you to recall a
previous command by typing the first few letters of the command, then an
up-arrow or down-arrow.

^BCommand Echoing:^b A feature which displays commands as they are
executed. Echoing can be turned on and off.

^BCommand History:^b A 4DOS feature which retains commands you have
previously executed, so that they can be modified and re- executed later.

^BCommand Interpreter:^b A program, such as 4DOS or COMMAND.COM, which
interprets commands and executes other programs.

^BCommand Recall:^b See Command History.

^BCommand Tail:^b The portion of a command consisting of all the arguments,
i.e. everything but the command name itself.

^BCompound Command:^b See Multiple Commands.

^BCOMSPEC:^b An environment variable which defines where to get the command
processor for a secondary shell.

^BConditional Commands:^b A 4DOS feature allowing commands to be executed
or skipped depending on the results of a previous command. See also Exit
Code.

^BCONFIG.SYS:^b A file which tells DOS what device drivers to install, what
command processor to use, and other information about what to do when your
system boots. See your DOS manual for more information.

^BConsole:^b The PC keyboard and display.

^BControl Character:^b A character which is part of the ASCII code, but
does not have a normal text representation, and which can be generated by
pressing the Ctrl key along with another key. For example the control
character called "BEL" is generated by pressing Ctrl-G, and will cause the
computer to beep if pressed at the DOS prompt.

^BCountry Code:^b See Code Page.

^BCR:^b The ASCII character "carriage return", generated by pressing the
"Enter" key on the keyboard, and stored in most ASCII files at the end of
each line.

^BCritical Error:^b An error, usually related to input, output, or network
access, which prevents a program from continuing. When a critical error
occurs, a prompt such as "R(etry), I(gnore), F(ail), or A(bort)" appears on
the screen and you must decide what action to take.

^BCurrent Directory:^b The directory in which all file operations will take
place unless otherwise specified. For example if the current directory is
C:\MYFILES then the command "DEL XYZ" will delete the file XYZ in the
directory C:\MYFILES, and will not affect other files with the same name
which may be in other directories.

^BDescription:^b A string of characters assigned to describe a file with
the 4DOS DESCRIBE command.

^BDestination:^b In the 4DOS file commands (COPY, MOVE, and RENAME), the
name or directory files should have after any copying or modification has
taken place; generally referred to by the last specification on the command
line. See also Source.

^BDevice:^b A physical device for input or output such as the console, a
communications port, or a printer. Sometimes the term "device" alone is
used to refer to character devices such as those listed above, and excludes
block devices.

^BDevice Driver:^b A program which allows DOS to communicate with a device,
and which is loaded into memory when the system is booted, via a statement
in CONFIG.SYS. Some device drivers are used to manage memory or for other
similar internal functions, rather than to communicate with an external
device.

^BDirectory:^b A portion of any disk, identified by a name and a
relationship to other directories in a "tree" structure, with the tree
starting at the root directory. A directory separates files on the disk
into logical groups, but does not represent a physical division of the data
on the disk.

^BDisk Swapping:^b A type of swapping in which the transient portion of
4DOS is stored on disk while an application is running.

^BDOS Memory:^b See Base Memory.

^BEcho:^b See Command Echoing.

^BEMS Memory:^b Memory which conforms to the Lotus - Intel - Microsoft
Expanded Memory Specification (LIM EMS). This hardware/software standard
allows programs to access large amounts of memory outside of base memory or
extended memory. Most systems which have EMS memory have either a specific
EMS board (on any PC or compatible system), EMS emulation software (on
PC-AT compatible systems), or a 386 control program such as QEMM or 386MAX
(on 386 systems). If you do not have one of these items, you probably do
not have EMS memory.

^BEMS Swapping:^b A type of swapping in which the transient portion of 4DOS
is stored in EMS memory while an application is running.

^BEnvironment:^b An area of memory which contains multiple entries in the
form "NAME=value". Each entry is called an environment variable. See also
Master Environment and Passed Environment.

^BEnvironment Variable:^b The name of a single entry in the environment.
Environment variables are entered with the SET command, and used to
associate the specified value with the specified name for any purpose
desired by the user. Typically, their function is to set default switches
for a program, specify a directory path where files can be found, and so
on. When 4DOS encounters an environment variable name in a command in the
form "%NAME" (or "%NAME%"), it substitutes the corresponding value in its
place.

^BErrorlevel:^b A numeric value between 0 and 255 returned from an external
command to indicate its result (e.g., success, failure, response to a
question), and accessible via the IF ERRORLEVEL command and the %?
environment variable. See also Exit Code.

^BEscape Character:^b This term has two meanings. In some contexts it means
the 4DOS escape character, normally Ctrl-X, which is used to suppress the
normal meaning of or give special meaning to the following character. In
other cases it refers to the specific ASCII character ESC. The meaning must
be determined from the context.

^BExecutable Extensions:^b A 4DOS feature which allows you to specify the
application to be executed when a file with a particular extension is named
at the command prompt.

^BExecutable File:^b A file with the extension .COM or .EXE, which can be
loaded into memory and run as a program.

^BExit Code:^b The error level returned by an external command, or a
similar exit code returned by a 4DOS internal command. 4DOS internal
commands return an exit code of 0 if successful, or non-zero if
unsuccessful. See also Errorlevel.

^BExpansion:^b The process 4DOS goes through when it scans a command line
and substitutes the appropriate actual values for aliases, alias arguments,
batch file arguments, and environment variables. See also Parsing.

^BExtended ASCII Character:^b A character which is not part of the standard
set of 128 ASCII characters, but is used on the PC as part of an extended
set of 256 characters. These characters include international language
symbols, and box and line drawing characters.

^BExtended Memory:^b Any memory on a 286-based (PC-AT compatible) or
386-based computer system which is above the 1 MB (one megabyte, or
1024*1024 bytes) of memory that DOS can address directly. Any PC-AT
compatible or 386 system with more than 640K of memory has extended memory.
This memory can be used for a variety of purposes depending on the software
installed to utilize it. See also XMS.

^BExternal Command:^b A program which resides in an executable file, as
opposed to an internal command which is part of the command processor. For
example, FORMAT and DISKCOPY are external commands; you can find them on
your DOS disk under the names FORMAT.COM and DISKCOPY.COM.

^BFile Attribute:^b See Attribute.

^BFile Description:^b See Description.

^BFilename Completion:^b A 4DOS feature which allows you to type part of a
filename on the command line, and have 4DOS fill in the rest for you.

^BFree Memory:^b Usually, the amount of base memory which is currently
unoccupied and available for use by applications.

^BHidden:^b A file attribute indicating that the file should not be
displayed with a normal DIR command, and should not be available for access
by programs unless they specifically request use of hidden files.

^BHistory:^b See Command History.

^BHistory Window:^b A pop-up window used by 4DOS to display the command
history, allowing you to choose a previous command to modify and / or
execute.

^BInclude List:^b A concise method of specifying several files or groups of
files in the same directory, for use with all 4DOS commands which take file
names as arguments.

^BInsert Mode:^b When editing text, a mode in which newly typed characters
are inserted into the line at the cursor position, rather than overwriting
existing characters on the line. See also Overstrike Mode.

^BInternal Command:^b A command which is part of the command processor, as
opposed to an external command. For example, DIR and COPY are internal
commands.

^BKeyboard Buffer:^b A buffer which holds keystrokes you have typed that
have not yet been used by the currently executing program.

^BKeystroke Alias:^b An alias assigned to a key, so that it can be invoked
or recalled with a single keystroke.

^BLabel:^b A marker in a batch file. Labels allow GOTO and GOSUB commands
to "jump" to the command on the line following the label. See also Volume
Label.

^BLF:^b The ASCII character "line feed", not usually generated from the
keyboard, but stored in most ASCII files at the end of each line after the
CR character.

^BMaster Environment:^b The master copy of the environment maintained by
the command processor. The master environment is manipulated with the SET,
ESET, and UNSET commands.

^BMemory Resident Mode:^b A method of installing 4DOS in which swapping is
disabled, and all of 4DOS remains permanently resident in memory.
Memory-resident mode requires much more memory than the normal swapping
mode.

^BModulo:^b The remainder after an integer division. For example 11 modulo
3 is 2, because when 11 is divided by 3 the remainder is 2.

^BMultiple Commands:^b A 4DOS feature which allows multiple commands to be
placed on a line, separated by a caret (^^) or other user-defined
character.

^BMultitasking:^b A capability of some software (and the related hardware)
which allows two or more programs to run apparently simultaneously on the
same computer. Multitasking software for PC compatible systems includes
programs like DESQview.

^BNon-Swapping Mode:^b See Memory Resident Mode.

^BOption:^b See Switch.

^BOR:^b A logical combination of two true or false conditions such that if
both conditions are false the result is false; if either condition is true
the result is true.

^BOverstrike Mode:^b When editing text, a mode in which newly typed
characters overwrite existing characters on the line, rather than being
inserted into the line at the cursor position. See also Insert Mode.

^BParameter:^b See Argument.

^BParsing:^b The process 4DOS performs when it analyzes the command line,
performs alias and environment variable expansion, and finds the
appropriate internal command or external command to execute.

^BPassed Environment:^b A copy of the master environment created before
running an application, so that any changes made by the application will
not affect the master environment. The size of the passed environment is
determined by the amount of space actually used in the master environment
when the application is started.

^BPath:^b A specification of the directories a file resides in, including
all parent directories. For example, the path for C:\WSFILES\MYDIR\MEMO.TXT
is C:\WSFILES\MYDIR\. Path is also used to refer to the environment
variable PATH, which contains a series of path specifications used when
searching for external commands and batch files.

^BPipe:^b A method for collecting the standard output of one program and
passing it on as the standard input of the next program to be executed,
signified by a vertical bar "|" on the command line. See also Redirection.

^BPrimary Shell:^b The copy of the command processor which is loaded when
the system boots.

^BRAM Disk:^b A pseudo "disk drive", created by software, which appears
like a normal physical disk drive to programs. RAM disks can be stored in
extended memory, XMS memory, EMS memory, or base memory, and provide a
convenient way for programs to use this memory for temporary files.

^BRead-Only:^b A file attribute indicating that the file can be read, but
not written by DOS and 4DOS.

^BReboot:^b The process of restarting the computer, usually by pressing the
Ctrl, Alt, and Del keys simultaneously.

^BRedirection:^b A method for collecting the standard output of a program
in a file, and/or of providing the standard input for a program from a
file, signified respectively by a greater than symbol ">" or less than
symbol "<" on the command line. See also Pipe.

^BReplaceable Parameter:^b See Alias Argument and Batch File Argument.

^BResident Portion:^b The small portion of 4DOS stored permanently in
memory when swapping mode is in use, as opposed to the larger transient
portion. The resident portion is stored as close as possible to the
beginning of base memory.

^BRoot Directory:^b The first directory, from which all other directories
are "descended." The root directory is referenced with a single backslash
(\). When a disk is first formatted, it is the only directory.

^BSecondary Shell:^b Any copy of any command processor which is loaded
after the system boots. Secondary shells may be started from the command
line; by executing a "shell to DOS" operation from within an application;
implicitly by executing some DOS-related functions within certain
applications; or by starting a new partition in a multi-tasking or task
switching system.

^BShell:^b A command processor. Also used to refer to a program which gives
access to DOS functions and commands through a menu- or mouse-driven
system.

^BSource:^b In the 4DOS file commands (COPY, MOVE, and RENAME), the
original files before any copying or modification has taken place, i.e.
those specified earlier on the command line. See also Target.

^BStack:^b An area of memory used by any program to store temporary data
while the program is running; more generally, any such storage area where
the last item stored is normally the first one removed.

^BStandard Error:^b A file or character device where error messages from a
program are displayed. Standard error output always goes to the console,
unless redirection is used.

^BStandard Input:^b A file or character device where a program obtains its
normal input. Standard input always comes from the console, unless
redirection is used.

^BStandard Output:^b A file or character device where normal output from a
program is displayed. Standard output always goes to the console, unless
redirection is used.

^BSubdirectory:^b Any directory other than the root directory. See also
Root Directory.

^BSwap File:^b A disk file created by 4DOS to store its transient portion
when disk swapping is in use.

^BSwapping:^b A 4DOS feature which removes the larger transient portion of
4DOS from base memory while an application is running, leaving the maximum
possible amount of memory for the application, and allows 4DOS to restore
information such as the command history after the application is finished.
See also XMS Swapping, EMS Swapping, and Disk Swapping.

^BSwitch:^b An argument to an internal command or application which
specifies a particular behavior or setting. For example, the command "DIR
/P" might be referred to as "having the /P switch set". Also, a
configuration value for 4DOS specified on the SHELL= line in CONFIG.SYS.

^BSystem:^b A file attribute indicating that the file belongs to DOS and
should not be accessed by normal programs.

^BTarget:^b See Destination.

^BTransient Portion:^b The larger portion of 4DOS stored in memory
temporarily when swapping mode is in use, as opposed to the smaller
resident portion. The transient portion is stored as close as possible to
the end of base memory, and releases the space it is using whenever an
application is executed.

^BTSR:^b A Terminate and Stay Resident program, i.e. a program which
"terminates" but remains resident in base memory, to provide capabilities
such as network support, a pop-up notepad or telephone dialer, a disk
cache, or mouse support.

^BUMB:^b An XMS Upper Memory Block, whose address is above the end of
normal base memory, but is within the 1 megabyte of memory that DOS can
address directly.

^BVariable:^b See Alias Argument, Batch File Argument, and Environment
Variable.

^BVolume Label:^b A special, hidden file placed on any disk whose name
constitutes a "label" for the entire disk.

^BWhite Space Character:^b Generally, a character used to separate
arguments on the command line. The white space characters recognized by
4DOS are the space, tab, comma, semicolon, and equal sign.

^BWildcard:^b A character ("*" or "?") or set of characters ("[...]") used
in a filename to specify the possibility that any single character or
sequence of characters can occur at that point in the actual name.

^BXMS Memory:^b A software method for accessing extended memory on 286 and
386 systems (and some systems which support version 4.0 of the EMS memory
specification). XMS memory is not additional memory, but is a software
specification only. Its use generally requires Microsoft's HIMEM.SYS be
installed as a device driver, or that another program such as 386MAX or
MOVE- EM be used.

^BXMS Swapping:^b A type of swapping where the transient portion of 4DOS is
stored in XMS memory while an application is running.

^BXOR (exclusive OR):^b A logical combination of two true or false
conditions such that if both conditions are false or both conditions are
true the result is false; if either condition is true and the other is
false the result is true.

DIRECTIVES Index of 4DOS.INI Directives

	@INIUSING[!1. Using the 4DOS.INI File]        @INILOCATION[!2. Location of 4DOS.INI]
	@INIFORMATS[!3. Format of Directives]           @INISTRUCTURE[!4. 4DOS.INI File Structure]

  @DIRECTIVES%A.[!A.] ^1Initialization^0   @DIRECTIVES%B.[!B.] ^1Configuration Directives^0      @DIRECTIVES%C.[!C.] ^1Color Directives^0
   @4StartPath[4StartPath]        @ANSI=[ANSI]              @HistMin[HistMin]          @ColorDir=[ColorDir]
   @Alias[Alias]             @BatchEcho[BatchEcho]         @HistWinHeight[HistWinHeight]    @HistWinColor[HistWinColor]
   @AutoExecPath[AutoExecPath]      @BeepFreq[BeepFreq]          @HistWinLeft[HistWinLeft]      @ListColors[ListColors]
   @Environment[Environment]       @BeepLength[BeepLength]        @HistWinTop[HistWinTop]       @StdColors[StdColors]
   @EnvFree[EnvFree]           @CursorIns[CursorIns]         @HistWinWidth[HistWinWidth]    @DIRECTIVES%D.[!D.] ^1Advanced Directives^0
   @HelpOptions[HelpOptions]       @CursorOver[CursorOver]        @LineInput[LineInput]        @CritFail[CritFail]
   @HelpPath[HelpPath]          @CommandSep[CommandSep]        @NoClobber[NoClobber]        @FineSawp[FineSwap]
   @History[History]           @EditMode[EditMode]          @ScreenRows[ScreenRows]       @FullINT2E[FullINT2E]
   @LogName[LogName]           @EscapeChar[EscapeChar]        @UpperCase[UpperCase]        @Inherit[Inherit]
   @PauseOnError[PauseOnError]       @DIRECTIVES%E.[!E.] ^1Key Mapping Directives^0         @MessageServer[MessageServer]
   @Swapping[Swapping]              @INIKEYS[Key Mapping Groups]             @Reduce[Reduce]
   @UMBEnvironment[UMBEnvironment]    @INIKEYS%General Input Keys Index[General Input]     @INIKEYS%Editing Keys Index[Editing]          @ReserveTPA[ReserveTPA]
   @UMBLoad[UMBLoad]           @INIKEYS%Hist. Window Keys Index[History Window]    @INIKEYS%LIST Keys Index[LIST]             @StackSize[StackSize]
                                                        @SwapReopen[SwapReopen]

INIUSING Using the 4DOS.INI File

4DOS can optionally use a file of initialization information called
"^B4DOS.INI^b" by default.  Please refer to your 4DOS documentaion file for
 information on how to use a different name and define a full path.

You can create, add to, and edit this file with any ASCII text editor to set
4DOS options and alter the way 4DOS works.  The 4DOS installation program
will create a 4DOS.INI file for you if one does not already exist on your
system.  Most of this section explains the options available through 4DOS.INI.
You only need to include entries in 4DOS.INI for any settings you want to
changed from their default values.  If you are happy with all the default
values, you don't need a 4DOS.INI file at all.

Some settings in 4DOS.INI are initialized when you install 4DOS with the
^BINSTALL^b program provided with some 4DOS packages, so you may have a
4DOS.INI file even if you didn't create one yourself.  You should not delete
that file unless you've checked carefully to be sure that you don't need
any of the settings the initialization program put there.

INILOCATION Location of 4DOS.INI

When 4DOS is loaded as the ^Bprimary shell^b, it searches for the 4DOS.INI file
in three places:

	*  If there is an "^B@@d:\path\inifile^b" option on the SHELL= line in
CONFIG.SYS, 4DOS will use the path and file name specified there, and will
not look elsewhere.

	*  If there is no INI file path or name on the SHELL= line, 4DOS will
look in the same directory where 4DOS.COM is stored (this is how 4DOS.INI is
found on most systems).  4DOS determines this directory automatically, or you
can set it yourself by placing a @COMSPEC[COMSPEC] directory name on the SHELL= line
in CONFIG.SYS.

	*  If the COMSPEC directory search fails, 4DOS will look in the
^Broot^b directory of the boot drive.

When 4DOS is loaded as a ^Bsecondary shell^b, it does not search for the 4DOS.INI
file.  Instead, it reprocesses the file used for the primary shell (if
necessary), then processes any "@@d:\path\inifile" option on the secondary
shell command line.

Most lines in the 4DOS.INI file consist of a one-word ^Bdirective^b, an equal
sign [^B=^b], and a ^Bvalue^b.  For example, in the following line, the word
"Environment" is the directive and "2048" is the value:

   @DIRECTIVES%Environment=[Environment = 2048]

Any spaces before or after the equal sign are ignored.  The directive name
may be abbreviated to the minimum length needed to make it unique 4DOS will
display an error if the name you use is unknown or ambiguous.  We recommend
that you use full- length directive names, since future versions of 4DOS may
add directives that would make your abbreviations ambiguous and cause an
error.

If you have a long string to enter in 4DOS.INI (for example, for the @ColorDir=[ColorDir]
directive), you must enter it all on one line.  Strings cannot be "continued"
to a second line.  Each line may be up to ^B511^b characters long.

The format of the value part of a directive line depends on the individual
directive.  It may be a numeric value, a single character, a choice (like
"Yes" or "No"), a color setting, a key name, a path, a filename, or a text
string.  The value begins with the first non-blank character after the equal
sign and ends at the end of the line or the beginning of a comment.

Blank lines are ignored in the 4DOS.INI file and can be used to separate
groups of directives.  You can place comments in the file by beginning a line
with a semicolon [^B;^b].  You can also place comments at the end of any line
except one containing a text string value.  To do so, enter at least one
space or tab after the value, a semicolon, and your comment, like this:

	Environment = 2048 ;set standard environment size

If you try to place a comment at the end of a string value, the comment will
become part of the string and will probably cause an error.

When 4DOS detects an error while processing the 4DOS.INI file, it displays an
error message, ignores the line that caused the error, and prompts you to
press a key to continue processing the file.  This allows you to note any
errors before the startup process continues.  The directive in error will
retain its previous or default value.  Only the most catastrophic errors
(like a disk read failure) will cause 4DOS to ignore all or a large part of
the 4DOS.INI file.  If you don't want 4DOS to pause after each error, use a
"@PauseOnError[PauseOnError] = No" directive at the beginning of the file.

INISTRUCTURE 4DOS.INI File Structure

The 4DOS.INI file is an ASCII file containing directives to control the
configuration of 4DOS in primary and secondary shells.  Blank lines are
ignored and can be used to separate groups of directives.  You can place
comments in the file by beginning a line with a semicolon (^B;^b).  You can
also place comments at the end of any line except one containing a text
string value by entering at least one space or tab after the value, a
semicolon, and your comment.

The 4DOS.INI file has two sections, which are identified by a name in square
brackets on a line by itself.  The section names are

^B[Primary]:^b  Directives in this section will be used when 4DOS is running as
the primary shell.  The same values will be passed automatically to all
secondary shells, unless overridden by a directive with the same name in the
^B[Secondary]^b section.

^B[Secondary]:^b  Directives in this section are used in secondary shells
only, and override any corresponding primary shell settings.  For example, if
your 4DOS.INI file contains the lines:

	ScreenRows = 25
	[Secondary]
	ScreenRows = 50

then 4DOS will assume that you have 25 rows on the screen in the primary
shell and 50 lines in all secondary shells.

Lines that precede a section name are used in both primary and secondary
shells.

The @SETDOS[SETDOS] command can override several of the 4DOS.INI file directives.  For
example, the number of rows on the screen can be adjusted with @SETDOS%/R[SETDOS /R].
The correspondence between SETDOS options and INI file directives is noted
under each directive below, and under each option of the SETDOS command.

Secondary shells automatically inherit the configuration settings currently
in effect in the previous shell.  If values have been changed by SETDOS since
4DOS started, the new values will be passed to the secondary shell.  If the
previous shell's INI file had a ^B[Secondary]^b section, it will then be read and
processed.  If not, the previous shell's settings will remain in effect.  For
example, if you set @BatchEcho[BatchEcho = Yes] in 4DOS.INI, do not include a
^B[Secondary]^ section, and use @SETDOS%/V[SETDOS /V0] to turn off batch file echoing in the
primary shell, then secondary shells will inherit the SETDOS setting, i.e.
batch files will default to no echo.

If you want to force secondary shells to start with the same value as the
primary shell for a particular directive, regardless of any changes made with
SETDOS, repeat the directive in the ^B[Secondary]^b section of 4DOS.INI.  You can
also place the directive outside any section of 4DOS.INI, then include an
empty ^B[Secondary]^b section.  The inclusion of a ^B[Secondary]^b section will force
4DOS to re-read 4DOS.INI, and the directives outside any section will be
reprocessed as they apply to both primary and secondary shells.  Because
4DOS.INI is processed after values from the previous shell are inherited, the
value in 4DOS.INI will override the inherited value.  Using the @BatchEcho[BatchEcho]
example above, either of the following sets of 4DOS.INI directives would work
to ensure that BatchEcho is set to Yes in secondary shells:

    Same directive                Empty
    in both sections              [Secondary]
    ----------------              -----------
    [Primary]                     BatchEcho = Yes
    BatchEcho = Yes                 ... <other
     ... <other directives>         ...  directives>
    [Secondary]                   [Secondary]
    BatchEcho = Yes               <End of File>
     ... <other directives>

If you start a secondary shell from a task switching program like ^BWindows^^b,
^BDESQview^b, or ^BBack&Forth^b, you can specify an alternate location and name for
4DOS.INI by passing the "^B@@d:\path\inifile^b" option to 4DOS as a command-line
parameter In this case, the configuration settings in the alternate 4DOS.INI
file will supersede any settings inherited from the previous shell.  Any
values which are not explicitly set in the alternate file will retain the
value they had in the previous shell.  Any [Primary] section in the alternate
file will be ignored because it is being run from a secondary shell.

INIFORMATS Types of Directive Formats

There are 8 types of directives in 4DOS.INI.  When you look at the
descriptions below, you can tell the directive type by the way in which the
allowable values are shown.

*  Name = ^Bnnnn^b (1234):  This directive takes a numeric value which replaces
   the "nnnn."  The default value is shown in parentheses.

*  Name = ^Bcharacter^b (X):  This directive accepts a single character as its
   value.   The default character is shown in parentheses.  You must type in
   the actual character, you can not use a key name.

*  Name = ^BCHOICE1 | Choice2 | ...^b :  This directive takes a choice value.
   The possible choices are listed, separated by vertical bars.  The ^Bdefault^b
   value is shown in all ^Bupper case^b letters in the directive description, but
   in your file any of the choices can be entered in upper case or lower
   case.  The choices can be abbreviated as long as the abbreviation is
   unique and can not cause ambiguity.  For example, if the choices were
   shown as "YES | No" then "YES" is the default.  You could enter "Y", "N",
   "y", or "n"  for the value.  But if the choices are shown as "YES | No |
   Never" then you could not use "N" as an abbreviation because it would be
   ambiguous.

*  Name = ^Bcolor^b:  This directive takes a color specification in the form:

	^B[BRIght] [BLInk] fg ON bg [BORder bc]^b

   where ^Bfg^b is the foreground color.  ^Bbg^b is the background color.  ^Bbc^b is the
   border color.

   See the section on standard 4DOS @COLORS[Color Attributes & Names] for a list of
   allowable color names.

*  Name = ^BKey^b:  This directive takes a key specification in the form:

	[Prefix-]Keyname

   See the section on @KEYS[Key Names & Scan Codes] for a list of allowable key
   names.

   All key names must be spelled as shown, and can be abbreviated as long as
   the abbreviation is unique and unambiguous.  Alphabetic keys can be
   specified in upper-case or lower-case.  You cannot specify a punctuation
   key.

   Example:

	AddFile = Alt-F10        ;This is okay
        AddFile = Alt F10        ;The space will cause an error

   If you prefer, you can use a numeric value instead of a key name.  Use the
   @SUPPORT^ASCII[ASCII] code for an ASCII, extended ASCII, or control character.  Use the
   scan code preceded by an at-sign [^B@@^b] for extended key codes like F1 or the
   cursor keys.  In general, you will find it easier to use the names
   described above rather than key numbers.

*  Name = ^BPath^b:  This directive takes a path specification, but not a
   filename.  The path should include both a drive and path (e.g., C:\4DOS)
   to avoid any possible ambiguities.  A trailing backslash [^B\^b] at the end
   of the path name is acceptable but not required.  Any default path is
   described in the text.

*  Name = ^BFile^b:  This directive takes a filename.  We recommend that you use
   a ^Bfull filename^b including the drive letter and path to avoid any possible
   ambiguities.  Any default filename is described in the text.

*  Name = ^Bstring^b:  This directive takes a string in the format shown.
   The text describes the default value and any additional requirements for
   formatting the string correctly.  No comments are allowed.

4DOS contains a fixed-length area for storing strings entered in 4DOS.INI,
including file names, paths, and other strings.  This area is large and is
unlikely to overflow, but if it does, you will receive an error message.
If this occurs, reduce the complexity of your 4DOS.INI file or contact JP
Software's Technical Support department for assistance.

4StartPath 4StartPath  (Initialization Directive)

	^B4StartPath=Path^b:  Sets the drive and directory where 4DOS should
look for the 4START and 4EXIT batch files.

Alias Alias  (Initialization Directive)

	^BAlias=nnnn^b (^B1024^b):  Sets the amount of memory in bytes
allocated for the alias list.  The allowable range of values is ^B256^b to ^B32767^b
bytes.

AutoExecPath AutoExecPath  (Initialization Directive)

	^BAutoExecPath=Path^b:  Sets the path used to find AUTOEXEC.BAT if
4DOS is started as a primary shell with the /P option in CONFIG.SYS.  The
default is the ^Broot^b directory of the boot drive.

Environment Environment  (Initialization Directive)

	^BEnvironment=nnnn^b (^B512^b):  Sets the amount of memory allocated
to the environment in bytes.  The allowable range of values is ^B256^b to ^B32768^b
bytes.

EnvFree EnvFree  (Initialization Directive)

	^BEnvFree=nnnn^b (^B128^b):  Sets the minimum amount of memory in
 bytes that will be available in the environment for secondary shells.  4DOS
will enlarge the environment for each secondary shell, if necessary, so that
there is at least this much free environment space when the shell starts.
The allowable range of values is ^B128^b to ^B32768^b bytes.

HelpOptions HelpOptions  (Initialization Directive)

	^BHelpOptions=[/M /Sn /X]^b:  Sets default options for the 4DOS help
system.  The possible options are:

		^2/M^0   Force monochrome display on color systems
                ^2/S0^0  Mouse movement at half normal speed
                ^2/S2^0  Mouse movement at double normal speed
                ^2/S4^0  Mouse movement at quadruple normal speed
                ^2/X^0   Disable mouse entirely -- use with Microsoft serial
                     or PS/2 mice which cause ^B4HELP^b to load very slowly
                     (this is due to a problem in the mouse driver)

HelpPath HelpPath  (Initialization Directive)

	^BHelpPath=Path^b:  Sets the path used to find ^B4HELP.EXE^b when
^BF1^b is pressed or the @HELP[HELP] command is used.  If this directive is
not used, 4DOS will search the current directory and each of the directories
in the @PATH[PATH]

History History  (Initialization Directive)

	^BHistory=nnnn^B (^B1024^b):  Sets the amount of memory allocated to
the history list in bytes.  The allowable range of values is ^B512^b to ^B8192^b
bytes.

LogName LogName  (Initialization Directive)

	^BLogName=File^ (^B4DOSLOG^b):  Sets the log file name and/or path.
If only a path is given, 4DOS will use the default log file name (^B4DOSLOG^b).
Using LogName does not turn logging on, you must still use @LOG[LOG ON] to do so.

PauseOnError PauseOnError  (Initialization Directive)

	^BPauseOnError=YES | No^b:  "^BYes^b" tells 4DOS to pause with
the message "^BError in 4DOS.INI, press any key to continue processing^b" after
displaying any error message related to a specific line in the 4DOS.INI file.
"^BNo^b" continues processing with no pause after an error message is displayed.

Swapping Swapping  (Initialization Directive)

	^BSwapping=swap type [, swap type] ...^b:  Sets the type of swapping 4DOS
should use.  4DOS runs in two parts, a ^Bresident^b portion that is always in
memory and a ^Btransient^b portion that can be stored in EMS memory, in XMS
memory, on a RAM disk, or on your hard disk while application programs are
running.  The resident portion uses about ^B3K^b of memory in the primary shell
and about ^B1.5K^b in secondary shells.  The transient portion uses about ^B88K^b of
memory.  4DOS will perform most quickly if the transient portion is swapped
to the fastest memory or device available.

Swapping for the primary shell normally requires about ^B96K^b of EMS memory,
or ^B88K^b of XMS memory or disk space.  Secondary shells normally require
^B32K^b of EMS memory, or ^B28K^b of XMS memory or disk space.  If you have a
large environment, alias list, or history list, more memory will be required
in both primary and secondary shells.  The EMS requirements are larger
because EMS memory is allocated in 16K increments 4DOS does not actually use
more memory when swapping to EMS.

The swap type may be:

	^2EMS^0:  4DOS will swap to EMS expanded memory if it is available.
You must have expanded memory and an EMS memory manager (version 3.2 or
later) for this option.

	^2XMS^0:  4DOS will swap to XMS extended memory if it is available
(you must have an 80286, 386, or 486 computer for this option, and an XMS
memory manager).

	^2d:\path^0:  4DOS will create a swap file in the drive and directory
specified.  The file will be called ^B4DOSSWAP.NNN^b where "^BNNN^b" is the shell
number.  This swap file is created as a ^Bhidden system^b file to avoid
accidental deletion and will not be visible with a normal DIR command.
Swapping to a RAM disk will generally be somewhat faster than swapping to a
hard disk.  Do not use a floppy disk for swapping because its performance is
likely to be unacceptably slow.

	^2None^0:  No swapping.  The transient portion of 4DOS will remain in
memory at all times.  This option will reduce memory available for
application programs by about 90K compared to the other swap types, and
should be used ^Bonly^b when no other swapping options are available.

You can specify ^Bmultiple swap types^b and 4DOS will try them in the order
listed.  Swap type "^BNone^b" is always appended to your list of possible swap
types as a "last resort", even if you don't include it explicitly.  This
allows 4DOS to start even if the other swap types you specify don't work.

For example, if your system has EMS memory and a RAM disk set up as drive D,
the directive:

	Swapping = EMS, D:\, C:\SWAP

will tell 4DOS to try EMS memory first, then the RAM disk, and finally the
\SWAP directory on drive C.  If all of these options fail (because there
isn't enough free space available), the transient portion of 4DOS will remain
in memory (swap type "None").

The default Swapping specification is:

	^BSwapping = EMS, XMS, x:\, None^b

where "^Bx^b" is the boot drive (for the primary shell) or the ^BCOMSPEC^b drive (for
secondary shells).  (Disk swapping will not be included as a default if the
boot drive is A:  or B:, because floppy disk swapping is too slow to be
useful on most systems.)  The default is usually adequate for most systems.

(Also see the @SWAPPING[SWAPPING] command).

UMBEnvironment UMBEnvironment  (Initialization Directive)

	^BUMBEnvironment=Yes | NO^b:  "^BYes^b" attempts to load the master
 environment into a ^BUMB^b (Upper Memory Block).  This reduces 4DOS's base
memory requirements but may cause problems with some programs that try to
access the master environment directly.  This option requires an 80286, 386,
or 486 computer and appropriate support software.

UMBLoad UMBLoad  (Initialization Directive)

	^BUMBLoad= Yes | NO^b:  "^BYes^b" attempts to load the resident
portion of 4DOS into a ^BUMB^b (Upper Memory Block).  This reduces the size of
the resident portion in base memory from about 3K bytes to ^B256 bytes^b, plus
the environment size (unless you have also enabled @UMBEnvironment=[UMBEnvironment]).  This
option requires an 80286, 386, or 486 computer and appropriate support
software.

ANSI= ANSI  (Configuration Directive)

	^BANSI=AUTO | Yes | No^b:  Tells 4DOS whether an ANSI driver is
installed and should be used for the CLS and COLOR commands.  4DOS normally
determines this itself, but if you are using a non-standard ANSI driver or
your loading sequence is unusual, you may need to explicitly inform 4DOS.
Also see @SETDOS%ANSI=[SETDOS /A].

BatchEcho BatchEcho  (Configuration Directive)

	^BBatchEcho=YES | No^b:  Sets the default batch ECHO mode.  "^BYes^b"
enables echoing of all batch file commands unless ECHO is explicitly set off
in the batch file.  "^BNo^b" disables batch file echoing unless ECHO is
explicitly set on.  Also see @SETDOS%BatchEcho=[SETDOS /V].

BeepFreq BeepFreq  (Configuration Directive)

	^BBeepFreq= ^Bnnnn^b (^B440^b):  Sets the default @BEEP[BEEP] command frequency
in ^BHz^b.  This is also the frequency for 4DOS "error" beeps (if you press
an illegal key, for example).

To disable all 4DOS error beeps set this or @BeepLength[BeepLength] to ^B0^b. If you do, the
@BEEP[BEEP] command will still be operable, but will not produce sound unless you
explicitly specify the frequency and duration.

BeepLength BeepLength  (Configuration Directive)

	^BBeepLength=nnnn^b (^B2^b):  Sets the default @BEEP[BEEP] length in system
clock ticks (approximately 1/18 of a second per tick).  BeepLength is also
the default length for 4DOS "error" beeps (if you press an illegal key, for
example).

CursorIns CursorIns  (Configuration Directive)

	^BCursorIns=nnnn^b (^B100^b):  This is the shape of the cursor
for ^Binsert^b mode during command line editing and all commands which accept
line input (@DESCRIBE[DESCRIBE], @ESET[ESET], etc.).  The size is a ^Bpercentage^b of the total
character cell size, between ^B0%^b and ^B100%^b.  Because of the way video BIOSes
map the cursor shape, you may not get a smooth progression in cursor shapes
as CursorIns and @CursorOver[CursorOver] change.  Also see @SETDOS%CursorIn=[SETDOS /S].

CursorOver CursorOver  (Configuration Directive)

	^BCursorOver=nnnn^b (^B10^b):  This is the shape of the cursor
for ^Bovertype^b mode during command line editing and all commands which accept
line input (@DESCRIBE[DESCRIBE], @ESET[ESET], etc.).  The size is a ^Bpercentage^b of the total
character cell size, between ^B0%^b and ^B100%^b.  Because of the way video BIOSes
map the cursor shape, you may not get a smooth progression in cursor shapes
as CursorOver and @CursorIns[CursorIns] change.  Also see @SETDOS%CursorOver=[SETDOS /S].

CommandSep CommandSep  (Configuration Directive)

	^BCommandSep=character^B (^B^^^b):  This is the character used to separate
multiple commands on the same line.  You cannot use any of the @REDIRECTION[redirection]
characters (| > < ) or any of the whitespace characters (space, tab, comma,
or equal sign).  Also see @SETDOS%CommandSep=[SETDOS /C].

EditMode EditMode  (Configuration Directive)

	^BEditMode=Insert | OVERSTRIKE^b:  This directive lets you start the
command line editor in either insert or overstrike mode.  Also see @SETDOS%EditMode=[SETDOS /M].

EscapeChar EscapeChar  (Configuration Directive)

	^BEscapeChar=character^b (^BCtrl-X^b):  Sets the character used to suppress
the normal meaning of the following character.  You cannot use any of the
@REDIRECTION[redirection] characters  (| > < ) or the whitespace characters (space, tab,
comma, or equal sign) as the  escape character.  Also see @SETDOS%EscapeChar=[SETDOS /E].

HistMin HistMin  (Configuration Directive)

	^BHistMin=nnnn^b (^B0^b):  Sets the ^Bminimum^b command line size to save
in the command history list.  Any command line whose length is less than this
value will not be saved.  Legal values range from ^B0^b (save everything) to ^B256^b
(disable all command history saves).

HistWinHeight HistWinHeight  (Configuration Directive)

	^BHistWinHeight=nn^b (^B12^b):  Sets the ^Bheight^b of the command line
history window in lines, including the border.  Legal values range from ^B5^b to
the height of your ^Bscreen^b.  Any value which would cause the bottom of the
window to be off the screen will be adjusted so that the entire window
remains on the screen.

HistWinLeft HistWinLeft  (Configuration Directive)

	^BHistWinLeft=nn^b (^B40^b):  Sets the horizontal position of the
^Bleft^b side of the command line history window.  Legal values range from ^B0^b
(the left edge of the screen) to the number of columns on your ^Bscreen minus
10^b.  Any value which would cause the right side of a minimum-width window to
be off the screen will be adjusted so that the entire window remains on the
screen.

HistWinTop HistWinTop  (Configuration Directive)

	^BHistWinTop=nn^b (^B1^b):  Sets the vertical position of the ^Btop^b of
the command line history window.  Legal values range from ^B0^b (the top of the
screen) to the number of rows on your ^Bscreen minus 5^b.  Any value which would
cause the bottom of a minimum-height window to be off the screen will be
adjusted so that the entire window remains on the screen.

HistWinWidth HistWinWidth  (Configuration Directive)

	^BHistWinWidth=nn^b (^B36^b):  Sets the ^Bwidth^b of the command line
history window in characters, including the border.  Legal values range from
^B10^b to the width of your ^Bscreen^b.  Any value which would cause the right side of
the window to be off the screen will be adjusted so that the entire window
remains on the screen.

LineInput LineInput  (Configuration Directive)

	^BLineInput=Yes | NO^b:  This directive controls how 4DOS gets its input from
the command line.  "^BYes^b" forces 4DOS to use line input via the DOS service
INT 21H 0AH "Get Line" which is the way that COMMAND.COM gets input.  This
will ^Bdisable^b command-line editing, history recall, and filename completion,
and is normally used only for rare memory-resident programs (TSRs) which do
not work properly unless the command processor uses line input.

If you have a particular program that requires line input, you can use
@SETDOS%LineInput=[SETDOS /L] to temporarily change modes.  See APPNOTES.DOC for any specific programs
which require this option.

NoClobber NoClobber  (Configuration Directive)

	^BNoClobber=Yes | NO^b:  If set to Yes, will prevent standard output
@REDIRECTION[redirection] from overwriting an existing file, and will require that the
output file already exist for append redirection.  Also see @SETDOS%NoClobber=[SETDOS /N].

ScreenRows ScreenRows  (Configuration Directive)

	^BScreenRows=nnnn^b:  Sets the number of screen rows used by the
video display.  Normally, 4DOS detects the screen size automatically, but if
you have a non-standard display you may need to set it explicitly.  This
value does not affect screen scrolling, which is controlled by your video
BIOS or ANSI driver.  ^BScreenRows^b is used only by the @LIST[LIST] and @SELECT[SELECT]
commands, the paged output options of other commands (e.g., @TYPE%/P[TYPE /P]), and
error checking in the screen output commands.  Also see @SETDOS%ScreenRows=[SETDOS /R].

UpperCase UpperCase  (Configuration Directive)

	^BUpperCase=Yes | NO^b:  "^BYes^b" specifies that filenames should be displayed in
the traditional upper-case by internal commands like @COPY[COPY] and @DIR[DIR].  "^BNo^b"
allows the normal 4DOS lower-case style.  Also see @SETDOS%UpperCase=[SETDOS /U].

ColorDir ColorDir (Color Directive)

	^BColorDir=ext1 ext2 ...:colora;ext3 ext4 ... :colorb; ...^B (^Bnone^b):
Sets the directory colors.  The format is the same as that used for the
@COLORDIR[COLORDIR] environment variable.  If you set the COLORDIR environment variable,
it will override this directive.

The last color specification which matches a file extension will be used,
overriding any previous specifications.

Special file types can be used as "extension" to define the color to be used
for specific file attributes:

		^2DIRS^0   Directories
		^2RDONLY^0  Read-Only Files
                ^2HIDDEN^0  Hidden Files
		^2SYSTEM^0  System Files

You may find it useful to use the ^BCOLORDIR^b variable for experimenting,
then to set permanent directory colors with a ^BColorDir^b directive in
4DOS.INI.

Example:

  ColorDir = com exe:bri yel;b*:bri gre;bak:whi;dirs:bri whi on mag

HistWinColor HistWinColor (Color Directive)

	^BHistWinColor=Color^b:  Sets the default colors for the command line history window.
If this directive is not used the colors will be reversed from the current colors on
the screen.

ListColors ListColors (Color Directive)

	^BListColors=Color^b:  Sets the colors used by the @LIST[LIST] and @SELECT[SELECT]
commands.  If this directive is not used, @LIST[LIST] and @SELECT[SELECT] will use the
current default colors set by the @CLS[CLS] or @COLOR[COLOR] command or by the @StdColors[StdColors]
directive.

StdColors StdColors (Color Directive)

	^BStdColors=Color^b:  Sets the standard colors to be used when @CLS[CLS] is used
without a color specification, and for @LIST[LIST] and @SELECT[SELECT] if @ListColors[ListColors] is not
used.

Using this directive is equivalent to placing a @COLOR[COLOR] command in
AUTOEXEC.BAT.

StdColors takes effect once the transient portion of 4DOS starts (i.e., when
4START is run), but will not affect the color of error or other messages
displayed during the 4DOS loading and initialization process.

If ANSI.SYS or a compatible driver is not loaded, the colors will not be
"sticky"  and you may lose them when you run an application.

INIKEYS Key Mapping Directives

The directives in this group allow you to change the @KEYS[keys] used for 4DOS
command line editing and other internal functions.  They take effect only
inside 4DOS itself and do not affect other programs (including 4DOS's
external help program, 4HELP.EXE).

The description of each directive below explains the function of the
corresponding key.  Using the directive allows you to assign a different or
additional key to perform the function described.  For example, to assign
function key F3 to invoke the 4DOS HELP facility:

	Help = F3

Any directive can be used multiple times to assign multiple keys to the same
function.  For example:

	ListFind = F    F does a find in LIST
	ListFind = F5   F5 also does a find in LIST

Use some care when you reassign keystrokes.  If you assign a default key to a
different function, it will no longer be available for its original use.  For
example, if you assign F1 to the @Addfile[AddFile] directive (a part of filename
completion), the F1 key will no longer invoke 4DOS's HELP facility, so you
will probably want to assign a different key to HELP.

Some keys are interpreted by your system's BIOS and are not passed on to
4DOS.  For example, ^BCtrl-S^b tells the BIOS to pause screen output temporarily,
and on some systems ^BCtrl-P^b toggles Print Screen mode.  Keys which are
interpreted by the BIOS cannot be assigned with key mapping directives,
because 4DOS never receives these keystrokes and therefore cannot act on
them.

4DOS processes all command line editing key assignments before looking for
@ALIAS%Keystroke Aliases[keystroke aliases].  For example, if you assign Shift-F1 to HELP and also
assign Shift-F1 to a key alias, the key alias will be ignored.

Assigning a new keystroke for a function does not deassign the default
keystroke for the same function.  If you want to deassign one of the standard
4DOS keys without assigning it to another function, use the @NormalLey[NormalKey]
directive or the corresponding directive for keys in the
other key groups (@NormalEditKey[NormalEditKey], @NormalHWinKey[NormalHWinKey], or @NormalListKey[NormalListKey]).

@INIKEYS%Input Keys Index[Input Keys]:  This first set of Key Mapping Directives
applies to all input.  These directives are effective whenever 4DOS requests
input from the keyboard, including command line editing and the @DESCRIBE[DESCRIBE],
@ESET[ESET], @INPT[INPUT], @LIST[LIST], and @SELECT[SELECT] commands.  (Scrolling through the command
history list is controlled by @NextHist[NextHist] and @PrevHist[PrevHist], not by the @Up[Up] and @Down[Down]
directives).

@INIKEYS%Editing Keys Index[Command Line Editing Keys]:  These directives apply only to command line
editing.  They are only effective at the 4DOS prompt.

@INIKEYS%Hist. Window Keys Index[History Window Keys]:  These directives apply only to the "popup" history
window triggered by @HistWinOpen[HistWinOpen].

@INIKEYS%LIST Keys Index[LIST Keys]:  The keys in this group of Key Mapping Directives are effective
only inside the @LIST[LIST] command.

		        ^1Key Mapping Directives Index^0

			@INIKEYS%A.[A.] ^1General Input Keys Index^0
  @BackSpace[BackSpace]         @BeginLine[BeginLine]         @Del[Del]               @DelToBeginning[DelToBeginning]
  @DelToEnd[DelToEnd]          @DelWordLeft[DelWordLeft]       @DelWordRight[DelWordRight]      @Down[Down]
  @EndLine[EndLine]           @EraseLine[EraseLine]         @ExecLine[ExecLine]          @Ins[Ins]
  @Left[Left]              @NormalKey[NormalKey]         @Right[Right]             @Up[Up]
  @WordLeft[WordLeft]          @WordRight[WordRight]

			   @INIKEYS%B.[B.] ^1Editing Keys Index^0
  @AddFile[Addfile]           @CommandEscape[CommandEscape]     @DelHistory[DelHistory]        @EndHistory[EndHistory]
  @Help[Help]              @NextFile[NextFile]          @NextHistory[NextHistory]       @NormalEditKey[NormalEditKey]
  @PrevFile[PrevFile]          @PrevHistory[PrevHistory]       @SaveHistory[SaveHistory]


			 @INIKEYS%C.[C.] ^1Hist. Window Keys Index^0
  @HistWinBegin[HistWinBegin]     @HistWinDel[HistWinDel]         @HistWinEdit[HistWinEdit]       @HistWinEnd[HistWinEnd]
  @HistWinExec[HistWinExec]      @HistWinOpen[HistWinOpen]        @NormalHWinKey[NormalHWinKey]


			     @INIKEYS%D.[D.] ^1LIST Keys Index^0
  @ListFind[ListFind]         @ListHighBit[ListHighBit]         @ListNext[ListNext]              @ListPrint[ListPrint]
  @ListWrap[ListWrap]         @NormalListKey[NormalListKey]

BackSpace BackSpace  (General Input Key Mapping Directive)

	^BBackSpace=Key^b  (^BBksp^b):  Deletes the character to the left of
the cursor.

BeginLine BeginLine  (General Input Key Mapping Directive)

	^BBeginLine=Key^b  (^BHome^b):  Moves the cursor to the beginning of
the line.

Del Del (General Input Key Mapping Directive)

	^BDel=Key^b  (^BDel^b):  Deletes the character at the cursor.

DelToBeginning DelToBeginning  (General Input Key Mapping Directive)

	^BDelToBeginning=Key^b (^BCtrl-Home^b):  Deletes from the cursor to
the start of the line.

DelToEnd DelToEnd  (General Input Key Mapping Directive)

	^BDelToEnd=Key^b  (^BCtrl-End^b):  Deletes from the cursor to the end
of the line.

DelWordLeft DelWordLeft  (General Input Key Mapping Directive)

	^BDelWordLeft=Key^b  (^BCtrl-L^b):  Deletes the word to the left of
the cursor.

DelWordRight DelWordRight  (General Input Key Mapping Directive)

	^BDelWordRight=Key^b  (^BCtrl-R^b, ^BCtrl-Bksp^b):  Deletes the word
to the right of the cursor.

Down Down  (General Input Key Mapping Directive)

	^BDown=Key^b  (^BDown^b):  Scrolls the display down one line in @LIST[LIST]
moves the cursor down ^Bone^b line in @SELECT[SELECT] and in the command history window.

EndLine EndLine  (General Input Key Mapping Directive)

	^BEndLine=Key^b  (^BEnd^b):  Moves the cursor to the end of the line.

EraseLine EraseLine  (General Input Key Mapping Directive)

	^BEraseLine=Key^b  (^BEsc^b):  Deletes the entire line.

ExecLine ExecLine  (General Input Key Mapping Directive)

	^BExecLine=Key^b  (^BEnter^b):  Executes or accepts a line.

Ins Ins  (General Input Key Mapping Directive)

	^BIns=Key^b  (^BIns^b):  Toggles insert / overstrike mode during line
editing.

Left Left  (General Input Key Mapping Directive)

	^BLeft=Key^b  (^BLeft^b):  Moves the cursor left one character moves
the display left ^B8^b columns in @LIST[LIST].

NormalKey NormalKey  (General Input Key Mapping Directive)

	^BNormalKey=Key^b  (^Bnone^b):  Deassigns a general @DIRECTIVES%Input Keys[input key] in
order to disable the usual meaning of the key within 4DOS and / or make it
available for @KEYS%Keystroke Aliases[keystroke aliases].  This will cause 4DOS to treat the keystroke
as a "normal" key with no special function.  For example:

	NormalKey = Ctrl-End

will disable Ctrl-End, which is the standard "delete to beginning of line"
key.  Ctrl-End could then be assigned to a keystroke alias.  Another key
could be assigned the "delete to end of line" function with the @DelToEnd[DelToEnd]
directive.

Right Right  (General Input Key Mapping Directive)

	^BRight=Key^b  (^BRight^b):  Moves the cursor right one character
scrolls the display right ^B8^b columns in @LIST[LIST].

Up Up  (General Input Key Mapping Directive)

	^BUp=Key^b  (^BUp^b):  Scrolls the display up one line in @LIST[LIST] moves
the cursor up ^Bone^b line in @SELECT[SELECT] and in the command history window.

WordLeft WordLeft  (General Input Key Mapping Directive)

	^BWordLeft=Key^b  (^BCtrl-Left^b):  Moves the cursor left one word
scrolls the display left ^B40^b columns in @LIST[LIST].

WordRight WordRight  (General Input Key Mapping Directive)

	^BWordRight=Key^b  (^BCtrl-Right^b):  Moves the cursor right one word
scrolls the display right ^B40^b columns in @LIST[LIST].

AddFile Addfile  (Command Line Editing Key Mapping Directive)

	^BAddFile=Key^b  (^BF10^b):  Keeps the current filename completion
entry and inserts the next matching name.

CommandEscape CommandEscape  (Command Line Editing Key Mapping Directive)

	^BCommandEscape=Key^b  (^BAlt-255^b):  Allows direct entry of a
keystroke that would normally be interpreted as an editor command.

DelHistory DelHistory  (Command Line Editing Key Mapping Directive)

	^BDelHistory=Key^b  (^BCtrl-D^b):  Deletes the displayed history list
entry and displays the previous entry.

EndHistory EndHistory  (Command Line Editing Key Mapping Directive)

	^BEndHistory=Key^b  (^BCtrl-E^b):  Displays the last entry in the
history list.

Help= Help  (Command Line Editing Key Mapping Directive)

	^BHelp=Key^b  (^BF1^b):  Invokes the 4DOS @HELP[HELP] facility.

NextFile NextFile  (Command Line Editing Key Mapping Directive)

	^BNextFile=Key^b  (^BF9^b, ^BTab^b):  Gets the next matching filename.

NextHistory NextHistory  (Command Line Editing Key Mapping Directive)

	^BNextHistory=Key^b  (^BDown^b):  Recalls the next command from the
command history.

NormalEditKey NormalEditKey  (Command Line Editing Key Mapping Directive)

	^BNormalEditKey=Key^b (^Bnone^b):  Deassigns a @DIRECTIVES%Command Line Keys[command line editing key]
in order to disable the usual meaning of the key while editing a command
line and/or make it available for keystroke aliases.  This will cause 4DOS
to treat the keystroke as a "normal" key with no special function.

PrevFile PrevFile  (Command Line Editing Key Mapping Directive)

	^BPrevFile=Key^b  (^BF8^b, ^BShift-Tab^b):  Gets the previous matching
filename.

PrevHistory PrevHistory  (Command Line Editing Key Mapping Directive)

	^BPrevHistory=Key^b  (^BUp^b):  Recalls the previous command from the
command history.

SaveHistory SaveHistory  (Command Line Editing Key Mapping Directive)

	^BSaveHistory=Key^  (^BCtrl-K^b):  Saves the command line in the
history list without executing it.

HistWinBegin HistWinBegin  (History Window Key Mapping Directive)

	^BHistWinBegin=Key^b (^BCtrl-PgUp^b):  Moves to the first line of the
history when in the history window.

HistWinDel HistWinDel  (History Window Key Mapping Directive)

	^BHistWinDel=Key^b (^BCtrl-D^b):  Deletes a line from within the
history window.

HistWinEdit HistWinEdit  (History Window Key Mapping Directive)

	^BHistWinEdit=Key^b (^BCtrl-Enter^b):  Moves a line from the history
window to the prompt for editing.

HistWinEnd HistWinEnd  (History Window Key Mapping Directive)

	^BHistWinEnd=Key^b (^BCtrl-PgDn^b):  Moves to the last line of the
history when in the history window.

HistWinExec HistWinExec  (History Window Key Mapping Directive)

	^BHistWinExec=Key^b (^BEnter^b):  Executes the selected line in the
history window.

HistWinOpen HistWinOpen  (History Window Key Mapping Directive)

	^BHistWinOpen=Key^b (^BPgUp^b, ^BPgUp^b):  Brings up the history
window while at the command line.

NormalHWinKey NormalHWinKey  (History Window Key Mapping Directive)

	^BNormalHWinKey=Key^b (^Bnone^b):  Deassigns a history window key in
order to disable the usual meaning of the key within the history window.
This will cause 4DOS to treat the keystroke as a "normal" key with no special
function.

ListFind ListFind  (LIST Key Mappping Directive)

	^BListFind=Key^b  (^BF^b):  Prompts and searches for a string.

ListHighBit ListHighBit  (LIST Key Mappping Directive)

	^BListHighBit=Key^b (^BH^b):  Toggles @LIST[LIST]'s "strip high bit"
option, which can aid in displaying files from certain word processors.

ListNext ListNext  (LIST Key Mappping Directive)

	^BListNext=Key^b  (^BN^b):  Finds the next matching string.

ListPrint ListPrint  (LIST Key Mappping Directive)

	^BListPrint=Key^b  (^BP^b):  Prints the file on ^BLPT1^b.

ListWrap ListWrap  (LIST Key Mappping Directive)

	^BListWrap=Key^b (^BW^b):  Toggles @LIST[LIST]'s wrap option on and
off.  The wrap option wraps text at the right margin.

NormalListKey NormalListKey  (LIST Key Mappping Directive)

	^BNormalListKey=Key^b (^Bnone^b):  Deassigns a @LIST[LIST] key in
order to disable the usual meaning of the key within @LIST[LIST].  This will
cause 4DOS to treat the keystroke as a "normal" key with no special function.

CritFail CritFail  (Advanced Directive)

	^BCritFail=Yes | NO^b:  This is the same as ^B/F^b on the SHELL = line in
CONFIG.SYS.  It intercepts all DOS critical errors and returns a ^BFail^b to
each.  We do not recommend this on a normal system, because you will not have
a chance to react to a critical error and correct the problem that caused it.
It is intended for use on bulletin boards or other systems where unattended
operation is required without user prompts.

FineSawp FineSwap  (Advanced Directive)

	^BFineSwap=Yes | NO^b:  "^BYes^b" enables "^Bfine-grained^b" checksums during
disk swapping.  This should be used only to diagnose unusual swapping
problems.

FullINT2E FullINT2E  (Advanced Directive)

	^BFullINT2E=Yes | NO^b:  Enables full support for the COMMAND.COM
"back door" (interrupt 2E) which a few programs use to execute commands.
Effective only in a primary shell loaded via the SHELL= command in
CONFIG.SYS.  See your 4DOS documentation for details on using INT 2E.  Also,
see APPNOTES.DOC for information on any programs known to require this
option.  If this directive is not used or is set to ^BNO^b, INT 2E will return
immediately to the calling program without taking any action.  Setting
FullINT2E to ^BYes^b adds about ^B100 bytes^b to the resident size of the primary
shell.

Inherit Inherit  (Advanced Directive)

	^BInherit=YES | No^b:  Aliases and the history list are normally
passed to secondary shells automatically.  "^BNo^b" disables this feature.

MessageServer MessageServer  (Advanced Directive)

	^BMessageServer=YES | No^b:  For compatibility with COMMAND.COM in
MS-DOS 4.x and 5.x, 4DOS includes a "^Bmessage server^b" that retrieves error
message text for DOS external commands like @DISKCOPY[DISKCOPY] and @FORMAT[FORMAT].  The message
server increases the size of the resident portion of 4DOS by about ^B200 bytes^b.
"^BNo^b" disables the message server and saves this space, but will cause more
cryptic error messages such as "^BParse error 3^b" or "^BExtended error 7^b" from
some DOS external commands.  The message server is automatically disabled by
4DOS ^Bexcept^b in the primary 4DOS shell loaded from CONFIG.SYS when running
under DOS 4.x or 5.x, where this directive applies.

    ╓─────────────────────────────────────────────────────────────────╖
    ║NOTE:  The default is YES, meaning the message server is loaded. ║
    ║Unfortunately, a little gremlin has reversed the meaning of "Yes ║
    ║and "No" in this directive, and to disable the message server, in║
    ║the primary shell under MS-DOS 4.x and 5.x, you need to set it to║
    ║"Yes".  This will, of course, be corrected in our next release.  ║
    ╙─────────────────────────────────────────────────────────────────╜

Reduce Reduce  (Advanced Directive)

	^BReduce=YES | No^b:  Set to "^BNo^b" to disable the smaller ^Bswap size^b used
by 4DOS secondary shells.  For diagnosing unusual swapping problems only.

(Also see the @SwapReopen[SwapReopen] directive).

ReserveTPA ReserveTPA  (Advanced Directive)

	^BReserve TPA=YES | No^b:  Set to "^BNo^b" to prevent 4DOS from reserving
memory for its transient portion while at the command prompt.  For diagnosing
unusual TSR or swapping problems only.  ReserveTPA is forced to ^BYES^b
regardless of any INI file setting if you are running under ^BWindows 3 in real
or standard mode^b.  This is necessary to avoid undesirable interactions
between 4DOS and Windows.

StackSize StackSize  (Advanced Directive)

	^BStackSize=nnnn^b (^B3584^b):  Set the 4DOS internal stack size. The
allowable range of values is ^B3584^b to ^B8192^b.  You may need to increase the
stack size if you are using extremely complex combinations of batch files
and nested "prefix" commands like @EXCEPT[EXCEPT], @FOR[FOR], @GLOBAL[GLOBAL], @IF[IF], and @SELECT[SELECT] on
the same command line.  Under such circumstances 4DOS may not work properly
you should only use this directive if you are actually experiencing trouble
under such conditions.  For virtually all users the default stack size will
be sufficient.  Increasing this value also increases the size of 4DOS's
^Btransient portion^b and the size of the 4DOS ^Bswap area^b.

SwapReopen SwapReopen  (Advanced Directive)

	^BSwapReopen=Yes | NO^b:  Set to "^BYes^b" to enable reopening of the
4DOS swap file if it is closed by another program.  This is required when
swapping 4DOS to ^BNovell Netware drives^b.  In all other circumstances, it is
only useful for diagnostic purposes.  Setting SwapReopen to "Yes" also
disables the @Reduce[reduced swapping] size normally used in 4DOS secondary shells.

≈INDEX Index of Chapters

@ABOUT[About this 4DOS/4OS2 HyperText HELP System  ]
@*[Welcome to the 4DOS/4OS2 Hypertext System For Multi-Edit  ]
@GLOSSARY[Glossary (in alphabetical order)  ]

@4DOSMEMAC[The 4DOSME macro  ]
@DIRECTIVES[4DOS.INI Directives  ]
@ANSI[ANSI Sequences  ]
@COLORS[Color Attributes and Names  ]
@COMMANDS[Commands & Keywords (1 of 2)  ]
@COMMANDS2[Commands & Keywords (2 of 2)  ]
@GROUPING[Command Grouping  ]
@CONDITIONAL[Conditional Commands  ]
@VARIABLES[Environment and Internal Variables  ]
@INCLUDE[Include Lists   ]
@KEYS[Key Names & Scan Codes  ]
@REDIRECTION[Redirection & Piping  ]
@FUNCTIONS[Variable Functions  ]
@WILDCARDS[Wildcards  ]

@#[%#  (Internal Variable)  ]
@&&[!&&  "AND" Conditional Command  ]
@||[!||  "OR" Conditional Command  ]
@.AND.[!.AND.  (Logical Operator)  ]
@.OR.[.OR.  (Logical Operator)  ]
@.XOR.[.AND.  (Logical Operator)  ]
@?[!?  (Internal 4DOS)  ]
@_4VER[%_4VER  (Internal Variable)  ]
@_?[%_?  (Internal Variable)  ]
@_ALIAS[%_ALIAS  (Internal Variable)  ]
@_ANSI[%_ANSI  (Internal Variable)  ]
@_BATCH[%_BATCH  (Internal Variable)  ]
@_BG[%_BG  (Internal Variable)  ]
@_BOOT[%_BOOT  (Internal Variable)  ]
@_CDPATH[%_CDPATH  (Environment Variable)  ]
@_CODEPAGE[%_CODEPAGE  (Internal Variable)  ]
@_COLUMN[%_COLUMN  (Internal Variable)  ]
@_COLUMNS[%_COLUMNS  (Internal Variable)  ]
@_CPU[%_CPU  (Internal Variable)  ]
@_CWD[%_CWD  (Internal Variable)  ]
@_CWDS[%_CWDS  (Internal Variable)  ]
@_CWP[%_CWP  (Internal Variable)  ]
@_CWPS[%_CWPS  (Internal Variable)  ]
@_DATE[%_DATE  (Internal Variable)  ]
@_DISK[%_DISK  (Internal Variable)  ]
@_DOS[%_DOS  (Internal Variable)  ]
@_DOSVER[%_DOSVER  (Internal Variable)  ]
@_DOW[%_DOW  (Internal Variable)  ]
@_DV[%_DV  (Internal Variable)  ]
@_ENV[%_ENV  (Internal Variable)  ]
@_FG[%_FG  (Internal Variable)  ]
@_LASTDISK[%_LASTDISK  (Internal Variable)  ]
@_MONITOR[%_MONITOR  (Internal Variable)  ]
@_MOUSE[%_MOUSE  (Internal Variable)  ]
@_NDP[%_NDP  (Internal Variable)  ]
@_ROW[%_ROW  (Internal Variable)  ]
@_ROWS[%_ROWS  (Internal Variable)  ]
@_SHELL[%_SHELL  (Internal Variable)  ]
@_TIME[%_TIME  (Internal Variable)  ]
@_TRANSIENT[%_TRANSIENT  (Internal Variable)  ]
@_VIDEO[%_VIDEO  (Internal Variable)  ]
@_WIN[%_VIDEO  (Internal Variable)  ]
@÷?[%?  (Internal Variable)  ]
@CDPATH[%CDPATH  (Environment Variable)  ]
@CMDLINE[%CMDLINE  (Environment Variable)  ]
@COLORDIR[%COLORDIR  (Environment Variable)  ]
@COMSPEC[%COMSPEC  (Environment Variable)  ]
@TEMP[%TEMP  (Environment Variable)  ]
@TEMP4DOS[%TEMP4DOS  (Environment Variable)  ]
@÷PATH[%PATH  (Environment Variable)  ]
@ALIAS[!ALIAS  (Internal 4DOS)  ]
@APPEND[APPEND  (Internal/External MS-DOS)  ]
@ASSIGN[ASSIGN  (External MS-DOS)  ]
@ATTRIB[ATTRIB  (Internal 4DOS)  ]
@BACKUP[!BACKUP  (External MS-DOS)  ]
@BEEP[BEEP  (Internal 4DOS)  ]
@BREAK[BREAK  (Internal 4DOS)  ]
@CALL[!CALL  (Internal 4DOS)  ]
@CANCEL[CANCEL  (Internal 4DOS)  ]
@CD[CD  (Internal 4DOS)   ]
@CDD[CDD  (Internal 4DOS)  ]
@CHCP[CHCP  (Internal 4DOS)  ]
@CHDIR[CHDIR (Internal 4DOS)   ]
@CHKDSK[CHKDSK  (External MS-DOS)  ]
@CLS[CLS  (Internal 4DOS)  ]
@COLOR[COLOR  (Internal 4DOS)  ]
@COMP COMP[ (External MS-DOS)  ]
@COPY[COPY (Internal 4DOS)  ]
@CTTY[CTTY  (Internal 4DOS)  ]
@DATE[!DATE  (Internal 4DOS)  ]
@DEL[DEL  (Internal 4DOS)  ]
@DELAY[DELAY  (Internal 4DOS)  ]
@DESCRIBE[DESCRIBE  (Internal 4DOS)  ]
@DIR[DIR  (Internal 4DOS)  ]
@DIRS[DIRS (Internal 4DOS)  ]
@DISKCOMP[DISKCOMP  (External MS-DOS)  ]
@DISKCOPY[DISKCOPY  (External MS-DOS)  ]
@DO[DO (4DOS Keyword)  ]
@DRAWBOX[DRAWBOX  (Internal 4DOS)  ]
@DRAWHLINE[DRAWHLINE  (Internal 4DOS)  ]
@DRAWVLINE[DRAWVLINE  (Internal 4DOS)  ]
@ECHO[!ECHO  (Internal 4DOS)  ]
@ECHOS[ECHOS  (Internal 4DOS)  ]
@EDIT[EDIT  (External MS-DOS)  ]
@ELSE[ELSE  (4DOS Keyword)  ]
@ELSEIFF[ELSEIFF  (4DOS Keyword)  ]
@ENDIFF[ENDIFF  (4DOS Keyword)  ]
@ENDLOCAL[ENDLOCAL  (Internal 4DOS)  ]
@ENDTEXT[ENDTEXT  (4DOS Keyword)  ]
@ERASE[ERASE  (Internal 4DOS)  ]
@ESET[ESET  (Internal 4DOS)  ]
@EXCEPT[EXCEPT  (Internal 4DOS)  ]
@EXIT[EXIT  (Internal 4DOS)  ]
@EXITCODE[ Exit Code  ]
@FASTOPEN[!FASTOPEN  (External MS-DOS)  ]
@FIND[FIND  (External MS-DOS)  ]
@FOR[FOR  (Internal 4DOS)  ]
@FORMAT[FORMAT  (External MS-DOS)  ]
@FREE[FREE  (Internal 4DOS)  ]
@GLOBAL[!GLOBAL  (Internal 4DOS)  ]
@GOSUB[GOSUB  (Internal 4DOS)  ]
@GOTO[GOTO  (Internal 4DOS)  ]
@GRAFTABL[GRAFTABL  (External MS-DOS)  ]
@GRAPHICS[GRAPHICS  (External MS-DOS)  ]
@HISTORY[!HISTORY  (Internal 4DOS)  ]
@IF[!IF  (Internal 4DOS)   ]
@IFF[IFF  (Internal 4DOS)  ]
@IN[IN  (4DOS Keyword)   ]
@INCLUDE[Include Lists   ]
@INKEY[INKEY  (Internal 4DOS)  ]
@INPUT[INPUT  (Internal 4DOS)  ]
@JOIN[!JOIN  (External MS-DOS)  ]
@KEYB[!KEYB  (External MS-DOS)  ]
@KEYSTACK[KEYSTACK  (Internal 4DOS)  ]
@LABEL[!LABEL  (External MS-DOS)  ]
@LH[LH  (Internal 4DOS)   ]
@LIST[LIST  (Internal 4DOS)  ]
@LOADHIGH[LOADHIGH  (Internal 4DOS)  ]
@MD[!MD  (Internal 4DOS)   ]
@MEM[MEM  (External MS-DOS)  ]
@MEMORY[MEMORY  (Internal 4DOS)  ]
@MIRROR[MIRROR  (External MS-DOS)  ]
@MKDIR[MKDIR  (Internal 4DOS)  ]
@MODE[MODE  (External MS-DOS)  ]
@MORE[MORE  (External MS-DOS)  ]
@MOVE[MOVE  (Internal 4DOS)  ]
@NLSFUNC[!NLSFUNC  (External MS-DOS)  ]
@PATH[!PATH  (Inter 4DOS)  ]
@PAUSE[PAUSE  (Internal 4DOS0  ]
@POPD[POPD  (Internal 4DOS)  ]
@PRINT[PRINT  (External MS-DOS)  ]
@PROMPT[PROMPT  (Internal 4DOS)  ]
@PUSHD[PUSHD  (Internal 4DOS)  ]
@QUIT[!QUIT (Internal 4DOS)  ]
@RD[!RD  (Internal 4DOS)   ]
@REBOOT[REBOOT  (Internal 4DOS)  ]
@RECOVER[RECOVER  (External MS-DOS)  ]
REM[REM  (Internal 4DOS)  ]
@REN[REN  (Internal 4DOS)  ]
@RENAME[RENAME  (Internal 4DOS)  ]
@REPLACE[REPLACE  (External MS-DOS)  ]
@RESTORE[RESTORE  (External MS-DOS)  ]
@RETURN[RETURN  (Internal 4DOS)  ]
@RMDIR[RMDIR  (Internal 4DOS)  ]
@SCREEN[!SCREEN  (Internal 4DOS)  ]
@SCRPUT[SCRPUT  (Internal 4DOS)  ]
@SELECT[SELECT  (Internal 4DOS)  ]
@SET[SET  (Internal 4DOS)  ]
@SETDOS[SETDOS  (Internal 4DOS)  ]
@SETLOCAL[SETLOCAL  (Internal 4DOS)  ]
@SETVER[SETVER  (External MS-DOS)  ]
@SHARE[SHARE  (External MS-DOS)  ]
@SHIFT[SHIFT  (Internal 4DOS)  ]
@SORT[SORT  (External MS-DOS)  ]
@SUBST[SUBST  (External MS-DOS)  ]
@SWAPPING[SWAPPING  (Internal 4DOS)  ]
@SYS[SYS  (External MS-DOS)  ]
@TEE[!TEE  (Internal 4DOS)  ]
@TEXT[TEXT  (Internal 4DOS)  ]
@THEN[THEN  (4DOS Keyword)  ]
@TIME[TIME (Internal 4DOS)  ]
@TIMER[TIMER  (Internal 4DOS)  ]
@TREE[TREE  (External MS-DOS)  ]
@TRUENAME[TRUENAME  (Internal 4DOS)  ]
@TYPE[TYPE  (Internal 4DOS)  ]
@UNALIAS[!UNALIAS  (Internal 4DOS)  ]
@UNDELETE[UNDELETE  (External MS-DOS)  ]
@UNFORMAT[UNFORMAT  (External MS-DOS)  ]
@UNSET[UNSET  (Internal 4DOS)  ]
@VER[!VER  (Internal 4DOS)  ]
@VERIFY[VERIFY  (Internal 4DOS)  ]
@VOL[VOL  (Internal 4DOS)  ]
@VSCRPUT[VSCRPUT  (Internal 4DOS)  ]
@XCOPY[!XCOPY  (External MS-DOS)  ]
@Y[!Y  (Internal 4DOS)  ]



