Rev 5022 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5022 | Serge | 1 | format MS COFF |
2 | |||
3 | include "snd.inc" |
||
4 | include "proc32.inc" |
||
5 | |||
6 | section '.text' align 16 code readable executable |
||
7 | |||
8 | public _InitSound@4 |
||
9 | public _CreateBuffer@12 |
||
10 | public _DestroyBuffer@4 |
||
11 | |||
12 | align 4 |
||
13 | _InitSound@4: ;p_ver:dword |
||
14 | |||
15 | push ebx |
||
16 | push ecx |
||
17 | |||
18 | mov eax, 68 |
||
19 | mov ebx, 16 |
||
20 | mov ecx, szInfinity |
||
21 | int 0x40 |
||
22 | mov [hSound], eax |
||
23 | test eax, eax |
||
24 | jz .fail |
||
25 | |||
26 | mov eax, 68 |
||
27 | mov ebx, 16 |
||
28 | mov ecx, szSound |
||
29 | int 0x40 |
||
30 | mov [hrdwSound], eax |
||
31 | |||
32 | lea eax, [esp+12] ;p_ver |
||
33 | xor ebx, ebx |
||
34 | |||
35 | push 4 ;.out_size |
||
36 | push eax ;.output |
||
37 | push ebx ;.inp_size |
||
38 | push ebx ;.input |
||
39 | push SRV_GETVERSION ;.code |
||
40 | push [hSound] ;.handle |
||
41 | |||
42 | mov eax, 68 |
||
43 | mov ebx, 17 |
||
44 | mov ecx, esp ;[handle] |
||
45 | int 0x40 |
||
46 | add esp, 24 |
||
47 | pop ecx |
||
48 | pop ebx |
||
49 | ret 4 |
||
50 | .fail: |
||
51 | or eax, -1 |
||
52 | pop ecx |
||
53 | pop ebx |
||
54 | ret 4 |
||
55 | |||
56 | |||
57 | align 4 |
||
58 | _CreateBuffer@12: ;format:dword,size:dword,p_str:dword |
||
59 | |||
60 | push ebx |
||
61 | push ecx |
||
62 | lea eax, [esp+20] ;p_str |
||
63 | lea ebx, [esp+12] ;format |
||
64 | |||
65 | push 4 ;.out_size |
||
66 | push eax ;.output |
||
67 | push 8 ;.inp_size |
||
68 | push ebx ;.input |
||
69 | push SND_CREATE_BUFF;.code |
||
70 | push [hSound] ;.handle |
||
71 | |||
72 | mov eax, 68 |
||
73 | mov ebx, 17 |
||
74 | mov ecx, esp |
||
75 | int 0x40 |
||
76 | add esp, 24 ;io_cintrol |
||
77 | pop ecx |
||
78 | pop ebx |
||
79 | ret 12 |
||
80 | |||
81 | align 4 |
||
82 | _DestroyBuffer@4: ;str:dword |
||
83 | |||
84 | push ebx |
||
85 | push ecx |
||
86 | |||
87 | xor eax, eax |
||
88 | lea ebx, [esp+12] ;[stream] |
||
89 | |||
90 | push eax ;.out_size |
||
91 | push eax ;.output |
||
92 | push 4 ;.inp_size |
||
93 | push ebx ;.input |
||
94 | push SND_DESTROY_BUFF;.code |
||
95 | push [hSound] ;.handle |
||
96 | |||
97 | mov eax, 68 |
||
98 | mov ebx, 17 |
||
99 | mov ecx, esp ;[handle] |
||
100 | int 0x40 |
||
101 | add esp, 24 |
||
102 | pop ecx |
||
103 | pop ebx |
||
104 | ret 4 |
||
105 | |||
106 | |||
107 | section '.data' align 16 data readable writable |
||
6356 | ashmew2 | 108 | |
109 | hSound dd 0 |
||
110 | hrdwSound dd ? |
||
5022 | Serge | 111 | |
6356 | ashmew2 | 112 | public hSound as '_hSound' |
113 | public hSound as 'hSound' |
||
114 | public hrdwSound as 'hrdwSound' |
||
115 | public hrdwSound as '_hrdwSound' |
||
5022 | Serge | 116 | |
117 | szInfinity db 'INFINITY',0 |
||
118 | szSound db 'SOUND',0 |
||
119 |