Protokol mysi PS/2
Pavel Hudecek
pavelhudecek
Středa Březen 17 12:01:29 CET 2004
> Nasel jsem i prislusne misto ve zdrojacich kernelu Linuxu, ale tam to
vypada,
> ze PS/2 mys je obsluhovana radicem klavesnice, takze driver ziskava
> uz jenom upravene informace, podobne jako z klavesnice.
Ano presne tak to je, funguje normalne pres porty klavesnice, jen
radic klavesnice pri te prilezitosti generuje preruseni mysi...
Pomerne neprakticke je, ze generuje preruseni kvuli kazdemu
bytu zvlast a tak se dost spatne poznava, ktery je prvni.
Kdysi jsem se pokousel psat vlastni operacni system a tak
zasilam kousek, ktery obsluhuje PS/2 mys:
dwo equ dword ptr
k1 equ 1024
k393 equ 393*k1
msSwp equ 408*k1
msX equ ds:[k393]
msY equ ds:[k393+4]
msCur equ dwo ds:[k393+8]
msCurVel equ dwo ds:[k393+12]
msStav equ dwo ds:[k393+16] ;b0-31: Tl 0,1,2,3,4,5,6,7, +on/-off
msCteni equ ds:[k393+20] ; B0 poradi cteneho cisla, B123 cisla
itr44: pushad ; PS/2 Mys
push ds
mov ax,4*8
mov ds,ax
in al,60h
mov ecx,msCteni
cmp cl,1
jnz short iMsDal
test al,8
jnz short iMsDal
pop ds
popad
iretd
iMsDal: cmp cl,3
jz short iMsVse
and ecx,3
mov msCteni[ecx],al
inc byte ptr msCteni
pop ds
popad
iretd
iMsVse: mov msCteni[3],al
mov al,msCteni[1]
call iMsZjistiStisk
mov ah,msCteni[3] ; 1
mov al,msCteni[2] ; 3
call msMove ; msMove je procedura pohybyjici s kursorem
mov msCteni[0],byte ptr 1
pop ds
popad
iretd
Pro pripadne DOSove stouraly poznamenavam, ze indexovat lze libovolnym
registrem, jen musi byt 32bitovy. Dokonce jsou mozne i takovehle
silenosti:
mov gs:[eax*4+ebx-1000000],byte ptr 231
Jinak v dnesni dobe, kdy vsechny normalni operacni systemy disponuji
wokennim rozhrannim, bych doporucoval spise vyuzit funkci OS (a zejmena
udalosti) k tomu urcenych. Ma to zretelne vyhody, protoze kdyz si napisete
vlastni rozhranni, tak se muzete dockat neprijemneho prekvapeni, kdyz
to s nejakym klonem HW nebude chodit, protoze jste o jeho existenci
nemeli tuseni. Pokud pouzijete rozhranni systemu, je jistota, ze toto bude
chodit samo i bez vaseho pricineni s pomoci ovladacu od vyrobce.
Ponekud odlisna je ovsem situace, kdyz chcete mysi ovladat jednocip...
H.
------
http://www.diametral.cz
Další informace o konferenci Hw-list