MICROSOFT WINDOWS 3.1 & MS-DOS 5 UPGRADE
Windows initialization files contain information that defines your
Windows environment. Windows and Windows applications can use the
information stored in these files to configure themselves to meet your
needs and preferences.
There are two standard Windows initialization files:
- WIN.INI, which primarily contains settings that Windows maintains to
customize your Windows environment according to your preferences.
- SYSTEM.INI, which primarily contains settings that customize Windows
to meet your system's hardware needs.
This document describes only a few of the settings in the SYSTEM.INI
file. You can get a more complete listing of the SYSTEM.INI settings
by purchasing the Windows Resource Kit for the Microsoft Windows
Operating System Version 3.1. The Resource Kit provides complete
technical information about Windows version 3.1 for the support
professional. It includes a technical reference manual and a disk
containing helpful utilities, system resource viewers, drivers, and
To order the Windows Resource Kit within the United States, dial:
To order outside of the United States, dial the phone number for your
area. You can find this number on the International Subsidiary card.
Format of the SYSTEM.INI File
The SYSTEM.INI file contains several sections, each of which consists
of a group of related settings. The sections and settings are listed
in the SYSTEM.INI file in the following format:
In this example, [section name] is the name of a section. The
enclosing brackets ([ ]) are required, and the left bracket must be in
the leftmost column on the screen.
The keyname=value statement defines the value of each setting. A
keyname is the name of a setting. It can consist of any combination of
letters and digits in uppercase or lowercase, and it must be followed
immediately by an equal sign (=). The value of the setting can be an
integer, a Boolean value, a string, or a quoted string, depending on
the setting. There are multiple settings in most sections.
You can include comments in initialization files. You must begin each
line of a comment with a semicolon (;).
How to Read the Listings in This Document
In this document, settings in SYSTEM.INI are listed alphabetically
within sections. However, the settings do not appear alphabetically in
the SYSTEM.INI file. To change a setting, you need to search for it in
the appropriate section.
The syntax, default value, and purpose appear in the following format.
Default: The Windows default value for this setting.
Purpose: A brief description of the function of the setting.
<value-type> indicates whether the value should be an integer, a
letter, a range of numbers, a Boolean value, or something else. If you
want to enable a Boolean setting, you can set the value to: True, Yes,
On, or 1. If you want to disable the Boolean setting, you can set the
value to: False, No, Off, or 0.
When the Setup program creates the SYSTEM.INI file, it assigns default
values to many of the settings. Other settings have values that
correspond to the type of hardware you are using.
Some settings listed in this document do not normally appear in your
SYSTEM.INI file. Most of these settings have a built-in default value
that is present whether or not the setting appears in SYSTEM.INI. You
might need to change one or more of these values to improve the
performance of Windows or applications with your system.
To change the values of the settings described in this document, open
the SYSTEM.INI file and edit it by using a text editor, such as
Windows Notepad. Do not use a formatting editor, such as a word
processor in document mode; it can corrupt your SYSTEM.INI file. For
more information on how to use Notepad, see Chapter 12, "Additional
Accessories," in the Microsoft Windows User's Guide.
Any changes you make to SYSTEM.INI settings do not take effect until
you restart Windows.
Caution: Do not change any settings that are not described in this
document. If you need to change additional settings, refer to the
Windows Resource Kit for the Microsoft Windows Operating System
Version 3.1. Always back up your SYSTEM.INI file before you change any
of its settings. That way, you can restore the original file if you
make incorrect changes. Be careful when making changes to the
SYSTEM.INI file. Your system will not work properly
if you edit this file incorrectly.
[boot] Section Settings
All settings in this section, except for CachedFileHandles, are
required. If you modify or delete one of these settings, Windows might
not work properly. There are no specific default values for these
settings; Setup assigns values based on your system configuration.
If you want to run a different application when you start Windows,
change the following setting.
Default: None (Setup initializes this value as PROGMAN.EXE.)
Purpose: Specifies the Windows application that runs when you start
Windows. Unless you change this setting, Program Manager
will run when you start Windows. For example, if you want to
run File Manager instead of Program Manager when you start
Windows, you could change this setting as follows:
[NonWindowsApp] Section Settings
The [NonWindowsApp] section contains settings that affect the
performance of non-Windows applications.
The [NonWindowsApp] section can contain the following settings.
Default: 0 for MS-DOS versions earlier than 3.2. Otherwise, the
default is the value for the /e: option in the shell=
command line in the CONFIG.SYS file.
Purpose: Specifies the size of the COMMAND.COM environment. Note that
running batch files with the extension .BAT starts
COMMAND.COM, so this setting also applies to batch files.
The value for this setting must be either 0 or between 160
and 32768. A value of 0 disables this setting. If the value
is too small or too large, it will be rounded up to 160 or
down to 32768. If the value is less than the current size of
the actual environment, this setting will be disabled, as if
it were set to 0. If you have specified the environment size
in a PIF file for COMMAND.COM, the PIF-file setting
overrides this setting.
Purpose: When this setting is disabled, the position and fonts used
by a non-Windows application are saved in the DOSAPP.INI
file when you quit the application. If this setting is
enabled, the position and fonts used by a non-Windows
application whose settings have not been previously saved in
the DOSAPP.INI file will not be saved. If enabled, the
setting can be overridden for each non-Windows application
by selecting the Save Settings On Exit check box in the Font
dialog box in the application.
Default: 1 on systems that use Windows version 3.1 grabbers. 0 on
systems that use Windows version 3.0 grabbers.
Purpose: Provides the ability to change fonts when running a non-
Windows application in a window on a system that uses version
3.0 of the grabbers (usually 3.0 display drivers). Windows
version 3.1 video grabbers (used in 3.1 display drivers)
include built-in support for changing fonts when running a
non-Windows application in a window. If you are using a 3.0
grabber that has not been updated to include the ability to
change fonts and you want to use this feature, enable this
setting. However, with this setting enabled, your screen
may lose characters and the cursor may change size and
Default: DOSEDIT, CED
Purpose: Specifies which terminate-and-stay-resident (TSR) programs
work properly if they are copied to each instance of a
virtual machine. When you start Windows, it detects any TSR
programs that are currently running. If the TSR is on the
LocalTSRs list, Windows copies the TSR to each virtual
machine you run. Many TSRs will not run properly if they are
added to this list. Make sure your TSR is fully compatible
with Windows and can be copied to a virtual machine before
adding it to the list.
Default: 1 if an MS-DOS mouse driver is loaded that has the extension
.COM or .SYS and supports the use of a mouse with a non-
Windows application. Otherwise, the default is 0.
Purpose: Specifies whether the mouse is supported when running a non-
Windows application in a window. Mouse support for a non-
Windows application running in a window is automatically
available if you are using a Windows 3.1 version of the
grabbers. If you are using a Windows 3.0 version of the
grabbers and you want mouse support, enable this setting. If
you do not want mouse support, disable this setting.
Default: 0, unless an application is running that supports the use of
the Task Switcher API by the NetBIOS.
Purpose: Specifies whether you can switch away from an application
(running in standard mode) after it has made an asynchronous
network BIOS call. If this setting is disabled, you cannot
switch away. Switching away from some applications that make
these calls might cause your system to fail. Once Windows
detects an asynchronous NetBIOS call, you cannot switch away
from the application, even if no more of these calls are
made. Enable this setting only if you are sure that the
applications you use will not receive network messages while
they are inactive.
Purpose: Specifies the number of lines that will be displayed on the
screen when you run a non-Windows application. An
application that specifies a different screen mode can
override this setting.
Default: The directory that the TEMP environment variable points to;
if there is no TEMP variable, the default is the root
directory of your first hard drive (usually labeled C:). If
you do not have a hard disk, the default is the root
directory of your first floppy disk drive (usually labeled
Purpose: Provides the name of the disk drive and directory to which
Windows running in standard mode swaps non-Windows
[standard] Section Settings
The [standard] section contains settings that are specific to running
in standard mode.
The [standard] section can contain the following settings.
Purpose: Enabling this setting causes Windows running in standard mode
to use a faster method of switching from protected to real
mode on many 80286-based computers. When this setting is
enabled, Windows responds quicker to hardware interrupts,
allowing better throughput for interrupt-intensive
applications, such as communications applications. In
addition, you should enable this setting if you are using a
Zenith Z-248 system and are losing characters while typing,
or if you are using an Olivetti M-250-E and lose mouse
Note: This setting has no effect on 80386-based computers. Some early
IBM AT and compatible computers do not have the BIOS support necessary
to use this setting. Enabling this setting on these computers may
cause them to lock up when starting Windows.
Purpose: Specifies the interval of INT28h interrupts, generated when
the system is idle, that are made visible (or reflected) to
software that is loaded before Windows. Windows will reflect
every nth interrupt, where n is the value of this setting.
For example, a value of 1 reflects every INT28h interrupt, a
value of 2 reflects every second INT28h interrupt, and so on.
Increasing this value might improve Windows performance, but
may interfere with some memory-resident programs, such as
network software. Set this value to 0 to prevent any INT28h
interrupts from being reflected. Setting this value too low
(from 1 to 9) might interfere with communications
Purpose: Specifies the size (in kilobytes) of the data-transfer buffer
that Windows running in standard mode allocates in
conventional memory for transferring data over a network. If
an application is not running correctly, your network may
require a larger buffer than the default value. Increasing
this value will decrease the amount of memory available to
applications. If no network software is running, this setting
will be ignored and no memory will be allocated.
[386Enh] Section Settings
The [386Enh] section contains information specific to running Windows
in 386 enhanced mode, including information used for virtual-memory
The [386Enh] section can contain the following settings.
Purpose: If enabled, this setting forces all applications to run in
exclusive full-screen mode, overriding all contrary settings
in the applications' program information files (PIFs).
Enabling this setting might prolong the length of the Windows
session when you are running network and memory-resident
software that is incompatible with Windows.
Purpose: Specifies the amount of time (in milliseconds) to allow a
virtual machine to process a COM interrupt. If, while running
a communications application, you lose keyboard characters on
the screen, you can try increasing this value.
Purpose: If enabled, the Virtual COM Driver (VCD) uses its own copy of
the interrupt handler for the serial communications driver.
This improves performance of your COM ports. Enable this
setting if you are using a Windows version 3.0 serial
communications driver. Disable this setting if you are using
the standard Windows 3.1 serial communications driver.
Purpose: Specifies whether the FIFO buffer of a COM port's 16550
Universal Asynchronous Receiver Transmitter (UART) should be
enabled (True) or disabled (False). If a serial port does not
have a 16550 UART, this setting is ignored.
Note: These values are used by Windows for both standard and 386
Default: True for Micro Channel and EISA machines; False for all other
Purpose: Specifies whether COM interrupt lines are sharable between
multiple serial ports or with other devices. Enable this
setting if your machine uses the same interrupt for COM3 or
COM4 as it does for COM1 or COM2.
Purpose: If this setting is enabled, when you start the MS-DOS prompt
a message box appears with instructions on how to exit and
switch away from the MS-DOS prompt. Disable this setting if
you do not want to see the message.
Default: See "Purpose" below.
Purpose: Normally, when running in 386 enhanced mode, the memory
between B000:0000 and B7FF:000F is used by the general system
unless a secondary display is detected. Enable this setting
if you are using a VGA-based color display and want
EMM386.EXE to include this address space as an upper memory
block (UMB). In addition to enabling this setting, you must
include the i= option in the device=EMM386.EXE command line
in your CONFIG.SYS file as follows:
If this setting is disabled, the address range is available on EGA
systems, but not on VGA systems, because the VGA display device
supports monochrome modes, which use this address space.
Purpose: Specifies a range of memory that Windows will not scan to
find unused address space. This has the side effect of
turning off the RAM and ROM search code for the range. The
range (two paragraph values separated by a hyphen) must be
between A000 and EFFF. This scanning can interfere with some
adapters that use the same memory area. The starting value is
rounded down and the ending value is rounded up to a multiple
of 16K. For example, you could set EMMExclude=C800-CFFF to
prevent Windows from scanning the addresses C800:0000 through
CFFF:000F. You can specify more than one range by including
more than one EMMExclude line.
Purpose: Specifies a range of memory that Windows will treat as unused
address space regardless of what may be there. EMMInclude
takes precedence over EMMExclude if you specify ranges that
overlap. The range (two values separated by a hyphen) must be
between A000 and EFFF. The starting value is rounded down and
the ending value is rounded up to a multiple of 16K. For
example, you could set EMMInclude=C800-CFFF to ensure that
Windows can use the addresses C800:0000 through CFFF:000F.
You may specify more than one range by including more than
one EMMInclude line.
Purpose: Specifies the starting paragraph where the 64K page frame
will begin when Windows (running in 386 enhanced mode) cannot
find a suitable page frame. Allows an EMM page frame in an
area containing some unused RAM or ROM. For example, you
could set EMMPageFrame=C400 to start the page frame at
Purpose: Specifies the total amount of memory available for mapping as
expanded memory. The default value allocates the maximum
possible amount of system memory as expanded memory. Specify
a value for this setting if you run an application that
allocates all of the available expanded memory. If this is
the case, you cannot create new virtual machines. If this
value is zero, no expanded memory is allocated, but the EMM
driver will load. To disable EMM and prevent the EMM driver
from loading, use the NoEMMDriver setting.
Default: Off in 386 enhanced mode; not supported in standard mode.
Purpose: Indicates whether File Manager automatically receives
messages anytime a non-Windows application creates, renames,
or deletes a file. If this setting is disabled, a virtual
machine can run exclusively, even if it modifies files.
Enabling this setting can slow down system performance
Purpose: If enabled, prevents Windows from running other applications
when memory-resident software has the InDOS flag set.
Enabling this setting is necessary if the memory-resident
software needs to be in a critical section to do operations
off an INT21 hook, but will slow down system performance
Purpose: Specifies whether a critical section is needed to handle
INT28h interrupts used by memory-resident software. Some
networks do internal task switching on INT28h interrupts.
These interrupts might lock up some network software,
indicating the need for an INT28h critical section. If you
are not using such software, you might improve Windows task
switching by disabling this setting.
Purpose: Specifies whether you can press CTRL+ALT+DEL to quit
applications that cause an unrecoverable error in 386
enhanced mode. If this setting is enabled, you can quit the
applications without restarting Windows. If this setting is
disabled, pressing CTRL+ALT+DEL will restart your entire
Purpose: Specifies the maximum number of COM ports supported in 386
enhanced mode. Change this value if you have more than four
COM ports installed in your computer.
Purpose: If this setting is enabled, Windows attempts to save a
failing NetBIOS request. When an application issues an
asynchronous NetBIOS request, Windows attempts to allocate
space in its global network buffer to receive the data. If
there is insufficient space in the global buffer, Windows
typically fails the NetBIOS request. If this setting is
enabled, Windows attempts to save such a request by
allocating a buffer in local memory and preventing any other
virtual machines from running until the data is received or
the timeout period (specified by the NetAsynchTimeout
Purpose: Specifies the timeout period (in seconds) when Windows will
enter a critical section in order to service an asynchronous
NetBIOS request. It is used only when the NetAsynchFallback
setting is enabled. This value can include a decimal (such as
Default: 32 on Micro Channel machines (IBM PS/2 or compatible); 0 on
non-Micro Channel machines (IBM PC/AT or compatible).
Purpose: Specifies the DMA buffer size (in kilobytes) for NetBIOS
transport software if a network has been installed. In this
case, the buffer size is the larger of this value or the
value of DMABufferSize.
Purpose: Specifies the size (in kilobytes) of the data-transfer
buffers in conventional memory that Windows allocates for
transferring data over a network when running in 386 enhanced
mode. All values are rounded up to the nearest 4K.
Default: None (Setup assigns an appropriate value based on your system
Purpose: Specifies the type of network you are using with Windows in
386 enhanced mode.
Purpose: Specifies the amount of additional memory, in 16-byte
increments, that Windows should reserve in each successive
virtual machine when the UniqueDOSPSP setting is enabled. The
setting that works best for your machine might vary depending
on your memory configuration and the applications you are
running. Valid values are 2 through 64. See the UniqueDosPSP
setting for more information.
Purpose: Indicates whether Windows should consume or reflect DOS INT
2A signals. The default means Windows will consume these
signals and therefore run more efficiently. Enable this
setting if you are running memory-resident software that
relies on detecting INT2A messages.
Purpose: If this setting is enabled, Windows periodically synchronizes
its time with the computer's CMOS clock. If this setting is
disabled, Windows usually maintains the correct time, unless
TrapTimerPorts is disabled and you are running applications
that can cause the system time to run faster or slower than
the actual time. This setting is related to the
Purpose: Instructs Windows to go into a critical section around all
timer interrupt code and specifies a timeout period (in
milliseconds). Specifying a positive value causes only one
virtual machine at a time to receive timer interrupts. Some
networks and other global memory-resident software may fail
unless this setting is used. However, using this setting
slows down performance and can make the system seem to stop
for short periods of time.
Purpose: Specifies whether Windows should trap read and write
operations to the system timer ports that are performed by
applications. If this setting is disabled, Windows will not
trap these operations, allowing applications that frequently
read or write to the timer to run faster. However, this may
interfere with ability of Windows to keep accurate system
time. If this setting is disabled, Windows can usually detect
when an application has changed the timer interrupt interval
and then make any adjustments to the time. If your system's
time appears to be running fast or slow, enable this setting.
If you do not want to enable this setting, enable the
SyncTime setting. This causes Windows to check the time
periodically and then make any necessary adjustments.
Default: True if you are running a network based on Microsoft Network
or LAN Manager. See the NETWORKS.WRI online document to find
out whether the network you are running is one of these.
False for all other networks.
Purpose: If this setting is enabled, Windows starts every application
at a unique address (PSP). Each time Windows creates a new
virtual machine to start a new application, Windows reserves
a unique amount of memory (i bytes) below the application.
For example, if the first application is loaded ataddress M,
the second application is loaded at address M+i, the third at
M+2i, and so on. The amount of memory (i) is determined by
the PSPIncrement setting. These settings ensure that
applications in different virtual machines all start at
different addresses. Some networks use applications' load
addresses to identify the different processes that are using
the network. Disabling this setting on such networks might
cause one application to fail when you quit another, because
the network interprets them as the same application. When
this setting is enabled, slightly less memory is available
for non-Windows applications.
Default: On for AT-compatible computers; Off for all other computers.
Purpose: If enabled, Windows in 386 enhanced mode can terminate
interrupts from the hard disk controller, bypassing the ROM
routine that handles these interrupts. Some hard disk drives
might require this setting to be disabled in order for
interrupts to be processed correctly. If this setting is
disabled, the ROM routine handles the interrupts, which slows
down system performance.