
	       Pro AudioSpectrum Software Development Kit
     Copyright (c) 1991,1992. Media Vision, Inc. All Rights Reserved


		  Final Release 2.00, July 22, 1992
		 Update Release 2.01, October 2, 1992


    This release of source code for the Pro AudioSpectrum has been
developed with Microsoft MASM, 5.1, and Microsoft C, 6.0.

    The code on this disk is fully functional. Each routine has been
compiled for tiny, small, and large model.

    The contents of this floppy should be copied into the same directory
structure as found on the floppy. When copied on to the hard drive, the
developers kit will build the following directory tree:


        \INC
	\SAMPLES
	\PAS  ÄÄÄÂÄ INC
		 ÃÄ MISC
		 ÃÄ PCM
		 ÃÄ SUBS ÄÄÄÄÂÄ MISC
		 ³	     ÃÄ MIXERS
		 ³	     ÃÄ MVSOUND
		 ³	     ÃÄ PCM
		 ³	     ÀÄ VIDEO
		 ÀÄ TOOLS


    To install the contents of the floppy to your hard drive, do the
following:


        1) Change directories to the root on both the source and
	   target drives.

	   cmd:    c:\>CD \
	   cmd:    c:\>CD a:\

	2) Use DOS's XCOPY to move the entire contents of the first
	   diskette to the hard drive.

	   cmd:    C:\>XCOPY a:\*.* /s

	3) Again, use DOS's XCOPY to move the entire contents of the
	   second diskette to the hard drive.

	   cmd:    >XCOPY a:\*.* /s

	4) Once XCOPY is done, you're all done.


    Remember, to use the MAKE files, set the "INCLUDE" and "LIB"
environment variables before executing MAKE.EXE.

   cmd:  SET INCLUDE=c:\inc;c:\pas\inc;%include%
         SET LIB=c:\pas\inc;%include%

    Also, If you intend on rebuilding the libraries in this release,
you may have to modify the include and library paths.



                      ----====< Revision History >====----


	Changes as of 10/02/92

		1. MVGetHardware name has been changed for consistency,
		   to mvGetHardware.

		2. The MIDI lowlevel code had a fatal bug when used in
		   large model due to NEAR declaration.

		3. PCMIOC.C now has additional routines that provide
		   simple, arbitrary block size, record/playback. The
		   code is complete, but needs complete documentation.
		   Code examples will follow on the next update.

        Changes as of 07/22/92

                1. CDROM access routines are provided to start/stop
		   music CDs. Reference documentation is included in
		   the developers manual.

		2. MIDI low level routines have been added. Hardware
		   specs are provided in the developers manual.

		3. Source code to the mixer interface is provided, with
		   major caveats.

		4. All low level routines that touch the hardware, now
		   reference it indirectly. This allows the code to
		   run on board that are using alternate I/O addresses.
		   All Pro Audio Spectrums based on the MV101 ASIC, can
		   be moved to different I/O locations.

		5. Building the libraries can now be accomplished using
		   NMAKE or MAKE. All the make files are geared to be
		   executed by both utilities. Batch files are included
		   to build each model type.

		6. 3812.EXE has been replaced by OPL3.EXE. This program
		   gives the user point-and-click control over the OPL3
		   FM chip.

		7. Borland Tools support is forthcoming. The assembler
		   code can be compiled using MASM51 and QUIRKS mode. The
		   'C' routines still have some areas to be worked out.

		8. Source code for PLAYFILE/RECFILE have been updated to
		   perform 16 bit digital audio.

		9. High order DMA and IRQ channels are supported. See
		   MVSOUND.ASM for example code.

	       10. More sample programs are included, for FM, MIDI, etc.

	       11. MVSOUND.SYS is required for initializing the hardware
		   and performing mixer/volume control.

	       12. A source code control system has been established at
		   Media Vision to track all modules in the developers
		   kit. Each source code file contains a log of the
		   modifications.

        Changes as of 12/02/91

		1. MIXERC.C and the static mixer driver have been
		   changed slightly to allow the static driver to
		   share the same hardware state table as the linked
		   library routines. Before, this, two separate
		   tables were used, causing a potential miscommun-
		   ication between modules.

		2. MIXERC.C has a new function call added that allows
		   the programmer to load a new hardware state pointer,
		   or read the existing one, in the static mixer driver.
		   This is only required if the programmer wants to
		   use a third table. For most applications, this
		   function can be ignored. All the linked and static
		   code now use the same table.

		2. MIXERC.C had a bug in checking the version number
		   of MVSOUND.SYS. This was corrected by adding one
		   instruction.

        Changes as of 8/26/91

		1. StartFileOutput routine has a new parameter. A
		   "long" variable that holds the number of bytes to
		   be played from the file. Once the bytes have been
		   played, the file pointer will point to the next
		   byte. To play the whole file, just pass in a -1.

		2. PCMState has a new parameter defining the audio
		   compression. At the time, it is 0. Look for coming
		   updates...

		3. PCMIO.H has been updated for the two changes
		   mentioned above.

		4. The Block IN/OUT API routines in PCMIOC.C has been
		   re-written due to problems in starting and stopping
		   the DMA buffer. There was popping on playback between
		   blocks.

        Changes as of 8/21/91

		1. RECFILE.EXE had a couple more bugs in creating the
		   .WAV header. Both RECFILE.EXE and FIXWAVE.EXE have
		   been updated to fix these problems.

		2. PCMIOC.C had a bug in ASpecialContinueFileInput which
		   included discarded blocks in the "ProcessedBlockCount"
		   variable.

        Changes as of 8/02/91

		1. STATE.H and STATE.INC had some incorrect structure
		   entries.

        Changes as of 7/19/91

		1. MASM.INC macro "externADDR" used @datasize instead
		   of @codesize. This affected certain memory modules.

		2. PCMIO.H was moved from the "\inc" subdirectory to
		   "\pas\inc". This was done for the Thunderboard code.

		3. RECFILE.EXE now has a feature to pause during recording
		   by typing the spacebar.

	Changes as of 7/17/91

		1. PLAYFILE.EXE has been extensively re-written to
		   handle .VOC files in a more efficient way.

                2. RECFILE.EXE now records to .VOC, as well as, .WAV
		   formats.

		3. All the make files have been modified to remove
		   all references to "LIBH". This is not necessary
		   when using combined Microsoft libraries.

		4. Previously omitted routines for PCM polling are
		   now available in source code. The names are,
		   "EnablePCMRecord" and "EnablePCMPlay". The code
		   is located in \PAS\SUBS\MVSOUND\MVSOUND.ASM. These
		   routines are similar to "PCMPlay" and "PCMRecord",
		   but only setup the hardware for polling. The DMA
		   is not involved; therefore, once either routine is
		   called, the CPU must poll for all data transfers.

		5. WAVEIT.EXE had a bug that appended up to 2 extra
		   samples to the end of the new output file. This
		   caused popping on playback.

		6. MVGetHWVersion now returns a long, instead of an
		   int. The high word indicates a product type: 0 for
		   the Pro AudioSpectrum; and later, will return a 1
		   for the Thunderboard.

        Changes as of 7/12/91

		1. MVSOUND.SYS is now included in the tools subdirectory.

		2. \SAMPLES subdirectory has been added to provide
		   some sample .WAV files. Other miscellaneous data
		   files will also be placed here in the future.

		3. A list of all files is now included in the "\PAS"
		   subdirectory. The file name is CONTENTS.LST.

		4. A make file for MVI.C has been added to the \PAS\MISC
		   subdirectory.

        Changes as of 7/08/91

		1. In the function call, "cMVGetMixerFunction" and
		   "MVGetMixerFunction" the returned integer is made
		   up of 2 bytes. The low byte is the current mixer
		   setting (in percentage: 0 - 100), and the high
		   byte is TRUE/FALSE (0 or FF) to indicate if that
		   channel is active. This also affects MVSOUND.SYS,
		   since this routine is incorporated. The new version
		   number for MVSOUND.SYS is 1.03.

		2. NOTE!!! Since the tiny programming model was not
		   supported in Microsoft C 5.1, some of the ".C" modules
		   will not link correctly in tiny model; Therefore, until
		   furthur notice (and furthur re-writing of code...) C 6.0
		   will be required for tiny model. This only affects those
		   modules written in "C".

		3. DIALOG.C and DIALOGA.ASM both contained bugs when
		   used in large model. Stuff like using near pointers
		   instead of far, etc.

		4. An early change in the code replaced the "FFAR"
		   used in some .ASM modules. There is a MASM
		   "feature" in version 5.10 (but corrected in 5.10b)
		   that did not allow for equate text replacedment on
		   the EXTRN statement.  The new approach uses a
		   macro that configures the EXTRN for near/far
		   depending upon the selected model.

		5. The developers code release disk has been reorganized
		   to allow for future additions for the Thunderboard.
		   This change places a new directory, "inc" in the
		   root. This directory will hold common include files
		   for both the Pro Audio Spectrum and the Thunderboard.

		6. A new function has been added to the library. The
		   name is "InitMVHardware". It resets the hardware to
		   the same default state as of MVSOUND.SYS.

