

        ----=====================================================----
	----====< This file contains additional programming >====----
	----====< information for the Pro Audio Spectrum.   >====----
	----=====================================================----


	Programming PCM stuff... (For the Original Pro Audio Spectrum)

           A few considerations when programming the 8253 timer chip.

	    1. When programming timer 0 (sample rate timer), and
	       timer 1 (sample buffer count), remember to first
	       program the shadowed timer control register (138Bh)
	       to set up the timer mode. This was not well documented
	       in the early versions of the developers kit manual.

	    2. A speed related problem has been reported when
	       programming the 8253 timers. A period of time must
	       elapse between programming the shadowed timer control
	       register, and the actual timers. This should be
	       minimally 2 micro seconds. The best approach is to
	       perform an OUT instruction, then a couple IN
	       instructions. The I/O instructions will slow all
	       processors down to the 8 mhz rate; thereby, forcing
	       proper timing on all AT class machines.

	    3. A special note about the sample buffer counter. Normal
	       PCM record and playback uses mode 2 of the 8253 timer.
	       This mode only accepts values from 2 through ffff+1 (or
	       zero for 64k). A value of 1 will not generate the
	       expected end of buffer interrupt.

	    4. The description of the sample rate and sample buffer
	       mask bit in the developers manual, is not clear. These
	       bits are the enable gates that allow the timers to run.
	       These bits are set to enable the timers, not to disable
	       them.

	New programming considerations for support the Pro Audio
	Spectrum products based upon the MV101 ASIC.

	    Changes to the 8253 timer chip.

		The MV101 ASIC emulates the 8253 timer chip, with
		a couple changes. Timer 0 is only an 8 bit value.
		When programming the timer for 16 bits, the high
		order byte will be ignored.

		Timer 1 functionality has been modified. The timer
		works the same for 8 and 16 bit PCM on 8 bit DMA
		channels, but changes slightly for the 16 bit DMA
		channels. The count needs to be divided by 2 when
		programming the timer for use on a 16 bit channel.

	    Single Shot DMA PCM transfers.

		When performing DMA transfers, and NOT using the
		auto-initialize DMA mode, one special step should
		be performed at IRQ time. Upon receiving a Sample
		Buffer Count interrupt (buffer complete IRQ), turn
		off the PCMEnable bit in the cross channel register.
		Once the DMA is programmned for the next block,
		and timer 1 reprogrammed for the new block length,
		the PCMEnable bit can be turned back on.

	    DMA & IRQ channel support.

		The Pro Audio spectrum product line, based upon the
		MV101 ASIC, supports the high order DMA and IRQs
		of the AT class machines. Please add support for
		these channels. Example code can be found in
		MVSOUND.ASM in \PAS\SUBS\MVSOUND.

	    Board I/O relocation.

		The MV1010 ASIC allows the Pro Audio to be relocated
		to alternate base I/O addresses. For example, the
		card can be moved, from 388 to 384. This affects all
		native Pro Audio addresses, such as the filter, pcm,
		interrupt, fm, and MIDI addresses. Use the function,
		"mvGetHWVersion" to determine the current I/O address.
		For coding examples, checkout MVSOUND.ASM in the
		subdirectory, \PAS\SUBS\MVSOUND. This code calls
		mvGetHWVersion, then uses a special memory variable,
		"_MVTranslateCode" to adjust the original address.

	    Stereo 2OP FM Synthesis.

		The new OPL3 4OP FM chip does not exactly emulate
		two 2OP FM chips. Two programs, PAN2OP.C and PHASE.C,
		located in \PAS\SUBS\FM, show how to perform stereo
		2OP on either hardware platforms.

