Лабораторный практикум по информатике. Мухина И.Н - 74 стр.

UptoLike

Составители: 

74
ПРИЛОЖЕНИЕ 2. РАСШИРЕННЫЕ КОДЫ
КЛАВИАТУРЫ
Нажатие клавиши преобразуется в двухбайтовый код,
называемый скан-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-коды
       ПРИЛОЖЕНИЕ 2. РАСШИРЕННЫЕ КОДЫ
                КЛАВИАТУРЫ

    Нажатие клавиши преобразуется в двухбайтовый код,
называемый скан-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-коды




                            74