|
Tout d'abord il faut verifier la présence de la souris, autrement
dit vérifier qu'un driver souris est installé. Dans le cas
où un driver est installé, la fonction 00h de l'interruption
33h doit renvoyer 0FFFFh dans AX. Il suffirait donc de tester AX après
l'appel de cette fonction. Cependant, si aucun driver n'est installé,
il se peut que l'interruption pointe sur 0000:0000 et dans ce cas il ne
faut pas appeler l'interruption.On s'assure donc dans le vecteur d'interruption
que ce n'est pas le cas, puis on peut lancer l'interruption et comparer
AX avec 0FFFFh
public MouseEnable
;Out CF 1=>Erreur ; 0=>OK MouseEnable: pusha push es xor ax,ax mov es,ax mov bx,33h*4 mov eax,dword ptr es:[bx] pop es cmp eax,0 je ME_PasDispo xor ax,ax int 33h cmp ax,0ffffh jne ME_PasDispo clc jmp MouseEnableFin ME_PasDispo: stc MouseEnableFin: popa ret |