Contents of the READ.ME file
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:
To install the contents of the floppy to your hard drive, do the
1) Change directories to the root on both the source and
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%
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,
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
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
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
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
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
3. PCMIO.H has been updated for the two changes
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
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"
Changes as of 8/02/91
1. STATE.H and STATE.INC had some incorrect structure
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
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
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.