Primary system configuration file for DOS From Wikipedia, the free encyclopedia
CONFIG.SYS is the primary configuration file for the DOS and OS/2operating systems. It is a special ASCII text file that contains user-accessible setup or configuration directives evaluated by the operating system's DOS BIOS (typically residing in IBMBIO.COM or IO.SYS) during boot. CONFIG.SYS was introduced with DOS 2.0.[nb 1]
The directives in this file configure DOS for use with devices and applications in the system. The CONFIG.SYS directives also set up the memory managers in the system. After processing the CONFIG.SYS file, DOS proceeds to load and execute the command shell specified in the SHELL line of CONFIG.SYS, or COMMAND.COM if there is no such line. The command shell in turn is responsible for processing the AUTOEXEC.BAT file.
CONFIG.SYS is composed mostly of name=value directives which look like variable assignments. In fact, these will either define some tunable parameters often resulting in reservation of memory, or load files, mostly device drivers and terminate-and-stay-resident programs (TSRs), into memory.
In DOS, CONFIG.SYS is located in the root directory of the drive from which the system was booted.
Some versions of DOS will probe for alternative filenames taking precedence over the default CONFIG.SYS filename if they exist:
While older versions of Concurrent DOS 3.2 to 4.1 did not support CONFIG.SYS files at all, later versions of Concurrent DOS 386 and Concurrent DOS XM, as well as Multiuser DOS, System Manager and REAL/32 will probe for CCONFIG.SYS (with "C" derived from "Concurrent") instead of CONFIG.SYS. Some versions of MultiuserDOS use a filename of CCONFIG.INI instead,[2][3] whereas REAL/32 is known to look for MCONFIG.SYS. These operating systems support many additional and different configuration settings (like INIT_INSTALL) not known under MS-DOS/PCDOS, but they are stored in the binary repository named CCONFIG.BIN rather than in CCONFIG.INI.[2][3] Both files are typically modified through a configuration utility named CONFIG.EXE only.[2][3]
Under DR DOS3.31, PalmDOS1.0, Novell DOS7, OpenDOS7.01, and DR-DOS7.02 and higher, a file named DCONFIG.SYS (with "D" derived from "DRDOS"), if present, will take precedence over CONFIG.SYS.[4][5][6][7] Since DRDOS6.0 this was used in conjunction with disk compression software, where the original boot driveC: would become driveD: after loading the compression driver (and the "D" in the file name came in handy as well), but it is commonly used to help maintain multiple configuration files in multi-boot scenarios.
In addition to this, OpenDOS7.01 and DR-OpenDOS7.02 will look for a file named ODCONFIG.SYS,[8][9][6] whereas some issues of DR-DOS7.02 and higher will instead also look for DRCONFIG.SYS.[6]
Further, under DRDOS6.0 and higher, the SYS/DR:ext command can be used to change the default file extensions.[8][10][7] For example, with SYS/L/DR:703 the written Volume Boot Record would look for a renamed and modified IBMBIO.703 system file (instead of the default IBMBIO.COM) and the IBMBIO.703 would look for IBMDOS.703 and [D]CONFIG.703 (instead of IBMDOS.COM and [D]CONFIG.SYS), so that multiple parallel sets of files can coexist in the same root directory and be selected via a boot-loader like LOADER, supplied with Multiuser DOS and DR-DOS 7.02/7.03.[4] The SHELL directive is enhanced to provide means to specify alternative AUTOEXEC.BAT files via /P[:filename.ext] and in this specific scenario, COMMAND.COM will accept file extensions other than ".BAT" as well (both features are also supported by 4DOS).[11] Under DRDOS6.0 and higher, the CONFIG.SYS directive CHAIN=filespec can be used to continue processing in the named file, which does not necessarily need to reside in the root directory of the boot drive.[4][6] DR-DOS7.02 and higher optionally support an additional parameter as in CHAIN=filespec,label to jump to a specific :label in the given file.[8][9][6]
DR-DOS 7.03 and higher support a new SYS/A parameter in order to copy the corresponding CONFIG.SYS and AUTOEXEC.BAT files along with the system files.[7]
FreeDOS implements a similar feature with its FDCONFIG.SYS configuration file. RxDOS7.24 and higher use RXCONFIG.SYS instead.[12]PTS-DOS uses CONFIG.PTS.
Both CONFIG.SYS and AUTOEXEC.BAT can be found included in the root folder of Windows 95, and Windows 98 boot drives, as they are based on DOS. Typically, these files are left empty, with no content.
Under FlexOS, CONFIG.SYS is a binary file defining the resource managers and device drivers loaded.
:;*?!
:(DRDOS 5.0 and higher only)
Defines labels in CONFIG.SYS as jump targets for CHAIN, DRSWITCH, GOTO, GOSUB and SWITCH directives.
;(DOS 6.0 and DRDOS 6.0 and higher)
Similar to REM, but can be used also for in-line comments (following other CONFIG.SYS directives). See COMMENT. (Under MS-DOS/PCDOS the inline-comment is not ignored if put in double-quotes.)
*(PTS-DOS only)
Used to lead in in-line comments in addition to the; directive.
?(DRDOS 3.41 and higher, Embedded DOS[nb 2] and FreeDOS only)
Displays a Yes/No query and (since DRDOS 5.0) optional message to ask the user for confirmation to execute the following CONFIG.SYS directives.[14] (FreeDOS does not support optional messages, but optional conditions in conjunction with boot menus defined with MENU and MENUDEFAULT.) (DOS 6.0 and higher supports a similar feature by adding a ? after the corresponding CONFIG.SYS directive, f.e. DEVICE? or DEVICE?= instead of ?DEVICE. This variant is also supported by DRDOS.)
!(FreeDOS only)
Unconditionally execute the following CONFIG.SYS directive.
A–C
ABORT(PTS-DOS only)
Specifies if programs can be aborted on errors.
ACCDATE(MS-DOS 7.0 and higher only, ignored under DR-DOS 7.02 and higher)
[8] Configures which drives should store file access date stamps in the reserved area of directory entries in FAT file systems.[15][16]
AT(PTS-DOS only)
Conditional execution on AT-compatible machines only.
Emits a short beep, even if audible notifications are disabled via SWITCHES=/Q.[8]
BOOTNEXT(DRMK only)
Specifies operating system to be booted.
BREAK(DOS 2.0 and DRDOS 3.31 and higher; OS/2[nb 3][nb 4])
Sets or clears extended Ctrl+C checking.
BUFFERS(DOS 2.0 and DRDOS 3.31 and higher; OS/2[nb 3][nb 4])
Specifies the number of disk buffers to allocate.
BUFFERSHIGH(MS-DOS 7.0[15] and DR-DOS 7.02 and higher[8] and FreeDOS only)
Same as BUFFERS, but explicitly loads buffers into HMA or UMB (like HIBUFFERS under DR DOS 6.0 and higher).
CACHESIZE(Embedded DOS 6-XL only)
Maximum number of 512-byte cache blocks dynamically allocated from system pool.
CACHETTL(Embedded DOS 6-XL only)
Maximum time in ms before unused cache blocks are returned to system pool.
CACHEFLUSH(Embedded DOS 6-XL only)
Maximum time in ms before a dirty cache block gets flushed to disk.
CALL(OS/2 4.0 and higher only)
Similar to INSTALL under DOS, loads programs in CONFIG.SYS. Similar to RUN under OS/2, but runs in foreground and halts CONFIG.SYS processing until return.
CAPSLOCK(DR-DOS 7.02 and higher only)
Specifies whether the keyboard ⇪ Caps Lock status is turned on or off.[8]
CDDNAME(PTS-DOS only)
Specifies the name of the CD-ROM hardware driver.
CDDBUFFERS(PTS-DOS only)
Specifies the number of buffers for CD-ROM access.
CHAIN(DRDOS 5.0 and higher and Embedded DOS[nb 2] only)
Continues CONFIG.SYS processing in new file and (since DR-DOS 7.02) at optional label.[8][6]
Specifies programs (which would normally run at the CPU's IOPLring 3) which should be allowed to run at ring 2 in order to directly access the hardware for I/O.
INCLUDE(DOS 6.0 and higher, not DR-DOS, not FreeDOS)
Include directives from another menu block. (Can be emulated using GOSUB and RETURN under DR-DOS.)
INSERT(DR-DOS 7.02 and higher only)
Specifies whether the keyboard Insert mode status is turned on or off.[8]
Specifies time before a waiting process gets a higher priority.
MEMMAN(OS/2 only)
Configures memory allocation strategy
MEMORY(PTS-DOS only)
Specifies the default DOS memory allocation strategy.
MENU(FreeDOS only)
Defines menu options.
MENUCOLOR(DOS 6.0 and higher, not DRDOS, not FreeDOS)
Specifies menu colors. (Can be emulated using ECHO under DR-DOS.)
MENUDEFAULT(DOS 6.0 and higher and FreeDOS, not DRDOS)
Specifies the default menu block. (Can be emulated using TIMEOUT and SWITCH under DR-DOS.)
MENUITEM(DOS 6.0 and higher, not DRDOS, not FreeDOS)
Specifies a menu block. (Can be emulated using ECHO and SWITCH under DR-DOS.)
MULTITRACK(DOS 4.0 and DR-DOS 7.02 and higher;[8] ignored under PTS-DOS)
Specifies whether multitrack disk operations are used or not.
NEWFILE(Datalight ROM-DOS only)
Continues CONFIG.SYS processing in new file (similar to DR-DOS CHAIN) and optionally after loading a specific device driver and setting %NEWFILE% environment variable.[20]
N–Q
NOCHAR(DR-DOS 7.02 and higher only)
Specifies the default No (N) character in Yes/No/Resume questions.[8][14][19])
NUMLOCK(DOS 6.0 and Novell DOS 7 and higher)
Specifies whether the keyboard Num Lock status is turned on or off.
ONERROR(DRDOS 6.0 and higher only)
Conditional execution depending on last return code/error status only, f.e. ONERROR > 0 GOTO failload or ONERROR > 10 ONERROR <> 17 ONERROR <= 30 ECHO Error 11-16 or 18-30 occurred.[4]
PAUSE(PTS-DOS only)
Similar to ECHO and GETKEY under DR-DOS, displays a text and waits for a key press.
Similar to CALL, loads programs in CONFIG.SYS. Similar to INSTALL under DOS and CALL under OS/2, but loads programs in background concurrently.
SAVENAME(PTS-DOS only)
Specifies, if the first character of deleted files should be stored in the reserved area of directory entries in the FAT file system.
SCREEN(FreeDOS and PTS-DOS only)
Similar to VIDEOMODE under PTS-DOS, specifies the video mode to be used under FreeDOS. Under PTS-DOS, SCREEN does not specify the video mode but screen access methods.
SCROLLOCK(DR-DOS 7.02 and higher only)
Specifies whether the keyboard Scroll Lock status is turned on or off.[8][19])
SET(DOS 6.0 and DR‑DOS 6.0 and higher; OS/2[nb 3])
Sets environment variables.
SHELL(DOS 2.0 and DR‑DOS 3.31 and higher; OS/2[nb 3][nb 4])
SHELLHIGH(DR-DOS 7.02 and higher and PTS-DOS and FreeDOS only)
Same as SHELL, but supports an additional SIZE parameter to define the size of the pre-allocation for COMMAND.COM to relocate its resident portion into the HMA (with /MH). Can be useful to avoid HMA fragmentation in conjunction with third-party shells which cannot load into the HMA. SHELLHIGH under PTS-DOS tries to load the shell into UMBs instead.)[8][14][11][19]
SHIFTSTATE(PTS-DOS only)
Specifies the state of the keyboard modifiers like Shift Lock, Num Lock, Scroll Lock or Insert mode.
SHUTDOWN(PTS-DOS only)
Specifies if files should be closed on Ctrl+Alt+Del.
SOFTREBOOT(PTS-DOS only)
Specifies if POST should be skipped on reboots.
STACK(ignored under DR‑DOS 3.31-5.0 and 7.02 and higher only)
Compatibility dummy - DR DOS 3.31 - 6.0 were mostly reentrant and had a different stacks layout.
STACKS(DOS 3.2 and Novell DOS 7 and higher, ignored under DR DOS 6.0 and PTS-DOS)
Specifies the number of stacks for hardware interrupts.
STACKSIZE(Embedded DOS 6-XL only)
Default stack size allocated for new threads.
STACKSHIGH(MS-DOS 7.0[15] and DR-DOS 7.02 and higher,[8] and FreeDOS only)
Same as STACKS, but explicitly loads buffers into upper memory.
STORAGE(PTS-DOS only)
Boot manager.
STRING(MS-DOS 3.0 only, ignored under DR-DOS 7.02 and higher)
Conditionally continues nested CONFIG.SYS processing at one of the specified labels depending on keys pressed, with RETURN returning to old location.[8][14][19]
SWITCHAR(DOS 2.0-2.1, DOS Plus 2.1 with FIDDLOAD, DR-DOS 7.02 and higher,[8] PTS-DOS, FreeDOS and RxDOS only)
Defines the default SwitChar used by the system (either '/' or '-').[11]
SWITCHES(DOS 4.0 and Novell DOS 7 and higher; ignored under PTS-DOS)
Specifies the timeouts in CONFIG.SYS single-stepping and with SWITCH, GETKEY and ?, and the default answers for Yes/No queries and SWITCH selections.[8][14][19] PTS-DOS only supports the timeout value.
Configures minimum and maximum time slices for scheduler.
TMPEXT(PTS-DOS only)
Specifies the file extension for temporary files.
TRACE(DR-DOS 7.02 and higher and PTS-DOS only; OS/2[nb 3])
Globally or locally enables or disables CONFIG.SYS (and AUTOEXEC.BAT) single-stepping execution.[19][8] The functionality under OS/2 differs significantly from that under DOS.
YESCHAR(PalmDOS 1.0, DR DOS 6.0 updates and Novell DOS 7 and higher only)
Specifies the default Yes (Y) character in Yes/No/Resume queries.[8][19]
ZOMBIEDRV(PTS-DOS only)
Configures deletion tracking.
The system can still boot if this file is missing or corrupted. However, this file, along with AUTOEXEC.BAT, is essential for the complete bootup process to occur with the DOS operating system. These files contain information that is used to customize the operating system for personal use. They also contain the requirements of different software application packages. A DOS system would require troubleshooting if either of these files became damaged or corrupted.
If CONFIG.SYS does not contain a SHELL directive (or the file is corrupt or missing), DOS typically searches for COMMAND.COM in the root directory of the boot drive.[19] If this is not found, versions of DOS before 6.0 will not start up. MS-DOS 6.0/PCDOS 6.1 and Novell DOS 7 and higher will instead display a prompt to enter the path and filename of a command processor. This recovery prompt is also displayed when the primary command processor is aborted due to faults or if it is exited deliberately.[4] (In the case of COMMAND.COM, the internal EXIT command is disabled only when the shell was started with /P.) This also provides limited means to replace the shell at runtime without having to reboot the system.
Since the MS-DOS 7.0 and higher COMMAND.COM executable is incompatible with DR-DOS,[21] but typically resides in the root of drive C: in dual-boot scenarios with DR-DOS, DR-DOS 7.02 and higher no longer allow to bypass SHELL directives in (Ctrl+)F5/F7/F8 "skip"/"trace"/"step" modes.[8][19][21] (Some later issues added (Ctrl+)F6 to reinvoke the former F5 "skip" behaviour in order to allow recovery from problems with invalid SHELL arguments as well.[19]) Also, if no SHELL directive could be found when skipping CONFIG.SYS processing via (Ctrl+)F5 (and also with (Ctrl+)F7/F8, when the default file extension has been changed with SYS /DR:ext),[7] the user is prompted to enter a valid shell file name before trying to load COMMAND.COM from the root.[8][21] Pressing ↵ Enter without specifying a file will assume the former default.[8]
Depending on the version, the size of the CONFIG.SYS file is limited to a few kilobytes under MS-DOS/PCDOS (up to 64KB in most recent versions), whereas the file's size is unlimited under DR-DOS.[4][19] This is because the former operating systems (since DOS 3.0[22]) will compile the file into some tokenized in-memory representation[22] before they sort and regroup the directives to be processed in a specific order (with device drivers always being loaded before TSRs), whereas DR-DOS interprets the file and executes most directives line-by-line, thereby giving full control over the load order of drivers and TSRs via DEVICE and INSTALL (for example to solve load order conflicts or to load a program debugger before a device driver to be debugged)[8][19] and allowing to adapt the user interaction and change the flow through the file based on conditions like processor types installed, any type of keys pressed, load or input errors occurring, or return codes given by loaded software.[4][8] This becomes particularly useful since INSTALL can also be used to run non-resident software under DR-DOS, so that temporary external programs can be integrated into the CONFIG.SYS control flow.[4][11][8]
In MS-DOS/PCDOS 2.0 through 4.01, the length of the SHELL line was limited to 31 characters, whereas up to 128 characters are possible in later versions.[4][11] DR-DOS even accepts up to 255 characters.[4][11] CONFIG.SYS directives do not accept long filenames.
When installing Windows 95 over a preexisting DOS/Windows install, CONFIG.SYS and AUTOEXEC.BAT are renamed to CONFIG.DOS and AUTOEXEC.DOS. This is intended to ease dual booting between Windows9x and DOS. When booting into DOS, they are temporarily renamed CONFIG.SYS and AUTOEXEC.BAT. Backups of the Windows95 versions are made as CONFIG.W40 and AUTOEXEC.W40 files.
When Caldera DR-DOS 7.02/7.03 is installed on a system already containing Windows95, Windows' CONFIG.SYS and AUTOEXEC.BAT retain those names. DR-DOS' startup files are installed as DCONFIG.SYS (a name already used in earlier versions of DR DOS) and AUTODOS7.BAT.[5]
OS/2 uses the CONFIG.SYS file extensively for setting up its configuration, drivers and environment before the graphical part of the system loads.
In the OS/2 subsystem of Windows NT, what appeared as CONFIG.SYS to OS/2 programs was actually stored in the registry.
There are many undocumented or poorly documented CONFIG.SYS directives used by OS/2.[23]
The filename of the DOS configuration file CONFIG.SYS was derived from an identically named file used by the operating system DX-85M for the Durango F-85 family of computers introduced in 1978 - five years before the advent of MS-DOS 2.0/PC DOS 2.0 in 1983. Both files are text files and use various directives to configure the system and load drivers, however, the syntax differs.
Kurth, Rüdiger; Groß, Martin; Hunger, Henry (2016-11-29) [2007]. "Betriebssystem DCP". www.robotrontechnik.de (in German). Archived from the original on 2019-04-03. Retrieved 2019-04-28.
Paul, Matthias R. (1997-07-30). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds[Tips & tricks for Novell DOS 7, with a focus on undocumented details, bugs and workarounds]. MPDOSTIP (in German) (3ed.). Archived from the original on 2016-11-05. Retrieved 2012-01-11. (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)
Paul, Matthias R. (2017-08-14) [2017-08-07]. "The continuing saga of Windows 3.1 in enhanced mode on OmniBook 300". MoHPC - the Museum of HP Calculators. Archived from the original on 2018-05-01. Retrieved 2018-05-01. […] SYS […] /A Additionally copy [D]CONFIG.SYS and AUTOEXEC.BAT file(s). […] /B or /L Do not modify the Boot Sector in destination (with LOADER). […] /DR[:ext] Use other file extension for system files (BIN) (with LOADER). […]
Paul, Matthias R. (2001-04-09). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds[Tips & tricks for Novell DOS 7, with a focus on undocumented details, bugs and workarounds]. MPDOSTIP (in German) (3ed.).
"Windows 95 CD-ROM CONFIG.TXT File - Microsoft Windows 95 README for MS-DOS Config.sys Commands". Revision: 1.1. Microsoft. 2006-11-15 [August 1995]. KB135481. Q135481. Archived from the original on 2013-01-28. Retrieved 2011-12-22. […] For each hard disk, specifies whether to record the date that files are last accessed. Last access dates are turned off for all drives when your computer is started in safe mode, and are not maintained for floppy disks by default. Syntax: ACCDATE=drive1+|- [drive2+|-]… […]
Paul, Matthias R. (2002-04-06). "Re: [fd-dev] ANNOUNCE: CuteMouse 2.0 alpha 1". freedos-dev. Archived from the original on 2020-02-07. Retrieved 2020-02-07. […] DR-DOS 7.02+ has a [D]CONFIG.SYS directive to override the serial ports detected during System BIOS POST, so tools like DEBUG […] are no longer required to update or change the port settings in segment 40h. […] insert a line to [D]CONFIG.SYS to make the port available to the System BIOS, DOS, and most drivers and applications: […] COM4=260,1; set I/O address for COM4 to 260h, timeout 1 […] Since old machines and DOS versions did not know about COM3 and COM4 at all, good software will try to use the data stored in segment 0040h […] Optionally hide the chosen mouse COM port from the system configuration to avoid any clobbering by old BASIC programs. […]
Schneider, Stefanie (1994-06-17). "Das Ende von DOS ist nur noch eine Frage der Zeit"[The end of DOS is only a question of time]. Computerwoche (in German). Munich, Germany: IDG Business Media GmbH. Archived from the original on 2022-01-02. Retrieved 2022-01-02. […] So handelt es sich bei dem fuer Ende 1994, Anfang 1995 erwarteten MS-DOS 7.0 offenkundig um eine der grafischen Benutzeroberflaeche entledigte Version von Windows 4.0, die auch den Codenamen "Chicago" traegt. Dieses neue DOS soll der CW-Schwesterpublikation "PC-Welt" zufolge durch die neuen Parameter "standard" und "enhanced" in der Systemdatei Io.sys die leidigen Speicherbarrieren ueberwinden. […] (NB. The undocumented settings STANDARD and ENHANCED are optional parameters of the CONFIG.SYS directive DOS.)
Paul, Matthias R. (2004-06-17). "Re: Random Lockups with DR-DOS 7.03". opendos@delorie.com; FidoNet conference: ALT_DOS. Archived from the original on 2019-04-28. Retrieved 2019-04-28. […] all MS-DOS versions prior to Windows 95 […] used a COM style COMMAND.COM file which has a special signature at the start of the file […] queried by the MS-DOS BIOS before it loads the shell, but not by the DR-DOS BIOS […] COMMAND.COM would […] check that it is running on the "correct" DOS version, so if you would load their COMMAND.COM under DR-DOS, you would receive a "Bad version" error message and their COMMAND.COM would exit, so DR-DOS would […] display an error message "Bad or missing command interpreter" (if DR-DOS was trying to load the SHELL= command processor after having finished CONFIG.SYS processing). In this case, you could enter the path to a valid DR-DOS COMMAND.COM (C:\DRDOS\COMMAND.COM) and everything was fine. Now, things have changed since MS-DOS 7.0 […] COMMAND.COM has internally become an EXE style file, so there is no magic […] signature […] to check […] thus no way for DR-DOS to rule out an incompatible COMMAND.COM. Further, their COMMAND.COM no longer does any version checks, but […] does not work under DR-DOS […] just crashes […] the PC DOS COMMAND.COM works fine under DR-DOS […]
Ernst, Martin; Grell, Detlef (November 1987). Grell, Detlef (ed.). "Damit die Scheibe spurt - 720 KB-Disketten mit MF-Drives im AT; Atari ST-Disketten unter DOS ab Version 3.2 in PCs, ATs oder Modell 30". c't - magazin für computertechnik. Programm (in German). Vol.1987, no.11. Verlag Heinz Heise GmbH & Co. KG. pp.216–218, 220, 222, 224, 226, 228 [226]. ISSN0724-8679.