Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
MATCD(4)            FreeBSD Kernel Interfaces Manual (i386)           MATCD(4)

     matcd - Matsushita (Panasonic) CD-ROM driver

     device matcd[0-4] at isa? port [?| addr]

     The matcd driver controls the CR-562-x and CR-563-x CD-ROM drives made by
     Matsushita-Kotobuki Electronics Industries, or Matsushita for short.
     These CD-ROM drives have been sold under the Panasonic (which is a trade
     name for Matsushita), Creative Labs (omniCD) and Reveal names, and have
     been included in computers made by Tandy, AST, Packard Bell and many

     These drives connect to the PC ISA bus through a proprietary host
     interface.  This interface can exist as a stand-alone ISA card, or can be
     included on a sound card.

     The matcd driver supports up to four host interfaces with up to four
     drives on each interface.  Audio activity may occur on all drives
     simultaneously.  Data read operations are limited to one drive per host
     interface at any instant.

     To support multiple host interfaces, it is necessary to modify the
     entries in the kernel configuration file.  Normally your system comes
     with the file /usr/src/sys/i386/conf/GENERIC.  You should make a copy of
     this file and give it the name of your system.  You can then edit the new
     file to include devices you want the system to support and delete the
     device entries that you don't want.

     In this file, you will find an entry like:

           device  matcd0  at  isa?  port  ?

     To support two host interfaces, change the file so it reads:

           device  matcd0  at  isa?  port  ?
           device  matcd1  at  isa?  port  ?

     (If you want to support up to three or four host interfaces, add
     additional entries).

     Note that the kernel configuration does not need to be modified to
     support up to four drives on a single host interface.  It is also not
     necessary to have four drives on a single interface before adding a
     second interface.

     By default, matcd searches for the CD-ROM host interface adapters by
     using a table of known I/O ports on Creative host adapters (see
     options.h).  Although this is very flexible, it can cause problems when
     your system has other devices that are located at the I/O ports that
     matcd is checking for CD-ROM host interfaces.  In addition, checking
     multiple locations can cause the boot process to take longer than it

     If you are having these problems, you can solve them by explicitly
     specifying where the CD-ROM host interfaces are located.  For example, by
     default most SoundBlaster cards have the Matsushita CD-ROM host interface
     located at I/O port 0x230.  (This is 0x10 above the I/O port for the
     audio section of the card.)  If this is the case for your system, you
     could change where the kernel looks for the hardware by using the -c
     option at the kernel boot prompt.  This will load the kernel and then
     give you the opportunity to change settings for any of the devices
     included the kernel.  For example, to change the I/O port for matcd
     adapter zero to 0x340, you would type

           config> port matcd0c 0x340

     If you recompile the kernel, you can change the entry in the kernel
     configuration file to specify a specific address by changing an entry
     like this:

           device  matcd0  at  isa?  port  0x230

     With this change, the matcd driver will only look at I/O port 0x230 for
     the first CD-ROM host interface and will not disturb any other I/O ports.

     Once you have adjusted the kernel configuration file, it is necessary to
     configure and recompile the kernel, install it and reboot for the changes
     to take effect.

     At this time, there are only two known drive models that work with the
     matcd driver:
           Matsushita CR-562-x
           Matsushita CR-563-x
     Most resellers leave these original markings on the drives since the
     label also has the FCC, VDE, CSA and RU certification marks.

     Both of these drive models have motorized trays.  There is also a custom
     version of these drives that does not have the volume control or
     headphone jack (seen on some Tandy computers), but this drive also works
     with matcd.

     The Matsushita CR-522-x and CR-523-x CD-ROM drive is not usable with
     matcd.  The CR-522 and CR-523 can also be identified from the front as it
     requires a CD-caddy.

     Drives with IDE interfaces must use an IDE driver.

     The TEAC CD-55 4X CD-ROM drive also uses the Creative/Panasonic interface
     but the TEAC drive is not compatible with the Matsushita CR-56x drives.
     The TEAC drive cannot be used with matcd.

     The most common source of host interface adapters for the Panasonic
     drives are found in products from Creative Labs, including SoundBlaster
     sound cards.   There are numerous models of SoundBlaster sound cards, and
     most of the newer cards provide the appropriate interface, sometimes
     labeled as the "Creative/Panasonic" interface.

     The following host interface adapters are known to work with the matcd
           Creative  Sound Blaster Pro (SBPRO) (CT1330A)
           Creative  Sound Blaster 16 (CT1730)
           Creative  Sound Blaster 16 - cost-reduced (CT1740)
           Creative  OmniCD upgrade kit adapter card - stand-alone CD (CT1810)
           Creative  Sound Blaster 16 - 2-layer, cost-reduced  (CT2230)
           Creative  Sound Blaster 16 (Vibra16) - 2-layer, single-chip
           Creative  Sound Blaster 16 Value (SB16) - 2-layer, cost-reduced
           Creative  PhoneBlaster SB16 + Sierra 14.4K
                     Voice/FAX/Data/Speakerphone modem combo (CT3100)
           Reveal    (SC400)

     Caution: Some of these sound boards can be optionally manufactured to not
     include the Panasonic/Creative interface, so check the board before
     buying solely based on model number.

     This is by no means a complete list as Creative Labs and other vendors
     that produce sound cards with an identical Creative/Panasonic drive
     interface release new versions of their adapters all the time.

     In addition to Creative Labs adapters, adapters that are compatible with
     Media Vision, IBM and Lasermate adapters are also supported.   However,
     these adapters use a wide range of I/O port addresses, so the driver must
     be reconfigured to locate these adapters.

     It is important to understand that some manufacturers have a different
     host interface implementation.  If you have a board that won't
     communicate with the drives under MS-DOS using the genuine Creative Labs
     drivers, then matcd may not work with that host adapter.

     The matcd driver supports block and character access.  Partition "a"
     returns 2048-byte User Data blocks from data CDs.  Partition "c" returns
     the full 2352-byte Frames from any type of CD, including audio CDs.
     (Partition "c" cannot be "mounted" with cd9660 or other filesystem
     emulators.)  No other partitions are supported.

     The matcdl devices work the same as the normal matcd devices except that
     the drive trays are locked and remain locked until all of the devs on
     that drive are closed.

     Matcd accepts numerous ioctl() commands, including disk and functions
     related to CD-ROM audio and tray control features.  The commands are:

           DIOCGDINFO              get disklabel.
           DIOCGDPART              get partition.
           DIOCWDINFO              set update disk.
           DIOCSDINFO              set disklabel.
           CDIOCREADSUBCHANNEL     get sub-channel information on current
                                   status of disc playing.
           CDIOCREADTOCHEADER      reads table of contents summary.
           CDIOCREADTOCENTRYS      reads length and other track information.
           CDIOCPLAYTRACKS         plays audio starting at a track/index and
                                   stopping at a track/index.
           CDIOCPLAYMSF            plays audio starting at a particular time
           CDIOCPAUSE              pauses a playing disc.
           CDIOCRESUME             resumes playing a previously paused disc.
                                   Ignored if the drive is already playing.
           CDIOCSTOP               stops playing a disc.
           CDIOCEJECT              opens the disc tray.
           CDIOCCLOSE              closes the disc tray.
           CDIOCPREVENT            blocks further attempts to open the drive
                                   door until all devices close or a
                                   CDIOCALLOW ioctl is issued.
           CDIOCALLOW              unlocks the drive door if it was locked.
                                   This ioctl is rejected if any locking
                                   devices are open.
           CDIOCGETVOL             returns the current volume settings of the
           CDIOCSETVOL             sets the volume settings of the drive.
           CDIOCSETSTEREO          causes the left channel audio to be sent to
                                   the left channel output and the right
                                   channel audio is sent to the right channel
                                   output.  This is the default state.
           CDIOCSETMUTE            causes the audio output to be turned off.
                                   The drive continues to read the audio on
                                   the disc and that audio is discarded until
                                   the audio is turned back on.
           CDIOCSETLEFT            causes the left channel audio to be sent to
                                   the left and right channel outputs.
           CDIOCSETRIGHT           causes the right channel audio to be sent
                                   to the left and right channel outputs.
           CDIOCSETPATCH           causes the audio to be routed as specified
                                   in the provided bit maps.
           CDIOCSETPITCH           changes the playback speed of the audio to
                                   increase or decrease (as in Karaoke).
           CDIOCCAPABILITY         report the capabilities of the drive and

     The ioctl() commands defined above are the only ones that the matcd
     driver supports.

     /dev/[r]matcd0a /dev/[r]matcd0la  is used to access 2048-byte blocks of
                                       data on a CD-ROM disc that is recorded
                                       in the Mode 1 Form 1 format.
     /dev/[r]matcd0c /dev/[r]matcd0lc  is used to access 2352-byte frames on a
                                       CD-ROM disc recorded in any format.
     /usr/src/sys/i386/isa/matcd/*     Source code and compilation options for

     The file options.h contains all of the compilation options.  By default,
     the driver is configured to run on the current version of FreeBSD.

     The Creative/Panasonic interface does not use interrupts or DMA although
     the drives themselves are capable of using both.

     If the disc tray is opened while one or more partitions are open, further
     I/O to all partitions on the drive will be rejected until all partitions
     are closed.

     There must be a drive on each host interface that is addressed as
     physical drive 0.  If this isn't the case, the driver will be unable to
     find the host interface or any of the connected drives.

     Drives on a second host interface start are considered logical drives
     4-7, 8-11 on the third interface and 12-15 on the fourth.

     The first drive on the second host interface is logical drive 4
     regardless of how many drives are present on the first host interface.

     Host interfaces are numbered in the order they are declared in the kernel
     configuration file, or in the order they are found if the kernel
     configuration file uses "?" for the port address.  Host interface numbers
     are always contiguous.


     The driver and documentation was written by Frank Durda IV.

     Program and Documentation are Copyright 1994, 1995, All rights reserved.

     The matcd driver appeared in FreeBSD 2.0.5.

FreeBSD 11.0-PRERELEASE       September 24, 1995       FreeBSD 11.0-PRERELEASE


Want to link to this manual page? Use this URL:

home | help