Specifications
3-16 Digitized Sound I/O Programming
When the DSP sends an interrupt, the following steps should be done in the interrupt
service routine:
1. Transfer data between the DMA buffer and the storage buffer.
To stop auto-initialize DMA mode, you can either send the exit auto-initialize
DMA mode command or program the DSP for single-cycle DMA mode transfer.
2a. Send the exit auto-initialize DMA command.
outp(wSBCBaseAddx+0xC, 0xDA)
Upon receiving the exit auto-initialize DMA mode command, the DSP will
exit auto-initialize DMA mode immediately at the end of the current block
transfer.
2b. Program the DSP for single-cycle DMA mode transfer.
outp(wSBCBaseAddx+0xC, bCommand)
outp(wSBCBaseAddx+0xC, wLength.LowByte)
outp(wSBCBaseAddx+0xC, wLength.HighByte)
bCommand
is one of the following:
bCommand Description
24h
8-bit PCM input
14h
8-bit PCM output
74h
8 bit to 4 bit ADPCM output without reference byte
76h
8 bit to 3 bit ADPCM output without reference byte
16h
8 bit to 2 bit ADPCM output without reference byte
At the end of data transfer:
1. Turn off the DAC speaker.
outp(wSBCBaseAddx+0xC, 0xD3)
2. Disable the interrupt used.
3. Restore the original interrupt service routine.
4. Release the allocated DMA buffer.