En informatique, la souris est devenue pour l’utilisateur synonyme de facilité, d’agrément, de confort, bref d’une convivialité que tout programmeur souhaite légitimement pouvoir mettre de son coté.
1. REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
MINISTERE D’ENSEIGNEMENT SUPERIEUR
ET DE RECHERCHE SCIENTIFIQUE
Faculté des Sciences et de l’Ingénierie
Institue de Génie Informatique
Module de L’Architecture des Ordinateurs
Année universitaire 2005 - 2006
Réalisé par :
BENYAMMI BACHIR
Encadré par :
MR.LAGRAA
2. Sommaire Le périphérique Souris
1
I. Introduction ……………………………………………………………………………………………...………………... 02
II. Définition ……………………………………………………………………………………………...…………….…….... 03
1. Les boutons de la souris …………………...……………………………………………………..…….. 03
La molette ……………………………………………………………………….…………..………… 04
Nombre de boutons …………………………………………………………………………….. 04
2. Fonctionnement de souris ……………………………………………………………………………… 04
3. Le pilote de la souris MOUSE.COM
……………………………………………………………..
05
III. Technologie des souris ………………………………………………………………………………………....... 06
1. Types de Souris …………………………………………………………………………………………. 06
1.1. Mécanique ……………………………………………………………………….……………… 06
1.2. Optomecanique ………………………………………………………...…………………… 06
1.3. Optique ……………………………………………………………………...……………………. 06
2. Types de liaison …………….…………….…………….…………….…………….………………...... 07
2.1. Liaison par câble …………….…………….…………….…………………………………. 07
2.2. Liaison infrarouge …………….…………….…………….……………………………….. 08
2.3. Liaison radio …………….…………….…………….……………………….…….……..…… 08
3. Types de connexion …………….…………….…………….…………….…………….………........ 09
3.1. connexion série …………….…………….…………….……….…………….…………...... 09
3.2. connexion PS/2 …………….…………….…………….…………….……………………… 09
3.3. Connexion USB …………….…………….…………….…………….…….…………........ 09
3.4. Ports de la carte mère …………….…………….…………….………………………... 10
IV. Programmation de la souris …………….…………….…………….…………….…………….…………….. 11
1. Classification des fonctions …………….…………….…………….…………….……...……... 11
1.1. Driver de la souris …………….…………….…………….…………….……….……...…. 11
1.2. Position du curseur ….……...….….……...….….……...….….……...….…………...…. 12
1.3. Zones du curseur ….……...….….……...….….……...….….……....…...….….……...…. 13
1.4. Visibilité du curseur ….……...….….……...….….……...….…...……...….….……...…. 14
1.5. Sensibilité de la souris ….……...….….……...….….……...….….…..….….……...…. 15
1.6. Etat de la souris ….……...….….……...….….……...….….….….……...….….……....…. 16
2. Organisation des fichiers …………….…………….…………….…………….………..……….. 17
2.1. Les librairies du TP7 ….……...….….……...….….……...….….……..….….……...…. 17
2.1.1. L’unité DOS ….……...….….……...….….……...….….…….....….……...…. 17
2.1.2. L’unité CRT ….……...….….……...….….……...….….……...….….……...…. 17
2.1.3. L’unité graphique ….……...….….……...….….…….........….….……...…. 17
2.1.4. Le driver de la carte graphique ….……...….….....….….……...…. 18
2.2. Les fichiers du programme ….……...….….……...….….……...….….………...…. 18
2.2.1. L’interface souris ….……...….….……...….….……...….….….……...…. 18
2.2.2. L’unité d’affichage ….……...….….……...….….……...….…...……...…. 19
2.2.3. L’unité d’initialisation ….……...….….……...….….……...…..…..…...…. 20
2.2.4. La définition des curseurs graphiques ….……...….….…….... 20
2.2.5. Le programme principal ….……...….….……...….….……...….….….. 20
3. Manuel de référence …………….…………….…………….…………….…………….…….……. 21
V. Conclusion …………….…………….…………….…………….…………….…………….…………….………….…... 30
Glossaire …………….…………….…………….…………….…………….…………….…………….…………….……… 31
Bibliographie …………….…………….…………….…………….…………….…………….…………….……………… 32
Sommaire
3. Introduction Le périphérique Souris
2
L’importance des systèmes informatiques dans les divers secteurs d’activité amène
des utilisateurs de plus en plus nombreux et de plus en plus profanes à utiliser ces
systèmes.
De nos jours, c’est une vaste partie de la population active qui utilise l’ordinateur
comme outil de travail, sans avoir de connaissances particulières sur l’architecteur de
l’ordinateur et sur sa programmation.
Bon nombre de ces personnes détestent la frappe des commandes système au
clavier, ils préfèrent les systèmes qui affichant des menus à l’écran et avec lesquels ils
pouvant communiquer directement en pointant vers les commandes des menus. Le
moyen le plus utilisé aujourd’hui pour se faire est un dispositif appelé souris.
La souris a été inventée en 1963 par Douglas Engelbart du Stanford Research
Center après des tests d'utilisation, basés sur le TrackBall. Elle a été améliorée par Jean-
Daniel Nicoud à l'EPFL dès 1979 grâce à l'assemblage d'une boule et de capteurs ; il a
fabriqué la souris Depraz qui a été à l'origine de l'entreprise Logitech.
La souris est rendue populaire avec le Macintosh. En 1984, La firme Apple fait sortir
le système d’exploitation MacOS qui été équipé d’une interface graphique plus convivial.
Les premières souris étaient en fait de simples trackballs inversées, où l'utilisateur
déplaçait l'appareil.
I. Introduction
4. Définition Le périphérique Souris
3
La souris doit son nom à sa forme : c'est une petite boîte qui se meut sur la table et
reliée par sa queue à l'ordinateur.
Une souris se compose d’une boîte à fond plat conçue pour être prise d’une seule
main, d’un ou de plusieurs boutons sur la partie supérieure de cette boîte, d’un capteur
directionnel (en général une bille) sur la partie inférieure, et une liaison avec l’ordinateur
(généralement un câble).
Figure 2-1 : Souris reliée à l’ordinateur
1. Boutons de la souris
Une souris comprend un, deux ou trois boutons, voir plus, sur sa face supérieure
pour permettre à l’utilisateur de sélectionner et d’activer les éléments des menus et
d’autres éléments textuels ou graphiques. L'appui sur les boutons de la souris provoque
différents effets, en fonction des programmes utilisés.
Les souris standard pour PC ont aujourd'hui une molette en plus de leurs deux
boutons (gauche et droite). C'est, en général, le bouton de gauche qui est le plus utilisé.
Le bouton droite commandant des fonctions supplémentaire (Ex: affichage d’un menu). Le
bouton central, quand il existe, n'est pratiquement jamais utilisé.
Lorsque l'on presse le bouton de la souris, on dit que l'on "clique". Si le bouton est
pressé une fois, on parle d'un "simple clic" ou d'un "clic" de la souris. Si le bouton est
pressé deux fois très rapidement, on parle d'un "double clic". Une autre action est
supportée par la souris, c’est le clic prolongé "cliquer-glisser " permet de déplacer des
objets sur l’écran.
Le cliquer-glisser consiste à:
1. Cliquer avec le bouton gauche de la souris;
2. Déplacer la souris ;
3. Lâcher le bouton gauche de la souris.
II. Définition
5. Définition Le périphérique Souris
4
Figure 2-1-1 : Boutons de la souris.
La molette
La molette est un bouton spécial qui peut être tournée ou pressée. Les souris avec
plus de deux boutons (voire deux molettes) remplissent différentes fonctions
supplémentaires assignées à chacun par les applications, le pilote ou le système
d'exploitation. La molette est souvent utilisée pour faire défiler rapidement du texte à
l'écran. Mais d'autres fonctions peuvent lui être attribuées (zoom, ...).
Nombre de boutons
La firme Apple continue de produire des ordinateurs avec des souris ne comptant
qu'un seul bouton, car leurs études montreraient que les souris à un bouton sont plus
efficaces à l'usage.
De nos jours. Certains utilisateurs préfèrent qu’il en ait qu’un bouton pour éviter de
se tromper. En revanche, d’autre disant que plusieurs boutons apportent une meilleure
efficacité au dialogue.
2. Fonctionnement de la souris
Lorsqu’on déplace la souris sur la table d’un certain mouvement, un curseur se
déplace à l’écran selon le même mouvement. Il est alors possible de positionner le curseur
en un lieu quelconque de l’écran, notamment sur une commande d’un menu.
La souris constitue un dispositif de pointage relatif, car il n’y a pas de limite
physique à son aire d’évolution, et parce que son placement à un endroit particulier ne se
traduit pas par le placement du pointeur à un endroit spécifique de l’écran : la
correspondance s’effectue par mouvement et non par position. Pour sélectionner des
éléments, ou choisir des commandes, il suffit de presser l’un des boutons de la souris.
La souris transmettre des informations de positionnement au contrôleur qui la gère.
Elle transmettre une séquence de trois octets toutes les 100 ms. Généralement, ces octets
sont transmit l’un après l’autre sur une liaison série vers l’UC. Le premier octet indiquant le
nombre de pas de déplacement dans la direction x au cours des cent derniers
millisecondes. Le second octet donne les mêmes informations dans la direction y. enfin la
troisième octet contient l’état courant des bouton.
6. Définition Le périphérique Souris
5
Un logiciel analyse le déplacement de la souris et convertit les informations reçues
en une position absolue, puis affiche un curseur à l’écran indiquant la position courante de
la souris. Lorsque le curseur se trouve en concordance de position avec un item,
l’utilisateur clique (appuie) sur le bouton ; cela permet au processeur de savoir quel item
est sélectionné et donc de connaître la tache à entreprendre.
3. Le pilote de la souris
La souris comme tout périphérique, nécessite un pilote de commande pour
s’exécutée. Microsoft a équipé sa souris d'une interface logicielle implémentée sous la
forme du driver de périphérique MOUSE.SYS ou du programme MOUSE.COM. Cette
interface est devenue par la suite un standard adopté par tous les constructeurs de souris
afin de garantir une compatibilité totale avec la souris Microsoft. Pour chargé le pilote sous
DOS en tapant dans le ligne de commandes : > MOUSE.
Il devient alors résident du DOS et redirige vers l’adresse qu’il occupe en mémoire
le vecteur d’adresse de l’interruption 33H, à l’aide ce de cette interruption que l’on va
pouvoir accéder au pilote de la souris.
La désinstallation du pilote est réalisée par la commande : > MOUSE OFF et la
mémoire qu’occupait le pilote est alors de nouveau disponible. En générale on désinstalle
le pilote pour pouvoir en recharger un autre de version plus récente.
Il existe plusieurs modes d’écran sur le marché, un mode d’écran est nécessaire
pour gérer le pilote de la souris. Si la version du pilote de souris est 6.10 ou plus, elle doit
fonctionne correctement sur la plupart des modes (Hercules, CGA, EGA, VGA, …).
7. Technologie des Souris Le périphérique Souris
6
1. Types de Souris
Il existe sur le marché trois types de souris utilisant des technologies différentes.
1.1. Souris mécanique
La souris mécanique (classique) qui fonctionne à l'aide d'une boule. Le
déplacement de cette boule, sur une surface plane, conduit à l’ouverture et au fermenteur
de contacts électrique. Ceci traduit par l’envoi d’impulsions électroniques au système qui
les décode et déplace une petite flèche (le curseur) sur l’écran d’une position à une autre.
Le principal inconvénient de la souris mécanique est le dépôt rapide de poussières,
qui s'accumulent sur les rouleaux, modifiant aléatoirement le transfert des mouvements de
la boule aux rouleaux.
Figure III-1-1-1 : Souris mécanique
1.2. Souris optomécanique
La souris optomécanique contient une boule (1) en contact avec le support où elle
est utilisée. Deux rouleaux (2) actionnés par cette boule permettent de capter les
déplacements horizontaux et verticaux de la souris. Un troisième rouleau permet de
maintenir la boule. Les rouleaux comportent un disque cranté laissant passer la lumière
d'une LED (5) ou au contraire la bloquant. Ainsi, grâce à une cellule photoélectrique (3)
recevant cette lumière, on peut calculer la vitesse de déplacement de la souris selon l'axe
x et l'axe y et par conséquent on en déduit la position relative du curseur à l'écran.
Figure III-1-2-1 : Souris optomécanique
III. Technologie des Souris
8. Technologie des Souris Le périphérique Souris
7
1.3. Souris optique
Le principe de fonctionnement de la souris optique (détection par caméra) est
identique à ce qui concerne la génération des impulsions électronique, qui dans ce cas,
résultent de la réflexion d’ondes lumineuses sur une surface plane.
Figure III-1-3-1 : Souris optique
Le principal avantage de ce type de souris, c'est qu'elle fonctionne sans boule.
Vous évitez donc tous les problèmes d'encrassement !
A cause du succès énorme de cette technologie, plusieurs type on été inventées :
Technologie optique Sun (ancienne)
Utilisation d'un tapis spécial, métallique solide rigide et quadrillé. En envoyant un
rayon de lumière et en captant le retour, la souris arrive à savoir qu'un déplacement a eu
lieu.
Technologie optique LED (actuelle)
Une micro-caméra filme le support et un processeur interprète le défilement des
aspérités comme un mouvement. Cette technologie ne nécessite pas de tapis spécial,
mais il faut quand même éviter les supports réfléchissants (verre, plastique brillant, bois
vernis...) ou trop sombres.
Technologie optique Laser (actuelle)
Inventée par les ingénieurs de Logitech. Ils ont remplacé la LED de la souris
optique par un petit laser, ainsi la source de lumière est plus intense et plus ciblée,
permettant d'obtenir un meilleur cliché de la surface
Technologie optique Infrarouge (actuelle)
Inventée par les ingénieurs de Razer. Une seule et unique souris utilise cette
technologie d'une très grande précision.
9. Technologie des Souris Le périphérique Souris
8
2. Types de liaison
La souris peut transmettre les données à l'ordinateur à l'aide de trois liaisons.
2.1. La liaison par câble
Ce type de liaison est le plus utilisé. La souris est reliée à l'ordinateur par
l'intermédiaire d'un câble dans lequel transitent les données.
Figure III-2-1-1 : Liaison par câble
2.2. La liaison infrarouge
Ce type de liaison devient de plus en plus fréquent. La souris est équipée d'un petit
émetteur de rayons infrarouges qui envoie les données en direction d'un boîtier de
réception (ce boîtier est reliée par câble à l'ordinateur). L'avantage de ce type de liaison
est que l'on peut utiliser la souris à une distance beaucoup plus importante (environ 2 m)
qu'avec une souris traditionnelle.
Figure III-2-2-1: Liaison infrarouge
2.3. La liaison radio
Le principe de cette liaison est proche de celui de l'infrarouge. Cependant, la nature
des rayons n'est pas la même. En effet, la souris et le boîtier de réception fonctionnent par
ondes radio, ceci permet d'utiliser la souris à une distance encore plus importante que par
la liaison infrarouge (jusqu'à 10 m !).
10. Technologie des Souris Le périphérique Souris
9
Figure III-2-3-1: Liaison radio
I. Types de connexion
Actuellement, vous pouvez trouver trois types de connexions pour les souris.
1.1. La connexion série
Ce type de connexion se fait de plus en plus rare. La souris est reliée à l’ordinateur
par l’un des ports série (COM1 ou COM2).
L’inconvénient de ce type de connexion est l’occupation de l’un des ports série, et
par fois le conflit avec d’autre matériel tel que le modem (utilisation du même port).
Figure III-3-1-1 : Connecteur Série
1.2. La connexion PS/2
Ce type de connexion est très fréquent pour les souris.
Figure III-3-2-1 : Connecteur PS/2
11. Technologie des Souris Le périphérique Souris
11
Une souris à bus (PS/2) a plusieurs avantages par rapport à la souris série, elle se
déplace plus régulièrement et avec plus de précision et libère l'un des ports série pour
d'autres périphériques.
L'inconvénient est en revanche qu'elle nécessite son propre IRQ (le plus souvent
l'IRQ 12).
3.3 La connexion USB
La connexion USB (Universal Serial Bus) permet de raccorder des périphériques
(lecteur CD ou DVD-ROM, imprimante, etc.), alors que l'ordinateur est sous tension. Le
système installe automatiquement les pilotes nécessaires. Autrement dit, vous n'êtes (en
principe) pas obligé de redémarrer votre ordinateur pour que votre périphérique soit
reconnu. On appelle cela, le branchement à chaud. La souris est reliée à l'ordinateur par
l'intermédiaire d'un câble, qui porte le nom de câble USB.
Figure III-3-3-1: Connecteur USB
1.3. Ports de la carte mère
Quelle que soit sa technologie, la souris avec fil est liée à l’ordinateur par l’un des
ports d’entrée-sortie suivants :
Port PS/2 (2)
Port Série (DB9) (RS-232) (3)
Port USB (1)
Figure III-3-3-1: Ports de la carte mère
12. Programmation de la Souris Le périphérique Souris
11
Les diverses fonctions de l'interface de souris sont appelées par l'intermédiaire de
l'interruption 33h où une valeur 16 bits tient lieu de numéro de fonction. Celle-ci doit être
transmise dans le registre AX.
La version 8.0 du driver de souris reconnaît en tout 53 fonctions variées avec des
numéros allant de 0000h à 00034h. La plupart des fonctions de souris travaillent avec les
registres AX, BX, CX et DX pour traiter les informations provenant du programme d'appel
et lui retourner les résultats nécessaires dans ces mêmes registres. Les registres ES, SI et
DS ne s'avèrent utiles que dans des cas exceptionnels, notamment lorsqu'il s'agit de
transmettre l'adresse des buffers.
En règle générale, l'appel d'une fonction a pour conséquence de changer le
contenu du registre adressé pour retourner les résultats de la fonction. Le contenu des
autres registres reste inchangé. Dans la plupart des fonctions, le registre AX sert
cependant à retourner l'état de la fonction qui indique un échec de l'opération en cas
d'erreur.
1. Classification des fonctions
1.1. Driver de la souris
Il existe 04 fonctions qui nous permettent de contrôler le pilote de la souris :
Fonction 00h Réinitialisation du driver de souris
(TesterDriver)
C’est la 1ere fonction qui doit être appelée, elle permet de tester l’existence du pilote.
Si la fonction est réussie, elle fixe des paramètres par défaut tel que l’invisibilité du
curseur, ça positionnement, les vitesses, les limites horizontales et verticales, et le nombre
des boutons disponible …
with Driver do
with reg do
begin
ax := 0;
intr ($33, reg);
Souris.NbrBtns := bl;
DrvExiste := (ax <> 0);
end ;
Fonction 24h Lire le type de souris
(TesterDriver)
Fournit le type de souris ainsi que son numéro de version, et la broche IRQ du PIC
d’ou la souris est branchée.
IV. Programmation de la Souris
13. Programmation de la Souris Le périphérique Souris
12
with Driver do
with reg do
begin
ax := $24;
intr($33, reg);
str(bl, VerL);
str(bh, VerH);
Version := VerH + '.' + VerL;
Irq := cl;
case ch of
1: TypeDrv :='Souris Bus';
2: TypeDrv :='Souris Série';
3: TypeDrv :='Souris InPort';
4: TypeDrv :='Souris PS/2';
5: TypeDrv :='Souris HP';
end;
end;
Fonction 1Fh Désactiver le driver de la souris
(DesactiverDriver)
Désactive le driver actuel de la souris et empêche ça déplacement sur l’écran
reg.ax := $1f;
intr($33, reg);
Fonction 20h Activer le driver de la souris
(ActiverDriver)
Active un driver de souris désactivée auparavant avec la fonction 1Fh.
reg.ax := $20;
intr($33, reg);
1.2. Position du curseur
Il existe 03 fonctions qui nous permettent de connaître et de définir l’emplacement
du curseur.
Fonction 03h Lire la position de la souris et l'état des boutons de la souris
(LirePosCurseur)
L'appel de cette fonction fournit la position actuelle de la souris et l'état des
différents boutons de la souris.
with Souris do
with Curseur do
with reg do
begin
ax := $3;
14. Programmation de la Souris Le périphérique Souris
13
intr($33, reg);
EtatBtn1 := bl and 1;
EtatBtn2 := bl and 2;
x := cx;
y := dx;
end;
Fonction 04h Déplacement du curseur de la souris
(DefinirPosCurseur)
Déplace le curseur de la souris vers une position déterminée de l'écran.
with Curseur do
with reg do
begin
ax := $04;
cx := x;
dx := y;
end;
intr($33, reg);
Fonction 0Bh Lire les distances de déplacement
(LireDistance)
Détermine la distance entre la position actuelle de la souris et la position de la
souris lors du dernier appel de cette fonction.
with reg do
with Curseur do
begin
ax := $0b;
intr($33, reg);
DistanceX := cx;
DistanceY := dx;
end;
1.3. Zones du curseur
03 fonctions existes pour définir les différentes zones du curseur de la souris
Fonction 07h Définir la zone de déplacement horizontale
(DefinirZoneDeplacement)
Définit la zone de déplacement à l'intérieur de laquelle le curseur peut se déplacer.
L'utilisateur n'aura aucune possibilité de faire sortir le curseur de la souris de la zone ainsi
fixée ; à l’initiation de la souris ; la zone de déplacement est la totalité de l’écran
with ZoneDeplacement do
with reg do
begin
ax := $07;
15. Programmation de la Souris Le périphérique Souris
14
cx := MinX;
dx := MaxX;
intr($33, reg);
end ;
Fonction 08h Définir la zone de déplacement verticale (DefinirZoneDeplacement)
with ZoneDeplacement do
with reg do
begin
ax := $08;
cx := MinY;
dx := MaxY;
intr($33, reg);
end;
Fonction 10h Définir la zone d'exclusion
(DefinirZoneExclusion)
Cette fonction permet à un programme de définir une zone quelconque de l'écran
comme zone d'exclusion (une sorte de trou noir), qui aura pour effet de faire disparaître le
curseur de la souris de l'écran dès qu'il pénétrera dans cette zone ; un appel à la fonction
affichage du curseur est nécessaire pour le réapparaître.
with ZoneExclusion do
with reg do
begin
ax := $10;
cx := MinX;
dx := MinY;
si := MaxX;
di := MaxY;
end;
intr($33, reg);
1.4. Visibilité du curseur
Contrôle la visibilité du curseur et modifié ça motif
Fonction 01h Afficher le curseur de la souris sur l'écran
(AfficherCurseur)
reg. ax := 1;
intr($33, reg);
Fonction 02h Masquer le curseur de la souris
(CacherCurseur)
reg. ax := 2;
intr($33, reg);
16. Programmation de la Souris Le périphérique Souris
15
Fonction 09h Définit le curseur de la souris en mode graphique
(DessinerCurseurGraph)
En mode graphique, un tableau de bits définit l'apparence du curseur de la souris,
en fixant de quelle manière les points sous le curseur de la souris et les points du curseur
de la souris doivent être combinés. Cette fonction sert à définir ce tableau de bits, et donc
l'apparence du curseur de la souris.
with Curseur do
with reg do
begin
ax := $09;
bx := 0;
cx := 0;
es := seg(TypeCurseur);
dx := ofs(TypeCurseur);
end;
intr($33, reg);
Fonction 0Ah Définit le curseur en mode de texte
(DessinerCurseurTexte)
Fixe le motif de bits définissant l'apparence du curseur en mode de texte.
with reg do
with Curseur do
begin
ax := $0a;
bx := TypeCurseur;
cx := Operand1;
dx := Operand2;
end;
intr($33, reg);
1.5. Sensibilité de la souris
Définir et lire la sensibilité de la souris
Fonction 1Ah Définir la sensibilité de la souris
(DefinirSensibiliteSouris)
Cette fonction permet respectivement de fixer le rapport entre déplacement de la
souris et déplacement du curseur de la souris, d'une part, et de fixer le seuil de
doublement de la vitesse de la souris, d'autre part.
with Curseur do
with reg do
begin
ax := $1a;
bh := 0;
bl := Sensibilite;
17. Programmation de la Souris Le périphérique Souris
16
ch := 0;
cl := Sensibilite;
dx := Seuil;
end;
intr($33, reg);
Fonction 1Bh Lire la sensibilité de la souris (LireSensibiliteSouris)
Renvoie les paramètres qui ont été fixés à travers la fonction 1Ah ou à travers les
fonctions 0Fh et 13h.
with Curseur do
with reg do
begin
ax := $1b;
intr($33, reg);
{Sensibilite := bx;}
Sensibilite := cx;
Seuil := dx;
end;
1.6. Etat de la souris
Manipuler l’état de la souris
Fonction 15h Lire la taille du buffer d'état de la souris
(LireTailleBuffer)
Cette fonction fournit la taille du buffer d'état de la souris dans lequel un programme
peut sauvegarder l'état complet du driver de la souris.
with reg do
begin
ax := $15;
intr($33, reg);
TailleBuffer := bx;
end;
Fonction 16h Sauvegarder état de la souris
(SauverEtatSouris)
Lorsque cette fonction est appelée, le driver de la souris copie toutes les
informations d'état gérées dans un buffer du programme d'appel.
with reg do
begin
ax := $16;
bx := TailleBuffer;
es := seg(BufferEtatSouris);
dx := ofs(BufferEtatSouris);
end;
intr($33, reg);
18. Programmation de la Souris Le périphérique Souris
17
Fonction 17h Restaurer l'état de la souris
(RestaurerEtatSouris)
Lit tous les paramètres de la souris dans un buffer dans lequel ils avaient été
sauvegardés auparavant avec la fonction 16h.
with reg do
begin
ax := $17;
bx := TailleBuffer;
es := seg(BufferEtatSouris);
dx := ofs(BufferEtatSouris);
end;
intr($33, reg);
19. Programmation de la Souris Le périphérique Souris
18
2. Organisation des fichiers
Le programme est composé de 05 fichiers écrits en langage pascal (04 unités et le
programme principal), 04 librairies fournit avec Turbo Pascal sont utilisées,
2.1. Les librairies du TP7
Ces librairies sont intégrées au TP7, elle nous aide à réaliser le programme.
Librairie Nom du fichier
La librairie DOS
La librairie CRT
La librairie graphique GRAPH.TPU
Le driver de la carte graphique EGAVGA.BGI
2.1.1. L’unité Dos : c’est une librairie fournit avec Turbo Pascal 7 qui nous permet
d’utilisé la variable reg de type REGISTERS.
2.1.2. L’unité CRT : l’unité ou est définit les fonctions (ClrScr, KeyPressed, ReadKey).
2.1.3. L’unité graphique : c’est une librairie fournit avec Turbo Pascal 7 qui regroupe
plus de 50 fonctions et procédures graphique, ces fonctions sert à dessiner des
schémas graphique tel que la ligne, le rectangle, l’arc, le cercle. Et d’autre comme
l’affichage des messages et des images, …
Procedure OutText(TextString: string);
Afficher un texte à l’écran à la position du pointeur.
Procedure OutTextXY(X, Y : integer ; TextString: string);
Afficher un texte à l’écran à la position x et y.
Procedure MoveTo(X,Y : integer);
Positionner le pointeur à la position x,y.
Function GetMaxX, GetMaxY :integer ;
Retient la résolution de l’écran
Function GetColor : Word ;
Retient la couleur courante.
Procedure SetColor(Color : Word);
Changer la couleur courante.
Procedure Rectangle(x1, x2, y1, y2 : Integer);
Dessiner un rectangle en utilisant le même style et couleur du linge courant.
Procedure Bar(x1, x2, y1, y2 : Integer);
Dessiner une case en utilisant le même style et couleur du remplissage en cours.
Procedure Bar3D(x1, x2, y1, y2 : Integer; Depth: word; Top:
Boolean);
20. Programmation de la Souris Le périphérique Souris
19
Dessiner une case en utilisant le même style et couleur du remplissage en cours.
Procedure SetFillStyle(Pattern: Word; Color: Word);
Changer le remplissage et la couleur du motif.
Procedure InitGraph(GraphDriver : Integer ; GraphMode :
Integer; PathToDrive : string);
Initialise le mode graphique
2.1.4. Le driver de la carte graphique : c’est le driver de la carte graphique de type
VGA fournit avec Turbo Pascal 7 qui porte le nom ‘EGAVGA.BGI’. Le fichier est
chargé dans la mémoire à l’aide de la fonction InitGraph.
2.2. Les fichiers du programme
Unité Nom du fichier
L’interface souris USOURIS.PAS
L’unité d’affichage AFFICHE.PAS
L’unité d’initialisation INITIAL.PAS
Les motifs des curseurs graphiques CURSEURS.PAS
Le programme principal TEST.PAS
2.2.1. L’interface souris : cette interface qui contient tous les procédures et les
fonctions qui sert à manipuler la souris tel que l’initialisation, lecture du position du
curseur et la définition des différents zones.
a. Logiciel, Materiel : Constants Pour choisir entre le curseur logiciel et matériel.
b. Variables
Driver : Contient tous les informations du driver (version, IRQ, type, …).
Souris : Contient les informations du la souris (Nombre et Etats des boutons).
Curseur : Contient les informations du curseur (Position, Distance, Type, …).
ZoneExclusion : La zone d'exclusion du curseur.
ZoneDeplacement : La zone de déplacement du curseur.
ZoneExit : Quitter le programme lorsque l’utilisateur pointe le curseur sur elle.
Reg : Les registres du travail.
BufferEtatSouris : Le buffer d'état de la souris.
TailleBuffer : La taille du buffer d'état de la souris.
c. Procédures
procedure TesterDriver;
Initialiser la souris.
procedure ActiverDriver;
Activer la souris.
procedure DesactiverDriver;
Désactiver la souris.
procedure LirePosCurseur;
Lire la position du curseur.
21. Programmation de la Souris Le périphérique Souris
21
procedure DefinirPosCurseur;
Changer la position du curseur.
procedure LireDistance;
Lire la distance entre les deux dernières positions du curseur.
procedure DefinirZoneDeplacement;
Fixer la zone de déplacement du curseur.
procedure DefinirZoneExclusion;
Fixer la zone d’exclusion du curseur.
procedure AfficherCurseur;
Afficher le curseur sur l’écran.
procedure CacherCurseur;
Cacher le curseur.
procedure DessinerCurseurGraph;
Changer la forme du curseur graphique.
procedure DessinerCurseurTexte;
Changer le type de curseur texte.
procedure LireSensibiliteSouris;
Lire la sensibilité de la souris.
procedure DefinirSensibiliteSouris;
Fixer la sensibilité de la souris.
function LireTailleBuffer: word;
Lire la taille du buffer de la souris.
procedure SauverEtatSouris;
Enregistrer le buffer de la souris.
procedure RestaurerEtatSouris;
Restaurer le buffer de la souris.
2.2.2 L’unité d’affichage : Toutes les fonctions concernant l’affichage est définies dans
cette unité tel que l’affichage du cadre et du texte et des nombres.
procedure OutTxtXY(x, y, TxtColor, BgColor: integer; chaine:
string);
Afficher un texte à l’écran avec des couleurs de texte et d’arrière-plan définies.
procedure OutIntXY(x, y, TxtColor, BgColor, valeur: integer);
Afficher un entier à l’écran avec des couleurs de texte et d’arrière-plan définies.
procedure OutColorText(Chaine: string; pos, long: integer);
Afficher un texte à l’écran avec quelques lettres colorées.
22. Programmation de la Souris Le périphérique Souris
21
procedure AfficherInfosSouris;
Afficher les infos de la souris (Position, Distance, Sensibilité, Seuil, …).
procedure AfficherAide;
Afficher l’aide en bas d’écran.
procedure DessinerRect(x1, y1, x2, y2, Color: word);
Dessiner un rectangle avec une couleur définie.
procedure DessinerSouris;
Dessiner la souris et ses boutons.
procedure DessinerZone;
Dessiner les déférentes zones (Déplacement, Exclusion, …).
procedure Actualisation;
Actualiser les données à l’écran.
procedure Finalisation;
Réinitialisation pour quitter le programme.
2.2.3. L’unité d’initialisation
procedure InitialCurseurPos;
Mettez le curseur au centre d’écran.
function InitialDriver: boolean;
Lancer le teste du driver et fournit les informations de la souris.
function InitialGraph: boolean;
Initialise la carte graphique.
procedure Initialisation;
Fixer la zone de déplacement, d’exclusion, d’exit.
2.2.4. La définition des curseurs graphiques
2.2.5. Le programme principal
Echap : constant (code ASCII de la touche échap) pour quitter le programme.
Key : variable pour récupérer le code ASCII de la touche appuyé la l’utilisateur.
a. Procedures
function TesterExitCurseur: boolean;
voir a ce que le curseur est dans la zone d’exit ?
procedure TesterExclusionCurseur;
voir a ce que le curseur est dans la zone d’exclusion ?
procedure Principal ;
23. Programmation de la Souris Le périphérique Souris
22
3. Manuel de référence
Voici la liste des fonctions supportées par le pilote de la souris
Fonction 00h Réinitialisation du driver de souris
Fonction 01h Afficher le curseur de la souris sur l'écran
Fonction 02h Masquer le curseur de la souris
Fonction 03h Lire la position de la souris et l'état des boutons de la souris
Fonction 04h Déplacement du curseur de la souris
Fonction 05h Lire combien de fois un bouton de la souris a été enfoncé
Fonction 06h Combien de fois un bouton de la souris a-t-il été relâché ?
Fonction 07h Définir la zone de déplacement horizontale pour le curseur de la
souris
Fonction 08h Définir la zone de déplacement verticale pour le curseur de la souris
Fonction 09h Définit le curseur de la souris en mode graphique
Fonction 0Ah Définit le curseur de la souris en mode de texte
Fonction 0Bh Lire les distances de déplacement
Fonction 0Ch Installer le gestionnaire d'événements
Fonction 0Dh Activer l'émulation du crayon optique
Fonction 0Eh Désactiver l'émulation du crayon optique
Fonction 0Fh Définir le rapport entre les mickeys et les points
Fonction 10h Définir la zone d'exclusion
Fonction 11h Non documentée
Fonction 12h Non documentée
Fonction 13h Définir le seuil pour le doublement de la vitesse de la souris
Fonction 14h Echange des gestionnaires d'événements
Fonction 15h Lire la taille du buffer d'état de la souris
Fonction 16h Sauvegarder état de la souris
Fonction 17h Restaurer l'état de la souris
Fonction 18h Installer un gestionnaire d'événements alternatif
Fonction 19h Lire l'adresse d'un gestionnaire d'événements alternatif
Fonction 1Ah Définir la sensibilité de la souris
Fonction 1Bh Lire la sensibilité de la souris
Fonction 1Ch Définir la fréquence d'Int de l'électronique de la souris
Fonction 1Dh Définir une page écran pour le curseur de la souris
Fonction 1Eh Lire page écran du curseur de la souris
Fonction 1Fh Désactiver le driver de la souris
Fonction 20h Activer le driver de la souri
Fonction 21h Réinitialiser le driver de la souris
Fonction 22h Définir la langue étrangère pour les messages
Fonction 23h Vérifier l'existence d'une langue étrangère pour les messages
Fonction 24h Lire le type de souris
Fonction 25h Lire des informations générales
24. Programmation de la Souris Le périphérique Souris
23
Fonction 26h Lire l'extension de l'écran de souris virtuel
Fonction 27h Lire les masques de bits du curseur d'écran
Fonction 28h Définir le mode vidéo
Fonction 29h Lire la liste des modes vidéo disponibles
Fonction 2Ah Obtenir des informations sur le curseur de la souris
Fonction 2Bh Lire les courbes d'accélération
Fonction 2Ch Lire la courbe d'accélération en cours
Fonction 2Dh Définir/Lire la courbe d'accélération en cours
Fonction 2Eh Non documentée
Fonction 2Fh Réinitialisation de l'électronique de la souris
Fonction 30h Définir/Obtenir les paramètres de la souris Ball Point
Fonction 31h Lire l'étirement de l'écran virtuel
Fonction 32h Lire les fonctions disponibles
Fonction 33h Définir les paramètres
Fonction 34h Lire l'état du fichier MOUSE.INI
Dans le cadre de ce mini projet, on a utilisée 19 fonctions permit les 53, voici la
description de ces fonctions avec la signification de leurs arguments (paramètres) d’entrés
et de sorties.
Int 33h, Fct 00h Réinitialisation du driver de souris
Initialise le driver de souris et enclenche ainsi le test de la souris.
Entrée : AX = 0000h
Sortie :
AX = FFFFh : dans ce cas, un driver de souris est installé
BX = Nombre de boutons de la Souris (à partir de 1.0)
AX = 0000h : erreur, aucun driver de souris n'est installé
Remarques :
L'appel de cette fonction agit sur toute une série de paramètres de la souris qui
peuvent être fixés à l'aide des différentes fonctions de la souris
Le curseur de la souris est placé au centre de l'écran puis caché. Il apparaîtra
désormais en mode graphique sous forme d'une flèche, alors qu'il sera représenté en
mode de texte sous forme d'une case de texte en inversion vidéo. Le curseur de la
souris est systématiquement affiché dans la page 0 de l'écran, indépendamment du
mode. La zone de déplacement sélectionnée est la totalité de l'écran.
Les gestionnaires d'événements installés par un programme. Ils sont désactivés.
L'émulation du crayon optique est également désactivée.
La vitesse de la souris. Pour la vitesse horizontale de la souris, un rapport de 8
mickeys pour 8 points est défini. Pour la vitesse verticale, ce rapport est de 16 pour 8
Le seuil de doublement de la vitesse de la souris. Il est fixé à 64 mickeys par seconde.
Int 33h, Fct 01h Afficher le curseur de la souris sur l'écran
Après appel de cette fonction, le curseur de la souris devient visible sur l'écran et
suit désormais les déplacements de la souris sur l'écran.
25. Programmation de la Souris Le périphérique Souris
24
Entrée : AX = 0001h
Sortie : Aucune
Remarques :
L'appel de cette fonction entraîne l'incrémentation d'un compteur interne, en fonction
duquel le curseur de la souris est ou non afficher sur l'écran. Si ce compteur contient la
valeur 0, le curseur de la souris sera affiché sur l'écran, alors que la valeur -1 a pour
effet de le faire disparaître de l'écran. Lorsque la fonction 00h (Reset) est appelée, ce
compteur est tout d'abord fixé sur -1, pour prendre ensuite la valeur 0 lors du premier
appel de cette fonction, ce qui se traduit par la réapparition du curseur sur l'écran.
Le driver de la souris suit les déplacements de la souris même si le curseur de la
souris n'est pas affiché sur l'écran. A la suite de l'appel de cette fonction, le curseur de
la souris ne réapparaîtra donc pas nécessairement au même endroit que là où il se
trouvait lorsqu'il avait été caché.
Int 33h, Fct 02h Masquer le curseur de la souris
Cette fonction élimine le curseur de la souris de l'écran.
Entrée : AX = 0002h
Sortie : Aucune
Remarques :
L'appel de cette fonction entraîne la décrémentation d'un compteur interne, en fonction
duquel le curseur de la souris est ou non afficher sur l'écran. Si ce compteur contient la
valeur 0, le curseur de la souris sera affiché sur l'écran, alors que la valeur -1 a pour
effet de le faire disparaître de l'écran.
Le driver de la souris suit les déplacements de la souris même après appel de cette
fonction. A la suite de l'appel de la fonction 01h (Afficher le curseur de la souris), le
curseur de la souris ne réapparaîtra donc pas nécessairement au même endroit que là
où il se trouvait lorsqu'il avait été caché.
Int 33h, Fct 03h Lire la position de la souris et l'état des boutons de la souris
L'appel de cette fonction fournit la position actuelle de la souris et l'état des
différents boutons de la souris.
Entrée : AX = 0003h
Sortie :
BX = Etat des boutons de la Souris
Bit Signification
0 1 = bouton gauche de la souris appuyé
1 1 = bouton droit de la souris appuyé
2 1 = bouton central de la souris appuyé
Autre Aucune
CX = Position horizontale de la Souris
DX = Position verticale de la souris
Remarques :
26. Programmation de la Souris Le périphérique Souris
25
Les ordonnées renvoyées dans les registres CX et DX ne se rapportent pas à l'écran
physique mais aux positions en points écran dans l'écran virtuel de la souris.
Si la souris ne possède que deux boutons, les informations fournies sur le bouton
central sont dépourvues de signification.
Int 33h, Fct 04h Déplacement du curseur de la souris
Déplace le curseur de la souris vers une position déterminée de l'écran, à moins
qu'il n'ait été caché avec la fonction 02h.
Entrée :
AX = 0004h
CX = Position horizontale de la Souris
DX = Position verticale de la souris
Sortie : Aucune
Remarques :
Les ordonnées renvoyées dans les registres CX et DX ne se rapportent pas à l'écran
physique mais aux positions en points écran dans l'écran virtuel de la souris.
Si la position spécifiée se situe en dehors de la zone de déplacement fixée avec les
fonctions 07h et 08h, les coordonnées sont adaptées pour que le curseur de la souris ne
sorte pas de cette zone.
Le curseur de la souris est bien déplacé vers la nouvelle position même s'il est caché,
mais ce déplacement n'apparaîtra naturellement que lorsque le curseur sera à nouveau
incrusté.
Int 33h, Fct 05h (06h) Lire combien de fois un bouton de la souris a été enfoncé (relaché)
Indique au programme d'appel combien de fois un bouton de la souris a été appuyé
(relâché) depuis le dernier appel de cette fonction et où le curseur de la souris se trouvait
la dernière fois que ce bouton avait été actionné.
Entrée :
AX = 0005h
BX = Bouton de la souris appelé :
0 = bouton gauche de la Souris
1 = bouton droit de la Souris
2 = bouton central de la souris
Sortie :
AX = Etat de tous les boutons de la souris
Bit Signification
0 1 = bouton gauche de la souris appuyé (relaché)
1 1 = bouton droit de la souris appuyé (relaché)
2 1 = bouton central de la souris appuyé (relaché)
Autre Aucune
BX = Nombre de fois que le bouton de la souris appelé a été actionné
CX = Position horizontale de la souris la dernière fois que le bouton a été actionné
DX = Position verticale de la souris la dernière fois que le bouton a été actionné
Remarques :
27. Programmation de la Souris Le périphérique Souris
26
Les ordonnées transmises dans les registres CX et DX ne se rapportent pas à l'écran
physique mais aux positions en points écran dans l'écran virtuel de la souris.
Le compteur du nombre de fois que le bouton de la souris appelé a été appuyé est à
nouveau fixé sur 0 lorsque cette fonction est appelée.
Int 33h, Fct 07h (08h) Définir la zone de déplacement horizontale (verticale) pour le curseur de la
souris
Définit la zone horizontale (verticale) à l'intérieur de laquelle le curseur de la souris
peut se déplacer. L'utilisateur n'aura aucune possibilité de faire sortir le curseur de la
souris de la zone ainsi fixée.
Entrée :
AX = 0007h (0008h)
CX = position horizontale (verticale) minimale de la souris
DX = position horizontale (verticale) maximale de la souris
Sortie : Aucune
Remarques :
Les ordonnées transmises dans les registres CX et DX ne se rapportent pas à l'écran
physique mais aux positions en points écran dans l'écran virtuel de la souris.
Si le curseur de la souris se trouve en dehors de la zone spécifiée, il y est
automatiquement ramené par le driver de la souris.
Si la valeur spécifiée dans le registre DX est inférieure à celle dans CX, les deux
paramètres sont échangés.
Int 33h, Fct 09h Définit le curseur de la souris en mode graphique
En mode graphique, un tableau de bits définit l'apparence du curseur de la souris,
en fixant de quelle manière les points sous le curseur de la souris et les points du curseur
de la souris doivent être combinés. Cette fonction sert à définir ce tableau de bits, et donc
l'apparence du curseur de la souris.
Entrée :
AX = 0009h
BX = Distance du point de référence au bord gauche du tableau de bits
CX = Distance du point de référence au bord supérieur du tableau de bits
ES:DX = Adresses de segment et d'offset du tableau de bits dans la mémoire
Sortie : Aucune
Remarques :
Le tableau de bits comporte 64 octets, dont les 32 premiers définissent une combinaison
ET et les 32 autres une combinaison OU avec le motif de points actuel.
Int 33h, Fct 0Ah Définit le curseur de la souris en mode de texte
Fixe le motif de bits définissant l'apparence du curseur de la souris en mode de
texte.
Entrée :
28. Programmation de la Souris Le périphérique Souris
27
AX = 000Ah
BX = Type de curseur de la Souris
0 = curseur logiciel
1 = curseur électronique
CX = Masque AND pour le curseur logiciel ou la ligne de départ du curseur
électronique
DX = Masque XOR pour le curseur logiciel ou la ligne finale du curseur
électronique
Sortie : Aucune
Remarques :
Si le curseur logiciel est sélectionné, le code du caractère sous le curseur de la souris
et l'octet d'attribut correspondant sont tout d'abord combiné par un AND binaire avec le
masque dans le registre CX, avant qu'une combinaison OU EXCLUSIF (XOR) soit
ensuite opérée avec la valeur dans le registre DX. L'octet d'attribut est combiné avec les
octets de plus fort poids des deux valeurs (CH et DH), alors que le code de caractère est
combiné avec les octets de plus faible poids (CL et DL).
Le curseur électronique est le curseur clignotant de l'écran. Les lignes de départ et de
fin doivent être comprises, en mode monochrome, entre 0 et 13, et en mode couleur,
entre 0 et 7.
Int 33h, Fct 0Bh Lire les distances de déplacement
Détermine la distance entre la position actuelle de la souris et la position de la
souris lors du dernier appel de cette fonction.
Entrée : AX = 000Bh
Sortie :
CX = Distance horizontale
DX = Distance verticale
Remarques :
Les valeurs doivent être interprétées comme des nombres signés, les valeurs positives
indiquant un déplacement vers le bas ou la droite de l'écran, alors que les valeurs
négatives indiquent un déplacement vers le haut ou la gauche de l'écran.
Les valeurs ne sont pas fournies en points mais en mickeys.(1 mickey équivaut à 1/200
de pouce).
Int 33h, Fct 10h Définir la zone d'exclusion
Cette fonction permet à un programme de définir une zone quelconque de l'écran
comme zone d'exclusion (une sorte de trou noir), qui aura pour effet de faire disparaître le
curseur de la souris de l'écran dès qu'il pénétrera dans cette zone.
Entrée :
AX = 0010h
CX = Ordonnée X du coin supérieur gauche de la zone d'exclusion
DX = Ordonnée Y du coin supérieur gauche de la zone d'exclusion
SI = Ordonnée X du coin inférieur droit de la zone d'exclusion
DI = Ordonnée Y du coin inférieur droit de la zone d'exclusion
Sortie : Aucune
29. Programmation de la Souris Le périphérique Souris
28
Remarques :
Les ordonnées transmises dans les registres CX, DX, SI et DI ne se rapportent pas à
l'écran physique mais aux positions en points écran dans l'écran virtuel de la souris.
La zone d'exclusion peut être à nouveau annulée en appelant la fonction 00h
(réinitialisation du driver de souris) ou 01h (affichage du curseur de la souris).
Int 33h, Fct 15h Lire la taille du buffer d'état de la souris
Cette fonction fournit la taille du buffer d'état de la souris dans lequel un programme
peut sauvegarder l'état complet du driver de la souris.
Entrée : AX = 0015h
Sortie : BX = Taille du buffer d'état de la souris en octets
Remarque :
L'état de la souris peut être sauvegardé à l'aide de la fonction 16h.
Int 33h, Fct 16h Sauvegarder état de la souris
Lorsque cette fonction est appelée, le driver de la souris copie toutes les
informations d'état gérées dans un buffer du programme d'appel.
Entrée :
AX = 0016h
ES:DX = Adresses de segment et d'offset du buffer
Sortie : Aucune
Remarques :
Le programme d'appel doit veiller à ce que le buffer soit suffisamment grand pour
recevoir toutes les informations d'état. Avant d'appeler cette fonction, il ferait donc bien
de déterminer à l'aide de la fonction 15h la taille du buffer d'état de la souris.
L'appel de cette fonction peut par exemple être utile avant de faire exécuter un
programme à l'aide de la fonction EXEC, pour que tous les paramètres de la souris
puissent être à nouveau fixés sur leurs valeurs antérieures après exécution de ce
programme, quelles que soient les modifications intervenues à l'intérieur du
programme appelé.
Int 33h, Fct 17h Restaurer l'état de la souris
Lit tous les paramètres de la souris dans un buffer dans lequel ils avaient été
sauvegardés auparavant avec la fonction 16h.
Entrée :
AX = 0017h
ES:DX = Adresses de segment et d'offset du buffer d'état de la souris
Sortie : Aucune
Int 33h, Fct 1Ah Définir la sensibilité de la souris
30. Programmation de la Souris Le périphérique Souris
29
Cette fonction est une combinaison des fonctions 0Fh et 13h, qui permettent
respectivement de fixer le rapport entre déplacement de la souris et déplacement du
curseur de la souris, d'une part, et de fixer le seuil de doublement de la vitesse de la
souris, d'autre part.
Entrée :
AX = 001Ah
BX = Nombre de mickeys représentant huit points horizontalement
CX = Nombre de mickeys représentant huit points verticalement
DX = Seuil pour le doublement de la vitesse de la souris
Sortie : Aucune
Remarques :
Pour les paramètres dans les registres CX et DX sont autorisées des valeurs
comprises entre 1 et 32767.
Le réglage par défaut est de 8 mickeys horizontalement et de 16 mickeys
verticalement, de sorte que le curseur de la souris se déplace deux fois plus "vite"
horizontalement que verticalement.
Pour empêcher tout doublement de la vitesse de la souris, il suffit de fixer le seuil
suffisamment haut. Des vitesses de 5000 mickeys par seconde ne peuvent, par
exemple, déjà plus être atteintes en pratique.
Les valeurs par défaut peuvent être à nouveau fixées en appelant la fonction 00h
(Réinitialisation du driver de la souris).
Int 33h, Fct 1Bh Lire la sensibilité de la souris
Renvoie les paramètres qui ont été fixés à travers la fonction 1Ah ou à travers les
fonctions 0Fh et 13h.
Entrée : AX = 001Bh
Sortie :
BX = Nombre de mickeys représentant huit points horizontalement
CX = Nombre de mickeys représentant huit points verticalement
DX = Seuil pour le doublement de la vitesse de la souris
Int 33h, Fct 1Fh Désactiver le driver de la souris
Désactive le driver actuel de la souris et fournit l'adresse du gestionnaire
d'interruption précédent pour l'interruption 33h.
Entrée : AX = 001Fh
Sortie :
AX = FFFFh : Erreur
001Fh : Tout va bien, auquel cas
ES:BX = Adresses de segment et d'offset du driver de souris antérieur
Remarques :
Lorsque cette fonction est appelée, le driver de souris libère à nouveau toutes les routines
d'interruption qu'ils avaient installées lors de son activation. Seul fait exception le
gestionnaire de l'interruption 33h, mais le programme d'appel peut charger à nouveau sa
31. Programmation de la Souris Le périphérique Souris
31
valeur d'origine dans ce vecteur d'interruption également, car son adresse est renvoyée
dans la paire de registres ES:BX.
Int 33h, Fct 20h Activer le driver de la souris
Active un driver de souris désactivé auparavant avec la fonction 1Fh.
Entrée : AX = 0020h
Sortie : Aucune
Int 33h, Fct 24h Lire le type de souris
Fournit le type de souris ainsi que son numéro de version.
Entrée : AX = 0024h
Sortie :
BH = Partie entière du numéro de version
BL = Partie décimale du numéro de version
CH = Type de souris
1 = Souris bus
2 = Souris série
3 = Souris InPort
4 = Souris PS/2
5 = Souris HP
CL = Numéro IRQ
0 = PS/2
2, 3, 4, 5 ou 7 = Numéro PC
Remarque :
Un driver de souris de version 6.24 aura 6 dans le registre BH et 24h dans le
registre BL.
32. Conclusion Le périphérique Souris
31
En informatique, la souris est devenue pour l’utilisateur synonyme de facilité,
d’agrément, de confort, bref d’une convivialité que tout programmeur souhaite
légitimement pouvoir mettre de son coté.
V. Conclusion
33. Glossaire Le périphérique Souris
31
Douglas Engelbart
A l’origine du concept d’interconnexion de systèmes informatiques hétérogènes, il à
joué un rôle important dans le développement du réseau ARPANET, mais il à également
inventé la souris et les interfaces graphiques
Jean-Daniel Nicoud
Est un informaticien suisse, inventeur de la première souris optique et du langage
CALM. Il obtient un diplôme en physique à l'Ecole polytechnique fédérale de Lausanne
(EPFL) en 1963. Vers 1965, il s'intéresse aux systèmes logiques. En 1973, il devient
professeur.
Logitech
Est une société spécialisée dans la production de périphériques informatiques :
claviers, souris, trackballs, webcams, haut-parleurs...
Ports d'entrée-sortie
Sont des éléments matériels de l'ordinateur, permettant au système de
communiquer avec des éléments extérieurs, c'est-à-dire d'échanger des données, d'où
l'appellation d'interface d'entrée-sortie (notée parfois interface d'E/S).
TrackBall
Un autre dispositif de pointage comme la souris qui a remplacé la bille de dessous
qui glisse sur un tapis par une boule sur le dessus qu'il faut manipuler avec un doigt (en
principe l'index). La TrackBall sert surtout à gagner de la place, c'est pourquoi elle est
intégrée dans le boîtier des micros portables
Curseur
Symbole graphique localisant les actions de l’utilisateur dans un environnement
informatique. Les deux exemples les plus connus sont le curseur clignotant des éditeurs
de texte et le pointeur de la souris.
LED
(Light Emitting Diode) diode électroluminescente est un composant
électronique capable d'émettre de la lumière lorsqu'il est parcouru par un courant
électrique.
Glossaire
34. Bibliographie Le périphérique Souris
32
Livre : Programmation Souris, 1990
Auteur : Jean-Claude Fantou
Editeur : Edition RADIO
Livre : L’ordinateur et ses périphériques 1996
Auteur : BEN ABDESSELAM. D et BEN CHOUIEKH. M
Editeur : EDC OMEGA
Article : Notion fondamentales / La souris
Livre : La bible Programmation système, 1996
Auteur : Michael Tischer
Editeur : Micro Application
Article : Fonctions / Fonction Souris
Livre : L’architecture de l’ordinateur, 2002
Auteur : Andreu Tanembaum
Editeur : Dunod, 4eme Edition
Article : Les entrées-sorties / Les souris
Dictionnaire : Informatique et Internent 1997
Auteur : Micro Application
Articel : souris
Encyclopédie : Microsoft Encarta 2006
Article : Dispositifs de pointage
Encyclopédie : Encyclopædia Universalis 2004
Article : Invention de la souris
Site : Cours de l’informatique 2006
Url : http://info.sio2.be/infobase/4
Article : Informatique de Base / Les périphériques: la souris
Site : Mon-Ordi.com 2001
Url : http://www.mon-ordi.com/souris.htm
Article : Souris / Les caractéristiques d'une souris
Bibliographie