Rev 228 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 228 | Rev 376 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | 2 | ||
Line 3... | Line 3... | ||
3 | include "proc32.inc" |
3 | include "proc32.inc" |
Line 4... | Line -... | ||
4 | - | ||
5 | section '.text' code readable executable |
- | |
6 | - | ||
7 | public _GetService@4 |
- | |
8 | public _GetDevInfo@8 |
- | |
9 | public _GetMasterVol@8 |
- | |
10 | public _SetMasterVol@8 |
- | |
11 | public _CreateBuffer@8 |
- | |
12 | public _DestroyBuffer@8 |
- | |
13 | public _SetBuffer@20 |
- | |
14 | public _PlayBuffer@8 |
4 | |
15 | public _StopBuffer@8 |
5 | section '.text' code readable executable |
16 | - | ||
17 | public _InitHeap@4 |
6 | |
18 | public _UserAlloc@4 |
7 | public _InitHeap@4 |
19 | public _GetNotify@4 |
8 | public _UserAlloc@4 |
20 | public _CreateThread@8 |
9 | public _CreateThread@8 |
21 | public _GetMousePos@4 |
10 | public _GetMousePos@4 |
22 | public _get_fileinfo@8 |
11 | public _get_fileinfo@8 |
23 | public _read_file@20 |
12 | public _read_file@20 |
24 | public _get_key |
13 | public _get_key@4 |
25 | public _get_button_id |
14 | public _get_button_id |
26 | public _DrawWindow@36 |
15 | public _DrawWindow@36 |
Line 40... | Line 29... | ||
40 | .buff dd ? |
29 | .buff dd ? |
41 | db ? |
30 | db ? |
42 | .name dd ? |
31 | .name dd ? |
43 | }; |
32 | }; |
Line 44... | Line -... | ||
44 | - | ||
45 | struc CTRL_INFO |
- | |
46 | { .pci_cmd dd ? |
- | |
47 | .irq dd ? |
- | |
48 | .glob_cntrl dd ? |
- | |
49 | .glob_sta dd ? |
- | |
50 | .codec_io_base dd ? |
- | |
51 | .ctrl_io_base dd ? |
- | |
52 | .codec_mem_base dd ? |
- | |
53 | .ctrl_mem_base dd ? |
- | |
54 | .codec_id dd ? |
- | |
55 | } |
- | |
56 | CTRL_INFO_SIZE equ 9*4 |
- | |
57 | - | ||
58 | - | ||
59 | SND_CREATE_DEV equ 1 |
- | |
60 | SND_CREATE_BUFF equ 2 |
- | |
61 | SND_PLAY equ 3 |
- | |
62 | SND_STOP equ 4 |
- | |
63 | SND_SETBUFF equ 5 |
- | |
64 | SND_DESTROY_BUFF equ 6 |
- | |
65 | - | ||
66 | DEV_SET_BUFF equ 4 |
- | |
67 | DEV_NOTIFY equ 5 |
- | |
68 | DEV_SET_MASTERVOL equ 6 |
- | |
69 | DEV_GET_MASTERVOL equ 7 |
- | |
70 | DEV_GET_INFO equ 8 |
- | |
71 | - | ||
72 | 33 | ||
73 | align 4 |
34 | align 4 |
74 | proc _get_button_id |
35 | proc _get_button_id |
75 | mov eax,17 |
36 | mov eax,17 |
76 | int 0x40 |
37 | int 0x40 |
Line 143... | Line 104... | ||
143 | pop ebx |
104 | pop ebx |
144 | ret |
105 | ret |
145 | endp |
106 | endp |
Line 146... | Line 107... | ||
146 | 107 | ||
147 | align 4 |
108 | align 4 |
- | 109 | proc _get_key@4 stdcall, key:dword |
|
- | 110 | push ebx |
|
148 | proc _get_key |
111 | push ecx |
149 | mov eax, 2 |
112 | mov eax, 2 |
- | 113 | int 0x40 |
|
- | 114 | mov ebx, [key] |
|
150 | int 0x40 |
115 | mov ecx, eax |
- | 116 | shr ecx, 8 |
|
- | 117 | mov [ebx], ecx |
|
- | 118 | movzx eax, al |
|
- | 119 | pop ecx |
|
151 | shr eax, 8 |
120 | pop ebx |
152 | ret |
121 | ret |
Line -... | Line 122... | ||
- | 122 | endp |
|
153 | endp |
123 | |
154 | 124 | ||
155 | align 4 |
125 | align 4 |
156 | proc _InitHeap@4 stdcall, heap_size:dword |
126 | proc _InitHeap@4 stdcall, heap_size:dword |
157 | push ebx |
127 | push ebx |
Line 172... | Line 142... | ||
172 | int 0x40 |
142 | int 0x40 |
173 | pop ebx |
143 | pop ebx |
174 | ret |
144 | ret |
175 | endp |
145 | endp |
Line 176... | Line -... | ||
176 | - | ||
177 | ;align 4 |
- | |
178 | ;proc _GetNotify@4 stdcall, p_ev:dword |
- | |
179 | ; push ebx |
- | |
180 | ; mov eax, 68 |
- | |
181 | ; mov ebx, 14 |
- | |
182 | ; mov ecx, [p_ev] |
- | |
183 | ; int 0x40 |
- | |
184 | ; pop ebx |
- | |
185 | ; ret |
- | |
186 | ;endp |
- | |
187 | - | ||
188 | align 4 |
- | |
189 | proc _GetNotify@4 stdcall, p_ev:dword |
- | |
190 | push ebx |
- | |
191 | mov eax, 68 |
- | |
192 | mov ebx, 14 |
- | |
193 | mov ecx, [p_ev] |
- | |
194 | int 0x40 |
- | |
195 | pop ebx |
- | |
196 | ret |
- | |
197 | endp |
- | |
198 | 146 | ||
199 | align 4 |
147 | align 4 |
200 | proc _CreateThread@8 stdcall, fn:dword, p_stack:dword |
148 | proc _CreateThread@8 stdcall, fn:dword, p_stack:dword |
201 | push ebx |
149 | push ebx |
202 | mov eax, 51 |
150 | mov eax, 51 |
Line 216... | Line 164... | ||
216 | int 0x40 |
164 | int 0x40 |
217 | pop ebx |
165 | pop ebx |
218 | ret |
166 | ret |
219 | endp |
167 | endp |
Line 220... | Line -... | ||
220 | - | ||
221 | align 4 |
- | |
222 | proc CallServiceEx stdcall, ioctl:dword |
- | |
223 | push ebx |
- | |
224 | mov eax, 68 |
- | |
225 | mov ebx, 17 |
- | |
226 | mov ecx, [ioctl] |
- | |
227 | int 0x40 |
- | |
228 | pop ebx |
- | |
229 | ret |
- | |
230 | endp |
- | |
231 | - | ||
232 | align 4 |
- | |
233 | proc _GetService@4 stdcall, name:dword |
- | |
234 | push ebx |
- | |
235 | mov eax, 68 |
- | |
236 | mov ebx, 16 |
- | |
237 | mov ecx, [name] |
- | |
238 | int 0x40 |
- | |
239 | pop ebx |
- | |
240 | ret |
- | |
241 | endp |
- | |
242 | - | ||
243 | align 4 |
- | |
244 | proc _GetDevInfo@8 stdcall, hSrv:dword, p_info:dword |
- | |
245 | locals |
- | |
246 | handle dd ? |
- | |
247 | io_code dd ? |
- | |
248 | input dd ? |
- | |
249 | inp_size dd ? |
- | |
250 | output dd ? |
- | |
251 | out_size dd ? |
- | |
252 | endl |
- | |
253 | - | ||
254 | push ebx |
- | |
255 | mov eax, [hSrv] |
- | |
256 | xor ebx, ebx |
- | |
257 | mov ecx, [p_info] |
- | |
258 | - | ||
259 | mov [handle], eax |
- | |
260 | mov [io_code], DEV_GET_INFO |
- | |
261 | mov [input], ebx |
- | |
262 | mov [inp_size], ebx |
- | |
263 | mov [output], ecx |
- | |
264 | mov [out_size], CTRL_INFO_SIZE |
- | |
265 | - | ||
266 | lea eax, [handle] |
- | |
267 | stdcall CallServiceEx, eax |
- | |
268 | pop ebx |
- | |
269 | ret |
- | |
270 | endp |
- | |
271 | - | ||
272 | align 4 |
- | |
273 | proc _GetMasterVol@8 stdcall, hSrv:dword,pvol:dword |
- | |
274 | locals |
- | |
275 | handle dd ? |
- | |
276 | io_code dd ? |
- | |
277 | input dd ? |
- | |
278 | inp_size dd ? |
- | |
279 | output dd ? |
- | |
280 | out_size dd ? |
- | |
281 | endl |
- | |
282 | - | ||
283 | push ebx |
- | |
284 | mov eax, [hSrv] |
- | |
285 | mov ecx, [pvol] |
- | |
286 | xor ebx, ebx |
- | |
287 | mov [handle], eax |
- | |
288 | mov [io_code], DEV_GET_MASTERVOL |
- | |
289 | mov [input], ebx |
- | |
290 | mov [inp_size], ebx |
- | |
291 | mov [output], ecx |
- | |
292 | mov [out_size], 4 |
- | |
293 | - | ||
294 | lea eax, [handle] |
- | |
295 | stdcall CallServiceEx, eax |
- | |
296 | pop ebx |
- | |
297 | ret |
- | |
298 | endp |
- | |
299 | - | ||
300 | align 4 |
- | |
301 | proc _SetMasterVol@8 stdcall,hSrv:dword,vol:dword |
- | |
302 | locals |
- | |
303 | handle dd ? |
- | |
304 | io_code dd ? |
- | |
305 | input dd ? |
- | |
306 | inp_size dd ? |
- | |
307 | output dd ? |
- | |
308 | out_size dd ? |
- | |
309 | endl |
- | |
310 | - | ||
311 | push ebx |
- | |
312 | mov eax, [hSrv] |
- | |
313 | lea ecx, [vol] |
- | |
314 | xor ebx, ebx |
- | |
315 | - | ||
316 | mov [handle], eax |
- | |
317 | mov [io_code], DEV_SET_MASTERVOL |
- | |
318 | mov [input], ecx |
- | |
319 | mov [inp_size], 4 |
- | |
320 | mov [output], ebx |
- | |
321 | mov [out_size], 0 |
- | |
322 | - | ||
323 | lea eax, [handle] |
- | |
324 | stdcall CallServiceEx, eax |
- | |
325 | pop ebx |
- | |
326 | ret |
- | |
327 | endp |
- | |
328 | - | ||
329 | align 4 |
- | |
330 | proc _CreateBuffer@8 stdcall, hSound:dword,format:dword |
- | |
331 | locals |
- | |
332 | handle dd ? |
- | |
333 | io_code dd ? |
- | |
334 | input dd ? |
- | |
335 | inp_size dd ? |
- | |
336 | output dd ? |
- | |
337 | out_size dd ? |
- | |
338 | endl |
- | |
339 | - | ||
340 | push ebx |
- | |
341 | mov eax, [hSound] |
- | |
342 | lea ecx, [format] |
- | |
343 | xor ebx, ebx |
- | |
344 | - | ||
345 | mov [handle], eax |
- | |
346 | mov [io_code], SND_CREATE_BUFF |
- | |
347 | mov [input], ecx |
- | |
348 | mov [inp_size], 4 |
- | |
349 | mov [output], ebx |
- | |
350 | mov [out_size], 0 |
- | |
351 | - | ||
352 | lea eax, [handle] |
- | |
353 | stdcall CallServiceEx, eax |
- | |
354 | pop ebx |
- | |
355 | ret |
- | |
356 | endp |
- | |
357 | - | ||
358 | align 4 |
- | |
359 | proc _DestroyBuffer@8 stdcall, hSound:dword, str:dword |
- | |
360 | locals |
- | |
361 | handle dd ? |
- | |
362 | io_code dd ? |
- | |
363 | input dd ? |
- | |
364 | inp_size dd ? |
- | |
365 | output dd ? |
- | |
366 | out_size dd ? |
- | |
367 | endl |
- | |
368 | - | ||
369 | push ebx |
- | |
370 | mov eax, [hSound] |
- | |
371 | lea ecx, [str] |
- | |
372 | xor ebx, ebx |
- | |
373 | - | ||
374 | mov [handle], eax |
- | |
375 | mov [io_code], SND_DESTROY_BUFF |
- | |
376 | mov [input], ecx |
- | |
377 | mov [inp_size], 4 |
- | |
378 | mov [output], ebx |
- | |
379 | mov [out_size], 0 |
- | |
380 | - | ||
381 | lea eax, [handle] |
- | |
382 | stdcall CallServiceEx, eax |
- | |
383 | pop ebx |
- | |
384 | ret |
- | |
385 | endp |
- | |
386 | - | ||
387 | align 4 |
- | |
388 | proc _SetBuffer@20 stdcall,hSound:dword, str:dword, src:dword, offs:dword, size:dword |
- | |
389 | locals |
- | |
390 | handle dd ? |
- | |
391 | io_code dd ? |
- | |
392 | input dd ? |
- | |
393 | inp_size dd ? |
- | |
394 | output dd ? |
- | |
395 | out_size dd ? |
- | |
396 | endl |
- | |
397 | - | ||
398 | push ebx |
- | |
399 | mov eax, [hSound] |
- | |
400 | lea ecx, [str] |
- | |
401 | xor ebx, ebx |
- | |
402 | - | ||
403 | mov [handle], eax |
- | |
404 | mov [io_code], SND_SETBUFF |
- | |
405 | mov [input], ecx |
- | |
406 | mov [inp_size], 16 |
- | |
407 | mov [output], ebx |
- | |
408 | mov [out_size], 0 |
- | |
409 | - | ||
410 | lea eax, [handle] |
- | |
411 | stdcall CallServiceEx, eax |
- | |
412 | pop ebx |
- | |
413 | ret |
- | |
414 | endp |
- | |
415 | - | ||
416 | align 4 |
- | |
417 | proc _PlayBuffer@8 stdcall, hSound:dword, str:dword |
- | |
418 | locals |
- | |
419 | handle dd ? |
- | |
420 | io_code dd ? |
- | |
421 | input dd ? |
- | |
422 | inp_size dd ? |
- | |
423 | output dd ? |
- | |
424 | out_size dd ? |
- | |
425 | endl |
- | |
426 | - | ||
427 | push ebx |
- | |
428 | mov eax, [hSound] |
- | |
429 | lea ecx, [str] |
- | |
430 | xor ebx, ebx |
- | |
431 | - | ||
432 | mov [handle], eax |
- | |
433 | mov [io_code], SND_PLAY |
- | |
434 | mov [input], ecx |
- | |
435 | mov [inp_size], 4 |
- | |
436 | mov [output], ebx |
- | |
437 | mov [out_size], 0 |
- | |
438 | - | ||
439 | lea eax, [handle] |
- | |
440 | stdcall CallServiceEx, eax |
- | |
441 | pop ebx |
- | |
442 | ret |
- | |
443 | endp |
- | |
444 | - | ||
445 | align 4 |
- | |
446 | proc _StopBuffer@8 stdcall, hSound:dword, str:dword |
- | |
447 | locals |
- | |
448 | handle dd ? |
- | |
449 | io_code dd ? |
- | |
450 | input dd ? |
- | |
451 | inp_size dd ? |
- | |
452 | output dd ? |
- | |
453 | out_size dd ? |
- | |
454 | endl |
- | |
455 | - | ||
456 | push ebx |
- | |
457 | mov eax, [hSound] |
- | |
458 | lea ecx, [str] |
- | |
459 | xor ebx, ebx |
- | |
460 | - | ||
461 | mov [handle], eax |
- | |
462 | mov [io_code], SND_STOP |
- | |
463 | mov [input], ecx |
- | |
464 | mov [inp_size], 4 |
- | |
465 | mov [output], ebx |
- | |
466 | mov [out_size], 0 |
- | |
467 | - | ||
468 | lea eax, [handle] |
- | |
469 | stdcall CallServiceEx, eax |
- | |
470 | pop ebx |
- | |
471 | ret |
- | |
Line 472... | Line 168... | ||
472 | endp |
168 | |
473 | 169 | ||
474 | align 4 |
170 | align 4 |
475 | proc _DrawWindow@36 stdcall, x:dword, y:dword, sx:dword, sy:dword,\ |
171 | proc _DrawWindow@36 stdcall, x:dword, y:dword, sx:dword, sy:dword,\ |