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 15... | Line 15... | ||
15 | 15 | ||
Line 16... | Line 16... | ||
16 | format MS COFF |
16 | format MS COFF |
17 | 17 | ||
- | 18 | include 'proc32.inc' |
|
Line 18... | Line 19... | ||
18 | include 'proc32.inc' |
19 | include 'main.inc' |
Line 19... | Line 20... | ||
19 | include 'main.inc' |
20 | include 'imports.inc' |
Line 28... | Line 29... | ||
28 | 29 | ||
29 | public START |
30 | public START |
30 | public service_proc |
31 | public service_proc |
Line 31... | Line -... | ||
31 | public version |
- | |
32 | - | ||
33 | extrn AttachIntHandler |
- | |
34 | extrn SysMsgBoardStr |
- | |
35 | extrn PciApi |
- | |
36 | extrn PciRead32 |
- | |
37 | extrn PciRead8 |
- | |
38 | extrn PciWrite8 |
- | |
39 | extrn AllocKernelSpace |
- | |
40 | extrn MapPage |
- | |
41 | extrn RegService |
- | |
42 | extrn KernelAlloc |
- | |
43 | extrn KernelFree |
- | |
44 | extrn GetPgAddr |
- | |
45 | extrn GetCurrentTask |
- | |
46 | extrn GetService |
- | |
47 | extrn ServiceHandler |
- | |
48 | extrn FpuSave |
- | |
49 | extrn FpuRestore |
- | |
50 | extrn SendEvent |
32 | public version |
51 | 33 | ||
52 | SND_CREATE_BUFF equ 2 |
34 | SND_CREATE_BUFF equ 2 |
53 | SND_PLAY equ 3 |
35 | SND_PLAY equ 3 |
54 | SND_STOP equ 4 |
36 | SND_STOP equ 4 |
Line 210... | Line 192... | ||
210 | 192 | ||
Line 211... | Line 193... | ||
211 | stdcall KernelAlloc, 180*1024 |
193 | stdcall KernelAlloc, 180*1024 |
212 | 194 | ||
- | 195 | mov edi, [str] |
|
213 | mov edi, [str] |
196 | mov [edi+STREAM.base], eax |
214 | mov [edi+STREAM.base], eax |
197 | mov [edi+STREAM.seg_0], eax |
215 | mov [edi+STREAM.curr_seg], eax |
198 | mov [edi+STREAM.curr_seg], eax |
- | 199 | mov [edi+STREAM.notify_off1], eax |
|
- | 200 | add eax, 0x7FFF |
|
- | 201 | mov [edi+STREAM.lim_0], eax |
|
216 | mov [edi+STREAM.notify_off1], eax |
202 | inc eax |
217 | add eax, 0x8000 |
203 | mov [edi+STREAM.seg_1], eax |
218 | mov [edi+STREAM.notify_off2], eax |
204 | mov [edi+STREAM.notify_off2], eax |
219 | add eax, 0x7FFF |
- | |
- | 205 | add eax, 0x7FFF |
|
220 | mov [edi+STREAM.limit], eax |
206 | mov [edi+STREAM.limit], eax |
Line 221... | Line 207... | ||
221 | 207 | mov [edi+STREAM.lim_1], eax |
|
222 | inc eax |
208 | inc eax |
223 | 209 | ||
Line 264... | Line 250... | ||
264 | xor eax, eax |
250 | xor eax, eax |
265 | rep stosd |
251 | rep stosd |
Line 266... | Line 252... | ||
266 | 252 | ||
267 | mov eax, [str] |
253 | mov eax, [str] |
268 | ret |
- | |
269 | 254 | ret |
|
270 | .fail: |
255 | .fail: |
271 | xor eax, eax |
256 | xor eax, eax |
272 | ret |
257 | ret |
Line 365... | Line 350... | ||
365 | mov eax,[ebx+STREAM.work_buff] |
350 | mov eax,[ebx+STREAM.work_buff] |
366 | mov [ebx+STREAM.work_read], eax |
351 | mov [ebx+STREAM.work_read], eax |
367 | mov [ebx+STREAM.work_write], eax |
352 | mov [ebx+STREAM.work_write], eax |
368 | mov [ebx+STREAM.work_count], 0 |
353 | mov [ebx+STREAM.work_count], 0 |
Line 369... | Line 354... | ||
369 | 354 | ||
370 | mov eax, [ebx+STREAM.base] |
355 | mov eax, [ebx+STREAM.seg_0] |
Line 371... | Line 356... | ||
371 | mov [ebx+STREAM.curr_seg], eax |
356 | mov [ebx+STREAM.curr_seg], eax |
372 | 357 | ||
373 | mov esi, [ebx+STREAM.curr_seg] |
358 | mov esi, [ebx+STREAM.curr_seg] |
Line 518... | Line 503... | ||
518 | .err: |
503 | .err: |
519 | xor eax, eax |
504 | xor eax, eax |
520 | ret |
505 | ret |
521 | endp |
506 | endp |
Line -... | Line 507... | ||
- | 507 | ||
522 | 508 | if 0 |
|
523 | align 4 |
509 | align 4 |
Line 524... | Line 510... | ||
524 | proc check_stream |
510 | proc check_stream |
525 | 511 | ||
526 | xor edx, edx |
512 | xor edx, edx |
527 | mov ecx, [play_count] |
513 | mov ecx, [play_count] |
Line 528... | Line 514... | ||
528 | .l1: |
514 | .l1: |
529 | mov esi, [play_list+edx] |
515 | mov esi, [play_list+edx] |
530 | 516 | ||
Line 531... | Line -... | ||
531 | mov eax, [esi+STR.curr_seg] |
- | |
532 | cmp eax, [esi+STR.limit] |
517 | mov eax, [esi+STR.curr_seg] |
- | 518 | cmp eax, [esi+STR.lim_0] |
|
- | 519 | jb .next |
|
- | 520 | ||
- | 521 | mov eax, [esi+STREAM.seg_0] |
|
- | 522 | mov ecx, [esi+STREAM.lim_0] |
|
533 | jb .next |
523 | xchg eax, [ebx+STREAM.seg_1] |
534 | 524 | xchg ecx, [ebx+STREAM.lim_1] |
|
535 | .m1: |
525 | mov [esi+STREAM.seg_0], eax |
536 | mov eax,[esi+STR.base] |
526 | mov [esi+STREAM.lim_0], ecx |
537 | mov [esi+STR.curr_seg], eax |
527 | mov [esi+STR.curr_seg], eax |
538 | .next: |
528 | .next: |
539 | add edx, 4 |
529 | add edx, 4 |
Line 540... | Line 530... | ||
540 | loop .l1 |
530 | loop .l1 |
541 | ret |
531 | ret |
Line 542... | Line 532... | ||
542 | endp |
532 | endp |
Line 731... | Line 721... | ||
731 | m7 dw 0x8000,0x8000,0x8000,0x8000 |
721 | m7 dw 0x8000,0x8000,0x8000,0x8000 |
732 | mm80 dq 0x8080808080808080 |
722 | mm80 dq 0x8080808080808080 |
733 | mm_mask dq 0xFF00FF00FF00FF00 |
723 | mm_mask dq 0xFF00FF00FF00FF00 |
Line 734... | Line 724... | ||
734 | 724 | ||
735 | stream_map dd 0xFFFF ; 16 |
725 | stream_map dd 0xFFFF ; 16 |
Line 736... | Line 726... | ||
736 | version dd 0x00010001 |
726 | version dd 0x00020002 |
737 | 727 | ||
Line 738... | Line 728... | ||
738 | szInfinity db 'INFINITY',0 |
728 | szInfinity db 'INFINITY',0 |