Greg159357
Messages postés112Date d'inscriptionlundi 21 octobre 2013StatutMembreDernière intervention 4 janvier 2014
-
9 nov. 2013 à 21:57
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 2014
-
14 févr. 2014 à 21:34
Bonjour, je voudrais savoir comment faire pour que quand on appuie sur une touche du clavier, cela lance un fonction, car je crée un OS et je ne peux pas utiliser d'interruptions du BIOS.
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 11 nov. 2013 à 07:33
salut,
Cette simple question nécessite de bonnes connaissances du fonctionnement materiel de l'ordi et notement du processeur. Je te conseille dans un premier temps de lire la documentation intel pour 386.
Cela marche comme pour le 16 bits. Une interruption est générée sur le pic par le clavier. En mode 32 bits, la table pointée par le registre IDTR est utilisée afin de trouver la routine qui est appelée. Soit tu programme la routine avec l'acces aux ports E/S du clavier. Soit tu place le processeur en mode V86 pour appeler la routine BIOS.
ici, tu trouveras des exemples pour utiliser IDTR et comment utiliser les interruptions materielles.
1 - initialiser le pic pour qu'il redirige les interruptions sur nos vecteurs (0x20-0x2F) dans les exemples.
2 - Initialiser la table des interruptions et IDTR.
3 - Ton gestionnaire devra impérativement lancer une EOI sur le PIC afin de terminer l'interruption en cours sinon, le PIC ne génèrera plus aucune interruption.
4 - Finir par ton gestionnaire par un iretd.
bon courage.
Greg159357
Messages postés112Date d'inscriptionlundi 21 octobre 2013StatutMembreDernière intervention 4 janvier 2014 11 nov. 2013 à 13:10
Greg159357
Messages postés112Date d'inscriptionlundi 21 octobre 2013StatutMembreDernière intervention 4 janvier 2014 27 nov. 2013 à 16:22
Bonjour, je ne comprends pas très bien les liens que vous m'avez donnés.
Pouvez vous m'expliquer comment faire pour initialiser la IDT (33 pour le clavier) ?
11 nov. 2013 à 13:10