Witam wszystkich
ucze sie dopiero pascala i mam taki problem, mam taki kod:
program test;
uses crt;
var kod_skan: byte;
procedure g_pobierz_skan_kod(var kod_scan: byte);
var
temp: byte;
begin
temp := port[$64];
if((temp and $01) = 0) then
begin
kod_scan:= 0;
exit;
end;
if((temp and $20) = 32) then
begin
temp := port[$60];
kod_scan := 0;
exit;
end;
kod_scan := port[$60];
end;
procedure g_powtarzanie_klawiszy(liczba, opoznienie: byte);
begin
asm
mov ah, 03h
mov bl, liczba
mov bh, opoznienie
int 16h
end;
end;
procedure g_sys_klawiatura(stan:boolean);
begin
if(stan = TRUE) then
port[$21] := $00
else
port[$21] := $02;
end;
begin
clrscr;
g_powtarzanie_klawiszy($1f, $01);
while (1=1) do
begin
g_pobierz_skan_kod(kod_skan);
g_sys_klawiatura(FALSE);
if(kod_skan=1) then break;
if(kod_skan<>0) then writeln(kod_skan);
end;
g_sys_klawiatura(TRUE);
end.
No i kiedy odpalam program nie wyskakuje mi żaden bład, ale po tym jak wcisne jakikolwiek klawisz, to blokuje mi sie cała klawiatura i nie moge nic robic :(
Kombinowalem troche i wydaje mi sie że to wina procedury g_sys_klawiatura(); bo bez niej działa dosyć dobrze. Proszę o pomoc, co mam zmienic w kodzie?
Z góry dzieki!!