CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 1.02.01 Les connexions du Z80

Après ce bref aperçu sur les possibilités du Z80, intéressons-nous maintenant à l'affectation des 40 pins de connexion du Z80.

Les points de connexion du Z80 peuvent être répartis entre les 4 groupes bus de données, bus d'adresses, bus de commande et canaux de transmission.
Bus d'adresses

A0 - A15 : Lignes d'adresses; ces connexions permettent d'appeler une case mémoire dans la zone adressable qui comprend 65536 cases mémoire. Dans le traitement des instructions d'entrée-sortie, les 8 bits inférieurs de l'adresse sont utilisés pour sortir l'adresse d'entrée-sortie correspondante. 256 ports différents sont ainsi possibles. Avec certaines limites tenant au jeu d'instructions, ce sont même 65536 ports qui peuvent être adressés. Les 16 canaux d'adresse sont alors utilisés pour constituer l'adresse du port. Nous reviendrons plus tard sur ce cas particulier.

Bus de données

D0 - D7 : Lignes de données; ces canaux bidirectionnels transmettent les données venant du processeur ou allant vers le processeur. Elles font le lien entre le processeur et la case mémoire ou l'adresse de port choisies à travers le bus d'adresses.

Bus de commande

M1* : Machine Cycle One; ce signal de commande indique que le processeur lit le code d'instruction sur le bus de données. L'étoile signifie par ailleurs pour ce signal et pour les signaux suivants, qu'il s'agit d'un signal actif avec low.

MREQ* : Memory REQuest*, ce signal de sortie indique par un low que le processeur entreprend un accès en lecture ou écriture à une adresse de la mémoire et que l'adresse sur le bus d'adresses est valable.

IQRQ* : Input/Output ReQuest*, ce signal de sortie indique par un low que le processeur entreprend un accès en lecture ou écriture à une adresse de port et que l'adresse de port sur le bus d'adresses est valable.

RD* : ReaD*, ce signal de sortie indique par un low que le processeur veut lire des données dans une case mémoire ou dans une adresse de port. L'utilisation conjointe avec MREQ* ou IORQ permet de distinguer entre la lecture de la mémoire ou d'un port.

WR* : WRite*, ce signal indique, lors d'accès en écriture du processeur à la mémoire ou aux adresses de port, que les données figurant sur le bus de données sont valables. Ici aussi, l'utilisation conjointe de WR* avec MREQ* ou IORQ* permet de distinguer si les données doivent être écrites dans la mémoire ou dans une adresse de port.

RESET* : Lorsque ce signal d'entrée passe à low, le compteur de programme reçoit la valeur &0000, les interruptions sont interdites et le mode d'interruption 0 est activé. Dès que ce signal d'entrée redevient high, le processeur commence l'exécution du programme à partir de l'adresse &0000.

NMI* : Non Maskable Interrupt*, ce signal d'entrée provoque toujours par un double signal high-low une interruption du programme exécuté par le processeur. Les valeurs placées en &0066 et &0067 sont alors chargées dans le compteur de programme et le programme se poursuit à partir de cet endroit.

IRQ* : Interrupt ReQuest*, ce signal d'entrée peut provoquer par un low une interruption du programme exécuté par le processeur, à condition que ce type d'interruptions soit autorisé par instruction. Les effets dépendent du type d'interruption et seront évoqués plus tard. IRQ* est, au contraire de NMI*, un signal statique qui doit persister jusqu'à ce que la demande d'interruption ait été prise en compte.

WAIT* : Ce signal permet d'adapter l'accès en lecture ou en écriture du Z80 à des mémoires plus lentes ou à des conditions spéciales du système.

BUSRQ* : BUSReQuest*; losque ce signal d'entrée passe à low, les canaux de données et d'adresses ainsi que tous les canaux de commande de sortie deviendront high après le traitement de l'instruction actuelle et le signal BUSAK* deviendra low. Maintenant, un second processeur pourrait prendre en charge l'accès à la mémoire et aux éléments périphériques; ce signal est cependant essentiellement utilisé pour le DMA (DMA= Direct Memory Access, transfert de données très rapide en contournant le processeur).

BUSAK* : BUSAKnowledge*, est le signal de sortie correspondant à BUSRQ*. Un low indique au DMA controller ou au second processeur que tous les signaux de commande et de bus sont high et qu'un accès est maintenant possible.

HALT* : Ce signal de sortie devient low après que le processeur ait exécuté l'instruction en langage-machine HALT. Après cette instruction, le processeur ne fait plus rien d'autre que d'exécuter des NOPs pour assurer le Refresh. Seule une interruption peut à nouveau le "réveiller".

RFSH* : ReFreSH*, ce signal de sortie indique que les sept canaux d'adresses inférieurs contiennent une adresse de Refresh valable. Comme le processeur n'a besoin du bus d'adresses et de données qu'à certains moments, le bus d'adresses peut être utilisé le reste du temps pour rafraîchir les RAMs dynamiques, sans qu'une électronique coûteuse ou des routines spéciales de rafraîchissement soient pour cela nécessaires.

Horloge et alimentation électrique

0 :Phi : Le signal d'entrée phi sert d'horloge pour le processeur. Comme le Z80 est un circuit intégré statique, la fréquence d'horloge peut varier entre 0 Hertz et la fréquence maximale indiquée. La forme du signal d'horloge doit cependant répondre à certaines exigences. Le durée low de ce signal ne doit pas dépasser 2 microsecondes. Cette valeur n'a d'ailleurs qu'un intérêt théorique, puisqu'on essaiera évidemment toujours de fournir au processeur une fréquence d'horloge la plus élevée possible, de façon à obtenir une exécution rapide du programme.

GNP ;Branchement à la masse du processeur.

Vcc ;C'est par cette connexion que le Z80 reçoit son alimentation en courant électrique continu de 5 Volts et environ 150 à 200 milliampères.

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 1.02.00 Le processeur Z80
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.7-desktop/c
Page créée en 291 millisecondes et consultée 1293 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.