Z80 : une exécution pas-à-pas qui fonctionne

Magazine
Marque
Hackable
Numéro
28
Mois de parution
janvier 2019
Spécialité(s)


Résumé

Dans le précédent article, nous avons fait connaissance avec le signal /WAIT et son utilité lorsqu'il est associé à une action découlant de l'inspection du signal /M1. Nous avons rapidement développé un croquis Arduino nous permettant de lier ces deux signaux et avons eu l'impression que ceci fonctionnait à merveille puisque l'exécution des instructions par le Z80 semblait effectivement ralentie. Faisons face ensemble à la triste réalité, aux limitations d'une carte comme l'Arduino UNO et surtout, à la façon de régler le problème...


À la fin du précédent article se trouvait une capture d'écran d'un oscilloscope présentant deux signaux : le signal /M1 généré par le Z80 et le signal /WAIT produit par nos soins. Ce qu'on peut y voir n'est absolument pas le résultat que nous visions. En effet, notre objectif était de passer /WAIT à l'état bas dès lors que le signal /M1 passait à la masse, puis après une courte pause faire revenir /WAIT à la tension d'alimentation pour laisser le Z80 poursuivre son exécution.

z80_probleme

Un oscilloscope, même d'entrée de gamme, est un avantage certain pour identifier les problèmes. On peut voir ici clairement que notre signal /WAIT (en bleu, en bas) ne descend pas à la masse assez rapidement en réaction au front descendant du signal /M1 du Z80 (en jaune, en haut). Le Z80, lui, n'a absolument aucun problème à ressortir de son état d'attente dès que /WAIT passe à l'état haut. Conséquence : plus d'une instruction est exécutée avant que le Z80 ne passe en...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous