2-4
Introduction to DSP Programming
Writing to DSP
DSP commands and data are sent through the Write Command/Data port.
Before data is written to the DSP, bit-7 of the Write-Buffer Status port must be
checked to ensure that the DSP command/data buffer is empty. If bit-7 is 0, the DSP
buffer is empty and is ready to receive commands or data. Otherwise, no commands
or data should be written to the DSP.
The following assembly code fragment shows the process of writing a command or
data byte to the DSP:
mov
dx,wSBCBaseAddx
; SBC base I/O address 2
x0h
add
dl,0Ch
; Write-Buffer Status port, 2
xCh
Busy:
in
al,dx
; Read Write-Buffer Status port
or
al,al
; Can write to DSP?
js
Busy
; Bit 7 set, try again
mov
al,bData
; Get DSP command or data
out
dx,al
; Send to DSP
Handling Interrupts from DSP
The DSP generates a hardware interrupt for each of the following processes:
DMA mode ADC
DMA mode DAC
Interrupt mode MIDI input
An interrupt service routine (ISR) has to be set up to handle the interrupts. Within
the ISR, each DSP interrupt is acknowledged by reading the DSP Read-Buffer
Status port once.
The acknowledgment of interrupts on DSP version 4.xx is different; see the following
section for more information.