09 Принципы работы клавиатуры ПК
.doc
Существуют также так называемые расширенные коды, присвоенные клавишам или комбинациям клавиш, которые не имеют представляющего их символа ASCII, таким, как, например, функциональные клавиши. Расширенные коды имеют длину 2 байта, причем первый байт всегда ASCII 0. Второй байт - номер расширенного кода. Например, код 0:30 представляет комбинацию клавиш [Alt]+[A]. Начальный 0 позволяет программе определить, принадлежит ли данный код набору ASCII или расширенному набору.
При нажатии на какую-либо клавишу клавиатуры код нажатой клавиши, называемый скан-кодом, трансформируется в ASCII код или расширенный код вводимого символа, который затем помещается в буфер клавиатуры. Буфер клавиатуры может накапливать до 15 нажатий на клавиши независимо от того, каким кодам они будут соответствовать (однобайтовым кодам ASCII или двухбайтовым расширенным кодам). В буфере клавиатуры для каждого нажатия на клавишу отводятся два байта. Для однобайтовых кодов первый байт ячейки памяти буфера содержит код ASCII, а второй - скан-код клавиши. Для расширенных кодов первый байт ячейки памяти буфера содержит ASCII 0, а второй - номер расширенного кода. Этот код обычно совпадает со скан-кодом клавиши, но не всегда, поскольку некоторые клавиши можно комбинировать с клавишами сдвига для генерации различных кодов.
