Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Видеокурс программиста и крэкера 5D 2O17
(актуальность: июль 2O17)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Как в Delphi реализовать возможность пропищать звук различной длины и частоты

- Алло! Техотдел?! Я комп врубаю, а на экране ничего!!!
- Перезагрузи для начала.
- Как?
- Alt-Ctrl-Del.
- Не нажимаются!
- Тогда нажми Reset - потом перезвони.
(Минут через десять)
- Алло! На экране все равно ничего нет!
- Reset нажал?
- Нажал!
- Ну, и?..
- Что "и"?! Держу!!!


 procedure SetPort(address, Value: Word);
 var
   bValue: byte;
 begin
   bValue := trunc(Value and 255);
   asm
     mov dx, address
     mov al, bValue
     out dx, al
   end;
 end;
 
 function GetPort(address: word): word;
 var
   bValue: byte;
 begin
   asm
     mov dx, address
     in al, dx
     mov bValue, al
   end;
   GetPort := bValue;
 end;
 
 procedure Sound(Freq: Word);
 var
   B: Byte;
 begin
   if Freq > 18 then
   begin
     Freq := Word(1193181 div LongInt(Freq));
     B := Byte(GetPort($61));
     if (B and 3) = 0 then
     begin
       SetPort($61, Word(B or 3));
       SetPort($43, $B6);
     end;
     SetPort($42, Freq);
     SetPort($42, Freq shr 8);
   end;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS