Localize file
www.TrSek.com/pas/cedecko.pas
{ CEDECKO.PAS }
{ Program na ovladanie CD-ROM. }
{ Spusti/zastavi prehravanie CD-Rom. }
{ }
{ Datum:28.05.2004 http://www.trsek.com }
program Ovladanie_CD;
uses dos;
const RequestHeader:record
Dlzka,SubUnit,Prikaz:byte;
Status:word;
Rezerva:array[1..8] of byte;
end = (Dlzka:13; SubUnit:0; Prikaz:$88);
{ Priklad: $85: pri hrajucom CD je to PAUSE
v stave PAUSE je to STOP
$88 RESUME AUDIO - to iste ako $85 }
{ zisti kolko je CD-Rom }
function CD_Count:byte;
var reg:registers;
begin
reg.ah:=$15;
reg.al:=$00;
reg.bx:=0;
intr($2F,reg);
{ BX - pocet CD, CX - pismeno prveho CD (0=A, .. 3=D) }
CD_Count:=reg.bx;
end;
{ Ake pismeno ma ktora CD-Rom }
{ Ak vrati A CD-Rom na dannej pozicii neexistuje }
function CD_Letter(order:byte):char;
var reg:registers;
Letters:array[1..255] of byte;
i:byte;
begin
for i:=1 to 255 do Letters[i]:=0; { zmaz }
reg.ah:=$15;
reg.al:=$0d;
reg.es:=seg(Letters);
reg.bx:=ofs(Letters);
intr($2f,reg);
{ pismeno CD }
CD_Letter:=chr(Letters[order]+ord('A'));
end;
{ Spusti/zastavi prehravanie CD-Rom }
procedure CD_Play;
var reg:registers;
begin
reg.ah:=$15;
reg.al:=$10;
reg.ch:=0;
reg.cl:=ord(CD_Letter(1)) - ord('A');
reg.es:=seg(RequestHeader);
reg.bx:=ofs(RequestHeader);
intr($2f,reg);
end;
BEGIN
WriteLn('Pocet CD je:', CD_Count);
WriteLn('Pismeno prvej je:', CD_Letter(1));
WriteLn('Teraz spustim play na CD');
CD_Play;
END.
Copyrigth by Zdeno Sekerak 2007,
http://www.trsek.com