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(wSBCB0xC, 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(wSBCB0xC, bCommand)
outp(wSBCB0xC, wLength.LowByte)
outp(wSBCB0xC, 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(wSBCB0xC, 0xD3)
2.
Disable the interrupt used.
3.
Restore the original interrupt service routine.
4.
Release the allocated DMA buffer.