Mercurial > sdl-ios-xcode
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 |