Revenir au plan du site
Annexe Hardware Clavier
Lire une ligne de clavier
; on assume qu'au moment où on rentre dans cette routine, le port A est en sortie
; comme c'est ce qu'on configure à la fin de cette routine, c'est ce qui se passe
; dès le deuxième appel à cette routine, si ce n'était pas le cas
ld a,#49 ; ligne 9 de la matrice, c'est le joystick!
ld bc,#F40E
out (c),c ; sélectionner le registre 14 sur le port A
ld bc,#F6C0
out (c),c ; la valeur qu'on va envoyer est un registre
out (c),0 ; validation obligatoire sur Plus sinon bug!
ld bc,#F792
out (c),c ; mettre le port A en lecture
dec b ; B=#F6
out (c),a ; envoyer la ligne clavier (nous c'est #49)
ld b,#F4 ; adresse de lecture du port A
in a,(c) ; lecture de la ligne!
ld bc,#F782 ; PPI configuré port A en sortie
out (c),c
dec b
out (c),0
ret
|
Lire toutes les lignes du clavier ne prendra qu'environ 200 nops
lectureMatriceClavier
di ; Vous n'avez pas besoin de couper les interruptions
; si il n'y a pas de routine sonore sous interruption
ld hl,matriceClavier
ld bc,#f782
out (c),c
ld bc,#f40e
ld e,b
out (c),c
ld bc,#f6c0
ld d,b
out (c),c
out (c),0
ld bc,#f792
out (c),c
ld a,#40
ld c,d
.loop ld b,d
out (c),a ; sélectionner la ligne
ld b,e
ini ; lire et stocker dans notre tableau
inc a
inc c
jr nz,loop
ld bc,#f782
out (c),c
ei ; pas besoin d'activer les interruptions si on ne les a pas coupées
ret
matriceClavier defs 10,#FF
|
Schéma d'interface du PPI dans le CPC avec ses différents port
Si vous souhaitez encore plus de détails sur le PPI, [cliquez ici] pour consultez l'article technique de Quasar CPC dont ce schéma est gracieusement extrait.
Matrice du clavier AZERTY Français de France
Bit: Ligne | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
#40 | F Dot | Entrée | F3 | F6 | F9 | Curseur Bas | Curseur Droite | Curseur Haut |
#41 | F0 | F2 | F1 | F5 | F8 | F7 | Copie | Curseur Gauche |
#42 | Contrôle | $ @\ | Shift | F4 | # > | Retourne | * < | CLR |
#43 | : / | = + | M | ù % | P | ^ ¦ | ) [ | - _ |
#44 | ; . | , ? | K | L | I | O | ç 9 | à 0 |
#45 | Espace | N | J | H | Y | U | è 7 | ! 8 |
#46 | V | B (Joy2 fire3) | F (Joy2 fire2) | G (Joy2 fire1) | T (Joy2 right) | R (Joy2 left) | ( 5 (Joy2 down) | ] 6 (Joy2 up) |
#47 | X | C | D | S | Z | E | " 3 | ' 4 |
#48 | W | CAPS-LOCK | Q | TAB | A | Échappe | é 2 | & 1 |
#49 | DEL | Joy1 fire3 | Joy1 fire2 | Joy1 fire1 | Joy1 right | Joy1 left | Joy1 down | Joy1 up |
Matrice du clavier QWERTY britannique
Bit: Ligne | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
#40 | F. | ENTER | F3 | F6 | F9 | Curseur Bas | Curseur Droite | Curseur Haut |
#41 | F0 | F2 | F1 | F5 | F8 | F7 | COPY | Curseur Gauche |
#42 | Contrôle | \ ` | SHIFT | F4 | ] } | RETURN | [ { | CLR |
#43 | . > | / ? | : * | ; + | P | @ ¦ | - = | ^ £ |
#44 | , < | M | K | L | I | O | 9 ) | 0 _ |
#45 | Espace | N | J | H | Y | U | 7 ' | 8 ( |
#46 | V | B (Joy2 fire3) | F (Joy2 fire2) | G (Joy2 fire1) | T (Joy2 right) | R (Joy2 left) | 5 % (Joy2 down) | 6 & (Joy2 up) |
#47 | X | C | D | S | W | E | 3 # | 4 $ |
#48 | Z | CAPSLOCK | A | TAB | Q | ESC | 2 " | 1 ! |
#49 | DEL | Joy1 fire3 | Joy1 fire2 | Joy1 fire1 | Joy1 right | Joy1 left | Joy1 down | Joy1 up |
Matrice du clavier Danois
Bit: Ligne | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
#40 | F Dot | ENTER | F3 | F6 | F9 | Curseur Bas | Curseur Droite | Curseur Haut |
#41 | F0 | F2 | F1 | F5 | F8 | F7 | COPY | Curseur Gauche |
#42 | Contrôle | ; + | SHIFT | F4 | : * | RETURN | @ \ | CLR |
#43 | . > | / ? | Æ | Ø | P | Å | - = | ^ £ |
#44 | , < | M | K | L | I | O | 9 ) | 0 _ |
#45 | Espace | N | J | H | Y | U | 7 ' | 8 ( |
#46 | V | B (Joy2 fire3) | F (Joy2 fire2) | G (Joy2 fire1) | T (Joy2 right) | R (Joy2 left) | 5 % (Joy2 down) | 6 & (Joy2 up) |
#47 | X | C | D | S | W | E | 3 # | 4 $ |
#48 | Z | CAPSLOCK | A | TAB | Q | ESC | 2 " | 1 ! |
#49 | DEL | Joy1 fire3 | Joy1 fire2 | Joy1 fire1 | Joy1 right | Joy1 left | Joy1 down | Joy1 up |
Matrice du clavier Espagnol
Bit: Ligne | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
#40 | F Dot | INTRO | F3 | F6 | F9 | Curseur Bas | Curseur Droite | Curseur Haut |
#41 | F0 | F2 | F1 | F5 | F8 | F7 | COPIA | Curseur Gauche |
#42 | Contrôle | \ ` | MAYS | F4 | ] + | RETURN | [ * | CLR |
#43 | . > | / ? | Ñ | ; : | P | @ ¦ | - = | ^ ₧ |
#44 | , < | M | K | L | I | O | 9 ) | 0 _ |
#45 | Espace | N | J | H | Y | U | 7 ' | 8 ( |
#46 | V | B (Joy2 fire3) | F (Joy2 fire2) | G (Joy2 fire1) | T (Joy2 right) | R (Joy2 left) | 5 % (Joy2 down) | 6 & (Joy2 up) |
#47 | X | C | D | S | W | E | 3 # | 4 $ |
#48 | Z | FIJA MAYS | A | TAB | Q | ESC | 2 " | 1 ! |
#49 | BORR | Joy1 fire3 | Joy1 fire2 | Joy1 fire1 | Joy1 right | Joy1 left | Joy1 down | Joy1 up |