Command: xcdrom.sys

  XCDROM.SYS is an UDMA and non-UDMA CD-ROM driver for DOS.
  XCDROM.SYS has to be loaded in CONFIG.SYS / FDCONFIG.SYS.
  When FreeDOS is already running, you can load XCDROM.SYS
  later with DEVLOAD. XCDROM.SYS is out of date. There is
  NO MORE support by the author! You should use UIDE.SYS
  instead.

Syntax:

  device=xcdrom.sys [options]
  devicehigh=xcdrom.sys [options]

Options:

  /AX  Excludes ALL audio functions. This makes the driver report on a
       Device-Status request that it reads DATA tracks only! /AX reduces
       the resident driver by 448 bytes. UltraDMA, multi-drives, and other
       driver features are NOT affected!
  /D:  Specifies the desired "device name" which SHSUCDX or MSCDEX
       will use during their initialization to address the CD-ROM drives.
       Examples are: /D:CDROM1 /D:MYCDROM etc.
       The device name 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, "XCDROM" will be the default.
  /L   Limits UltraDMA to "low memory" below 640K. /L is REQUIRED to use
       UMBPCI or a similar driver whose upper-memory areas cannot do
       UltraDMA. If /L is given, the driver must load in LOW memory so its
       DMA command-lists can fetch properly, or driver loading will ABORT!
       /L causes any I/O requests above 640K to use "PIO mode" input. Note
       that /L will be IGNORED if /UX is also given.
  /Mn  Specifies the MAXIMUM UltraDMA "mode" to be set for a CD-ROM drive,
       where n is a number between 0 and 6, 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.
       A CD-ROM drive designed to use "modes" LESS than the given value
       will be limited to its own highest "mode". /M will be IGNORED for
       CD-ROM drives which cannot do UltraDMA, and it will be ignored for
       ALL drives if /UX is also given.
  /PM  Requests the driver to check the IDE primary-master unit for a 
       CD-ROM drive during driver init. If a CD-ROM drive is NOT found as
       primary-master, driver loading will ABORT!
  /PS  Same as /PM but tests the primary-slave unit only.
  /SM  Same as /PM but tests the secondary-master unit only.
  /SS  Same as /PM but tests the secondary-slave unit only.
       --- NOTE ---
       Using multiple drives, multiple /PM /PS /SM /SS switches can be
       given. The first-specified drive is addressed as "unit 0", the
       second as "unit 1", etc. If fewer switches than drives are given,
       the unreferenced drives will NOT be used. If NO such switches are
       given, the driver "scans" for CD-ROM drives, from primary-master
       to secondary-slave. The first drive found will be "unit 0", the
       second will be "unit 1", etc.
  /UF  Enables "Fast UltraDMA". Data input requests that cross an UltraDMA
       "64K boundary" are executed using a 2-element DMA command list, one
       for data up to the boundary, and one for data beyond it. CD-ROM
       speed is increased significantly. "PIO mode" input is still
       needed for user buffers that are misaligned (not at an even
       4-byte address).
       /UF will be IGNORED for CD-ROM drives which cannot do UltraDMA.
       --- NOTE ---
       Despite any UltraDMA specs, NOT ALL chipsets or mainboards can run
       multi-element DMA commands properly! Although it is valuable, /UF
       must be TESTED on every system, and "Fast UltraDMA" should be
       enabled with CARE!!
  /UX  Disables ALL UltraDMA, even for CD-ROM drives capable of it. The
       driver then uses "PIO mode" for all data input. /UX should be
       needed only for tests and diagnostic work.
  For each switch, a dash may replace the slash, and lower-case letters
  may be used.

Comments:

  The CD-ROM driver was named XCDROM.SYS until version 2.2. Later it was
  named UDVD.SYS and at the end UIDE.SYS.
  XCDROM.SYS supports NLS (national language support), see xcdmsgs.eng.
  It only has to be compiled in the corresponding language.

Examples:

  IN CONFIG.SYS / FDCONFIG.SYS:
    DEVICE=c:\fdos\bin\XCDROM.SYS
    DEVICEHIGH=c:\fdos\bin\XCDROM.SYS /D:CDROM001 /SM /SS
  IN AUTOEXEC.BAT:
    c:\fdos\bin\SHSUCDX /D:CDROM001

See also:

 (atapicdd.sys)
  autoexec.bat
  config.sys
  devload
  fdconfig.sys
 (gcdrom.sys)
 (mscdex)
  shsucdx
 (udvd.sys)
  uide.sys

  Copyright © 2006 Jack Ellis, updated 2011 by W. Spiegl.

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