* The Command Interpreter
The command interpreter, COMMAND.COM, is the part you interact with on the
command line. It consists of these parts:
Resident Portion:
The resident portion resides in memory immediately following IBMDOS.COM and its
data area. This portion contains routines to process Int\22 (Terminate Addr),
Int\23 (Ctrl-Break Handler), and Int\24h (Critical Error Handler), as well
as a routine to reload the transient portion if needed. For DOS 3.x, this
portion also contains a routine to load and execute external commands, such as
files with exensions of COM or EXE.
When a program terminates, a checksum is used to determine if the application
program overlaid the transient portion of COMMAND.COM. If so, the resident
portion will reload the transient portion from the area designated by COMSPEC=
in the DOS environment. If COMMAND.COM cannot be found, the system will halt.
NOTE: DOS 3.3+ checks for the presence of a hard disk, and will default to
COMSPEC=C:\\. Previous versions default to COMSPEC=A:\\. Under some DOS
versions, if COMMAND.COM is not immediately availible for reloading
(i.e., swapping to a floppy with COMMAND.COM on it) DOS may crash.
All standard DOS error handling is done within the resident portion of
COMMAND.COM. This includes displaying error messages and interpreting the
replies to the "Abort, Retry, Ignore, Fail?" message.
IBM's original documentation spoke of installing alternate command
interpreters (programs other than COMMAND.COM) with the SHELL= statement in
CONFIG.SYS. Unfortunately, IBM chose not to document much of the interaction
between IBMDOS.COM and IBMBIO.COM. By the time much of the interaction was
widely understood, too many commercial software programs had been written to
use peculiarities of COMMAND.COM itself. There is only one commercial
replacement for COMMAND.COM (a program called Command Plus) and it is not
widely known or used.
"Shell" programs exist which use DOS only for disk management while they more
or less comprise a new operating system. These include:
DesQview Windows OmniView
GEM TopView TaskView