Subversion Repositories Kolibri OS

Rev

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