CODINGApprendre pas à pas la programmation en assembleur Z80 ★ Annexe hardware de la machine ★

Clavier / Schéma de référence du PPI

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

★ ANNÉE: 2025
★ AUTEUR: Roudoudou

Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 444 millisecondes et consultée 9 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.