Command: gcdrom.sys

  GCDROM.SYS is a SATA native IDE CD/DVD-ROM driver for DOS
  (aka "ODD DOS driver"). GCDROM.SYS supports all SATA Native IDE
  controller, such as Intel ICH6/ICH7/ICH8, Jmicron 363/368,
  NVidia CK804/MCP55/MCP51 etc.
  GCDROM.SYS has to be loaded in CONFIG.SYS / FDCONFIG.SYS.
  When FreeDOS is already running, you can load GCDROM.SYS later
  with DEVLOAD.
  GCDROM.SYS is out of date. You should use UIDE or UDVD2 instead.

Syntax:

  device=gcdrom.sys [options]
  devicehigh=gcdrom.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!
  /Cx  Determines number to detect 1st/2nd/3th SATA native IDE controller.
       Default = 0.
  /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:

  GCDROM.SYS can be compiled in different languages, see "xcdmsgs.eng".

Examples:

  In CONFIG.SYS / FDCONFIG.SYS:
DEVICE=HIMEM.SYS /TESTMEM:OFF
BREAK=OFF
DOS=HIGH
FILES=40
BUFFERS=40
LASTDRIVE=Z
SHELL=COMMAND.COM /P /E:1024
DEVICE=GCDROM.SYS /D:MSCD000 /C0
DEVICE=GCDROM.SYS /D:MSCD001 /C1
DEVICE=GCDROM.SYS /D:MSCD002 /C2

  In AUTOEXEC.BAT / FDAUTO.BAT:
    MSCDEX.EXE /D:MSCD000 /D:MSCD001 /D:MSCD002  OR:
    c:\FREEDOS\BIN\SHSUCDX /D:MSCD000 /D:MSCD001 /D:MSCD002

See also:

  autoexec.bat/fdauto.bat
  config.sys/fdconfig.sys
  device/devicehigh
  devload
  lastdrive/lastdrivehigh
 (mscdex)
  shsucdx
 udvd2.sys
  uide.sys

  Copyright © 2007-2019 Jack Ellis, updated 2022 by W. Spiegl.

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