CODINGAMSLIVE ★ AMSLIVE n°01 - ELECTRONIQUE : LE Z80 ★

AMSLIVE n°01 - Z80Coding Amslive

Nous allons parallèlement traiter du Z80 dans un cadre général et dans celui de son utilisation sur CPC. Ainsi, L'assembleur tu maîtriseras, la machine tu comprendras, plus aucun bug tu n 'auras, et enfin tu jouiras.

Etudions les différentes broches du Z80 :

Pas de commentaires sur CLK (Clock : horloge), GND et+ 5V!
Les bus d'adresses (A0-A15 : 16 bits, donc 64 K adressable) et de données (D0-D7) sont à 3 états : l'état haute impédance permet d'en prendre le contrôle, comme si le Z80 n'y était pas connecté.

Le contrôle des bus.

L'entrée BUSREQ (bus request) force le Z80 à mettre les bus, MREQ, IORQ, RD et WR dans l'état haute impédance après le cycle machine en cours.
La sortie BUSACK (bus acknowledge) indique que les lignes sus-citées sont en haute impédance et peuvent être utilisées.

Le contrôle du System.

Il ne s'agit que de sorties.

MREQ (Memory REQuest) indique une opération de lecture ou d'écriture en mémoire et que l'adresse sur le bus est valable.
IORQ (IO ReQuest) indique une opération I/O (entrée/sortie) et que l'octet de poids faible sur
le bus d'adresses est valable. Il a un autre sens quand M1 est actif.
RD (ReaD) : le Z80 veut lire une donnée d'un périphérique ou de la mémoire. Le circuit concerné peut placer la donnée sur le bus.

WR (WRite) : indique à la mémoire ou au périphérique adressé que la donnée présente sur le bus est valable.
M1 (Machine cycle î) : avec MREQ*, indique que le cycle horloge courant est consacré à une identification d'op-code.
Avec IORQ, indique un cycle de reconnaissance d'interruption. Ce dernier cas est identifié par le Gâte Array qui rend alors son signal INT* inactif. En effet, la demande d'interruption est maintenue jusqu'à ce qu'elle soit prise en compte.
RFSH (ReFreSH) indique que les 7 bits de poids faible du bus d'adresse peuvent être utilisés comme adresse de rafraîchissement des mémoires dynamiques. MREQ* est alors actif.

Le contrôle du Z80.

La sortie HALT* indique que le Z80 a exécuté une instruction HALT et attend une interruption (non maskable ou maskable si autorisée). Pendant ce temps, il exécute des NOP pour maintenir le rafraîchissement de la mémoire.

Les autres signaux sont des entrées

WAIT indique au Z80 que la mémoire ou le périphérique n'est pas prêt à être accédé. Ceci était nécessaire à l'époque ou les circuits (mémoires par exemple) étaient trop lents. Mais sur CPC, son utilisation est tout autre. Le CRTC a besoin d'accéder à la mémoire à une fréquence très précise et d'une manière prioritaire. BUSREQ* est à proscrire : s'il permet de prendre le contrôle à la fin d'un cycle machine (cycle M), ces cycles ne contiennent pas tous le même nombre de périodes d'horloge (cycle T). Par contre, WAIT est analysé à la fin de chaque cycle T, et on peut ainsi interrompre l'exécution d'une instruction.

INT (INTerrupt request) informe d'une demande d'interruption. Le Z80 y répond à la fin de l'instruction courante si les interruptions sont autorisées et si BUSREQ* est inactif.

NMI (Non-maskable interrupt, active sur front bas) est pris en compte à la fin de l'instruction, prioritairement par rapport à INT*, mais seulement si BUSREQ* est inactif. Le PC est alors sauvegardé et prend la valeur &66.

RESET réinitialise le Z80 : Mode d'interruption 0, PC, I et R à 0, interruptions autorisées.

AMSLIVE n°1, page 22

★ ANNÉE: ???
★ AUTEUR: MADRAM

Page précédente : AMSLIVE n°01 - Rasters

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » AMSLIVE n°08 - 3D - BRESEN MAD (2/2)
» Coding » AMSLIVE n°20 - Crtc Bien Digerer
» Coding » AMSLIVE n°01 - Balayage Video
» Coding » AMSLIVE n°12 - Vu Metre
» Coding » AMSLIVE n°15 - la Vie en 16
» Coding Src's » LZ48/LZ49 Z80 cruncher decruncher
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 367 millisecondes et consultée 3816 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.