Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Beep для Delphi, который работает как в Turbo Pascal

01.01.2007

BEEP , для дельфи , который работает, как в B.Pascal 7.0

Я применяю следующий код, однако он работает только под Win9x/me

(Под WinNT/2000/XP вы можете использовать Beep(Tone, Duration)

- задавать тон и продолжительность звучания).

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;
 
procedure
NoSound;
 
var Value: Word;
begin
 
Value := GetPort($61) and $FC;
 
SetPort($61, Value);
end;
 
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;

Взято с Vingrad.ru https://forum.vingrad.ru