Rev 227 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 227 | Rev 281 | ||
---|---|---|---|
Line 104... | Line 104... | ||
104 | cld |
104 | cld |
105 | rep stosd |
105 | rep stosd |
106 | ret |
106 | ret |
107 | endp |
107 | endp |
Line 108... | Line -... | ||
108 | - | ||
109 | 108 | ||
110 | align 4 |
109 | align 4 |
111 | proc update_stream |
110 | proc update_stream |
112 | locals |
111 | locals |
113 | stream_index dd ? |
112 | stream_index dd ? |
Line 139... | Line 138... | ||
139 | stdcall refill, esi |
138 | stdcall refill, esi |
140 | @@: |
139 | @@: |
141 | inc [stream_index] |
140 | inc [stream_index] |
142 | dec [play_count] |
141 | dec [play_count] |
143 | jnz .l1 |
142 | jnz .l1 |
144 | - | ||
145 | ret |
143 | ret |
146 | .copy: |
144 | .copy: |
147 | mov ebx, esi |
145 | mov ebx, esi |
148 | mov edi, [ebx+STREAM.work_write] |
146 | mov edi, [ebx+STREAM.work_write] |
149 | cmp edi, [ebx+STREAM.work_top] |
147 | cmp edi, [ebx+STREAM.work_top] |
Line 156... | Line 154... | ||
156 | cld |
154 | cld |
157 | rep movsd |
155 | rep movsd |
Line 158... | Line 156... | ||
158 | 156 | ||
Line 159... | Line 157... | ||
159 | mov [ebx+STREAM.work_write], edi |
157 | mov [ebx+STREAM.work_write], edi |
160 | 158 | ||
Line 161... | Line 159... | ||
161 | cmp esi, [ebx+STREAM.limit] |
159 | cmp esi, [ebx+STREAM.lim_0] |
- | 160 | jb @f |
|
- | 161 | ||
- | 162 | mov esi, [ebx+STREAM.seg_0] |
|
- | 163 | mov eax, [ebx+STREAM.lim_0] |
|
- | 164 | xchg esi, [ebx+STREAM.seg_1] |
|
162 | jb @f |
165 | xchg eax, [ebx+STREAM.lim_1] |
163 | 166 | mov [ebx+STREAM.seg_0], esi |
|
Line 164... | Line 167... | ||
164 | mov esi, [ebx+STREAM.base] |
167 | mov [ebx+STREAM.lim_0], eax |
165 | @@: |
168 | @@: |
Line 174... | Line 177... | ||
174 | je @f |
177 | je @f |
Line 175... | Line 178... | ||
175 | 178 | ||
176 | inc [stream_index] |
179 | inc [stream_index] |
177 | dec [play_count] |
180 | dec [play_count] |
178 | jnz .l1 |
- | |
179 | 181 | jnz .l1 |
|
180 | ret |
182 | ret |
181 | @@: |
183 | @@: |
182 | mov [ev_code], 0xFF000001 |
184 | mov [ev_code], 0xFF000001 |
183 | mov [ev_offs], ecx |
185 | mov [ev_offs], ecx |
Line 231... | Line 233... | ||
231 | add [ebx+STREAM.work_count], eax; |
233 | add [ebx+STREAM.work_count], eax; |
232 | add [ebx+STREAM.work_write], eax; |
234 | add [ebx+STREAM.work_write], eax; |
Line 233... | Line 235... | ||
233 | 235 | ||
234 | mov eax, [ebx+STREAM.curr_seg] |
236 | mov eax, [ebx+STREAM.curr_seg] |
235 | add eax, [ebx+STREAM.r_size] |
237 | add eax, [ebx+STREAM.r_size] |
236 | cmp eax, [ebx+STREAM.limit] |
238 | cmp eax, [ebx+STREAM.lim_0] |
- | 239 | jb @f |
|
237 | jb @f |
240 | |
- | 241 | mov eax, [ebx+STREAM.seg_0] |
|
- | 242 | mov ecx, [ebx+STREAM.lim_0] |
|
- | 243 | xchg eax, [ebx+STREAM.seg_1] |
|
- | 244 | xchg ecx, [ebx+STREAM.lim_1] |
|
- | 245 | mov [ebx+STREAM.seg_0], eax |
|
238 | mov eax, [ebx+STREAM.base] |
246 | mov [ebx+STREAM.lim_0], ecx |
239 | @@: |
247 | @@: |
Line 240... | Line 248... | ||
240 | mov [ebx+STREAM.curr_seg], eax |
248 | mov [ebx+STREAM.curr_seg], eax |
241 | 249 | ||
242 | xor ecx, ecx |
250 | xor ecx, ecx |
Line 243... | Line 251... | ||
243 | cmp eax, [ebx+STREAM.notify_off2] |
251 | cmp eax, [ebx+STREAM.notify_off2] |
244 | je @f |
252 | je @f |
245 | 253 | ||
246 | mov ecx,0x8000 |
- | |
247 | cmp eax, [ebx+STREAM.notify_off1] |
254 | mov ecx,0x8000 |
248 | je @f |
255 | cmp eax, [ebx+STREAM.notify_off1] |
249 | 256 | je @f |
|
250 | ret |
257 | ret |
251 | @@: |
258 | @@: |
Line 601... | Line 608... | ||
601 | 608 | ||
602 | align 4 |
609 | align 4 |
603 | proc s8_stereo stdcall, dest:dword,src:dword,r_buff:dword,\ |
610 | proc s8_stereo stdcall, dest:dword,src:dword,r_buff:dword,\ |
Line 604... | Line -... | ||
604 | r_dt:dword, r_size:dword,r_end:dword |
- | |
605 | 611 | r_dt:dword, r_size:dword,r_end:dword |
|
606 | 612 | ||
607 | mov esi, [src] |
613 | mov esi, [src] |
608 | mov edi, [dest] |
614 | mov edi, [dest] |
Line 1014... | Line 1020... | ||
1014 | movq [edx+80], mm2 |
1020 | movq [edx+80], mm2 |
Line 1015... | Line 1021... | ||
1015 | 1021 | ||
1016 | movq mm3, [eax+88] |
1022 | movq mm3, [eax+88] |
1017 | paddsw mm3, [ecx+88] |
1023 | paddsw mm3, [ecx+88] |
1018 | ; psraw mm3, 1 |
- | |
1019 | 1024 | ; psraw mm3, 1 |
|
Line 1020... | Line 1025... | ||
1020 | movq [edx+88], mm3 |
1025 | movq [edx+88], mm3 |
1021 | 1026 | ||
1022 | movq mm0, [eax+96] |
1027 | movq mm0, [eax+96] |
1023 | paddsw mm0, [ecx+96] |
- | |
1024 | ; psraw mm0, 1 |
1028 | paddsw mm0, [ecx+96] |
Line 1025... | Line 1029... | ||
1025 | 1029 | ; psraw mm0, 1 |
|
1026 | movq [edx+96], mm0 |
1030 | movq [edx+96], mm0 |
1027 | 1031 | ||
1028 | movq mm1, [eax+104] |
- | |
1029 | paddsw mm1, [ecx+104] |
1032 | movq mm1, [eax+104] |
Line 1030... | Line 1033... | ||
1030 | ; psraw mm1, 1 |
1033 | paddsw mm1, [ecx+104] |
1031 | 1034 | ; psraw mm1, 1 |
|
1032 | movq [edx+104], mm1 |
1035 | movq [edx+104], mm1 |
1033 | - | ||
1034 | movq mm2, [eax+112] |
1036 | |
Line 1035... | Line 1037... | ||
1035 | paddsw mm2, [ecx+112] |
1037 | movq mm2, [eax+112] |
1036 | ; psraw mm2, 1 |
1038 | paddsw mm2, [ecx+112] |
1037 | 1039 | ; psraw mm2, 1 |
|
1038 | movq [edx+112], mm2 |
- | |
1039 | 1040 | movq [edx+112], mm2 |
|
Line 1040... | Line 1041... | ||
1040 | movq mm3, [eax+120] |
1041 | |
1041 | paddsw mm3, [ecx+120] |
1042 | movq mm3, [eax+120] |