Télécharger le zip
Marche nikel !
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.@+
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
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à !@+
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...@+
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 koihave fundanke++
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.
je cherce kelkun ki si conné en java
"Alors je cherche et je trouverais ..." (allez, tous en coeur :p )
Bonjour,Peut on récupérer les code obtenu, et les intégrer dans prog en C ou C++ ?philippe
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 !)@+
# 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
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 598 510 membres 516 nouveaux aujourd'hui 15 439 membres club