Bufor klawiatury

Z Wikipedii, wolnej encyklopedii

Bufor klawiatury wydzielony obszar pamięci obsługiwanej przez BIOS. W buforze przechowywana jest informacja o naciśniętych klawiszach do czasu jej odczytania przez aplikacje lub system operacyjny. Bufor klawiatury działa na zasadzie kolejki FIFO.

Bufor na PC mieści do 15 dwubajtowych kodów przycisków (keycodes) kolejno naciśniętych przez użytkownika. Jest zorganizowany jako bufor cykliczny. Wskaźnik bliski w segmencie 40h na jego początek (pierwszy przycisk) BIOS umieszcza pod adresem 40h:1ah, a koniec (miejsce na następny przycisk) 40h:1ch. Bufor zajmuje 32 bajty od adresu 40h:1eh. Ze względu na tę konstrukcję mieści tylko 15, a nie 16 naciśnięć klawiszy, gdyż szesnaste sprawiłoby, że wskaźniki na początek i koniec bufora pokryłyby się i nie można by było odróżnić tego stanu od pustego bufora.

Kody keycodes powstają z kodów przekazanego przez klawiaturę (scancodes). Młodszy bajt keycode to kod ASCII klawisza (albo zero, gdy nie istnieje odpowiednik w ASCII), a starszy to scancode. Przekroczenie maksymalnej pojemności sygnalizowane jest przez charakterystyczny dźwięk oznaczający przepełnienie bufora klawiatury.

Systemy operacyjne często przejmują te funkcje od BIOSu i same kolejkują zdarzenia klawiatury wraz z innymi zdarzeniami (np. od myszki). Wówczas pojemność bufora może być większa, kody przycisków bywają zupełnie inne, lecz nie jest to już zwykle bufor klawiatury, tylko kolejka zdarzeń obejmująca wszelkie zdarzenia sprzętowe.

Linki zewnętrzne[edytuj | edytuj kod]