Kod BREAK odczytywany przez układ elektroniczny klawiatury oznacza
A. awarię kontrolera klawiatury.
B. zwolnienie klawisza.
C. uruchomienie funkcji czyszczącej bufor.
D. konieczność ustawienia wartości opóźnienia powtarzania znaków.
Pytanie z egzaminu CKE, styczeń 2019 (arkusz E.12-X-19.01).
Kod BREAK w pracy klawiatury oznacza zwolnienie klawisza, czyli moment, w którym użytkownik przestaje go naciskać. Klawiatura nie wysyła do komputera tylko informacji „jaki znak ma się pojawić”, ale przekazuje kody skanowania, tzw. scan codes. Dla naciśnięcia klawisza używa się zwykle kodu MAKE, a dla puszczenia klawisza kodu BREAK. To jest bardzo ważne np. przy obsłudze klawiszy modyfikujących, takich jak Shift, Ctrl czy Alt, bo system musi wiedzieć nie tylko, że klawisz został użyty, ale też czy nadal jest trzymany. Z mojego doświadczenia to często myli się z kodami ASCII, a to nie to samo. ASCII opisuje znaki, a kody MAKE/BREAK opisują fizyczne zdarzenia z klawiatury. W praktyce kontroler klawiatury, firmware oraz sterownik systemowy analizują takie zdarzenia i dopiero potem system operacyjny decyduje, czy ma wstawić literę, wykonać skrót klawiaturowy, albo rozpocząć powtarzanie znaku. Dobra praktyka w diagnostyce urządzeń wejścia polega na rozróżnianiu warstwy sprzętowej, czyli sygnałów i kodów skanowania, od warstwy programowej, czyli interpretacji przez system i aplikacje.
W tym pytaniu kluczowe jest rozróżnienie zdarzeń generowanych przez klawiaturę od funkcji konfiguracyjnych lub diagnostycznych. Kod BREAK nie oznacza awarii kontrolera klawiatury. Uszkodzony kontroler, problem z magistralą, złączem USB/PS/2 albo firmwarem objawiałby się raczej brakiem reakcji, losowymi znakami, błędami inicjalizacji urządzenia albo komunikatami diagnostycznymi, a nie normalnym kodem BREAK. Ten kod jest częścią standardowej komunikacji klawiatury i informuje, że konkretny klawisz został zwolniony. Moim zdaniem najłatwiej to zapamiętać tak: MAKE to „zrobienie” naciśnięcia, BREAK to „przerwanie” nacisku. Kod BREAK nie służy też do ustawiania opóźnienia powtarzania znaków. Opóźnienie i częstotliwość powtarzania są parametrami konfiguracyjnymi obsługiwanymi przez system operacyjny, sterownik albo ustawienia klawiatury w panelu konfiguracyjnym. To, że po przytrzymaniu litery pojawia się „aaaaaaaa”, wynika z interpretacji długiego naciśnięcia, a nie z tego, że kod BREAK ustawia tempo powtarzania. Nie należy go również kojarzyć z czyszczeniem bufora. Bufor klawiatury przechowuje zdarzenia wejściowe, aby system mógł je kolejno przetworzyć, ale jego czyszczenie to inny mechanizm programowy lub diagnostyczny. Typowy błąd myślowy polega tutaj na traktowaniu słowa „break” jako przerwania programu, resetu albo czyszczenia czegoś. W kontekście klawiatury chodzi po prostu o puszczenie klawisza, czyli zwykłe zdarzenie sprzętowe odczytywane przez układ elektroniczny i dalej przekazywane do sterownika.