# Command: uide.sys / uidejr.sys

      UIDE.SYS / UIDEJR.SYS is a DOS "Universal IDE" caching driver, which
      supports IDE and SATA-HDs, CD and DVD.
      UIDE.SYS / UIDEJR.SYS has to be loaded in CONFIG.SYS / FDCONFIG.SYS.
      When FreeDOS is already running, you can load UIDE.SYS / UIDEJR.SYS
      later with DEVLOAD.
      As UIDE.SYS is still under development, it may happen that some
      options / switches are not available in the actual version. Please
      have a look at the actual help file in this case.

## Syntax:

      DEVICE = [path] UIDE.SYS [/A] [/B] [/D:DeviceNm] [/F] [/H] [/N1]
               [/N2] [/N3] [/N4] [/Q] [/Rnn] [/Snnnn] [/UX] [/Z]
      DEVICEHIGH = [path] UIDE.SYS [/A] [/B] [/D:DeviceNm] [/F] [/H] [/N1]
                   [/N2] [/N3] [/N4] [/Q] [/Rnn] [/Snnnn] [/UX] [/Z]

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

## Options:

      UIDE.SYS usually needs only its /Sn size switch and /D: to specify
      a device name for the SHSUCDX CD-ROM Redirector.
      UIDE.SYS switch options are:
      /A   Specifies use of ALTERNATE "legacy IDE" I/O addresses. The
           first legacy controller will use alternate 01E8h/0168h
           addresses, and a second legacy controller uses normal
           01F0h/0170h addresses. If /A is omitted, the first
           controller uses normal and the second uses alternate
           addresses, as is usual for most BIOS programs and mainboards.
           /A is for "odd" cases where "legacy IDE" addresses are REVERSED.
           /A does not affect "native PCI" controllers.
      /B   For UIDE only, requests a basic "stand alone" UltraDMA driver
           for disks or CD/DVD drives (no cache or diskettes). This
           may help in tests or diagnostics. The basic UIDE can use
           128K of XMS memory and can now load in HMA space. UIDEJR
           will ignore /B.
      /D:  Specifies the desired device name, used by SHSUCDX to access
           the CD/DVD drives.
           Example: /D:CDROM1 /D:MYCDROM etc.
           Device names must be from 1 to 8 bytes valid for use in DOS
           filenames. If /D: is omitted, or the device name after a
           /D: is missing or invalid, UDVD1 is used as the default.
           When disks/diskettes are present but no CD/DVD drives, the
           name  UIDE$  or  UIDEJR$  shall override any /D: name.
      /E   For UIDE only, makes the driver "call the BIOS" for all hard-
           disk I-O. /E avoids setup problems with some "emulators"
           (VirtualBox, etc.) that do NOT emulate all hardware logic!
           /E still permits UIDE to cache hard-disk data (unlike /N1,
           that does no hard-disk handling). UIDEJR will ignore /E.
           ***** NOTE *****
           Use of /E on protected-mode systems (JEMM386 etc.) may run
           VERY slow! Many "El Cheapo" BIOS programs omit DOS "VDS"
           logic for hard-disks, and in protected-mode, they can only
           do old "PIO mode" data transfers, not UltraDMA! If /E is
           needed for UIDE, users should set up their system in real-
           mode (UMBPCI, etc.) whenever possible.
      /F   For UIDE only, requests a "fast" cache using 32K cache blocks
           with 40-MB or 50-MB caches and 64K cache blocks with 80-MB
           caches or more. Without /F, 40-MB to 1023-MB caches have
           16K blocks, and 1024-MB to 2047-MB caches have 32K blocks,
           for up to 25% more cache capacity due to less "lost space"
           in a file's last cache block. /F gives up a small amount
           of capacity for greater speed, from handling fewer blocks.
           /F is ignored with 2048-MB caches (2-Gigabytes) and up, as
           they must use 64K blocks. UIDEJR will ignore /F.
      /H   Requests use of "free" HMA space for most of the driver. /H
           makes UIDE use only 944 bytes or makes UIDEJR use only 768
           bytes of upper-memory. /H must NOT be used with ROM-DOS,
           which has no HMA! When /N3 is also given, /H is ignored.
           ***** NOTE *****
             MS-DOS kernels have ERRORS in posting free HMA space which
             can give CRASHES! Specifying /H is "At the user's risk"!
             No such crashes are noted for other DOS kernels, but users
             should TEST a system, before giving /H or /HL with UIDE or
             UIDEJR!
      /N1  Requests NO handling of any hard-disk drives. /N1 is meant
           for diagnostics or special situations, not for normal use!
      /N2  Requests NO handling of any CD or DVD drives. For UIDEJR
           only, all CD/DVD logic will be dismissed, saving 1680 HMA
           bytes!/N2 is meant for diagnostics or special situations,
           not for normal use!
      /N3  Requests no XMS memory. /N3 requires loading in low memory,
           or the driver aborts. For UIDE, its /B "basic" driver is
           used. /N3 loses much speed, as "misaligned" or other I/O
           unsuited to UltraDMA must use BIOS logic for disks or "PIO
           mode" for CD/DVD input.
      /N4  See /Z below.
      /Q   Enables awaiting "data request" before starting UltraDMA disk
           transfers. /Q is for "old" systems and must be used only
           if UIDE loads O.K. but seems unable to transfer data. /Q
           must be OMITTED with a SATA-to-IDE adapter from Sabrent or
           others, as such cards do not emulate "data request" from a
           SATA disk! /Q does not affect CD/DVD drives.
      /R15 Sets the driver's XMS memory at 16-MB or 64-MB. /R15 shall
      /R63 reserve 15-MB of XMS, and /R63 shall reserve 63-MB of XMS,
           for old DOS "game" programs which require XMS memory below
           16-MB or 64-MB!   UIDE/UIDEJR must be able to reserve this
           memory, reserve their required XMS above that, then "free"
           the reserved XMS. If not, the driver displays "XMS init
           error" and aborts! /R15 or /R63 require that UIDE/UIDEJR
           load after the user's XMS manager (XMGR, HIMEMX, etc.), so
           another driver cannot take any XMS first, and the reserved
           XMS is just beyond the HMA area. See section 7 of the
           README file for further details.
      /Sn  For UIDE only, specifies the desired cache size, in megabytes
           of XMS memory. Values for /S are 5, 15, 25, 40, 50, and
           any number from 80 to 4093. /S1024 or more gives a 1- to
           4-GIGABYTE cache! Use as much cache as possible, to deal
           with today's BIG data files --
             Below 128-MB memory:     Use /S5 /S15 /S25 or /S40
             With 128-MB memory:      Use /S25 /S40 /S50 or /S80
             With 256-MB memory:      Use /S80  up to /S127
             With 512-MB memory:      Use /S160 up to /S255
             With 1-GB memory:        Use /S320  up to /S511
             With 2-GB memory:        Use /S640  up to /S1023
             With 4-GB memory:        Use /S1280 up to /S3072
           Small systems may prefer /S25 or /S50 which set 1600 cache
           blocks and are more efficient. If /S is omitted/invalid,
           an 80-MB cache is set.   Except for 25 or 50, values below
           80 are "rounded" to 40- 15- or 5-MB. UIDE displays "XMS
           init error" and aborts when not enough XMS memory is free!
           If so, a smaller cache must be requested. For older V2.0
           XMS managers (ROM-DOS etc.), only /S5 to /S50 may be used.
           UIDEJR will ignore /S.
      /U8  For UIDEJR only, handles up to 8 CD/DVD drives, not 4. This
           adds 80 bytes to UIDEJR's size. /U8 is rarely needed, as
           few PCs have over 4 CDs/DVDs. UIDE and UIDE2 will ignore
           /U8, since they always handle up to 8 CD/DVD drives.
      /UX  Disables all CD/DVD UltraDMA, even for drives that can do it.
           PIO-mode is then used on all CD/DVD requests. Except for
           some "unusual" drives by Sony, etc. that do not follow all
           ATAPI "rules", /UX is rarely needed. /UX does not affect
           hard-disks.
      /Z   For XMGR or UIDE only, limits their XMS moves to a maximum 2K
           bytes in protected-mode, not 64K. /Z is ignored by real-mode
           systems (UMBPCI etc.) and is not needed if JEMM386 or EMM386
           handle protected-mode. Systems using other VCPI/DPMI/EMM
           drivers must be TESTED, to see if /Z is needed by XMGR or UIDE
           -- BAD schemes allowing NOT enough interrupts in an XMS move
           may still exist! UIDE's old /N4 switch is the same as /Z and
           can still be given. UIDEJR ignores /Z or /N4 and always
           issues standard XMS calls.
      For each switch, a dash may replace the slash, and lower-case letters
      may be used.

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

## Comments:

      UIDE.SYS is a DOS "Universal IDE" caching driver. It intercepts "Int13h"
      BIOS I/O requests and caches data for up to 34 BIOS units, including A:
      and B: diskettes if present, and including up to 2 TB disks. UIDE.SYS
      accepts 48-bit LBA and 24-bit CHS I/O calls by new or old DOS systems.
      It uses its own UltraDMA logic for SATA or IDE hard-disks and will run
      up to 10 "Legacy" or "Native PCI" IDE controllers. All possible I/O is
      done in its cache memory for fast speed. UIDE "calls the BIOS" for
      diskettes, SCSI, and other disk models, so it can cache ALL disks on a
      DOS system! "Int 13h" drivers can load before UIDE, and it will intercept
      and cache I/O for their disks, also. ("ASPI" and other drivers that do
      not use Int 13h I/O are unsupported).
      UIDE also supports up to 8 CD/DVD drives, including SATA, IDE, or older
      "PIO mode" drives. On loading, it checks up to 10 "Legacy" or "Native
      PCI" IDE controllers and runs the first 8 CD/DVD drives found. UIDE
      does file input for SHCDX33E or other "CD-ROM Redirectors" like MSCDEX,
      and it caches all file data and directories for faster speed! It also
      supports DOS "audio" requests and will "play back" an audio CD. Data,
      audio playback, and "trackwriter" programs can be handled by UIDE using
      multiple drives on one system. Audio and "trackwriting" is uncached.
      UIDE caches 5 Megabytes to 4 GIGABYTES of data! It uses 5344 bytes of
      upper-memory for any size cache. All its cache tables and data are in
      XMS memory. A "stand alone" UIDE (/B switch, no caching or diskettes)
      can be used for tests/diagnostics and takes 3824 bytes of upper-memory.
      UIDE can also load in 640K DOS memory, and its /H switch can be used to
      put most of the driver in free HMA space, thus taking only 944 bytes of
      upper- or DOS memory.
      UIDEJR.SYS ("junior UIDE) omits caching but it still runs up to 10
      SATA/IDE controllers, 32 SATA/IDE hard-disks and 8 SATA/IDE/"PIO mode"
      CD/DVD drives.
      You should load an XMS manager (e.g. XMGR.SYS, HIMEMX or JEMMEX
      before UIDE.SYS.

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

## Examples:

      In CONFIG.SYS / FDCONFIG.SYS:
        DEVICE=C:\FDOS\BIN\XMGR.SYS /N128 /B
        DEVICEHIGH=C:\FDOS\DRIVERS\UIDE.SYS /S125 /D:MYDVD
      IN AUTOEXEC.BAT:
        c:\fdos\bin\SHSUCDX /D:MYDVD

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

## See also:

     (atapicdd.sys)
      autoexec.bat
      config.sys
      devload
      fdconfig.sys
     (gcdrom.sys)
     (mscdex)
      shsucdx
     (udma.sys)
     (udma2.sys)
     (udvd.sys)
     (xcdrom.sys)
     (xdma.sys)
      xmgr.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 2011 by W. Spiegl.

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