{ TOM MOORE > In a PASCAL-Program I want to execute a Procedure every time the > user presses a key... Fairly easy, right ? But here comes the > problem : I want to Repeat that Procedure Until he RELEASES that > key... } Uses Crt; Const Done : Boolean = False; Var Ch : Char; Procedure MakeSound; begin if Port[$60] < $80 then begin Sound(220); Delay(100); end; if port[$60] > $80 then NoSound; end; begin Repeat Repeat { While waiting For KeyPressed } Until KeyPressed; ch := ReadKey; if ch = #27 then halt; makeSound; Until Done; end.