Zilog Z80 - Zilog Z80


Aus Wikipedia, der freien Enzyklopädie
Zilog Z80
Zilog Z80.jpg
Ein früher Z80 Mikroprozessor, im Juni 1976 hergestellt nach dem Datumsstempel
produziert Von März 1976 bis zu präsentieren
Gemeinsame Hersteller (s)
Max. CPU - Taktrate 2,5, 4, 6, 8 MHz bis 10 MHz mit CMOS-Variante bis zu 20 MHz und binärkompatible Derivate (von Zilog) bis zu 33 und 50 MHz.
Ein CMOS - Z80 in einem Quad Flat Package
Ein Mai 1976 Werbung für die Zilog Z-80 8-Bit-Mikroprozessor

Die Z80 CPU ist ein 8-Bit - basierter Mikroprozessor . Es wurde von eingeführt Zilog 1976 als Startup - Unternehmen ‚erstes Produkt. Die Z80 wurde von konzipiert Federico Faggin Ende 1974 und entwickelte von ihm und seine damaligen 11 Mitarbeitern bei Zilog von Anfang 1975 bis März 1976, als die ersten voll funktionsfähigen Proben geliefert wurden. Mit den Einnahmen aus der Z80, baute das Unternehmen seine eigenen Chipfabriken und wuchs auf mehr als tausend Mitarbeiter in den folgenden zwei Jahren.

Der Zilog Z80 war eine Software-kompatible Erweiterung und Verbesserung der Intel 8080 und, wie es war in erster Linie angestrebt Embedded - Systemen . Nach den Designern, waren die primären Ziele für den Z80 CPU (und seine optionale Unterstützung und Peripherie - ICs) Produkte wie intelligente Terminals , High - End - Drucker und fortschrittliche Kassen sowie Telekommunikationsgeräte, Industrieroboter und andere Arten von Automatisierungstechnik. Die Z80 wurde auf dem Markt in Juli 1976 offiziell eingeführt und kam weit auch im allgemeinen verwendet wird Desktop - Computer mit CP / M und anderen Betriebssystemen sowie in dem Heimcomputer der 1980er Jahre. Es war auch üblich , in militärischen Anwendungen, Musik - Equipment , wie Synthesizer und in der computerisierten Münzeinwurf Videospiele der späten 1970er und frühen 1980er Jahren, die Spielautomaten oder Videospiel - Arcade - Schränke .

Der Z80 war eine der am häufigsten verwendeten CPUs im Heimcomputermarkt von den späten 1970er bis Mitte der 1980er Jahre. Zilog lizenziert die Z80 auf die US-basierten Synertek und Mostek, die sie mit einem anfänglichen Produktion sowie zu einem europäischen geholfen hatten , zweite Quelle Hersteller, SGS . Das Design wurde auch von mehreren japanischen, osteuropäische und sowjetische Herstellern kopiert. Dies hat die Z80 Akzeptanz auf dem Weltmarkt , da große Unternehmen wie NEC , Toshiba , Sharp und Hitachi begannen das Gerät herzustellen (oder ihr eigenen Z80-kompatiblen Klont oder Design). In der letzten Jahrzehnten Zilog auf dem stetig wachsenden Markt für neu ausgerichtet hat Embedded - Systeme (für die die ursprüngliche Z80 und die Z180 wurden entwickelt) und die neuesten Z80-kompatible Mikrocontroller - Familie, die vollständig pipeline 24-Bit eZ80 mit einer linearen 16  MB - Adresse Bereich wurde neben den einfacheren Z180 und Z80 Produkte erfolgreich eingeführt.

Geschichte

Foto des ursprünglichen Zilog Z80 Mikroprozessor - Design in Verarmungslast nMOS. Insgesamt sterben Größe ist 3545 × 3350 & mgr; m. (Dieser eigentliche Chip 1990 hergestellt)
Das Original der Z80 DIP40 - Chip - Package Pinout

Der Z80 kam zustande , als Physiker Federico Faggin links Intel am Ende des Jahres 1974 zu finden Zilog mit Ralph Ungermann . Bei Fairchild Semiconductor , und später bei Intel , Faggin hatte auf grundlegendem gearbeitet Transistor und Halbleiter - Fertigungstechnologie. Er entwickelte auch die grundlegende Design - Methodik für Speicher und Mikroprozessoren von Intel verwendet und führte die Arbeit auf dem Intel 4004 , die 8080 und mehrere andere ICs. Masatoshi Shima , die Hauptlogik und Transistorebene-Designer der 4004 und die 8080 unter Faggin Aufsicht, traten das Zilog - Team.

Im März 1976 hatte Zilog Z80 sowie ein begleitendes entwickelte Assembler basiertes Entwicklungssystem für seine Kunden, und im Juli 1976 wurde dies offiziell auf den Markt gebracht. (Einige der Z80 Unterstützung und Peripherie - ICs waren in der Entwicklung an dieser Stelle, und viele von ihnen wurden im Laufe des folgenden Jahres gestartet.)

Frühe Z80S wurden hergestellt Synertek und Mostek , bevor Zilog seine eigene Produktionsfabrik fertig hatte, Ende 1976 diese Unternehmen wurden ausgewählt , weil sie das tun konnte , Ionenimplantation erforderlich , um die zu schaffen Depletion- MOSFETs , die die Z80 - Design als Lasttransistoren verwendet in um mit einer einzigen 5 - Volt - Stromversorgung zu bewältigen.

Faggin entwickelt , um den Befehlssatz sein binärkompatibel mit dem Intel 8080 so , dass die meist 8080 - Code, insbesondere das CP / M - Betriebssystem und Intel PL / M - Compiler für 8080 (sowie die generierten Code), auf dem neuen Z80 unmodifizierten laufen würden ZENTRALPROZESSOR. Masatoshi Shima gestaltet die meisten der Mikroarchitektur sowie die Gate - Transistor und Ebenen der Z80 CPU, unterstützt von einer kleinen Anzahl von Ingenieuren und Layout Menschen. CEO Federico Faggin wurde in der Chip - Layout Arbeit tatsächlich stark beteiligt, zusammen mit zwei speziellen Layout Menschen. Faggin arbeitete 80 Stunden pro Woche, um den engen Zeitplan von den Finanzinvestoren gegeben gerecht zu werden, nach sich.

Die Z80 bot viele Verbesserungen gegenüber den 8080:

  • Ein erweiterter Befehlssatz einschließlich Single-Bit - Adressierung, verschiebt / auf Speicher dreht und all anderes als der Akkumulator , drehen Anweisungen für BCD Zahlenketten im Speicher, Programm Looping , Programmzähler relative Sprünge, Blockkopie , Block Eingabe / Ausgabe (I / O ) und Byte - Suchanweisungen. Die Z80 eingearbeitet einen Überlauf - Flag und hatte eine bessere Unterstützung für signierte 8- und 16-Bit - Arithmetik.
  • New IX und IY Indexregister mit Anweisungen für die direkte Basis + Offset Adressieren
  • Ein besseres Interrupt - System
    • Ein automatisches und allgemeines vektorisierten Unterbrechungssystem , Modus 2 , das in erster Linie für Zilog-Linie von Zählern / Timern, DMA und Kommunikations - Controller sowie einem festen Vektor - Interrupt - System, Modus 1 , für einfache Systeme mit minimaler Hardware (mit Modus 0 Wesen die 8080-kompatiblen Modus).
    • Ein Hardwareinterrupt (NMI) , die verwendet werden können , zu reagieren , Situationen oder andere Ereignisse mit hohen Priorität an der Macht nach unten (und damit ein minimalistisches Z80 System einfach ein zweistufiges Interruptschema in implementieren Modus 1 ).
    • Zwei getrennte Registerdateien , die schnell geschaltet werden kann, Reaktion zu beschleunigen, um Interrupts wie schnelle asynchrone Ereignishandler oder ein Multitasking - Dispatcher . Obwohl sie nicht als zusätzliche Register für allgemeinen Code bestimmt waren, wurden sie doch auf diese Weise in einigen Anwendungen verwendet.
  • Weniger Hardware für erforderliche Stromversorgung , Takterzeugung und Schnittstelle zum Speicher und I / O
    • Single 5-Volt - Stromversorgung ( die 8080 benötigte -5 V / + 5 V / + 12 V ).
    • Einphasige 5 V Takt ( die 8080 benötigt , um eine hohe Amplitude (9 bis 12 Volt) nicht überlappenden Zweiphasentakt ).
    • Ein Einbau- DRAM Auffrischungsmechanismus, der ansonsten durch eine externe Schaltung zur Verfügung gestellt werden müssten.
    • Nicht gemultiplexte Busse (die 8080 hatte state-Signale auf den Datenbus gemultiplext).
  • Eine spezielle Reset - Funktion , die nur den Programmzähler löscht , so daß ein einzelne Z80 CPU in einem Entwicklungssystem , wie beispielsweise einen verwendet werden könnte , in-Circuit - Emulator .

Die Z80 hat von der 8080 über und seine Nachkommen, die 8085 , in dem Prozessor - Markt, und wurde zu einem der beliebtesten 8-Bit - CPUs. Vielleicht ist ein Schlüssel für den Erfolg der ersten Z80 war die eingebaute DRAM Refresh und andere Merkmale , die Systeme erlaubt , mit weniger Support - Chips gebaut werden (Z80 Embedded - Systeme verwenden in der Regel statischen RAM und daher nicht über diese Refresh benötigen).

Für das ursprüngliche NMOS - Design, die angegebene obere Grenze erhöhte Taktfrequenz sukzessive von dem einleitenden 2,5  MHz über die bekannten 4 MHz (Z80A) bis 6 (Z80B) und 8 MHz (Z80H). Die NMOS - Version wurde als 10 - MHz - Teil seit den späten 1980er Jahren. CMOS - Versionen wurden mit der genannten oberen Frequenzgrenzen im Bereich von 4 MHz bis 20 MHz für die Version verkauft heute entwickelt. Der CMOS - Versionen erlaubt Low-Power - Schlaf mit internem Zustand beibehalten, NO untere Frequenzgrenze. Das voll kompatibel Derivate HD64180 / Z180 und eZ80 wird für bis zu 33 MHz und 50 jeweils zur Zeit spezifiziert.

Design

Programmiermodell und Registersatz

Eine ungefähre Blockdiagramm des Z80. Es gibt keinen speziellen Addierer zum Offsets oder getrennte Inkrementierer für R, und keine Notwendigkeit für mehr als ein einzelnes 16-Bit-Zwischenregister WZ (obwohl die Inkrementierer Latches auch als 16-Bit-Register verwendet werden, temporäre, in anderen Zusammenhängen). Es ist der PC und die IR-Register, die in einer separaten Gruppe, mit einem abnehmbaren Bussegment plaziert werden, aktualisiert dieses Register mit dem Hauptregisterbank parallel zu erlauben.

Das Programmiermodell und Registersatz ist ziemlich konventionell, letztlich auf der Registerstruktur der Datapoint 2200 (die die verwandte 8086 Familie geerbt auch). Die Z80 wurde als eine Erweiterung der entworfenen 8080 , durch die gleichen Techniker geschaffen, was wiederum eine Verlängerung des betrug 8008 . Die 8008 war im Grunde eine PMOS Umsetzung des TTL-basierten CPU des Datapoint 2200 .

Dieser ursprüngliche Entwurf erlaubt Register H und L in ein Adressenregister HL 16-Bit in dem 8080 gekoppelt werden diese Paarung in BC und DE verallgemeinert wurde, während HL auch verwendbar als 16-Bit - Akkumulator wurde. Die 8080 führte auch den wichtigen 8-Bit - Direktdatenmodus für Akkubetrieb und sofort 16-Bit - Daten für HL, BC und DE Lasten. Darüber hinaus direkte 16-Bit - Kopieren zwischen HL und Speicher war nun möglich, eine direkte Adresse. Die Z80 orthogonalisiert dies ein wenig weiter , indem alle 16-Bit - Registerpaare (einschließlich IX und IY) allgemeinere Zwecke, mit 16-Bit - Kopiervorgang direkt und aus dem Speicher.

Die 16-Bit - IX und IY Register in der Z80 werden in erster Linie als Basisadressenregister bestimmt, wo ein bestimmter Befehl einen konstanten Offset, aber sie sind auch als 16-Bit - Akkumulatoren unter anderem liefert. Der Z80 ist auch einen neuen unterzeichneter Überlauf - Flag und ergänzt die recht einfache 16-Bit - Arithmetik der 8080 mit speziellen Anweisungen für signierte 16-Bit - Arithmetik.

Die 8080 kompatible Register AF, BC, DE, HL als zwei getrennte Banken in der Z80 dupliziert, in dem der Prozessor schnell von einer Bank zur anderen wechseln können; eine Funktion , die für Antworten auf einstufig, mit hohen Priorität Interrupts zu beschleunigen. Ein ähnliches Merkmal war in der Datapoint 2200 wurde aber nie bei Intel implementiert. Das Dual - Register-Set macht Sinn wie die Z80 (wie die meisten Mikroprozessoren zu der Zeit) waren wirklich bei beabsichtigten eingebettet Gebrauch, nicht für Personal Computer, oder die noch zu erfinden Heimcomputer . Nach einer der Designer, Masatoshi Shima war der Marktfokus auf Hochleistungsdruckern, High-End - Kassen und intelligente Terminals, obwohl Ralph Ungermann auch andere Möglichkeiten sahen, wie Computer. Die beiden Registersätze hat sich auch die manuelle Montage-Sprachkodierung, wie stark optimiert für sehr nützlich erwiesen Floating - Point - Arithmetik oder zu Hause Computerspiele.

Register

Das Z80-Register
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (Bitstelle)
Hauptregister
EIN Flaggen AF (Akkumulator und flags)
B C BC
D E DE
H L HL (indirekte Adresse)
alternate Register
EIN' Flaggen' AF " (Akkumulator und flags)
B‘ C‘ BC '
D‘ E‘ DE '
H‘ L‘ HL ' (indirekte Adresse)
Indexregister
IX I ndex X
IY I ndex Y
SP S tack P ointer
andere Register
  ich Ich nterrupt Vektor
  R R efresh Zähler
Programm zähler
PC P rogram C ounter
Statusregister
  S Z - H - P N C F lags

Wie auf den 8080 werden 8-Bit-Register typischerweise 16-Bit-Versionen bereitzustellen gepaart. Die 8080 kompatibel Register sind:

  • AF: 8-Bit - Akkumulator (A) und Flag - Bits (F) tragen, null, minus, Paritäts- / Überlauf, Halbübertrag (für BCD ) und ein Additions / Subtraktions - Flag auch für BCD (gewöhnlich genannt N)
  • BC: 16-Bit-Daten / Adressen-Register oder zwei 8-Bit-Register
  • DE: 16-Bit-Daten / Adressen-Register oder zwei 8-Bit-Register
  • HL: 16-Bit-Akkumulator / Adressenregister oder zwei 8-Bit-Register
  • SP: Stapelzeiger , 16 Bits
  • PC: Programmzähler, 16 Bits

Die neuen Register mit dem Z80 eingeführt sind:

  • IX: 16-Bit-Index oder Basisregister für 8-Bit-Immediate-Offsets oder zwei 8-Bit-Register
  • IY: 16-Bit-Index oder Basisregister für 8-Bit-Immediate-Offsets oder zwei 8-Bit-Register
  • I: Unterbrechungsvektorbasisregister, 8 Bits
  • R: DRAM - Auffrisch - Zähler, 8 Bit ( msb zählt nicht)
  • AF': Wechsel (oder Schatten) Speicher und Flags ( getoggelt in und mit EX AF, AF‘ )
  • BC', DE'Und HL': wechsel (oder Schatten) Register ( getoggelt in und mit EXX )
  • Vier Bits von Interrupt-Status und Interrupt-Modus-Status

Es gibt keinen direkten Zugang zu den alternativen Registern; Stattdessen zwei spezielle Anweisungen, EX AF,AF'und EXX, schaltet jeder von zwei Multiplexer - Flip-Flop . Dies ermöglicht eine schneller Kontextwechsel für Interrupt - Service - Routinen: EX AF, AF'kann allein verwendet werden, für wirklich einfache und schnelle Interrupt - Routinen oder zusammen mit EXXdem ganzen BC, DE, HL Satz zu tauschen. Dies ist immer noch mehrmals so schnell wie die gleichen Register auf dem Schiebestapel . Langsamer, niedrige Priorität oder Multi - Level - Interrupts normalerweise den Stapel Register zu speichern, jedoch.

Das Auffrisch - Register , Rinkrementiert jedes Mal , wenn die CPU einen Opcode (oder Opcode prefix) abruft und hat keine einfache Beziehung mit der Programmausführung. Dies hat manchmal benutzt worden zu erzeugen Pseudo - Zufallszahl in den Spielen, und auch in der Software - Schutzsystemen. Es hat sich auch als „Hardware“ Zähler in einigen Entwürfen beschäftigt gewesen wären; Ein Beispiel hierfür ist die ZX81 , die es Spur der Zeichenpositionen auf dem TV - Bildschirm durch das Auslösen ein Interrupts bei halten läßt herum wickeln (von INT bis A6 verbinden).

Die Unterbrechungsvektorregister , Iwird für den Z80 spezifischen Modus 2 Interrupts (ausgewählt durch die verwendete IM 2Anweisung). Er liefert das hohe Byte der Basisadresse für eine 128-Eintragstabelle von Dienstroutine Adressen , die über einen Index an die CPU gesendet während eines ausgewählten Unterbrechungsbestätigungszyklus; Dieser Index ist einfach der Low - Byte Teil des Zeigers auf die tabellarisch indirekte Adresse an die Service - Routine zeigt. Der Zeiger identifiziert einen bestimmten peripheren Chip oder periphere Funktion oder ein Ereignis, bei dem die Chips in der Regel eineine sogenannten verbunden sind Verkettungs für Prioritätsauflösung. Wie das Refresh - Register hat dieses Register auch manchmal kreativ genutzt worden; im Interrupt - Modi 0 und 1 (oder in einem System unter Verwendung nicht - Interrupts) als einfach einen anderen 8-Bit - Datenregister verwendet werden können.

Die Anweisungen LD A, R und LD A, beeinflusse ich die Z80 Flag-Register, im Gegensatz zu allen anderen LD (Last) Anweisungen. Das Vorzeichen (Bit 7) und Null (Bit 6) Flags gesetzt sind, entsprechend den von den Refresh oder Interrupt-Quellregister geladenen Daten. Für beiden Instruktionen wird das Parity / Überlauf-Flag (Bit 2) entsprechend den aktuellen Zustand des IFF2-Flip-Flops.

Z80 Assemblersprache

Datapoint 2200 und Intel 8008

Die erste Intel 8008 Assembler - Sprache wurde auf eine sehr einfache Basis (aber systematische) Syntax von dem geerbten Datapoint 2200 Design. Diese ursprüngliche Syntax wurde später in eine neue verwandelt, etwas traditionellere, Assemblersprache für diesen gleichen original 8008 - Chip. Etwa zur gleichen Zeit wird die neue Assemblersprache auch die zusätzliche Adressierungsmöglichkeiten in dem fortgeschritteneren Intel 8080 Chip (die 8008 und 8080 aufzunehmen , wurde erweitert , teilte eine Sprachteilmenge , ohne binärkompatible , aber die 8008 war binary kompatibel mit dem Datenpunkt 2200).

In diesem Verfahren wird das mnemonic L, für LOAD , wurde von verschiedenen Abkürzungen der Wörter ersetzt LOAD , STORE und MOVE , vermischte mit anderen symbolischen Buchstaben. Der mnemonic Brief M, für Speicher (bezogen von HL) wurde aus dem Befehlsmnemonik Ausheben ein syntaktisch freistehend zu werden Operanden , während der Register und Kombinationen von Registern wurden sehr inkonsequent bezeichnet; entweder durch einen verkürzten Operanden (MVI D, LXI H usw.), innerhalb des Befehls mnemonischen selbst (LDA, LHLD und so weiter) oder beides zur gleichen Zeit (LDAX B, STAX D und so weiter).

Datapoint 2200 & i8008 i8080 Z80 i8086 / i8088
vor ca. 1973 ca. 1974 1976 1978
LBC MOV B,C LD B,C MOV BL,CL
-- LDAX B LD A,(BC) MOV AL,[BX]
LAM MOV A,M LD A,(HL) MOV AL,[BP]
LBM MOV B,M LD B,(HL) MOV BL,[BP]
-- STAX D LD (DE),A MOV [DX],AL
LMA MOV M,A LD (HL),A MOV [BP],AL
LMC MOV M,C LD (HL),C MOV [BP],CL
LDI 56 MVI D,56 LD D,56 MOV DL,56
LMI 56 MVI M,56 LD (HL),56 MOV byte ptr [BP],56
-- LDA 1234 LD A,(1234) MOV AL,[1234]
-- STA 1234 LD (1234),A MOV [1234],AL
-- -- LD B,(IX+56) MOV BL,[SI+56]
-- -- LD (IX+56),C MOV [SI+56],CL
-- -- LD (IY+56),78 MOV byte ptr [DI+56],78
-- LXI B,1234 LD BC,1234 MOV BX,1234
-- LXI H,1234 LD HL,1234 MOV BP,1234
-- SHLD 1234 LD (1234),HL MOV [1234],BP
-- LHLD 1234 LD HL,(1234) MOV BP,[1234]
-- -- LD BC,(1234) MOV BX,[1234]
-- -- LD IX,(1234) MOV SI,[1234]

Abbildung von vier Syntaxen, Proben von äquivalenten, oder (bei 8086) sehr ähnlich ist, Lade- und Speicherbefehle. Die Z80 Syntax verwendet Klammern um einen Ausdruck, um anzuzeigen, dass der Wert als eine Speicheradresse verwendet werden (wie unten erwähnt), während die 8086-Syntax Klammern anstelle der üblichen Klammern für diesen Zweck verwendet. Sowohl Z80 und 8086 verwenden, um die Zeichen +, um anzuzeigen, daß eine Konstante zu einem Basisregister hinzugefügt wird, um eine Adresse zu bilden,

neue Syntax

Da Intel ein Copyright auf ihrer Versammlung Mnemotechnik beansprucht, eine neue Montag Syntax hatte für den Z80 entwickelt werden. Dieses Mal wird ein systematischer Ansatz verwendet:

  • Alle Register und Registerpaar werden explizit mit ihrem vollständigen Namen bezeichnet
  • Klammern werden durchweg um „Speicherinhalte auf“ (konstante oder variable Zeigeradresse dereferenzierenden) mit Ausnahme einiger Sprunganweisungen verwendet.
  • Alle Lade- und Speicherbefehle verwenden die gleiche Mnemonik, LD, für LOAD (eine Rückkehr zum simplen Datapoint 2200 Vokabular); andere übliche Befehle wie etwa ADD und INC, verwenden die gleiche mnemonische unabhängig vom Modus oder Operandengröße-Adressierung. Dies ist möglich, da die Operanden selbst genug Information tragen.

Diese Grundsätze machte es einfach Namen und Formen für alle neuen Z80 Anweisungen zu finden, sowie orthogonalizations von alten, wie LD BC,(1234).

Neben Namen Unterschiede und trotz einer gewissen Diskrepanz in der Grundregisterstruktur, die Z80 und 8086 Syntax ist nahezu isomorph für einen großen Teil der Anweisungen. Nur ganz oberflächliche Ähnlichkeiten (wie das Wort MOV, oder die Buchstaben X, für erweiterte Register) gibt es zwischen den 8080 und 8086 Assemblersprachen, obwohl 8080 - Programme können in 8086 Objektcode mit einem speziellen Assembler oder übersetzt in 8086 Assembler - Sprache zusammengesetzt werden durch ein Übersetzer - Programm.

Befehlssatz und Codierung

Die Z80 verwendet 252 aus den verfügbaren 256 Codes als einzelnes Byte Opcodes ( "root instruction"); werden die vier verbleibenden Codes in großem Umfang als verwendet opcode Präfixe CB und ED ermöglichen , zusätzliche Anweisungen und DD oder FD wählt IX + d oder IY + d jeweils (in einigen Fällen ohne Verschiebung d) anstelle von HL:. Diese Regelung gibt dem Z80 eine große Anzahl von Permutationen von Anweisungen und Register; Zilog stuft diese in 158 verschiedenen „Befehlstypen“, 78 , von denen die gleichen wie die des Intel sind 8080 (ermöglicht den Betrieb der meisten 8080 - Programme auf einem Z80). Die Zilog Dokumentation weitere Gruppen Anweisungen in die folgenden Kategorien:

  • 8-Bit-Rechen- und Logikoperationen
  • 16-Bit-Arithmetik
  • 8-Bit-Last
  • 16-Bit-Last
  • Bit gesetzt, zurückgesetzt und Test
  • Anruf, Rückkehr und Neustart
  • Wechsel, Blocktransfer und Such
  • Allzweck-Arithmetik und CPU-Steuerung
  • Eingangs- und Ausgangs
  • Springen
  • Drehen und Verschiebung

Keine Multiplikationsbefehle sind im Original Z80 zur Verfügung. Verschiedene Größen und Varianten von Ergänzungen, Verschiebungen und dreht etwas haben unterschiedliche Auswirkungen auf die Fahnen, weil die meisten der Flagge ändernden Eigenschaften des 8080 kopiert wurden. Jedoch wird die Paritäts Merkerbit P des 8080 (Bit 2) P / V (Paritäts- / Überlauf) in dem Z80 bezeichnet, da es den zusätzlichen Zweck einer Überlaufanzeige Zweierkomplement dient, eine fehlende Funktion in den 8080. Arithmetische Anweisungen für der Z80 eingestellt es Überlauf, um anzuzeigen, anstatt Parität, während bitweise Anweisungen immer noch als Paritäts Flag verwenden. Dieser neue Überlauf-Flag für alle neuen Z80-spezifische 16-Bit-Operationen (ADC, SBC) sowie für die 8-Bit-Arithmetikoperationen verwendet wird, obwohl die 16-Bit-Operationen von den 8080 geerbt (ADD, INC, DEC) nicht beeinflussen sie. Auch das Bit 1 der Flag-Register (ein Reservebit auf den 8080) wird als ein Flag verwendet, N, anzeigt, ob der letzte Arithmetikbefehl ausgeführt anzeigt war eine Subtraktion oder Addition. Die Z80-Version des DAA-Befehls überprüft den N-Flag und verhält sich entsprechend, so dass eine (hypothetische) Subtraktion später gefolgt von DAA wird ein anderes Ergebnis auf einer alten 8080, als auf der Z80 ergeben. Dies würde jedoch wahrscheinlich fehlerhafter Code auf den 8080 sein, wie DAA für die Zugabe definiert wurde nur auf dem Prozessor.

Der Z80 hat sechs neue LD Anweisungen, die die DE, BC, und SP Registerpaare aus dem Speicher und Ladespeicher aus diesen drei Registerpaaren im Gegensatz zu den 8080 Wie auf den 8080 Ladeanweisungen die Flags beeinflussen nicht laden können (mit Ausnahme der Zweck I und R-Register Lasten). Ein Ergebnis eines regelmäßigen Codierung (gemeinsam mit dem 8080) ist, dass jede der 8-Bit-Register können von sich selbst (zB LD A, A) geladen werden. Dies ist effektiv ein NOP.

Im Gegensatz zu den 8080 kann die Z80 auf eine relative Adresse springen (jr anstelle von jp) eine signierten 8-Bit-Verschiebung verwenden. Nur die Null und Carry-Flags für diese neuen Zwei-Byte-JR Anweisungen getestet werden. Ein Zwei-Byte-Befehl für das Programm Looping spezialisiert ist ebenfalls neu in der Z80. DJNZ (Decrement Sprung, wenn nicht Null) nimmt eine signierte 8-Bit-Verschiebung als unmittelbare Operanden. Das B-Register wird dekrementiert. Wenn das Ergebnis nicht Null ist, dann springt die Programmausführung an die Adresse des PCs relativ plus der Verschiebung. Die Fahnen bleiben unverändert. Zur Durchführung einer äquivalente Schleife auf einer 8080 würde erfordern separates Dekrement und springt (zu einer Zwei-Byte-Absolutadresse) Anweisungen, und das Flag-Register geändert werden würde.

Das Indexregister (IX / IY) Anweisungen können für den Zugriff auf Daten organisierten in festen heterogenen Strukturen (wie beispielsweise nützlich sein , Aufzeichnungen ) oder an festen Offsets relativ zu einer variablen Basisadresse (wie in der rekursiven Stapelrahmen ) und können auch die Codegröße reduzieren , indem die Entfernungs müssen für mehrere kurze Anweisungen unter Verwendung von nicht-indizierte Register. Obwohl jedoch diese Geschwindigkeit in einigen Zusammenhängen speichern kann , wenn im Vergleich zu lang / complex „equivalent“ Sequenzen von Operationen einfacher, sie viele zusätzlichen CPU - Zeit entstehen ( zB 19 T-Zustände eine indizierte Speicherstelle zuzugreifen vs. so wenig wie 11 zuzugreifen HL den gleichen Speicher verwenden und Erhöhungsschritte in dem nächsten Punkt). So kann zum einfachen oder linearen Zugriffe von Daten, IX und IY neigen dazu , langsamer zu sein. Dennoch können sie in Fällen nützlich sein , wo die ‚Haupt‘ Register alle belegt sind, durch die Beseitigung der Notwendigkeit Register zu sichern / wiederherzustellen. Ihre offiziell nicht dokumentierte 8-Bit - Hälften (siehe unten) können besonders nützlich in diesem Zusammenhang für sie weniger Abschwächung erleiden als ihre 16-Bit - Eltern. In ähnlicher Weise Anweisungen für 16-Bit - Additionen sind nicht besonders schnell (11 Takte) in der ursprünglichen Z80; dennoch, sie etwa doppelt so schnell wie durchgeführt wird , die gleichen Berechnungen mit 8-Bit - Operationen, und ebenso wichtig sind sie reduzieren Nutzung registrieren.

Die 10-jährigen-neueres mikro Z180 Design könnte zunächst mehr „Chipfläche“ leisten, eine etwas effizientere Implementierung ermöglicht (einen breiteren Verwendung von ALU , unter anderem); Ähnliches kann für die gesagt werden , Z800 , Z280 und Z380 . Allerdings war es nicht , bis die vollständig pipeline eZ80 im Jahr 2001 ins Leben gerufen wurde , dass diese Anweisungen schließlich etwa wie wurden zyklus effizient , wie es technisch möglich ist , sie zu machen, das heißt angesichts den Z80 - Codierungen mit der Fähigkeit kombiniert liest ein 8-Bit zu tun oder in jedem Taktzyklus schreiben.

undokumentierten Befehle

Die Indexregister, IX und IY, wurden als flexible 16 - Bit - Zeiger bestimmt sind , verbessern die Fähigkeit Speicher zu manipulieren, Stack - Frames und Datenstrukturen. Offiziell wurden sie als 16-Bit nur behandelt. In Wirklichkeit wurden sie als ein Paar von 8-Bit - Registern, in der gleichen Weise wie das HL - Register implementiert, die zugänglich entweder als 16 Bit oder separat als H igh und L ow - Register. Auch die binären Opcodes (Maschinensprache) waren identisch, aber von einem neuen Opcode Präfix vorangestellt . Zilog veröffentlichte die Opcodes und zugehörige Mnemonics für die beabsichtigten Funktionen, aber dokumentieren nicht die Tatsache , dass jeder Opcode , die Manipulation der H und L - Register erlaubt war gleichermaßen gültig für die 8 - Bit - Abschnitte der IX und IY Register. Als Beispiel wird der Opcode 26h durch eine sofortige Bytewert (LD H, n) und anschließend diesen Wert in das H - Register laden. Vor diesem Zwei-Byte - Befehl mit dem Opcode - Präfix des Registers IX, DD, würde stattdessen in den höchstwertigen 8 Bits des Registers IX führt , dass mit dem gleichen Wert geladen. Eine bemerkenswerte Ausnahme hierzu wären Anweisungen ähnlich wie LD H, (IX + d) die Verwendung von sowohl der HL und IX oder IY Registern in dem gleichen Befehl machen; in diesem Fall wird der DD - Präfix nur auf den (IX + d) Teil des Befehls verwendet.

Es gibt einige andere auch nicht dokumentierte Anweisungen. Undokumentierte oder illegale Opcodes werden nicht von der Z80 erkannt und haben verschiedene Effekte, von denen einige nützlich sind. Da sie jedoch nicht Teil der formalen Definition des Befehlssatzes sind, verschiedene Implementierungen des Z80 sind nicht die gleiche Art und Weise für jeden Menschen ohne Papiere Opcode arbeiten garantiert.

Bugs

Die OTDRAnweisung entspricht nicht der Z80 - Dokumentation. Sowohl die OTDRund OTIRAnweisungen sollen den Übertrag (C) Flag unmodifizierten verlassen. Die OTIRAnweisung korrekt arbeitet; jedoch während der Ausführung der OTDRAnweisung, nimmt der Übertrags - Flag der Ergebnisse eines unechten zwischen dem Akkumulator (A) und dem letzten Ausgang der OTDRVergleichsanweisung.

Beispielcode

Die folgende Z80 Montag Quellcode ist für ein Unterprogramm namens memcpydass kopiert ein Block von Datenbytes mit einer gegebenen Größe von einem Ort zu einem anderen. Wichtig: der Beispielcode nicht einen bestimmten Fall nicht behandeln , wo der Zielblock die Quelle überlappt; ein fataler Fehler. Der Beispielcode ist äußerst ineffizient, sollte verschiedene Befehlstypen zu veranschaulichen, anstatt Best Practices für die Geschwindigkeit. Insbesondere hat der Z80 eine einzige Anweisung , die die gesamte Schleife ausgeführt wird ( LDIR). Der Datenblock wird ein Byte zu einem Zeitpunkt kopiert und die Datenbewegung und Schleifenlogik verwendet 16-Bit - Operationen. Beachten Sie, dass der zusammengesetzte Code ist binär-kompatibel zu den Intel 8080 und 8085 CPUs.

                             
                 
                 
                 
                 
                 
                 
                 
                 
                 
 
 1000            
 1000            
 1000 78         
 1001 B1         
 1002 C8         
 1003 1A         
 1004 77         
 1005 13         
 1006 23         
 1007 0B         
 1008 C3 00 10   
 100B
 ; memcpy --
 ; Copy a block of memory from one location to another.
 ;
 ; Entry registers
 ;      BC - Number of bytes to copy
 ;      DE - Address of source data block
 ;      HL - Address of target data block
 ;
 ; Return registers
 ;      BC - Zero

             org     1000h       ;Origin at 1000h
 memcpy      public
 loop        ld      a,b         ;Test BC,
             or      c           ;If BC = 0,
             ret     z           ;Return
             ld      a,(de)      ;Load A from (DE)
             ld      (hl),a      ;Store A into (HL)
             inc     de          ;Increment DE
             inc     hl          ;Increment HL
             dec     bc          ;Decrement BC
             jp      loop        ;Repeat the loop
             end

Die Befehlsausführung

Jeder Befehl wird in den Schritten ausgeführt , die üblicherweise bezeichnet werden Maschinenzyklen (M-Zyklen), die jeweils zwischen drei und sechs Taktperioden (T-Zyklen) erfolgen kann. Jeder M-Zyklus entspricht in etwa einen Speicherzugriff oder im internen Betrieb. Viele Befehle tatsächlich während der M1 des Endes nächsten Instruktion , die als bekannt ist fetch / execute überlappen .

Beispiele für typische Anweisungen (R = Lesen, W = Schreiben)
Gesamt

M-Zyklen

Anweisung M1 M2 M3 M4 M5 M6
1 INC BC Opcode
2 ADD A,n Opcode n
3 ADD HL,DE Opcode intern intern
4 SET b,(HL) Präfix Opcode R (HL), set W (HL)
5 LD (IX+d),n Präfix Opcode d n, fügen W (IX + d)
6 INC (IY+d) Präfix Opcode d hinzufügen R (IY + d), inc W (IY + d)

Die Z80 Maschinenzyklen werden von einer internen sequenziert Zustandsmaschine , die jeden M-Zyklus baut aus 3, 4, 5 oder 6 T-Zyklen , je nach Kontext. Dies vermeidet umständliche asynchrone Logik und macht die Steuersignale in einem weiten Bereich von Taktfrequenzen konsistent verhalten. Es bedeutet auch , dass eine höhere Frequenz als Kristall muss (etwa 2-3 mal höher) ohne diese Unterteilung von Maschinenzyklen verwendet werden. Es bedeutet nicht , strengere Anforderungen an die Speicherzugriffszeiten , da eine hohe Auflösung Uhr genauere Steuerung der Speicher - Timings ermöglicht und so Speicher kann mit der CPU in einem größeren Ausmaß, so dass eine effizientere Nutzung der verfügbaren Speicherbandbreite aktiv parallel.

Ein zentrales Beispiel dafür ist , dass für opcode holen , die Z80 kombiniert zwei volle Taktzyklen in eine Speicherzugriffsperiode (das M1-Signal). Im Z80 dauert dieses Signal für einen relativ größeren Teil der typischen Befehlsausführungszeit als bei einer Konstruktion wie die 6800 , 6502 oder ähnlichen, wobei dieser Zeitraum typischerweise typischerweise 30-40% eines Taktzyklus dauern würde. Mit Speicherchip Erschwinglichkeit (dh der Zugriffszeit rund 450-250 ns in den 1980er - Jahren) in der Regel eines möglichst schnelle Zugriffszeit bestimmt , bedeutete dies , dass solche Konstruktionen zu einem deutlich längeren Taktzyklus gesperrt wurden (dh niedrigere interne Taktgeschwindigkeit) als die Z80.

Speicher war im allgemeinen langsam im Vergleich zu den Zustandsmaschine Unterzyklen (Taktzyklen) in der heutigen Mikroprozessoren verwendet. Der kürzeste Maschinenzyklus , die sicher in Embedded - Design verwendet werden könnten , ist daher oft von Speicherzugriffszeiten begrenzt worden ist , nicht durch die maximale CPU - Frequenz (insbesondere so während der Heimcomputer - Ära). Allerdings hat diese Beziehung langsam in den letzten Jahrzehnten, insbesondere in Bezug geändert SRAM ; ohne Cache, Single-Cycle - Designs wie die eZ80 deshalb vor kurzem viel aussagekräftiger geworden.

Der Inhalt der Auffrisch-Register R wird zusammen mit einem Auffrisch-Steuersignal auf der unteren Hälfte des Adressbus ausgesendet wird, während die CPU-Decodierung und den abgerufenen Befehl ausführt. Während Aktualisieren, um die Inhalte des Unterbrechungs-Register mich auf der oberen Hälfte des Adressbus ausgesendet.

kompatible Peripheriegeräte

Zilog eingeführt , um eine Anzahl von Peripherieteilen für die Z80, Z80 , das alle der Interrupt - Handhabungssystem und I / O-Adreßraum unterstützen. Dazu zählen die Zähler / Timer Channel (CTC), die SIO (Serial Input Output), die DMA (Direct Memory Access), die PIO (Parallel Input-Output) und die DART (Dual Asynchronous Receiver Transmitter). Da die Produktlinie entwickelt, Low-Power, High-Speed - und CMOS - Versionen dieser Chips eingeführt.

Wie die 8080, 8085 und 8086 - Prozessoren, aber im Gegensatz zu Prozessoren wie der Motorola 6800 und MOS Technology 6502, Z80 und 8080 verfügt über eine separate Steuerleitung und Adressraum für E / A - Anweisungen. Während einig Z80-Computer wie der Osborne 1 verwendeten „Motorola-style“ Speicher - Eingabe / Ausgabe - gemappt Geräte, in der Regel des E / A - Raum verwendet wurde , eine der viele peripheren Zilog - Chips mit dem Z80 kompatibel zu adressieren. Zilog I / O - Chips unterstützt den neuen Modus 2 Interrupts des Z80 , die für eine große Anzahl von Peripheriegeräten Interruptverarbeitung vereinfacht.

Die Z80 wurde als für 16-Bit (64 KB) Speicheradressierung und 8-Bit (256 - Ports) I / O-Adressierung offiziell beschrieben. Alle I / O - Befehle behaupten tatsächlich die gesamten 16-Bit - Adressbus. OUT (C), und IN reg reg, (C) stellt den Inhalt der gesamten 16 - Bit - Register BC auf dem Adreßbus; OUT (n), A und IN - A, (n) stellt den Inhalt des A - Registers auf b8-b15 des Adreßbusses und n für b0 bis b7 des Adreßbusses. Ein Designer konnte wählen , die gesamten 16 - Bit - Adressbus auf I / O - Operationen , um zu dekodieren den Vorteilen dieser Funktion zu übernehmen, oder die hohe Hälfte des Adreßbusses verwenden Subfeatures des E / A - Geräts auszuwählen. Diese Funktion wird auch Dekodierung Hardware - Anforderungen verwendet worden , um zu minimieren, wie in dem Amstrad CPC / PCW und ZX81 .

Zweite Quellen und Derivate

zweite Quellen

Mostek ‚s Z80: MK3880
NEC ‚s μPD780C Z80 zweit stammen von NEC
Sharp ‚s LH0080 Sharp Version des Z80
Die T34BM1 , ein sowjetischer Z80 - Klon
Toshiba TMPZ84C015; ein Standard - Z80 mit mehrer Z80-Familie Peripherie auf dem Chip in einem QFP - Paket
Der Z80 kompatibel Hitachi HD64180
Z180 in einem PLCC - Paket
Die Z80 kompatibel R800 in QFP
Die Z280 in einem PLCC - Paket

Mostek , der die erste Z80 für Zilog produziert, bot sie als Second-Source als MK3880. SGS-Thomson (jetzt STMicroelectronics ) war ein Second-Source auch mit ihrem Z8400. Sharp und NEC entwickelten zweite Quellen für die NMOS Z80, die LH0080 und μPD780C ist. Die μPD780C wurde im Sinclair verwendet ZX80 und ZX81 , original Versionen des ZX Spectrum und mehrere MSX - Computer und in Musiksynthesizer wie Oberheim- OB-8 und andere. Der LH0080 wurde in verschiedenem Home - Computer und PC hergestellt von Sharp und anderen japanischen Herstellern, darunter Sony MSX - Computer und eine Anzahl von Computern in der verwendeten Sharp MZ - Serie.

Toshiba einen CMOS -Version, die TMPZ84C00, die vermutlich (aber nicht überprüft) das gleiche Design von Zilog auch für seine eigene CMOS Z84C00 verwendet werden. Es gab auch Z80-Chips , hergestellt von Goldstar (jetzt LG ) und die BU18400 Reihe von Z80-Klone (einschließlich DMA, PIO, CTC, DART und SIO) in NMOS und CMOS hergestellt von ROHM Electronics .

In Ost - Deutschland , einen nicht lizenzierten Klon der Z80, bekannt als das U880 , hergestellt wurde. Es war sehr beliebt und wurde verwendet Robotron ‚s und VEB Mikroelektronik Mühlhausen der Computersysteme (wie die KC85 -Reihe) und auch in vielen selbstgemachten Computersystemen. In Rumänien konnte ein weiterer unlizenzierte Klon gefunden werden, mit dem Namen MMN80CPU und produziert Microelectronica , verwendet in Heimcomputern wie TIM-S, HC, COBRA.

Auch mehrere Klone von Z80 wurden in der geschaffenen Sowjetunion , ansehnlichen das Wesen T34BM1 , auch genannt КР1858ВМ1 (Parallelbetrieb des sowjetischen 8080-Klon Kr580vm80a ). Der erste Markierung wurde in der Vorproduktion Serie verwendet, während der zweite für eine größere Produktion eingesetzt werden mußte. Obwohl durch den Zusammenbruch des Sowjet Mikroelektronik in den späten 1980er Jahren, gibt es viele weiteren T34BM1s als КР1858ВМ1s.

Derivate

Kompatibel mit der ursprünglichen Z80
  • Hitachi entwickelt , um die HD64180 , ein mikrocodierter und partiell dynamisch Z80 in CMOS, mit auf dem Chip - Peripheriegeräten und einen einfachen MMU einen 1 geben  MB - Adressraumes. Es wurde später von Zilog zweiten stammen, zunächst als Z64180, und dann in der Form des leicht modifizierte Z180 das Busprotokoll besitzt und Timings besser Z80 periphere Chips angepasst. Z180 wurde unter Zilog Namen beibehalten und weiterentwickelt, die neuesten Versionen auf den voll statischen S180 / L180 Kern mit sehr geringer Leistungsaufnahme und EMI (Rauschen) basiert.
  • Toshiba entwickelt , um die 84 pin Z84013 / Z84C13 und die 100 pin Z84015 / Z84C15 Reihe von „intelligenten Peripheriecontroller“, im Grunde gewöhnliche NMOS und CMOS Z80 Kerne mit Z80 - Peripheriegeräten, dog timer, Einschaltrücksetzung beobachten und Zustandsgenerator auf dem gleichen Chip warten . Hergestellt von Sharp sowie Toshiba. Diese Produkte sind heute zweite stammen von Zilog.
  • Die 32-Bit - Z80 kompatibel Zilog Z380 , eingeführt 1994, ist vor allem in Telekommunikationsanlagen eingesetzt.
  • Zilog Z80 vollständig pipeline kompatibel eZ80 mit einer 8/16/24-Bit Wortlänge und einem linearen Raum 16 MB - Adresse wurde im Jahr 2001 eingeführt , es in der Ausführung mit auf dem Chip vorhanden SRAM oder Flash - Speicher , sowie mit integrierten Peripheriegeräten. Eine Variante hat auf dem Chip MAC (Media Access Controller) und verfügbare Software umfasst einen TCP / IP - Stack . Im Gegensatz zu dem Z800 und Z280, gibt es nur ein paar zusätzliche Anweisungen (hauptsächlich LEAs , PEAs und variable-Adresse 16/24-Bit - Lasten), aber Befehle werden statt zwischen 2 und 11 mal so Taktzyklus effizient wie auf dem ausgeführte Original - Z80 (mit einem mittleren Wert von etwa 3-5 mal). Es wird derzeit bis zu 50 MHz für Taktfrequenzen spezifiziert.
  • Kawasaki entwickelt , um die binärkompatibel KL5C8400 , die als Taktzyklus effizient wie das Original Z80 etwa 1,2-1,3 mal und kann mit bis zu 33 MHz getaktet werden. Kawasaki produziert auch die KL5C80A1x Familie, die Peripheriegeräte sowie einen kleinen RAM auf dem Chip hat; es ist etwa als Taktzyklus effizient wie die eZ80 und kann mit bis zu 10 MHz (2006) getaktet werden.
  • Der NEC uPD9002 war ein Hybrid-CPU kompatibel mit Z80 und x86-Familien.
  • Die chinesischen Aktionen Semiconductor Audio-Prozessorfamilie von Chips (ATJ2085 und andere) enthält eine Z80-kompatiblen MCU zusammen mit einem 24-Bit-dedizierten DSP-Prozessor. Diese Chips werden in vielen MP3- und Media-Player-Produkten verwendet.
  • Die T80 (VHDL) und TV80 (Verilog) synthetisierbaren weiche Kerne sind von OpenCores.org zur Verfügung.
Nicht kompatibel
  • Der Toshiba TLCS 900 Serie von hochvolumigen (meist OTP ) Mikrocontroller auf der Z80 basieren; sie die gleichen grundlegenden BC teilen, DE, HL, IX, IY Struktur registrieren und weitgehend die gleichen Anweisungen, aber sind nicht binär - kompatibel, während die vorherige TLCS 90 Z80-kompatibel.
  • Die NEC 78K Mikrocontroller der Serie auf dem Z80 basieren; sie teilen die gleiche grundlegende BC, DE, HL Registerstruktur und hat ähnliche (aber anders genannt) Anweisungen; kompatibel nicht binär.
Teilweise kompatibel
Nicht mehr produziert
  • Die ASCII Corporation , R800 war ein schneller 16-Bit - Prozessor in MSX verwendet TurboR Computer; es war Software, Hardware , aber nicht kompatibel mit dem Z80 (Signal - Timing, pinout & Funktion der Stifte unterscheiden sich von dem Z80).
  • Zilog des NMOS Z800 und CMOS Z280 waren 16-Bit - Z80-Implementierungen (vor dem HD64180 / Z180 ) mit einem 16 MB MMU Adreßraum ausgelagert; sie hinzugefügt viele orthogonalizations und Adressierungsmodi zu dem Befehlssatz Z80. Minicomputer Funktionen - wie Benutzer- und System Modi, Multi - Prozessor - Unterstützung, auf dem Chip MMU, auf dem Chip Befehls- und Daten - Cache - Speicher und so weiter - wurden eher als mehr Komplexität zu sehen als als Funktionalität und Unterstützung für die ( in der Regel Elektronik orientiert) Embedded Systems Designer, es machte es auch sehr schwer Befehlsausführungszeiten vorherzusagen.
  • Bestimmte Arcade - Spiele wie Pang / Buster Bros verwenden einen verschlüsselten „Kabuki“ Z80 CPU , hergestellt von VLSI Technology , wo der Entschlüsselungsschlüssel in seinen internen gespeichert ist batteriegepufferten Speicher , Piraterie und illegale Bootleg Spiele zu vermeiden.

bemerkenswerte Anwendungen

Desktop-Computer

Das Z80A wurde als die CPU in einer Reihe von Spielkonsolen, wie diese verwendet ColecoVision .

In dem späten 1970er und frühen 1980er Jahre wurde die Z80 in einer großen Anzahl von relativ anonymen geschäftsorientierten Maschinen mit dem verwendeten CP / M - Betriebssystem, eine Kombination, die den Markt zu der Zeit beherrscht. Vier bekannte Beispiele von Z80 Geschäft Computern mit CP / M sind die Heathkit H89 , das tragbare Osborne 1 , die Kaypro Serie und die Epson QX-10 . Research Machines hergestellt , um die 380Z und 480Z Microcomputer die mit einer dünnen Ethernet - Typ vernetzt wurden LAN und CP / NET 1981. Andere Hersteller solcher Systeme enthalten Televideo , Xerox ( 820 Bereich ), Sanyo (MBC-1000/1100/1200), Toshiba (T100) und eine Reihe von Unbekannten Firmen wie Altos und Adler . Einige Systeme verwendeten Multi-Tasking Betriebssystem - Software (wie MP / M ) , um den einen Prozessor zwischen mehreren zu teilen gleichzeitigen Benutzern .

In den USA, in dem Radio Shack TRS-80 , im Jahr 1977 eingeführt, ebenso wie die Modellen II, III, 4, und das vorgeschlagene Modell V, verwendet , um die Z80. Eine Reihe von TRS-80 - Klone wurde von Unternehmen wie Lobo (hergestellt Max-80 ), LNW ( LNW-80 ) und Hong Kong-basierten EACA ( Video Genie und Derivate TRZ-80, PMC-80, und Dick Smith System 80 ). In den Niederlanden ein TRS-80 Modell III Klon wurde hergestellt , die CP / M - Fähigkeit hatte; dies war der Aster CT-80 . Die Coleco Adam Hybrid Computer / Spielkonsole nutzen könnte Colecovision Spiele sowie CP / M. Ein früher Z80 Computer zu Hause war der Exidy Sorcerer . Im Vereinigten Königreich, Sinclair Research verwendet , um die Z80 und Z80A in seinen ZX80 , ZX81 und ZX Spectrum Heimcomputern. Diese wurden in den USA von vermarkteten Timex als Timex / Sinclair - Serie. Amstrad verwendet , um die Z80A in ihrer Amstrad CPC und PCW reicht und ein früher Computer in Großbritannien, die Nascom 1 und 2 verwendeten es auch. Der Z80 sehr viele Heimcomputer versorgen die Einhaltung der MSX in Japan, Asien, Standard und in geringerem Maße, Europa und Südamerika (etwa 5 Millionen allein in Japan). Auch in Japan Sharp verwendet , um die Z80 in seiner MZ und X1 - Serie. Der in Hongkong ansässige VTech machte seine Laser 200 Heimcomputer mit einem Z80. In Deutschland rief ein Apple-CP / M - Hybrid die Basis 108 gepaart , um eine Z80 mit einem 6502. Ähnlich der Commodore 128 einen Z80 - Prozessor neben seinen vorge MOS Technology 8502 Prozessor für CP / M - Kompatibilität. Anderer 6502 Architektur - Computer auf dem Markt zu der Zeit, wie die BBC Micro , Apple II , und den 6510 basierend Commodore 64 , könnte die Verwendung des Z80 mit einer externen Einheit, eine Plug-in - Karte oder einer Erweiterung macht ROM - Kassette . Die Microsoft Z-80 Softcard für den Apple II war eine besonders erfolgreiche Add-On - Karte und ein von Microsofts weniger Hardware - Produkten der Epoche.

Im Jahr 1981 Multitech (später werden Acer ) eingeführt , um den Microprofessor mich , ein einfaches und kostengünstiges Trainingssystem für den Z80 - Mikroprozessor. Derzeit ist es noch hergestellt und vertrieben von Flite Electronics International Limited in verkauft Southampton, England .

A Sinclair ZX Spectrum , die einen Z80 Clocked bei 3,5 MHz verwendet ,

Embedded-Systeme und Unterhaltungselektronik

Z80-basierte TK - Anlage . Der Z80 ist die dritte Chip von links nach rechts des Chip mit dem handgeschriebenen White - Label auf sich.

Der Zilog Z80 ist seit langem ein beliebtes Mikroprozessor in gewesen eingebetteten Systemen und Mikrocontroller - Cores, wo es heute weit verbreitet bleibt. Die folgende Liste enthält Beispiele für solche Anwendungen der Z80, einschließlich Anwendungen in der Unterhaltungselektronik - Produkten.

Industrie

  • Das IBM PC-XT ‚s Festplatten - Controller, die eigentlich eine IBM Anpassung der Xebec 1410 waren SASI - Controller, sondern auf einem PC-XT - Bus, keinen SASI Bus.
  • Bürogeräte wie Matrixdrucker , Faxgeräte , Anrufbeantworter und Kopierer sind bekannte Beispiele. Das Original Hewlett-Packard Deskjet - Drucker verwendet einen Z180.
  • Industrielle speicherprogrammierbare Steuerungen (SPS) die Z80 in CPU - Module für Zusatzfunktionen , wie beispielsweise analogen I / O, oder in Kommunikationsmodulen.
  • Es hat sich auch in Robotern, zum Beispiel für die Spracherkennung und Low - Level - Aufgaben wie verwendet worden Servo Prozessoren in Bestückungsmaschinen.
  • RS-232 - Multiplexern eine große Anzahl von alten Stil „Anschlussklemmen “ , um Minicomputer oder Großrechner verwendet Arrays von Z80 CPU / SIO Platten.
  • Anwendungen wie TV - Broadcast - Bildmischer haben die Z80 für Embedded verwendet Echtzeit Unteraufgaben.
  • Es wird auch in verwendet Seagate Technology 's und anderen Herstellern Festplatten .
  • Kreditkarten Konsolen Steuern der Kraftstoffpumpen verwendet Z80 CPU und PIOs (US - Patente 4.930.665, 4.962.462 und 5.602.745).
  • Einzelhandel Point-of-Sale - Kreditkartenterminals hergestellt von VeriFone verwendet , um den Z80 - Prozessor.
  • Mehrere PC - Erweiterungskarten , wie Adaptecs SCSI - Boards, haben die Z80 / Z180 und periphere Chips im Einsatz.
  • Z80 / Z180 / Z380 wurde verwendet , Telekommunikationsgeräte , wie beispielsweise Telefon - Switches und verschiedene Arten von Modem .
  • Die Stofor Nachrichtenvermittlung, umfangreich von Banken und Maklern in Großbritannien wurde Z80 basiert.
  • Kassen und Speicher-Management-Systeme
  • Hausautomation, drahtlose Sprinklerzentrale und Wireless Mesh mit dem N8VEM Open-Source-Homebrew-System.
  • Breathalyzer Ausrüstung durch die Strafverfolgungsbehörden verwendet.

Unterhaltungselektronik

  • Die NC100 / NC200 und Cambridge Z88 Notebooks im Vereinigten Königreich gemacht verwendet , um die Z80.
  • Amstrad in Großbritannien produziert eine frühe PDA die gerufene PenPad oder PDA600, die sich um einen 14 - MHz - Z180 gebaut wurde.
  • Die Sinclair ZX80 , ZX81 und ZX Spectrum einen Z80 - Prozessor hatte, ZX80 und ZX81 hatte den Prozessor bei 3,25 MHz getaktete während der ZX Spectrum bei 3,5 MHz getaktete wurde.
  • Hong Kong ansässige VTech verwendet Z80S in einer Reihe von Sub-Notebook und Lerncomputer. Die letzte und am weitesten fortgeschrittenen davon waren die Laser PC4, PC5 und PC6.
  • Sharp produziert eine Reihe von Taschencomputer basierend auf kundenspezifischen Prozessoren , die Z80 kompatibel waren. Beispiele hierfür sind PC-1500 , PC-1600 und PC-E220 .
  • Verschiedene wissenschaftliche und Graphikrechner verwenden , um die Z80, einschließlich der Texas Instruments TI-73 , TI-81 , TI-82 , TI-83 , TI-83 + , TI-84 + , TI-85 und TI-86 - Serie.
  • Z80 wurde oft in verwendet Münz- Arcade - Spiele , und wurde allgemein als die Haupt - CPU, Ton oder verwendet Video Coprozessoren . Pac-Man Arcade - Spiele verfügen über einen einzigen Z80 als Haupt - CPU und Frogger verwendet zwei Z80 CPUs. Galaxian und Arcade - Spiele wie King & Balloon und Überprüfen Mann , dass die Verwendung Namco Galaxian boardset auch eine Z80 als die Haupt - CPU verwenden. Andere Namco lizenzierte Arcade - Spiele wie Galaga und andere Spiele, die die Verwendung Namco Galaga boardset wie Bosconian , Dig Dug , Xevious und Super - Xevious drei Z80 Mikroprozessoren verwenden parallel zur Haupt - CPU, Grafik ausgeführt wird , und Ton. Später Sega - System 16, 18, X und Y; Capcom CPS1 und CPS2; SNK Neo Geo MVS verwenden 68000 und Z80 Kombination als Co - Prozessoren oder CPUs Sound.
  • Es wurde auch in Heimvideospielkonsolen wie die gefunden ColecoVision , Sega Master System und Sega Game Gear Videospielkonsolen , als Audio - und Mehrzweck Koprozessor in der Sega Genesis und als Audio - Controller und Co-Prozessor auf dem Motorola 68000 im SNK Neo-Geo .
  • Nintendo ‚s Game Boy und Game Boy Color Handheld-Systeme verwendet , um einen 8080-derived Prozessor mit einigen Z80 Anweisungen hinzugefügt (CB - Präfix) sowie einzigartigen Auto-Inkrement / Dekrement - Adressierungsart. Die CPU war eine Sharp Corporation LR35902 bei 4,19 MHz in den ursprünglichen und Pocket - Modellen und 8,39 MHz im Farbmodell ausgeführt wird . Dieser Prozessor wurde später in dem mitgelieferten Game Boy Advance / SP / Micro eine neue Rolle als Co-Prozessor für die Abwärtskompatibilität mit Game Boy / Farbspielen (außer Micro) Aufnahme und Vermächtnis hinzuzufügen 8-Bit - Sounds die digitalen Proben ergänzen in Game Boy Advance - Spiele.
  • Die Ericsson GA628 Handy nutzt die Z80 - CPU.
  • In Russland, Z80 und seine Klone wurden in multifunktionales Festnetz, mit Anrufer-ID verwendet.
  • All S1 MP3 - Player Art digitaler Audio - Player verwendet den Befehlssatz Z80.

Musikinstrumente

Siehe auch

Fußnoten

Verweise

Weiterführende Literatur

Externe Links