le périphérique souris (programmation)
TRANSCRIPT
1
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
DEPARTEMENT DE GENIE INFORMATIQUE
3EME ANNÉE INFORMATIQUE CYCLE LONG
MODULE DE L’ARCHITECTURE DES ORDINATEURS
Réalisé par :
BENYAMMI BACHIR
Encadré par :
MR.LAGRAA
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
2005 / 2006
2
Plan de travail
Introduction
Les caractéristiques d'une souris
Fonctionnement de souris
Technologie des souris
Programmation de la souris
Conclusion
3
Pourquoi la Souris ?
L’importance de l’informatique amène des
utilisateurs de plus en plus nombreux et de plus
en plus profanes à utiliser l’informatique.
Une vaste partie de population utilise les
ordinateurs sans avoir une connaissance sur
l’architecture des ordinateurs et sur sa
programmation.
La majorité de ces personnes détestent la
frappe des commandes système au clavier.
4
Historique
La souris a été inventée en 1963 par
Douglas Engelbart du Stanford Research Center.
Elle a été améliorée par Jean-Daniel Nicoud
à l'EPFL dès 1979.
En 1984. La souris est rendue populaire
avec le Macintosh (MacOS).
Les premières souris étaient en fait de
simples trackballs inversées.
5
Les caractéristiques d'une souris
La souris doit son nom à
sa forme : une petite
boîte reliée par sa queue
à l'ordinateur.
Une souris se compose d’:
Une boîte,
Un ou plusieurs boutons,
Capteur directionnel (en
général une bille),
Une liaison avec l’ordinateur
(généralement un câble).
6
Le bouton gauche est le plus utilisé.
Le bouton droite commandant des fonctions
supplémentaire.
La molette est utilisée pour le défilement du texte à
l'écran, ou le zoom.
Boutons de la souris
7
La position horizontale du curseur (X).
La position verticale du curseur (Y).
L’état courant des bouton.
Fonctionnement de souris
La souris transmettre des informations de
positionnement (une séquence de trois octets
toutes les 100 ms) au contrôleur qui la gère:
8
Le chargement du pilote sous DOS se fait par la
commande : > MOUSE.
La désinstallation du pilote est réalisée par la
commande
: > MOUSE OFF
La version actuel du pilote support la plupart des
modes d’écran sur le marché (Hercules, CGA, EGA, VGA,
…).
La souris comme tout périphérique, nécessite un
pilote de commande pour s’exécutée.
Le pilote de la souris MOUSE.COM
9
Technologie des souris
Types de Souris:
Mécanique
Optomécanique
Optique
Types de liaison:
Liaison par câble
Liaison infrarouge
Liaison radio
Types de connexion:
connexion série
connexion PS/2
Connexion USB
Ports de la carte mère
10
Types de Souris
Souris Mécanique
Fonctionne à l'aide d'une boule.
L’inconvénient de se type est le
dépôt de poussières.
11
Souris Optomécanique
Types de Souris
1 : Boule.
2 : Rouleau.
3 : Cellule photoélectrique.
4 : Bouton du clic gauche.
5 : LED (Diode électroluminescente ).
12
L’avantage de ce type de souris, c'est qu'elle fonctionne sans boule. Alors pas des problèmes d'encrassement !
Souris Optique
Types de Souris
14
Ce type de liaison est
de plus en plus fréquent.
Distance ≈ 2 m.
Liaison par infrarouge
Types de Liaison
15
Cette liaison est proche
de celui de l'infrarouge.
Distance jusqu'à 10 m !
Liaison radio
Types de Liaison
16
Utilisation des ports série (COM1 ou COM2).
L’inconvénient est l’occupation de l’un des ports série.
Connexion Série
Types de connexion
17
La Souris se déplace plus régulièrement et avec plus de précision et libère l'un des ports série.
L'inconvénient est qu'elle nécessite son propre IRQ (l'IRQ12).
Connexion PS/2
Types de connexion
19
Port PS/2 (2).
Port Série (DB9) (RS-232) (3).
Port USB (1).
Ports de la carte mère
Types de connexion
20
Programmation de la souris
Les diverses fonctions de l'interface de souris sont
appelées par l'intermédiaire de l'interruption 33h.
La version 8.0 du driver de souris reconnaît en tout
53 fonctions allant de 0000h à 00034h.
Plusieurs fonctions sont presque identiques et
quelque fonctions sont des combinaisons d’autres
fonctions. Quelque fonctions sont pas documentées.
La plupart des fonctions travaillent avec les
registres AX, BX, CX et DX, Les registres ES, SI et DI ne
sont pas utiles que dans l'adressage.
21
1. Driver de la souris.
1. Position du curseur.
2. Zones du curseur.
3. Visibilité du curseur.
4. Sensibilité de la souris.
5. État de la souris.
Classification des fonctions
22
1. Driver de la souris
Il existe 04 fonctions qui nous permettent de
contrôler le pilote de la souris
Réinitialisation du driver de souris. (Fct 00h)
Désactiver le driver de la souris. (Fct 1Fh)
Activer le driver de la souris. (Fct 20h)
Lire le type de souris. (Fct 24h)
Classification des fonctions
23
2. Position du curseur
Il existe 03 fonctions qui nous permettent de
connaître et de définir l’emplacement du curseur.
Lire la position de la souris et l'état des
boutons de la souris. (Fct 03h)
Déplacement du curseur de la souris. (Fct 04h)
Lire les distances de déplacement. (Fct 0Bh)
Classification des fonctions
24
3. Zones du curseur
03 fonctions existes pour définir les différentes zones
du curseur de la souris
Définir la zone de déplacement horizontale. (Fct 07h)
Définir la zone de déplacement verticale. (Fct 08h)
Définir la zone d'exclusion (Fct 10h)
Classification des fonctions
25
4. Visibilité du curseur
Contrôle la visibilité du curseur et modifié ça motif
Afficher le curseur de la souris sur l'écran. (Fct 01h)
Masquer le curseur de la souris. (Fct 02h)
Définit le curseur de la souris en mode graphique.
(Fct 09h)
Définit le curseur de la souris en mode de texte.
(Fct 0Ah)
Classification des fonctions
26
5. Sensibilité de la souris
Définir et lire la sensibilité de la souris
Définir la sensibilité de la souris. (Fct 1Ah)
Lire la sensibilité de la souris. (Fct 1Bh)
Classification des fonctions
27
6. État de la souris
Manipuler l’état de la souris
Lire la taille du buffer d'état de la souris (Fct 15h)
Sauvegarder état de la souris (Fct 16h)
Restaurer l'état de la souris (Fct 17h)
Classification des fonctions
28
Les librairie du TP7Librairie Nom du fichier
La librairie DOS
La librairie CRT
La librairie graphique GRAPH.TPU
Le driver de la carte graphique EGAVGA.BGI
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
Le code source
Organisation des fichiers
29
Conclusion
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. Driver de la souris
2. Position du curseur
3. Zones du curseur
4. Visibilité du curseur
5. Sensibilité de la souris
6. État de la souris
A. Classification des fonctions
1. Driver de la souris
Il existe 04 fonctions qui nous permettent de contrôler le
pilote de la souris
Réinitialisation du driver de souris
Désactiver le driver de la souris
Activer le driver de la souris
Lire le type de souris
Fonction 00h Réinitialisation du driver de souris (TesterDriver)
with Driver do
with reg do
begin
ax := 0;
intr ($33, reg);
Souris.NbrBtns := bl;
DrvExiste := (ax <> 0);
end ;
Fonction 1Fh Désactiver le driver de la souris(DesactiverDriver)
reg.ax := $1f;
intr($33, reg);
Fonction 20h Activer le driver de la souris (ActiverDriver)
reg.ax := $20;
intr($33, reg);
Fonction 24h Lire le type de souris (TesterDriver)
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;
2. Position du curseur
Il existe 03 fonctions qui nous permettent de connaître et de
définir l’emplacement du curseur.
• Lire la position de la souris et l'état des boutons de la souris
• Déplacement du curseur de la souris
• Lire les distances de déplacement
with Souris do
with Curseur do
with reg do
begin
ax := $3;
intr($33, reg);
EtatBtn1 := bl and 1;
EtatBtn2 := bl and 2;
x := cx;
y := dx;
end;
Fonction 03h Lire la position de la souris et l'état des boutons de la
souris (LirePosCurseur)
with Curseur do
with reg do
begin
ax := $04;
cx := x;
dx := y;
end;
intr($33, reg);
Fonction 04h Déplacement du curseur de la souris (DefinirPosCurseur)
with reg do
with Curseur do
begin
ax := $0b;
intr($33, reg);
DistanceX := cx;
DistanceY := dx;
end;
Fonction 0Bh Lire les distances de déplacement (LireDistance)
3. Zones du curseur
03 fonctions existes pour définir les différentes zones du curseur de la
souris
• Définir la zone de déplacement horizontale
• Définir la zone de déplacement verticale
• Définir la zone d'exclusion
with ZoneDeplacement do
with reg do
begin
ax := $07;
cx := MinX;
dx := MaxX;
intr($33, reg);
end ;
Fonction 07h Définir la zone de déplacement horizontale
(DefinirZoneDeplacement)
with ZoneDeplacement do
with reg do
begin
ax := $08;
cx := MinX;
dx := MaxX;
intr($33, reg);
end ;
Fonction 07h Définir la zone de déplacement verticale
(DefinirZoneDeplacement)
Fonction 10h Définir la zone d'exclusion (DefinirZoneExclusion)
with ZoneExclusion do
with reg do
begin
ax := $10;
cx := MinX;
dx := MinY;
si := MaxX;
di := MaxY;
end;
intr($33, reg);
4. Visibilité du curseur
Contrôle la visibilité du curseur et modifié ça motif
• Afficher le curseur de la souris sur l'écran
• Masquer le curseur de la souris
• Définit le curseur de la souris en mode graphique
• Définit le curseur de la souris en mode de texte
reg. ax := 2;
intr($33, reg);
reg. ax := 1;
intr($33, reg);
Fonction 01h Afficher le curseur de la souris sur l'écran
(AfficherCurseur)
Fonction 02h Masquer le curseur de la souris (CacherCurseur)
with Curseur do
with reg do
begin
ax := $09;
bx := 0;
cx := 0;
es := seg(TypeCurseur);
dx := ofs(TypeCurseur);
end;
intr($33, reg);
Fonction 09h Définit le curseur de la souris en mode graphique
(DessinerCurseurGraph)
Fonction 0Ah Définit le curseur de la souris en mode de texte
(DessinerCurseurTexte)
with reg do
with Curseur do
begin
ax := $0a;
bx := TypeCurseur;
cx := Operand1;
dx := Operand2;
end;
intr($33, reg);
5. Sensibilité de la souris
Définir et lire la sensibilité de la souris
• Définir la sensibilité de la souris
• Lire la sensibilité de la souris
Fonction 1Ah Définir la sensibilité de la souris (DefinirSensibiliteSouris)
with Curseur do
with reg do
begin
ax := $1a;
bh := 0;
bl := Sensibilite;
ch := 0;
cl := Sensibilite;
dx := Seuil;
end;
intr($33, reg);
Fonction 1Bh Lire la sensibilité de la souris (LireSensibiliteSouris)
with Curseur do
with reg do
begin
ax := $1b;
intr($33, reg);
{Sensibilite := bx;}
Sensibilite := cx;
Seuil := dx;
end;
6. État de la souris
Manipuler l’état de la souris
• Lire la taille du buffer d'état de la souris
• Sauvegarder état de la souris
• Restaurer l'état de la souris
Fonction 15h Lire la taille du buffer d'état de la souris (LireTailleBuffer)
with reg do
begin
ax := $15;
intr($33, reg);
TailleBuffer := bx;
end;
Fonction 16h Sauvegarder état de la souris (SauverEtatSouris)
with reg do
begin
ax := $16;
bx := TailleBuffer;
es := seg(BufferEtatSouris);
dx := ofs(BufferEtatSouris);
end;
intr($33, reg);