Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > Programmation d'OS
Programmation d'OS Programmation de systèmes d'exploitation
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/02/2011, 10h36   #1
jud83
Invité de passage
 
Inscription : avril 2009
Messages : 2
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2009
Messages : 2
Points : 0
Points : 0
Par défaut Accès à la souris en mode réel

Bonjour,

Je souhaite (pour culture générale) développer un OS. Dans un premier temps, en mode réel. Je réalise donc un boot loader en ASM (NASM).
Je fais différents essais dans ce boot loader pour m'assurer que je peux interagir avec les matériels suivants :
Ecran : Réalisé. Pas de pb pour écrire des caractères ou des pixels => OK
Disque : Non réalisé, mais je pense pouvoir le faire sans trop de pb
Clavier : Idem Disque
Souris : Là, je bloque complètement.

D'où ma question : Comment peut-on accéder et programmer la souris ? L'interruption 33h n'est pas disponible pour le faire (car aucun OS n'est chargé).
Mon but est de détecter la présence de la souris, les clicks sur les boutons et la position de la souris. Pour l'affichage du curseur, à la limite, je pourrai créer une routine qui affiche un curseur, mais comment accéder aux informations de click et de position ? Via un accès à une zone mémoire ? laquelle ? par un autre moyen ? lequel ?

Pour info, j'utilise NASM sur Windows 7, et je crée ma disquette de boot via Linux (émulé dans VirtualBox sous Windows 7) et je lance mon OS via Bochs.

Merci de vos réponses, surtout si elles s'adressent à la compréhension d'un "débutant" dans le domaine.
jud83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 15h15   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 083
Points : 11 083
Bonjour,

Ça dépend de ce sur quoi est branchée ta souris.

Si c'est sur l'USB, soit il y a des extensions BIOS dédiées (que je ne connais pas), soit il faut réécrire la gestion du bus en entier avant d'arriver spécifiquement au périphérique concerné (prévois quelques années de travail) ;

Si c'est sur le port PS/2 par contre, tu peux aller le lire directement (attention, le clavier y sera multiplexé avec). La technologie clavier-souris PS/2 est merdique depuis la connectique jusqu'à son protocole, mais celui-ci présente au moins l'avantage d'être relativement simple, et donc d'être abordable quand on programme en assembleur.

Vois, donc, du côté du port 64h, ici : ici et ici.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 13h15   #3
edfed
Membre chevronné
 
Avatar de edfed
 
être humain
Inscription : décembre 2007
Messages : 471
Détails du profil
Informations professionnelles :
Activité : être humain

Informations forums :
Inscription : décembre 2007
Messages : 471
Points : 619
Points : 619
Le BIOS emule une souris PS/2 sur les PC recents (apres 1998), à partir d'une souris USB
idem le clavier.
edfed est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h58.


 
 
 
 
Partenaires

Hébergement Web