Home Computer x86 Prozessoren Site Map counter

Der Intel 8085 - Intels kleine Niederlage

In meiner losen Reihe von „Fehlschlägen“ von Intel, also Prozessoren, die von Intel entwickelt wurden, aber die Erwartungen nicht erfüllten kommt mit diesem Artikel der krönende Abschluss. Bisher erschienen schon:

 

Einleitung

Im Jahre 1974 brachte Intel den ersten vollwertigen 8-Bit Prozessor Intel 8080 heraus. "Vollwertig", weil Intel schon zwei Jahre früher einen rudimentären 8 Bit Prozessor als Auftragsarbeit für den Terminalhersteller CTC als Terminaltcontroller konstruiert hatte. Der 8008 war aber eine einfache Erweiterung des 4 Bit Prozessors 4004/4040 auf 8 Bit, um Zeichen zu verarbeiten. Er war aber weder besonders schnell, noch einfach zu programmieren und er konnte nur 16 KByte RAM adressieren. Der Intel 8080 - die Nummer entspricht einer Teilenummer bei Intel, wobei jede Serie (statische RAM-Bausteine, dynamische RAM-Bausteine, EPROM) eine eigene erste Ziffer erhielt. Dadurch dass der Intel 8080 in den ersten PC wie dem Altair 8800 oder IMSAI 8080 steckte, wurde der Prozessor zu einem großen Erfolg.

I8085Die Konkurrenz

Doch Intel war nicht der einzige Prozessorhersteller. Nahezu zeitgleich hatte Motorola den MC 6800 Prozessor entwickelt. Motorola hatte ein anderes Design. Der Prozessor hatte viel weniger Befehle und Register, führte die Befehle aber schneller aus. Motorola hatte in der Firmenphilosophie anfangs die gleiche Einstellung wie Intel: Man glaubte nicht daran das nun viele Computer mit diesen Prozessoren erscheinen würden, sondern sah sie eher in Steuergeräten wie einer Ampelsteuerung. Motorola hatte aber vor allem die gleiche Einstellung hinsichtlich Preispolitik wie Intel: Sie verkauften den Prozessor hochpreisig. In der Geschwindigkeit und dem Adressbereich waren beide Prozessoren vergleichbar, allerdings nicht im Takt. Motorolas Prozessor begann einen Takt bei jedem Flankenwechsel, sodass er bei gleicher externer Frequenz doppelt so schnell war. In der Praxis spielte das aber keine Rolle, weil der Maximaltakt auch nur halb so hoch wie beim 8080 war. Intel hatte aufgrund des Anfangsvorteils - Erster gewesen zu sein - in den ersten zwei Jahren viel Erfolg mit dem 8080 Prozessor. Die Entwicklungskosten sollen nach nur fünf Monaten wieder eingespielt worden sein. Dieser Erfolg begründet sich vor allem darauf, das jeder der einen neuen Computer entwarf, sich die schon existierenden, als Vorbild nahm, zumindest aber mit denen Erfahrungen hatte und so den gleichen Prozessor wählte.

1976 änderte sich diese komfortable Situation. Zwei ehemalige Mitarbeiter von Intel und Motorola waren dafür verantwortlich. Chuck Peddle war Angestellter von Motorola. Am MC 6800 hatte er wenig mitgearbeitet. Er war an dem Ein-/Ausgabesystem des 6800 beteiligt. Seine Arbeit lag bei den den Peripheriebausteinen des 6800 wie den 6820, wo auf seine Erfindungen mehrere Patente angemeldet wurden. Vergebens versuchte Peddle das Management von Motorola zu überzeugen, das sie den Prozessor viel billiger anbieten müssten. Der Motorola 6800 kostet anfangs 300 Dollar. Seiner Meinung nach würde bei einem Schwellenpreis von 25 Dollar die Nachfrage deutlich ansteigen, sodass man trotz geringerer Gewinnspanne durch die Stückzahl viel mehr Gewinn machen könnte.

Er scheiterte jedoch mit dem Vorschlag bei Motorola. 1974 wechselte Chuck Peddle daher mit einem kompletten Team von Prozessorentwicklern zu MOS Technologies. Dort schuf er den Prozessor den er für einen Massenmarkt für tauglich erachtete. Der 6502 - sein Vorgänger 6501 wurde aus Copyright-gründen gleich nach Erscheinen wieder vom Markt genommen - basierte auf dem Design des 6800. Um die Kosten zu reduzieren um das 25 Dollar Preisziel zu erreichen, vereinfachte er es, achtete aber auf die Hardwarekompabilität zum 6800. 1975 wurde der neue Chip auf der Computermesse WESCON präsentiert - und für 25 US-Dollar verkauft. Das war damals unglaublich. Der Intel 8080 kostete bei Markteinführung 375 US-Dollar und der MC 6800 300 USD. Als der MOPS 6502 erstmals angeboten wurde, betrug der Listenpreis für den 8080 Prozessor immer noch 175 Dollar. Der 6502 war nicht der erste Chip von MOS Technologies, vorher gab es den 6501, der kompatibler zum 6800 war. Das ergab jedoch Patentrechtsprobleme. Motorola schickte ein Schreiben ihrer Anwälte und so änderte man das Design und die Pinbelegung ab, sodass ein 6502 nicht einen 6800 in einer Schaltung ersetzen konnte.

Geschaffen wurde die Architektur des 8080 von Federico Faggin. Faggin war schon bei dem früheren Prozessor 4004 beteiligt. Bei dem 4004 stellte er das Design fertig, das Ted Hoff anfing. Doch der 8080 war "seine Architektur". Er bekam die Erlaubnis des Managements im Sommer 1972 und hatte im November 1972 das Design fertiggestellt. Das Management sah damals die Prozessoren nicht als besonders dringlich an. Es wären "Low Volume" Bausteine, die man eigentlich nur weiter verfolgte, weil jeder Mikroprozessor noch eine Nachfrage nach weiteren Bausteinen generierte. Faggin wurde nach der Fertigstellung des 8080 Designs zwar befördert, damit aber von der Entwicklung abgeschnitten. Er resignierte und verließ Intel im November 1974 und gründete mit Venturekapital des Ölmultis Exxon die Firma Zilog. Diese Firma sollte Intels stärkster Konkurrent im 8-Bit-Bereich werden. Zilogs erstes Produkt war ein von Faggin entwickelter Prozessor, der voll softwarekompatibel zum 8080 war, aber viele neue Befehle verfügte. Vor allem aber beseitigte er die Mängel, die der 8080 für den Hersteller des Computers hatte.

Mängel des 8080 - Ursprung des 8085

Für den Hardwarebauer waren drei Dinge am 8080 zu verbessern:

Die Konkurrenten machten dies besser. Alle kamen mit nur einer Versorgungsspannung aus, alle benötigten keine zwei Zusatzbausteine für ein Minimalsystem. Der Z80 hatte zudem ein besseres Interruptsystem und erzeugte das Refreshsignal für RAM-Bausteine. Damit vereinfachte sich das Design für einen Hardwareentwickler. Es konnten zwei Bausteine eingespart werden und beim Interruptbetrieb ein beim 8080 nötiger Interruptkontroller. Weiterhin brauchte man nur eine Versorgungsspannung. So verwundert es nicht, das der Zilog Z80 sehr bald nach Erscheinen in allen neuen Computern verbaut wurde, da er ja softwarekompatibel zum 8080 war, wenngleich nicht pinkomaptibel. Dadurch gab es aber auch keine Handhabe seitens Intel gegen Zilog vorzugehen.

Für den MOS 6502 sprach in den ersten Jahren vor allem der Preis. Der Chip hatte deutlich weniger Transistoren (es werden 3500 bis 4500 genannt, der Intel 8080 hatte je nach Quelle 4.500 bis 6.000) und war dadurch billiger zu produzieren und zu verkaufen. Anfang der Achtziger Jahre war jedoch die höher integrierte Z80 aufgrund der hohen Stückzahlen noch billiger. Übrigens hatte Motorola dasselbe Problem wie Intel, auch ihr 6800 wurde selten eingesetzt, am häufigsten noch die letzte, deutlich verbesserte Variante MC 6809.

Doch Intel kannte die Mängel ja selbst. Die Firma sah auch das ein Manko es war, dass zwei weitere Bausteine benötigt wurden. Die 8224 und 8228 waren niedrig integrierte Bausteine, die vergleichsweise günstig angeboten wurden. Ihr Zusatzpreis spielte keine Rolle, solange der Prozessor noch 360 Dollar kostete, doch mit dem Preisverfall änderte sich dies. Einige Dollar mehr für benötigte zwei Bausteine zu bezahlen, wenn der Prozessor 360 Dollar kostet, ist eine Sache, doch bei 36 Dollar sieht das schon anders aus.

Intel ging daher unabhängig von Zilog an eine verbesserte Version des 8080. Dies wurde der 8085. Er beseitigte die oben angeführten Mängel. Die 8224 und 8228 Bausteine konnten wegfallen. Er kam mit nur einer Versorgungsspannung aus und er hatte ein leistungsfähiges Interruptsystem.

Anders als der Z80 erweiterte Intel den Befehlssatz aber nur gering, dafür besserte die Firma massiv beim Interruptbetrieb nach. Es gab vier weitere Pins für externe Interruptsignale (TRAP, RST7.5, RST6.5, RST5.5). Dazu kamen zweiPins für eine Serielle Ein/Ausgabe. Weiterhin hatte der Prozessor einen Pin für das Adress Latch Enable Signal. Das signalisierte anderen Bausteinen auf dem Bus, ob der Adressbus oder der Datenbus aktiv war. Dieses Signal war nötig, weil Intel den 8085 wie den 8080 in einem 40-poligen Gehäuse unterbringen wollte. Zwar vielen nun zwei Pins für die Versorgungsspannung weg, aber es kamen vier Pins für die neuen Interruptports und zwei für die seriellen Signale hinzu. Diese hätten bei Beibehaltung der Architektur nicht in das 40 Pin Gehäuse gepasst, so wurden Adressbus und Datenbus gemultiplext, das heißt die untersten 8 Bit des Adressbusses (A0 bis A7) konnten auch als Datenbus (D0 bis D7) genutzt werden. Über das ALE Signal wurde der Bus informiert ob diese Pins als Adress- oder Datenbus genutzt wurden.

Von C0D3 in der Wikipedia auf Deutsch. 09:16, 16. Mär 2006 (CET - Übertragen aus de.wikipedia nach Commons durch Wdwd mithilfe des CommonsHelper., CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=17658892Der gemultiplexte Bus ist eine Designentscheidung die Vorteile und Nachteile hatte. Zum einen reduziert sie die Anzahl der Leitungen die von der CPU zu RAM- und ROM-Bausteinen zu ziehen sind. Auf der anderen Seite benötigt man eine zusätzliche Logik, die das ALE auswertet, damit es nicht zu einer Verwechslung von Adress- und Datensignalen kommt. Intel selbst brachte daher zwei Bausteine heraus, das 8755 mit einem 2 KByte EEPROM und 16 I/O Pins und das 8155 mit 256 Byte RAM, 22 I/O Pins und einem 14 Bit Zähler. Diese waren direkt an eine 8085 anschließbar.

Die vier neuen Pins für den Interrupt hatten eine unterschiedliche Belegung

Input Pin

Priorität

Aktion

Typ

TRAP

1

Restart bei 24H

Nicht maskierbarer Interrupt

RST 7.5

2

Restart bei 3CH

Restart Interrupt maskierbar

RST 6.5

3

Restart bei 34H

Restart Interrupt maskierbar

RST 5.5

4

Restart bei 2CH

Restart Interrupt maskierbar

IBTR

5

Interrupt per Software behandelt

Maskierbarer Interrupt

Der 8080 hat acht Restarts bei denen die CPU bei der Instruktion zu den Adressen 00H - 38H (in 8 Byte Abständen) springt. Bei den neuen Interrupt verzweigt die CPU zwischen die Restartadressen 4 bis 8. Die Länge dieser Restarts sinkt so auf 4 Bytes, das reicht aber aus für die Folge

PUSH PSW

JP Interrurptroutine

Push PSW sichert die aktuelle Adresse des Programms vor der Verzweigung auf den Stack, dorthin muss nach Abarbeitung der Serviceroutine je gesprungen werden und der unbedingte Sprung springt zu der Serviceroutine. Trap ist ein nicht-maskierbarer Interrupt, das heißt, liegt ein Signal an dem Pin an verzweigt er immer an den Restart 24H (4.5). Das genaue Gegenteil ist der schon beim Vorgänger vorhandene INTR, es ist ein vollständig maskierbarer Interrupt ohne Restart-Sprung. Die Interruptmaske wird mit SIM gesetzt und RIM gelesen.

 Architektur

Da der 8085 im Wesentlichen die Befehle und Register des 8080 hat, folgt ihr eine Beschreibung der 8080 Architektur und im Anschluss daran die neuen Befehle.

Intel bezeichnet den 8080 als eine "unsymmetrische Erweiterung des 8008". Das bedeutet, dass der 8080 alle Fähigkeiten des 8008 hat, aber darüber hinaus einige Spezialfeatures, die Architektur aber nicht durchgehend erweitert wurde. So ist der 8080 nach wie vor ein Prozessor der vor allem 8-Bit Werte (Byte) verarbeitet. Man hat ihn aber um einige 16 Bit Operationen erweitert. Symmetrisch wäre, wenn nicht nur einige, sondern alle Operationen nun auch mit 16 Bits möglich wären.

Intel nutzte beim Design des 8080 erstmals die Erfahrungen der Kunden. So gab man 400 Abnehmern des 8008 unter Abgabe eine Verschwiegenheitserklärung die Spezifikationen des neuen Chips mit der Bitte um Rückmeldung. 100 Antworteten kamen zurück und es kristallisierte sich heraus, das zusätzlich zu den schon bekannten Mängeln des 8008, die es abzustellen galt, für die Kunden die Kompatibilität zu ihrer schon entwickelten Software wichtig war. Daher enthielt der 8080 alle Befehle des 8008.

Übernommen wurde der Registersatz und deren Bedeutung. So gibt es 7 × 8 Bit breite Register. Eines, der Akkumulator A hat nach wie vor eine besondere Bedeutung. In ihm landen alle Ergebnisse von 8 Bit Rechnungen und er ist immer auch ein Operand bei 8-Bit Register-Register Rechnungen. Die anderen sechs Register (B,C,D,E,H,L) dienen primär als Zwischenspeicher in der CPU.

Der Programmzähler wurde von 14 auf 16 Bits erweitert, da nun der Adressbereich 64 anstatt 16 KByte betrug. Das war intern keine große Änderung da bisher der Speicher über das Register "M" angesprochen wurde (M für Memory). Dieses stand für die Adresse, die in den Register H und L lag (L: Lower Byte, H: Higher Byte). Nur konnte man diese 16 Bit Adressierung bisher nicht nützen, weil man in den Opcodes noch zwei Kontrollbits im zweiten und dritten Byte brauchte. Dies ergab sich aus dem gemultiplexten Bus. Da schon in den frühen siebziger Jahren die Kapazitäten der RAM-Chips rasch anstiegen, war klar, dass der Adressbereich von 16 Kbyte nicht mehr ausreichen würde, selbst 64 KByte erschienen als nicht sehr viel. Als der Prozessor erschien, hatten die größten Speicherchips 4 KBit Größe, man brauchte 128 dieser für 64 KByte. Mit den 1979 erschienen 64 KBit Chips waren es nur acht (weniger ging aufgrund der internen Architektur mit 64 K x 1 Bit meistens nicht, da man für ein Byte acht Speicherchips eines für jedes Bit brauchte).

Es gab ein weiteres Bit im Flagregister, das Auxillary Bit. Man benötigte es für die damals noch wichtige BCD Rechnung. Es signalisierte einen Überlauf von Bit 4 nach Bit 5.

Die größte Änderung gab es beim Stack. Der 8008 hatte einen internen Stack von nur 8 Einträgen. Einer davon war der Programmcounter. der Stackpointer war daher nur 3 Bits breit. Der 8080 erhielt einen 16 Bit breiten, separaten Programmcounter und Stackpointer. Instruktionen erlaubten es nun erstmals beide Zeiger programmtechnisch zu beeinflussen. So war es möglich an Adressen zu springen, die nicht direkt im Code abgelegt waren und den Stack im Arbeitsspeicher zu verschieben.

Die 16-Bit Erweiterung funktionierte dahingehend, dass man die schon beim HL genutzte Zusammenfassung von zwei 8 Bit Registern zu einem 16 Bit Register nun auch beim BC und DE Register funktionierte. Die 16-Bit breiten Daten bezeichnete man als Wort. Allgemeine 16 Bit Operationen umfassen das Dekrementieren/Inkrementieren eines Worts. Das schon beim 8008 mit einer besonderen Bedeutung versehenen Register HL behielt diese bei und sie wurde sogar noch ausgebaut. So arbeiteten alle 16-Bit-Additionen mit HL als einer Quelle und Zielregister. HL konnte dem Stackpointer und Programmzähler zugewiesen werden. Ein Befehl vertauschte DE und HL-Register. Für das BC Register gab es diesen Spezialbefehl nicht.

Die 8-Bit Befehle hatten sich nicht geändert. Nach wie vor konnte man mit 8 Bit Operanden addieren, subtrahieren (jeweils mit oder ohne Carry), Und, Oder, XOR Verknüpfungen und Vergleiche durchführen. Bei diesen Zwei-Operanden Befehlen war jeweils ein Operand das A-Register und dort landete auch das Ergebnis. Inkrement und Dekrementbefehle arbeiteten mit jedem 8-Bit Register. Die Sonderstellung von A zeigte sich auch das die vier Rotationsbefehle (jeweils nach links und rechts mit und ohne Carry) nur mit Register A gingen. Ebenso konnte nur der Akkumulator A Zahlen aus dem Speicher (Register M) mit A verknüpfen (Addition, Subtraktion, Logische Operationen, Vergleich).

Die Adressierungsmodi waren:Architektur

Die 16 Bit Ladebefehle, wie auch die neuen 16 Bit Artithmetikbefehle hatten nun einen Bruch in der Benennung. Beim 8008 war das HL-Register herausragend, weil nur darüber der Speicher adressiert werden konnte. Intel hatte beim 8008 dafür die Bezeichnung "M" für "Memory" eingeführt. Nun konnte dies auch durch DE und BC geschehen, doch die Mnemonics waren nun unterschiedlich:

ebenso ging es bei den anderen Befehlen zu, sodass sich unter den Mnemonics Mov, MVI, LDAX, LDA, STA, STAX, LHLD, SHLD, LXI, SPHL sich alles Ladeoperationen verbargen. Der Zilog Z80 beseitigte dieses Durcheinander durch eine saubere Schreibweise:

LD Ziel,Quelle

Wobei Ziel ein 8-Bit Register oder 16-Bit Register oder eine Adresse war, Quelle ein Register, eine Konstante, eine Adresse (in runden Klammern um sie von Konstanten zu unterscheiden) oder eine Adresse die in einem Register stand (auch hier runde Klammern, z.B. LD A,(HL) - Lade A mit dem Inhalt der Speicherstelle deren Adresse in HL steht. Insgesamt findet der Autor die Intel Mnemonics, auch wegen ihrer recht komischen Kürzel, wenig einprägsam.

Deutlich erweitert wurden die In/Out Fähigkeiten. Der 8008 konnte acht Eingabe- und 24 Ausgabeports ansprechen. Der 8080 erweiterte dies auf 256 Ports. Die Portnummer stand nun im zweiten Byte anstatt direkt im Opcode, das hatte auch den Vorteil, dass so 30 Opcodes für neue Befehle frei wurden.

Die Sprung- und Verzweigungsbefehle waren die gleichen wie beim 8008. Hier wurde das neue Auxilary Flag nicht ausgewertet.

Dazu kamen noch einige Spezialbefehle, die alle mit den Flagregister zu tun hatten. CMA bildete das Komplement von A, CMC invertierte das Carryflag, STC setzte es und DAA passte den Inhalts anhand des Auxillaryflags eines Akkumulators an. Er wurde für die BCD Addition benötigt. (BCD Rechnungen wurden als eigenes Datenformat nicht unterstützt, aber mit DAA konnte der Inhalt in eine BCD Ziffer umgewandelt werden).

Neben den extern sichtbaren Registern gab es ein internes Registerpaar WZ zum temporären Speichern von Daten.

Wie beim Vorgänger lag bei Adressen das niederwertige Byte bei der ersten Adresse und das höherwertige ein Byte höher. Diese "falsche" Anordnung hatte man vom 8008 übernommen, der sie wiederum einführte, weil er einen bitseriellen Prozessor in einem Terminal einsetzen sollte. Auch der Stackpointer wuchs nach unten, man gab also beim Anlegen des Stacks dessen höchste Adresse an. Bis heute hat jeder x86-kompatible Prozessor diese Anordnung geerbt und sogar inzwischen auf 32 und 64 Bit lange Daten ausgedehnt. Die meisten anderen Architekturen legen das höherwertige Byte zuerst ab, so wie wir auch Zahlen schreiben. Die Auseindersetzung ob "Big Endian" oder "Little Endian" die bessere Darstellung ist ergab aber keinen echten Gewinner.

Die schnellsten Befehle waren einfache Rechenoperationen, sie brauchten 4 Takte (ebenso der Befehl NOP), ein 8-Bit Registertransfer dauerte komischerweise länger, nämlich 5 Takte. Der langsamste Befehl war XTHL - tausche den Wert auf dem Stack mit HL. Er brauchte 18 Takte. Ein Maschinenzyklus bestand aus 3 bis 5 Takten und es gab die Maschinenzyklen Fetch - Memory Write/read - Memory Read/werite. Im Fetch waren auch Dekodierung und Ausführung reiner Register/Registeroperationen enthalten. Diese Befehle dauerten daher nur 4-5 Takte. Wurden Daten geladen oder gespeichert so dauerte dies 7/10 Takte (je nachdem ob es ein Byte oder zwei Byte waren, pro Byte Transfer ein Maschinenzyklus. Die längsten Befehle die einen Fetch und zwei 16 Bit Transfers umfassten dauerten 18 Takte oder 5 Maschinenzyklen. Der 8085 hatte eine kleine Verbesserung. Bei bedingten Sprüngen wie z.B. "Springe wenn das Zero-Flag gesetzt ist, nach Adressse x" war eine Instruktion drei Bytes lang. Ein Byte für den Opcode, zwei für die Adresse. Der 8080 las immer alle drei Bytes ein, auch wenn die Bedingung nicht zutraf. Der 8085 wertete, während er das erste Byte der Adresse anforderte, die Flags aus und traf die Bedingung nicht zu, so wurde das zweite Byte nicht mehr eingelesen. Das reduzierte die Ausführungszeit um 4 Takte.

Ein Manko des 8080 waren die bescheidenen Interruptfähigkeiten. Der 8008 hatte gar keine richtigen Interruptfähigkeiten. Interrupts können überall passieren und neben der Fähigkeit, das unterbrochene Programm wiederaufnehmen zu können, muss man dafür auch die Register sichern. Dies konnte der 8080 genauso wenig wie der 8008. Als Ersatz für Interruptroutinen bot Intel beim 8008 acht Restartroutinen an, das waren Calls zu 8 festen Adressen in den ersten 64 Bytes des Adressraumes jeweils um 8 Byte auseinander. Als neue Befehle gab es die Möglichkeit externe Interruptsignale zuzulassen (EI - Enable Interrupts) und zu sperren DI (Disable Interrupts). Dies galt nur für Signale die über den Interrupt Pin hereinkamen. Ein nichtmaskierbarer Interrupt, der durch ein Signal am NMI Port ausgelöst wurde, bewirkte das die CPU das Programm abbrach und ein Unterprogramm an Adresse 56 (RST 7) ausführte.

Der 8085 hatte nun vier neue Interruptmodi. Mit zwei befehlen konnte man Interrupts maskieren oder freigeben. Die beiden neuen Befehle waren SIM - Set Interrupt Mask und RIM Read Interrupt Mask. Sie hatten eine Doppelfunktion. RIM lass die Interruptmaske in den Akkumulator. Diese Interruptmaske hatte folgende Bedeutung:

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

Serial Input Data

Pending Interrupt 7.5

Pending Interrupt 6.5

Pending Interrupt 5.5

Interrupt Enable

Interrupt Mask 7.5

Interrupt Mask 6.5

Interrupt Mask 5.5

Bit 7 hatte mit den Interrupts nichts zu tun. Über es konnte man ein Bit von der Seriellen Leitung einlesen. Bit 3 informierte, ob Interrupts erlaubt waren. Sie konnten mit der Anweisung EI erlaubt und DI abgeschaltet werden. Bit 0-2 schaltete dann den jeweilligen Interrupteingang ab (1) oder erlaubte Interrupts (0).

Die Anwesiung SIM setzte in analoger Weise die Interrzuptmaske bzw. übertrug ein Bit auf die serielle Leitung.

Intel hatte sich gegen mehr Befehle entscheiden, da zwei Jahre später der 8086 geplant war und dieser sollte softwarekompatibel zu dem 8080 sein. Neue Befehle hätte man dann auch in den 8086 übernehmen müssen. (Softwarekompatibel bedeutet: der 8086 hat dieselben Register nur mit anderen Bezeichnungen und Befehle des 8080 als Untermenge des Registersatzes / Befehlssatzes). Die Opcodes, das heißt, das Bitmuster der Befehle, ist beim 8086 jedoch ein anderes. So kann ein Programm einen Assembler-Quelltext des 8080 für einen 8086 übersetzen. Das ermöglichte es beim IBM PC vom Start weg viele Programme zu haben, da nur der Quelltext eines CP/M Programms durch einen solchen Crossassembler übersetzt werden musste.

In der Retrospektive wären vielleicht mehr Befehle wie beim Z80 eine bessere Lösung gewesen.

Geschichte

Die FotoAnders als der 8080 konnte der 8085 nicht an die Erfolge des 8080 anknüpfen. Die Z80 war einfach noch besser und bald auch preiswerter. Er erschien nur drei Monate nach dem 8085. Beide waren softwarekompatibel zum 8080. Den 8085 fand man in nur wenigen Computern. Er bekam aber ein langes Leben als Mikrocontroller.

Das verwundert zuerst, da der 8085 als Mikroprozessor entworfen wurde. Intel hatte selbst eine eigene Linie von Microconrollern entworfen. Die MCS-48 Serie erschien ebenfalls 1976, vier Jahre danach die noch populärere MCS-41 Serie. Der 8085 war in dem Sinne auch kein Microcontroller als dass er auf dem Chip RAM und ROM hatte. Von Vorteil waren vielmehr die Interruptfähigkeiten über die langsamere Geräte den Prozessor unterbrechen konnten während dieser üblicherweise in einer schleife sonst "nichts" tat. Bei einem 8 Bit Computersystem benötigte man dies selten. Dort gab es zwar auch langsame Geräte, wie die Druckerschnittstelle oder die serielle Schnittstelle, doch für diese gab es eigene Ein/Ausgabebausteine die auch das gesamte Protokoll abwickelten.

Für eine lange Lebensdauer sorgten auch sehr langlebige Produktlinien wie der DECTape II Kontroller für Magnetbandgeräte von DEC und das VT 102 Terminal von Video Technologies die weitestgehend unverändert über Jahrzehnte gebaut wurden. Erst im Jahee 2000 wurde die Produktion des 8085 eingestellt.

Während die Produktion des 8080 eingestellt wurde und auch des 8085 wird der Z80 im Jahre 2015 immer noch produziert. Beiden Prozessoren half es das Gary Kildall mit CP/M das erste Standard-Betriebssystem für Microcomputer entwickelte. Es trug dieser Geräteklasse Rechnung, indem es aus einem Teil mit standardisierten Betriebssystemaufrufen bestand, der überall gleich war und einem davon abgeteilten an die jeweilige Maschine anzupassenden Teil der die Hardware unterstützte, das BIOS bestand. Damit war es erstmals möglich Software zu entwickeln, die unabhängig von einem Modell war und auf vielen Rechnern lief. Den Prozessorherstellern nützte es dadurch, dass eine Firma die einen neuen Computer konstruierte, wenn sie einen 8080 oder Z80 einsetzte, mit einem Schlag auf alle CP/M Programme zurückgreifen konnte. Damit war das Henne-Ei Problem elegant umschifft (In diesem Fall: ohne verfügbare Software kauft kein Interessent das Gerät, ist das Gerät aber nicht weit verbreitet, dann schreibt auch keiner Software für es - eine echte Zwickmühle). Gary Kildall bot sein Betriebssystem CP/M Intel übrigens zum Kauf an. Man lehnte dort ab. Intel hatte bis weit in die siebziger Jahre als es schon Microcomputer gab deren Bedeutung nicht verstanden. So drängten auch eigene Ingenieure Moore einen PC zu entwickeln - er fragte nur (wie viele andere IT-Firmen Bosse damals auch) "wofür soll der gut sein?". Selbst Steve Jobs ließ Intel abblitzen - der Apple wäre eben doch nur eine von 100 anderen Anwendungen eines Mikroprozessors.

Einige Einsätze des 8085:

Der wohl wichtigste Einsatz war in dem IBM Modell 5322 Datamaster. Dies war ein Computer vergleichbar den damals verfügbaren CP/M Rechnern. Der Datamaster war durch seinen hohen Preis selbst nicht sehr erfolgreich. Doch als man den IBM PC schuf übrnahm man um Zeit zu sparen viel von dem Datamaster, unter anderem auch das Bussystem das eigentlich als 8 Bit Bussystem für einen 16 Bit Rechner zu wenige Anschlüsse hatte. Das beeinflusste auch die Wahl des Prozessors, denn Intel wählte den 8088 der auch nur einen 8 Bit Datenbus hatte, der wie beim 8085 auch gemultiplext war.

Einen zweiten Einsatzzweck hatte der 8085 in mobilen Geräten Intel hatte relativ früh eine stromsparende CMOS Version (80C85) im Angebot die in den frühen Achtziger Jahren in einigen Geräten steckte so dem TRS-80 Model 100, Olivetti M10 und NEC-8201 und NEC-9300, die alle auf derselben Plattform basierten.

Das ACS (Attitude Control System) zahlreicher Explorer-Klasse Satelliten wie SAMPEX, FAST und WIDE-FIELD INFRARED EXPLORER setzt zwei 8085 als Controller ein. Diese Satelliten wurden in den Neunziger Jahren gestartet.

1997 landete mit der Raumsonde Mars Pathfinder auch ein Schuhkartongroßer Rover, der Sojourner. Sein Zentralcomputer verwandte eine 2 MHz Intel 80C85 CPU mit 176 KByte RAM. Geplant war auch ein Einsatz auf einem zweiten Rover der auf der Raumsonde Mars 2001 Lander erfolgen sollte, auch hier in einem Rover. Diese Raumsonde wurde aber gestrichen.

1998 hatte das Experiment Mars Dust Counter an Bord der Raumsonde Nozomi einen Intel 8085 mit 56 KByte Speicher als Datenverarbeitungseinheit.

Russland fertigte noch 2016 einen nicht autorisierten Clone "IM1821VM85A".

Technische Daten

Wert

Intel 8080

Intel 8085

Z80

Veröffentlicht:

Dezember 1973 (8080), April 1974 (8080A)

April 1976

Juli 1976

Technologie (Erstexemplar)

6 µm NMOS

3 µm NMOS

4 µm NMOS

Transistoren:

4.500 (8080?)

6.000 (8080A)

6.500

8.200

Gehäuse

40 Pin CDIP

40 Pin

40 Pin

Taktfrequenz:

2 MHz (8080/8080A)
2,67 MHz (8080A-1)
3,125 MHz (8080A-2)

3 MHz (8085)
5 MHz (8085A)
6 MHz (8085A-1)

2,5 MHz (Z80)
4 MHz (Z80A)
6 MHz (Z80B)
8 MHz (Z80H)
heute: CMOS Version 4-20 MHz, embedded Version eZ80 bis 50 MHz

adressierbares RAM

64 KB

64 KB

64 KB

Stack:

256 Byte

256 Byte

256 Byte

Register:

7 × 8-Bit-Register A,B,C,D,E,H,L
2 × 16-Bit-Register PC, SP
5 Flag Bits

7 × 8-Bit-Register A,B,C,D,E,H,L
2 × 16-Bit-Register PC, SP
8-Bit-Interruptmaskregister
5 Flag Bits

14 × 8-Bit-Register A,B,C,D,E,H,L (zwei Sätze)
4 × 16-Bit-Register PC, SP, IX, IY
8-Bit-Interruptmaskregister
8-Bit-Refrehsregister
Flagregister mit 8 Bits, davon zwei unbenutzt

Adressierungsdaten:
(nur eine Richtung angegeben)

Register - Register
Register - direkt
Register - indirekt

Register-Register
Register-direkt
Register-indirekt

Register-Register
Register-direkt
Register-indirekt
Register-indiziert

Ein/Ausgabeports:

256 Eingabeports
256 Ausgabeports

256 Eingabeports
256 Ausgabeports

256 Eingabeports
256 Ausgabeports

Besonderheiten:

keine Unterstützung maskierter Interrupts
zweiphasiger Takt
drei Versorgungsspannungen
benötigt Zwei Bausteine für den Takt und Buskontrolle der Signale

Nur eine Versorgungsspannung, einphasiger Takt,
maskierbarer Interrupt, keine Zusatzbausteine möglich

wie 8085, nur Erzeugung des Refreshzyklus von DRAM intern,
erweiterte Interruptbehandlungsmöglichkeiten

Befehle:

158 (alle Oppcodevarianten)
78 (ohne Opcodevarianten)

160 (alle Opcodevarianten)
80 (ohne Opcodevarianten)

696 (alle Opcodevarianten)
244 (ohne Opcodevarianten)

Produktionszeitraum

1974 bis 1990

1976 bis 2000

1976 bis heute

Geschwindigkeit:

> 290.000 Instruktionen/s

> 400.000 Instruktionen/s

> 500.000 Instruktionen/s

Links:

https://www.geeksforgeeks.org/difference-between-8080-and-8085-microprocessor/

http://www.nj7p.org/Manuals/PDFs/Intel/9800301D.pdf

https://www.jameco.com/Jameco/Products/ProdDS/52062.pdf

http://www.z80.info/zip/z80cpu_um.pdf

http://altairclone.com/downloads/manuals/8080%20Programmers%20Manual.pdf

http://bitsavers.trailing-edge.com/pdf/intel/MCS80/98-153B_Intel_8080_Microcomputer_Systems_Users_Manual_197509.pdf

http://archive.computerhistory.org/resources/text/Oral_History/Intel_8080/102658123.05.01.pdf

Artikel erstellt am 2.3.2022


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.

Artikel erstellt am 11.6.2015

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Impressum / Datenschutz Neues Hier werben / advertisment here Buchshop Bücher vom Autor Top 99