# Command: udma2.sys / udma2s.sys

      UDMA2.SYS / UDMA2S.SYS are DOS drivers for UltraDMA hard-disks.
      UDMA2.SYS / UDMA2S.SYS is no longer in use. Use XDMA.SYS instead.
      UDMA2.SYS / UDMA2S.SYS has to be loaded in CONFIG.SYS / FDCONFIG.SYS.
      When FreeDOS is already running, you can load UDMA2.SYS / UDMA2S.SYS
      later with DEVLOAD.

## Syntax:

      DEVICE = [path]UDMA2.SYS [/O] [/L] [/S] [...]
      DEVICE = [path]UDMA2S.SYS [/L] [/S] [...]
      DEVICEHIGH = [path]UDMA2.SYS [/O] [/L] [/S] [...]
      DEVICEHIGH = [path]UDMA2S.SYS [/L] [/S] [...]

#### [Main menu] [top] (Syntax) [Options] [Comments] [Examples] [See also] [File]

## Options:

      /O   For UDMA2 only, enables output overlap. This REQUIRES an XMS
           manager (HIMEMX, etc.) and 128K of XMS memory. If /B is
           also specified, or if XMS is not available, overlap will NOT
           be enabled, as UDMA2 must then use "DMA only" mode.
      /L   Limits DMA to "low memory" below 640K. /L is REQUIRED to use
           the UMBPCI upper-memory driver, or any similar drivers whose
           upper-memory areas do not support DMA. If /L is specified,
           UDMA2 or UDMA2S must reside in LOW memory (as their command-
           list is accessed via DMA), or the driver will ABORT loading!
           /L causes I/O requests past 640K to go through the driver's XMS
           buffer. If /B is specified with /L or if XMS memory is not
           available, such I/O is "passed" to the BIOS for execution.
      /S   For UDMA2, enables the driver local-stack for "DMA only" mode.
           For UDMA2S, enables the local-stack for all cases. NOTE that
           the two drivers handle /S differently! UDMA2S usually does
           not enable a stack (for compatiblity with old versions!) and
           requires /S whenever a stack is wanted. UDMA2 always sets
           a stack (and ignores /S) for normal or output-overlap usage,
           so it requires /S merely for "DMA only" mode. /S is meant
           for systems with one or more user programs which set "short"
           run-time stacks.  /S and /B are independent and both may be
           specified together.
      /B   Causes XMS memory to be IGNORED, for "backward compatibility".
           /B forces UDMA2 or UDMA2S to use "DMA only" mode. Thus, /B
           cancels /O (UDMA2 output overlap is not enabled), causes the
           initialization "read tests" in UDMA2 to be omitted, and also
           affects /L as noted above.
      /Mn  Specifies the MAXIMUM UltraDMA "mode" to be used by all disks,
           where n is a number between 0 and 7, as follows:
             0 = ATA-16, 16 MB/sec.     4 = ATA-66,   66 MB/sec.
             1 = ATA-25, 25 MB/sec.     5 = ATA-100, 100 MB/sec.
             2 = ATA-33, 33 MB/sec.     6 = ATA-133, 133 MB/sec.
             3 = ATA-44, 44 MB/sec.     7 = ATA-166, 166 MB/sec.
           Disks designed to a "mode" LESS than the given value will be
           limited to their own highest "mode". At present, "mode 7"
           ATA-166 is not yet implemented, but any driver CAN handle it
           if UltraDMA disks ever use it.
      /X   For UDMA2 only, disables initialization "read tests". This
           switch is a LAST-chance "scheme" of forcing UDMA2 to load on
           "problem" systems! Any errors detected by the "read tests"
           should be CORRECTED, wherever possible!

#### [Main menu] [top] [Syntax] (Options) [Comments] [Examples] [See also] [File]

## Comments:

      UDMA2.SYS is the most full-featured driver. It offers "output overlap"
      which buffers all output and does NOT await output end, so user work
      may overlap the DMA! Depending on the user's system and software,
      output overlap can yield a significant speed boost. For any output
      error or if a 400-msec timer expires, an error message will display.
      Output overlap must be enabled with a /O in the CONFIG.SYS line that
      loads UDMA2 (see above for switch options).
      UDMA2S.SYS is the PREFERRED "small driver", for systems not using output
      overlap. It omits overlap and initialization "read tests", thus it
      achieves an object-file size of 3072 bytes. All other capabilities
      of the larger UDMA2.SYS (including an 80386 test) are retained.
      UDMA2S.SYS uses the same 640 byte resident "core" as UDMA.SYS or
      UDMAJR.SYS

#### [Main menu] [top] [Syntax] [Options] (Comments) [Examples] [See also] [File]

## Examples:

      In CONFIG.SYS / FDCONFIG.SYS:
        DEVICE=C:\FDDOS\BIN\UDMA2.SYS
        DEVICEHIGH=C:\FDOS\BIN\UDMA2S.SYS

#### [Main menu] [top] [Syntax] [Options] [Comments] (Examples) [See also] [File]

## See also:

      autoexec.bat
      config.sys
      devload
      fdconfig.sys
      himemx
      udma.sys
      xdma.sys

#### [Main menu] [top] [Syntax] [Options] [Comments] [Examples] (See also) [File]

## File:

      Please read this command's lsm file also.
      You will find the updated version (internet) here and
      the version described in this manual page here.
      The lsm file contains information about the name of the programmer,
      the download site, and some other command related information.

#### [Main menu] [top] [Syntax] [Options] [Comments] [Examples] [See also] (File)

      Copyright © 2007 Jack Ellis, updated 2008 by W. Spiegl.

      This file is derived from the FreeDOS Spec Command HOWTO.
      See the file H2Cpying for copying conditions.