La Place des Développeurs Les matrices des claviers MSX
Le clavier d'un MSX est géré par une puce appelée PPI. Cette puce scrute la matrice du clavier afin de savoir quelle touche est pressée ou pas.
Je me suis rendu compte qu'il y a peu de documentation sur les matrices existantes. Le standard lui-même est assez vague d'ailleur. Pourtant, la matrice peut varier beaucoup selon que le type de clavier et même d'un MSX à l'autre ayant pourtant le même type de clavier. En gros, chaque MSX a une matrice différente.
Les bits 0-3 de l'adresse 002Ch du BIOS sont sensés indiquer le type de clavier d'origine mais là aussi c'est tout aussi vague. Impossible de savoir si le clavier est arabe, russe ou coréen !
Voici les infos les plus complète que j'ai trouvés :
http://map.grauw.nl/articles/keymatrix.php
Je propose donc un petit programme BASIC qui permet de connaitre l'état de la matrice pour chaque touche pressée de votre MSX afin de compléter les informations dans le but de faire une doc sur un maximum de clavier dans le Wiki. Les possesseurs d'MSX arabe, allemand, coréen, espagnol, portugais, etc sont les biens venu.
Voici le tableau prêt à compléter :
Vous avez juste à copier le tableau le compléter à l'aide du programme BASIC.
Les lignes 9 et 10 ne sont pas utilisés sur les MSX n'ayant pas de pavé numérique sauf le MSX Pioneer PX-7 qui utilise la ligne 9 pour ses 3 touche spécifiques. Le clavier du Turbo R et les MSX2+ de Panasonic a une ligne 11 qui est aussi indiquée au lien donné plus haut.
Pour les combinaisons de touches, je devrais pouvoir me débrouiller avec la photo du clavier.
Je remercie d'avant ceux qui participerons. Edité par GDX Le 26/01/2013 à 11h56
Je me suis rendu compte qu'il y a peu de documentation sur les matrices existantes. Le standard lui-même est assez vague d'ailleur. Pourtant, la matrice peut varier beaucoup selon que le type de clavier et même d'un MSX à l'autre ayant pourtant le même type de clavier. En gros, chaque MSX a une matrice différente.
Les bits 0-3 de l'adresse 002Ch du BIOS sont sensés indiquer le type de clavier d'origine mais là aussi c'est tout aussi vague. Impossible de savoir si le clavier est arabe, russe ou coréen !
Voici les infos les plus complète que j'ai trouvés :
http://map.grauw.nl/articles/keymatrix.php
Je propose donc un petit programme BASIC qui permet de connaitre l'état de la matrice pour chaque touche pressée de votre MSX afin de compléter les informations dans le but de faire une doc sur un maximum de clavier dans le Wiki. Les possesseurs d'MSX arabe, allemand, coréen, espagnol, portugais, etc sont les biens venu.
Code TEXT :
5 ' Keyboard Matrix Tester 6 ' 10 CLS:DEFINTA-Z 20 FOR R=0 TO 10 30 L=PEEK(&HFBE5+R)XOR255 40 FOR B=0 TO 7 50 IF L=2^B THEN LOCATE1,1:PRINT"Row=";R;" Bit=";B 60 NEXT:NEXT:GOTO20
Voici le tableau prêt à compléter :
Code TEXT :
[table style="text-align: center;"] [row] [col]Ligne[/col] [col]bit 7[/col] [col]bit 6[/col] [col]bit 5[/col] [col]bit 4[/col] [col]bit 3[/col] [col]bit 2[/col] [col]bit 1[/col] [col]bit 0[/col] [/row] [row] [col]Row 1[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 2[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 3[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 4[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 5[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 6[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 7[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 8[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row 9[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [row] [col]Row10[/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [col][/col] [/row] [/table]
Vous avez juste à copier le tableau le compléter à l'aide du programme BASIC.
Les lignes 9 et 10 ne sont pas utilisés sur les MSX n'ayant pas de pavé numérique sauf le MSX Pioneer PX-7 qui utilise la ligne 9 pour ses 3 touche spécifiques. Le clavier du Turbo R et les MSX2+ de Panasonic a une ligne 11 qui est aussi indiquée au lien donné plus haut.
Pour les combinaisons de touches, je devrais pouvoir me débrouiller avec la photo du clavier.
Je remercie d'avant ceux qui participerons. Edité par GDX Le 26/01/2013 à 11h56
j'ai tapé ton programme et lancé sur mon 8280/00 transformé MSX2+
j'ai ensuite comparé les valeurs avec la matrice donnée dans le manual service et ça correspond bien
la matrice Y correspond au Row et la matrice X correspond aux Bits
X0' et X0 , X2' et X2 , X4' et X4 , X5' et X5 correspondent respectivement aux même bit car ils sont reliés par une diode
Y11 12 et 13 correspondent a Y6 et y sont reliés pas 3 diodes
avec ce décodage ça peux éviter une longue saisie pour les machines dont on a le schéma de la matrice
a vérifier quand même la concordance de la matrice avec le programme basic
j'ai ensuite comparé les valeurs avec la matrice donnée dans le manual service et ça correspond bien
la matrice Y correspond au Row et la matrice X correspond aux Bits
X0' et X0 , X2' et X2 , X4' et X4 , X5' et X5 correspondent respectivement aux même bit car ils sont reliés par une diode
Y11 12 et 13 correspondent a Y6 et y sont reliés pas 3 diodes
avec ce décodage ça peux éviter une longue saisie pour les machines dont on a le schéma de la matrice
a vérifier quand même la concordance de la matrice avec le programme basic
J'ai créé le tableau de 2 Matrices de claviers MSX1 AZERTY partir de quelques infos et photos.
Le caractère à droite correspond à celui obtenu avec la touche SHIFT maintenue.
Yeno DPC-64 :
Canon V-20, Sanyo PHC-28 et Yeno MX-64 :
Clavier du Yeno MX-64 : SUP = Back Space et Home/CLS = EFE/DEP. Il n'y a pas de touche DEAD.
Clavier du Canon V-20 : Home/CLS = EFE/DEP. Il n'y a pas de touche DEAD.
Le caractère à droite correspond à celui obtenu avec la touche SHIFT maintenue.
Yeno DPC-64 :
Ligne | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 |
Row 1 | è 7 | § 6 | ( 5 | ' 4 | " 3 | é 2 | & 1 | à 0 |
Row 2 | m M | $ * | ^ ¨ | < > | - _ | ° ) | ç 9 | ! 8 |
Row 3 | b B | q Q | DEAD | = + | : / | ; . | # £ | ù % |
Row 4 | j J | i I | h H | g G | f F | e E | d D | c C |
Row 5 | r R | a A | p P | o O | n N | , ? | l L | k K |
Row 6 | w W | x X | y Y | z Z | v V | u U | t T | s S |
Row 7 | F3 F8 | F2 F7 | F1 F6 | CODE | CAP | GRAPH | CTRL | SHIFT |
Row 8 | RET | SELECT | BS | STOP | TAB | ESC | F5 F10 | F4 F9 |
Row 9 | → | ↓ | ↑ | ← | SUP | INS | Home CLS | SPACE |
Canon V-20, Sanyo PHC-28 et Yeno MX-64 :
Ligne | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 |
Row 1 | 7 è | 6 § | 5 ( | 4 ' | 3 " | 2 é | 1 & | 0 à |
Row 2 | m M | $ * | ^ ¨ | < > | - _ | ) ° | 9 ç | 8 ! |
Row 3 | b B | q Q | DEAD | = + | : / | ; . | # £ | ù % |
Row 4 | j J | i I | h H | g G | f F | e E | d D | c C |
Row 5 | r R | a A | p P | o O | n N | , ? | l L | k K |
Row 6 | w W | x X | y Y | z Z | v V | u U | t T | s S |
Row 7 | F3 F8 | F2 F7 | F1 F6 | CODE | CAP | GRAPH | CTRL | SHIFT |
Row 8 | RET | SELECT | BS | STOP | TAB | ESC | F5 F10 | F4 F9 |
Row 9 | → | ↓ | ↑ | ← | SUP | INS | Home CLS | SPACE |
Clavier du Yeno MX-64 : SUP = Back Space et Home/CLS = EFE/DEP. Il n'y a pas de touche DEAD.
Clavier du Canon V-20 : Home/CLS = EFE/DEP. Il n'y a pas de touche DEAD.
Fabf
Membre non connecté
Conseiller Municipal
Regarde dans ma collection si une machine est intéressante
J'ai vérifié avec mon programme le tableau du Turbo R qu'il y a sur la page de MSX Assembly. Tout correspond sauf la ligne 11 pour les touches "YES" et "NO". En fait, je pense qu'on parle des 2 touches [取消] et [実行] mais elles ne produisent aucun effet avec mon programme car la ligne 11 n'a pas l'air d'être mémorisée dans les variables du système. En tout cas, elle n'est pas mémorisée à l'adresse 0FBF0H.
Fabf,
Il serait intéressant de vérifier mes tableaux et de faire un tableau pour les Gradiente, un autre pour les Hot bit et un pour le SVI728.
PS : Quand je vais sur ton site :
http://msx.fab.free.fr/mpc.msx/
ça me dit que le serveur suivant est introuvable.
http://siravo.fabrice.free.fr/liste.htm
Il y a aussi d'autres pages qui sont absentes.
À l'URL suivant, ça marche.
http://msx.fab.free.fr/mpc/ Edité par GDX Le 26/01/2013 à 13h26
Fabf,
Il serait intéressant de vérifier mes tableaux et de faire un tableau pour les Gradiente, un autre pour les Hot bit et un pour le SVI728.
PS : Quand je vais sur ton site :
http://msx.fab.free.fr/mpc.msx/
ça me dit que le serveur suivant est introuvable.
http://siravo.fabrice.free.fr/liste.htm
Il y a aussi d'autres pages qui sont absentes.
À l'URL suivant, ça marche.
http://msx.fab.free.fr/mpc/ Edité par GDX Le 26/01/2013 à 13h26
Fabf
Membre non connecté
Conseiller Municipal
Non ce n'est pas mon site.
Tu peux voir la liste de mes machines dans le wiki du village
Tu peux voir la liste de mes machines dans le wiki du village
igal
Membre non connecté
Conseiller Municipal
GDX :
Il serait intéressant de vérifier mes tableaux et de faire un tableau pour les Gradiente, un autre pour les Hot bit et un pour le SVI728
Il suffit juste que je lance ce petit programme sur le Gradiente DD Plus?
Code TEXT :
5 ' Keyboard Matrix Tester 6 ' 10 CLS:DEFINTA-Z 20 FOR R=0 TO 10 30 L=PEEK(&HFBE5+R)XOR255 40 FOR B=0 TO 7 50 IF L=2^B THEN LOCATE1,1:PRINT"Row=";R;" Bit=";B 60 NEXT:NEXT:GOTO20
RUN et c'est tout?
Fabf
Membre non connecté
Conseiller Municipal
Non il manque la dernière ligne sur les modèles à base de PPI
http://www.msxvillage.fr/forum/topic.php?id=1741&pt=1
http://www.msxvillage.fr/forum/topic.php?id=1741&pt=1
Fabf
Membre non connecté
Conseiller Municipal
Intéressant, tu vois quoi comme composant ?
Un 74LS154 ?
Un 74LS154 ?
igal
Membre non connecté
Conseiller Municipal
Désolé pour le Gradient DD plus. J'ai complètement zappe et je l'ai plus
Voici un lien qui peut être intéressant.
https://translate.googleusercontent.com/translate_c?depth=1&hl=fr&rurl=translate.google.fr&sl=ja&tl=fr&u=http://www.geocities.jp/atx197/msx_spkb1.htm&usg=ALkJrhi6w7FvFqywSxBxJIXPwBR4Iy_4RA
Voici un lien qui peut être intéressant.
https://translate.googleusercontent.com/translate_c?depth=1&hl=fr&rurl=translate.google.fr&sl=ja&tl=fr&u=http://www.geocities.jp/atx197/msx_spkb1.htm&usg=ALkJrhi6w7FvFqywSxBxJIXPwBR4Iy_4RA
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie