Creative SB0350 Hardware Programming Guide - Page 26

Creative SB0350 Manual

Page 26 highlights

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 add Busy: in or js mov out al,dx al,al Busy al,bData dx,al ; Read Write-Buffer Status port ; Can write to DSP? ; Bit 7 set, try again ; Get DSP command or data ; Send to DSP dx,wSBCBaseAddx dl,0Ch ; SBC base I/O address 2x0h ; Write-Buffer Status port, 2xCh 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.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141

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
x
0h
add
dl,0Ch
; Write-Buffer Status port, 2
x
Ch
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.