Specifications
Digitized Sound I/O Programming 3-13
8-bit Mono Single-cycle Transfer
The following are the steps needed to perform 8-bit mono PCM and ADPCM single-
cycle DMA mode transfer:
1. Set up the DSP interrupt service routine.
2. Enable the interrupt used.
3. Turn on the DAC speaker for digitized output. Otherwise, turn it off.
outp(wSBCBaseAddx+0xC, 0xD3)
to turn off the DAC speaker
outp(wSBCBaseAddx+0xC, 0xD1)
to turn on the DAC speaker
4. Program the DMA controller for 8-bit single-cycle DMA mode transfer.
5. Set the DSP transfer Time Constant.
outp(wSBCBaseAddx+0xC, 0x40)
outp(wSBCBaseAddx+0xC, bTimeConstant)
6. Send an I/O command followed by data transfer count.
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
75h
8-bit to 4-bit ADPCM output with reference byte
77h
8-bit to 3-bit ADPCM output with reference byte
17h
8-bit to 2-bit ADPCM output with reference byte
wLength
is one less than the actual number of bytes to be transferred.
For example, to transfer 8KB of 8-bit PCM data,
wLength = 2000h - 1 = 1FFFh
Hence,
wLength.LowByte = 0FFh and
wLength.HighByte = 1Fh
.
The transfer begins here. The DSP will generate an interrupt after transferring the
programmed number of bytes.