@(#)DRIVES	6.17 00/02/04

SUPPORTED CD-ROM, CD-R and CD-RW DRIVES
---------------------------------------

This release of xmcd and cda should work with the following CD-ROM,
CD-R and CD-RW drives:

    Acer
	CD-610A (#), CD-632A (#), CD-636A (#), CD-640A (#), CD-912E (#)
    Apple
	CD SC+, CD-150, CD-300, CD-300i, CD-300e, CD-600e
    Aztech
	CDA268-01A (#)
    Chinon
	CDS-431 (@), CDX-431 (@), CDS-435 (@), CDX-435*, CDS-525, CDX-525,
	CDS-535, CDX-535, CDS-545, CDX-545
    Compaq
	CDU-561, CR-503BCQ, CRD-8322
    Compro
	CDR-7501
    Creative Labs
	CD-ROM (#), CD1220S
    Digital Equipment Corporation
	RRD42, RRD43, RRD44, RRD45, RRD46
    Goldstar
	CRD-8160 (#), CRD-8240 (#), CRD-8241 (#), CRD-8322 (#),
	GCD-R540 (#), GCD-R580 (#)
    Hewlett Packard
	XM-3301, XM-3401, XM-3501, XM-3601, XM-4101, CD-Writer 4020,
	CD-Writer 6020, CD-Writer 7100, CD-Writer 7200,
	ATAPI/IDE (Teac CD-532E, others) (#)
    Hitachi
	CDR-1650S, CDR-1750S, CDR-1950S, CDR-3650, CDR-3750, CDR-6750,
	CDR-7730 (#), CDR-7830 (#), CDR-7930 (#), CDR_8030 (#),
	CDR-8130 (#)
    IBM
	3509-705, 7210-001, 7210-005, 7201-010, CRMC-FX400C (#), Ext-ISA (#)
    Kenwood
	UCR-415
    Longshine
	LCS-7260 (#)
    Media Vision
	CDR-H93RMV, Reno
    Micro Design International
	600CD4X, SE6CDI
    Mitsumi
	FT-810T (#), FX-001S (#). FX-001D (#), FX-001DE (#),
	FX-120T (#), FX-140S2 (#), FX-320S (#), FX-400B (#), FX-600B (#),
	FX-800S (#), FX-1200 (#), FX-1600 (#), FX-4010 (#), LU-005S (#)
    Nakamichi
	MBR-7, MBR-7.4, MJ-4.8s, MJ-5.16 (#), MJ-5.16s
    NEC
	CDR-25, CDR-37, CDR-38 (*), CDR-55, CDR-72, CDR-74, CDR-77,
	CDR-80, CDR-82, CDR-84, CDR-74-1 (*), CDR-84-1 (*), CDR-210P,
	CDR-222S, CDR-251 (#), CDR-260 (#), CDR-260R (#), CDR-272 (#),
	CDR-273 (#), CDR-400, CDR-401, CDR-462, CDR-500, CDR-501, CDR-502,
	CDR-510, CDR-511, CDR-512, CDR-600, CDR-601, CDR-602, CDR-900,
	CDR-1410, CDR-1450, CDR-1460, CDR-1610, CDR-1810, CDR-1800 (#),
	CDR-1900 (#), CDR-1901 (#), CDR-1910, CDR-3460, CDR-4300A (#)
    Optics Storage
	8000AT (#)
    Kotobuki/Matsushita/Panasonic
	CR-501B, CR-502B, CR-503B, CR-504B, CR-506B, CR-521 (#),
	CR-522 (#), CR-523 (#), CR-562 (#), CR-563 (#), CR-572 (#),
	CR-574 (#), CR-581 (#), CR-583 (#), CR-584 (#), CR-585 (#),
	CR-8005, CW-7501, CW-7502, LF-1004, LK-MC606BP, LK-MC686BP (#)
    Okano/Wearnes
	CDD110 (#)
    Orchid
	CD-3110 (#)
    Philips/LMS
	CDD2600, CDD3600, CM206 (#), PCA80SC
    Pioneer
	DRM-600, DRM-600A, DRM-610, DRM-602X, DRM-604X (*)(@), DRM-624X,
	DRM-1804X, DRM-6324X, DR-411 (#), DR-433, DR-444 (#), DR-466S,
	DR-533, DR-U06S, DR-U24X, DR-U104X, DR-U124X, DR-UA124X (#)
    Plextor/Texel
	DM-3024 (@), DM-5024 (@), DM-3028, DM-5028, PX-43C, PX-45C,
	PX-63C, PX-65C, PX-83C, PX-85C, PX-12X, PX-20X, PX-32X, PX-40X,
	PX-R412, PX-R820T
    Procom
	CDT4-3X, CDT4-DS, CDT4-MX, CDT7-3X, CDT7-DS, DSP-DR0020,
	ICD-MX, MCD-DS, MCDN-3X, SICD-DS, SICDN-3X, SXCD-DS, SXCDN-3X
    Regal
	CDC-4X
    Ricoh
	MP6200S
    Samsung
	SC-140B (#)(@), SCR-2430 (#). SCR-3230 (#), SCR-3232 (#)(@)
    Sanyo
	CRD-254P (#), CRD-254S, CRD-820P (#), CDR-C3G (#), CDR-H93RMV
    Silicon Graphics
	XM-3301, XM-3401, XM-3501, XM-5401
    Sony
	CDR-111 (#), CDU-31A (#), CDU-33A (#), CDU-55E (#), CDU-55S,
	CDU-76E (#), CDU-76S, CDU-311 (#), CDU-415, CDU-511 (#),
	CDU-524E (#), CDU-531 (#), CDU-535 (#), CDU-541, CDU-561,
	CDU-611 (#) CDU-701 (#), CDU-711 (#), CDU-6111, CDU-6211,
	CDU-7205N (#), CDU-7211, CDU-7811, CDU-8002, CDU-8003, CDU-8003A,
	CDU-8012 (@), CSD-76S, CSD-880E (#)
    Stratus
	D756, D758, D850, D855, D857, D859
    Sun
	ATAPI/IDE (Goldstar CRD-8240, others) (#), Sony (CDU-541,
	CDU-8012) (@), Toshiba (XM-4101, XM-5401, XM-5701, XM-6201)
    Tatung
	CD-1216E (#)
    Teac
	CD-50, CD-55A (#), CD-56E (#), CD-56S, CD-512E (#), CD-512S,
	CD-516S, CD-516E (#), CD-524E (*), CD-524S, CD-532E (#),
	CD-532S, CD-R50S
    Toshiba
	XM-3101, XM-3201, XM-3301, XM-3401, XM-3501, XM-3601, XM-3701,
	XM-3801, XM-4101, XM-5201, XM-5301, XM-5302 (#), XM-5401,
	XM-5402 (#), XM-5601, XM-5602 (#), XM-5701, XM-5702 (#),
	XM-5901, XM-6002 (#), XM-6102 (#), XM-6201, XM-6302 (#),
	XM-6401, XM-6502 (#), XM-8100
    Yamaha
	CDE-100, CDR-100, CDE-102, CDR-102, CRW-4260S, CRW-4416S

    Other SCSI-2 compliant CD-ROM/CD-R/CD-RW drives
    Other non-SCSI CD-ROM/CD-R/CD-RW drives (#) (driver support required)

Units denoted with a (#) symbol are currently supported only on
certain OS platforms that contain the proper device driver for the
CD-ROM drive.  These drives are either typically used with an ATAPI
or proprietary interface card or a sound card.  See the "NON-SCSI
CD-ROM DRIVES" section below for details.

Units denoted with a (@) symbol have additional notes below in the
CD-ROM NOTES section.

Units denoted with a (*) symbol can be configured to operate in the
SCSI-1 or SCSI-2 mode (via jumpers or DIP switch).  You must configure
the xmcd software accordingly (with the XMCDLIB/config/config.sh
program).  Depending upon the specific model, you may find that xmcd/cda
supports more features while operating in SCSI-2 mode.  See the CD-ROM
drive owner's manual for details about setting the mode.

For multi-disc changers, please refer to the MULTI-DISC CHANGERS
section below.

If your drive is not listed above, you should first try configuring xmcd
for another drive model (of the same type) from the same manufacturer
This would usually give you a higher chance that the configuration is
correct for your drive, compared to selecting the "Other (SCSI)" or
"Other (non-SCSI)" option.

The author cannot personally test all these drives, therefore much
of this information relies on user feedback.  If you have success using
xmcd with a drive not listed above, please contact xmcd@amb.org.

See the "CD-ROM NOTES" section below for information specific to
some of the CD-ROM drives.


CD-ROM NOTES
------------

The Chinon CDx-431 and CDx-435 drives do not support commands to
implement audio pause and resume operations.  Thus, these features
are non-functional when these drives are used with xmcd/cda.  The
CDx-525, CDx-535 and CDx-545 units do not have this limitation.

Pioneer DRM-604X units with revisions of the firmware prior to 2403
must be configured to operate in the SCSI-1 mode (DRM-600 emulation,
via back panel DIP switches), and xmcd/cda must be configured as if
it's operating a DRM-600.  Newer DRM-604X units (firmware version 2403
and later) can be set up to run in SCSI-2 mode, and xmcd/cda must be
set up accordingly.

The Plextor/Texel DM-x024 drive firmware should be version 1.10 or
later to avoid system lockups.  The DM-x028 drives do not have these
restrictions.

Some of the Sun CD-ROM drives (Sony OEM CDU-8012) have a firmware
problem that can lead to a temporary SCSI bus hang after ejecting
a CD with xmcd.  The workaround is to increase xmcd's
insertPollInterval configuration parameter to 4000 milliseconds or
more.  See the XMCDLIB/config/common.cfg file.

Due to a quirk with the drive, the Samsung SC-140B and SCR-3232
will stop after playing a track.  The workaround is to define a
play program of all tracks.

To avoid possible SCSI bus lock-up, never eject the disc using the
eject button on the front panel of the Hitachi SCSI-1 CD-ROM drives
while the unit is playing audio.  Use the software eject function of
xmcd/cda instead.  Also, you may wish to adjust the searchSkipBlocks
and searchPauseInterval configuration parameters to achieve the best
audio sampling effect during xmcd's REW and FF search operations.

Note that even if a CD-ROM drive is marketed as SCSI-2 compliant, it
still may not implement the full set of audio-related commands that
xmcd/cda requires.

The supported SCSI drives listed above will work only when connected
via a proper SCSI host adapter board.  Some x86 PC platforms use SCSI
CD-ROM drives but they are connected to sound cards that use a
proprietary interface.  These may work if xmcd/cda is configured
to operate the unit as a non-SCSI drive (see below).

Some older CD-ROM drives do not function well when the SCSI host adapter
board is configured to "synchronous negotiation" mode.  Examples of
these include certain NEC and Hitachi units.  If you experience
malfunctions with xmcd/cda, check the host adapter board configuration
and try disabling the synchronous mode.  On the Adaptec AHA-1542B, there
is a single jumper that controls whether synchronous negotiation is
enabled for all devices on the SCSI bus.  On more recent Adaptec SCSI
adapters, synchronous negotiation is configurable via the SCSISelect
setup program, and is settable on a per-ID basis.  Please consult your
SCSI host adapter board owner's manual for information.

Some CD drives take a long time to spin up.  If you encounter an error
when starting playback of a CD, you may need to adjust the
"spinUpInterval" parameter in your XMCDLIB/config/DEVICE file (where
DEVICE is the basename of the CD-ROM special file).


NON-SCSI CD-ROM DRIVES
----------------------

This release of xmcd and cda supports non-SCSI CD-ROM drives on
certain OS platform only.  These platforms currently consists of
the following:

    BSDI BSD/OS 3.x
    Digital UNIX 4.x
    FreeBSD
    HP-UX 10.20 and later
    IBM AIX 4.x
    Linux
    NetBSD
    OpenBSD
    QNX
    SCO Open Server release 5.x
    Sun Solaris 2.x and later

On the AIX, FreeBSD, Linux, NetBSD, OpenBSD, QNX and Solaris
platforms, xmcd/cda must be configured to operate in the appropriate
"ioctl method" when used with these drives (rather than the "SCSI
pass-through method").  See the "deviceInterfaceMethod" parameter in
the XMCDLIB/config/DEVICE file (where DEVICE is the basename of the
CD-ROM special file).

On AIX, BSDI BSD/OS, Tru64 UNIX (Digital UNIX), HP-UX, SCO OSR5 and
Solaris, the only non-SCSI drives supported are ATAPI drives.
For SCO OSR5, you must use the ATAPI BTLD from SCO for these drives.
The BSDI, Tru64 UNIX (Digital UNIX), HP-UX and SCO OSR5 platforms
support the ATAPI/IDE drives via SCSI emulation.  Thus, xmcd/cda will
still operate in the SCSI pass-through method with these drives.

The specific list of non-SCSI drives supported depends upon the
configuration of the OS host CD-ROM driver.  You should make sure
that a driver for your non-SCSI CD-ROM drive is present in your
kernel (or can be added to your kernel).  Without the appropriate
driver, xmcd/cda will not work.

On Linux, refer to the /usr/src/linux/Documentation/cdrom/*
files for details about the drivers in your version of the kernel.

Not all CD-ROM drivers are present in all versions of your OS.
Older versions may lack some of these.  Also, the specific CD-ROM
drives  and features supported by these drivers are also version-
dependent.

See your OS documentation about configuring a kernel to use these
drivers.

Some CD-ROM drive/controller and OS driver combinations may not work
reliably.  Please refer to your OS documentation for the currently
supported list of drives and controllers.

Although the SunOS/Solaris/Linux ioctl method will also work with
many SCSI CD-ROM drives on the Linux, SunOS 4.1.x and Solaris platforms,
it offers less features than the SCSI pass-through method and is thus
not recommended for SCSI drives.  Likewise, the FreeBSD/NetBSD/OpenBSD
ioctl method should only be used with non-SCSI drives.

On QNX, the QNX ioctl method should be used for all CD-ROM drives
(including SCSI drives) due to the lack of the SCSI pass-through
method.

The AIX IDE ioctl method is normally disabled.  You must explicitly
define -DAIX_IDE in the libdi_d directory when compiling xmcd/cda
to enable it.


MULTI-DISC CHANGERS
-------------------

This version of xmcd/cda supports the use of multi-disc changers
and jukeboxes.  Depending upon the type of disc changer you have,
You must select one of the following methods to enable the disc
change capability:

1. SCSI LUN addressing method:

    This is for SCSI changers that occupy one SCSI ID, but allows
    software selects the disc via the LUN (logical unit number)
    address.

    This method is used only for SCSI disc changers that support
    eight discs or less.

    In order for this method to work, your OS platform must support
    separate device nodes for each LUN of the device.  Thus, for
    a 6-disc changer, there must be six separate device nodes for
    the changer, one for each of the "slots".  Not all platforms
    support this.  On platforms that don't have separate nodes for
    each LUN, xmcd/cda will not be able to change discs.

    This method has been tested and works on HP-UX 9.x and 10.x,
    Linux 2.x, Solaris 2.x and UnixWare 2.x.  It may work on other
    platforms, but I have not tested on them.  If you get this method
    to work on a platform not listed here, please drop me a note at
    xmcd@amb.org to let me know.

    On the HP-UX 9.x platforms, the minor device number should be
    0x201xy0, where x is the SCSI ID and y is the LUN number.
    This is documented incorrectly in some HP manuals.  Your device
    nodes should look something like this (this example has SCSI ID 6,
    6 discs):

    crw-r--r--   1 root     sys    7 0x201600   /dev/rdsk/c201d6s0
    crw-r--r--   1 root     sys    7 0x201610   /dev/rdsk/c201d6s1
    crw-r--r--   1 root     sys    7 0x201620   /dev/rdsk/c201d6s2
    crw-r--r--   1 root     sys    7 0x201630   /dev/rdsk/c201d6s3
    crw-r--r--   1 root     sys    7 0x201640   /dev/rdsk/c201d6s4
    crw-r--r--   1 root     sys    7 0x201650   /dev/rdsk/c201d6s5

2. SCSI medium-changer method:

    This is for SCSI changers that occupy one SCSI ID, with the
    player on one LUN and a medium changer mechanism on another LUN.
    Another variation of this is to have the player on one SCSI ID
    and the medium changer mechanism on another SCSI ID.

    This is typically used on SCSI CD-ROM jukeboxes that support 
    more than eight discs.

    In order for this method to work, your OS platform must support
    a device node for the CD player as well as a separate device node
    for the medium changer mechanism.  Not all systems support this.
    On platforms that don't have a separate node for the medium changer,
    xmcd/cda will not be able to change discs.  Platforms that support
    this interface includes Linux 2.x, UnixWare 2.x/7.x and HP-UX 10.x
    and later.  The medium changer device for each of these platforms are:

    Linux: /dev/sgX	where X is a letter or digit.  Typically X would
			correspond to the order that the device appears
			in the output of "cat /proc/scsi/scsi".

    UnixWare: /dev/mc/mcX
			where X is a digit corresponding to the medium
			changer's instance number.  See mc01(7).

    HP-UX: /dev/rscsi/cXXtYdZ
			where XX is a controller number, Y is the
			SCSI ID and Z is the LUN number.  See
			scsi_ctl(7).

    This method currently is specifically coded for the Pioneer
    DRM-1804X 18-disc changer.  It may also work with other changers
    with a similar software interface.

    Note that in order to use xmcd on a Linux kernel older than 2.0.30
    with the Pioneer DRM-1804X (or other CD changers with a medium changer
    device), you need to make a modification to the SCSI command timeout
    limit in your Linux SCSI driver.  Locate the following kernel source
    file:

        /usr/src/linux/drivers/scsi/scsi_ioctl.c

    Change the MAX_TIMEOUT definition from 9 seconds to at least 120
    seconds:

    Was:
    #define MAX_TIMEOUT  (9 * HZ)

    Change to:
    #define MAX_TIMEOUT  (120 * HZ)

    You then need to rebuild the kernel, install it and reboot to have
    it take effect.  See the /usr/src/linux/README file for details.

3. Non-SCSI OS ioctl method:

    This is for non-SCSI units which has OS ioctl support in the
    CD-ROM driver for disc change operations.

    Currently, this method will work only on late versions of Linux
    kernel 2.0.x and Linux 2.1.x and later.  Moreover, it works
    only for ATAPI/IDE changers via the "ide-cd" driver.  See the
    /usr/src/linux/Documentation/cdrom/ide-cd file for details about
    which drives are supported.

    Due to problems in some versions of the ide-cd driver xmcd/cda
    may have problems changing discs when there are empty slots in
    the CD changer.


The changer control method is configured via the mediumChangeMethod,
numDiscs and deviceList parameters.  These are set up for you when
you install xmcd, or when you run the LIBDIR/xmcd/config.config.sh
script.

Note that if the "multi-play" option is enabled, xmcd/cda scans
each changer slot in order, after a disc is ejected.  This is in
support of changers that have individually eject-able discs.  On
changers that use a magazine (where all discs are ejected at once),
after the magazine is reinserted, xmcd may "land" on the first CD
that it detects while scanning.  This is not necessarily the first
disc in the magazine.  Also, on changers that have individually
eject-able slots, the "auto-eject on done" feature will only eject
the first disc when the "multi-play" mode is finished.

