REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
MINISTERE D’ENSEIGNEMENT SUPERIEUR
ET DE RECHERCHE SCIENTIFIQUE
Faculté de...
Sommaire Le périphérique Souris
1
I. Introduction ……………………………………………………………………………………………...………………... 02
II. Définition ………………...
Introduction Le périphérique Souris
2
L’importance des systèmes informatiques dans les divers secteurs d’activité amène
de...
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...
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...
Définition Le périphérique Souris
5
Un logiciel analyse le déplacement de la souris et convertit les informations reçues
e...
Technologie des Souris Le périphérique Souris
6
1. Types de Souris
Il existe sur le marché trois types de souris utilisant...
Technologie des Souris Le périphérique Souris
7
1.3. Souris optique
Le principe de fonctionnement de la souris optique (dé...
Technologie des Souris Le périphérique Souris
8
2. Types de liaison
La souris peut transmettre les données à l'ordinateur ...
Technologie des Souris Le périphérique Souris
9
Figure III-2-3-1: Liaison radio
I. Types de connexion
Actuellement, vous p...
Technologie des Souris Le périphérique Souris
11
Une souris à bus (PS/2) a plusieurs avantages par rapport à la souris sér...
Programmation de la Souris Le périphérique Souris
11
Les diverses fonctions de l'interface de souris sont appelées par l'i...
Programmation de la Souris Le périphérique Souris
12
with Driver do
with reg do
begin
ax := $24;
intr($33, reg);
str(bl, V...
Programmation de la Souris Le périphérique Souris
13
intr($33, reg);
EtatBtn1 := bl and 1;
EtatBtn2 := bl and 2;
x := cx;
...
Programmation de la Souris Le périphérique Souris
14
cx := MinX;
dx := MaxX;
intr($33, reg);
end ;
Fonction 08h Définir la...
Programmation de la Souris Le périphérique Souris
15
Fonction 09h Définit le curseur de la souris en mode graphique
(Dessi...
Programmation de la Souris Le périphérique Souris
16
ch := 0;
cl := Sensibilite;
dx := Seuil;
end;
intr($33, reg);
Fonctio...
Programmation de la Souris Le périphérique Souris
17
Fonction 17h Restaurer l'état de la souris
(RestaurerEtatSouris)
Lit ...
Programmation de la Souris Le périphérique Souris
18
2. Organisation des fichiers
Le programme est composé de 05 fichiers ...
Programmation de la Souris Le périphérique Souris
19
Dessiner une case en utilisant le même style et couleur du remplissag...
Programmation de la Souris Le périphérique Souris
21
procedure DefinirPosCurseur;
Changer la position du curseur.
procedur...
Programmation de la Souris Le périphérique Souris
21
procedure AfficherInfosSouris;
Afficher les infos de la souris (Posit...
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...
Programmation de la Souris Le périphérique Souris
23
Fonction 26h Lire l'extension de l'écran de souris virtuel
Fonction 2...
Programmation de la Souris Le périphérique Souris
24
Entrée : AX = 0001h
Sortie : Aucune
Remarques :
 L'appel de cette fo...
Programmation de la Souris Le périphérique Souris
25
 Les ordonnées renvoyées dans les registres CX et DX ne se rapporten...
Programmation de la Souris Le périphérique Souris
26
 Les ordonnées transmises dans les registres CX et DX ne se rapporte...
Programmation de la Souris Le périphérique Souris
27
AX = 000Ah
BX = Type de curseur de la Souris
0 = curseur logiciel
1 =...
Programmation de la Souris Le périphérique Souris
28
Remarques :
 Les ordonnées transmises dans les registres CX, DX, SI ...
Programmation de la Souris Le périphérique Souris
29
Cette fonction est une combinaison des fonctions 0Fh et 13h, qui perm...
Programmation de la Souris Le périphérique Souris
31
valeur d'origine dans ce vecteur d'interruption également, car son ad...
Conclusion Le périphérique Souris
31
En informatique, la souris est devenue pour l’utilisateur synonyme de facilité,
d’agr...
Glossaire Le périphérique Souris
31
Douglas Engelbart
A l’origine du concept d’interconnexion de systèmes informatiques hé...
Bibliographie Le périphérique Souris
32
Livre : Programmation Souris, 1990
Auteur : Jean-Claude Fantou
Editeur : Edition R...
Prochain SlideShare
Chargement dans…5
×

Le périphérique souris

527 vues

Publié le

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é.

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
527
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Le périphérique souris

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×