Obsah / Ovladače / TIMER / Globální funkce ovladače časovače
Zdrojový kód: DRIVERS\SYSTEM\TIMER.ASM
Globální funkce ovladače časovače
Globální funkce ovladače časovače se provádějí s implicitním ovladačem časovače, jehož popisovač je uchován v proměnné TIMERDevice.
|
Funkce TIMERSetMode je funkce pro inicializaci čítače časovače. Na vstupu funkce obsahuje registr EAX požadovaný mód čítače (DEVTIM_MODE_CNT, ...), registr ECX inicializační hodnotu čítače (v rozsahu 0 až 65536, přičemž hodnota 0 má význam hodnoty 65536) a registr EDX index čítače (v rozsahu 0 až 2). Čítač je vždy používán jako 16-bitový. V případě neplatného argumentu navrátí funkce příznak chyby CY. V módu DEVTIM_MODE_GEN je inicializační hodnota čítače 1 neplatná, ale není funkcí kontrolována platnost. Nastavením nového módu čítače se přeruší probíhající čítání a čítač se resetuje. Funkce trvá typicky zhruba 7 mikrosekund. Funkce zajistí uzamknutí ovladače pomocí rychlého zámku.
|
Funkce TIMERSetVal je funkce k nastavení nové inicializační hodnoty čítače bez nastavení módu čítače a tedy bez resetování čítače. Nová inicializační hodnota čítače se uplatní zpravidla při následujícím cyklu. Na vstupu funkce obsahuje registr ECX inicializační hodnotu čítače (v rozsahu 0 až 65536, přičemž hodnota 0 má význam hodnoty 65536) a registr EDX index čítače (v rozsahu 0 až 2). Čítač je vždy používán jako 16-bitový. V případě neplatného argumentu navrátí funkce příznak chyby CY. V módu DEVTIM_MODE_GEN je inicializační hodnota čítače 1 neplatná, ale není funkcí kontrolována platnost. Funkce trvá typicky zhruba 4 mikrosekundy. Funkce zajistí uzamknutí ovladače pomocí rychlého zámku.
|
Funkce TIMERGetVal je funkce ke zjištění aktuální hodnoty čítače. Na vstupu funkce obsahuje registr EBX popisovač ovladače časovače a registr EDX index čítače (v rozsahu 0 až 2). Funkce vrací na výstupu v registru EAX aktuální hodnotu čítače. Čítač je vždy používán jako 16-bitový. V případě neplatného argumentu navrátí funkce příznak chyby CY. Funkce trvá typicky zhruba 7 mikrosekund. Funkce zajistí uzamknutí ovladače pomocí rychlého zámku.
|
Funkce TIMERGetOut je funkce ke zjištění stavu výstupu OUT čítače. Na vstupu funkce obsahuje registr EDX index čítače (v rozsahu 0 až 2). Funkce vrací na výstupu v registru EAX aktuální stav OUT čítače, hodnotu 0 nebo 1. V případě neplatného argumentu navrátí funkce příznak chyby CY (EAX = 0). Funkce trvá typicky zhruba 4 mikrosekundy. Funkce je podporována pouze u řadiče 8254 (standardní řadič v PC-AT) ale ne u 8253 (řadič používaný v PC-XT). Funkce zajistí uzamknutí ovladače pomocí rychlého zámku.
Obsah / Ovladače / TIMER / Globální funkce ovladače časovače