begin process at 2010 02 09 19:23:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Systeme

 > SCANCODES CLAVIER EN I/O

SCANCODES CLAVIER EN I/O


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Systeme Niveau :Initié Date de création :26/04/2004 Vu / téléchargé :4 282 / 417

Auteur : Bombela

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Voilà une source basique pour récupérer les scancodes du claviers, comme dans un os.

Les codes des touches étendues peuvent être bizarre car je ne teste pas les scancodes longs.

Au fait, faîtes mumuze avec la touche espace ;-)



 Conclusion

Pas de bug connu à l'horison !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Clav_I_O
    • Build.batTélécharger ce fichier [Réservé aux membres club]Voir ce fichier71 octets
    • Clav_I_O.exeTélécharger ce fichier [Réservé aux membres club]524 octets
    • Data.incTélécharger ce fichier [Réservé aux membres club]61 octets
    • Main.asmTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 362 octets
    • ProcClav.incTélécharger ce fichier [Réservé aux membres club]2 306 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip PM3D PASSAGE EN PMODE.
Source avec Zip Source avec une capture LE PREMIER HAUT-PARLEUR DU PC !
Source avec Zip SETDISPLAY
Source avec Zip GET VESA INFO AND TEST
Source avec Zip PATCH POUR WINDOWS 9X ET ME

 Sources de la même categorie

DÉPLACEMENT D'UN RÉCTANGLE ROUGE A L'AIDE DE LA SOURIS par KIMI1632
Source avec Zip SCHEDULEUR TEST par patatalo
Source avec Zip Source avec une capture LIVE CD OMF par patatalo
Source avec Zip "MORTIMER": UN HOBBY OS par bofur
Source avec Zip Source avec une capture LE SYSTÈME D'EXPLOITATION LOGRAM par steckdenis

Commentaires et avis

Commentaire de philou02 le 07/05/2004 10:18:54

Marche nikel !

Commentaire de Bombela le 07/05/2004 12:45:53

Et bien c'est cool !

J'suis en train de faire un driver clavier en C/ASM pour apprendre le C et en même temps m'entraîner à faire un driver.

Heu... Je fais pas un driver pour DOS, je précise...
C'est un driver pour programme en gros...

Enfin à suivre quoi...

Je mettrais sur le site quand ce sera fini.

@+

Commentaire de zinotron le 18/05/2004 17:03:43

chapeau!
la verité, ca claque !
par contre, je suis au regret de te dire que ca ne marche pas comme ca dans les OS.
en effet, tu te base sur l'interuption 9 du bios, mais ca fait depuis longtemps que les OS fonctionnent en mode protégé, ce qui leurs interdit l'acces au bios (et meme que c'est tres chiant, ca m'aurait bcp arrangé :-) )
mais chapeau !
ZiNoTrOn

Commentaire de Bombela le 18/05/2004 17:52:42

Nan nan nan !!! ;)

Tu te trompe ! L'interruption 9 est générer par le processeur lorsqu'une interruption matérielle 1 (Le clavier) est déclanchée !

Je ne tripotte pas le bios !!! En 32 bit, on fait pareil.

Le clavier, génère donc une interruption 9.

Tu vas me dire: mais pourquoi on se retrouve avec une interruption 9 alors que c'est l'interruption matérielle 1 ?

Et bien c'est tous simple ! Les 9 autres interruptions en dessous (0..8) sont dédiée au interruption du processeur et du coprocesseur.

C'est a dire les interruptions du genre erreur de divisions etc.

Voilà !

@+

Commentaire de Bombela le 18/05/2004 17:56:06

Au fait, en dévellopant un driver clavier en C (Que j'ai toujours pas fini), je suis apreçus que j'ai fais une grosse erreur dans cette source asm !!

Quand un scancode étendu est généré, il ne faut pas essayer de lire tout de suite le suivant !!! Il faut attendre la provhaine interrption clavier qui vas, a ce moment là, donner la suite du scancode.

Donc, si ça marche, c'est un coup de bol...

@+

Commentaire de zinotron le 18/05/2004 19:15:36

question marrante -> tu fais comment pour ton driver clavier ? (qui a dit que j'etait tres interessé ?)
au fait mill pardons, t'avais raison, j'éi confondu avec je c pu trop koi
have fun
danke
++

Commentaire de Bombela le 18/05/2004 19:29:08

C 'est pas grâve ;)

Pour mon driver ?

Ben je mélange du C et de l'ASM.

Tu verra comment ça fonctionne quand je l'aurais fini !

Parce uqe pour le moment, c'est pas au top du fonctiononnement ;)

Mais globalement, y juste de l'asm pour installer un gestionnaire de l'int9 le désinstaller etc. En fait, c'est du code asm qui est appelé par une interruption, et c'est ce code asm qui appeelle une fonction C pour la gestion du clavier. Arpès, le code asm envoi au PIC des INT matrérielle le message de fin d'INT.

Le problème n'es pas dans la programmation du matériel. Elle est au momment de convertir les scancode du claviier (Qui sont bordélique) en code de touche virtuelle et en caractère.

Rend toi compte que les virtual code doivent être les mêmes sur un clavier français, anglais ou suisse ! C'est donc vraiment difficile.

Et puis aussi la convertion en caractère ! Il faut gérer les trema, les accents circonflexes et tout et tout !!!

Comme tu vois, c'est pas de tous repos, mais j'ai beoisn de se driver pour un OS spécial 32 bit (PM3D qu'il sappelle ;). Je le dévelloppe dabors pour dos, et une convertion en 32 bits sera facile...

Bye.

Commentaire de drasow le 28/05/2004 17:09:29

je cherce kelkun ki si conné en java

Commentaire de zinotron le 04/06/2004 00:10:26

"Alors je cherche et je trouverais ..." (allez, tous en coeur :p )

Commentaire de philou02 le 04/06/2004 11:52:13

Bonjour,

Peut on récupérer les code obtenu, et les intégrer dans prog en C ou C++ ?

philippe

Commentaire de Bombela le 09/09/2004 13:17:03

Petit message vite fait...

En tapant Bombela dans google, je suis retombé sur cette source...

J'ai jamais posté de driver clavier !
Et oui ! Pas le temps de le terminer !
De plus, j'étai partit du mauvais pied !

M'enfin c'est pas grâve... Y a Modula qui avance ! (Le nouveau nom de PM3D, plus en rapport avec l'évolution du projet !)

@+

Commentaire de ghuysmans99 le 12/01/2009 20:19:29

# mov eax, [es:(9*4)]
# mov [cs:OldInt9], eax

Euh ... on est en mode réel (sous DOS, dans ce cas-ci) donc pas question d'utiliser EAX qui est un registre 32 bits car ton code ne fonctionnerait pas sur un processeur 16 bits !
Mais tu peux faire :

# mov ax, [es:(9*4)]
# mov [cs:OldInt9], ax
# mov ax, [es:(9*4)+2]
# mov [cs:OldInt9+2],ax

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales