comparison src/audio/mint/SDL_mintaudio_it.S @ 1096:37b766becf3b

Reserve space in system buffer to call XBIOS from interrupt
author Patrice Mandin <patmandin@gmail.com>
date Wed, 20 Jul 2005 17:40:58 +0000
parents d00b4d8508ab
children c83fa1c650dd
comparison
equal deleted inserted replaced
1095:f10892fa2e48 1096:37b766becf3b
51 - We must calculate a sample in buffer #1 (resp. #0) 51 - We must calculate a sample in buffer #1 (resp. #0)
52 so we first call the callback to do it 52 so we first call the callback to do it
53 - Then we swap the buffers 53 - Then we swap the buffers
54 */ 54 */
55 55
56 #define savptr 0x4a2
57 #define savamt 0x46
58
56 /*--- GSXB interrupt vector ---*/ 59 /*--- GSXB interrupt vector ---*/
57 60
58 .text 61 .text
59 _SDL_MintAudio_GsxbInterrupt: 62 _SDL_MintAudio_GsxbInterrupt:
60 63
128 moveml d0-d7/a0-a6,sp@- 131 moveml d0-d7/a0-a6,sp@-
129 132
130 /* Callback */ 133 /* Callback */
131 jsr _SDL_MintAudio_Callback 134 jsr _SDL_MintAudio_Callback
132 135
136 /* Reserve space for registers */
137 subl #savamt,savptr
138
133 /* Set new buffer */ 139 /* Set new buffer */
134 140
135 moveq #0,d0 141 moveq #0,d0
136 movel _SDL_MintAudio_audiosize,d1 142 movel _SDL_MintAudio_audiosize,d1
137 143
147 clrw sp@- 153 clrw sp@-
148 movew #131,sp@- 154 movew #131,sp@-
149 trap #14 155 trap #14
150 lea sp@(12),sp 156 lea sp@(12),sp
151 157
158 /* Restore registers space */
159 addl #savamt,savptr
160
152 moveml sp@+,d0-d7/a0-a6 161 moveml sp@+,d0-d7/a0-a6
153 162
154 clrw _SDL_MintAudio_mutex 163 clrw _SDL_MintAudio_mutex
155 SDL_MintAudio_XbiosEnd: 164 SDL_MintAudio_XbiosEnd:
156 rte 165 rte