Un Processeur Né d'une Dissidence chez Intel
Le Z80 est conçu entre 1974 et 1976 par Federico Faggin et Masatoshi Shima, deux ingénieurs qui venaient de quitter Intel après avoir travaillé sur le 8080. Leur objectif était simple : créer un processeur plus puissant, plus accessible, et moins cher que l'Intel 8080 qu'il devait concurrencer directement.
Commercialisé en juillet 1976 par Zilog, le Z80 devient rapidement omniprésent. Son succès repose sur un choix stratégique brillant : il est compatible avec le jeu d'instructions du 8080 tout en ajoutant de nombreuses instructions supplémentaires, des registres alternatifs, et surtout — il intègre son propre contrôleur de rafraîchissement DRAM, ce qui simplifie considérablement les circuits externes et réduit le coût des systèmes.
Capacités Techniques du Z80
Pour un processeur 8 bits conçu dans les années 70, l'architecture du Z80 est remarquablement riche. Voici ses caractéristiques principales :
| Caractéristique | Valeur |
|---|---|
| Architecture | 8 bits (bus données), 16 bits (bus adresses) |
| Fréquence d'origine | 2,5 MHz (NMOS) → jusqu'à 20 MHz (versions CMOS modernes) |
| Mémoire adressable | 64 Ko (espace direct) |
| Ports I/O | 256 ports d'entrée/sortie indépendants |
| Jeu d'instructions | ~158 instructions officielles, 252 opcodes |
| Registres principaux | A, F, B, C, D, E, H, L + banque alternative A', F', B', C', D', E', H', L' |
| Registres d'index | IX, IY (16 bits) — accès mémoire avec déplacement |
| Modes d'interruption | 3 modes (IM 0, IM 1, IM 2) |
| Transistors | 8 500 (version originale NMOS) |
| Toujours en production | Oui — eZ80 (Zilog/Andes Technology) jusqu'à 50 MHz |
Ce qui distingue le Z80 de ses contemporains, c'est sa double banque de registres. On peut basculer instantanément entre le jeu principal et le jeu alternatif via les instructions EX AF, AF' et EXX — une technique très utilisée pour les routines d'interruption rapides, sans avoir à sauvegarder les registres sur la pile.
Gestion de la Mémoire : 64 Ko et Au-delà
Le bus d'adresses 16 bits du Z80 permet d'accéder directement à 64 Ko de mémoire. À l'époque, c'était considérable. Aujourd'hui, cela paraît dérisoire — mais l'architecture a su s'adapter grâce à des techniques de pagination mémoire (banking).
La pagination mémoire en pratique
Le principe est simple : on divise l'espace 64 Ko en fenêtres fixes, et on commute dynamiquement les banques de mémoire physique dans ces fenêtres via un registre de pagination externe. Le ZX Spectrum 128K, par exemple, utilisait cette technique pour dépasser la limite des 64 Ko avec des banques de 16 Ko sélectionnables.
- ROM — généralement mappée en bas de l'espace (0x0000-0x3FFF)
- RAM paginée — banques commutables dans la fenêtre haute
- I/O séparé — 256 ports distincts de l'espace mémoire (instructions
INetOUT)
La RAM et la ROM en 2025
Sur un projet Z80 moderne, on utilise typiquement :
- SRAM statique (62256 — 32 Ko) : rapide, sans rafraîchissement, interfaçage trivial
- EEPROM / Flash (AT28C256, SST39SF040) : pour stocker le programme permanent
- RAM paginée avec un GAL ou un simple latch 74HCT273 pour les projets nécessitant plus de 64 Ko
Le Z80 intègre nativement un signal de rafraîchissement DRAM (broche /RFSH), ce qui lui permettait à l'époque de piloter directement de la DRAM dynamique sans circuit externe dédié — un avantage décisif sur ses concurrents.
Pourquoi s'Intéresser au Z80 en 2025 ?
1. La meilleure porte d'entrée à l'assembleur
Le Z80 est unanimement reconnu comme l'un des processeurs les plus pédagogiques pour apprendre l'assembleur. Son jeu d'instructions est cohérent, bien documenté, et les opérations bas niveau (manipulation de bits, pile, registres) y sont immédiatement visibles. Comprendre le Z80, c'est comprendre comment fonctionne réellement un ordinateur.
2. Le rétro-computing, une communauté vivante
La scène rétro Z80 est particulièrement active : émulateurs, kits matériels, demos, jeux homebrew pour ZX Spectrum, MSX et Amstrad CPC. Des compétitions de demoscène intègrent encore régulièrement des catégories Z80. La documentation accumulée depuis 50 ans est inépuisable.
3. L'embarqué et les systèmes critiques
Le Z80 et son descendant eZ80 (Zilog, jusqu'à 50 MHz, bus 24 bits) sont encore utilisés dans des équipements industriels, des calculatrices (Texas Instruments TI-84+), des systèmes de contrôle et des appareils médicaux. La robustesse et la prévisibilité du Z80 en font un choix conservateur et fiable pour les environnements critiques.
4. Construire son propre ordinateur from scratch
Le Z80 permet de construire un ordinateur complet fonctionnel avec une poignée de circuits intégrés standard. C'est impossible avec un ARM ou un x86 modernes. Cette accessibilité matérielle est précisément ce qui le rend si précieux pour comprendre l'informatique dans sa globalité.
Facilité de Programmation : L'Assembleur Z80 en Pratique
L'assembleur Z80 est réputé plus accessible que celui du 6502 ou du 8086. Les raisons sont structurelles :
- Mnémoniques intuitives —
LD A, B(charge B dans A),ADD A, C,JP NZ, label - Orthogonalité relative — les paires de registres BC, DE, HL s'utilisent de manière symétrique
- Registres d'index IX/IY — accès mémoire avec déplacement signé (
LD A, (IX+5)), pratique pour manipuler des structures - Instructions bloc —
LDIRcopie une zone mémoire entière en une seule instruction (équivalent d'unmemcpy) - Instructions de recherche —
CPIRcherche un octet dans un bloc mémoire
Exemple : copier 256 octets en Z80
LD HL, source ; HL pointe sur la source
LD DE, destination ; DE pointe sur la destination
LD BC, 256 ; BC = nombre d'octets
LDIR ; copie et incrémente jusqu'à BC = 0
Quatre instructions pour un memcpy. Sur x86, il faut une boucle REP MOVSB ou du code supplémentaire pour gérer les adresses.
Les outils de développement disponibles
Assembleurs gratuits
- NASM — universel, supporte Z80 via modules
- z80asm — dédié Z80, simple et efficace
- Pasmo — multiplateforme, très utilisé dans la scène ZX Spectrum
- SjASMPlus — assembleur avancé avec macros, populaire demoscène
- TASM — historique, encore très utilisé
Compilateurs C pour Z80
- SDCC (Small Device C Compiler) — open source, mature, génère du code Z80 optimisé
- Z88DK — kit complet C + assembleur, bibliothèques pour ZX Spectrum, MSX, CP/M
- HiTech C — compilateur commercial historique, encore fonctionnel sous émulation
Les environnements de développement
- VS Code + extension Z80 Assembly — coloration syntaxique, autocomplétion, débogage via émulateur
- DeZog — débogueur Z80 pour VS Code, s'interface avec les émulateurs ZEsarUX et CSpect
- CP/M — système d'exploitation 8 bits qui tourne nativement sur Z80, disponible sous émulation ou sur vrai matériel
Le Matériel Recommandé pour Démarrer
Kits de développement Z80
| Kit | Prix indicatif | Pour qui | Points forts |
|---|---|---|---|
| RC2014 Pro | ~80-120€ | Intermédiaire / expert | Modulaire, extensible, large communauté, CP/M natif |
| Z80-MBC2 | ~40-60€ | Débutant / intermédiaire | Simple, Arduino Nano intégré pour le bootstrap, CP/M, BASIC |
| SC126 (SCC) | ~70-90€ | Intermédiaire | Compact, CP/M, ROM configurable, bien documenté |
| Breadboard Z80 maison | ~15-25€ | Curieux / pédagogique | Comprendre chaque signal, total contrôle |
Le programmateur de mémoire : TL866II+ / T48
Pour programmer les EEPROM et EPROM qui contiennent le code Z80, le programmateur universel MiniPRO TL866II+ (ou son successeur T48) est la référence incontournable :
- Compatible avec des milliers de puces : AT28C64, AT28C256, SST39SF040, 27C256, 27C512...
- Logiciel minipro open source disponible sous Linux/macOS/Windows
- Prix : 30-50€ selon la version (T48 recommandée, plus rapide et plus de puces supportées)
- Indispensable si vous travaillez avec des EPROM à quartz UV ou des EEPROM parallèles
Alternative logicielle : l'émulation
Pour débuter sans matériel, les émulateurs FUSE (ZX Spectrum), OpenMSX (MSX) ou RunCPM (CP/M sur Arduino/ESP32) permettent de développer et tester du code Z80 immédiatement, avec débogueur intégré. C'est le chemin le plus rapide pour un premier programme fonctionnel.
Le Z80 en 2025 : Un Investissement en Compréhension
Le Zilog Z80 n'est pas un processeur à utiliser à la place d'un ESP32 ou d'un Raspberry Pi pour vos projets modernes. Ce n'est pas son rôle. Son intérêt est ailleurs : il offre une fenêtre directe sur le fonctionnement intime des ordinateurs, sans les couches d'abstraction qui masquent la réalité du matériel sur les architectures modernes.
Apprendre à programmer le Z80, c'est comprendre la pile d'appel, les interruptions, la gestion mémoire, les registres — des connaissances qui restent pertinentes quelle que soit l'architecture. Pour un électronicien ou un développeur embarqué, c'est une formation fondamentale qui change durablement la façon de concevoir du logiciel et du matériel.
Et pour peu qu'on soit sensible à l'histoire de l'informatique, souder un Z80 sur un PCB et le voir exécuter ses premiers octets reste une expérience difficile à égaler.