VIRTDMA (CONFIG.SYS directive)
| Company type | Configuration file |
|---|---|
| Industry | Computer software |
| Founded | 1983 |
| Headquarters | N/A |
| Products | System configuration for DOS and OS/2 |
CONFIG.SYS serves as the central configuration file for DOS and OS/2 operating systems. This plain text file, written in ASCII, holds setup commands interpreted by the system's DOS BIOS—commonly found in IBMBIO.COM or IO.SYS—during the startup process. The CONFIG.SYS file was first introduced with DOS version 2.0.
Usage
The directives within CONFIG.SYS are responsible for configuring DOS concerning hardware devices, software applications, and memory allocation. Once CONFIG.SYS has been processed, DOS launches the command interpreter indicated by the SHELL directive; if none is specified, it defaults to COMMAND.COM, which then executes commands from AUTOEXEC.BAT.
This file primarily consists of name=value pairs that define system parameters or load components such as device drivers and TSRs (terminate-and-stay-resident programs).
CONFIG.SYS is located in the root directory of the boot partition and is also utilized by (DCP), an MS-DOS variant developed by East-German company VEB Robotron.
Certain DOS variants prioritize alternative configuration filenames over CONFIG.SYS:
Concurrent DOS 386, Concurrent DOS XM, Multiuser DOS, System Manager, and REAL/32 replace CONFIG.SYS with CCONFIG.SYS or CCONFIG.INI (in Multiuser DOS). Additionally, REAL/32 searches for MCONFIG.SYS. These platforms support extra configuration data stored in binary files like CCONFIG.BIN, typically edited through CONFIG.EXE.
In DR DOS versions 3.31 and later—including PalmDOS 1.0, Novell DOS 7, OpenDOS 7.01, and DR-DOS 7.02+—the file DCONFIG.SYS takes precedence over CONFIG.SYS. This feature facilitates disk compression utilities and multi-boot environments by enabling multiple configuration sets. OpenDOS 7.01 and DR-OpenDOS 7.02 also check for ODCONFIG.SYS, while some DR-DOS editions look for DRCONFIG.SYS.
Starting with DR DOS 6.0, the command SYS /DR:ext modifies default system file extensions to allow several parallel system files within a single root directory, selectable via boot managers such as LOADER included with Multiuser DOS and DR-DOS 7.x releases. The SHELL command supports alternative AUTOEXEC.BAT files using /P[:filename.ext], and COMMAND.COM recognizes extensions other than ".BAT" in this mode—functionality also available in 4DOS.
From DR-DOS 6.0 onward, the CHAIN=filespec directive enables continuation of CONFIG.SYS processing with a different file located outside the root directory; beginning with DR-DOS 7.02, it can specify a label inside that file (CHAIN=filespec,label). Version 7.03+ adds a SYS /A option to copy both CONFIG.SYS and AUTOEXEC.BAT alongside system files.
Other operating systems use similar alternate configuration files: FreeDOS employs FDCONFIG.SYS, RxDOS uses RXCONFIG.SYS, and PTS-DOS relies on CONFIG.PTS.
In Windows 95 and Windows 98—which are based on DOS—both CONFIG.SYS and AUTOEXEC.BAT exist but are commonly left empty. Windows Me does not process CONFIG.SYS during startup; instead, it loads environment variables directly from the registry at HKLM\System\CurrentControlSet\Control\SessionManager\Environment.
Within the FlexOS environment, CONFIG.SYS is a binary file that specifies resource managers and device drivers to be loaded during boot.
Example
Below is a sample CONFIG.SYS configuration for MS-DOS 5: <syntaxhighlight lang="ini" line="1"> DOS=HIGH,UMB DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE RAM DEVICEHIGH=C:\DOS\ANSI.SYS FILES=30 SHELL=C:\DOS\COMMAND.COM C:\DOS /E:512 /P </syntaxhighlight>
:;*?!
- Establishes labels in CONFIG.SYS serving as jump destinations for , , , and commands.
- Functions similarly to , also used for in-line comments following other CONFIG.SYS commands. (In MS-DOS/PC DOS, inline comments enclosed in double quotes are processed literally.)
- Introduces in-line comments as a complement to the ; directive.
- Prompts a Yes/No confirmation before executing subsequent CONFIG.SYS directives. (FreeDOS does not support custom messages but allows conditional execution via boot menus.) DOS 6.0 and later provide a comparable feature by appending after directives, e.g., .
- Executes the next CONFIG.SYS command without conditions.
ATemplate:NbndC
- Determines whether programs can be terminated upon encountering errors.
- Sets which drives record file access timestamps on FAT file systems.
- Enables conditional execution specifically on AT-compatible hardware.
- Boot management utility.
- Controls the verbosity level of error messages.
- Alters the default serial port driver assignment (COM1: through COM4:) for the AUX device.
- Prevents access to character devices outside the virtual \DEV directory.
- Loads a core device driver into memory.
- Forces an audible beep even if notifications are suppressed via SWITCHES=/Q.
- Defines which operating system to load next during boot.
- Enables or disables enhanced Ctrl+C interruption checking.
- Specifies how many disk buffers to allocate.
- Similar to BUFFERS but allocates buffers in HMA or UMB memory areas.
- , ,
- Manage cache block allocation and timing parameters.
- Loads programs within CONFIG.SYS, executing them in the foreground and pausing processing until they return.
- Sets Caps Lock key status to either on or off.
- ,
- Configures CD-ROM driver name and buffer allocation count.
- Continues processing CONFIG.SYS from a new file or label reference.
- , , , etc., define hardware or display options relevant to boot sequence and system configuration.
Communication Ports
- , ;COM2, ;COM3, ;COM4 (available from DR-DOS 7.02 onwards) specify count, logical ordering, I/O addresses, and timeout durations for serial communication devices.
Comments and Internationalization
- , ;COMMENTS (introduced in DOS 4.0+) allow redefining characters that initiate inline comments or cause lines to be ignored entirely.
- (supported since DOS 3.0+, DR DOS 3.31+, OS/2) activates and configures international language support features.
CPU-Specific Directives
CPU-related commands such as CPU88, CPU286, CPU386 enable conditional execution based on processor type or generation (applicable in PTS-DOS, DR-DOS).
DTemplate:NbndF
- Adjusts relocation of drive descriptor tables in memory.
- Defines memory segment address used for multi-sector disk data deblocking operations.
- Activates internal debugger functionality.
- Boot manager tool.
- Loads device drivers into conventional memory space.
- Loads device drivers into upper memory blocks (equivalent to in DRDOS 5.0).
- Configures country codes and code pages for keyboard, screen, and printer devices.
- Sets cache memory sizes for improved performance.
- Selects floppy disk compatibility mode settings.
- Specifies font used for display output.
- Controls loading of DOS into high or upper memory areas (similar to in DRDOS 5.0).
- Loads DOS internal tables (BUFFERS, FCBS, FILES, LASTDRIVE, STACKS) into upper memory regions.
- Specifies an alternate directory path for DOS system files.
- Defines search paths for data files utilized by the system.
- Describes physical parameters of disk drives connected to the system.
- Provides parameters for drives not natively recognized by the system.
- Refer to .
- Enables error logging with PDUMP.nnn files and specifies target drive for these logs.
- Displays a text message on the screen during processing.
- Shows messages including ANSI escape codes for formatting purposes.
- Determines if additional validation checks occur when launching programs.
- Defines an error or return code that will be assumed afterward.
- Sets the state of the A20 address line when starting a program.
- Terminates CONFIG.SYS processing prematurely except under certain conditions where SWITCHES and SHELL directives remain active.
- Configures hash table size used for accelerated file opening operations, differing from MS-DOS/PC DOS FASTOPEN driver behavior.
- Specifies maximum number of cached File Control Blocks (FCBs) allowed simultaneously (shares buffer space with FILES under DR-DOS).
- Same as FCBS but explicitly loads FCBs into upper memory blocks.
- Boot management utility command.
- Sets maximum number of files that can be opened concurrently by the system.
- Same as FILES but loads file handles explicitly into upper memory areas.
- Includes execution of specific CONFIG.SYS subsections (see IGNORE directive).
GTemplate:NbndI
- Waits for a key press or timeout, setting the error level to the ASCII code or 1024 if timed out.
- Resumes processing of CONFIG.SYS at the designated label.
- Continues nested CONFIG.SYS processing at a specific label, returning to the prior location afterward.
- Refer to , , or for additional details.
- Consult for further information.
- See for more context.
- Refer to or as applicable.
- See or for related commands.
- Consult for guidance.
- Loads a terminate-and-stay-resident (TSR) program into memory following DOS data segment relocation. Compare with INSTCDEX.
- Refer to , , or for related usage.
- See for more information.
- Consult or as necessary.
- Activates command line and console history buffers along with enhanced search capabilities.
- Defines the address of the High Memory Area (HMA) segment.
- Configures energy-saving behavior related to the HLT instruction.
- Specifies whether to perform a boot sector virus scan.
- Loads installable file system drivers.
- Omits execution of particular subsections within CONFIG.SYS.
- Permits designated programs to operate at ring 2, granting direct hardware I/O access.
- Incorporates directives from another menu block, simulated through GOSUB/RETURN in DR-DOS environments.
- Toggles keyboard Insert mode on or off.
- Installs a TSR program into memory space.
- Loads a TSR program into upper memory, equivalent to HIINSTALL in DR DOS version 5.0.
- Installs a TSR after DOS data segment relocation, similarly to INSTALL.
- Adjusts PIC interrupt priorities by rotating them to prioritize a specified IRQ number.
KTemplate:NbndM
- Defines the keyboard layout configuration.
- Sets the relocated keyboard buffer's memory address.
- Determines the maximum number of accessible drives.
- Functions like LASTDRIVE but also loads the Current Directory Structure into upper memory areas.
- Specifies search paths for dynamic-link libraries (DLLs).
- Manages execution parameters for legacy applications.
- Configures the quantity of file locks permitted.
- Controls boot logo and startup message settings when using the PTS-DOS boot manager.
- Establishes count, order, I/O port address, and timeout values for the LPT1 device.
- Applies identical settings as LPT1 for the LPT2 device.
- Mirrors LPT1 configuration for LPT3 device as well.
- Enables and configures LPT4 device similarly to prior parallel ports.
- Sets delay before elevating process priority levels.
- Adjusts memory allocation policies and strategies.
- Specifies default methods for DOS memory allocation handling.
- Defines available menu options within CONFIG.SYS menus.
- Sets color schemes for menus, with emulation support under DR-DOS systems.
- Designates default menu blocks, also emulatable under DR-DOS environments.
- Creates individual menu blocks (emulatable in DR-DOS).
- Enables multitrack disk operation support.
- Continues processing CONFIG.SYS from another file after loading a device driver and setting the %NEWFILE% environment variable.
NTemplate:NbndQ
- Sets the default No () response character in Yes/No/Resume prompts.
- Controls keyboard [[Num Lock|Template:Keypress]] status by enabling or disabling it at startup.
- Enables conditional execution based on previous error codes, e.g., .
- Displays a message and waits for a key press, similar to DR-DOS commands like and .
- Requires user confirmation upon encountering errors in CONFIG.SYS processing.
- Configures buffer sizes allocated for LPT port communications.
- Enables conditional execution on PC-compatible systems only.
- Sets priority levels within the task scheduler framework.
- Adjusts disk input/output priority settings accordingly.
- Changes default printer device driver assignments (for example, switching from LPT1 to LPT3 or LPT4).
- Regulates whether DOS applications are permitted to execute at all.
- Loads a user interface shell environment during startup.
- Allows conditional execution when running on IBM PS/1-compatible hardware platforms.
- Enables conditional execution targeting IBM PS/2-compatible systems specifically.
- Suppresses display output sent to STDOUT.
RTemplate:NbndT
- Activates automatic reboot upon encountering errors.
- Permits inclusion of comments within CONFIG.SYS.
- Reserves a drive letter to prevent allocation by local block devices.
- Sets the default response character for Yes/No/Resume prompts.
- Returns nested CONFIG.SYS processing control to the previous GOSUB or SWITCH point, optionally providing a return code.
- Specifies the size of real mode memory.
- Enables simultaneous loading of programs in CONFIG.SYS (background execution).
- Directs that the first character of deleted files be stored in the FAT reserved area.
- Defines video mode under FreeDOS or selects screen access methods for PTS-DOS.
- Controls the keyboard Scroll Lock state, turning it on or off.
- Establishes environment variables.
- Loads the command interpreter shell.
- Functions like SHELL but allows specifying pre-allocated memory size for COMMAND.COM to load into HMA or UMBs, improving memory management with third-party shells.
- Sets keyboard modifier states such as Shift Lock, Num Lock, Scroll Lock, and Insert mode.
- Determines whether files close upon pressing Ctrl+Alt+Del.
- Skips the Power-On Self Test (POST) during reboot.
- , STACKSIZE, STACKSHIGH
- Configure hardware interrupt stack sizes and buffer locations, varying by DOS version.
- , SYSBOOT, SYSGEN, SYSLOAD, SYSTOUMB
- PTS-DOS parameters for managing boot options, system memory layout, and loading DOS into upper memory blocks (UMBs).
- , SWITCH, SWITCHES
- Control nested CONFIG.SYS processing with conditional branching and special options depending on DOS variant.
- , SWAPPATH, THREADS, TIMESLICE
- OS/2-specific configurations for error logging paths, swap file locations, thread concurrency, and scheduler time slices.
- , TRACE, TRACEBUF
- Handle execution timeouts and logging of CONFIG.SYS under DR-DOS, PTS-DOS, and OS/2 environments.
- , STUBA20
- PTS-DOS settings for temporary file extensions and A20 line gate control.
- , TRAPDUMP
- OS/2 patches addressing FPU bugs and enabling detailed error logging.
This section summarizes configuration commands across multiple DOS variants focusing on system behavior management critical for IT infrastructure administration and legacy system optimization.
UTemplate:NbndZ
- Assigns a specific segment as an Upper Memory Block (UMB) in DOS.
- Defines the UMB server component.
- Specifies address ranges designated as UMB RAM.
- Toggles disk write verification on or off.
- Sets the DOS version string reported to applications.
- Configures VGA display status indicators.
- Defines current video mode similarly to FreeDOS's SCREEN command.
- Enables use of virtual DMA channels.
- Controls processor Virtual Mode Extensions (VME).
- Configures VxD drivers for Windows environments.
- Manages Windows system support settings.
- Handles relocation of the Extended BIOS Data Area (EBDA).
- Executes conditionally on XT-compatible machines.
- Enables built-in Year 2000 compliance features.
- Sets default affirmative response character in prompts.
- Configures tracking of file deletions.
Issues
Although booting without CONFIG.SYS or AUTOEXEC.BAT is possible, these files are vital for tailoring DOS operation and loading necessary software components. Any damage or corruption in these files requires diagnostic intervention.
If CONFIG.SYS omits the SHELL directive or is missing/corrupted entirely, DOS attempts to locate COMMAND.COM in the root directory of the boot drive. Versions prior to DOS 6.0 fail to boot if COMMAND.COM is absent. Conversely, MS-DOS 6.0/PC DOS 6.1, Novell DOS 7, and subsequent releases prompt users to input an alternative command interpreter path. This prompt also appears if the primary shell terminates unexpectedly or exits intentionally, facilitating runtime shell replacement without rebooting.
Due to incompatibilities between MS-DOS 7.0+ COMMAND.COM and DR-DOS systems, DR-DOS versions 7.02 and later enforce SHELL directives during skip, trace, or step modes to prevent bypasses that were possible in earlier editions. Recovery measures include reactivating skip functionality or requesting a valid shell path prior to loading COMMAND.COM.
CONFIG.SYS file size restrictions differ by operating system: MS-DOS/PC DOS limits files to a few kilobytes (up to approximately 64 KB), whereas DR-DOS imposes no specific size limit beyond filesystem constraints. MS-DOS compiles CONFIG.SYS into a tokenized in-memory format that processes drivers before TSRs in sequence. In contrast, DR-DOS interprets directives sequentially at runtime, allowing fine-tuned control over load order and conditional execution based on hardware detection or user input.
This line-by-line interpretation enables advanced capabilities such as running non-resident software via INSTALL, integrating temporary utilities directly into CONFIG.SYS processing—useful for debugging and resolving software conflicts during startup.
MS-DOS/PC DOS releases from version 2.0 through 4.01 restrict SHELL command lines to a maximum of 31 characters. Later versions extend this limit up to 128 characters. DR-DOS supports even longer lines of up to 255 characters. None of the CONFIG.SYS directives accommodate long filenames.
Dual Booting DOS with Windows 9x
During the installation of Windows 95 over a pre-existing DOS/Windows configuration, the files CONFIG.SYS and AUTOEXEC.BAT are renamed to CONFIG.DOS and AUTOEXEC.DOS respectively to enable dual boot functionality. When booting into DOS, these files are temporarily restored to their original names. Meanwhile, the versions used by Windows 95 are backed up as CONFIG.W40 and AUTOEXEC.W40.
In scenarios where Caldera DR-DOS 7.02 or 7.03 is installed alongside Windows 95, the Windows copies of CONFIG.SYS and AUTOEXEC.BAT remain unaltered. Instead, DR-DOS utilizes its own startup files named DCONFIG.SYS and AUTODOS7.BAT.
OS/2 and Windows NT
OS/2 depends extensively on CONFIG.SYS to set up drivers and environment variables prior to launching its graphical user interface.
Within the OS/2 subsystem on Windows NT, the CONFIG.SYS configurations are presented to OS/2 applications; however, these settings are actually maintained within the system registry.
Numerous CONFIG.SYS commands employed by OS/2 have not been officially documented.
The use of CONFIG.SYS continues in OS/2-based systems such as eComStation and ArcaOS.
See also
- IBMBIO.COM / IO.SYS
- IBMDOS.COM / MSDOS.SYS
- CONFIG (environment variable)
- AUTOEXEC.BAT
- COMMAND.COM
- List of DOS commands
External links
- Information on AUTOEXEC.BAT and CONFIG.SYS at Computer Hope
- Overview of Windows 98 / MS-DOS 7.10 CONFIG.SYS directives (archived)
- Caldera's CONFIG.SYS Command Reference (archived) – summary of DR-DOS 7 directives
- FreeDOS CONFIG.SYS directives description (archived)
- PTS-DOS 2000 Pro User Manual featuring CONFIG.SYS directives (archived)
- Unofficial German-language PTS-DOS FAQ (archived) – additional CONFIG.SYS directives