490 lines
18 KiB
Plaintext
490 lines
18 KiB
Plaintext
Title: Config.sys Options
|
|
|
|
Configuring your DOS system for use:
|
|
------------------------------------
|
|
|
|
When booting DOS, you will find it only supports a subset of
|
|
the devices available on many computers. To support additional
|
|
devices and advanced features, device specific driver and
|
|
memory resident software most be loaded. This allows the
|
|
kernel to be easily extended to support hardware not presently
|
|
available and take better advantage of installed hardware
|
|
without wasting resources on computers lacking it. This
|
|
software is generally loaded during the kernel initialization
|
|
phase, with details describing what to load expressed in the
|
|
file CONFIG.SYS. The FreeDOS kernel will first look for a
|
|
file named FDCONFIG.SYS, should it exist, it will will be used
|
|
instead of CONFIG.SYS; this allows the FreeDOS kernel to coexist
|
|
and be configured differently than another DOS kernel. There
|
|
are additional options available to adjust other aspects of the
|
|
kernel's behaviour. Note: some options listed below are FreeDOS
|
|
specific and will not work when using other/older DOS kernels.
|
|
Below is list of all documented FreeDOS config.sys supported
|
|
options; additional undocumented options may exist but are not
|
|
meant for normal usage.
|
|
|
|
|
|
BREAK
|
|
Usage: break=on|off
|
|
Set extended Control-C/Control-Break checking to on [default] or off.
|
|
When set to on, the kernel will perform the check (and invoke current
|
|
handler if pressed) prior to most int 21h calls. When set to off,
|
|
the kernel only performs the check on I/O calls using standard streams.
|
|
Example: break=off
|
|
|
|
BUFFERS
|
|
BUFFERSHIGH
|
|
Usage: buffers=nn[,m] where nn is in range 1-99 & m is in range 1-8
|
|
Memory buffers used by the kernel; primary[,secondary]
|
|
The secondary buffer option is available for compatibility with
|
|
other DOS kernels, but is ignored by the FreeDOS kernel. In MS DOS,
|
|
a secondary buffer can used to read-ahead data. FreeDOS does not do
|
|
this. Buffers are stored in HMA by FreeDOS, unless you select nn to
|
|
allocate more buffers than fit in HMA. If nn is smaller, unused HMA
|
|
space will be used for further buffers until something else allocates
|
|
the HMA space for something else. Even then, at least nn buffers will
|
|
always be available. You can set nn to a negative value to disable
|
|
the use of unused HMA space: BUFFERS=-10 only uses 10 buffers, further
|
|
free space in the HMA will just stay unused. Because the buffers can
|
|
use the HMA anyway, BUFFERSHIGH does the same as BUFFERS for now, but
|
|
shows a note about that to inform the user that it does not use UMB.
|
|
Example: buffers=20
|
|
|
|
COUNTRY
|
|
Usage: country=nnn[,[mmm][,[d:][path]file]]
|
|
Enables/sets international features of DOS by selecting a country
|
|
code and (only with the unstable / devel kernel) optionally also
|
|
a codepage and country file. The stable kernel only uses the nnn
|
|
value. For full support, use the unstable / devel kernel. You also
|
|
need a COUNTRY.SYS file for the latter, while the former ignores the
|
|
filename argument and only sets date/time/number formats, using values
|
|
compiled into the kernel for a few common countries. It does not set
|
|
sort order and upper/lower case translation tables. NLSFUNC can only
|
|
be used with the unstable kernel.
|
|
nnn is country code (001==US)
|
|
mmm is code page (437 is default, 850 is updated form, 1252 for Windows)
|
|
[drive][path]file specifies file with country specific data
|
|
Example: country=001,850,C:\FDOS\BIN\COUNTRY.SYS
|
|
|
|
DEVICE
|
|
Usage: device=[d:][path]file [options]
|
|
Load the device driver specified by d:path\file (into conventional
|
|
[low 640KB] memory). The options are for the driver itself; refer
|
|
to documentation that came with your particular device for supported
|
|
options and their usage.
|
|
Example: device=himem.sys
|
|
|
|
DEVICEHIGH
|
|
Usage: devicehigh=[d:][path]file [options]
|
|
This is just like device= statement, except it attempts to load
|
|
the device driver into high memory first (failing that it should
|
|
load it in conventional memory).
|
|
Note: The order you load devices may have a large impact on amount
|
|
of free memory available. In general try to load large (in memory
|
|
usage) programs into high memory first.
|
|
Important: You should have a high memory manager such as FDXMS or
|
|
HIMEM installed (prior device=FDXMS.SYS or device=HIMEM.SYS) before
|
|
using this option.
|
|
Example: devicehigh=xcdrom.sys /D:FDCD0001
|
|
|
|
DOS
|
|
Usage: dos=high|low,umb|noumb
|
|
Indicates whether the kernel should try to load itself into
|
|
high memory or only conventional (low), and whether to link
|
|
upper memory blocks in with normal memory or not.
|
|
Note: only one set need be given, ie dos=high and dos=noumb are ok.
|
|
Important: if you specify dos=high[,umb|noumb] then you must also
|
|
load a high memory manager (first), ie FDXMS or HIMEM
|
|
Example: dos=high,umb
|
|
Example: dos=low,noumb
|
|
|
|
DOSDATA
|
|
Usage: dosdata=umb
|
|
Try to load kernel data into Upper Memory Blocks; effectively
|
|
same as using the [name]HIGH variant of kernel parameters,
|
|
such as fileshigh, lastdrivehigh, and stackshigh (does not
|
|
effect drivers loaded using device= or install=).
|
|
Example: dosdata=umb
|
|
|
|
ECHO
|
|
Usage: ECHO Message to be displayed to user.
|
|
ECHO displays (echos) its arguments to the console during
|
|
config.sys processing when device drivers are loaded (when
|
|
DEVICE= lines are executed).
|
|
Example:
|
|
ECHO loading driver 1
|
|
device=Driver1.sys
|
|
ECHO driver1 successfully loaded
|
|
|
|
EECHO
|
|
Usage: EECHO Message with ANSI Escape Sequence
|
|
EECHO allows for echo-ing ANSI Escape Sequences
|
|
(redefines keyboard input for example). Use a dollar sign ($)
|
|
to represent the ANSI Escape character. Note: requires an
|
|
ANSI driver like NANSI loaded prior to use.
|
|
Example: EECHO feeling $[33;44;1m blue :-)
|
|
|
|
FCBS
|
|
Usage: fcbs=nnn
|
|
where nnn is in range 1-255
|
|
Sets the number of File Control Blocks to reserve room for.
|
|
As file control blocks have been replaced by file handles
|
|
(see files) and FreeDOS dynamically simulates FCBS from the
|
|
handle data as needed, nnn is simply ignored by FreeDOS.
|
|
Example: fcbs=4
|
|
|
|
FILES
|
|
FILESHIGH
|
|
Usage: files=nnn
|
|
where nnn is in range 8-255 (default 8)
|
|
Specifies how many files allowed open at once (reserves
|
|
memory necessary to support opening this many files).
|
|
Note: there are other restrictions, so a given program
|
|
may not be able to actually open this many
|
|
A good number is 20, though some programs suggest/require
|
|
30, 40, or even 255
|
|
Example: files=20
|
|
|
|
IDLEHALT
|
|
Usage: idlehalt=n
|
|
where n can be -1, 0, 1 or higher (default 0)
|
|
Activates built-in kernel energy saving functionality if n is
|
|
not 0. Value -1 enables all hooks, 1 enables only "safe" hooks,
|
|
CPU halted only if kernel is waiting for CON char device input.
|
|
Further hooks for n=-1 and n>0 depend on the kernel version:
|
|
In addition to the safe hooks, other hooks can get activated,
|
|
for example one for int 0x2f, ax=0x1680 "release time slice".
|
|
Note: In rare cases, entering or leaving HLT mode (which causes
|
|
big changes in CPU power consumption) can cause crashes if
|
|
cheap power supplies or mainboards cannot properly filter
|
|
the transients. Underclocking the whole system may help.
|
|
Linux always does a few HLT at boot time, to force a hang
|
|
on buggy systems early (boot with no-hlt to disable HLT).
|
|
P90 may have buggy HLT? www.tavi.co.uk/ps2pages/ohland/halt.html
|
|
|
|
INSTALL
|
|
INSTALLHIGH
|
|
Usage: install=[d:][path]file [options]
|
|
Load the program specified by d:path\file. Generally used to
|
|
load TSR (terminate and stay resident) programs with a minimal
|
|
environment block. The options are for the program itself; refer
|
|
to documentation that came with your particular software for
|
|
supported options and usage.
|
|
Example: install=nansi.com
|
|
|
|
KEYBUF
|
|
Usage: keybuf=n[,m]
|
|
where n is in 0xac-0xde or 0x106-0x1de range and m is max 0x200
|
|
Relocate keyboard buffer from the default location at
|
|
0x40:0x1e-0x3e to 0x40:n-m. The buffer must be more
|
|
than 32 bytes and must not touch offsets 0x100-0x105.
|
|
Default for m is "next multiple of 0x100 after n".
|
|
Note: Some BIOSes store data in the 0xac-0xff area. BASICA will
|
|
use the 0x106-0x120 area. Other hardware, drivers or apps
|
|
can collide with KEYBUF, too, so use it at your own risk.
|
|
A reasonably safe choice should be "keybuf=0x140,0x1c0".
|
|
|
|
LASTDRIVE
|
|
LASTDRIVEHIGH
|
|
Usage: lastdrive=x
|
|
where x is last drive letter available for use; A-Z
|
|
Example: lastdrive=z
|
|
|
|
MENU
|
|
Usage: menu [text]
|
|
where text is the text you want to be shown while running
|
|
config.sys. Menu displays a menu while running config.sys.
|
|
Use menudefault to set a time delayed default option.
|
|
Lines that begin with 1? will only be processed if the user
|
|
presses 1. Lines beginning with 23? will be loaded if the
|
|
user presses either 2 or 3. Options other than 0 can only
|
|
be selected if at least one "numbers?" line actually uses
|
|
them, as shown in the example below.
|
|
Example:
|
|
menu Please Select Configuration:
|
|
menu
|
|
menu Option 0 basic stuff only
|
|
menu Option 1 CD-ROM
|
|
menu Option 2 TROUSERS
|
|
menu Option 3 CD-ROM and TROUSERS
|
|
0?echo you selected option 0
|
|
13?device=xcdrom.sys /D:FDCD0001
|
|
23?install=trousers.com
|
|
|
|
MENUCOLOR
|
|
Usage: menucolor foreground[,background]
|
|
Use Menucolor before the menu config command, to create a
|
|
full screen menu which supports the arrow cursor keys.
|
|
The following colors can be used for foreground and background:
|
|
0=Black; 1=Blue; 2=Green; 3=Cyan; 4=Red; 5=Magenta;
|
|
6=Brown; 7=Light Gray
|
|
The following colors can only be used for the foreground:
|
|
8=Dark Gray; 9=Light Blue; 10=Light Green; 11=Light Cyan;
|
|
12=Light Red; 13=Light Magenta; 14=Yellow; 15=White.
|
|
If you do not use MENUCOLOR, the menu will not be full
|
|
screen, so some of the BIOS, bootloader and kernel init
|
|
messages (list of drives, version info...) stays visible.
|
|
To change the colour to white text on blue, use the following:
|
|
Example: menucolor 15,1
|
|
|
|
MENUDEFAULT
|
|
Usage: menudefault=defaultoption,delay
|
|
where delay is the delay time in seconds and defaultoption is the
|
|
used standard option if the delay time is over. Menudefault sets
|
|
a time delayed default option for a config.sys menu: If no key
|
|
has been pressed during [delay] seconds, the default choice is
|
|
activated. Pressing a key stops the countdown, the kernel will
|
|
wait infinitely for the user to make a selection. Note that some
|
|
virtual machines like Bochs can have broken (too fast) timing.
|
|
Example: menudefault=0,5
|
|
|
|
NUMLOCK
|
|
Usage: numlock=on|off
|
|
Set the keyboard number lock to on or off.
|
|
Example: numlock=off
|
|
|
|
REM
|
|
Usage: rem Your remarks!
|
|
This provides the ability to place comments within the configuration
|
|
file. The text following the rem until the end of the line is
|
|
reached is ignored. This may also be used to temporarily disable
|
|
loading a particular device or other option. A synonym for REM is
|
|
the semicolon, see the examples.
|
|
Example: REM DOS=HIGH,UMB
|
|
Example: ;DOS=HIGH,UMB
|
|
|
|
SCREEN
|
|
Usage: screen=xx
|
|
Switches into videomode xxx (INT10/11xx/000)
|
|
where xx should be 0x11 for 8x14 font (28 lines VGA, 25 lines EGA)
|
|
or 0x12 for 8x8 font (43 lines EGA, 50 lines VGA) or 0x14 for the
|
|
default VGA font (25 lines VGA). Some newer graphics cards may not
|
|
have 8x14 fonts in the BIOS. In that case, a driver can be loaded
|
|
to load a suitable font in RAM, but SCREEN=0x11 should not be used.
|
|
If xx is less than 15 (0x0f), it is treated as screen mode number,
|
|
for example 1 for CGA 40x25 color text or 7 for monochrome text.
|
|
Example: SCREEN=0x12
|
|
|
|
SET
|
|
Usage: set ENVVAR=value
|
|
Sets the environment variable to provided value.
|
|
Example: set HOME=C:\home\me
|
|
|
|
SHELL
|
|
SHELLHIGH
|
|
Usage: shell=[d:][path]file [options]
|
|
Indicates the shell to use; often used to alter COMMAND.COM's behavior.
|
|
Note: it is command.com that processes AUTOEXEC.BAT; by using the
|
|
shell option, you can get command.com to process a differently named
|
|
file (such as FDAUTO.BAT for coexisting with another DOS using different
|
|
configuration options) or run a completely different command interpreter
|
|
such as 4DOS or a (unix) sh variant.
|
|
Example: shell=C:\4DOS.COM /E:256 /P
|
|
Example: SHELL=C:\FDOS\bin\command.com C:\FDOS\bin /E:1024 /P=C:\fdauto.bat
|
|
|
|
STACKS
|
|
STACKSHIGH
|
|
Usage: stacks=nn,mmm
|
|
where nn is in range 0,8-64 and nnn is in range 32-512
|
|
Changes number and size of hardware interrupt stacks available
|
|
nn is number of different stacks and mmm is size in bytes of each one
|
|
In some cases you can use "stacks=0,0" to use only standard stacks
|
|
instead of letting DOS allocate extra stacks for hardware interrupts.
|
|
Example: stacks=16,256
|
|
|
|
SWITCHAR
|
|
Usage: switchar=c
|
|
Sets the default switchar to character c. Where c is a single character
|
|
that is used to indicate a command line parameter is an option switch.
|
|
The default is a forward slash (/). Note: This simply sets the value
|
|
returned by a get switchar query, it will not effect programs that use
|
|
hardcoded switch characters. The switch character is the sign used to
|
|
mark options, for example the "/" in "DIR /w". Good values: "/" and "-".
|
|
Example: switchar=-
|
|
|
|
SWITCHES
|
|
Usage: switches=/E[:xxx] /F /K /N /W
|
|
Adjusts boot time processing behaviour.
|
|
/E specifies how to handle moving of EBDA (Extended BIOS Data Area),
|
|
if a size in bytes is specified [xxx, in range of 48-1024]
|
|
then the EBDA will be moved from the top of conventional memory
|
|
to a lower address (allowing for potentially larger free block
|
|
of conventional memory if video memory at A0000 is available).
|
|
without a size, the EBDA will not be moved
|
|
/F skips the delay checking for F5/F8 keystroke before processing
|
|
config.sys [equivalent to SYS CONFIG skipconfigseconds=0]
|
|
F5 and F8 are only processed if pressed before DOS boots but
|
|
after the keyboard is set up - right moment is easy to miss.
|
|
/K forces treating of keyboard as 86 key keyboard, not 102/105 key.
|
|
Might be useful with BIOSes or drivers which have no or broken
|
|
handling for 102/105 key keyboards.
|
|
/N disables F5/F8 support [equivalent to kernel config (SYS CONFIG,
|
|
run SYS CONFIG /? for explanations) skipconfigseconds=-1]
|
|
F5 (skip config) and F8 (single step config.sys) key presses
|
|
are ignored (note: with /F a well timed F5/F8 still works, whereas
|
|
/N completely disables).
|
|
/W is NOT supported in FreeDOS. This option in MS DOS would set a flag
|
|
for Windows 3.0 to skip loading wina20.386 from the root directory,
|
|
used when \WINA20.386 is moved into a subdirectory, a device line
|
|
with proper path must be added to Microsoft (R) Windows SYSTEM.INI
|
|
[386Enhanced] section. --- may be ignored for compatibility
|
|
|
|
VERSION
|
|
Usage: version=x.y
|
|
FreeDOS specific command to specify what DOS version to report. For
|
|
a kernel with FAT32 support, 7.10 is a good choice. Otherwise, 5.0
|
|
and 6.22 are common values. FreeCOM command.com "ver /r" displays
|
|
both the reported and the FreeDOS internal version numbers.
|
|
Example: version=6.22
|
|
|
|
|
|
|
|
Advanced - FreeDOS specific CONFIG.SYS menu processing:
|
|
-------------------------------------------------------
|
|
|
|
normal
|
|
FILES=20
|
|
DEVICE=MyNetWorkDriver.sys
|
|
|
|
'?' - ALWAYS ask if a single line shall be executed
|
|
FILES=20
|
|
DEVICE?=MyNetWorkDriver.sys
|
|
|
|
|
|
'!' - NEVER ask if a single line shall be executed, even if single stepping
|
|
!FILES=20
|
|
!DOS=HIGH,UMB
|
|
!BUFFERS=30
|
|
!DEVICE=MyNetWorkDriver.sys
|
|
|
|
|
|
configuration management - you may compose several configurations,
|
|
using following special commands:
|
|
|
|
MENU
|
|
MENU select your configuration
|
|
MENU
|
|
MENU use (1) for CDROM operation
|
|
MENU use (2) for NETWORK configuration
|
|
MENU use (3) to load neither CDROM nor NETWORK drivers
|
|
MENU
|
|
MENUDEFAULT=3,60 (configuration 3, wait 60 seconds)
|
|
|
|
rem CDROM
|
|
1? device=CDROM.SYS
|
|
|
|
rem NETWORK
|
|
2? device=MyNetworkDriver.SYS
|
|
|
|
rem Menu items can only be selected if at least one line uses them:
|
|
3? echo Basic configuration selected
|
|
|
|
Although this is different than MSDOS menuing possibilities, it
|
|
allows for selecting from multiple options during bootup while
|
|
remaining simple. It, however, does not allow for multi-level
|
|
menuing based configuration schemes.
|
|
|
|
|
|
It's also possible to combine menu options, to avoid writing thing every
|
|
time again.
|
|
constructions like 0?devicehigh?=cdrom.sys are also possible
|
|
("if menu option 0 chosen, ask if you want to load this driver")
|
|
|
|
the selected configuration can be determined in AUTOEXEC.BAT in the
|
|
environment variable CONFIG like
|
|
|
|
if %CONFIG% == 0 echo configuration 0 selected
|
|
|
|
however, if you have no MENUs in config.sys, then %config% has no value,
|
|
thus resulting in "IF == 0 echo configuration 0 selected."
|
|
(which causes syntax errors as there's nothing on the left side of == )
|
|
|
|
That's why you better use something like:
|
|
if [%config%]==[0] echo configuration 0 selected. -or-
|
|
if "%config%"=="0" echo configuration 0 selected.
|
|
|
|
then if there is no menu you have: "IF []==[0] echo configuration 0 selected."
|
|
(which will of course output nothing)
|
|
|
|
thus my config.sys now looks like
|
|
|
|
|
|
!files=20
|
|
!dos=high,umb
|
|
!break=off
|
|
!buffers=30
|
|
!screen=0x12
|
|
!lastdrive=z
|
|
!shell=\command.com /p /e:512 /MSG
|
|
|
|
MENU
|
|
MENU 0 - SoftIce+HIMEM+Network (default)
|
|
MENU 1 - SoftIce+HIMEM
|
|
MENU 2 - HIMEM+EMM386
|
|
MENU
|
|
MENUDEFAULT=0,0
|
|
|
|
|
|
01? DEVICE=C:\NUMEGA\S-ICE.EXE /TRA 3000 /SYM 400
|
|
012?DEVICE=himem.exe
|
|
01? DEVICE=UMBPCI.SYS
|
|
2? DEVICE=EMM386.EXE NOEMS
|
|
|
|
0?device=c:\ntclient\ifshlp.sys
|
|
|
|
DEVICE=xcdrom.sys /D:MSCD000
|
|
|
|
Full Screen Menus (thanks to Rune Espeseth)
|
|
|
|
Use MENUCOLOR=foreground[,background] to obtain a full screen menu
|
|
where you can use the arrow keys. Example (note that box drawing
|
|
characters are used that look strange in other character sets):
|
|
|
|
REM *** This is the FreeDos Config.sys ***
|
|
REM *** executed before autoexec.bat ***
|
|
|
|
REM *** Set white foreground, red background ***
|
|
menucolor=7,4
|
|
|
|
files=20
|
|
buffers=20
|
|
|
|
REM *** The Menu ***
|
|
MENU
|
|
MENU *-------------------------------------------------------*
|
|
MENU ! My Menu - FreeDOS rules! !
|
|
MENU *-------------------------------------------------------*
|
|
MENU ! !
|
|
MENU ! 1. Test with border !
|
|
MENU ! !
|
|
MENU ! 2. Another test... !
|
|
MENU ! !
|
|
MENU ! 3. Third choice !
|
|
MENU ! !
|
|
MENU ! 4. Fourth choice. !
|
|
MENU ! !
|
|
MENU *-------------------------------------------------------*
|
|
MENU
|
|
|
|
MENUDEFAULT=1,10 ( configuration 1, wait 10 seconds)
|
|
|
|
REM 1st choice
|
|
1?ECHO You selected menu #1
|
|
|
|
REM 2nd choice
|
|
2?ECHO You selected menu #2
|
|
|
|
REM 3rd choice
|
|
3?ECHO You selected menu #3
|
|
|
|
REM 4th choice
|
|
4?ECHO You selected menu #4
|
|
|
|
|
|
2002-11-28 - Tom Ehlert
|
|
2003-07-15 - Bernd Blaauw
|
|
2003-09-18 - Bart Oldeman
|
|
2004-07-24 - Jeremy Davis
|
|
...
|
|
2008-22-01 - Fritz Mueller / Eric Auer
|