CPU88 (CONFIG.SYS directive)
| Company type | Configuration file |
|---|---|
| Industry | Computer software |
| Founded | 1983 |
| Products | System configuration for DOS and OS/2 |
CONFIG.SYS serves as the essential configuration file for DOS and OS/2 operating systems. This plain text file, written in ASCII, holds setup instructions accessible to users that are interpreted by the operating system's DOS BIOS—commonly found in IBMBIO.COM or IO.SYS—during the system's boot sequence. The CONFIG.SYS file was first introduced with DOS version 2.0.
Usage
The directives within CONFIG.SYS are responsible for setting up DOS to manage devices, software applications, and memory allocation. Once CONFIG.SYS has been processed, DOS initiates the command interpreter specified by the SHELL directive; if none is specified, it defaults to COMMAND.COM, which subsequently executes AUTOEXEC.BAT.
CONFIG.SYS primarily contains name=value instructions used to adjust system parameters or to load device drivers and terminate-and-stay-resident (TSR) programs. This file is located in the root directory of the bootable drive.
Certain DOS variants check for alternative configuration filenames that take precedence over CONFIG.SYS:
Advanced editions of Concurrent DOS 386, Concurrent DOS XM, Multiuser DOS, and REAL/32 utilize CCONFIG.SYS (denoting "Concurrent") instead of CONFIG.SYS, while some Multiuser DOS releases use CCONFIG.INI. REAL/32 also searches for MCONFIG.SYS. These platforms support extra configuration options stored in binary files such as CCONFIG.BIN, which are generally edited through CONFIG.EXE.
In DR DOS versions from 3.31 onward—including PalmDOS 1.0, Novell DOS 7, OpenDOS 7.01, and DR-DOS 7.02+—the DCONFIG.SYS file (originating from "DR DOS") takes priority over CONFIG.SYS. Initially designed for disk compression utilities to handle drive letter reassignment, it also enables multi-boot setups. OpenDOS 7.01 and DR-OpenDOS 7.02 additionally look for ODCONFIG.SYS, and some DR-DOS 7.02+ variants detect DRCONFIG.SYS.
Starting with DR DOS 6.0, the SYS /DR:ext command permits customization of system and configuration file extensions, allowing multiple configurations to coexist in a single root directory selectable via boot loaders like LOADER (used by Multiuser DOS and DR-DOS). The SHELL command supports specifying alternative AUTOEXEC.BAT files using /P[:filename.ext], and COMMAND.COM accepts extensions other than ".BAT" in this mode—a capability also available in 4DOS. The CHAIN=filespec directive allows continuation of processing within a different file that does not have to reside in the root directory; DR-DOS 7.02+ further extends this with an optional label parameter for jumping to designated sections.
Versions of DR-DOS 7.03 and later introduce a SYS /A option that copies CONFIG.SYS and AUTOEXEC.BAT alongside other system files.
FreeDOS employs FDCONFIG.SYS, while RxDOS version 7.24 and above use RXCONFIG.SYS, and PTS-DOS utilizes CONFIG.PTS.
In the case of Windows 95 and Windows 98, both CONFIG.SYS and AUTOEXEC.BAT reside in the root directory of the boot drive due to their DOS heritage but are frequently left empty. Conversely, Windows Me does not process CONFIG.SYS during startup; instead, it retrieves environment variables directly from the Windows Registry at HKLM\System\CurrentControlSet\Control\SessionManager\Environment.
For systems running FlexOS, CONFIG.SYS is a binary configuration file that specifies resource managers and device drivers loaded during initialization.
Example
A sample CONFIG.SYS file configured for MS-DOS 5 appears as follows: <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>
:;*?!
- (Applicable to DR DOS 5.0 and later)
- Utilized to define labels within CONFIG.SYS that serve as jump points for , , , , and commands.
- (Supported in DOS 6.0 and DR DOS 6.0 onwards)
- Functions similarly to , but additionally allows inline comments following other directives. (Note: Under MS-DOS/PC DOS, inline comments inside double quotes are not ignored.)
- (Exclusive to PTS-DOS)
- Used for inline comment initiation alongside the ; directive.
- (Available in DR DOS 3.41+, Embedded DOS, FreeDOS)
- Prompts a Yes/No confirmation before executing subsequent CONFIG.SYS commands. DOS 6.0+ provides comparable functionality by appending after directives (e.g., ). FreeDOS also offers optional conditional execution via boot menus.
- (FreeDOS exclusive)
- Forces unconditional execution of the next CONFIG.SYS directive.
ATemplate:NbndC
- (PTS-DOS specific)
- Determines if programs can be aborted upon encountering errors.
- (MS-DOS 7.0+ only, disregarded under DR-DOS 7.02+)
- Controls which drives record file access timestamps on FAT filesystems.
- (PTS-DOS only)
- Enables conditional execution on AT-compatible hardware.
- (PTS-DOS only)
- Functions as a boot manager.
- (OS/2 exclusive)
- Adjusts verbosity level of error messages.
- (DR-DOS 7.02+ only)
- Alters the default serial driver assigned to the AUX: device.
- (DOS versions 2.0-2.1, DR-DOS 7.02+)
- Restricts character device availability outside the phantom \DEV directory.
- (OS/2 only)
- Loads base device drivers into memory during startup.
- (DR-DOS 7.02+ only)
- Generates a beep sound even if notification sounds are disabled.
- (DRMK only)
- Specifies the subsequent operating system to boot.
- (DOS 2.0, DR DOS 3.31+, OS/2, PTS-DOS)
- Enables or disables extended Ctrl+C checking mechanisms.
- (DOS 2.0, DR DOS 3.31+, OS/2, PTS-DOS)
- Defines the quantity of disk buffers allocated by the system.
- (MS-DOS 7.0+, DR-DOS 7.02+, FreeDOS)
- Loads buffer memory into High Memory Area or Upper Memory Blocks.
- , , , (Embedded DOS 6-XL only)
- Manages cache block allocation and timing for flushing operations.
- (OS/2 version 4.0+ only)
- Executes programs specified in CONFIG.SYS, running them in the foreground and pausing further processing until completion.
- (DR-DOS 7.02+ only)
- Sets keyboard Caps Lock status during boot.
- , (PTS-DOS exclusive)
- Configures CD-ROM driver parameters and buffer quantities.
- (DR DOS versions 5.0+, Embedded DOS)
- Continues processing CONFIG.SYS instructions from a new file or label reference.
- , , , , , etc.
- Various system settings primarily designed for PTS-DOS, DR-DOS, and OS/2 platforms focusing on hardware configuration and display options.
- , ..., (DR-DOS 7.02+ only)
- Specifies serial COM port configurations including I/O addresses and timeout settings.
- , , , etc.
- Additional directives addressing buffer management, inline commentary, and internationalization support tailored to different DOS variants.
This segment presents essential CONFIG.SYS directives integral to configuring system parameters and managing devices across diverse DOS versions, emphasizing their conditional applicability vital for optimizing legacy computing environments within business contexts.
DTemplate:NbndF
- Sets relocation parameters for drive descriptor tables.
- Defines memory segment address used for multi-sector disk data reassembly.
- Activates built-in debugger functionality.
- Boot loader management.
- Loads device drivers into system memory.
- Loads device drivers into upper memory area (analogous to in DRDOS 5.0).
- Configures locale and codepage settings for keyboard, screen, and printer devices.
- Adjusts cache memory allocation sizes.
- Selects floppy disk compatibility mode.
- Determines display font selection.
- Manages loading of DOS into high memory and utilization of upper memory (similar to in DRDOS 5.0).
- Specifies loading of DOS internal tables (BUFFERS, FCBS, FILES, LASTDRIVE, STACKS) into upper memory.
- Alternative directory path for DOS system files.
- Defines search directories for data files.
- Sets parameters for physical disk drives.
- Configures parameters for unidentified drives.
- Refer to .
- Enables drive assignment for PDUMP.nnn error log files.
- Controls on-screen message display.
- Enables ANSI escape sequence message output.
- Activates enhanced validation during program startup.
- Assigns assumed error or return codes for following commands.
- Specifies A20 gate status upon program launch.
- Terminates CONFIG.SYS processing prematurely except for certain SWITCHES and SHELL commands.
- Configures hash table size to accelerate file open operations, differing from MS-DOS/PC DOS FASTOPEN driver behavior.
- Sets maximum number of cached File Control Blocks (FCBs) that can be open simultaneously (shares buffer with FILES under DR-DOS).
- Similar to FCBS but loads FCBs into upper memory area.
- Boot loader management.
- Defines maximum number of concurrently open files.
- Similar to FILES but loads file handles into upper memory space.
- Executes specified CONFIG.SYS subsections (see IGNORE).
GTemplate:NbndI
- Waits for a keypress or timeout, returning error level as ASCII code or 1024 if timed out.
- Resumes CONFIG.SYS processing at a defined label.
- Continues nested CONFIG.SYS execution at a specified label, with returning control to prior location.
- See , , or .
- See .
- See .
- See or .
- See or .
- Refer to .
- Installs terminate-and-stay-resident (TSR) programs after relocating DOS data segment. Compare: INSTCDEX.
- See , , or .
- See .
- See or .
- Enables command line and console history buffers with advanced search capabilities.
- Defines HMA (High Memory Area) segment address configuration.
- Sets CPU halt (HLT) power-saving mode parameters.
- Specifies virus scanning of system boot sector during startup.
- Loads installable filesystem drivers.
- Prevents execution of designated CONFIG.SYS subsections.
- Grants selected programs ring 2 privileges for direct hardware input/output access.
- Incorporates directives from another menu block via GOSUB/RETURN emulation in DR-DOS.
- Sets keyboard Insert mode state.
- Installs TSR program into conventional memory.
- Installs TSR program into upper memory area (equivalent to HIINSTALL in DR DOS 5.0).
- Installs TSR after relocation of DOS data segment. Compare: INSTCDEX.
- Adjusts PIC interrupt priority order to assign highest priority to specified IRQ line.
KTemplate:NbndM
- Designates the keyboard layout configuration.
- Indicates the relocated keyboard buffer's memory address.
- Defines the maximum number of accessible drives.
- Functions like LASTDRIVE but additionally loads the Current Directory Structure into upper memory.
- Determines the search paths for DLL files.
- Manages compatibility settings for legacy software.
- Specifies the quantity of file locks permitted.
- Controls whether the boot logo appears during MS-DOS startup.
- Sets parameters including count, sequence, I/O address, and timeout for the LPT1 port.
- Configures the LPT2 port with similar options.
- Applies comparable configuration to the LPT3 port.
- Activates and sets up the LPT4 port.
- Establishes delay duration before increasing process priority.
- Determines the approach for memory allocation.
- Specifies DOS's default method for allocating memory.
- Defines available menu selections.
- Sets menu color schemes (emulatable within DR-DOS).
- Assigns the default menu block (emulatable in DR-DOS).
- Creates a menu block definition (emulatable in DR-DOS).
- Enables operations involving multitrack disks.
- Continues processing CONFIG.SYS from another file, optionally after loading a device driver and setting the %NEWFILE% environment variable.
NTemplate:NbndQ
- Establishes the default No () character used in Yes/No/Resume prompts.
- Configures the keyboard Num Lock state as on or off.
- Permits conditional execution based on the last error code, e.g., .
- Shows a message and pauses for key input, similar to and commands in DR-DOS.
- Requires user confirmation to acknowledge errors within CONFIG.SYS.
- Sets buffer sizes for LPT ports.
- Enables conditional execution specifically on PC-compatible systems.
- Adjusts process scheduler priority levels.
- Modifies priority settings for disk I/O operations.
- Changes the default printer device driver among LPT1 through LPT4 ports.
- Restricts execution of DOS applications.
- Loads a user interface shell environment.
- Enables conditional execution on IBM PS/1-compatible hardware.
- Enables conditional execution on IBM PS/2-compatible hardware.
- Suppresses output sent to STDOUT.
RTemplate:NbndT
- Activates automatic system reboot upon encountering errors.
- Allows inclusion of comments within CONFIG.SYS files.
- Reserves a drive letter for local block device drivers.
- Specifies the default Resume () character in prompt dialogs.
- Returns control from nested CONFIG.SYS processing to a previous GOSUB or SWITCH point, optionally with a return code.
- Defines size of real mode memory available.
- Enables concurrent loading of programs during CONFIG.SYS processing, similar to INSTALL in DOS environments.
- Stores the first character of deleted files in a reserved FAT area.
- Specifies video mode settings under FreeDOS or screen access methods under PTS-DOS.
- Sets keyboard Scroll Lock status as enabled or disabled.
- Assigns environment variables during startup.
- Loads the command interpreter shell program.
- Similar to SHELL but supports an optional size parameter to pre-allocate COMMAND.COM into HMA or UMBs, reducing fragmentation with third-party shells.
- Configures keyboard modifier states such as Shift Lock, Num Lock, Scroll Lock, and Insert mode defaults.
- Determines whether files close upon Ctrl+Alt+Del key sequence.
- Skips Power-On Self Test (POST) during system reboot sequences.
- Defines quantity of hardware interrupt stacks used by the system.
- Sets default stack size for newly created threads.
- Functions like STACKS but loads buffers into upper memory blocks (UMBs).
- Configuration settings for boot manager behavior.
- Controls behavior of XMS A20 gate handling mechanisms.
- Defines submenu blocks (supported under DR-DOS emulation).
- Redirects error messages to a log file on disk instead of displaying popups.
- Specifies path location for swap files used by system memory management.
- Conditionally continues nested CONFIG.SYS processing based on user key input with support for RETURN commands.
- Sets default switch character used in command parsing ('/' or '-').
- Defines special command line options or flags for system behavior adjustments.
- Enables workaround for known FPU rounding errors in certain processors.
- Specifies an alternative filename for DOS boot files other than default names.
- Configures memory placement locations for DOS components during startup.
- Loads system components from an alternative disk area if specified.
- Defines size of dynamic memory pool allocated for system use at runtime.
- Loads DOS data and code segments into upper memory blocks when enabled by configuration options.
- Limits number of concurrent threads allowed by system scheduling policies.
- Sets timeout durations for single-step processing in CONFIG.SYS and default responses to prompt dialogs. PTS-DOS only supports timeout values without additional prompt features.
- Configures minimum and maximum time slices allocated by scheduler to running processes or threads.
- Defines temporary file extension used internally by operating system components during file operations and caching.
- Enables or disables single-step execution mode globally or locally within CONFIG.SYS and AUTOEXEC.BAT scripts. OS/2 implementations differ significantly from DOS variants regarding this feature.
- Sets size of TRACE log buffer used for diagnostic tracing activities during system operation and debugging sessions.
- Records detailed error information into logs to assist with troubleshooting and diagnostics.
UTemplate:NbndZ
- Sets DOS management to allocate a designated segment as UMB memory.
- Defines the UMB server in use.
- Determines address ranges allocated as UMB RAM.
- Turns disk write verification on or off.
- Indicates the DOS version presented to applications.
- Configures the status of VGA display.
- Specifies the active video mode.
- Indicates whether virtual DMA usage is permitted.
- Determines if the processor's Virtual Mode Extensions (VME) are disabled.
- Sets up the VxD driver for Windows environments.
- Manages system compatibility with Windows.
- Controls relocation of the Extended BIOS data area (XBDA).
- Executes conditionally on XT-compatible hardware.
- Enables built-in Year 2000 compliance features.
- Defines the default affirmative character in prompts.
- Manages tracking of file deletions.
Issues
Although the system can start without CONFIG.SYS or AUTOEXEC.BAT, these files are crucial for extensive customization and meeting software prerequisites. Troubleshooting is necessary if these files become damaged or corrupted.
In the absence of a SHELL directive within CONFIG.SYS—or if the file is missing or corrupted—DOS attempts to locate COMMAND.COM at the root of the boot drive. Versions prior to DOS 6.0 will fail to boot if COMMAND.COM is not found. Starting with MS-DOS 6.0, PC DOS 6.1, Novell DOS 7, and subsequent releases, a prompt requests the path to a command processor if COMMAND.COM is absent or if the primary shell terminates unexpectedly. This feature permits limited shell substitution during runtime without requiring a reboot.
COMMAND.COM from MS-DOS 7.0 and later is incompatible with DR-DOS but often remains in the root directory of drive C: within dual-boot environments. DR-DOS versions 7.02 and newer prevent bypassing SHELL directives during "skip", "trace", or "step" modes to avoid conflicts. Certain versions have enhanced recovery by reinitiating skip behavior and prompting for a valid shell when encountering invalid SHELL parameters before launching COMMAND.COM.
CONFIG.SYS size restrictions differ: MS-DOS and PC DOS traditionally limit this file to a few kilobytes—recently up to 64 KB—while DR-DOS imposes no practical size limitation beyond file system constraints. MS-DOS compiles CONFIG.SYS into an in-memory tokenized format, processing directives sequentially with drivers loaded before TSRs. Conversely, DR-DOS parses CONFIG.SYS line-by-line, offering precise load order control via DEVICE and INSTALL commands, resolving conflicts and enabling conditional execution based on hardware detection, user input, error conditions, or software return codes.
This approach allows DR-DOS to integrate non-resident software directly within CONFIG.SYS processing sequences.
From MS-DOS/PC DOS versions 2.0 through 4.01, the SHELL directive was limited to 31 characters in length; later editions extended this limit to 128 characters, whereas DR-DOS supports up to 255 characters. Notably, CONFIG.SYS directives do not accommodate long filenames.
Dual booting DOS and Windows 9x
When Windows 95 is installed over an existing DOS/Windows configuration, it renames CONFIG.SYS and AUTOEXEC.BAT to CONFIG.DOS and AUTOEXEC.DOS, enabling dual boot functionality between Windows 9x and DOS. During DOS startup, these renamed files temporarily revert to CONFIG.SYS and AUTOEXEC.BAT. Earlier Windows 95 versions are also preserved as CONFIG.W40 and AUTOEXEC.W40.
In setups where Caldera DR-DOS 7.02 or 7.03 coexists with Windows 95, Windows' original CONFIG.SYS and AUTOEXEC.BAT remain unaltered. Instead, DR-DOS utilizes DCONFIG.SYS and AUTODOS7.BAT for its boot configuration.
OS/2 / Windows NT
OS/2 heavily depends on CONFIG.SYS for setting up drivers and the environment prior to launching its graphical user interface.
Within the Windows NT OS/2 subsystem, CONFIG.SYS configurations are maintained in the system registry instead of conventional configuration files.
Numerous CONFIG.SYS commands in OS/2 lack comprehensive documentation or are insufficiently explained.
CONFIG.SYS continues to be utilized by 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
- Details on FreeDOS CONFIG.SYS directives
- PTS-DOS 2000 Pro User Manual containing CONFIG.SYS directives (archived)
- German-language unofficial PTS-DOS FAQ (PTS/FAQD) including CONFIG.SYS commands