Sequence of steps using the low-level code from PAS-16 SDK: 1 InitMVSound() connects to "mvsound.sys" call this once per program required - retrieves DMA/IRQ numbers from mvsound.sys 2 InitPCM() connects the IRQ/DMA call this once per program, or after a call to RemovePCM() required 3 PCMInfo() set samplerate, datasize, mono/stereo call this each time the parameters change required - programs the timers and other hardware 4 DMABuffer() set the location, size, divisions call this each time the parameters change required 5 UserFunc() set your routine called at IRQ time call this each time you want a different routine optional - instead, you can poll a variable 6a PCMPlay() start playing... required - unless you want to record! 6b PCMRecord() start recording... required - duh. 7 PausePCM() pause play/record if desired 8 ResumePCM() resume paused play/record if you paused and want to resume! 9 StopPCM() stop IRQ/DMA activity required - unless you play/record into infinity! 10 RemovePCM() disconnect IRQ/DMA required - failure to call it before program terminates causes IRQ's to vector to code that is no longer there!