I dati provenienti da una tastiera si presentano principalmente sotto forma di scancode, prodotti dalla pressione dei tasti o utilizzati nel protocollo con il computer. (Il firmware della tastiera utilizza internamente codici diversi ed esistono anche diversi set di scancode. In questa sezione parliamo solo dei codici predefiniti, quelli del set di scancode 2 tradotto. Le modalità meno comuni sono discusse di seguito) Ogni pressione e rilascio di un tasto produce da 0 a 6 scancode.
1.1 Rilascio del tasto
Qui di seguito verrà menzionato solo lo scancode per la pressione del tasto (`make'). Lo scancode per il rilascio del tasto (`break') si ottiene impostando il bit di ordine superiore (aggiungendo 0x80 = 128). Pertanto, la pressione di Esc produce lo scancode 01, il rilascio di Esc lo scancode 81 (hex). Per le sequenze le cose sono simili: Keypad-/ dà e0 35 quando viene premuto, e0 b5 quando viene rilasciato. La maggior parte delle tastiere ripete il codice make (codice di abbassamento del tasto) quando il tasto si ripete. Alcune simulano anche gli eventi Shift down e Shift up durante la ripetizione.
I tasti PrtSc/SysRq e Pause/Break sono speciali. Il primo produce lo scancode e0 2a e0 37 quando non viene premuto contemporaneamente alcun tasto modificatore, e0 37 insieme a Shift o Ctrl, ma 54 insieme ad Alt (sinistro o destro) (e al rilascio si ottengono le sequenze previste, ma si veda sotto). Il secondo produce la sequenza di scancode e1 1d 45 e1 9d c5 quando viene premuto (senza modificatore) e nulla al rilascio. Tuttavia, insieme a Ctrl (destro o sinistro), si ottiene e0 46 e0 c6, e di nuovo nulla al rilascio. Non si ripete.
Vedere più avanti per un resoconto sui tasti con un comportamento diverso.
Ci sono molte segnalazioni di computer portatili con eventi di pressione dei tasti non correttamente segnalati. Pertanto, gli eventi inattesi di pressione dei tasti dovrebbero essere considerati non insoliti e ignorati.
---