Форум: "Система";
Текущий архив: 2002.12.26;
Скачать: [xml.tar.bz2];
ВнизSound - NoSound beginer1 help me Найти похожие ветки
← →
vidiv (2002-10-23 09:12) [0]Здравствуте. Помогите еще такой вопрос. ниже приведен код который мне дал Beginer1 по теме Thread. Помогите переделать его на Sound(f:integer) и NoSound . Я бы и сам бы рад, да в асме не шарю, но вижу что через $61 порт, а попробую переделать, что нибудь обязательно напутаю...
beginer1 © (22.10.02 17:16)
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Генерация звукого сигнала на встроенном динамике
Frequency - частота звука, Гц
Duration - длительность звучания, 1/1000 сек
Зависимости: Windows, SysUtils,
Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт- Петербург
Copyright: Dimka Maslov
Дата: 29 апреля 2002 г.
***************************************************** }
procedure Sound(Frequency, Duration: Integer);
asm
push edx
push eax
mov eax, Win32Platform
cmp eax, VER_PLATFORM_WIN32_NT
jne @@9X
call Windows.Beep
ret
@@9X:
pop eax
pop edx
push ebx
push edx
mov bx, ax
mov ax, 34DDh
mov dx, 0012h
cmp dx, bx
jnc @@2
div bx
mov bx, ax
in al, 61h
test al, 3
jnz @@1
or al, 3
out 61h, al
mov al, 0B6h
out 43h, al
@@1:
mov al, bl
out 42h, al
mov al, bh
out 42h, al
call Windows.Sleep
in al, 61h
and al, 0FCh
out 61h, al
jmp @@3
@@2:
pop edx
@@3:
pop ebx
end;
← →
AlexKniga (2002-10-23 11:15) [1]
Procedure Sound (Frequency: Word); Assembler;
Asm
PUSH EBX // must preserve
MOV BX, AX // BX := Frequency;
MOV AX, 34DDH
MOV DX, 0012H
CMP DX, BX
JNC @@2
DIV BX
MOV BX, AX
IN AL, 61H
TEST AL, 3
JNZ @@1
OR AL, 3
OUT 61H, AL
MOV AL, 0B6H
OUT 43H, AL
@@1: MOV AL, BL
OUT 42H, AL
MOV AL, BH
OUT 42H, AL
@@2: POP EBX
End;
Procedure NoSound; Assembler;
Asm
IN AL,61H
AND AL,0FCH
OUT 61H,AL
End;
← →
AlexKniga (2002-10-23 11:25) [2]2 vidiv
В конференции не принято, задавая вопрос, обращаться к кому-то конкретно. Для этого есть e-mail.
И еще общий совет: почаще заглядывай на UBPFD by delphibase.endimus.com
← →
AlexKniga (2002-10-23 11:30) [3]2 vidiv
Приведенное выше разделение на Sound/NoSound только для линейки Win9x, не для NT.
← →
Sharik_212 (2002-10-23 15:20) [4]Для NT можно использовать Windows.Beep
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.12.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c