Натискання клавіші перетвориться у двухбайтовый код, називаний скан‑ ASCII‑ кодом. Цей код міститься в буфер клавіатури, звідки Ваша програма може вважати його за допомогою переривання системи BIOS. Старший байт двухбайтового коду називається скан‑ кодом і є відображенням фактично натиснутої клавіші. Скан‑ код не відбиває стан клавіш Shift, Ctrl або Alt і не є унікальним. Крім скан‑ кодів натискання, існують коди відпускання клавіш, що відрізняються на шестнадцатеричное значення 80 убік збільшення. Молодший байт повного коду, називаний ASCII‑ кодом, також не є унікальним, але повна комбінація скан і ASCII‑ кода унікальна. Деякі клавіші не мають ASCII‑ коду й замість нього вертається нуль. Такі двухбайтовые коди називаються розширеними. При прийманні коду натиснутої клавіші через DOS остання відокремлює від загального значення скан‑ код. Крім того русифікатор, що працює в системі,‑ може додатково транслювати скан коди‑ буквених клавіш в ASCII коди російських букв.
 Виходячи зі сказаного, при використанні стандартної функції Readkey, що працює з ASCII‑ кодами клавіш, у загальному випадку є правильної наступна схема обробки на Паскалі:
 Ch := Readkey; {Читання символу в байт Ch}
 if Ch = #0 then begin
 {Якщо немає ASCII‑ коду,
 прочитати додатково розширений код}
 Ch := Readkey;
 {Обробка розширеного коду}
 end
 else
 {Обробка ASCII‑ коду}
 На Паскалі десятковий код може бути записаний у вигляді #N, де N – число, наприклад, #65 ('A' латинська). ASCII‑ коди основних друкованих символів можна довідатися з Додатка 1, інші потрібні коди приводяться далі.
 ASCII‑ коди
   | ENTER |  | Пробіл |  | 
  | ESC |  | Backspace |  | 
  | Tab |  |  |  |