Creative SB0350 Hardware Programming Guide - Page 28

Creative SB0350 Manual

Page 28 highlights

2-6 Introduction to DSP Programming The following assembly code fragment illustrates the interrupt handling portion within a 16-bit DMA mode digitized sound I/O ISR: mov add mov out inc in test interrupt? jz dx,wSB16BaseAddx dl,4 al,82h dx,al dx al,dx al,02h ; SB16 base I/O address 2x0h ; Mixer register address port 2x4h ; Index for Interrupt Status register ; Mixer data port ; Get interrupt status ; 16-bit DMA-mode digitized sound I/O ChainPreviousISR ; No, chain to previous ISR ;*** ;*** 1). Perform your 16-bit DMA digitized sound I/O instructions ;*** 2). Acknowledge the DSP interrupt; in al,2xFh ;*** 3). Send EOI to the Programmable Interrupt Controller ;*** jmp ExitISR ChainPreviousISR: ;*** ;*** Chain to previous ISR ExitISR: Configuring DMA and Interrupt Settings With the DSP version 4.xx, the DMA channels Interrupt Request (IRQ) line are software configurable. The Interrupt Setup register, addressed as register 80h on the Mixer register map, is used to configure or determine the Interrupt Request line. The DMA Setup register, addressed as register 81h on the Mixer register map, is used to configure or determine the DMA channels. Reading and writing the register 80h and 81h are accomplished in the same manner as reading and writing any of the other mixer registers (see the chapter "Mixer Chip Programming"). The byte from register 80h is interpreted as follows: D7 D6 D5 D4 D3 IRQ10 D2 IRQ7 D1 IRQ5 D0 IRQ2

  • 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