Mr. Ksoft
Well-known member
Sadly these aren't as helpful as they could be. All the example code is meant to be used against the MVSOUND.SYS driver - the actual low level communication is hidden in that precompiled driver. This is even called out in the Developer's Toolkit Reference (Ch. 20 - Mixer Programming Essentials):Heh, talk about a lazy design. They seem to have told someone "Take this ISA card and make it work on Nubus". Some x86 ASM samples for the mixer can be found in this zip: http://www.symphoniae.com/soundcard/MediaVision/SDK/PASSDK_201.zip
check the PAS\SUBS\MIXER directory.
You can program the mixer using either the text string, command line interface or the low-level software API. [...] A direct hardware API is not provided.
So that does leave us needing to figure out how to communicate with the mixer ourselves, or I can see if there's something in the driver interface that replicates the MVSOUND.SYS calls. On the plus side, the include files in the devkit do at least identify the correct I/O addresses and what bits correspond to which mixer channels. It's just determining how the communication works - we only have two possible single byte addresses for the mixer (
0xB88
for the main one and 0x78B
for the "Parallel Interface Audio Mixer", whatever that is) so you probably have to twiddle some bits to tell it what channel to affect and use the rest of the bits to send a value. Still not totally sure about that part, but I'll keep studying things.