                Crystal Semiconductor Corporation
                ---------------------------------

README.TXT - Crystal Semiconductor, OS/2 PCI bus Audio driver
--------------------------------------------------------------------------

This file contains information on how to install the Crystal Semiconductor
Corporation OS/2 audio device drivers for the SoundFusion(tm) PCI bus family 
of products (CS4614, CS4624 and CS4280).

The following topics are covered in this READ.ME file:      

1) Restrictions In This Release
2) Installing On Top Of Previous Installations
3) OS/2 Version 4 and Multiple MIDI and Audio devices
4) De-Installation of Entire MMPM/2 Multimedia Subsystem, and Re-install
5) System Requirements - PCI Driver Requires Full Pack Version of OS/2.
6) File List for Crystal Audio Install Disk
7) Installation Procedure
8) Device Driver Command Line Options
9) Device Driver .INI file
10) Audio in WIN-OS/2 Sessions
11) Audio in DOS Sessions
12) Audio Concurrency Issues - OS/2, DOS, Win-OS/2
13) PCI Configuration - IRQ Assignment
14) Web Site - Where To Get Updated Drivers
15) Problems/Questions


1) Restrictions In This Release - Known problems
-------------------------------------------------------------------------------
This driver is fully functional.  The function set includes:
   OS/2 Wave audio playback and capture
   OS/2 MIDI playback
   WinOS2 wave audio playback and capture
   WinOS2 MIDI playback
   Advanced Power Management (APM Suspend/resume)

MIDI support was added in release 3.02.  In releases 3.02 and 3.03, 
this readme.txt file erroneously listed MIDI as not included.

MIDI playback in WinOS2 suffers from poor timing.  This is a 
restriction of the operating system in delivering timer ticks
to the Windows 3.1 FM driver running inside WinOS2.
 
               
2) Installing On Top Of Previous Installations
-------------------------------------------------------------------------------
No de-install is necessary prior to executing the OS/2 Multimedia
installation program, minstall.exe.


3) OS/2 Version 4 and Multiple MIDI and Audio devices
-------------------------------------------------------------------------------
On OS/2 Warp Version 4, the operating system has a bug where 
it always uses the MMPM/2 defined WaveAudio01 device for audio and 
the Sequencer01 device for MIDI.  

If the machine has more than one WaveAudio device or more than 
one Sequencer device, the WaveAudio02 and Sequencer02 devices 
are NEVER used even if the user launches a "Digital Audio 2" application.

This problem applies to system sounds and all of the GUI based 
applications that ship with the operating system.  

For more information, consult IBM OS/2 APAR:
   "JR10933 OS/2 Merlin MIDI player always uses MIDI1 device"

The system bug is a configuration issue where the workplace shell 
associates ".WAV" and ".MID" file extensions expressly with the "01" 
version of the WaveAudio and Sequencer devices.

There is no method to change the association and there is no facility
provided in the OS/2 shipped applets to select a different device.

NOTE: MMPM/2 is very capable of handling a multitude of devices.
This bug however limits the functionality.

The problem does not exist on OS/2 Warp version 3.

To work around this problem, the Crystal installation de-installs
all waveaudio and sequencer devices before installing the drivers
in this package.


4) De-Installation of Entire MMPM/2 Multimedia Subsystem, and Re-install
-------------------------------------------------------------------------------
It is not normally necessary, but should it become necessary to start
from the beginning, the OS/2 Multimedia subsystem (MMPM/2) can be 
deleted and reinstalled without impacting the rest of the installed system.

a) ERASE \MMOS2 and all subdirectories (this removes OS/2 multimedia support)
   Some files won't delete, this is okay.
b) Use OS/2 selective install to re-install OS/2 multimedia support.
   It may auto-detect an audio device.  You should override the 
   auto-detection to remove the detected device.
   When correct, the installation panel will have no audio devices listed.
c) Complete selective installation and reboot
d) You are now prepared to use this diskette to install Crystal drivers.


5) System Requirements - PCI Driver Requires Full Pack Version of OS/2.
-------------------------------------------------------------------------------
This installation and device drivers on this diskette will work properly
only on full-pack versions of OS/2.

    OS/2 Warp 3.0            ( Warp - Red box - Not supported, see below )
    OS/2 Warp 3.0 Fullpack   ( Warp - Blue box - Supported )
    OS/2 Warp Connect        ( Warp - Blue box - Suppotted )
    OS/2 Warp 4.0            ( Warp 4 "Merlin" - Supported )

In the above "Bluebox" and "Redbox" refer literally to the color of the
retail OS/2 box.

    Red box => "Warp for Windows".
               Uses previously installed Windows 3.1 binaries for WinOS2.

    Blue box => "Full pack".
               Windows 3.1 binaries are shipped with OS/2.

WinOS2 audio support for the PCI driver requires installation of a 
Windows audio driver into system.ini that is specifc to OS/2.
It will NOT operate on native Windows.  

The installation into system.ini is done automatically during
"minstall" installation process.

Since the WinOS2 audio driver will not operate on native Windows, 
it is installed only onto full pack systems.
This is the reason that OS/2 Warp 3 Red-Box (Half-pack) is officially 
not supported for this device driver set.

If you are aware of the limitations, half-pack systems can be used.  
On half-pack systems, the Crystal installation will not install audio 
drivers for WinOS2 execution.  It also will not modify the system.ini
of native Windows 3.1 in any circumstance.

If you have native Windows 3.1 Crystal PCI audio drivers installed, 
they must be removed for error free WinOS2 execution on Warp 3 red-box.
This requires removing the Crystal Semiconductor audio driver from 
system.ini before WinOS2 launch and returning them to system.ini for 
native Windows 3.1 execution.  This process is not automated.


6) File List for Crystal Audio Install Disk
-------------------------------------------------------------------------------

List of all files (sorted by name)
----------------------------------
   AMPMXMCD.DLL - IBM MMOS2 Amp Mixer update, installed Warp 3 if fixpack <26
   AMPMXMCD.F26 - IBM MMOS2 Amp Mixer update, installed Warp 3 if fixpack =26
   AUDIOIF.DLL  - IBM MMOS2 Audio VSD update, installed Warp 3 if fixpack <26
   AUDIOIF.F26  - IBM MMOS2 Audio VSD update, installed Warp 3 if fixpack =26
   CARDINFO.DLL - Installation control file, resource DLL.
   CLOCK01.SYS  - IBM High res timer driver/clock, installed Warp 3 only
   CLOCK02.SYS  - IBM High res timer driver/clock, installed Warp 3 only
   CONTROL.SCR  - Installation control file
   CWADD.INI    - Installation, contains things to append to system.ini (empty)
   CWBFM.DRV    - Crystal Windows 3.1 FM MIDI driver
   CWC4610.OSP  - DSP tasks for CS4610 device
   CWC4612.OSP  - DSP tasks for CS4612 device
   CWCFILES.SCR - Installation control file, list of files to copy
   CWINST.DLL   - Crystal installation executable, called by minstall.exe
   CWCMMPM.INI  - Audio driver settings.  Text file.  User changable.
   CWCMMPM.SYS  - Audio device driver
   CWCOPL3.OSP  - DSP tasks for FM music synth (OPL-3)
   CWCSPUD.INI  - DSP manager configuration settings.  User should not change.
   CWCSPUD.SYS  - DSP manager device driver
   CWCUTIL.EXE  - DSP manager utility application
   CWDAEMON.EXE - Crystal OS/2 daemon application supporting WinOS2 audio
   CWGMSG.SYS   - DSP manager messaging device driver
   CWGUTIL.SYS  - DSP manager utility device driver
   CWINST.DLL   - Installation DLL.  Called by minstall.exe at install time.
   CWWINAUD.DRV - Crystal WinOS2 Audio driver
   CWWINVDD.SYS - Crystal VDD which implements WinOS2 audio
   INSTALL.CMD  - Installation.  Support double-click start of minstall.exe
   MIDIMAP.CFG  - MIDIMAP file for Windows 3.1 FM driver
   OPL3RES.DLL  - Static capabilities DLL for MMPM/2 FM
   README.TXT   - This file
   TIMER0.SYS   - IBM High res timer driver/clock, installed on Warp only


7) Installation Procedure
-------------------------------------------------------------------------------
To install device support, insert the Crystal Audio for OS/2 diskette in
drive A: (or whichever drive Crystal Audio for OS/2 diskette is in).
Start the Multimedia Application Install program:

   Warp 3 - Multimedia installation program is located inside 
            the Multimedia folder, on the OS/2 desktop.

   Warp 4 - Multimedia installation program is located inside the 
            System Setup folder.  The System Setup folder is located
            inside the OS/2 System folder, on the OS/2 desktop.

Alternatively, you can execute MINSTALL from an OS/2 command prompt 
or browse the installation diskette with the OS/2 "drives" utility and
double-click on the ICON for "install.cmd".

Once you are in the multimedia installation program, select
Source Drive A: (or whichever drive Crystal Audio for OS/2 diskette is in).

The installation program will show
   Crystal Audio PCI  (Pre-selected)

Click the "install" button to proceed with the installation.  Read and follow
the instructions provided by the installation program.

NOTE: To remove audio and MIDI drivers, select zero devices when 
prompted for the number of devices to install.  
Selectable choices are 0 and 1.

The following files are installed:

If system is Pre-OS/2 Warp version 4 - Update CLOCK drivers
   \OS2\BOOT\CLOCK01.SYS        IBM high resolution timer support
   \OS2\BOOT\CLOCK02.SYS        IBM high resolution timer support
   \OS2\BOOT\TIMER0.SYS         IBM high resolution timer support

If system is Pre-OS/2 Warp version 4 and fixpack level < 26)
   \MMOS2\DLL\AMPMXMCD.DLL      IBM DLL for mixer API/DART (from DART DevCon)
   \MMOS2\DLL\AUDIOIF.DLL       IBM DLL for mixer API/DART (from DART DevCon)

If system is Pre-OS/2 Warp version 4 and fixpack level is 26)
   \MMOS2\DLL\AMPMXMCD.F26      IBM standard FP 26 DLL (un-do prior installs)
   \MMOS2\DLL\AUDIOIF.F26       IBM standard FP 26 DLL (un-do prior installs)

If system is Pre-OS/2 Warp version 4 and fixpack level > 26)
   No MMPM/2 system DLLs are updated

If Crystal PCI Audio is installed:
   \OS2\BOOT\CWCMMPM.SYS        Crystal OS/2 Audio device driver
   \OS2\BOOT\CWCSPUD.SYS        Crystal DSP manager device driver
   \OS2\BOOT\CWGMSG.SYS         Crystal DSP manager messaging device driver
   \MMOS2\CWGUTIL.SYS           Crystal DSP manager utility device driver
   \MMOS2\CWCUTIL.EXE           Crystal DSP manager utility application
   \MMOS2\CWWINVDD.SYS          Crystal VDD supporting WinOS2 audio DRV
   \MMOS2\CWDAEMON.EXE          Crystal OS/2 application for WinOS2 audio
   \MMOS2\DLL\CWINST.DLL        Crystal installation DLL
   \OS2\MDOS\WINOS2\SYSTEM\CWWINAUD.DRV Crystal WinOS2 audio driver
   \OS2\MDOS\WINOS2\SYSTEM\CWBFM.DRV    Crystal Windows 3.1 FM MIDI driver

These lines lines will be added to the OS/2 CONFIG.SYS file.:
   BASEDEV=CWGMSG.SYS
   BASEDEV=CWCSPUD.SYS
   BASEDEV=CWCMMPM.SYS /N:CWCAUD1$
   DEVICE=C:\MMOS2\CWGUTIL.SYS
   DEVICE=C:\MMOS2\CWWINVDD.SYS
   RUN=C:\MMOS2\CWCUTIL.EXE
   RUN=C:\MMOS2\CWDAEMON.EXE

These lines lines will be added to the \OS2\MDOS\WINOS2\SYSTEM.INI:
Drivers section: [drivers]
   WAVE=CWWINAUD.drv
   MIDI=CWBFM.drv


8) Device Driver Command Line Options
-------------------------------------------------------------------------------
The following tables describe the audio driver command line options.

CWCMMPM.SYS    - Audio device driver command line options

Option/Format  Description           Valid Values (* = Default Value)
---------------------------------------------------------------------
/N:<name>      Name of PDD           CWCAUD1$ (Name assigned by minstall)

There are no other parameters.  

Device driver options should be set via configuration file, CWCMMPM.INI.


9) Device Driver .INI file
-------------------------------------------------------------------------------
An extensive set of configurable options are contained in the 
file \mmos2\cwcmmpm.ini.  There are no config.sys command line equivalents.

All of the configurable settings are listed in the file along with 
comments describing their defaults and selectable values.

All changes take effect the next time the system is booted.


10) Audio in WIN-OS/2 Sessions
-------------------------------------------------------------------------------

Crystal Semiconductor device drivers provide outstanding support for WinOS2.

- Crystal WinOS2 audio drivers are automatically installed during
  installation of OS/2 native audio device drivers.

- Crystal WinOS2 drivers are OS/2 specific and communicate with the 
  native OS/2 audio driver to perform audio operations.

- The audio device is considered "in-use" only when WinOS2 is 
  actively making sound.

For most users, this support prevents concurancy related errors from
occuring.  Still, they can occur.  Some details on concurancy and
other tips for WinOS2 and DOS game execution follow:

The installation automatically configures WinOS2 Audio when you install 
Crystal OS/2 Audio drivers.  
Windows audio drivers are installed for OS/2 Fullpack systems only.

The Crystal WinOS2 drivers are OS/2 specific and when loaded under WinOS2
communicate with the OS/2 native audio device drivers to perform audio.


11) Audio in DOS Sessions
-------------------------------------------------------------------------------

To enable game processing, the following DOS properties are commonly set.
This is not done automatically by the installation.  Many of the below
DOS properties default to the correct settings.  INT_DURING_IO does not
and it is the most critical setting for effective game execution.

    WIN_RUN_MODE                 3.1 ENHANCED COMPATIBILITY
    INT_DURING_IO                On  ( This is the most critical setting )
    HW_TIMER                     On
    VIDEO_SWITCH_NOTIFICATION    On
    VIDEO_8514A_XGA_IOTRAP       Off
    VIDEO_RETRACE_EMULATION      Off ( This setting critical for graphics )
    DPMI_MEMORY_LIMIT            8

Most DOS games are written to directly program a Sound Blaster Pro or
compatible device for wave audio and/or an Adlib or Sound Blaster 
compatible FM device such as the Yamaha OPL-2 or OPL-3.

With Crystal PCI Audio, no Sound Blaster compatible audio is provided
for DOS session execution.  OPL-3 FM is available.  It will usually 
be referred to as 'music' or 'Adlib' inside game configuration panels.

There are no concurrency issues with game execution - access to the 
FM device is not serialized.  This is done on purpose to avoid 
access conflicts.  It does however allow the execution of a DOS game
to disturb playback of MIDI in OS/2 or WinOS2.  The worst case of 
such dual programming will be corrupted sounds.  That is, MIDI 
notes could potentially be played with the wrong instruments.
Stopping/Starting will usually reset the FM configuration.


12) Audio Concurrency Issues - OS/2, DOS, Win-OS/2
-------------------------------------------------------------------------------

MMPM/2
------
The OS/2 multimedia subsystem (MMPM/2) is designed such that, when an
application is running in the foreground (has focus), then that application
takes priority over applications which do not have focus.
MMPM/2 manages the device contention, forcing pauses and resumes to
pass use of the device to the foreground application.

This support is only available for OS/2 native applications.

When DOS games or WinOS2 drivers try to use the device, MMPM/2 is not
implicitly involved in mannaging contention.

DOS GAMES
---------
With the PCI parts, there is no Crystal provided support for 
Sound Blaster style audio in an OS/2 DOS session. 
FM (OPL-2) is supported, but access does not need to be serialized.

FM does not suffer the same restrictions that traditionally cause 
sharing issues between OS/2 native and DOS game execution.  
If OS/2 MIDI playback is occuring concurrently with a DOS game,  
the two device drivers will cause each other to play improper sounds, 
but no catestrophic system errors will occur.  
That is, the system will not trap or hang.

The added value of no contingincy issues is greater than the downside 
of the potential for some bad sounds produced by the FM chip.

For this reason, access to the FM device is never denied.

WinOS2 Audio
------------
When WinOS2 is quiet, it is "idle" and will not prevent MMPM/2 or other
WinOS2 sessions from using the device.  This also allows you to
run multiple separate WinOS2 sessions with no concern of audio sharing
between the sessions.

MMPM/2 by contrast considers the device "busy" whenever an OS/2
multimedia application is loaded.  For example, loading the OS/2 shipped
Digital Audio player will mark the device as "in-use" and has historically
prevented WinOS2 from using the audio device.
This is often not an issue as the most prevalent OS/2 multimedia
application, system sounds, releases the device after each sound is played.

For more information on this subject, see OS/2 online documentation
    VIEW /AUDIO
    VIEW /MULTIMEDIA
    VIEW /SOUNDS

This Crystal Semiconductor driver set goes one step further on 
WinOS2 access to the audio device.  When WinOS2 needs access to the 
audio device, a message is sent to a background OS/2 native application
which performs MMPM/2 commands to kick all native OS/2 applications off
of the audio device.  This has the effect of forcing MMPM/2 off the device
when WinOS2 requires use.

The bottom line is that contention issues are minimized.  When WinOS2 
wants use of the audio device, it kicks everyone else off of the device.
When WinOS2 is done, the driver releases ownership of the audio device.  

On the release, native OS/2 streams that were kicked off the device 
are automatically restarted.


13) PCI Configuration - IRQ Assignment
-------------------------------------------------------------------------------
PCI devices do not participate in PnP ISA configuration.

The traditional issues of configuring IRQ/IO/DMA resources among
all of the system's ISA devices do not apply.  PCI devices are 
configured by the system BIOS - and ONLY by the system BIOS.

The OS/2 operating system includes ring-0 services that device
drivers use to query their device settings.

The Crystal audio driver asks OS/2 to determine if its device is 
present and queries the resources that have been assigned.  Since
the resources are assigned by the BIOS, there is no chance of conflict.

The Crystal Semiconductor PCI audio device has these resources.
   1) Base address 0
   2) Base address 1
   3) IRQ
   4) Optionally, FM I/O ports, 0x388..0x389

Memory resources are assigned by the BIOS to physical memory
addresses that are above the limit of the machines physical memory.

PCI interrupts are also assigned by the BIOS.  PCI interrupts 
are, by definition, shareable.  Multiple devices can be assigned
to the same PCI interrupt.

For the most part, this means the traditional ISA style concerns 
over resource allocation are not an issue on PCI.  The only issue
that can arrise is the PCI use of an IRQ that is wanted for ISA.

Switching a PCI device to a different IRQ is the domain of the
system BIOS.  On many systems, the IRQ assigned to a PCI device
is configurable via the PC's setup panel.  On others it is fixed.
In all cases, the OS/2 operating system and the Crystal Semiconductor
PCI audio device will use the resources assigned by the BIOS.
There is no provision for runtime override.

FM I/O ports
------------
The FM OPL-3 I/O ports at locations 0x388..0x38B are conditionally
installed.  At boot time, the Crystal PCI device driver queries 
the presence of other providers of FM hardware.

The FM hardware on the Crystal PCI part is only turned on if it
will no conflict with another hardware FM implementation.
The check for presence of other FM hardware is done very late in boot
sequence - allowing all other device drivers an opportunity to install
their hardware before the check for other FM hardware is made.

This means that if your system has an ISA audio device installed
that implements FM, that device will be used for music processing
in preference to the Crystal Semiconductor PCI implementation.

                                                  
14) Web Site - Where To Get Updated Drivers
-------------------------------------------------------------------------------
This device driver supports the following Crystal Semiconductor devices
   CS4614, CS4624 and CS4280

This device driver should NOT be used for any of the Crystal Semiconductor
ISA audio CODECs, including the CS4231, CS4232, CS4236, CS4236B, CS4237B, 
CS4238B, CS4235 and CS4239.

Updated OS/2 drivers are posted on the Cirrus Logic corporate web site.

      http://www.cirrus.com/drivers/audiodrv/


15) Problems/Questions
-------------------------------------------------------------------------------
Please e-mail problems/questions to the following address:
montalvo@crystal.cirrus.com
