The Purpose of the SHELL Statement in MS-DOS 6.22
In MS-DOS 6.22, the SHELL statement in the
CONFIG.SYS configuration file specifies the name and
location of the command interpreter that the operating system uses upon
startup. While MS-DOS defaults to loading COMMAND.COM from
the root directory of the startup drive, configuring the
SHELL directive allows users to relocate the command
interpreter, replace it with an alternative shell, and pass critical
startup switches—most notably to expand the system environment space and
ensure the interpreter remains permanent in memory.
Overriding the Default Command Interpreter
By default, MS-DOS 6.22 searches for COMMAND.COM in the
root of the boot drive (typically C:\). If users preferred
to keep the root directory clean by organizing files into dedicated
directories, the SHELL statement made it possible to move
the interpreter:
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /P
Additionally, the command allowed advanced users to replace the
standard MS-DOS shell entirely with third-party command interpreters,
such as 4DOS, without altering the underlying DOS kernel files
(IO.SYS and MSDOS.SYS).
Syntax and Parameters
The typical implementation of the SHELL command in
MS-DOS 6.22 follows this structure:
SHELL=[drive:][path]filename [path] [/E:size] [/P] [/F]
[drive:][path]filename: Specifies the exact location and filename of the command processor executable that MS-DOS should run at boot time.[path]: Sets theCOMSPECenvironment variable. When large programs overwrite the transient portion ofCOMMAND.COMin upper conventional memory, DOS uses this path to reload the code once the program exits./E:size: Allocates the environment variable table size in bytes. The default environment size in MS-DOS was only 256 bytes, which frequently resulted in "Out of environment space" errors when complex batch scripts or multiple software packages set environment variables. Values could range from 160 to 32,768 bytes (e.g.,/E:1024allocated 1 KB)./P: Marks the command interpreter as permanent. This switch is critical when usingCOMMAND.COMas the top-level shell; it instructs MS-DOS to automatically executeAUTOEXEC.BATupon loading and disables theEXITcommand so users cannot accidentally exit the primary shell and crash the system./F: ForcesCOMMAND.COMto automatically select "Fail" whenever an "Abort, Retry, Fail?" error message occurs from a disk access issue.
Practical Impact on MS-DOS 6.22 Systems
Without the SHELL statement, MS-DOS 6.22 operated with
strict defaults that quickly proved inadequate for power users and
complex software configurations. By placing
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:512 /P in
CONFIG.SYS, administrators ensured that:
- The root directory remained free of secondary system utilities.
- Applications requiring multiple environment paths (such as compilers, network clients, or sound card variables) had sufficient memory allocated.
- The operating system reliably ran startup routines and remained protected against shell termination.