Sprawdzanie jednego warunku podczas wykonywania się całego kodu

0

Witam,
tworzę prosty system operacyjny. Doszedłem do momentu, w którym dodaję obsługę klawiatury i pojawił się problem.
System powinien mieć funkcję, która sprawdza czy klawisz jest naciśniety, jeżeli tak to wyświetla znak. Sprawdzanie warunku odbywa się cały czas w trakcie wykonywania kodu, a nie w jednym momencie.
Wiem, że muszę to jakoś zapętlić, ale nie mam pojęcia jak to zrobić, żeby nie zawiesić programu tworząc nieskończoną pętlę...

1

A czy nie możesz po prostu użyć do tego celu przerwań?

0

Dzięki za odpowiedzi :)

Z tego wynika, że interrupt klawiatury zapisuje scancode do buffera i kończy działąnie. Mam kod, który pobiera wartość z danego portu, czyli może pobierać to co ten interrupt zapisał (jeżeli dobrze rozumiem).
Problem polega na tym, że nie wiem co zrobić po pobraniu scancodu i przekształceniu go na znak.

static uint8_t inb(uint16_t port) // przy wywołaniu podaję 0x60
{
    uint8_t ret;
    asm volatile ( "inb %1, %0"
                   : "=a"(ret)
                   : "Nd"(port) );
    return ret;
}

Nie wiem też o co chodzi w (kod z http://webpages.charter.net/danrollins/techhelp/0106.HTM)

cmp     al,POP_KEY         ;is this the hot key?
je      do_pop             ; yes, trigger the popup
                                   ;  no, drop through to original driver

Co to jest ten "popup"

1 użytkowników online, w tym zalogowanych: 0, gości: 1