uses crt; var ch: char; begin clrscr; writeln('Нажмите на любую клавишу'); ch:=readkey; if ch=#0 then begin ch:=readkey; writeln('Управляющая клавиша с кодом ', ord(ch)); end else writeln('Клавиша с кодом ', ord(ch)); readln end.
В паскале есть такая функция ReadKey; Возвращает символ. Если код символа 00 то нажата служебная клавиша, тогда вызывай ReadKey еще раз. Посимвольный ввод можно организавать примерно как Repeat {} Until KeyPressed; c:=ReadKey; И все это запихать внутрь бесконечного цикла.
или вообще как лучше сделать хорошо ограниченный ввод