IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Périphériques Discussion :

Le clavier a t il une mémoire


Sujet :

Périphériques

  1. #1
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Août 2007
    Messages : 112
    Points : 88
    Points
    88
    Par défaut Le clavier a t il une mémoire
    bonsoir a tous peut étre que ma question parrait béte mais elle m'intrigue un peu lol, alors comme le titre l'indique est ce que le clavier dispose d'une mémoire si c'est oui c'est de quel type?
    merci

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    non et donc de type null.
    => voir réponse de l'apprentis. s'il dit vrai, j'en apprend tous les jours
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre actif Avatar de Muesko
    Profil pro
    Collégien
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 204
    Points
    204
    Par défaut
    Oui le clavier dispose d'une mémoire qui est au sein d'un microcontroleur. En fait, dès que t'apuis sur une touche, le microcontrolleur détecte laquelle cherche dans sa mémoire quel est le code corresspondant, et l'envoie via le cable à l'ordinnateur ou l'information pourra être exploitée et traitée. L'information qui sort du claviée est nomée "Donnée brut" et l'information sortant de l'UC est appelée "Donnée traitée".

    Après je sais pas ce que tu veut faire, mais sache qu'il est difficile de reprogrammé cette mémoire (voir même impossible)

    voilou :
    Bonjour,
    Si vous lisez ceci, c'est que vous êtes à la fin de mon message.

  4. #4
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Août 2007
    Messages : 112
    Points : 88
    Points
    88
    Par défaut
    ha l'apprentis c'est pas trop claire soit plus explécite lol si tu le peux bien sur!

  5. #5
    Membre actif Avatar de Muesko
    Profil pro
    Collégien
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 204
    Points
    204
    Par défaut
    Ben justement je ne suis pas sur non plus à 100%. Mais, ca m'étonnerais que ca se passe autremment. Bon je réponderais demain par ce que la j'y vais.
    Bonjour,
    Si vous lisez ceci, c'est que vous êtes à la fin de mon message.

  6. #6
    Membre éprouvé Avatar de cubitus91
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 726
    Points : 933
    Points
    933
    Par défaut
    Salut,
    C'est une mémoire intégrée (µcontrolleur). Tu ne peux pas la changer.
    En fait cette mémoire ne sert uniquement qu'a contenir le programme de gestion du clavier.
    Car pour schématiser tu as une matrice et chaque inter-section représente une touche de ton clavier.
    A chaque appuie sur une touche le µcontrolleur recoit un signal électrique il interprete celui ci et renvoie alors un code (asci.....) de la touche en question.

    Cdt
    Le tag est bien utile, alors pensez y !

  7. #7
    Blue_Strike
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par onlytime Voir le message
    [...] est ce que le clavier dispose d'une mémoire si c'est oui c'est de quel type?
    T'as question est suite à une remarque ? Tu entends quoi par mémoire ? Si j'ai bien compris tu veux savoir si le clavier sauvgarde les codes des touches dans une mémoire, c'est ça ? ben la réponse est : non.

    Citation Envoyé par L'apprentis Voir le message
    Oui le clavier dispose d'une mémoire qui est au sein d'un microcontroleur. En fait, dès que t'apuis sur une touche, le microcontrolleur détecte laquelle cherche dans sa mémoire quel est le code corresspondant [...]
    ben j'espère que ton clavier perdera pas sa mémoire, sinon tu vas voir n'importe quoi sur ton écran

    bon, plus sérieusement, le clavier est un codeur ! c'est une sorte de "matrice" des fils qui génère un code dit ASCII au PC sur 7 bits (donc au max 128 caractères différents).
    quand on appui sur un touche, et comme présenté sur le schéma dessus, un contact se ferme tant que la touche est enfoncée. y a un microprocesseur qui utilise un courant qui balaie chaque rangée en séquence, des milliers de fois par seconde, que le clavier soit utilisé ou non.

    Et donc, à chaque appui sur une touche, un code différent sera présenté sur le port du clavier (comme dit : sur 7 bits) décrivant cette touche. L'ordinateur "lit" ce code est le traduit par la suite grâce à une liste de référence ASCII.

    Et comme ce code ASCII est présenté sur 8 bits donc 256 caractères (je parle du standard), certains autres caractères spéciaux appelés caractères étendus ne sont donc pas accessibles par toutes les touches.
    On accède à ces caractères par une combinaison de touches(ALT + numéro de code).

    PS : la signification du code généré par ce clavier dépend aussi de police utilisé

    Bonne journée.
    Dernière modification par Sendusha ; 21/04/2011 à 12h03.

  8. #8
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Août 2007
    Messages : 112
    Points : 88
    Points
    88
    Par défaut
    Envoyé par blue_strike T'as question est suite à une remarque ? Tu entends quoi par mémoire ? Si j'ai bien compris tu veux savoir si le clavier sauvgarde les codes des touches dans une mémoire, c'est ça ? ben la réponse est : non.
    ben disons que c'etait pas forcement ça la question mais plutot le type de mémoire,ben puique parmi les différentes types de mémoire on retrouve:
    RAM,ROM,EPROM,EEPROM,mémoire flash...alors celle du clavier de quel type pourrait elle bien étre?.

  9. #9
    Membre émérite
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Points : 2 388
    Points
    2 388
    Par défaut
    Le claviver n'ayant a pirori qu'un micro-contrôleur, la mémoire est integré à celle ci et est surement composé d'une partie de ROM et de RAM après pour les technos exact ... ce type de micro-contrôleur n'as pas besoin de "mise a jour" logiciel donc surement une ROM non effacable / reinscriptible.
    Pour la RAM interne on peut envisager qu'elle n'existe pas et que le micro-contrôleur se contente des registres pour fonctionner.

    D'un autre coté j'ai jamais disséqué un micro-contrôleur de clavier ...

  10. #10
    Blue_Strike
    Invité(e)
    Par défaut
    Excate. Un micro-contrôleur est un processeur avec tout un environnement autour (registres, bus, timer,...) le tous dans une seule puce.

    Donc pour répondre à ta question :
    [...] RAM,ROM,EPROM,EEPROM,mémoire flash...alors celle du clavier de quel type pourrait elle bien étre?.
    je dirais plutôt : registres internes du micro-contrôleur.

    A+

  11. #11
    Inactif  
    Homme Profil pro
    extrazlove
    Inscrit en
    Juillet 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : extrazlove

    Informations forums :
    Inscription : Juillet 2015
    Messages : 103
    Points : 0
    Points
    0
    Par défaut
    La question m'intéresse j'aimerais bien savoir comment en peux accéder a cette mémoire puis le modifier comme ca le pc fera la combinaison de touche envoyer par exemple par Excel.
    et ou le microprocesseur renvoi cette donné dans Windows pour être traiter?

  12. #12
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Le clavier dispose d'un contrôleur, c'est un micro contrôleur qui contient le code ASCII du clavier et son Scancode (ICI).

    Toutes les touches du clavier non pas un code ASCII, mais toutes ont un Scancode qui est la position de la touche sur le clavier.

    L'appui sur une touche indique sa position, le contrôleur du clavier lui attribue ou non un code ASCII associé à sa position.

    Les touches qui n'ont pas de code ASCII sont appelées touches de Fonction, comme la touche Enter, les Flèches, les touches Shift et Caps Look, ainsi de suite.

    L'exploitation du clavier se fait grâce aux interruptions, l'interruption assembleur du clavier est l'INT 16h, celle utilisée par le DOS est la fonction 6 de l'INT 21h.

    Voici par exemple en assembleur 8086 l'entrée d'un caractère du clavier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    ;------------------------- entrée des données du fichier -----------------------
    
    entreF: mov ch,[id10]          ;récupère la position du pointeur d'écriture
    
    entreC: mov ah,0
            int 16h                ;entrée d'un caractère au clavier
            mov [bx],al            ;place le code ascii du caractère dans id1
    
            cmp ah,3fh             ;compare le scan code avec la touche [F5]
            jnz suite2             ;si vrai fin
            jmp fermeF
    
    suite2: cmp ah,01h             ;compare le scan code avec la touche [ESC]
            jnz suite3             ;si vrai entrée d'un caractére
            jmp entreF
    
    suite3: cmp ah,1ch             ;compare le scan code de la touche avec [enter]
            jnz suite4             ;si comparaison vraie crée le fichier
            jmp creeF
    
    suite4: cmp ah,0eh             ;compare le scan code avec [back space]
            jnz suite5a            ;si comparaison vraie efface le caractére
            jmp effC
    
    suite5a:cmp ah,0fh             ;compare le scan code avec la touche TAB
            jnz suite5             ;si comparaison vraie entrée d'un caractère
            jmp entreF
    
    suite5: cmp ch,41              ;compare le nombre de caractères entré
            jnz suite6             ;si vrai attente de la touche [enter]
            jmp entreC
    
    suite6: mov [id5],bx           ;sauve bx à l'adresse id5
            add bx,+1              ;additionne bx avec +1
    
            mov dl,al
            mov ah,02h             ;affiche le caractère entré au clavier
            int 21h
    
            add ch,+1              ;additionne ch (nombre de caractères entré + 1)
    
            mov [id10],ch          ;sauve la position du pointeur d'écriture
    
            mov ah,01h
            mov ch,6
            mov cl,7               ;modifie le curseur = (_)
            int 10h
    
            jmp entreF             ;entrée d'un nouveau caractère
    ;-------------------------------------------------------------------------------
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  13. #13
    Inactif  
    Homme Profil pro
    extrazlove
    Inscrit en
    Juillet 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : extrazlove

    Informations forums :
    Inscription : Juillet 2015
    Messages : 103
    Points : 0
    Points
    0
    Par défaut
    Merci pour vous réponses 😈😇

  14. #14
    Inactif  
    Homme Profil pro
    extrazlove
    Inscrit en
    Juillet 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : extrazlove

    Informations forums :
    Inscription : Juillet 2015
    Messages : 103
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par JML19 Voir le message
    Bonjour

    Le clavier dispose d'un contrôleur, c'est un micro contrôleur qui contient le code ASCII du clavier et son Scancode (ICI).

    Toutes les touches du clavier non pas un code ASCII, mais toutes ont un Scancode qui est la position de la touche sur le clavier.

    L'appui sur une touche indique sa position, le contrôleur du clavier lui attribue ou non un code ASCII associé à sa position.

    Les touches qui n'ont pas de code ASCII sont appelées touches de Fonction, comme la touche Enter, les Flèches, les touches Shift et Caps Look, ainsi de suite.

    L'exploitation du clavier se fait grâce aux interruptions, l'interruption assembleur du clavier est l'INT 16h, celle utilisée par le DOS est la fonction 6 de l'INT 21h.

    Voici par exemple en assembleur 8086 l'entrée d'un caractère du clavier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    ;------------------------- entrée des données du fichier -----------------------
    
    entreF: mov ch,[id10]          ;récupère la position du pointeur d'écriture
    
    entreC: mov ah,0
            int 16h                ;entrée d'un caractère au clavier
            mov [bx],al            ;place le code ascii du caractère dans id1
    
            cmp ah,3fh             ;compare le scan code avec la touche [F5]
            jnz suite2             ;si vrai fin
            jmp fermeF
    
    suite2: cmp ah,01h             ;compare le scan code avec la touche [ESC]
            jnz suite3             ;si vrai entrée d'un caractére
            jmp entreF
    
    suite3: cmp ah,1ch             ;compare le scan code de la touche avec [enter]
            jnz suite4             ;si comparaison vraie crée le fichier
            jmp creeF
    
    suite4: cmp ah,0eh             ;compare le scan code avec [back space]
            jnz suite5a            ;si comparaison vraie efface le caractére
            jmp effC
    
    suite5a:cmp ah,0fh             ;compare le scan code avec la touche TAB
            jnz suite5             ;si comparaison vraie entrée d'un caractère
            jmp entreF
    
    suite5: cmp ch,41              ;compare le nombre de caractères entré
            jnz suite6             ;si vrai attente de la touche [enter]
            jmp entreC
    
    suite6: mov [id5],bx           ;sauve bx à l'adresse id5
            add bx,+1              ;additionne bx avec +1
    
            mov dl,al
            mov ah,02h             ;affiche le caractère entré au clavier
            int 21h
    
            add ch,+1              ;additionne ch (nombre de caractères entré + 1)
    
            mov [id10],ch          ;sauve la position du pointeur d'écriture
    
            mov ah,01h
            mov ch,6
            mov cl,7               ;modifie le curseur = (_)
            int 10h
    
            jmp entreF             ;entrée d'un nouveau caractère
    ;-------------------------------------------------------------------------------
    Est ce que en peux copier la mémoire de microcontroleur quand une touche est enfoncé ?

  15. #15
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Les données retournées par le micro-controleur du clavier ainsi que son contrôle sont accessibles depuis les ports 0x60/0x64.

    Tu n'as pas accès à l'éventuelle mémoire du micro-contrôleur, mais à ce qu'il te met à disposition par les différents ports (données scan code/break code et état des leds par exemple).
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  16. #16
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Un clavier contient des composants lui permettant de communiquer via une liaison USB, ou bluetooth, voire wifi vers un ordinateur.

    Parmi ceux-ci, il y a forcément un processeur, de la mémoire, PROM et RAM, généralement intégrés dans un seul chip, donc oui, il y a de la mémoire mais si la question consiste à demander si le clavier conserve en mémoire les séquences de touches saisies, la réponse est (théoriquement) non, le code de la touche saisie n'ayant pas de raison d'être conservé une fois qu'il a été transmis à et acquitté par l'ordinateur (encore qu'un clavier serait un endroit idéal pour installer un keylogger...). Un clavier peut conserver en mémoire des informations transmises par le PC, comme l'allumage des voyants majuscules ou de pavé numérique par exemple.

    Les réponses apportées jusqu'ici et que l'on trouve aussi dans beaucoup de sites web indiquent qu'un clavier transmet les codes ASCII des touches utilisées. Ce n'est pas vraiment le cas. Les claviers envoient uniquement les scan-codes correspondant aux touches saisies (c'est à dire en gros à la position de la touche sur le clavier) et c'est à l'ordinateur de convertir ce code en caractères (ou modificateur, fonction etc.) L'électronique est donc identique entre un clavier AZERTY et un clavier QWERTY. L'information de disposition du clavier n'est pas transmise à l'ordinateur, ou plus précisément, la très grande majorité des claviers envoient un bCountryCode de 00 (not supported), quelle que soit la disposition des touches (voir les specs USB). Il faut aussi noter que deux informations sont envoyées par le clavier, la première correspond à l'appui d'une touche et la deuxième correspond au relâchement de la touche. Ceci permet aux pilotes de gérer les combinaisons de touches, comme les majuscules, AltGr ou fameux Control-Alt-Del.

    C'est donc au pilote du clavier de convertir les scans codes en codes correspondant aux touches saisies, le nombre de codes possibles dépassant d'ailleurs largement les 127 caractères définis dans la table ASCII.
    ɹǝsn *sıɹɐlos*

  17. #17
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Bonjour

    C'est bien le micro contrôleur du clavier qui gère le code ASCII, le Scancode et la répétition des touches.

    J'ai programmé les touches d'un clavier bien avant que Windows existe.

    Effectivement on peut gérer l'interruption clavier à l'aide d'un TSR (pilote) qui peut changer l'utilisation du clavier.

    Mais à l'origine il n'y avait pas de pilote pour un clavier.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  18. #18
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    C'est bien le micro contrôleur du clavier qui gère le code ASCII
    Non, comme l'a dit Jiliagre, c'est le pilote clavier qui convertit le scan code en code ASCII. Il faut plutôt prendre ça comme un numéro de touche. Que tu sois en clavier QWERTY ou AZERTY, le scan code sera le même, mais pas le code ASCII notamment pour A et Q, W et Z,etc. De mémoire, le break code envoi le scan code de la touche relâchée +128.

    Pour la répétition des touches, c'est le contrôleur qui gère selon les infos que tu lui a donné. C'est paramétrable.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  19. #19
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 939
    Points : 23 253
    Points
    23 253
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Non, comme l'a dit Jiliagre, c'est le pilote clavier qui convertit le scan code en code ASCII. Il faut plutôt prendre ça comme un numéro de touche. Que tu sois en clavier QWERTY ou AZERTY, le scan code sera le même, mais pas le code ASCII notamment pour A et Q, W et Z,etc. De mémoire, le break code envoi le scan code de la touche relâchée +128.

    Pour la répétition des touches, c'est le contrôleur qui gère selon les infos que tu lui a donné. C'est paramétrable.
    Désolé mais non !

    J'ai programmé directement le clavier par l'intermédiaire de son interruption, il n'y a aucun pilote.

    Il est évident que les renseignements sont gérés par l'interruption (Int16h) qui récupère les informations clavier et qu'à partir de là on peut changer ces informations.

    D'ailleurs tous les systèmes d'exploitation détournent cette interruption pour mettre à la place un pilote.

    L'int 16h fonctionne comme ceci :

    - Dans le registre Ah le paramètre d'entrée 00h provoque la lecture du caractère, dans le registre Al sera reçu le Scancode du caractère.

    - Dans le registre Ah le paramètre d'entrée 01h récupère l'état du clavier, c'est là qu'est déterminé l'appui ou le relâchement de la touche ainsi que sa répétition.

    - Dans le registre Ah le paramètre d'entrée 02h récupère l'état des touches de fonction.

    Les caractères sont lus dans le buffer du BIOS.

    Il s'agit d'une zone mémoire de 16 octets situés à l'adresse 0040h:001eh
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  20. #20
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut
    Je connais bien l'interruption 0x16, faisant partie du BIOS, qui était utilisée par DOS. Celle-ci te retourne bien un caractère ASCII. Mais elle ne lit pas directement le clavier, elle lit le contenu de l'adresse 0040:001E (sans rentrer dans le détail du buffer tournant de 16 octets) ou attend un nouveau élément (selon l'appel effectué al=0 al=1 l'une des 2 bloquant jusqu'à l'arrivée d'un caractère dans le buffer, l'autre vérifiant si il y en a un).

    A ce stade, le pilote intégré au BIOS a stocké le code ASCII dans l'adresse 0040:1E après conversion du scan code retourné par le clavier (c'est géré par la routine int 0x9 câblée sur l'IRQ1).

    Je sais de quoi je parle, j'ai du créer un handler clavier en mode protégé, car en mode protégé tu peux dire adieu à l'int 0x16 qui n'est plus utilisable. Dans celui-ci, j'ai une table d'interruption qui convertit les scan codes en codes ASCII, table que j'ai créée à l'époque de façon empirique (en regardant pour chaque touche quel était le scan code). J'ai même du reprogrammer les contrôleurs d’interruptions car en mode protégé les irqs de 1 à 32 sont réservés aux exceptions.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Utilisation simple d'une mémoire partagée sous linux
    Par dreamteam dans le forum Linux
    Réponses: 1
    Dernier message: 09/02/2007, 17h39
  2. [Lecteur MP3] flasher une mémoire flash (USB)
    Par JauB dans le forum Périphériques
    Réponses: 5
    Dernier message: 01/12/2006, 12h11
  3. Gestion d'une Mémoire Cache
    Par mehdi_31 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 11/07/2006, 14h09
  4. Comment vérifier si une mémoire déjà libérée
    Par Xavier dans le forum C++Builder
    Réponses: 5
    Dernier message: 01/02/2006, 13h26
  5. [] Raccourci clavier pour bouton d'une barre d'outil
    Par Sébastien dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/03/2003, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo