Os dados de um teclado apresentam-se principalmente sob a forma de códigos de barras, produzidos pelo premir das teclas ou utilizados no protocolo com o computador. ( O firmware do teclado utiliza internamente códigos diferentes e existem também vários conjuntos de códigos de barras. Nesta secção, falamos apenas dos códigos por defeito - os do conjunto de códigos de barras traduzido 2. Os modos menos comuns são discutidos abaixo) Cada tecla pressionada e libertada produz entre 0 e 6 códigos de pontuação.
1.1 Libertação de tecla
Abaixo, mencionarei apenas o código de cancelamento para pressionar a tecla (`make'). O código de barras para a libertação da tecla (`break') é obtido a partir do bit de ordem mais alta (adicionando 0x80 = 128). Assim, o pressionar da tecla Esc produz o código de barras 01, o libertar da tecla Esc produz o código de barras 81 (hexadecimal). Para as sequências, as coisas são semelhantes: o teclado-/ dá e0 35 quando premido, e0 b5 quando libertado. A maioria dos teclados repete o código make (código de tecla para baixo) quando a tecla é repetida. Alguns também fingem eventos de Shift down e Shift up durante a repetição.
As teclas PrtSc/SysRq e Pause/Break são especiais. A primeira produz o código de barras e0 2a e0 37 quando nenhuma tecla modificadora é premida em simultâneo, e0 37 juntamente com Shift ou Ctrl, mas 54 juntamente com Alt (esquerda ou direita). (E obtém-se as sequências esperadas ao soltar. Mas veja abaixo.) A segunda produz a sequência de código de barras e1 1d 45 e1 9d c5 quando premida (sem modificadora) e nada ao soltar. No entanto, juntamente com o Ctrl (esquerdo ou direito), obtém-se e0 46 e0 c6, e novamente nada ao soltar. Não se repete.
Ver abaixo um relatório sobre teclas com um comportamento diferente.
Há muitos relatos de computadores portáteis com eventos de acionamento de teclas mal pronunciados. Assim, eventos inesperados de acionamento de teclas devem ser considerados como não sendo invulgares e devem ser ignorados.
---