Pętla REPEAT … UNTIL ….
W sytuacjach, gdy chcesz aby program wykonywał się aż do momentu spełnienia jakiegoś warunku pomocą jest pętla repeat until. Jest wyjątkowa pod tym względem, że wykonuje wszystkie instrukcje znajdujące się pomiędzy nią, więc nie trzeba używać poleceń BEGIN i END.
Znaczy: "Powtarzaj aż do momentu, gdy podany na końcu warunek będzie spełniony"
uses Crt;
begin
repeat
until KeyPressed;
end.
Powyższy przykład pokazuje w jaki sposób można zbudować program czekający na naciśnięcie dowolnego klawisza. Wykorzystuje on funkcję KeyPressed z modulu Crt, trzeba więc poinformować komputer że będziemy korzystali z Crt;
RunTime Error 200
Moduł Crt, napisany dla Pascala nie przewidywał takich szybkich komputerów jakie mamy dzisiaj. Przy uruchamianiu programu, może powodować błąd: "RunTime Error 200 Division by 0" jeśli nie został zainstalowany Patch do Turbo Pascala. Można go bez problemu ściągnąć z działu download tej strony internetowej.
Jeśli nie masz Patch'a a koniecznie chcesz napisać skrypt czekający na naciśnięcie dowolnego klawisza, możesz użyć bez modułu Crt:
begin
repeat
until Port[$60]<128;
end.
Port[$60] wskazuje na aktualny stan klawiatury. Jeśli Port[$60]=1 jest wciśnięty Escape, jeśli 2 F1 i tak po kolei cała klawiatura.