IOPL (CONFIG.SYS directive)
| Company type | Configuration file |
|---|---|
| Industry | Operating systems |
| Founded | 1983 |
| Products | System configuration for DOS and OS/2 |
CONFIG.SYS serves as the main configuration file for the DOS and OS/2 operating system families. This ASCII text file includes setup commands that the operating system's DOS BIOS—usually found in IBMBIO.COM or IO.SYS—interprets during the boot sequence. CONFIG.SYS was first introduced with DOS version 2.0.
Usage
The directives within CONFIG.SYS are used to configure DOS for hardware devices, software applications, and memory management utilities. Once CONFIG.SYS has been processed, DOS launches the command interpreter specified by the SHELL directive; if none is specified, it defaults to COMMAND.COM, which then executes AUTOEXEC.BAT.
Typically, this file contains name=value pairs that set adjustable parameters or load essential files like device drivers and terminate-and-stay-resident programs (TSRs). CONFIG.SYS is located in the root directory of the system’s boot disk.
Certain DOS variants prioritize alternative configuration filenames over CONFIG.SYS:
Advanced iterations of Concurrent DOS 386, Concurrent DOS XM, Multiuser DOS, System Manager, and REAL/32 utilize CCONFIG.SYS or CCONFIG.INI (specifically in Multiuser DOS) instead of CONFIG.SYS. REAL/32 may also search for MCONFIG.SYS. These platforms support expanded configuration options stored in binary files such as CCONFIG.BIN, which are generally managed through CONFIG.EXE.
Starting with DR DOS 3.31 and continuing through versions like PalmDOS, Novell DOS, and DR-DOS 7.x, the filename DCONFIG.SYS takes precedence over CONFIG.SYS. This feature facilitates multi-boot environments and manages disk compression drivers that alter drive letter assignments upon loading. Additionally, OpenDOS 7.01 and DR-OpenDOS 7.02 recognize ODCONFIG.SYS, while some DR-DOS 7.02 and later releases also support DRCONFIG.SYS.
Since DR-DOS 6.0, the SYS /DR:ext command enables renaming core system files, allowing multiple boot configurations to coexist within a single root directory. These configurations can be selected via boot loaders like LOADER, which is included with Multiuser DOS and DR-DOS 7.x. The SHELL command supports specifying alternative AUTOEXEC.BAT files using /P[:filename.ext], and COMMAND.COM accepts various extensions under this mode—a capability also supported by 4DOS. The CHAIN=filespec directive permits continuation of configuration processing from another file located anywhere on disk; versions of DR-DOS 7.02 and later even allow jumping to specific labels within these chained files.
With DR-DOS 7.03 and newer, a SYS /A option was introduced to copy the corresponding CONFIG.SYS and AUTOEXEC.BAT alongside system files during setup.
Other operating systems use different default configuration filenames: FreeDOS employs FDCONFIG.SYS, RxDOS version 7.24 and above uses RXCONFIG.SYS, and PTS-DOS utilizes CONFIG.PTS.
In Windows 95 and Windows 98—both based on DOS—CONFIG.SYS and AUTOEXEC.BAT remain present in the root directory but are generally left empty. Windows Me no longer processes CONFIG.SYS during startup; instead, it loads environment variables directly from the Windows Registry at:
- HKLM\System\CurrentControlSet\Control\SessionManager\Environment
For the FlexOS operating system, CONFIG.SYS is a binary file that specifies resource managers and device drivers to be loaded at boot time.
Example
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>
:;*?!
- Marks labels within CONFIG.SYS to serve as jump destinations for commands like , , , , and .
- Functions similarly to , but also permits inline comments following other directives. (On MS-DOS/PC DOS, inline comments enclosed in double quotes are not disregarded.)
- Used to introduce inline comments alongside the ; directive.
- Prompts a Yes/No confirmation before executing subsequent CONFIG.SYS commands. (FreeDOS does not support custom messages but allows conditional processing with boot menus.) DOS 6.0 and later versions offer comparable functionality by appending after directives.
- Executes the following CONFIG.SYS command without conditions.
ATemplate:NbndC
- Determines whether programs can be terminated upon encountering errors.
- Sets drives to record file access timestamps within FAT file systems.
- Enables conditional execution on AT-compatible hardware.
- Acts as a boot manager.
- Adjusts the verbosity level of error notifications.
- Alters the default serial driver assigned to the AUX: device.
- Prevents character devices from operating outside the virtual \DEV directory.
- Loads a fundamental device driver into memory.
- Produces an audible beep even if sound alerts are disabled.
- Defines the operating system to boot next.
- Enables or disables extended Ctrl+C interrupt checking.
- Specifies the quantity of disk buffers allocated.
- Similar to BUFFERS but loads buffers into High Memory Area or Upper Memory Blocks.
- , , (Embedded DOS 6-XL exclusive)
- Manages cache block allocation and flushing intervals.
- Executes programs within CONFIG.SYS, running in the foreground and pausing further processing until completion.
- Sets the Caps Lock state of the keyboard.
- , (PTS-DOS exclusive)
- Configures CD-ROM hardware drivers and buffer parameters.
- Continues processing CONFIG.SYS from a different file or label.
- , , and other display-related commands (PTS-DOS, DR-DOS) control system clock types and screen clearing functions.
- , , and related directives provide internationalization capabilities on OS/2, DOS, and DR-DOS platforms.
- , ..., (DR-DOS 7.02+)
- Define quantity, sequencing, I/O addresses, and timeout settings for COM ports.
This brief summary outlines essential CONFIG.SYS commands pertinent to system configuration across various DOS versions, focusing on those affecting device handling, boot procedures, memory management, and language support critical for enterprise applications.
DTemplate:NbndF
- Adjusts relocation settings for drive descriptor tables.
- Specifies memory segment addresses used for multi-sector disk data deblocking.
- Activates internal debugger features.
- Functions as a boot manager.
- Loads device drivers into memory.
- Loads device drivers into upper memory areas (equivalent to in DRDOS 5.0).
- Configures country codes and codepage information for keyboard, screen, and printer devices.
- Sets cache memory sizes.
- Defines floppy disk compatibility modes.
- Specifies display font selection.
- Controls whether DOS loads into high memory area and/or uses upper memory blocks.
- Loads DOS internal tables (such as BUFFERS, FCBS, FILES, LASTDRIVE, STACKS) into upper memory segments.
- Defines alternative search paths for DOS files.
- Designates search paths for data files.
- Sets physical parameters for disk drives.
- Establishes parameters for unrecognized drives.
- See .
- Enables error logging with PDUMP.nnn files on specified drives.
- Outputs messages to the screen.
- Displays messages including ANSI escape sequences.
- Determines if additional validations occur when launching programs.
- Defines expected error or return codes in subsequent commands.
- Sets A20 line gate status when starting programs.
- Allows early termination of CONFIG.SYS processing (except for SWITCHES and SHELL under certain conditions).
- Configures hash table size to optimize file open operations differently than MS-DOS/PC DOS FASTOPEN driver.
- Sets maximum number of cached File Control Blocks open simultaneously (shares buffer with FILES in DR-DOS).
- Similar to FCBS but loads these into upper memory areas.
- Functions as a boot manager.
- Specifies maximum number of simultaneously open files.
- Equivalent to FILES but loads file handles into upper memory regions.
- Includes execution of specified CONFIG.SYS subsections (refer to IGNORE).
GTemplate:NbndI
- Awaits keyboard input or timeout, setting the error level to the ASCII value or 1024 if timed out.
- Resumes processing of CONFIG.SYS at a designated label.
- Resumes nested CONFIG.SYS processing at a specified label, then returns to the previous point.
- Refer to , , or for additional details.
- Consult for further information.
- See for more context.
- Refer to or as needed.
- Consult or for related information.
- See for further guidance.
- Loads a terminate-and-stay-resident (TSR) program after DOS relocates its data segment; compare with INSTCDEX.
- Refer to , , or for additional context.
- See for more details.
- Consult or for related instructions.
- Activates command line and console history buffers, including enhanced search features.
- Defines the address of the High Memory Area (HMA) segment.
- Configures the CPU's halt (HLT) power-saving mode.
- Enables scanning of the boot sector for viruses.
- Loads file systems that can be installed dynamically.
- Prevents execution of certain subsections within CONFIG.SYS.
- Permits specified applications to execute at ring 2, allowing direct hardware I/O access.
- Incorporates directives from another menu block, emulated via GOSUB/RETURN in DR-DOS environments.
- Sets the state of the keyboard Insert mode.
- Installs TSR programs into conventional memory.
- Loads TSR programs into upper memory blocks (similar to HIINSTALL in DR-DOS 5.0).
- Installs TSR programs following DOS data segment relocation; see also INSTCDEX for comparison.
- Adjusts PIC interrupt priorities so that a designated IRQ number receives the highest priority.
KTemplate:NbndM
- Defines the keyboard layout configuration.
- Sets the relocated keyboard buffer’s memory address.
- Specifies the maximum number of drives accessible to DOS.
- Functions like LASTDRIVE but loads Current Directory Structure (CDS) into upper memory instead.
- Lists directory paths for locating dynamic link libraries (DLLs).
- Handles compatibility settings for legacy software applications.
- Determines the number of file locks permitted simultaneously.
- Configures support for boot logos and startup messages when using PTS-DOS boot manager.
- Specifies parameters such as count, sequence, I/O address, and timeout duration for LPT1 device configuration.
- Provides similar configuration options tailored to LPT2 device settings.
- Offers equivalent setup controls for LPT3 device management.
- Enables and sets parameters for the LPT4 parallel port device.
- Defines delay time before elevating waiting process priority in scheduling.
- Establishes memory allocation methods used by DOS.
- Sets default strategy for DOS memory management allocation.
- Specifies available menu options within CONFIG.SYS menus.
- Determines color scheme settings for menus, with emulation possible under DR-DOS using .
- Selects default menu block, which can be emulated on DR-DOS platforms via and .
- Defines an individual menu block, also emulatable under DR-DOS through use of and .
- Enables or disables multitrack disk drive operations support.
- Continues CONFIG.SYS processing from a new file after loading a device driver, setting the %NEWFILE% environment variable accordingly.
NTemplate:NbndQ
- Sets default character representing No () in Yes/No/Resume prompt dialogs.
- Toggles keyboard [[Num Lock|Template:Keypress]] state on or off during startup.
- Allows conditional execution based on previous error code results, e.g., .
- Displays a message and waits for any key press, similar to commands like and in DR-DOS systems.
- Requires user confirmation before proceeding when errors are detected in CONFIG.SYS processing.
- Configures buffer size allocated to LPT parallel ports.
- Enables conditional command execution when running on PC-compatible hardware platforms.
- Sets scheduling priority levels for processes managed by DOS scheduler.
- Adjusts priority assigned to disk input/output operations within DOS scheduling framework.
- ; Changes default printer device driver assignment among LPT1 through LPT4 ports.
- Defines whether DOS applications are permitted to execute on the system.
- Loads the system’s user interface shell program during startup sequence.
- Enables conditional execution of commands on IBM PS/1-compatible machines only.
- Facilitates conditional command execution tailored specifically for IBM PS/2-compatible hardware environments.
- ; Suppresses output directed to standard output (STDOUT) stream.
RTemplate:NbndT
- Activates automatic system reboot upon encountering errors.
- Permits inclusion of comments within CONFIG.SYS (ignored in PTS-DOS).
- Reserves a drive letter to prevent local block device assignment conflicts.
- Sets the default character for Resume () prompts in Yes/No/Resume dialogs.
- Returns nested CONFIG.SYS processing control to the prior GOSUB or SWITCH point, optionally passing a return value.
- Specifies the size of real mode memory available.
- Allows concurrent loading of programs within CONFIG.SYS, functioning similarly to CALL or INSTALL in DOS environments.
- Determines whether the first character of a deleted file is stored in the FAT reserved area.
- Defines video mode settings under FreeDOS or screen access methods under PTS-DOS.
- Controls the keyboard Scroll Lock key state, enabling or disabling it.
- Assigns environment variables for system use.
- Loads the command interpreter shell.
- Functions like SHELL but supports pre-allocating shell memory size to optimize usage in HMA or UMB areas.
- Specifies keyboard modifier states such as Shift Lock, Num Lock, Scroll Lock, and Insert mode.
- Configures whether files close automatically upon Ctrl+Alt+Del interrupts.
- Enables skipping of POST during reboot sequences.
- , STACKSIZE, STACKSHIGH
- Manage hardware interrupt stack sizes and buffer placements across various DOS versions, enhancing system stability and memory efficiency.
- , SYSBOOT, SYSGEN, SYSLOAD
- PTS-DOS commands facilitating boot management, alternative OS loading, and memory configuration to improve system flexibility.
- , SWITCH
- Controls nested CONFIG.SYS execution flow using conditional logic for streamlined startup processes (not universally supported across all DOS variants).
- , SWAPPATH
- OS/2 features that redirect error logs and configure swap file locations to increase system reliability.
- , SWITCHES
- Define default characters for command-line switches and special options across DOS versions to maintain consistent command syntax handling.
- , THREADS, TIMESLICE
- OS/2 parameters addressing hardware issues, multitasking concurrency, and scheduler time slices to optimize performance.
- , TRACE, TRACEBUF
- Manage command timeouts and enable single-step debugging of CONFIG.SYS with adjustable log buffer sizes for diagnostic purposes (varies by OS).
- , TRAPDUMP
- Specifies temporary file extensions in PTS-DOS and configures error logging in OS/2 to support system maintenance.
UTemplate:NbndZ
- Configures DOS to utilize a designated segment as Upper Memory Block (UMB) space.
- Sets the UMB server parameters.
- Defines address ranges allocated as UMB RAM areas.
- Enables or disables verification of disk writes.
- Specifies the DOS version reported to applications.
- Manages VGA display status settings.
- Indicates the current video mode configuration.
- Activates virtual DMA support.
- Enables or disables Virtual Mode Extensions functionality.
- Configures Windows VxD (Virtual Device Driver) settings.
- Sets Windows compatibility support options.
- Relocates the Extended BIOS Data Area (EBDA).
- Executes conditional commands on XT-compatible systems only.
- Configures built-in support for Year 2000 compliance.
- Sets the default character used in Yes prompts.
- Manages deletion tracking behavior.
Issues
While the system can start without CONFIG.SYS or AUTOEXEC.BAT files present, these are critical for complete operating system customization and application compatibility. Damage or corruption of either file necessitates troubleshooting.
In cases where CONFIG.SYS lacks a SHELL directive or is missing/corrupt, DOS attempts to locate COMMAND.COM in the root directory of the boot drive. Versions prior to 6.0 will fail to boot if COMMAND.COM is not found. MS-DOS 6.0, PC DOS 6.1, and Novell DOS 7 and later prompt users for the command processor path instead and provide recovery options when the shell terminates unexpectedly. This mechanism allows limited shell replacement during runtime without requiring a reboot.
Due to incompatibilities between MS-DOS 7 and later versions of COMMAND.COM and DR-DOS, DR-DOS 7.02 and newer restrict skipping SHELL directives during skip/trace/step modes to maintain stability. If no SHELL directive is present when skip mode is active, users must specify a valid shell filename before COMMAND.COM loads.
CONFIG.SYS file size is limited to 64 KB on MS-DOS and PC DOS systems but remains unrestricted on DR-DOS. The latter processes directives sequentially rather than compiling them all at once. This approach enables precise control over driver and TSR load sequencing as well as conditional execution based on hardware detection, error conditions, or user input—facilitating conflict resolution and integration of debugging utilities.
MS-DOS and PC DOS versions 2.0 through 4.01 restrict the length of the SHELL command line to 31 characters. Subsequent versions extend this limit up to 128 characters, while DR-DOS supports up to 255 characters. None of these CONFIG.SYS directives support long filenames.
Dual Booting DOS and Windows 9x
When Windows 95 is installed over a pre-existing DOS or Windows environment, the system renames CONFIG.SYS and AUTOEXEC.BAT to CONFIG.DOS and AUTOEXEC.DOS, enabling dual boot functionality between Windows 9x and DOS. Selecting the DOS boot option temporarily restores these original filenames, while the Windows 95 versions are preserved under the names CONFIG.W40 and AUTOEXEC.W40.
In configurations where Caldera DR-DOS 7.02 or 7.03 coexists with Windows 95, the Windows CONFIG.SYS and AUTOEXEC.BAT files remain intact. Instead, DR-DOS utilizes DCONFIG.SYS and AUTODOS7.BAT as its startup configuration files.
OS/2 / Windows NT
OS/2 relies heavily on CONFIG.SYS to set up drivers and environment variables prior to launching its graphical user interface.
Within the OS/2 subsystem of Windows NT, settings traditionally found in CONFIG.SYS are represented as registry entries instead of physical files.
Numerous CONFIG.SYS commands in OS/2 lack official documentation. However, CONFIG.SYS continues to be employed by OS/2 derivatives 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
- AUTOEXEC.BAT and CONFIG.SYS details at Computer Hope
- Overview of Windows 98 / MS-DOS 7.10 CONFIG.SYS directives (archived)
- Caldera’s CONFIG.SYS Command Reference (archived; DR-DOS 7 directives)
- FreeDOS CONFIG.SYS directives explained
- PTS-DOS 2000 Pro User Guide featuring CONFIG.SYS directives summary
- Unofficial German PTS-DOS FAQ including CONFIG.SYS directive information