-----------------------------------------
    Microsoft Windows 98 Second Edition
     README for MS-DOS Device Drivers
              April 1999            
-----------------------------------------

 (c) Copyright Microsoft Corporation, 1999


This document provides complementary or late-breaking 
information to supplement the Microsoft Windows 98 
Second Edition 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 Second Edition 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 Second 
Edition 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 Second 
Edition 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 Second 
Edition 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 
    reserved for buffered direct memory access (DMA). 
    Discounting floppy disk DMA, this value should reflect 
    the largest DMA transfer that will occur while EMM386 
    is active. Valid values for nnn are in the range 
    16 through 256. The default value is 32.

RAM=mmmm-nnnn
    Specifies a range of segment addresses to be used 
    for UMBs; also enables EMS support. If you do 
    not specify a range, EMM386 uses all available adapter 
    space to create UMBs and a page frame for EMS.

NOEMS
    Provides access to the upper memory area but 
    prevents access to expanded memory.

NOVCPI
    Disables support for VCPI programs. This 
    switch must be used with the NOEMS switch. 
    If you specify the NOVCPI switch without specifying
    the NOEMS switch, EMM386 does not disable 
    VCPI support. If you specify both switches, 
    EMM386 disregards the MEMORY parameter and the 
    MIN switch. Disabling support for VCPI programs 
    reduces the amount of extended memory allocated.

HIGHSCAN
    Specifies that EMM386 use an additional check 
    to determine the availability of upper memory 
    for use as UMBs or EMS windows. On some
    computers, specifying this switch may have no 
    effect or might cause EMM386 to identify upper memory 
    areas as available when they are not. As a
    result, your computer may stop responding.

VERBOSE
    Directs EMM386 to display status and error 
    messages while loading. By default, EMM386 displays 
    messages only if it encounters an error condition. 
    You can abbreviate VERBOSE as V. (To display status 
    messages without adding the VERBOSE switch, press 
    and hold the ALT key while EMM386 starts and loads.)

WIN=mmmm-nnnn
    Reserves a specified range of segment addresses 
    for Windows instead of for EMM386. 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 
    WIN switch if the two ranges overlap. The WIN 
    switch takes precedence over the RAM, ROM, and I
    switches if their ranges overlap.

[NOHI]
    Prevents EMM386 from loading into the upper 
    memory area. Normally, a portion of EMM386 is 
    loaded into upper memory. Specifying this switch
    decreases available conventional memory and increases 
    the upper memory area available for UMBs.

[ROM=mmmm-nnnn]
    Specifies a range of segment addresses that 
    EMM386 uses for shadow RAM--random-access memory 
    used for read-only memory (ROM). Valid values
    for mmmm and nnnn are in the range A000h through 
    FFFFh and are rounded down to the nearest 4K 
    boundary. Specifying this switch may speed up your 
    system if it does not already have shadow RAM.

[NOMOVEXBDA]
    Prevents EMM386 from moving the extended BIOS data 
    from conventional memory to upper memory.

[ALTBOOT]
    Specifies that EMM386 use an alternate handler to 
    restart your computer when you press CTRL+ALT+DEL. 
    Use this switch only if your computer stops responding 
    or exhibits other unusual behavior when EMM386 is loaded 
    and you press CTRL+ALT+DEL.

[NOBACKFILL]
    When EMM386 is configured to provide upper memory 
    blocks (by the NOEMS or RAM switches), EMM386 
    will also automatically backfill less than 640K of 
    conventional memory to bring total conventional memory 
    up to 640K. However, because Windows does not support 
    backfilled conventional memory, use the NOBACKFILL 
    switch if your computer has less than 640 KB of 
    conventional memory.


HIMEM.SYS
=========

HIMEM is an extended-memory manager--a program 
that coordinates the use of your computer's extended 
memory, including the high memory area (HMA), so
that no two programs or device drivers use the same 
memory at the same time. Windows 98 needs Himem.sys to
start Windows. If the Config.sys file is not present, 
Himem.sys loads the file silently. Himem.sys also provides 
access to upper memory (above 640K).

Install HIMEM by adding a DEVICE command for 
HIMEM.SYS to your CONFIG.SYS file. The HIMEM.SYS 
command line must appear before any commands that 
start programs or device drivers that use extended 
memory; for example, the Himem.sys command line 
must come before the EMM386.exe command line.

Syntax

    DEVICE=[drive:][path]HIMEM.SYS [/A20CONTROL:ON|OFF] 
               [/CPUCLOCK:ON|OFF]
    [/EISA] [/HMAMIN=m] [/INT15=xxxx] [/MACHINE:xxxx] 
               [/NOABOVE16] [/NOEISA]
    [/NUMHANDLES=n] [/SHADOWRAM:ON|OFF] [/TESTMEM:ON|OFF] 
               [/VERBOSE] [/X]

In most cases, you won't need to specify command-line 
options. The default values for Himem.sys are designed 
to work with most hardware.

Parameter

[drive:][path]
    Specifies the location of the Himem.sys file. Himem.sys 
    should always be located on the same drive that contains 
    your MS-DOS files. If the Himem.sys file is in the root 
    directory of your startup drive, you don't need to include 
    a path. However, you must always include the complete
    file name (Himem.sys).

Switches

/A20CONTROL:ON|OFF
    Specifies whether HIMEM is to take control of the 
    A20 line even if A20 was on when HIMEM was loaded. The 
    A20 handler gives your computer access to the HMA. If 
    you specify /A20CONTROL:OFF, HIMEM takes control of the
    A20 line only if A20 was off when HIMEM was loaded. The 
    default setting is /A20CONTROL:ON.

/CPUCLOCK:ON|OFF
    Specifies whether HIMEM is to affect the clock speed 
    of your computer. If your computer clock speed changes 
    when you install HIMEM, specifying /CPUCLOCK:ON may correct 
    the problem; however, enabling this option slows down 
    HIMEM. The default setting is /CPUCLOCK:OFF.

/EISA
    Specifies that HIMEM should allocate all available 
    extended memory. This switch is necessary only on an 
    EISA (Extended Industry Standard Architecture) computer 
    with more than 16 MB of memory; on other computers, 
    HIMEM automatically allocates all available extended 
    memory.

/HMAMIN=m
    Specifies how many kilobytes of memory a program must 
    require for HIMEM to give that program use of the HMA. 
    Only one program can use the HMA at a time; HIMEM allocates 
    the HMA to the first program that meets the memory-use 
    requirements set by this option. You can specify a value 
    from 0 to 63.

    Set /HMAMIN to the amount of memory required by the 
    program that uses the most HMA memory.

    The /HMAMIN option is not required; the default value is 
    0. Omitting this option (or setting it to 0) specifies 
    that HIMEM allocate the HMA to the first program that 
    requests it, regardless of the amount of the HMA the program 
    is going to use.

    The /HMAMIN option has no effect when Windows is running in 
    386 Enhanced mode.


/INT15=xxxx
    Allocates the amount of extended memory (in kilobytes) to 
    be reserved for the Interrupt 15h interface. Some older 
    programs use the Interrupt 15h interface to allocate extended 
    memory rather than using the XMS (eXtended Memory 
    Specification) method provided by HIMEM. If you use these 
    programs, you can ensure that enough memory is available to
    them by setting xxxx to 64K larger than the amount 
    required by the program.

    You can specify a value from 64 to 65535; however, you 
    cannot specify more memory than your system has available. 
    If you specify a value less than 64, the value becomes 0. 
    The default value is 0.

/MACHINE:xxxx
    Specifies what type of computer you are using. Usually, 
    HIMEM can detect your computer type successfully; however, 
    there are a few computers that HIMEM cannot detect. On 
    such systems, HIMEM uses the default system type (IBM AT 
    or compatible). Include the /MACHINE option if your 
    computer is a type that HIMEM cannot detect or if HIMEM 
    does not work correctly on your system when you specify
    the default system type.

    Currently, systems that require this option include Acer 
    1100, Wyse, and IBM 7552.

    The value for xxxx can be any of the codes or their equivalent 
    numbers listed in the following table.

Code         Number  Computer type
-----------------------------------------------------

at           1       IBM AT or 100% compatible

ps2          2       IBM PS/2

ptlcascade   3       Phoenix Cascade BIOS

hpvectra     4       HP Vectra (A & A+)

att6300plus  5       AT&T 6300 Plus

acer1100     6       Acer 1100

toshiba      7       Toshiba 1600 & 1200XE

wyse         8       Wyse 12.5 Mhz 286

tulip        9       Tulip SX

zenith       10      Zenith ZBIOS

at1          11      IBM PC/AT (alternative delay)

at2          12      IBM PC/AT (alternative delay)

css          12      CSS Labs

at3          13      IBM PC/AT (alternative delay)

philips      13      Philips

fasthp       14      HP Vectra

ibm7552      15      IBM 7552 Industrial Computer

bullmicral   16      Bull Micral 60

dell         17      Dell XBIOS


/NOABOVE16
    Specifies not to use INT 15h (ax==E801h) Compaq Bigmem 
    support to scan for extended memory.

/NOEISA
    Specifies that HIMEM should not do EISA scanning for extended 
    memory.

/NUMHANDLES=n
    Specifies the maximum number of extended-memory-block (EMB) 
    handles that can be used simultaneously. You can specify a 
    value from 1 to 128; the default value is 32. Each additional 
    handle requires an additional 6 bytes of memory.

    The /NUMHANDLES option has no effect when Windows is running 
    in 386 Enhanced mode.

/SHADOWRAM:ON|OFF
    Specifies whether to disable shadow RAM (SHADOWRAM:OFF) or 
    to leave the ROM code running from RAM (SHADOWRAM:ON).

    Some computers make ROM code run faster by "shadowing" it 
    in RAM--that is, by, at startup, copying the ROM code into 
    faster RAM memory, which uses some extended memory. On 
    computers that use shadow RAM and have less than 2 MB of 
    RAM, HIMEM usually attempts to disable shadow RAM to 
    recover additional extended memory for Windows to use. 
    HIMEM can disable shadow RAM only on certain types of 
    systems. When HIMEM disables shadow RAM, the ROM code runs 
    in the slower ROM instead of in RAM; therefore, your computer 
    might run slightly slower than it did before.

/TESTMEM:ON|OFF
    Determines whether HIMEM performs a memory test when your 
    computer starts. By default, HIMEM tests the reliability 
    of your computer's extended memory each time your computer 
    starts. This test can identify memory that is no longer 
    reliable, and unreliable memory can cause system instability 
    or loss of data. HIMEM's memory test is more thorough than
    the standard power-up memory test performed by most computers. 
    To prevent HIMEM from performing the memory test, specify 
    /TESTMEM:OFF. Disabling the memory test will shorten the 
    startup process. The default setting is /TESTMEM:ON.

/VERBOSE
    Directs HIMEM to display status and error messages while 
    it is loading. By default, HIMEM does not display any 
    messages unless it encounters an error. You can abbreviate 
    /VERBOSE as /V. (To display status messages without adding 
    the /VERBOSE switch, press and hold the ALT key while HIMEM 
    starts and loads.)

/X
    Specifies not to use INT 15h (ax==E820h), the latest 
    extended memory support API.


RAMDRIVE.SYS
============

Uses part of your computer's random-access memory (RAM) to 
simulate a hard disk drive. This device driver must be loaded 
by a DEVICE or DEVICEHIGH command in your Config.sys file.

RAM drives are much faster than hard disk drives because your 
computer can read information faster from memory than from a 
hard disk. A RAM drive appears to be a normal hard disk drive; 
you can use it just as you would any hard disk drive. The most 
important difference between a real disk drive and a RAM drive 
is that because it exists only in memory, information on a RAM
drive is lost when you turn off or restart your computer. 

You can set up as many RAM drives as you want, up to the amount 
of memory your computer has. To do this, add one Ramdrive.sys 
line to your Config.sys file for each additional RAM drive you 
want.

Syntax

    DEVICE=[drive:][path]RAMDRIVE.SYS [DiskSize SectorSize 
              [NumEntries]]] [/E | /A]

Parameters

[drive:][path]
    Specifies the location of the RAMDRIVE.SYS file.

DiskSize
    Specifies how many kilobytes of memory you want to use 
    for the RAM drive. For example, to create a 640K RAM 
    drive, specify 640. If you don't specify an amount, 
    RAMDrive will create a 64K RAM drive. You can
    specify a value from 4 to 32767. However, you cannot 
    specify more memory than your system has available.

SectorSize
    Specifies the disk sector size in bytes. The size can be 
    128, 256, or 512 bytes. (If you include a SectorSize value, 
    you must also include a value for DiskSize.)

    Generally, you should use the default sector size of 512 
    bytes.

NumEntries
    Limits the number of files and directories you can 
    create in the RAM drive's root directory. The limit can 
    be from 2 to 1024 entries; the limit you specify is rounded 
    up to the nearest sector size boundary. If you do not 
    specify a limit, you can create up to 64 entries in the 
    RAM drive's root directory. (If you include a value for 
    NumEntries, you must also include values for DiskSize 
    and SectorSize.)

    If there is not enough memory to create the RAM drive as 
    specified, RAMDrive tries to create it with a limit of 16 
    directory entries. This may result in a RAM drive with a 
    different limit from the one you specified.

Switches

/E
    Creates the RAM drive in extended memory.

    For RAMDrive to use extended memory, your system must be 
    configured so that it provides extended memory, and a DEVICE 
    command for the extended-memory manager (such as Himem.sys) 
    must appear in your Config.sys file before the DEVICE command 
    for Ramdrive.sys. It is best to create a RAM drive 
    in extended memory if your system has extended memory.

/A
    Creates the RAM drive in expanded memory.

    For RAMDrive to use expanded memory, your system must be 
    configured so that it provides expanded memory, and the 
    DEVICE command for the expanded-memory manager (such as 
    EMM386, 386MAX, CEMM, or QEMM) must appear in your 
    Config.sys file before DEVICE command for Ramdrive.sys.


SETVER.EXE
==========
Loads the MS-DOS version table into memory. This device driver 
must be loaded by a DEVICE or DEVICEHIGH command in your 
Config.sys file.

SETVER.EXE loads into memory the MS-DOS version table, which 
lists names of programs and the number of the MS-DOS version 
with which each program is designed to run.

Syntax

    DEVICE=[drive:][path]SETVER.EXE

Parameters

[drive:][path]
    Specifies the location of the Setver.exe file.
