Понадобилось сделать что-то типа такого:
Файл уже существует. Заменить? [Y/N]
Вспомнил, что в Турбопаскале была функция ReadKey из модуля Crt, а вдруг и во FreePascal есть?
Есть, но модуль Crt делает глюк русскому языку:
program TestCrt;
uses Crt;
var Ch:char;
begin
WriteLn('Нажмите любую клавишу...');
Ch:=ReadKey;
end.

Ладно, пробуем заменить Crt на WinCrt.
Глюк с русским языком пропал, но функция ReadKey на нажатие клавиш не реагирует, да пиздец, еб твою мать!
В общем, долго плевался, реализовал через TKeyEvent из модуля Keyboard:
uses SysUtils,Keyboard;
function Ask(FilePath:UnicodeString):boolean;
var K: TKeyEvent;
KS:String;
begin
WriteLn ('File ', FilePath, ' is exists! Replace file? [Y/N]');
InitKeyBoard;
while true do begin
K:=GetKeyEvent;
K:=TranslateKeyEvent(K);
KS:=KeyEventToString(K);
if (KS='Y') or (KS='y') then begin DoneKeyBoard; exit(true); end;
if (KS='N') or (KS='n') then begin DoneKeyBoard; exit(false); end;
end;
DoneKeyBoard;
exit(false);
end;