Lange Fit mit 8 Bit
Kürzlich kam ich drauf als ich bei Reichelt nach etwas suchte, das es 8-Bit Prozessoren heute noch – fast 50 Jahre nach Markteinführung, zu kaufen gibt. Ich vermute viele Prozessoren die von den ursprünglichen Herstellern aufgegeben wurden, also nicht mehr produziert werden bekommt man heute noch aus Second-Source Produktion, aber nicht im Einzelhandel. So hat die ct’ in einer Retro-Ausgabe vor zwei Jahren einen IBM PC Nachbau aus China ausgegraben und besprochen. Den Prozessor 8086 fertigt Intel aber schon seit Jahrzehnten nicht mehr.
Daher hier mal eine kleine Geschichte der 8-Bit Prozessoren, wobei – das sei für Kenner gleich bemerkt – ich mich auf die vier mit dem größten Marktanteil konzentriere, es gab noch etliche andere. So wurde der RCA 1802 nicht dadurch berühmt, dass er kommerziell so erfolgreich war, sondern weil zwei Dutzend dieser Prozessoren an Bord von Galileo ihren Dienst taten.
Der Erstling war eigentlich der 8008 von Intel, der als Auftragsfertigung für einen Terminalconroller entstand. Doch der 8008 war langsam, umständlich zu programmieren und er hatte nur einen kleinen Speicher von 16 KByte, sodass es zwar Projekte von Elektroniknerds um diesen Prozessor herum gab, aber die Mikrocomputerrevolution ging mit dem Nachfolger 8080 los. Auf ihm basierte der erste „PC“ der Altair 8800. Der war vom Start weg ein Markterfolg und regte viele andere dazu an auch einen Computer zu entwerfen, und viele verwandten den 8080 als Prozessor. Der 8080 hatte vergleichen mit vielen Konkurrenten relativ viele Register, 7 allgemein nutzbare. Sechs davon konnte man noch dazu, für bestimmte Operationen zu 16 Bit Doppelregister zusammenfassen. Heute würde man den 8080 als eine CISC-ähnliche Architektur bezeichnen.
Warum er nach nur wenigen Jahren aber keine Rolle spielte, waren einige Versäumnisse beim Hardware Design. Der 8080 brauchte drei Spannungen für den Betrieb, anstatt einer. Er war auch nicht alleine funktionsfähig. Er konnte nicht seinen Takt aus einem einfachen Schwingquarz generieren, sondern benötigte dazu einen weiteren Baustein, den Taktgenerator und weil der Datenbus auch gleichzeitig Steuerbus war, benötigte er noch einen Buscontroller. In der Programmierung gab es als Defizit, das er nur einen Interruptmodus kannte. Bei einem Interrupt legt ein Baustein ein Signal an einen Pin der CPU und diese unterbricht das Programm und zweigt in eine eigene Routine ab, wo sie diesen Interrupt behandelt. Ohne dieses Feature könnte eine CPU nichts anderes tun wenn sie z.B. auf Tastatureingaben wartet. Beim 8080 musste nun aber der Programmierer feststellen, was dieses Ereignis denn genau auslöste.
Intel waren die Fehler bekannt und sie legten mit einer verbesserten Version nach, dem 8085. Dieser kam mit nur einer Spannung aus, hatte die beiden externen Bausteine integriert und deutlich verbesserte Interruptmöglichkeiten. Doch diese kam zu spät. Sie hatte eine Marktbedeutung bei batteriebetriebenen Computern, die es schon damals gab, weil es eine Stromsparversion gab. Daneben wurde er wegen der Interruptmöglichkeiten auch als Mikrocontroller genutzt.
Denn der 8080 wurde sehr bald von einem Konkurrenten verdrängt. Der führende Entwickler des 8080, Federico Faggin verließ Intel und machte mit Venture-Kapital eine neue Firma auf, Zilog. Das erste und bei weitem erfolgreichste Produkt war der Z80. Er beseitigte die Fehler des 8080, kam mit einer Versorgungsspannung aus, benötigte keine Zusatzbausteine und hatte zwei neue Interruptmodi. Für Programmierer war er interessant, weil unbelegte Opcodes des 8080 als Präfixe für neue Befehle genutzt wurden und er so erheblich mehr Befehle hatte. Die neuen Befehle unterstützten zwei neue 16 Bit Register und einen zweiten Registersatz, aber führten auch neue Operationen ein, die teilweise eine ganze Schleife des 8080 ersetzten.
Der große Erfolg des Z80 kam dadurch zustande, dass er weitestgehend pinkompatibel zum 8080 war, ein 8080 Hardwaredesign also relativ einfach auf den Z80 umgestellt werden konnte. Bei der Software war er sogar 100 Prozent kompatibel. Das populäre Betriebssystem CP/M wurde zum Beispiel in 8080 Code geschrieben, lief aber auf jedem Z80 Rechner. Einer der ersten Rechner die den Z80 einsetzten war der Tandy TRS-80, er wurde aber sehr bald zum Herz vieler Rechner, auch Heimcomputer.
Ganz anders lief es beim Motorola 6800. Der Motorola 6800 erschien kurz nach dem 8080 und hatte einen anderen Ansatz. Er setzte mehr auf universelle Operationen, hatte keine 16 Bit Doppelregister aber als erster Prozessor ein 16 Bit breites Indexregister für den Adresszugriff. In Benchmarks waren beide Prozessoren vergleichbar. Trotzdem hatte der 6800 nicht den Markterfolg des Intel 8080 / Zilog Z80.
Das lag daran dass der 8080 der erste war. Er war wie ein Saatkorn für die heutige Mikrocomputerindustrie. Da der Altair 8800 nicht nur der erste Computer mit dem 8080 war, sondern auch ein Bussystem einführte – den Altair Bus, später als S100 Bus normiert, gab es sehr bald Anbieter von Zusatzkarten für diesen Bus, denn der Altair konnte in der Basiskonfiguration nichts. Man benötigte Karten um Ausgabegeräte anzuschließen – Papierstreifenleser und -stanzer, später auch Bildschirme, für den Anschluss eines Fernschreibers (enthält auch die Tastatur), Diskcontroller, Videografik, und natürlich Speichererweiterungen. Sehr bald gab es hunderte solcher Zusatzkarte und alle orientierten sich am S100 Bus, denn dann auch andere Hersteller übernahmen. Das Problem war, das zwar nicht alle Pins belegt waren, aber dieser Bus alle Signale des 8080 herausführte. Ein Z80 war weitestgehend pinkompatibel. So konnten auch Z80 Systeme diesen Bus nutzen, doch ein 6800 hatte ein anderes Pinout. Das schloss ihn von diesem Kartenfundus aus und das war ein klares Gegenargument.
Das zweite Gegenargument war, dass Motorola nicht durch einen Preiskrieg Marktanteile gewinnen wollte, ihre Preise für den 6800 waren so hoch wie die von Intel. Und die waren anfangs wirklich hoch. Als der Altair 8800 erschien, konnte Ed Roberts der ihn schuf bei Intel einen Rabatt aushandeln, sodass ihn der Prozessor nur 125 anstatt 360 Dollar kostete. Trotzdem war der Prozessor das teuerste Einzelteil in dem für 397 Dollar verkauften Bausatz. Heute würden die 125 Dollar aus dem Jahre 1975 über 700 Dollar in der Kaufkraft entsprechen. Motorola hätte durchaus einen eigenen Standard etablieren können, wenn sie den Preis deutlich gesenkt hätten. Motorola legte wie Intel nach. Der 6802 hatte 128 Bytes RAM auf dem Chip. Da bei dem Prozessor die ersten 256 Bytes im Adressraum besonders einfach angesprochen werden konnten beschleunigte das den Prozessor. Der noch später erschienene MC6809E war einigermaßen erfolgreich und wurde in mehreren Heimcomputern eingesetzt. Er war deutlich verbessert und hatte als einziger 8 Bit Prozessor der frühen Generation die Möglichkeit einer Multiplikation durch die Hardware. Er blieb aber teuer, was den Einsatz vor allem bei Heimcomputern wo jeder Cent in den Bauteilekosten bei dem harten Konkurrenzkampf zählte, limitierte.
Bei dem Entwurf des 6800 war auch Chuck Peddle beteiligt, er war mit dieser Preisvorstellung nicht einverstanden und meinte, dass wenn man den Preis auf 25 bis 50 Dollar senken würde, der Gesamtgewinn deutlich höher wäre. Man würde weniger Gewinn pro Stück machen, dafür aber mehr Prozessoren verkaufen, die dann auch billiger zu produzieren wären. Auch er trennte sich wie Faggin von seinem Arbeitgeber und heuerte bei MOS Industries an und überzeugte diese Firma eine einfachere Version des 6800 zu produzieren. Es entstand der MOS 6501, bei dem Peddle das Design des 6800 soweit reduzierte wie es ging, Instruktionen und Register weglies. Als Folge benötigte der Prozessor viel weniger Transistoren und war billiger herzustellen. Als er 1975 vorgestellt wurde gab es aber gleich Probleme mit Motorola, denn Peddle hatte die Pinbelegung kopiert, damit der Prozessor einen 6800 in einer Schaltung ersetzen konnte. MOS Industries einigte sich mit der Rechtsabteilung von Motorola darauf, das Design abzuändern sodass dies nicht mehr der Fall war und veröffentlichte den Prozessor neu als MOS 6502. Als dieser 1975 erschien, wurde er für 25 Dollar verkauft, ein Bruchteil dessen was Motorola und Intel verlangten. Diesem geringen Preis, den er auch noch lange behielt – erst Mitte der Achtziger Jahre war ein Z80 billiger, weil von ihm höhere Stückzahlen produziert wurden – verdankt er es, dass er zum Prozessor vieler Rechner wurden. Bekannt sind Apple I bis III, natürlich die Rechner von Commodore, da die Firma MOS Industries übernahm, aber er steckte auch in den Ataris und ein Ableger in der Atari Spielkonsole.
Woran alle diese Firmen wohl nicht dachten, war wie lange ihre Prozessoren „aktuell“ bleiben. Sie erschienen zwischen 1974 und 1976. Schon wenige Jahre später – zwischen 1978 und 1979 erschienen von dreien der Firmen neue 16 Bit Prozessoren – der 8086, 68000 und Z8000. Denen gehörte nach Ansicht der Entwickler die Zukunft. Doch noch Mitte der Achtziger Jahre wurden neue Computer auf Basis des 6502 oder Z80 entwickelt, der Abschwung kam erst Ende der Achtziger als mit dem Amiga und Atari ST 16 Bit Heimcomputer erschienen und die Preise von IBM PC Kompatiblen niedrig genug für Privatpersonen waren die einen Computer nicht beruflich benötigten. Ich vermute sie wären noch für eine Weile länger für viele Anwender gut gewesen, wäre der Adress-/Speicherbereich nicht auf 16 Bit = 64 KByte beschränkt gewesen. Das war als sie rauskamen enorm viel, das größte DRAM hatte damals 4 Kbit Speicherkapazität, man brauchte also 128 Bausteine um den RAM Bereich abzudecken – auf heute übertragen, der größte DRAM hat heute 16 GBit Kapazität, entspräche dies 256 GByte RAM. Aber schon 1979 erschien das 64 Kbit RAM und man brauchte nur acht Bausteine, die nächste Generation – 1982 erschien das 256 Kbit RAM konnten die Prozessoren nur mit Zusatzschaltungen nutzen, weil dieses 18 Adressleitungen hatte und auch ein anderes Refreshverhalten.
Es gab eine Reihe von 8 Bit Rechnern mit mehr als 64 KByte RAM, aber richtig nützlich war nur der Ausbau auf 128 KByte. Dann konnte man über Bankswitching das Betriebssystem, Puffer und Text/Grafikspeicher in den einen 64 KByte Bereich halten und die anderen 64 KByte standen dann fast komplett für Anwendungsprogramme zur Verfügung. Mehr Speicher für Anwendungsprogramme gab es dann auch bei noch mehr verbautem RAM nicht.
Weshalb ich auf das Thema kam: Den 6502 und Z80 kann man bis heute kaufen. Teurer übrigens als damals, auch höher getaktet. Den Z80 gibt es bei Reichelt bis 10 Mhz getaktet. Als CPU woanders bis 20 MHZ, als Z80182 MPU mit 33 MHz. Den 6502 sogar bis 14 MHz, was absolut eine größere Steigerung ist, da der Prozessor intern anders arbeitet, ein 6502 ist bei 1 MHz in etwa so schnell wie ein z80 bei 2 MHz. Damals liefen die meisten 6502 mit 1 bis 2 MHz und die Z80 mit 3 bis 4 Mhz. Das der Z80 nicht so viel weiter entwickelt ist, liegt daran das Hitachi als Lizenznehmer ihn weiter entwickelte und den HD64180 hat dann Zilog als Z180 ins Programm übernommen. Wer heute einen Z80 Rechner neu aufbaut wird naheliegenderweise auf ihn zurückgreifen. Später entwickelte Zilog den eZ80, der durch eine Pipeline nochmals erheblich schneller ist und bis 50 MHz getaktet ist.
Allerdings sind mir kaum neue Rechner bekannt wo diese Prozessoren vorkommen. Texas Instruments setzt in seinen programmierbaren Taschenrechnern Z80 (TI-85/86) und eZ80 (TI-84) ein. Aber das war es dann schon mit den aktuellen Plattformen die zumindest ich kenne.
Sie sind aber beliebt bei Retro-Hardwarenthusiasten, also Leuten die heute einen Heimcomputer selbst aus den damals gängigen Bausteinen aufbauen. Bei Tindie gibt es enorm viele dieser Kits, die meisten auf Basis des Z80. Das er so viel beliebter ist als der 6502, liegt am Betriebssystem CP/M. Ein Hardwarebastler kann selbst ein Computerkit designen, dazu braucht er heute nur vier Bausteine. Den Z180, der auch eine serielle Schnittstelle integriert hat, ein ROM ein RAM und einen Demultiplexer, der selektiert in dem RAM/ROM jeweils einen Bereich aus einem Baustein der viel mehr Speicher hat als der Prozessor adressieren kann. Aber dazu noch ein Betriebssystem schreiben ist viel mehr Arbeit. Vor allem ist das ja nur der nackte Prozessor. Selbst ein Minimalsystem braucht noch einen Videoprozessor um den Bildschirm anzusteuern, eine PIO um Tastatureingaben zu verarbeiten. CP/M ist inzwischen Public Domain und es wurde so ausgelegt, das jemand nur die unterste Ebene, das BIOS anpassen muss. CP/M benötigt auch nicht einen Bildschirm oder eine Tastatur, sondern die Eingabe und Ausgabe kann über eine serielle Schnittstelle erfolgen und die hat der Z180 ja an Bord. Auf dem PC ist sie heute verschwunden, aber jeder PC hat einen USB Bus und das S in USB steht für „Serial“. Mit einem geeigneten Treiber kann man über USB nicht nur den Computer mit Strom versorgen sondern auch kommunizieren. Man braucht dann nur noch ein Terminalemulationsprogramm. Wer nicht löten will, dem empfehle ich eines der Systeme von Circle M System. Ich selbst habe mir das 33 MHz Z180 System gekauft, das in etwa 11-mal schneller als beim CPC 464 aus den Achtzigern ist. Es ist heute natürlich weitestgehend sinnfrei damit zu arbeiten, aber man kann in Erinnerungen schwelgen. Ich habe sogar einige Programme entwickelt, um z.B. in Turbo Pascal Inline Code einzubauen. Vielleicht gibt es auch mal den „Bernd Commander“, einen Norton Commander Clone für CP/M. Zumindest spukt der mir im Kopf rum, aber neben dem „normalen“ Programmieren, Blog, Büchern, Artikeln beliebt einfach zu wenig Zeit, Ich könnte problemlos einen 48 Stunden Tag mit dem füllen, was ich gerne machen will. Trotzdem liebäugele ich mit dem 50 MHz eZ80 Kit. Aber vielleicht ist so ein Kit ja mal was für die alten Hasen und sei es nur, um den eigenen Kindern zu zeigen wie „benutzerfreundlich“ vor 40 Jahren die Computer waren und das ihre Eltern es trotzdem drauf hatten mit ihnen umzugehen.
Zuletzt: was wurde aus dem 6800? Er erscheint ja in der Reihe als der Verlierer. Das Gegenteil ist der Fall. Motorola erkannte das sie in dem 8 Bit Mikroprozessorenmarkt keine Marktbedeutung haben würden, sie konzentrierten sich auf einen neuen Markt, der in der zweiten Hälfte der Siebziger Jahre aufkam: Mikrocontroller. Das ist ein Mikroprozessor mit integriertem RAM und ROM und einem erweiterten Daten/Adressbus zum Anschluss von Sensoren oder Aktoren. Die beliebte Maker-Serie Arduino basiert zum Beispiel auf solchen Mikrocontrollern, aber viel mehr findet man heute in jedem elektrischen Gerät selbst „dummen“ wie Waschmaschine oder Mikrowelle, vor allem aber in Fahrzeugen, wo auch die ersten zum Einsatz kamen. Motorola entwickelte aus dem 6800 die 68HC Serie die außergewöhnlich erfolgreich war. Schon vor der Jahrtausendwende wurden über 1 Milliarde davon verkauft, am populärsten ist die 68HC11 Serie von Motorola und die 68HC12 von Freescale. Auch den gibt es heute noch zu kaufen.
Hallo,
was beim 6502 fehlte, war eine einigermaßen frühe Variante mit 24 Bit Adressbus, on Chip Zeropage und on Chip Stackpage.
Hätte aber vermutlich zu viele Transistoren und zu viele Pins benötigt (oder drei Zyklen für eine Adresse). Und hätte ein anderes Timing haben müssen, um sinnvoll nutzbar zu sein.
Beim mc68020 gab es auch zu viele Extras, statt die CPU nur schneller zu machen und die fehlende 32Bit Multiplikation nachzurüsten. Statt dessen hätte man einen kleinen Cache (nur code) einbauen können.
Aber damals stand die Programmierung in Assembler im Vordergrund beim Design von CPUs.
MfG
Bei der MC68K Linie hat mich verwundert das Motorola immer zwei Versionen einer CPU rausbrachte. Zuerst eine CPU mit Neuerungen, dann eine verbesserte Version in der alles nachgerüstet wurde was eigentlich schon die erste Version haben sollte. So war die „richtige“ 16/32 Bit CPU die 68010 und die „richtige“ 32 Bit CPU die 68030 – mit wenn auch kleinem Cache auf dem Chip.
Die wesentliche Nachbesserung beim mc68010 war, daß man damit eine paged MMU verwenden konnte.
Der Loop mode wäre im original mc68000 hilfreich gewesen, dann hätte man sich das move multiple und die Division im Microcode sparen können, und die Interrupts wären weniger teuer gewesen.
Die wesentliche Nachbesserung beim mc68030 war, daß die paged MMU (und caches) auf dem Chip war. Mir ist nicht klar, ob das beim mc68020 schon in das Transistor Budget gepasst hätte. Möglicherweise, wenn man auf die komplexen Adressierungsmodi verzichtet und das 2Byte Alignment beibehalten hätte.
Di c’t hat gerade einen „neuen“ 8-Bit-Computer besprochen:
https://www.heise.de/ratgeber/Raspi-Alternative-im-Test-Agon-Light-als-moderne-und-offene-8-Bit-Plattform-8986713.html?wt_mc=intern.red.plus.topteaser.startseite.teaser.teaser
Das wär doch was für dich, oder?
Solche Retro-computer die „stand-alone2 sind also keinen PC brauchen sondern an die man Tastatur und Monitor anschließen kann gibt es schon länger. Ich kenne z.B. den Color Maximite auf basis eines 32 Bit Microcontrolelrs:
https://circuitgizmos.com/Color-Maximite-2-p192570471
Geben tut es da viele — das interessante an diesem Projekt ist das es sehr konsequent offen sein will und möglichst nah am z80 bleiben will.
Ist aber nichts für mich, weil ich schon zu 8 Bit Zeiten sehr schnell vom unübersichtlichen BASIC zu Pascal gewechselt bin und dann nur noch mit turbo Pascal unter CP/M entwickelt habe. Die angesprochenen Rechner haben auch den Vorteil das man auf dem PC auf einem cP/M Emulator erst mal testen kann.