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