Додаток 5

Натискання клавіші перетворюється на двобайтовий код, званий скан-ASCII-кодом. Цей код міститься у буфер клавіатури, звідки ваша програма може вважати його за допомогою переривання системи BIOS. Старший байт двобайтового коду називається скан-кодом і є відображенням фактично натиснутої кнопки. Сканкод не відображає стан клавіш Shift, Ctrl або Alt і не є унікальним. Крім скан-кодів натискання, існують коди відпускання клавіш, що відрізняються на шістнадцяткове значення 80 у бік збільшення. Молодший байт повного коду, званий ASCII кодом, також не є унікальним, але повна комбінація скан і ASCII коду унікальна. Деякі клавіші не мають ASCII-коду і замість нього повертається нуль. Такі двобайтові коди називають розширеними. При прийомі коду натиснутої кнопки через DOS остання відокремлює від загального значення скан-код. Крім того, русифікатор, що працює в системі, може додатково транслювати скан-коди буквених клавіш в ASCII-коди українських букв.

Виходячи зі сказаного, при використанні стандартної функції readkey, що працює з ASCII-кодами клавіш, у загальному випадку є правильною наступна схема обробки на Паскалі:

if ch = #0 then begin

додатково розширений код>

На Паскалі десятковий код може бути записаний у вигляді #N, де N - число, наприклад,#65 ('A' латинська). ASCII-коди основних друкованих символів можна з Додатку 1, інші необхідні коди наводяться в табл. П5, П6.

Таблиця П5. ASCII-коди деяких клавіш

Таблиця П6. Розширені коди деяких клавіш

Додаток 1. Таблиці ascii-кодів символів для операційних систем dos та Windows

Щоб зрозуміти, як зберігається інформація в ЕОМ, намдоведеться згадати низку термінів.

Мінімальна одиниця виміру інформації - одинбіт. Біт - це двійковий розряд зі значенням "0" або "1". Очевидно, чому розробники перших ЕОМ зупинилися на двійковій системі числення. Числа в цій системі найлегше уявити фізично - припустимо, нулю відповідає стан "не намагнічено" ділянки магнітної стрічки, а одиниці - "намагнічено", або нулю - стан "немає сигналу", а одиниці - "є сигнал" в деякі лінії зв'язку.

Легко зрозуміти, скільки різних значень може бути представлено за допомогою N біт – це число дорівнює 2 N . Таким чином, в один байт "міститься" 28 = 256 різних значень.

Для обробки на комп'ютері вся нечислова інформація має бути перетворена на числову форму. Так, для комп'ютерної обробки тексту кожна буква при введенні кодується певним числом, а при виведенні на зовнішні пристрої, такі як монітор або принтер, кодами символів будуються відповідні зображення букв. Відповідність між набором символом і числами, що кодують їх, називаєтьсякодуванням символів. Як правило, код символу зберігається в одному байті, тому коди символів можуть набувати значень від 0 до 255. Такі кодування називаютьсяоднобайтовими. Основний символьний набір комп'ютера - це стандартне для IBM-сумісних машин однобайтове кодування ANSI, зване такожASCII-кодом(читається "аскі-код").

У двобайтовому кодуванні Unicode (Юнікод), що пропонується в даний час як загальносвітовий стандарт, символ кодується двома байтами, таким чином, коди символів можуть приймати значення від 0 до 65535=2 16 різних символів. У цьому кодуванні є коди всім букв алфавітів безлічі мов, математичних, декоративних символів тощо.

На рис. П1 представлено два основні українськомовні кодування, відомі як DOS-866 та Windows-1251. З першої працює середовище Турбо-Паскаль і всі програми русифікованих версій DOS, з другого - всі програми русифікованих версій Windows. Щоб дізнатися код символу, достатньо до десятків з першого стовпця приписати число одиниць з першого рядка. Так, код літери "Z" в обох кодуваннях дорівнює 90. Символи з кодами менше 32 - недруковані, це такі символи, як переклад рядка, повернення каретки, табуляція, тому вони не увійшли до таблиці. Код пропуску дорівнює 32. Зверніть увагу, що перші половини кодових таблиць (символи з кодами менше 128) збігаються як у цих двох кодуваннях, так і у всіх інших.