Home Computer PC Hardware Site Map counter

Die Amstrad CPC Serie

Ich habe als ich mein Webauftritt noch jung war einen Artikel über den CPCX 464 geschrieben. Inzwischen (2020) rollt seit einigen Jahren die Retrowelle und alte Computer werden zu höheren Preisen verkauft, als noch vor einigen Jahren. Ich habe dies zum Anlass genommen, den Artikel neu zu schreiben und genauer zu erklären, warum ich die CPC-Reihe für die besten Heimcomputer halte. Dabei muss man naturgemäß vergleichen, und wie ich aus Blogkommentaren weiß sind selbst nach 30 Jahren Fans ihres Computers nicht bereit Schwachstellen anzuerkennen, aber sei es drum. Die CPC Serie kam bei Zeitschriftentests eher kurz weg, weil sie schon am Ende des 8-Bit-Zeitalters erschien. 16 Bit Computer wie der IBM PC oder Macintosh waren schon auf dem Markt, der Atari ST war angekündigt. Nur die waren alle in Regionen, die um ein Vielfaches teurer waren, als das, was der Normalnutzer bereit war, zu bezahlen. So wurden die CPC geschäftlich ein Erfolg und sind nach dem C64 und Spectrum (die aber auch beide zwei Jahre früher erschienen) die drittbest verkauftesten Heimcomputer dieser Zeit.

Der CPC 464 erschien in England am 12.4.1984, der CPC 664 mit eingebauten Floppylaufwerk ein Jahr später im Mai 1985. Ihm war nur eine geringe Produktionsdauer beschieden, schon Ende 1985 stellte Amstrad die Produktion ein, auch weil das im August 1985 – also nur drei Monate später – eingeführte Modell CPC 6128 bei nur geringem Mehrpreis den doppelten Speicher bot. Der CPC 464 blieb in Produktion, auch weil ein Diskettenlaufwerk den Rechner deutlich verteuerte, Danach konzentrierte sich Amstrad auf die PCW-Serie von geschäftlich genutzten Komplettrechnern. Erst 1990, als 8-Bit-Computer völlig veraltet waren, modernisierte man die Produktpalette mit der Plus-Variante. Sie hatten vor allem wesentlich leistungsfähigere Videohardware die mehr Farben und Hardware-Sprites bot. Dies kam jedoch zu spät, ebenso wie der Versuch, mit dem GX4000 eine reine Spielkonsole auf Basis der CPC-Technik im Markt zu platzieren. Dieser Artikel geht nur auf die drei Verkaufsschlager CPC 464, 664 und 6128 ein.

Zu mir selbst

Meine Erfahrung mit Heimcomputern begannen 1982 mit einem TI 99/4a, dessen Technik ich auch in einem Artikel gewürdigt habe. Ich fand ihn aber bald als langsam und in den Möglichkeiten beschränkt. So wollte ich Grafik, der Ti 99/4a konnte aber nur Textgrafik (man konnte Zeichen umdefinieren und dieses Bitmuster ausgeben). Vor allem aber hatte Texas Instruments die Preispolitik, den Computer billig anzubieten und bei dem Zubehör dann zuzulangen. So kostete alleine ein Modul mit Extended Basic das meine Erfordernisse erfüllt hätte schon 348 DM. Der weitere Ausbau mit Speichererweiterung Floppydisklaufwerken war mir zu teuer.

Ich habe den Ti 99/4A nach einigen Monaten weiterverkauft und die nächsten zwei Jahre nach meinem nächsten Computer gesucht. Gefunden habe ich keinen. Entweder hatte er eine Macke, die mir missfiel wie beim C64, das man Grafik auch nur über kryptische Poke Befehle erzeugen konnte oder die billige Tastatur des Spectrums und Oric-1. Oder eine Alternative war zu teuer wie der Dragon 32 oder Spectravideo 328. Zuletzt hatte ich – nur nach Ankündigungen von Zeitschriften auch ein System, das mir gefiel, das Colleco Adam System das auch einen Drucker integriert hatte und zumindest in den USA aggressiv im Preis war – er kam aber nie nach Europa. So wäre das sicher noch längere Zeit weitergegangen, wäre ich nicht beim Weihnachtsbummeln 1984 über ein Schaufenster gestolpert, in dem ein Amstrad CPC 464 mit Farbmonitor Lissajousfiguren malte. Das war genau das, was ich wollte! Ein scharfes Bild, nicht so verwaschen wie beim Fernseher. Die Auflösung schien auch hoch zu sein.

Tests in Zeitschriften waren positiv und ich schrieb die Schneider Werke an, um einige Fragen beantwortet zu bekommen. Die bekam ich auch beantwortet, was ich als guten Service ansah. Mit dem Kauf wartete ich nach den Erfahrungen mit dem Ti 99/4a, wo ich einige Tage fast durchgehend nur damit verbrachte BASIC zu lernen, bis ich das schriftliche Abitur geschrieben hatte. Netterweise war das auch gerade um meinen 20-sten Geburtstag. Danach kaufte ich mir einen CPC 464, trotz des Aufpreises mit Farbmonitor, denn ich wollte ja Grafik und Spiele machen auch nur in Farbe Spaß.

1985 verbrachte ich damit in BASIC zu programmieren, ich änderte eine Textverarbeitung und Datenverwaltung ab. Ende 1985 ging ich dazu über, in Assembler zu programmieren mit Anleitung durch ein Data Becker Handbuch und erweiterte einen Assembler, der dort abgedruckt wurde. Sehr bald kam zu dem Rechner noch der Drucker „NLQ 401“ und das Diskettenlaufwerk, ich muss einer der ersten Käufer gewesen sein, denn es hatte Seriennummer 529.

Ende 1986 kam eine Speichererweiterung der Firma Vortex hinzu, die den Speicher auf 576 KByte anhob, 1987 dann eine Doppelfloppy ebenfalls von Vortex, weil mir auf Dauer die 3-Zoll-Disketten zu teuer wurden. Meine Arbeit verlagerte sich auf CP/M. Programmiert habe ich in Turbo Pascal mit Assembler Inlinecode, geschrieben mit Wordstar und Daten mit Dbase verwaltet.

Ich bin dem CPC 464 sehr lange treu geblieben. Er hat sogar einen IBM PC AT Clone überlebt, den ich zwischendurch angeschafft hatte. Auch auf ihm habe ich mit Turbo Pascal programmiert, aber weil er so viel schneller war, stellte er für mich keine Herausforderung dar, sodass ich ihn nach zwei Jahren wieder verkaufte. Den CPC 464 behielt bis 1993, genauer gesagt den zweiten, denn der erste gab irgendwann mal den Geist auf und wurde durch einen neuen, nun mit Monochrommonitor, weil ich zwar mit dem Computer anfangs gespielt habe, aber doch nicht so intensiv, wie andere, ersetzt. Nun nur noch 289 DM teuer (der Verkaufspreis lag anfangs bei 899 DM). Ich hab ihn erst aufgegeben, als mein Staatsexamen anstand weil ich meinte, man müsste nun bessere Dokumente erzeugen, als sie ein CPC konnte, trotz eigener Erweiterung von Wordstar um Dinge wie Stichwortverzeichnisse und Inhaltsverzeichnisse. Zu dem Examen ist nur zu sagen, das ich sehr bald merkte das die Bezeichnung “Winword“ ernst zu nehmen ist – die Software taugt nur für Wörter, unter Zeitdruck (man hatte 3 Tage Zeit) war das verheerend: das Programm stürzte ab, sobald der Text eine gewisse Größe erreichte. Schließlich hatte ich vier Einzeldokumente, die ich separat ausdrucken musste. So was ist mir beim CPC bei gleich langen Dokumenten nie passiert. Den CPC hatte ich verschenkt, mitsamt dem Zubehör, das war viel. Das bereue ich heute noch, denn es stellte sich heraus, das der Beschenkte ihn weiter verschenkte und ich entdeckte ihn wieder als der, der ihn nun hatte auch nicht nutzte, sondern ich versuchen sollte Windows 3.1 auf einer nur 40 MB großen Platte zu installieren. Ich hätte ihn mitnehmen und einlagern müssen, aber ich war nicht keck genug.

Warum ich das schreibe? Ich glaube ich habe so ziemlich alle Aspekte durchgemacht, die man mit dem CPC machen konnte. Ich habe in BASIC programmiert, ich habe damit gespielt. Meine Lieblingsspiele waren Elite und Kane. Ich habe in Assembler programmiert und Nächte damit verbracht den DU (Disassembler) zu verbessern, sodass ich Programme im Binärcode rückübersetzen und modifizieren konnte. Die meiste Zeit habe ich Pascal programmiert. Turbo Pascal war nicht nur schnell, sondern erlaubte auch größere und komplexere Programme als BASIC. Vor allem aber war es komfortabler und fehlersicher. Ein Programm aus dieser Zeit genannt „Rakete“ wird immer noch weiter entwickelt, auch wenn die heutige Version mit dem Original nur noch wenig gemeinsam hat. Und ich habe mit typischen Businessanwendungen unter CP/M gearbeitet. Ich denke also, ich kann ein qualifiziertes Urteil fällen.

CPC 464 PlatineDie Hardware

Wenn man einen Blick auf die Motherboards der Rechner wirft, sieht man, die sind relativ aufgeräumt. So war ab dem 664 auch noch Platz für den beim CPC 464 externen Floppy Disk Controller. Die verbauten Chips sind mit einer Ausnahme nichts exotisches:

Schauen wir uns die Chips mal genauer an:

Der Prozessor Z80A

Damals spaltete sich die Gemeinde der Heimcomputerbesitzer in zwei Lager auf – Besitzer von Computern, die auf dem 6502 von Mostek oder Z80 von Zilog basierten. Jedes Lager meinte ihr Prozessor der bessere, wobei ich mir sicher bin, dass nur die wenigsten beide in Maschinensprache programmieren konnten und nur so konnte man eigentlich richtig vergleichen. Vielmehr wurde die Diskussion auf Systemebene also z.B. bei der Ausführungsgeschwindigkeit von BASIC-Programmen ausgetragen und in der Ebene gab es jede Menge Einflussfaktoren, die einen Vergleich sinnlos machten.

Beide Prozessoren haben eines gemeinsam – sie gehen jeweils auf einen anderen populären Vorgänger zurück. Beim Z80 war dies der Intel 8080, beim MOS 6502 der Motorola 6800. Damit enden aber schon die Gemeinsamkeiten. Schon der 8080 und 6800 unterscheiden sich im Ansatz der Architektur. Der 8080 hatte viele Register, einige 16-Bit-Rechenoperationen und 16 Bit Lade/Speicherbefehle nahm dazu sechs Register zu drei 16 Bit Registern zusammen. Der 6800 hatte weniger Register und nur zwei die man für den Adresszugriff waren 16 Bit breit.

Diese beiden Tendenzen im Systemaufbau, die man Jahre später CISC und RISC nennen würde, behielten die Nachfolger bei. Der Z80 war noch komplexer, führte weitere Befehle ein, machte die 16-Bit-Register universeller nutzbarer, verdoppelte den Registersatz. Der 6502 war dagegen noch einfacher als der 6800 aufgebaut. Die Registerzahl nahm nochmals ab, die Zahl der Instruktionen ebenfalls. Das verwundert, ist doch bei den Computern som das Prozessoren immer komplexer werden. Doch als der 6800 und 8080 erschienen wurden sie sehr teuer verkauft und Chuck Peddle, der bei Motorola gearbeitet hatte und dann zu Mostek wechselte, meinte das, wenn sie billiger wären, der Markt viel größer wäre und so der Gewinn trotz geringerem Verkaufspreis höher. Er vereinfachte den 6800. Der so entstandene 6502 war dann billiger zu produzieren. Das Auftreten des 6502 der anfangs für nur 25 Dollar verkauft wurde, brachte daher auch die Konkurrenten dazu, ihre Preise zu senken, die vorher bei über 100 Dollar pro Stück lagen. Beim Z80 wollte Fedderico Faggin, der – ebenfalls eine Parallelität – vorher am Design des 8080 beteiligt war, dagegen einige Nachteile im Hardwareaufbau beseitigen und nützliche Befehle einführen.

CPC 6128So sind die Chips schlecht vergleichbar. Ein Z80 hatte doppelt so viele Transistoren auf dem Chip wie ein 6502. Zuerst war auch der 6502 aufgrund des niedrigen Preises erfolgreicher. Commodore die Mostek übernommen hatte, verwandte ihn in ihren eigenen Rechnern wie dem C64 oder VC20. Populäre Rechnerserien mit diesem Prozessor waren die Ataris, Apples oder BBC Mikros. Als der CPC herauskam, hatte sich die Situation gewandelt. Nun erschienen mehr Rechner mit dem Z80 als dem 6502. Inzwischen waren beide Prozessoren alt, und nicht mehr die Transistorzahl und damit Diegröße bestimmte den Preis, sondern die Nachfrage. Der Z80 steckte in zahlreichen geschäftlich genutzten Rechnern, die unter CP/M liefen, (dazu später mehr) aber auch in Heimcomputern wie Sinclairs ZX Rechnern, Spectravideos Rechnern, der MSX-Serie, TRS-80, Jupiter Ace,Video Genie.

Was den Vergleich auch erschwerte, war das man die einzige Zahl, die unstrittig war, nämlich die Taktfrequenz nicht vergleichen konnte. Beide Prozessoren hatten unterschiedliche Maschinenzyklen. Beim 6502 dauerte ein Zyklus mindestens 2 Takte, beim Z80 dagegen 4 Takte. Das klingt zuerst nach einem Nachteil, wäre so ein 6502 doch bei gleichem Takt schneller. In Wirklichkeit war der Unterschied nur auf den Wechsel eines internen Status einmal bei jedem Flankenwechsel und einmal beim Flankenabfall zurückzuführen, sodass auch der 6502 vier Zyklen in zwei Takten hatte. Zudem war er nicht so hoch taktbar. Der Maximaltakt lag beim 6502A bei 2 MHz und beim Z80A bei 4 MHz. So gesehen gaben sich auch hier beide Prozessoren nichts. Allerdings hatte der 6502 weniger leistungsfähigere Befehle und die Benutzung dieser machte einen Z80 etwas schneller und sparte Codegröße ein. Beim Dhyrstone Benchmark, eigentlich gedacht für größere Rechner, dort aber ein damals populärer und wegen der Umfangreichste der Tests auch zuverlässiger Benchmark liefert bei Maximaltakt folgende Resultate:

Prozessor

Takt

MIPS

Dhrystones

6502A

2 MHz

0,86

64 - 73

Z80A

4 MHz

0,58

81 - 145

Auch hier bekommt man keine eindeutige Antwort, weil es der Dhyrstonewert vom Compiler abhängt. Auch die Anzahl der Instruktionen, die abgearbeitet werden, sagt wenig aus. Hier führt der 6502, weil die Befehle viel kürzer als beim Z80 sind, aber dafür leistet ein jeder Befehl auch weniger. Paradebeispiel sind die Z80-Befehle LDDR / LDIR, mit denen der Z80 mit einem Befehl einen ganzen Speicherblock kopieren kann. Dies ersetzt sechs Anweisungen des 8080, die 42 Takte dauern und 10 Bytes umfassen mit einem Befehl der 21 Takte dauert. Durch diese Fähigkeit war ein gut designtes Z80 System schneller als ein gut designtes 6502 System bei halbem Takt.

Der Maximaltakt

Der Z80 war in mehreren Versionen verfügbar, die sich im Maximaltakt unterschieden: Der ursprüngliche Z80 hatte einen Maximaltakt von 2,5 MHz. Der in der CPC-Serie verwandte, aber auch die meist eingesetzte Version überhaupt, war der Z80A mit maximal 4 MHz. Es folgte die Z80B mit 6 MHz und die Z80C, rasch in Z80H umbenannt, mit 8 MHz. Es gab aber nur wenige Rechner mit ihnen. Der Grund war der Preis. Zum einen waren die Prozessoren überproportional teurer, daneben auch die Periphierebausteine, die ebenfalls mit dem höheren Takt zurechtkommen mussten. Vor allem aber erforderte dies sehr schnelle RAM-Bausteine. Sowohl der 6502 wie Z80 griffen wegen ihrer kurzen Befehle sehr oft auf das RAM zu. Ein Z80A mit 4 Mhz erforderte mindestens RAM mit 250 ns Zugriffszeit. Im CPC waren RAM mit 150 ns Zugriffszeit verbaut - eine 6 MHZ CPU hätte mit diesen Speichern arbeiten können, die 8-MHz-CPU hätte 120 ns Zugriffszeit erfordert. Immerhin beherrschen die Z80 es Wartezyklen einzuschieben, wenn das RAM nicht schnell genug ist. Der Autor kennt einige Umbauten des CPC, bei denen die Z80A durch einen Z80B ausgetauscht wurden und der Oszillator ebenfalls. 5 MHz waren so möglich, allerdings funktionierte dann der Diskettenkontroller, der auch seinen Takt über den Bus bezog nicht mehr. Der Hauptgrund warum die Z80B nicht eingesetzt wurde war das Systemdesign. Alles im CPC leitete sich von einem Mastertakt von 16 MHz für die ULA ab. Durch vier geteilt wurde daraus der CPU-Takt, durch 16 geteilt der Takt für den Videochip und Soundgenerator. Man hätte also ein schnelleres ULA benötigt und 16 MHz waren für dieses schon hoch. Die ersten ULA erhielten sogar ein Kühlblech. Noch Bedeutender: Bildschirmauflösung und Refreshrate waren auf 1 MHz für den Videokontroller und 2 MHz für das Auslesen der Daten durch das ULA ausgelegt. Hätte man deren Taktfrequenz erhöht, hätte man, da man den Bildschirmspeicher nicht vergrößern konnte, die Bildwiederholfrequenz erhöhen müssen auf 62 Hz bei 5 und 75 Hz bei 6 MHz Takt. Die Frage ist natürlich, ob dies der Monitor mitgemacht hatte. Kurz: die gesamte Systemarchitektur basierte darauf das sich alle Takte von 16 MHz als Mastertakt ableiteten.

Ein weiterer Punkt der stärker den Maximaltakt begrenzte war das der Speicher nicht nur die CPU, sondern auch das Gatearray bedienen musste. Pro Mikrsekunde gab es maximal einen CPU Zugriff aber zwei des Gate Arrays. Daraus leitet sich eine maximal Zykluszeit von 333 ns ab. Die Zykluszeit der verbauten 4164-150 ns betrug 280 ns und lag etwas darunter aber nicht viel. Es gibt Übertaktungen des CPC auf 6 MHz. Aber neben Nachteilen ist klar das die RAM ohne Wartetakte dieses Tempo nicht erlauben, sodass der unten abgebildete Benchmark sich auch nur von 301 auf 258 verbessert also nicht um 50 % sondern nur 16 %.Das entspricht übrigens ziemlich genau dem Unterscheid der Zykluszeiten (333 zu 280 ns = 18 % schneller).

Der 8255

Zu jedem Prozessor gab es vom Hersteller eine Reihe von Zusatzbausteinen. Sei rüsteten Features nach, die man je nach Computersystem brauchte wie die serielle Kommunikation (RS-232 Schnittstelle z.B. für Modems, DMA-Zugriff für andere Bausteine oder den Diskettenkontroller, Timer/Zähler für exakte Timings, z.B. das periodische Abfragen von Messwerten. Der populärste dieser Bausteine war die PIO für den parallelen Zugriff. Den brauchte man für die Druckerschnittstelle nach Centronics, aber praktisch auch für jeden anderen „langsamen“ Zugriff, z.B. die Abfrage der Tastatur. Ohne diesen Baustein müsste der Z80 permanent sein Programm unterbrechen, um für einen Mikroprozessor langsame Dinge zu erledigen. Das geht und wurde bei einfachen Systemen wie Lernkits auch so gemacht, bedeutet wegen des für jeden Wechsel des Tasks notwenigen Sichern der Register und Sprünge aber einen Geschwindigkeitsverlust, zudem kann so, wenn eine Aufgabe nicht unterbrochen werden kann (Zugriff auf die Floppy Disk oder Kassettenrekorder), es sein das Zeichen bei der Eingabe verloren gehen.

Der Amstrad CPC verwandte nicht den Baustein von Zilog, die Z80A PIO, sondern den von Intel den 8255. Der 8255 war für den 8080 entwickelt worden. Für ihn sprachen zwei Vorteile. Der erste war, dass er in vielen Computern eingesetzt wurde, darunter dem IBM PC und so durch eine hohe Stückzahl billiger als die Z80 PIO war. Der zweite Vorteil war, das einer der drei 8 Bit Ports in zwei 4 Bit Ports aufgeteilt werden konnte. Das nutzte man für den Anschluss von Joysticks.

Der 8255 wurde im Z80 relativ einfach verdrahtet, sodass über die Portadressen F4xx bis F7xx die Datenregister der drei Ports und das Steuerregister angesprochen werden. Port A ist direkt mit dem Soundchip verbunden. Die gesamte Programmierung des Soundchips erfolgt über diesen Port. Er wird also meist nur als Ausgang genutzt. Allerdings fragt der Soundchip selbst die Tastatur 50-mal pro Sekunde ab und für das Holen der Zeichen wird der Ausgang periodisch zum Eingang umgeschaltet.

Port B wird bitweise genutzt, um verschiedene Eingaben abzufragen:

Port C ist immer ein Ausgabeport und ebenfalls bitweise kodiert:

Der 6845

Der 6845 ist je nach Nomenklatur ein CRTC (Cosmic Ray Tube Controller) oder VDC (Videodisplaycontroller). Beide Begriffe beschreiben seine Funktion recht gut. Er ist für die Kontrolle des Videosignales zuständig.

Als Laie denkt man sich, die größte Herausforderung der Videodarstellung ist die, das sie Speicherplatz kostet – beim CPC 363/664 ist ein Viertel des Arbeitsspeicher nur für den Bildschirminhalt reserviert, erheblich mehr als bei anderen Computern. Die Hauptherausforderung ist aber die Übertragung der Bildsignale an den Monitor.

Im höchsten Modus 2 überträgt der CPC 640 x 200 Pixel 50-mal pro Sekunde (da dazu noch nicht dargestellte Zeilen gehören, sind es in Wirklichkeit sogar 310 Zeilen) das sind insgesamt 6,4 Mpixel/s. Auch wenn kein Computer die Pixel einzeln übertragen würde, sondern dafür ein Schieberegister verwendet, sind es immer noch 800.000 Byte pro Sekunde – eine Datenrate, die der Z80 niemals schafft. Der für Ein-/Ausgaben spezialisierte Z80-Befehl OUTIR benötigt 21 Takte für ein Byte, könnte bei 4 MHz als noch mal 200.000 Bytes pro Sekunde übertragen. Lösungen bei denen die CPU die Bildschirmausgabe erledigt haben daher eine geringe Auflösung. Der Sinclair ZX80 tat dies und seine mit 3,25 MHz getaktete CPU schaffte es gerade noch, die 256 x 192 Pixel die er bot, 25-mal pro Sekunde zu übertragen. Jedes Mal wenn man auf eine Taste drückte und so einen Interrupt auslöste, fror das Bild ein. Es hat sich daher eingebürgert, dafür spezialisierte Bausteine zu verwenden. Man kann die Logik für das Übertragen der Bytes, das heißt das synchrone Auslesen mit dem Verlauf des Elektronenstrahls auf dem Bildschirm, übertragen in Schieberegister, sowie die assoziierte Kontrolllogik (am Ende einer Zeile einen Horizontalen Rücklauf als Signal übertragen, am Ende des Bildschirms einen vertikalen Rücklauf) in einen kundenspezifizierten Baustein packen. So geschah dies beim Sinclar Spectrum und den Oric Computern. Alternativ kann man einen Videocontroller oder einen Videoprozessor einsetzen. Der 6846 ist ein Videocontroller. Er überträgt nicht die Bildinformation an den Monitor, er erzeugt nur die gesamten Signale für die Steuerung des Elektronenstrahls, das heißt die horizontale und vertikale Synchronisation, die Verschiebung des Elektronenstrahls pro neuer Zeile und er überträgt an den Computer, welche Adresse im Speicher gerade übertragen werden soll und ob der Inhalt sichtbar ist. Er kontrolliert also die Ausgabe, führt sie aber nicht durch. Ein Videoprozessor macht zusätzlich noch die Übertragung. Er hat dann auch Kontrolle über den Bildschirmspeicher, der entweder von der CPU getrennt ist (sie kann dann nur über den VDP auf den Speicher zugreifen) oder geteilt wird, dann muss der Zugriff beider Prozessoren zeitlich genau abgestimmt sein. Videoprozessoren sind der im C64 verbaute VIC oder der TMS 9928/TMS 9929 im Texas Instruments Ti 99/4 oder der MSX-Serie.

Der 6845 ist, wenn man es genau sieht, nicht einmal ein Chip, der für die Darstellung von Grafik gedacht ist. Stattdessen ist er eigentlich für die Ausgabe von Text gedacht. Er kann mit 14 Adressleitungen maximal 16.384 Zeichen adressieren – mehr als auf einen Monitor gehen und einige Computersysteme nutzen dies aus und führten so schnelles Scrolling in einem Textbereich, der größer als der Bildschirm war, ein. Für die Ausgabe der Pixelmuster – ein Zeichen bestand beim CPC aus 8 x 8 Pixeln, woanders aus bis zu 10 x 16 Pixel hatte der 6845 noch eine 5 Bit große Zeilenadresse ind er man das zu jeder Zeile gehörende Pixelmuster auslesen konnte. So konnte er theoretisch 512 KByte (16.384 Zeichen mit je 8 Bit Breite und 32 Bit Höhe) adressieren.

Im CPC verwandte man den VDC recht ungewöhnlich, denn anders als viele andere Computer dieser Zeit hat der CPC gar keinen Textmodus, sondern nur einen Grafikmodus.

Die Adresse wird dabei sowohl vom Gate Array, wie auch den Adressleitungen des 6845 und den Zeilenadressen für Zeichencodes gebildet.

Der 6845 hat viele Optionen, über die man die Größe und Lage des Bildes programmieren kann, er bietet aber auch einen Hardwarecursor und einen Lichtpen-Anschluss, letzterer wird beim CPC aber nicht genutzt.

Wie aber kommen die Informationen nun zum Monitor? Dafür ist das Gate Array verantwortlich:

CGA KarteDas Gate Array

Das Gate Array, auch ULA genannt, ist ein vom Hersteller vorprogrammierter Baustein. Er besteht in unprogrammiertem Zustand aus einer Matrix von Gattern, die miteinander verbünden wird. Und durch Durchbrennen von Verbindungen werden die logischen Verknüpfungen gebildet. Gate Arrays waren in vielen Computern ihrer Zeit üblich, ohne sie benötigte man sehr viele niedrig integrierte Bausteine der 74xxx Serie, um alle Funktionen eines Gate Arrays durchzuführen. Beim Übergang von ZX80 zum funktionsgleichen ZX81 sparte das Gate Array z.B. 16 Chips ein. Ein anderes Beispiel ist die hier abgebildete CGA-Karte für den IBM PC. Auch sie setzt einen 6845 als Videocontroller ein, sie hat die gleiche maximale Auflösung wie der CPC, nur fehlt der Mode 0 und die Farben sind bei ihr nicht frei wählbar. Trotz dieser Minderfunktionalität benötigt diese Karte viel mehr Bausteine als ein kompletter CPC, da sie kein Gate Array einsetzt.

Das Gate Array hat im CPC verschiedene Funktionen. Als einziges anderes IC kann es auch auf den Daten- und Adressbus der CPU zugreifen und damit auf ROM und RAM. Das muss es, denn es überträgt die Information aus dem Bildschirmspeicher an den Monitor, jede Mikrosekunde überträgt es zwei Bytes an einen weiteren Baustein, der diese 16 Bits dann getaktet zum Monitor weiterleitet. Damit sich CPU und ULA nicht in die Quere kommen, hat man den Z80 so verschaltet das ein Zugriff des Gate Arrays einen Zugriff der CPU verhindert, sie wartet dann. Damit dies keine zu große Performanceeinbuße bewirkt, macht man sich die Abarbeitung der Befehle in Maschinenzyklen zu Nutze. Jeder Zyklus dauert beim Z80 vier Takte. In in den ersten drei wird das RAM angesprochen. Im vierten Zyklus nie, dann kann das Gate Array zugreifen. Die Sache hat nur einen Haken – beim letzten Maschinenzyklus eines Befehls kann der auch nach weniger als vier Takten beendet sein. Der Z80 hat zahlreiche Befehle, die 6 oder 10 Takte und nicht 8 oder 12 benötigen. Die Befehlsausführungszeit wird durch den Zugriff des Gate Arrays auf vielfache von 4 Takelten verlängert. Das bedeutet, das der Z80 im CPC nur so schnell ist wie eine Z80 ohne Wartezyklen mit 3,2 MHz. Der Zugriff auf den Bildschirmspeicher kostet also 20 % der Prozessorleistung. Das Gate Array übernimmt auch die Übertragung der Farbrinformationen und die Interpretation der Bildinformationen, die je nach Grafikmodus anders ist. Wie beim CRTC erläutert, benötigt man für so viele Bytes (real sind es mit nicht sichtbaren Rändern 63 Zeichen pro Zeile und 310 Zeilen also 19.530 Bytes pro Bild und 976.500 Bytes bei 50 Hz Bildwiederholrate pro Sekunde) eine hohe Übertragungsrate und das Gate Array ist daher hoch getaktet mit 16 MHz viermal höher als die CPU. Technisch sind es aufgrund der nicht sichtbaren Ränder sogar noch mehr: 63 Zeichen (Ausgangsbasis Modus 1 mit 40 Zeichen/Zeile) x 2 Bytes/Zeichen  x 310 Linien x 50 Hz = 1.953.000 Bytes/s

Die zweite wichtige Aufgabe der ULA ist das Bank-Switching. Der 64 KByte große Adressbereich ist in vier Bänke von je 16 KByte unterteilt. In den obersten 16 K kann ein System-ROM liegen oder ein Erweiterungs-ROM. In den untersten 16 K kann ein System ROM liegen oder RAM. Die Adressen von ROM liegen immer fest, In den beiden anderen liegt immer RAM. Das Gate Array blendet sowohl die ROMs ein oder aus führt aber auch ein Mapping der acht Bänke des 6128 auf die vier Bänke, die maximal ansprechbar sind, durch. Dazu später noch mehr.

Der AY-8912

Der AY-8912 ist ein zu 8 Bit Zeiten sehr häufig eingesetzter Soundchip, von allen eingesetzten IC ist er wohl am häufigsten in anderen Systemen eingesetzt. Technisch ist er ein PSG – ein programmierbarer Soundgenerator. Der AY-8912 ist eine vereinfachte Version des 8910 mit nur einem anstatt zwei 8 Bit Ports. Er hängt an dem 8255, weil der Soundchip ursprünglich nicht als universeller Soundchip, sondern für Videospiele konzipiert wurde, und hat daher einen zusätzlichen 8-Bit-Port für Ein/Ausgaben. Beim CPC wird der Port genutzt, um die Tastatur abzufragen.

Der AY-8912 ist ein dreistimmiger Soundgenerator, das heißt er erzeugt maximal drei Töne, vergleichbar drei Tasten, die gleichzeitig gedrückt werden auf einem Klavier oder drei Saiten auf einer Gitarre. Allerdings kann man die Tonhöhe und die Lautstärke jedes Tons durch eine Hüllkurve beeinflussen, sodass auch mit dieser Einschränkung gut klingende Musk erzeugt werden kann. Dazu kommt „Rauschen“, das für Spiele als Explosionsgeräusch eingesetzt wird. An die Leistungsfähigkeit eines Soundprozessors wie im C64 kommt er nicht heran, er wurde aber auch in größeren Rechnern wie dem Atari ST eingesetzt.

Der µpd 765

Die Speicherung von Daten auf einer Floppy ist komplex. Zum einen gibt es wie beim VDC das Problem des Timings, während die magnetisierte Oberfläche unter dem Schreiblesekopf vorbeifliegt, muss synchron Bit für Bit gelesen oder geschrieben werden. Der FDC 765 unterstützt alle Formate dies es damals gab (einfache/doppelte Dichte, 40 oder 80 Spuren, Single Sided oder Double Sided). Zum anderen kommen noch Verwaltungsinformationen zu jedem Sektor hinzu wie Kennnummern und Prüfsummen und es gibt definierte Lücken um Zeit zur Verarbeitung zu lassen. All das macht die Aufzeichnung der Daten zu einer komplexen Aufgabe. Nur beim Apple II machte dies der Hauptprozessor, was selbst Stephen Wozniak, als bekanntes Hardwaregenie als sehr anspruchsvollste Arbeit bezeichnete die ihn auch viel Zeit kostete. Andere Lösungen verwandten einen eigenen Prozessor für diese Aufgabe. So bei den Rechnern von Commodore (CBM Serie, VC20, C64) und dem Victor Sirius.

Der µpd 765 ist ein preiswerter und verbreiteter Diskettenkontroller. Beim CPC wurden seine Fähigkeiten aber nicht voll ausgenützt. So kann er vier Laufwerke ansteuern, der Kontroller unterstützt aber nur zwei. Daneben hat er drei Modi:

Die Floppy-Disk-Laufwerke beim CPC waren einseitig und hatten eine maximale Datenrate von 250 kbit/s. Von anderen Herstellern gab es auch doppelseitige, die dann 500 kbit/s erreichten. Das klingt heute nach wenig, überforderte jedoch die CPU. Mit Ausnahme des IBM Formats, bei dem es weniger Sektoren pro Spur gab, hatten alle Sektoren einen Skew von 2, bei doppelseitigen Laufwerken sogar einen von 3. Das bedeutet: Nach Sektor #1 folgt nicht gleich Sektor #2, sondern #3, und Sektor #2 ist der dritte Sektor. In der Zeit nachdem ein Sektor eingelesen war konnte ihn nun das Programm aus dem temporären Puffer in die Stelle im RAM kopieren, wo er hingehörte. Als Preis dafür benötigte man zwei Umdrehungen um eine Spur komplett einzulesen, halbierte also die Datenrate auf maximal 125 KBit (166 Kbit bei doppelseitigen Laufwerken), was netto (die Bruttodatenrate bezieht sich auf die unformatierte Kapazität von 250 KByte) maximal 11,25 kbyte/s entsprach. Für die Formatierung, Lesen und Schreiben sowie Abfrage von Informationen hatte der FDC 15 Kommandos. Eine Festplatte hätte man übrigens nicht anschließen können. Neben der Mechanik – der Anschlussstrecke hat mehr Kontakte – erfordert dieser einen Harddiskcontroller, damals noch eine eigene Steckkarte.

Speicher

8 Bit Heimcomputer – der Begriff ist etwas schwammig, nicht klar definiert, aber man könnte als minimale Definition wohl die Einstiegspreisklasse, möglicher Betrieb ohne Monitor und Floppydisklaufwerk definieren – gab es seit 1979. Seitdem legten sie im Speicher zu. Die ersten Modelle wie der ZX80 oder VC20 hatten 1 bis 5 KByte RAM. Es folgten Rechner mit 16 KByte wie der Ti 99/4a oder das Video Genie. Danach logischerweise die 32-KByte-Generation wie der Dragon 32. Kurzzeitig gab es Rechner mit 48 KByte Speicher, was bei den üblichen 16 KByte ROM genau den Adressbereich ergab wie der Sinclair Spectrum, Oric Atmos. Doch der C64 legte schon Ende 1982 die Messlatte höher auf 64 KByte RAM, das Maximum was ein 6502 oder Z80 adressieren konnte. Danach gab es einige Jahre lang nur neue 64 KByte Computer und in diese Tradition reihte sich dann auch der CPC 464 als Erstling ein.

Die Speicherpreise sanken in den Achtzigern einige Jahre lang rapide ab. So bauten ab 1985 Firmen dann Rechner mit 128 KByte RAM, so der Atari 130 Xe, der Commodore C128. Da nur maximal 64 KByte am Stück adressierbar waren, waren nun Techniken notwendig, wie dieser zusätzliche Speicher nutzbar ist. Die beste Lösung hatte der C128 mit einer Memory-Managment Unit. Amstrad legte den CPC 6128 auf, bei dem unter BASIC die zusätzlichen 64 KByte RAM nur mit Einschränkungen nutzbar waren, das galt aber auch für andere Rechner die auf eine schon existente Architektur aufbauten wie den Atari 130 XE.

Bank Switching

Ein 8-Bit-Prozessor hat einen maximalen Adressbereich von 64 KByte. Bei mehr Speicher kann ,am entweder auf einen Teil nicht zugreifen oder muss Bank-Switching betreiben. Der CPC 464 hat 96 KByte ROM und RAM, der 664 schon 112 KB Speicher und der 6128 sogar 176 KByte Gesamtspeicher. Technisch gesehen ist Bankswitching relativ einfach zu realisieren: Man benötigt einen Speicher für die aktuelle Konfiguration der RAM-Belegung und einen Baustein, der die einzelnen Bankselekt Signale für die verschiedenen Bausteine erzeugt, einen Multiplexer/Decoder z.B. der 74138 der acht Leitungen zur Verfügung stellt oder der 74139 für vier Leitungen. Derartige Chips wurden auch in Speichererweiterungen von Drittherstellern verwendet.

Die Größe einer Bank kann man beim Design des Rechners festlegen, etabliert hat sich eine Größe von 16 KByte, also ein Viertel des Adressraumes. Es ist ein guter Kompromiss zwischen den Anforderungen und Nutzen:

Je kleiner die Bank ist, desto größer kann ein Programm sein, das von Bankswichtng nichts weiß aber in einer solchen Umgebung laufen soll, z.B. ein Programm unter CP/M Plus.

Je kleiner eine Bank ist, desto mehr mögliche Kombinationen der Bänke gibt es. Bei einer 16 K Bank und 8 Banks im System gehen diese noch in ein 8-Bit-Statuswort, das Maximum was eine Z80 in einem Schritt ausgeben kann. Ebenso wird es problematisch, bei vielen kleinen Banken (von z.B. 8 KB Größe) das System aus Adressdecodern/Multiplexern und Registern aufzubauen.

Auch CP/M Plus war daher auf ein System mit 16 KB großen Banken ausgelegt. Die hohe Kunst des Bankswitching ist es, sich nicht den Boden unter den Füßen wegzuziehen. Sprich ein Programm muss darauf achten, das beim Bankswitching nicht der Adressbereich verloren geht, den man gerade selbst braucht. Dazu ein einfaches Beispiel wie dies bei vielen 64K Heimcomputern dieser Zeit funktionierte.

Diese hatten ein ROM, je nach Architektur am Beginn oder Ende des Adressbereiches das beim Einschalten aktiv war und den BASIC-Interpreter enthielt. Wenn er 16 KB groß war, dann konnte er nie auf mehr als 48 KB Speicher zugreifen und in der Regel ging von dem Speicher auch noch der Bildschirmspeicher ab. Die 16 KB, die das ROM belegte, waren von BASIC aus nie zugänglich. Dazu musste man dann entweder ein Betriebssystem booten, das selbst im RAM verbleibt wie CP/M, oder man musste ein Maschinenspracheprogramm einsetzen, z.B. ein Spiel. Einer dieser Computer ist z.B. der C64, der unter Basic nur 38 KB frei hat, denn 20 KB belegt das ROM. So gesehen war der Sinclair Spectrum mit nur 48 KB RAM ehrlicher und er hatte wegen eines nur 16 KB großen ROM auch 41 KB unter BASIC frei. Beim Schneider CPC waren es aber 43 K durch raffiniertes Bankswitching. Den Aufbau beim CPC 664 zeigt folgende Tabelle:

Adresse (hexadezimal)

RAM

ROM

Zusatzrom

C000-FFFF

Bildschirmspeicher

BASIC-Interpreter

AMSDOS

8000-BFFF

BASIC + System



4000-7FFF

BASIC



0000-4FFF

BASIC + System

Betriebssystem


Beim Start initialisiert zuerst das Betriebssystem alles und übergibt dann die Kontrolle an den BASIC-Interpreter. Der kann praktisch das ganze RAM nutzen bis auf den Bildschirmspeicher. Zwei Bereiche sind für das System reserviert. Unten sind Restarts, eine Besonderheit des Z80, die man sehr schnell aufrufen kann. Die meisten davon sind Bankswitching-Routinen, blenden RAM oder ROM ein. Darüber beginnt der BASIC-Bereich wobei die ersten 303 Bytes als Befehlspuffer dienen. Dann kommt das BASIC-Programm, das sich über drei Banks hinziehen kann. Oben ist ein erheblich größerer Systembereich. Es sind Springvektoren für Betriebssystem und BASIC Interpreter. Da unter BASIC, auch beim 6128, die dritte Bank die einzige ist, die nie gewechselt wird, kann man so das Betriebssystem und den Interpreter aufrufen, auch wenn dies aus einer RAM-Only Konfiguration aus erfolgt. Dann kommen Puffer für Betriebssystem, BASIC Interpreter und AMSDOS in diesem Bereich, die aus dem gleichen Grund immer erreichbar sein müssen. Bei der Abarbeitung übersetzt der BASIC-Interpreter eine Zeile in Maschinencode, kopiert diesen in einen der Puffer und ruft den Code dann auf. Der wird in vielen Fällen das Betriebssystem benötigen und über die Sprungleiste wird dann die Routine im Betriebssystem aufgerufen und dieses eingeblendet. Für Bildschirmausgaben wird der BASIC-Interpreter vom Betriebssystem durch den Bildschirmspeicher ersetzt. Ist die Zeile wieder ersetzt, so wird der ursprüngliche Zustand hergestellt. Diese Sprungleiste unterhalb des BASIC Interpreters erlaubt zudem ein maschinennahes Programmieren und erhält trotzdem die Kompatibilität innerhalb der CPC-Reihe, denn wo eine Routine im ROM beginnt, ist bei jedem Modell etwas anders.

Analog funktioniert es, wenn man Zusatz-ROMs ansprechen will. AMSDOS ist eines dieser und ab dem CPC 664 schon eingebaut. Das Betriebssystem initialisiert beim Start die ROMs mit der internen Kennung 7 bis 1 (0 ist der BASIC-Interpreter). 7 ist AMS-DOS, die Speichererweiterung die mein CPC 464 hatte, trug die Nummer 6. Diese können dann noch andere ROMs einbinden, bis zu 252 sind möglich. Auch diese ROM liegen parallel zum BASIC Interpreter in den obersten 16 KByte, verdecken diesen also und nutzen die dritte Bank als Zwischenspeicher wenn nötig.

Beim 6128 hat man den Speicher auf 128 KB vergrößert. Ohne die Systemarchitektur zu ändern, konnte man nur eine Bank switchen, das war die Zweite zwischen 4000 und 7FFFH. In ihr befinden sich nie Systeminformationen. Man kann sie nutzen, um dort Kopien des Bildschirms anzulegen oder eine Datenbank. Für CP/M, wo es eine eigene Version mit Bankswitching gibt, hat man eine zweite Konfiguration geschaffen, die anders als unter BASIC wirklich 61 von 64 KByte des Speichers frei lässt. Hier die Speicherkonfiguration unter CP/M Plus:

Block

CP/M

TPA

Extra

C000-FFFF

Z4 Gemeinsam

Z4

Z4

8000-BFFF

N3, BIOS, BDOS, Sprungvektoren

Z3


4000-7FFF

N2 Bildschirm

Z2

N4: CCP, Hash Tabelle

0000-4FFF

N1, Betriebssystem ROM, BIOS, Sprungvektoren

Z1


N steht für den normalen Speicher (auch vorhanden beim CPC 464/664) und Z für die zusötzlichen 64 KByte. Es gibt einen gemeinsamen Block, an dessen Ende vor allem Sprungvektoren und Umschaltroutinen sich befinden. So schaufelt CP/M von 64 KByte ganze 61 KByte drei. Dafür wird der erweiterte Speicher genutzt. CP/M selbst sitzt größtenteils im „normalen“ Speicher, also dem, den schon die Vorgängermodelle haben. CP/M Plus benötigt für sich selbst mindestens 16 KByte, so viel gibt es im zweiten Block wegen der auch unter CP/M vorhandenen Sprungvektoren und Buffer des Betriebssystem-ROMs nicht. Daher befindet sich ein Teil des BIOS parallel zum Betriebssystem ROM. Der Bildschirmspeicher wird bei CP/M verlagert in die zweite Bank, da im obersten Block immer der gemeinsame Bereich ist. Es sind dann noch 16 KByte frei, die eingeblendet werden, wenn kein CP/M Programm läuft, sondern der Commandointerpreter. Dieser befindet sich dort, so muss er nicht jedes Mal von der Diskette geladen werden. Dazu sind dort Puffer für das Lesen/Schreiben von Tabellen und Hashtabellen, die einen schnelleren Zugriff auf das Verzeichnis der Diskette bieten. Man sieht also: wenn nicht durch ROMs an festen Stellen die Architektur vorgegeben ist, kann man aus den 128 KByte RAM erheblich mehr machen.

Der große Arbeitsspeicher für die Grafik war eine Besonderheit des CPC. Er ermöglichte zum einen einen 80 Zeichen-Modus, ebenfalls ein Unikat in dieser Preisklasse. Amstrad hat aus der Not eine Tugend gemacht: da beide ROMs jeweils 16 KByte groß sind, sind für je ein ROM 16 Kbyte RAM nicht zugreifbar. Für den BASIC-Interpreter der aktiv ist (das Betriebssystem ist eine Sammlung von Routinen) sind die obersten 16 KByte daher nicht ansprechbar und so ist der Bildschirmspeicher 16 KByte groß (genauer gesagt sind es 16.000 Byte, doch die nicht benutzten 384 Byte sind nicht am Stück, sondern am Ende von 2000 Zeichen zu je 8 Zeilen pro Zeichen (32). Bei anderen Computern lag die normale Auflösung bei 256 x 192 Pixeln (ZX Spectrum, MSX-Serie) oder 320 x 200 (C64). Viele Heimcomputer hatten gar keinen Grafikmodus, sondern nur einen Textmodus und Grafik wurde durch vordefinierte Zeichen erzeugt die Spielfiguren, Linien, Schraffuren etc. umfassten. Andere Rechner sparten Speicherplatz ein, indem man Bitmuster und Farben trennte. Beim Spectrum hatten z.B. je 64 Pixel eine gemeinsame Vorder- und Hintergrundfarbe, beim VDP TMS 9928/9, ein häufig eingesetzter VDP setzte die Farben für je 8 Pixel. Das führte zu unschönen Effekten, wenn Spielfiguren sich fließend bewegten und eine solche Grenze überschritten „Color-Clash“ genannt.

MMU vs Bank Switching

Zu Ende der 8 Bit Ära war die 64-KByte-Speicherbregrenzung ein offensichtliches Hindernis. Anfang 1986 kosteten 256 KByte Speicher gerade mal noch 80 DM. Es gab neue Versionen der Prozessoren wie der 8502 als Nachfolger des 6502 oder der HD64180 / Z180 als Nachfolger des Z80. Diese hatten eine MMU integriert. Eine MMU unterscheidet sich vom Bankswitching dadurch, dass sie flexibler ist. Sie stellt einen größeren Adressbereich, typisch 512 KByte bis 1 MByte zur Verfügung und kann innerhalb dessen kleinere Einheiten – typisch 4 KByte austauschen. Dazu kommt die Fähigkeit gemeinsame Bereiche, typisch unten und oben an der 64-KByte-Grenze zu definieren, die immer vorhanden sind. Wird dies genutzt, so kann man auch bei einem Rechner mit eingebauten ROMs mehr Speicher freischaufeln. Der C128 hatte einen solchen Prozessor mit MMU eingebaut und damit 122 von 128 KByte Speicher nutzbar (aufgeteilt je zur Hälfte in Programm und Variablenspeicher für BASIC). Die Firma Vortex erwägte eine Upgradekarte mit HD64180, die ähnliches beim CPC gekonnt hätte, setzte sie aber nie um.

Nicht jedes System mit 64 KByte RAM setzte übrigens Bank-Switching ein. Etwa zeitgleich zum CPC erschienen die MSX-Geräte. Auch sie hatten ein komfortables BASIC, das auch den Namen gab (Microsoft Extended BASIC). Aber dieses belegte immer 32 KByte Speicher. Wer einen Computer mit mehr als 32 KByte Speicher kaufte, hatte unter BASIC nichts davon. Insgesamt ist die Speichernutzung beim CPC 464/664 sehr gut gelungen, denn von den 64 KByte sind, wenn man den Bildschirmspeicher berücksichtigt, für den Anwender tatsächlich über 42 KByte nutzbar, den Rest benötigen Betriebssystem und BASIC Interpreter für Verwaltungsinformationen / Sprungleisten. Die 43.904 Bytes nach dem Einschalten waren denn auch Spitze bei 8 Bit Computern ohne MMU. (bei Einsatz eines Floppy Disks belegten dessen Sektorpuffer weitere 1.280 Bytes). Beim 6128 ist zumindest unter BASIC die Nutzung suboptimal. Bei der Speichererweiterung von Vortex konnte man in dem Bereich z.B. einen Druckerspooler einrichten und neun Bänke für BASIC-Programme nutzen. Ein Puffer für die Floppy Disk wäre auch eine gute Nutzung der zusätzlichen 64 KByte. Das war auch ein Grund warum ich beim 464 blieb nachdem der erste kaputtging. Ich baute nur die Speichererweiterung in den neuen ein.

Betriebssoftware

Ich halte die Konzeption hinsichtlich Software und ROM-Erweiterungen für gelungen. Die 32 KByte ROM unterteilen sich in Betriebssystem und BASIC-Interpreter. Beim Start ist das Betriebssystem aktiv. Es sucht nach ROMs im oberen Adressbereich. Jedes ROM hat eine Kennung. Die ersten 7 ROM werden in sinkender Reihenfolge initialisiert, das BASIC-ROM als Letztes. Das ist eine gute Idee, wie man das System erweitern kann. Die Betriebssysteme für Disketten – auch bei den 664 und 6128, wo diese schon eingebaut waren, hatten immer Nummer 7. Die große Zahl von maximal 252 ROM erlaubt es z.B. auch Spiele als Module einzusetzen, auch wenn diese normalerweise auf Disketten oder Kassetten vertrieben wurden. Sinnvoll war dies vor allem bei anderen Programmiersprachen oder Assembler, die auch als ROM-Varianten angeboten wurden. Sie belegten so keinen Platz im Arbeitsspeicher, der so für den Programmquelltext und das kompilierte Programm zur Verfügung stand. ROMs konnten Befehle definieren die mit dem senkrechten Strich (|) anfingen.

Das Betriebssystem in den untersten 16 KByte enthält Routinen um die Hardware anzusprechen und zerfällt in die Teile:

So ist auch das ROM der nachfolgenden Rechnern aufgebaut, also auch des 664 und 6128, obwohl in diesen kein Kassettenrekorder mehr verbaut ist, es gibt aber noch den Audioausgang für den Anschluss eines Kassettenrekorders. Dessen Routinen belegten immer 1.832 Bytes, die beim 664 und 6128 daher weitestgehend überflüssig sind. Dafür gibt es eben eine weitestgehende Kompatibilität. Das ROM nutzt weitestgehend den verfügbaren Speicherplatz aus, lediglich 4 Bytes nach dem Integer-Pack sind nicht genutzt. Die beiden Rechen-Packs gehören eigentlich zum BASIC Interpreter, wurden aber weil sonst dessen 16 KByte nicht ausgereicht hätten, ins Betriebssystem verschoben. Das erklärt auch warum die neuen Befehle beim 6128 für die Nutzung der Bank RSX-Befehle sind (beginnen mit „|“), denn sie wurden aus Platzmangel im AMS-DOS ROM implementiert.

BASIC

Praktisch jeder Heimcomputer kam damals mit einem BASIC-Interpreter. Im CPC wird er erst nach allen anderen ROMs initialisiert, zu erkennen an seiner Meldung „Ready“. Gemäß der Intention der Hersteller sollten so Jugendliche Programmieren lernen, das hielt man damals noch als die beste Möglichkeit, sich mit dieser neuen Technologie der Computer vertraut zu machen. In der Retroperspektive glaube ich heute, das die meisten Heimcomputer nicht gekauft wurden, um Programmieren zu lernen, sondern als Ersatz für eine Spielekonsole. Der zunehmende Verkauf von Heimcomputern führte denn auch 1982/83 zum Video Game Crash, einem rapiden Einbruch des Videospielmarktes. Ein Heimcomputer war im Einstand zwar teurer als eine Videokonsole wie das Atari VCS 2600 System aber auch leistungsfähiger. Vor allem bekam man Spiele auf Kassetten oder Disketten, die man anders als ROM-Module leicht kopieren konnte. (Kassetten sogar ohne Computer mit zwei Kassettenrekordern, einen Kopierschutz konnte man anders als bei Disketten, da die Programme analog gespeichert wurden nicht einsetzen). Auf jedem Schulhof etablierte sich so ein reger Tauschmarkt.

Das BASIC des CPC gehört aber zu den besten die ein Heimcomputer hatte. Denn es hatte zwei Eigenschaften: es hatte sehr viele Befehle, die die Hardware optimal unterstützten und es war schnell. Der Sprachumfang war so groß, dass es gar nicht ganz in die oberen 16 KByte passte, sondern die Rechenroutinen ins Betriebssystem ausgelagert wurden. Das BASIC konnte nicht nur die Hardware optimal untersetzen, so gab es Befehle, die praktisch alle Möglichkeiten des PSG unter BASIC erschlossen. Es hatte auch Routinen für die Eventprogrammierung „After“ und „Every“ und bot Grafikfenster. Es war aber noch eines der letzten zeilenbasierten BASIC Interpreter. Neuere Computer wie der Atari ST oder Sinclair Ql boten schon ein BASIC, das ohne Zeilennummern auskam und echte Unterprogramme kannte. Diese BASIC Programme mussten dann in der Regel kompiliert werden.

Der Vorteil eines zeilenbasierenden BASIC-Interpreters war für den Anwender die flache Lernkurve – man konnte im Prinzip im Handbuch jeden Befehl einzeln lernen. Zusammenhänge zwischen mehreren Befehlen gab es nur beim Unterprogramaufruf (Gosub/Return) oder den Schleifen (For/Next, While/wend). Das Gleiche galt aber auch für den Interpreter – er konnte so jede Zeile meist einzeln übersetzen. Das sparte Speicherplatz. Bei einem Compiler, wie z.B. Turbo Pascal befand sich im Speicher das Quellprogramm und das erzeugte Maschinensprachenprogramm. Der BASIC-Interpreter brauchte nur einige Hundert Bytes Speicherplatz für den Code jeder Zeile. Der Nachteil war: Jede Zeile wurde einzeln übersetzt, und zwar bei jeder Ausführung. Bei einem Compiler musste man einige Sekunden bis zu mehrere Minuten, je nach Programmlänge warten, bis das Programm übersetzt war. Dann hatte man aber reinen Maschinencode. Bei einem BASIC-Interpreter kam diese Übersetzungszeit bei jedem Programmlauf hinzu, verteilt aber auf alle Programmzeilen. Noch schlimmer: Wird eine Zeile in einer Schleife mehrmals ausgeführt so wird sie auch jedes Mal übersetzt. Es gab einen BASIC-Compiler für den CPC. Er beschleunigte die Programmausführung bei Ganzzahlen und Grafikoperationen um den Faktor 6, bei Realzahlen um den Faktor 2 – Fliesskommaberechnungen kann die CPU nicht direkt berechnen und setzt Routinen dafür ein. Deren Ausführungsdauer ist aber konstant und verglichen mit dem Übersetzungsaufwand brauchen sie auch relativ lange. Hier ein Hochsprachenbenchmark, der verschiedene Aspekte eines PC prüft (Ganzzahlberechnungen, Fließkommaberechnungen, transzendente Funktionen, Textausgabe, Grafikausgabe, Speichern auf Diskette) auf mehreren 8 Bit Rechnern:

Computer Integerberechnungen Fließkommaberechnungen Transzendente Funktionen Textausgabe Grafikausgabe Speichern auf Disk

CPC 6128

42,72

66,66

62,89

59,67

21,85

22

CPC 6128 compiliert

6,85

34,6

59,93

59,57

6,89

19,57

C64

190

106

125

53


72

C64 Simons BASIC

126

112

122

54

66

76

VC20

191

90

101

49


80

C128

136

65

62

90

84

48

Sinclair QL

79

61

28

197

99

7

Alphatronic PC

95

107

176

100



Der CPC ist schneller als die meisten anderen Rechner, schlägt sogar den Sinclair QL in einigen Bereichen. Lediglich der C128 kann in einigen Disziplinen aufschließen. Die hohe Geschwindigkeit erreicht das Amstrad Basic durch eine Zwischenform zwischen Compiler und Interpreter. Sobald man die Entertaste drückt, macht der Interpreter einige Optimierungen. So ersetzt er jedes BASIC Schlüsselwort, das als Folge von ASCII-Zeichen vorliegt, durch ein Token, also eine Zahl mit spezieller Bedeutung. Diese Übersetzung entfällt dann bei der Ausführung. Ebenso wandelt er alle Zahlenangaben gleich in die interne Darstellung im Binärsystem um. Dasselbe tut er mit allen Zeilennummern. Er ersetzt die Zeilennummer durch die Adresse der Zeile im Speicher. Das bedeutet, das bei einem GTO und GOSUB nun der Interpreter die Zeile gar nicht erst suchen, muss, indem er das Listing abklappert, sondern direkt zu dem Code springen kann. Diese Optimierungen sind verantwortlich für die Geschwindigkeit des Amstrad Basics. Auch das BASIC-ROM wird bis auf etwa 40 Bytes vollständig genutzt. Vom Befehlssatz her ist das BASIC 1.0 und 1.1 übrigens identisch, nur ist das DEC$ Kommando beim CPC 464 fehlerbehaftet (erfordert zwei öffnende Klammern aber nur eine schließende) und wurde daher nicht dokumentiert.

RSX

Eine weitere Besonderheit des BASICs war die Möglichkeit es um RSX (resident System Extensions) zu erweitern. Ein RSX ist ein Befehl, der mit dem senkrechten Strich "|" anfängt. Es gibt einige Routinen im Betriebssystem, die solche Befehlslisten verwalten. Ein ROM, aber auch ein von Disk geladenes Programm in Maschinensprache, kann eine Liste von neuen Befehlen der Liste hinzufügen und trifft BASIC auf einen Befehl nach dem senkrechten Strich, so sucht es alle verlinkten Befehlstabellen nach dem Befehl ab und überprüft dann ob die Parameterzahl und Typ stimmen. So ist es möglich, den Befehlsstart von BASIC zu erweitern. Das tat man beim Hinzunehmen von AMSDOS um Befehle um CP/M zu starten, elementare Dateioperationen durchzuführen und zwischen Kassette und Diskettenbetrieb zu wechseln. Das AMSDOS enthielt nicht nur die Routinen für das Diskettensystem, sondern auch Basisroutinen, die ein CP/M System benötigte – inklusive der Unterstützung von Schnittstellen, die es im CPC gar nicht gab und ihrer Zusatzbausteine wie der seriellen Schnittstelle und den Bausteinen Z80 DART und Intel 8253. Die Sprungtabelle für BASIC-Befehle im oberen Speicher ermöglichte es auch dem DOS die Befehle für das Laden und Speichern (Load, Save, Merge) auf Routinen ins AMSDOS umzubiegen, sonst würden diese nach wie vor noch mit dem Kassettenrekorder arbeiten. Auch hier entpuppte sich die vermeintlich großzügige Reservierung von über 5 KByte nur für Verwaltungsinformationen wie eben die Sprungtabellen diese nachträgliche Änderung.

CP/M

Eine Besonderheit der CPC-Serie war, das man mit dem Diskettenlaufwerk auch eine Lizenz für CP/M 2.2, beim 6128 sogar eine für CP/M 3.0 oder CP/M Plus bekam. CP/M war das Standardbetriebssystem für Rechner mit dem 8080 / 8085 und Z80 Prozessor. Es gab eine Menge Anwendungsprogramme für CP/M – ich selbst habe WordStar als Textverarbeitung, Turbo Pascal als Pascal Compiler M80/L80 als Assembler und Dbase als Datenbank genutzt. CP/M fähige Rechner gab es schon lange, doch dies waren nur Rechner, die man geschäftlich nutzen konnte. Typisch hatten sie 64 KByte RAM, ein kleines ROM nur mit dem BIOS und eine reine Textdarstellung. Sie hatten keinen BASIC-Interpreter und keine Grafik. Als die CPC-Serie herauskam waren im Geschäftsumfeld gerade die IBM kompatiblen PC auf dem Vormarsch. Aus Ergonomiesicht, boten diese damals aber noch wenig mehr. Es gab sogar die gleichen Programme wie für den CPC für einen PC-Klone. Die meisten Heimcomputer erlaubten dagegen nicht den Betrieb von CP/M, weil ein wichtiger Punkt in der Praxis die 80 Zeichendarstellung war, ohne die konnte man keine Seite auf dem Bildschirm darstellen, wie sie gedruckt wird (eine Darstellung mit Grafik gab es damals sowieso nicht, aber wenigstens stimmte der Zeilenumbruch und Satz überein). Das bot also einen deutlichen Mehrwert und war sicher auch ein Grund, warum zeitgleich Commodore den C128 herausbrachte. Auch er konnte mit einem Z80 Prozessor CP/M laufen lassen.

Beim CPC 464 und 664 war ein Hindernis, das der CPC keinen Textmodus kennt. Das bedeutet, das die 16 KByte des Bildschirmspeichers viel von dem Platz wegnehmen, den die Programme benötigen. Es blieb so eine 38 KByte große TPA übrig, die maximale Größe eines Programms waren 35,25 KByte. Das klingt nach wenig und ich dachte damals, das es auch zu wenig sei, um unter CP/M zu arbeiten und fing, damit erst an als ich eine Speichererweiterung hatte. In Wirklichkeit ist es aber so, das die meisten CP/M Programme nicht von einem Maximalausbau des Speichers ausgingen und ein herkömmlicher CP/M Rechner mit 48 KByte Hauptspeicher hatte in etwa die gleich große TPA. Programme lagerten dann Daten auf Diskette aus. Ich bekam das erst nach Jahren mit, der Grund war Wordstar. Wordstar als Textverarbeitung war sehr langsam beim Bildschirmaufbau. Man konnte ihn jedoch patchen und kleine Maschinenroutinen einbauen. Das machte ich, indem ich die Routine für die Zeichenausgabe auf die Sprungstelle für das Betriebssystem umbog, die im Speicher bei Adresse &BBxx lag, also etwa 4 KByte oberhalb der TPA bei einem CP/M 2.2 System. Bei meinem CP/M mit Speichererweiterung lag der Bereich aber mitten im Speicher. Die Sprungtabelle gab es trotzdem, denn die wurde noch vor dem Start von CP/M im BASIC Modus eingerichtet, war danach aber nicht mehr nötig. Trotzdem funktionierte Word-Star wie gewohnt, nutzte den zusätzlichen Speicher – immerhin 23 KByte mehr – nicht, bis ich mal einen Artikel für eine Zeitschrift schrieb und erstmalig den Spaltenmodus aktivierte. Dann stürzte er ab, weil er nun wohl den Speicher benötigte und die Sprungtabelle überschrieb. Es gab aber auch Programme, die von mehr Speicher profitierten, so Turbo Pascal, das bei einem CPC 464 nur 7.695 Bytes frei hatte, bei einem CPC 6128 dagegen 28.939 Bytes.

Vor allem aber war ein CPC die billigste Lösung für einen Computer, mit dem man abreiten konnte. Als er erschien, kostete ein CP/M Rechner mit Grünmonitor und zwei Laufwerken mit der Kapazität eines 3-Zoll Amstradlaufwerks zwischen 3.700 und 5.000 DM. Ein CPC 464 mit zwei Laufwerken und Grünmonitor lag dagegen bei 2.500 DM. Noch teurer war ein IBM Kompatibler Rechner, den es ab 5.700 DM aufwärts gab.

Ich glaube trotzdem, das es wohl wenige gab, wie mich die von BASIC auf CP/M wechselten. Der typische Nutzer eines geschäftlich genutzten Computers würde wohl nicht mal einen Blick auf den CPC werfen und die meisten Käufer wollten spielen oder programmieren. Vor allem brachte Amstrad ja sehr bald eine entsprechende Konkurrenz auf den Markt – die Joyce oder PCW Computer, die nun keinen BASIC Interpreter, keine Farbgrafik hatten, dafür mehr Speicher, eine hohe Bildschirmauflösung im Textmodus und die auch gleich CP/M starteten.

Diskettenlaufwerk

Der Hauptkritikpunkt am CPC war die Wahl des Diskettenlaufwerks. Gerüchten zufolge soll Alan Michael Sugar (aus seinen Initialen und der Abkürzung für „Trading“ wurde der Firmenname Amstrad) mit Hitachi, Hersteller des Laufwerks einen Deal abgeschlossen haben, bei dem er die Laufwerke zu einem sehr günstigen Preis bekam. Allerdings war die CPC-Serie neben dem Tatung Einstein die einzige Computerserie, die dieses Format einsetzte. Es setzte sich als ähnlich robuster Standard die von Sony entwickelte 3,5 Zoll Diskette durch, vor allem waren damals sowohl im PC-Bereich wie auch bei anderen Heimcomputer die größeren, flexibleren und preiswerten 5,25 Zoll Disketten noch üblich. Das Laufwerk nutzte 40 Spuren und beschrieb die Disketten einseitig, die Disketten waren aber doppelseitig nutzbar, was die Netto-Datenmenge auf 356 KByte pro Diskette verdoppelte (man konnte sehr leicht die Diskette mit 41 oder 42 Spuren formatieren und so auf 4 / 9 KByte pro Seite mehr kommen). Die 3 Zoll-Disketten waren daher teuer. Meine ersten kosteten 18 DM pro Stück, zum Vergleich eine 5,25 Zoll Diskette kostete damals rund 40 DM im Zehnerpack und die neuen 3,5 Zoll Disketten rund 80 DM im Zehnerpack. Vor allem sanken ihre Preise im Laufe der Jahre auch stärker als die der 3 Zoll Disketten.

Populär waren daher Diskettenlaufwerke fremder Hersteller – ich hatte das 3-Zoll-Laufwerk nur als kompatible Lösung für den Tausch und eine 3,5-Zoll-Doppelstation mit 2 x 720 KByte pro Laufwerk im Einsatz – diese war trotz der viel höheren Kapazität billiger als eine 3-Zoll-Floppy mit Controller und zweites Laufwerk). Vielleicht auch ein Grund, warum Amstrad die CPC 664 nachschob, in denen das Laufwerk eingebaut war. Langfristig war es aber auch für Amstrad eine teuere Lösung, denn natürlich waren so auch Spiele und Software mit höheren Fixkosten verbunden, wenn sie dieses Medium nutzten. Die Firma blieb aber bei dem Format und setzte es lange Zeit auch im Joyce ein, dort mit doppelseitigen, 80-Spur Laufwerken (720 Kbyte/Disk). Erst in der letzten Serie PCW 9XXX wurde es durch ein 3,5-Zoll-Laufwerk ergänzt.

Allerdings hatten die Disketten auch Vorteile. Sie waren sehr robust, hatten eine noch härtere Hülle als die 3,5 Zoll Disketten und mit der Möglichkeit sie doppelseitig zu nutzen relativierte sich auch der Preis. 5,25 Zoll Disketten für Laufwerke mit nur einem Schreibkopf hatten kein Loch, mit dem eine LED feststellen konnte, ob man den richtigen Diskettentypus verwandte, was zu dem skurrilen Zubehörs des Diskettenlochers führte mit dem man eine (in der Regel beidseitig mit einer magnetischen Schicht belegte) Diskette drehen konnte. Der Anschlussstecker gehorchte weitestgehend dem Standard eines PC-Floppykontrollers, mit einer Ausnahme: die Leitungen für die Stromversorgung waren anders. Über einen Adapter konnte man so eine handelsübliche Floppy als Zweitlaufwerk anschließen.

Druckerport

Die CPC-Serie hatte eine relativ gute Ausstattung an Anschlüssen verglichen mit anderen Heimcomputern die durch eigene Schnittstellen versuchten Fremdhersteller auf Abstand zu halten, um die ganze Peripherie selbst zu verkaufen. Der CPC-Druckerport gehorchte fast dem Centronics Standard. Beim CPC 464/664 war es ein einfacher Platinenstecker, bei den folgenden Modellen ein echter Centronics-Stecker verbaut. Den verdankt man der deutschen Post, die eine Abschirmung von Computern als Quelle von Hochfrequenzstrahlung forderte. Allerdings mit einer Einschränkung. Platinenstecker gibt es standardisiert in mehreren Formaten. Amstrad nahm den 34-poligen Stecker, der auch beim Floppy-Disk zum Einsatz kommt. Der Centronics Stecker ist aber 36-polig. Also lies man zwei Leitungen weg. Beim CPC 6128 sind sie vorhanden. Da nur 22 der 36 Leitungen benötigt werden, ist das kein Beinbruch. Ärgerlich ist das Datenbit 7 auf Masse gelegt wurde. Warum? Der Druckerport ist über einen 74LS273 mit acht Leitungen mit der CPU verbunden. Für die Steuerung benötigt das 74LS273 jedoch eine weitere Leitung und diese hat man eingespart und dafür die für Datenbit 7 genommen. Das 74LS273 überträgt so zwar 8 Bit an den Port, aber Bit 7 ist immer 0 und wurde daher auf Masse gelegt. So kann man keine der grafischen Sonderzeichen drucken und wer eine Hardcopy machte, konnte auch maximal 7 Bit übertragen.

Andere Anschlüsse

Die CPC hatten weitestgehend Anschlüsse die gängigen Normen gehorchten. Vom Monitor aus gab es einen für die Stromversorgung (5 Volt), bei den Modellen mit Diskettenlaufwerken auch 12 Volt. Dazu einen sechspoligen DIN-Anschluss für die Übertragung des Videosignals. Das Audiosignal kann mit einem herkömmlichen 3,5 mm Klinkenstecker abgegriffen werden.

Der Joystick-Anschluss gehorcht dem Atari Standard. Es war nur eine Buchse, an die man aber zwei Joysticks anschließen konnte, dazu benötigte der erste Joystick noch eine Buchse, die den zweiten Nullleiter in der Buchse nutzte.

Einen Kassettenrekorder konnte man bei den CPC-Modellen 664 und 6128 durch einen 5-poligen DIN Anschluss anschließen. Beim CPC 464 fehlte die Buchse, die Anschlüsse waren mit dem internen Kassettenrekorder verbunden.

Für den Anschluss eines Floppylaufwerks – ein zweites wurde an das erste angeschlossen gab es einen Platinenstecker (CPC 464) mit 34 Pins, beim CPC 664/6128 einen Centronics-Stecker bei dem zwei Pins unbelegt waren – auch hier setzte man auf Standarddware.

Als universeller Anschluss gab es einen 50-poligen Erweiterungsbus, wie ihn jeder Heimcomputer hat. Dieser Bus führte alle wichtigen Signale der CPU nach außen. So kann eine Erweiterung direkt an den Daten-, Steuer und Adressbus angeschlossen werden. Die ersten 40 Kontakte entsprechen denen der Z80 CPU in ihrem 40-poligen Gehäuse. Die restlichen 10 Kontakte umfassen zwei Resets (Kaltstart und Softreset) sowie Signale die signalisieren bzw., mit denen man durch Anlegen eines Pegels eine bestimmte ROM-Kofiguration festlegen kann. Dazu kommen Signale für den Cursor und Lightpen, Masseanschlüsse und der 4 MHZ Takt.

Preispolitik und Zielgruppe

Als der CPC herauskam, war er der erste Rechner als Komplettpaket. Bei anderen Heimcomputern kauft man den Computer, schloss ihn an den Fernseher an, einige wie der C64 boten auch einen Monitoranschluss. Dazu musste man noch einen Kassettenrekorder oder eine „Datasette“ erwerben oder gleich ein Floppylaufwerk. Vor allem Letzteres war bei anderen Rechnern sehr teuer.

Der CPC kam gleich mit Monitor, der ein wesentlich besseres Bild als ein Fernseher lieferte und unumgänglich für den Mode 2 mit 80 Zeichen/Zeile bzw. 640 Punkten pro Zeile war. Das schaffte ein Fernseher, bei dem der Tuner auch noch das Signal verschlechterte, nicht. Das Problem nur: Wer mit dem Rechner vor allem spielen wollte, benötigte den teueren Farbmonitor. Der Aufpreis für einen Monitor holte man beim relativ günstigen Diskettenlaufwerk wieder herein. Der CPC setzte aber eine relativ hohe Einstandspreishürde, verglichen mit dem C64 oder Spectrum. Bei diesen konnte man nach und nach den Computer um Monitor und Diakettenlaufwerk erweitern. Immerhin konnte man mit einem PAL-Modulator den CPC auch an einen Farbfernseher anschließen.

Auf der anderen Seite war die CPC-Serie der günstigste Einstieg für einen CP/M Rechner, wofür dann auch der Grünmonitor ausreichte. Hier war das Hindernis eher das unübliche Floppydiskformat. Dass der Rechner zuerst nur mit Kassettenrekorder erschien, dann aber bald darauf mit eingebauter Floppy halte ich nachträglich auch für einen Fehler. Der CPC 664 war innerhalb der Serie der beste Rechner zum Spielen, noch dazu mit dem besten Tastaturlayout. Die weiteren 64 KByte konnte der 6128 vor allem für CP/M nutzen.

Obwohl solche Rechner, die alles können und mehrere Zielgruppen anvisieren, oft nicht so erfolgreich waren, einfach, weil jede Benutzergruppe etwas findet, das Sie mitbezahlt aber nicht benötigt – bei den Heimcomputern fällt mir spontan der BBC Mikro an, der schon Jahre vor dem CPC eine ähnliche Auflösung und ein gutes und schnelles BASIC hatte – war der CPC wie schon eingangs erwähnt ein Verkaufsschlager. Mit 3 Millionen verkauften Geräten verkaufte er sich genauso wie alle Apple II Modelle zusammen (3,36 Millionen), Atari ST (2,1 bis 2,5 Millionen), nur wenig schlechter als C128 und Amiga (je 4 Millionen). Der Grund war die attraktive Preisgestaltung hier die Preise aus Anzeigen der ct 1/1986

Modell

Preis

CPC 464

798 / 1.298 DM (Monochrom/Farbmonitor)

CPC 664

1.398 / 1.898 DM (Monochrom/Farbmonitor)

CPC 6128

1.598 / 2.098 DM (Monochrom/Farbmonitor)

C 64

475.-

Monochrommonitor für C64

249.-

Kassettenrekorder für den C64 / C128

59.-

Commodore Floppy 1541

575.-

C128

945

Ein C128 mit Floppy ohne Monitor kostet 1.520 DM, nur wenig unterhalb des CPC 6128 mit Monochrommonitor, mit Monitor ist er mit 1.769 DM deutlich teurer. Ähnliches findet man beim Vergleich C64 mit Kassettenrekorder/Monitor (783 DM) und CPC 464 mit Grünmonitor oder CPC 664 mit C64 und Floppy 1.299. Nur für die reinen Spieler, die mit dem Fernseheranschluss auskamen, waren die CPC deutlich teuerer als andere Heimcomputer, die auch keine höhere Auflösung boten, als sie ein Fernseher wiedergeben konnte. Ich glaube, da das Geld für die Computer, eher von den Eltern stammte, zog hier das Argument, das man mit dem Computer wachsen konnte, so wie es auch der Autor tat. Man konnte mit BASIC und Spielen anfangen und bei CP/M Anwendungen landen.

Ein weiterer Vorteil war, dass der Rechner von nationalen Partnern vertrieben wurde. Mit einer Drahtbrücke wurde sogar die Einschaltmeldung angepasst, in Deutschland hieß es denn auch „Schneider Color Computer“. Der Vorteil: Die Schneider Rundfunkwerke kannte man. Es gab einen Ansprechpartner für Garantiefälle. Das war bei einem Generalimporteur deutlich schwieriger. Zudem hatten diese Firmen auch ein funktionierendes Vertriebsnetz. Meinen ersten CPC habe ich im Schaufenster eines Hi-Fi Ladens gesehen, der sonst keine Computer verkaufte.

Artikel verfasst am 16.12.2020

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