-----------------------------------------
Microsoft Windows 98 README for
MS-DOS Device Drivers
April 1998
-----------------------------------------
(c) Copyright Microsoft Corporation, 1998
This document provides complementary or late-breaking
information to supplement the Microsoft Windows 98
documentation.
------------------------
How to Use This Document
------------------------
To view Msdosdrv.txt on-screen in Notepad, maximize
the Notepad window.
To print Msdosdrv.txt, open it in Notepad or another
word processor, and then on the File menu, click Print.
In syntax lines, except where noted, lowercase text
signifies replaceable parameters and uppercase text
signifies text that must be typed as it appears.
NOTE: The Config.txt file contains more Help for MS-DOS
commands. In addition, you can type the name of the
command at the command prompt, followed by a slash and
question mark (/?). For example: CHKDSK /?
If you have the Windows 98 CD, you can get additional
help on MS-DOS commands, including syntax and examples.
You can load the MS-DOS 6.0 help file by browsing the
\tools\oldmsdos folder, and then clicking Help.
--------
CONTENTS
--------
ANSI.SYS
DBLBUFF.SYS - DOUBLE BUFFERING
DISPLAY.SYS
DRVSPACE.SYS, DBLSPACE.SYS
EMM386.EXE
HIMEM.SYS
RAMDRIVE.SYS
SETVER.EXE
------------------------------------
ANSI.SYS
=========
NOTE: In this section, uppercase letters in syntax
and ANSI escape sequences indicate text you must type
exactly as it appears.
ANSI.SYS defines functions that change display graphics,
controls cursor movement, and reassigns keys. The
ANSI.SYS device driver supports ANSI terminal emulation
of escape sequences to control your system's screen and
keyboard.
This device driver must be loaded by a DEVICE or
DEVICEHIGH command in your CONFIG.SYS file.
Syntax
DEVICE=[drive:][path]ANSI.SYS [/X] [/K] [/R]
Parameter
[drive:][path]
Specifies the location of the ANSI.SYS file.
Switches
/X
Remaps extended keys independently on 101-key
keyboards.
/K
Causes ANSI.SYS to treat a 101-key keyboard like
an 84-key keyboard. It is equivalent to the command
SWITCHES=/K. If you usually use the SWITCHES=/K
command, you will need to use the /K switch with
ANSI.SYS.
/R
Adjusts line scrolling to improve readability when
ANSI.SYS is used with screen-reading programs (which
make computers more accessible to people with
disabilities).
Parameters used in ANSI escape sequences:
Pn
Numeric parameter. Specifies a decimal number.
Ps
Selective parameter. Specifies a decimal number
that you use to select a function. You can specify
more than one function by separating the parameters
with semicolons (;).
PL
Line parameter. Specifies a decimal number that
represents one of the lines on your screen or on
another device.
Pc
Column parameter. Specifies a decimal number that
represents one of the columns on your screen or on
another device.
ANSI escape sequences for cursor movement, graphics, and
keyboard settings:
In the following list of ANSI escape sequences, the
abbreviation ESC represents the ASCII escape character
27 (1Bh), which appears at the beginning of each escape
sequence.
ESC[PL;PcH
Cursor Position: Moves the cursor to the specified
position (coordinates). If you do not specify a
position, the cursor moves to the home position--the
upper-left corner of the screen (line 0, column 0).
This escape sequence works the same way as the following
Cursor Position escape sequence.
ESC[PL;Pcf
Cursor Position: Works the same way as the preceding
Cursor Position escape sequence.
ESC[PnA
Cursor Up: Moves the cursor up by the specified number
of lines without changing columns. If the cursor is
already on the top line, ANSI.SYS ignores this sequence.
ESC[PnB
Cursor Down: Moves the cursor down by the specified
number of lines without changing columns. If the cursor
is already on the bottom line, ANSI.SYS ignores this
sequence.
ESC[PnC
Cursor Forward: Moves the cursor forward by the
specified number of columns without changing lines.
If the cursor is already in the far right column,
ANSI.SYS ignores this sequence.
ESC[PnD
Cursor Backward: Moves the cursor backward by the
specified number of columns without changing lines. If
the cursor is already in the far left column, ANSI.SYS
ignores this sequence.
ESC[s
Save Cursor Position: Saves the current cursor position.
You can move the cursor to the saved cursor position by
using the Restore Cursor Position sequence.
ESC[u
Restore Cursor Position: Returns the cursor to the
position stored by the Save Cursor Position sequence.
ESC[2J
Erase Display: Clears the screen and moves the cursor
to the home position (line 0, column 0).
ESC[K
Erase Line: Clears all characters from the cursor
position to the end of the line (including the character
located at the cursor position).
ESC[Ps;...;Psm
Set Graphics Mode: Calls the graphics functions specified
by the following values. These specified functions remain
active until the next occurrence of this escape sequence.
Graphics mode changes the colors and attributes of text
(such as bold and underline) displayed on the screen.
Text attributes
Value Function
------------------------------------
0 All attributes off
1 Bold on
4 Underscore (on monochrome display adapter only)
5 Blink on
7 Reverse video on
8 Concealed on
Foreground colors
Value Function
------------------------------------
30 Black
31 Red
32 Green
33 Yellow
34 Blue
35 Magenta
36 Cyan
37 White
Background colors
Value Function
------------------------------------
40 Black
41 Red
42 Green
43 Yellow
44 Blue
45 Magenta
46 Cyan
47 White
Parameters 30 through 47 meet the ISO 6429 standard.
ESC[=psh
Set Mode: Changes the screen width or type to the
mode specified by one of the following values:
0 40 x 148 x 25 monochrome (text)
1 40 x 148 x 25 color (text)
2 80 x 148 x 25 monochrome (text)
3 80 x 148 x 25 color (text)
4 320 x 148 x 200 4-color (graphics)
5 320 x 148 x 200 monochrome (graphics)
6 640 x 148 x 200 monochrome (graphics)
7 Enables line wrapping
13 320 x 148 x 200 color (graphics)
14 640 x 148 x 200 color (16-color graphics)
15 640 x 148 x 350 monochrome (2-color graphics)
16 640 x 148 x 350 color (16-color graphics)
17 640 x 148 x 480 monochrome (2-color graphics)
18 640 x 148 x 480 color (16-color graphics)
19 320 x 148 x 200 color (256-color graphics)
ESC[=Psl
Reset Mode: Resets the mode by using the same values
that Set Mode uses, except for 7, which disables line
wrapping.
NOTE: The last character in this escape sequence is
a lowercase L.
ESC[code;string;...p
Set Keyboard Strings: Redefines a keyboard key to a
specified string. The parameters for this escape sequence
are defined as follows:
- Code is one or more of the values listed in the
following table. These values represent keyboard keys
and key combinations. When you use these values in a
command, you must type the semicolons (;) shown in
this table in addition to the semicolons required by
the escape sequence. The codes in parentheses are not
available on some keyboards. ANSI.SYS will not interpret
the codes in parentheses for those keyboards unless you
specify the /X switch in the DEVICE command for ANSI.SYS.
- String is either the ASCII code for a single character
or a string contained in quotation marks ("). For example,
both 65 and "A" can be used to represent an uppercase A.
IMPORTANT: Some of the values in the following table are not
valid for all computers. Check your computer
documentation for values that are different.
Key Code SHIFT+code CTRL+code ALT+code
------------------------------------------------------------------
F1 0;59 0;84 0;94 0;104
F2 0;60 0;85 0;95 0;105
F3 0;61 0;86 0;96 0;106
F4 0;62 0;87 0;97 0;107
F5 0;63 0;88 0;98 0;108
F6 0;64 0;89 0;99 0;109
F7 0;65 0;90 0;100 0;110
F8 0;66 0;91 0;101 0;111
F9 0;67 0;92 0;102 0;112
F10 0;68 0;93 0;103 0;113
F11 0;133 0;135 0;137 0;139
F12 0;134 0;136 0;138 0;140
HOME (numeric keypad) 0;71 55 0;119 --
UP ARROW (numeric 0;72 56 (0;141) --
keypad)
PAGE UP (numeric 0;73 57 0;132 --
keypad)
LEFT ARROW (numeric 0;75 52 0;115 --
keypad)
RIGHT ARROW (numeric 0;77 54 0;116 --
keypad)
END (numeric keypad) 0;79 49 0;117 --
DOWN ARROW (numeric 0;80 50 (0;145) --
keypad)
PAGE DOWN (numeric 0;81 51 0;118 --
keypad)
INSERT (numeric keypad) 0;82 48 (0;146) --
DELETE (numeric 0;83 46 (0;147) --
keypad)
HOME (224;71) (224;71) (224;119) (224;151)
UP ARROW (224;72) (224;72) (224;141) (224;152)
PAGE UP (224;73) (224;73) (224;132) (224;153)
LEFT ARROW (224;75) (224;75) (224;115) (224;155)
RIGHT ARROW (224;77) (224;77) (224;116) (224;157)
END (224;79) (224;79) (224;117) (224;159)
DOWN ARROW (224;80) (224;80) (224;145) (224;154)
PAGE DOWN (224;81) (224;81) (224;118) (224;161)
INSERT (224;82) (224;82) (224;146) (224;162)
DELETE (224;83) (224;83) (224;147) (224;163)
PRINT SCREEN -- -- 0;114 --
PAUSE/BREAK -- -- 0;0 --
BACKSPACE 8 8 127 (0)
ENTER 13 -- 10 (0
TAB 9 0;15 (0;148) (0;165)
NULL 0;3 -- -- --
A 97 65 1 0;30
B 98 66 2 0;48
C 99 66 3 0;46
D 100 68 4 0;32
E 101 69 5 0;18
F 102 70 6 0;33
G 103 71 7 0;34
H 104 72 8 0;35
I 105 73 9 0;23
J 106 74 10 0;36
K 107 75 11 0;37
L 108 76 12 0;38
M 109 77 13 0;50
N 110 78 14 0;49
O 111 79 15 0;24
P 112 80 16 0;25
Q 113 81 17 0;16
R 114 82 18 0;19
S 115 83 19 0;31
T 116 84 20 0;20
U 117 85 21 0;22
V 118 86 22 0;47
W 119 87 23 0;17
X 120 88 24 0;45
Y 121 89 25 0;21
Z 122 90 26 0;44
1 49 33 -- 0;120
2 50 64 0 0;121
3 51 35 -- 0;122
4 52 36 -- 0;123
5 53 37 -- 0;124
6 54 94 30 0;125
7 55 38 -- 0;126
8 56 42 -- 0;126
9 57 40 -- 0;127
0 48 41 -- 0;129
- 45 95 31 0;130
= 61 43 --- 0;131
[ 91 123 27 0;26
] 93 125 29 0;27
92 124 28 0;43
; 59 58 -- 0;39
' 39 34 -- 0;40
, 44 60 -- 0;51
. 46 62 -- 0;52
/ 47 63 -- 0;53
` 96 126 -- (0;41)
ENTER (numeric keypad) 13 -- 10 (0;166)
/ (numeric keypad) 47 47 (0;142) (0;74)
* (numeric keypad) 42 (0;144) (0;78) --
- (numeric keypad) 45 45 (0;149) (0;164)
+ (numeric keypad) 43 43 (0;150) (0;55)
5 (numeric keypad) (0;76) 53 (0;143) --
DBLBUFF.SYS - DOUBLE BUFFERING
==============================
DBLBUFF.SYS loads the Dblbuff.sys device driver to perform
double-buffering. Double-buffering provides compatibility
for many hard disk controllers during real-mode MS-DOS
booting. Once the 32-bit native Windows 98 drivers are
loaded, the real-mode double buffering is no longer used.
Double buffering does not affect system performance once
32-bit disk drivers are loaded. Although it can add
approximately one-half second to boot time, if your system
has this set, it is probably needed to ensure the data
integrity of your hard disk. Removing this setting when
it is needed can cause data corruption on your disk. If
this is set in your MSDOS.SYS file by Windows 98 setup,
you should not remove it.
If Windows Setup determines that your system may
need double-buffering, it adds a DoubleBuffer=1 entry
to the [Options] section of MSDOS.SYS, so that
DBLBUFF.SYS loads automatically. To manually set up
double-buffering, you can either add the above entry
to MSDOS.SYS or add a DEVICE command in your CONFIG.SYS
file.
Syntax
DEVICE=[drive:][path]DBLBUFF.SYS [/D+]
Parameters
[drive:][path]
Specifies the location of the DBLBUFF.SYS file.
/D+
Instructs DBLBUFF.SYS to double-buffer all
disk I/O all the time. By default, DBLBUFF.SYS
double-buffers only I/O to UMBs and automatically
stops double-buffering if it appears to be unnecessary.
DISPLAY.SYS
===========
DISPLAY.SYS enables the display of international character
sets on EGA, VGA, and LCD monitors. This device driver must
be loaded by a DEVICE or DEVICEHIGH command in your
CONFIG.SYS file.
Syntax
DEVICE=[drive:][path]DISPLAY.SYS CON[:]=(type[,[hwcp][,n]])
DEVICE=[drive:][path]DISPLAY.SYS CON[:]=(type[,[hwcp][,(n,m)]])
Parameters
[drive:][path]
Specifies the location of the DISPLAY.SYS file.
type
Specifies the display adapter in use. Valid values
include EGA and LCD. The EGA value supports both EGA
and VGA display adapters. You can also specify CGA and
MONO as values for type, but they have no effect because
character-set switching is not enabled for these devices.
If you omit the type parameter, DISPLAY.SYS checks the
hardware to determine which display adapter is in use.
hwcp
Specifies the number of the character set that your
hardware supports. The following list shows the character
sets that MS-DOS supports and the country or language
for each:
437 United States
850 Multilingual (Latin I)
852 Slavic (Latin II)
860 Portuguese
863 Canadian-French
865 Nordic
Additional character sets are supported by the EGA2.CPI
and EGA3.CPI files.
n
Specifies the number of character sets the hardware
can support in addition to the primary character set
specified for the hwcp parameter. Valid values for n
are in the range 0 through 6. This value depends on
your hardware. For EGA display adapters, the maximum
value for n is 6; for LCD display adapters, the maximum
value for n is 1.
m
Specifies the number of subfonts the hardware supports
for each code page. The default value is 2 if type is EGA,
and 1 if type is LCD.
DBLSPACE.SYS
============
Determines the final memory location of DBLSPACE.BIN,
the part of MS-DOS that provides access to your
compressed drives.
DBLSPACE.SYS loads the real-mode driver into
upper memory blocks. This action can save up to 100K
of conventional memory when you run Windows 98 in real
mode.
When you start your computer, Windows loads DBLSPACE.BIN
along with other operating system functions, before it
carries out the commands in your Config.sys and
Autoexec.bat files. DBLSPACE.SYS initially loads in
conventional memory because it loads before the device
drivers that provide access to upper memory.
When you use DoubleSpace to create a compressed drive
on your computer, the program adds a command for
DBLSPACE.SYS to your Config.sys file.
In the following syntax, for DBLSPACE type the file name
for the program you choose.
Syntax
DEVICE=[drive:][path]DBLSPACE.SYS /MOVE [/NOHMA] [/LOW]
DEVICEHIGH=[drive:][path]DBLSPACE.SYS /MOVE [/NOHMA] [/LOW]
Switches
/MOVE
Moves DBLSPACE.BIN to its final location in memory.
Initially, DBLSPACE.BIN loads at the top of
conventional memory. After Windows finishes carrying
out the commands in the Config.sys file, it moves
DBLSPACE.BIN to the bottom of conventional memory.
When DBLSPACE.SYS is loaded by the DEVICE command,
Windows moves DBLSPACE.BIN from the top of conventional
memory to the bottom. This move can be useful for avoiding
conflicts with programs that are loaded from the
Config.sys file and require access to the top of
conventional memory.
When DBLSPACE.SYS is loaded by the DEVICEHIGH command,
DBLSPACE.BIN moves to upper memory, if available.
Moving DBLSPACE.BIN to upper memory makes more conventional
memory available.
/NOHMA
Prevents DBLSPACE.SYS from moving a portion of
DBLSPACE.BIN to the high memory area (HMA).
If MS-DOS is loaded into the HMA, DBLSPACE.SYS
moves a portion of DBLSPACE.BIN to the HMA (if
there is enough room in the HMA). Use this switch
if you do not want DBLSPACE.BIN to use the HMA.
/LOW
Prevents DBLSPACE.SYS from loading at the top of
conventional memory. Use this switch if you have
an MS-DOS-based program that does not support
DoubleSpace at the top of conventional memory.
Use of this switch will prevent Windows from reusing
the memory occupied by DBLSPACE.sys.
Parameter
[drive:][path]
Specifies the location of the DBLSPACE.SYS file.
DRVSPACE.SYS
============
Determines the final memory location of DRVSPACE.BIN,
the part of MS-DOS that provides access to your compressed
drives.
DBLSPACE.SYS loads the real-mode driver into
upper memory blocks. This action can save up to 100K
of conventional memory when you run Windows 98 in real
mode.
When you start your computer, Windows loads DRVSPACE.BIN,
along with other operating system functions, before it
carries out the commands in your Config.sys and
Autoexec.bat files. DRVSPACE.BIN initially loads in
conventional memory because it loads before the device
drivers that provide access to upper memory.
When you use DriveSpace to create a compressed drive
on your computer, the program adds a command for
DRVSPACE.SYS to your Config.sys file.
In the following syntax, for DRVSPACE type the
file name for the program you choose.
Syntax
DEVICE=[drive:][path]DRVSPACE.SYS /MOVE [/NOHMA] [/LOW]
DEVICEHIGH=[drive:][path]DRVSPACE.SYS /MOVE [/NOHMA] [/LOW]
Switches
/MOVE
Moves DRVSPACE.BIN to its final location in memory.
Initially, DRVSPACE.BIN loads at the top of
conventional memory. After Windows finishes carrying
out the commands in the Config.sys file, it moves
DRVSPACE.BIN to the bottom of conventional memory.
When DRVSPACE.SYS is loaded by the DEVICE command,
Windows moves DRVSPACE.BIN from the top of conventional
memory to the bottom. This move can be useful for avoiding
conflicts with programs that are loaded from the
Config.sys file and require access to the top of
conventional memory.
When DRVSPACE.SYS is loaded by the DEVICEHIGH command,
DRVSPACE.BIN moves to upper memory, if available.
Moving DRVSPACE.BIN to upper memory makes more conventional
memory available.
/NOHMA
Prevents DRVSPACE.SYS from moving a portion of
DRVSPACE.BIN to the high memory area (HMA).
If MS-DOS is loaded into the HMA, DRVSPACE.SYS
moves a portion of DRVSPACE.BIN to the HMA (if
there is enough room in the HMA). Use this switch
if you do not want DRVSPACE.BIN to use the HMA.
/LOW
Prevents DRVSPACE.SYS from loading at the top of
conventional memory. Use this switch if you have
an MS-DOS-based program that does not support DriveSpace
or DoubleSpace at the top of conventional memory.
Use of this switch will prevent Windows from reusing
the memory occupied by DRVSPACE.sys.
Parameter
[drive:][path]
Specifies the location of the DRVSPACE.SYS file.
EMM386.EXE
==========
EMM386.ext provides access to the upper memory area and
uses extended memory to simulate expanded memory. This
device driver must be loaded by a DEVICE command in
your Config.sys file and can be used only on computers
that have an 80386 or higher processor.
EMM386 also makes it possible to load programs and
device drivers into upper memory blocks (UMBs).
Syntax
DEVICE=[drive:][path]EMM386.EXE [ON|OFF|AUTO] [memory] [MIN=size]
[W=ON|W=OFF] [Mx|FRAME=address|/Pmmmm] [Pn=address] [X=mmmm-nnnn]
[I=mmmm-nnnn] [B=address] [L=minXMS] [A=altregs] [H=handles] [D=nnn]
[RAM=mmmm-nnnn] [NOEMS] [NOVCPI] [HIGHSCAN] [VERBOSE] [WIN=mmmm-nnnn]
[NOHI] [ROM=mmmm-nnnn] [NOMOVEXBDA] [ALTBOOT] [NOBACKFILL]
Parameters
[drive:][path]
Specifies the location of the EMM386.exe file.
[ON|OFF|AUTO]
Activates the EMM386 device driver (if set to ON),
or suspends the EMM386 device driver (if set to OFF),
or places the EMM386 device driver in auto mode (if
set to AUTO). Auto mode enables expanded-memory support
and upper-memory-block support only when a program
calls for it. The default value is ON. Use the EMM386
command to change this value after EMM386 has started.
memory
Specifies the maximum amount of extended memory
(in kilobytes) that you want EMM386 to provide as
expanded/Virtual Control Program Interface (EMS/VCPI)
memory. This amount is in addition to the memory used
for UMBs and EMM386 itself. Values for memory are in
the range 64 through the lesser of either 32768 or
the amount of extended memory available when EMM386
is loaded. The default value is the amount of free
extended memory. If you specify the NOEMS switch, the
default value is 0. EMM386 rounds the value down to
the nearest multiple of 16.
Switches
MIN=size
Specifies the minimum amount of EMS/VCPI memory
(in kilobytes) that EMM386 will provide, if that
amount of memory is available. EMM386 reserves this
amount of extended memory for use as EMS/VCPI memory
when EMM386 is loaded by the DEVICE=EMM386.EXE
command in your Config.sys file. EMM386 may be able
to provide additional EMS/VCPI memory (up to the
amount specified by the MEMORY parameter) if
sufficient XMS memory is available when a program
requests EMS/VCPI memory. Values are in the range 0
through the value specified by the MEMORY parameter.
The default value is 256. If you specify the NOEMS
switch, the default value is 0. If the value of
MIN is greater than the value of MEMORY, EMM386 uses
the value specified by MIN.
W=ON|W=OFF
Enables or disables support for the Weitek co-processor.
The default setting is W=OFF.
Mx
Specifies the address of the page frame. Valid
values for x are in the range 1 through 14. The
following list shows each value and its
associated base address in hexadecimal format:
1 => C000h 8 => DC00h
2 => C400h 9 => E000h
3 => C800h 10 => 8000h
4 => CC00h 11 => 8400h
5 => D000h 12 => 8800h
6 => D400h 13 => 8C00h
7 => D800h 14 => 9000h
Values in the range 10 through 14 should be used
only on computers that have at least 512K of memory.
FRAME=address
Specifies the page-frame segment base directly.
To specify a specific segment-base address for
the page frame, use the FRAME switch and
specify the address you want. Valid values for
address are in the ranges 8000h through 9000h
and C000h through E000h, in increments of 400h. To
provide expanded memory and disable the page frame,
you can specify FRAME=NONE; however, this setting
may cause some programs that require expanded memory
to work incorrectly.
/Pmmmm
Specifies the address of the page frame. Valid
values for mmmm are in the ranges 8000h through
9000h and C000h through E000h, in increments of
400h.
Pn=address
Specifies the segment address of a specific page,
where n is the number of the page you are specifying
and address is the segment address you want. Valid
values for n are in the range 0 through 255. Valid
values for address are in the ranges 8000h through
9C00h and C000h through EC00h, in increments of 400h.
The addresses for pages 0 through 3 must be contiguous
to maintain compatibility with version 3.2 of the
Lotus/Intel/Microsoft Expanded Memory Specification
(LIM EMS). If you use the Mx switch, the FRAME switch,
or the /Pmmmm switch, you cannot specify the addresses
for pages 0 through 3 for the /Pmmmm switch.
X=mmmm-nnnn
Prevents EMM386 from using a particular range of
segment addresses for an EMS page or for UMBs. Valid
values for mmmm and nnnn are in the range A000h
through FFFFh and are rounded down to the nearest
4K boundary. The X switch takes precedence over the
I switch if the two ranges overlap.
I=mmmm-nnnn
Specifies a range of segment addresses to be used
(included) for an EMS page or for UMBs. Valid
values for mmmm and nnnn are in the range A000h
through FFFFh and are rounded down to the nearest
4K boundary. The X switch takes precedence
over the I switch if the two ranges overlap.
B=address
Specifies the lowest segment address available
for EMS "banking" (swapping of 16K pages). Valid
values are in the range 1000h through 4000h. The
default value is 4000h.
l=minXMS
Ensures that the specified amount (in kilobytes)
of extended memory will still be available after
EMM386 is loaded. The default value is 0.
A=altregs
Specifies how many fast alternate register sets
(used for multitasking) you want to allocate to
EMM386. Valid values are in the range 0 through
254. The default value is 7. Every alternate register
set adds about 200 bytes to the size in memory of
EMM386.
H=handles
Specifies how many handles EMM386 can use. Valid
values are in the range 2 through 255. The default
value is 64.
D=nnn
Specifies how many kilobytes of memory should be