RETRODREAMSAMIGA & SPECTRUM
Menü

← Alle Chips

z80.chip

DIP-40 · Z8400A PS · Zeichnung, kein Foto

Zilog Z80Zilog

1976

Zilog Z80

Der 8-Bit-Prozessor der ganzen Sinclair-Familie, gebaut vom Team, das den Intel 8080 entworfen hatte.

Der Z80, den Zilog im Juli 1976 herausbrachte, ist ein 8-Bit-Prozessor, kompatibel zum Intel 8080, entworfen von Federico Faggin und Masatoshi Shima. Er oder ein kompatibler Chip steckt in allen Sinclair-Rechnern vom ZX80 bis zum +3, und erst 2024 lief seine Produktion aus.

Bit intern
8
Bit Bus
8
MHz höchstens
20
Transistoren
8.500
adressierbar
64 KB

Die Männer des 8080

Federico Faggin hatte bei Intel die Arbeit am 4004 und am 8080 geleitet, und Masatoshi Shima war der wichtigste Entwickler der Logik und der Transistoren beider Chips gewesen. 1974, als Intel Mikroprozessoren als Beiwerk zum Verkauf von Speicher behandelte und mitten in einer Rezession, forderte Faggin Ralph Ungermann auf, mit ihm eine Firma zu gründen. Faggins letzter Tag bei Intel war Halloween, der 31. Oktober 1974.

Die Firma hatte noch nicht einmal einen Namen, als Exxon Enterprises, der Technologie-Investmentarm des Ölkonzerns, einen Bericht über sie las und im Juni 1975 mit 500.000 Dollar einstieg. Shima kam im Februar dieses Jahres dazu und brachte aus seiner Erfahrung mit NEC-Minicomputern die Idee mit, zwei Registersätze zu haben, um schnell auf Interrupts zu reagieren.

Der Name entstand in einem Gespräch zwischen Faggin und Ungermann: Zilog, was sie als „das letzte Wort in integrierter Logik“ erklärten. Die ersten Z80-Muster kamen am 9. März 1976 von Mostek, die offizielle Markteinführung war im Juli. Nach Faggins eigenen Worten arbeitete er 80 Stunden pro Woche, um den Zeitplan der Investoren einzuhalten.

Ein verbesserter 8080

Der Z80 führt die meisten 8080-Programme ohne Änderung aus, auch das Betriebssystem CP/M, und erbte damit auf einen Schlag eine ganze Softwarebibliothek. Den Rest der Platine vereinfacht er aber stark: Er braucht nur eine Versorgung mit 5 V (der 8080 verlangte −5, +5 und +12 V), einen einfachen einphasigen Takt, und er frischt den dynamischen Speicher (DRAM) selbst auf, was sonst eigene Schaltungen erforderte.

Er bringt auch Befehle mit, für die Programmierer dankbar waren: Operationen auf einzelnen Bits, relative Sprünge, Kopieren und Durchsuchen von Speicherblöcken (LDIR, CPIR), 16-Bit-Arithmetik mit Vorzeichen und zwei Indexregister, IX und IY. Das Interruptsystem bekam drei Modi (0, kompatibel zum 8080; 1, der immer an dieselbe Adresse springt; und 2, mit einer Adresstabelle) und einen nicht maskierbaren Interrupt, den NMI.

Das Innere, erklärt

Ein Register ist eine Schublade im Prozessor, viel schneller als der Speicher. Der Z80 hat den Akkumulator A (in dem gerechnet wird), die Flags F (die anzeigen, ob das Ergebnis null war, ob es einen Übertrag gab usw.) und die Paare BC, DE und HL, die entweder zwei 8-Bit-Zahlen oder eine 16-Bit-Adresse aufnehmen. Dazu kommen IX und IY, der Stapelzeiger SP und der Programmzähler PC.

Shimas Trick: AF, BC, DE und HL gibt es doppelt, es existiert ein zweiter „Schatten“-Satz AF', BC', DE' und HL'. Die Befehle EX AF,AF' und EXX tauschen beide Sätze in vier Taktzyklen. Gedacht für Interrupts, dienten sie am Ende als zusätzliche Schubladen: Das ROM des ZX81 nutzt die Schattenregister, um mit den 40-Bit-Gleitkommazahlen seines BASIC zu arbeiten.

Der Z80 adressiert 64 KB Speicher und, getrennt davon, 256 Ein- und Ausgabeports. In der Praxis legt er bei jeder Ein- oder Ausgabe alle 16 Bit auf den Adressbus, und ZX81 und Amstrad CPC nutzen das obere Byte, um Dekodierlogik zu sparen.

Eine Überraschung für alle, die ihn als 8-Bit-Prozessor sehen: Die Recheneinheit hat 4 Bit, und jede 8-Bit-Addition wird in zwei Hälften erledigt.

Das R-Register und der Sinclair-Trick

Es gibt zwei ungewöhnliche Register. I enthält den oberen Teil der Adresse der Interrupttabelle für Modus 2. R ist der Refresh-Zähler: Er zählt bei jedem aus dem Speicher gelesenen Befehl 1 hoch, zählt nur in den unteren 7 Bits, und direkt nach jedem Befehlslesen legt der Z80 I und R auf den Adressbus, um das DRAM aufzufrischen.

Sinclair machte daraus eine Grafikkarte. Beim ZX80 und ZX81 „führt“ der Prozessor den Bildschirmspeicher selbst „aus“: Die Videoschaltung liest jeden Zeichencode, reicht dem Z80 einen NOP-Befehl (nichts tun) und kombiniert im folgenden Refresh-Zyklus das Register I (das auf die Zeichenmuster im ROM zeigt), den Zeichencode und die Zeilennummer, um aus dem ROM das Muster zu holen, das angezeigt wird. Jede Textzeile endet mit einem HALT-Befehl.

R dient als Positionszähler auf dem Bildschirm. Beim ZX81 ist der Interrupt-Pin mit der Adressleitung A6 verbunden: Wenn Bit 6 von R von 1 auf 0 wechselt, wird ein Interrupt ausgelöst, und das System weiß, dass eine Zeile zu Ende ist. Weniger Bauteile, weniger Kosten und ein Prozessor, der mit Zeichnen beschäftigt ist, daher die Modi FAST und SLOW.

Beim Spectrum zeichnet die ULA das Bild, aber R und I zählen weiter. Viele Spiele nutzen R als Quelle für Zufallszahlen. Und wenn ein Programm das Register I zwischen 0x40 und 0x7F setzt, fallen die Refresh-Adressen in den Speicher, den sich der Prozessor mit der ULA teilt, und auf dem Bildschirm erscheint „Schnee“ (der snow effect).

Varianten, Kopien und Klone

Beim ursprünglichen NMOS stieg die Höchstgeschwindigkeit nach und nach: 2,5 MHz beim Z80, 4 MHz beim Z80A (der im ZX81 und im Spectrum, die ihn unter dem Limit betreiben), 6 MHz beim Z80B und 8 MHz beim Z80H, mit einer 10-MHz-Version Ende der 80er. Die CMOS-Versionen gehen bis 20 MHz und können den Takt anhalten, ohne den Zustand zu verlieren, was NMOS nicht länger als einige tausend Zyklen erlaubt.

Für Zweitquellen lizenzierte Zilog den Chip an Mostek (MK3880) und SGS (Z8400); Sharp baute den LH0080 und NEC den µPD780C. NEC kam per Reverse Engineering dahin und einigte sich später in einem Patentstreit mit Zilog, wodurch NEC eine Lizenz bekam. Der NEC D780C-1 ist der Prozessor der meisten Spectrum und der meisten ZX80. Dazu kamen unlizenzierte Kopien wie der U880 aus der DDR und der sowjetische T34BM1.

Zilog und NEC sind in den dunklen Ecken nicht ganz gleich: Nach SCF und CCF stehen die Bits 3 und 5 der Flags, die das Handbuch nicht dokumentiert, beim einen anders als beim anderen. Kaum ein Programm hängt davon ab, aber CPU-Testprogramme finden den Unterschied.

Am 15. April 2024 kündigte Zilog das Ende des klassischen Z80 an, Bestellungen wurden bis zum 14. Juni 2024 angenommen: 48 Jahre nach der Markteinführung. Weiter gibt es den eZ80, einen kompatiblen Nachfahren.

Wo du ihn sonst noch findest

In den 70ern und 80ern beherrschte der Z80 mit CP/M die Bürorechner, vom Osborne 1 bis zu den Kaypro. Bei den Heimcomputern steckt er in den TRS-80, in Amstrad CPC und PCW, im MSX und im SAM Coupé, der einen Z80B mit 6 MHz nutzt. Auch der Cambridge Z88, der tragbare Rechner, den Clive Sinclair 1988 baute, nachdem er die Marke an Amstrad verkauft hatte, hat einen Z80, in CMOS-Ausführung.

Bei den Spielen: der Pac-Man-Automat, das ColecoVision, das Master System und das Game Gear von Sega. Das Mega Drive hat einen Z80 neben dem 68000, mit 8 KB eigenem Speicher; er dient dazu, Master-System-Spiele laufen zu lassen, und wird oft für den Sound eingesetzt, ist aber nicht nur ein Soundchip.

Und in den Grafikrechnern von Texas Instruments, angefangen beim TI-81 von 1990 mit einem Z80 bei 2 MHz bis zu den TI-83 und TI-84 Plus, die 2025 noch verkauft werden. Die neueren TI-84 Plus CE nutzen schon den eZ80.

Wusstest du…

  1. Um Kopien zu erschweren, baute das Team sechs „Fallen“ in den Chip: Transistoren, die so verändert waren, dass sie sich anders verhielten, als der Entwurf vermuten ließ. Laut Shima erzählte ihm später ein NEC-Ingenieur, dass sie das beim Reverse Engineering sechs Monate gekostet habe.

  2. Shima war dafür bekannt, mitten in einer Besprechung im Kopf auszurechnen, wie viel Chipfläche eine Idee belegen würde, und sie abzulehnen, wenn sie nicht passte.

  3. Angeblich war das X in ZX80 „die geheime Zutat“, die zum Z80 hinzukam.

  4. Die Register IX und IY lassen sich in Hälften nutzen (IXH, IXL, IYH, IYL). Zilog hat das nie dokumentiert, aber es funktioniert bei den Z80 jener Zeit, und Programmierer nutzten es ungeniert.

  5. Bei den CMOS-Z80 sendet der undokumentierte Befehl OUT (C),0 den Wert 255 statt 0.

  6. Bit 7 des R-Registers ändert sich nie von selbst: Nur der Befehl LD R,A ändert es.

  7. Weil beim Spectrum das Byte auf dem Bus während eines Interrupts fast immer 0xFF ist, aber nicht garantiert, füllen Spiele mit Modus 2 eine Tabelle mit 257 gleichen Bytes, damit sie immer an derselben Stelle landen.

  8. Er war 48 Jahre in Produktion, von 1976 bis 2024.

Wo er steckt