            C-Media OS/2 Audio Driver Version 0.2.0
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Contents
========
1    Description
2    Features
3    History
4    Requirements
5    Installation / Uninstall
6    Config.sys options
7    Known problems
8    File listing
9    Untested features
10   Contacting the author
11   Warranty


1 Description
=============

This is a port of the open source C-Media PCI Linux audio driver. It is
based on Sander van Leeuwen's Soundblaster Live! project. Although the 
driver is almost feature complete, it should still be considered beta 
software. (see warranty section)


2 Features
==========

- One playback stream
- One record stream
- Full duplex
- Support for the IOCTL90 mixer interface (designed by Joe Nord of
  Crystal Semiconductor and supported by the Crystal OS/2 audio drivers)
- experimental four channel output


3 History
=========

0.2.0	- Additional option to enable microphone volume boost

0.1.9	- Fixed trap when an app tries to play sound at 0 kHz sampling rate ;-)
	- Fix for lost sound in ODIN after application crash

0.1.8	- recording from S/P DIF input
	- "C-Media Control" applet to set S/P DIF options
	- workaround to avoid distorted S/P DIF output on rev. 39+ chips
	- volume control for PC speaker
	- fix for APM suspend/resume problem while playing MIDI

0.1.7	- MMPM/2 MIDI Support (OPL3 FM synthesis)

0.1.6	- boot problem with rev. 55 chips fixed
	- APM support
	- DirectSound interface for ODIN re-enabled
	- workaround for possible resource clash with COM.SYS

0.1.4	- IOCTL90 mixer callback supported
	- IOCTL90 global wave volume adjustment (LBMixer's DAC control)
	  ATTENTION: This function will override the per-stream volume
		     setting. If this is not desired, the DAC control in
		     LBMixer must be deactivated.
	- Master volume und master balance setable via LBMixer (-mv)
	- CD-, line and aux inputs now fully silent, when volume set to 0
	- additional options for the 32bit driver (see 6.)
	  ATTENTION: If you install over an existing version, see 5.
	- SPDIF output (only at 44.1kHz and 48kHz)
	- lower interrupt rate, faster interrupt processing

0.1.3	- DART Support for Warp 3
	- Aux input usable
	- fixed occasional hangs with certain MP3 players
	- rear speakers activated
	- 4-channel DART output capability

0.1.1	- First public beta release


4 Requirements
==============

- eCS, OS/2 Warp 4, Warp 3 or Warp Server for e-Business

- 486 processor or better

- C-Media CMI8738 sound chip in either onboard or standalone
  configurations. Tested hardware:

  Mainboards:	ASUS A7M266
		ECS P3VAP-A+
		IWILL K*266

  Notebooks:	NatureTech 790S

  Soundcards:	Zoltrix Nightingale
		Leadtek WinFast 4Xsound
		Trust Sound Expert, Item No. 12667


5 Installation / Uninstall
==========================

To install the C-Media driver:
- Make sure your BIOS configures the chip (assigns IRQ and IO addresses)
  Look for a 'PnP OS' (or similar) setting in your BIOS options and set 
  it to 'No' or 'Off'.
  The driver does not work if the BIOS doesn't assign hardware resources 
  to the card.
- Unzip driver archive
- Run install.cmd
- Select 'C-Media 8738 Audio' and continue installation
- Reboot

ATTENTION:	If you install over an older version, do *NOT* choose
		"Update CONFIG.SYS" in MINSTALL. Otherwise you might
		end up with two entries for the same driver !

To remove the driver you should proceed with the installation 
as described above, but select zero C-Media cards when asked.

To use the C-Media's joystick port you need to install one of the
OS/2 joystick drivers.


6 Config.sys options
====================

DEVICE=J:\MMOS2\CMPCI16.SYS /V /C /M /L /A
- /V: verbose (prints copyrights during driver init)
- /C: enable CD audio input
- /M: enable microphone audio input
- /L: enable line-in audio input
- /A: enable aux-in audio input

The installation adds the verbose (/V) and CD (/C) settings to the 
config.sys line.


DEVICE=J:\MMOS2\CMPCI32.SYS /V /D /R
- /V: verbose (prints copyrights during driver init)
- /D: print start and end address of code
      (useful to locate the code that causes a trap (CS:EIP in trapscreen))
- /R: use line-in jack to output rear channels
- /S: enable S/P DIF output
- /2: use secondary S/P DIF input
- /I: invert S/P DIF input signal
- /M: enable microphone boost


The installation adds the verbose setting (/V) to the config.sys line.


7 Known problems
================

- Crash in PMMERGE when installing the driver on a system that uses the Scitech
  display drivers. 
  Workaround: move the first minstall window (which asks you to select the sb
  driver) almost completely outside of the screen and press enter.

- No sound when there are still inactive audio drivers in MMOS2\mmpm2.ini.
  To correct the problem uninstall the C-Media and your old audio driver.
  You can also manually remove references to the old driver:
        - uninstall the C-Media driver
        - edit MMOS2\mmpm2.ini 
               - search for 'Waveaudio=' section and remove any names that
                 are listed on that line
               - search for 'Ampmix=' section and remove any names that
                 are listed on that line
                 (result: Waveaudio=
                          Ampmix= 
                 )
        - reinstall the C-Media driver
          MMOS2\mmpm2.ini should now contain:
                 Waveaudio=CMEDIAWAVE01
                 Ampmix=CMEDIAAMPMIX01
        - reboot
  
- Volume of rear speakers not adjustable in four channel mode.
  Unfortuanetly, there is no solution for that at the moment.
  I still have not completly given up the hope to get some specs
  from C-Media...

- Per-stream volume control doesn't work if S/P DIF output is
  enabled. This problem only occures on rev. 39 or newer chips.


8 File listing
==============

Installation files:

	install.cmd		installation program
	audfiles.scr		script used by minstall.exe
	audplay.ico		icon file
	audghelp.hlp		installation help file 
	cardinfo.dll		resource file used by minstall.exe
	control.scr		script used by minstall.exe
	midiplay.ico		icon file
	cmpci16.sys		16 bits MMPM/2 audio driver
	cmpci32w4.sys		32 bits C-Media audio driver, compatible
				with any Warp 4 and Warp 3 fixpack level
	cmpci32kee.sys		32 bits C-Media audio driver, uses the new KEE 
				API found in Warp 4 + Fixpack 13 or Warp Server
				for e-Business
	cmpciset.exe		C-Media control applet
	spiinfo.dll		resource file used by minstall.exe
	updini.scr		script used by minstall.exe


9 Untested features
===================

Due to the lack of suitable hardware there are some functions in the
driver which could not be tested by the author. These are:

- other C-Media chips like CMI8338A, CMI8338B and CMI8738B



10 Contacting the author
========================

When you find a bug in the driver, you can contact the author by
email at:

	r.ihle@s-t.de

Bug reports should include the following information:
- C-Media chip type
- OS/2 version + fixpack level
- Description of the procedure to reproduce the bug
- Trap description (register contents) (if you're reporting a crash)
  Add the /D option to the CMPCI32.SYS config.sys line and write down
  the start & end address printed during the driver initialization.

Please note that I do *not* want people to mail me about problems that
aren't clearly bugs in the driver.
Also, do NOT mail the Linux authors or the SB Live! driver author about 
problems with this OS/2 driver. If a problem in the driver turns out to 
be a bug in their code, then I will contact them.


11 Warranty
===========

EXCEPT AS OTHERWISE RESTRICTED BY LAW, THIS WORK IS PROVIDED
WITHOUT ANY EXPRESSED OR IMPLIED WARRANTIES OF ANY KIND, INCLUDING
BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF FITNESS FOR A
PARTICULAR PURPOSE, MERCHANTABILITY OR TITLE.  EXCEPT AS
OTHERWISE PROVIDED BY LAW, NO AUTHOR, COPYRIGHT HOLDER OR
LICENSOR SHALL BE LIABLE TO YOU FOR DAMAGES OF ANY KIND, EVEN IF 
THEY HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.


