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

Советы » Аудио » BEEP для Delphi, который работает как в Pascal

Я применяю следующий код, однако он работает только под 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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com