Posted By: Pharook (wearing heart like clown.) on 'CZprogram'
Title: Re: CTRL-ALT-DEL
Date: Thu Jan 30 12:53:24 1997
> Podobny dotaz jako Mikes - Jak ignorovat v PAS stlaceni CTRL-ALT-DEL ?
to je vetsi problem, nez crtl-break a ctrl-c. skautsky pozdrav nema sve
specialni preruseni. coz znamena, ze je nutne se posadit na preruseni
009h a zjistovat tam z portu 060h sam stisknute klavesy. v normalnim
pripade si nastavis nejake flagy, podle toho, zda je stisknuta ci
pustena klavesa ctrl, alt, del, pokud najednou zjistis, ze jsou stisknuty
vsechny tri, NEZAVOLAS puvodni obsluhu (ktera by rebootovala stroj).
klavesu ctes na zacatku obsluhy z portu 060h, t.j. in al, 060h, resp.
neco := port[$60]; resp. neco = inp(0x60); scancody jsou
ctrl - 01Dh, alt - 038h, del - 053h, pokud je nastaven sedmy bit, t.j.
jsou o 080h vetsi, znamena to pusteni klavesy.
nezavolas-li potom puvodni obsluhu, je nutne na konci rutiny oznamit
klavesnici, ze jsi klavesu prijal a radici preruseni, ze preruseni je
zpracovano. magicka seqence zni (tohle uz si do prislusneho jazyka preloz
sam >=] )(kopirovano z at-helpu):
in al,61H ;zjisti hodnotu rizeni klavesnice
mov ah,al ; uloz ji
or al,80h ;nastav bit "povoleni klavesnice"
out 61H,al ; a zapis to na ridici port
xchg ah,al ;vezmi originalni hodnotu rizeni portu
out 61H,al ; a zapis ji zpatky
mov al,20H ;posli signal KonecPreruseni
out 20H,al ; na radic preruseni 8259
to je jen strucny vytah (ktery ale k zakazani skautskeho pozdravu
staci), ale doporucuji v nejakem helpu (sysman, cshelp, athelp atp.)
dukladneji prostudovat obsluhu preruseni klavesnice.
hodne zdaru.
______________________________________________________________________________
pharook
"mesic je dulezitejsi, nez slunce," reklo dite, "protoze sviti, kdyz je tma."