sslxy

c128

Drei Modi. Zwei CPUs. Ein System, das mehrere Rollen gleichzeitig tragen sollte.

Der C128 ist für mich eines der aufschlussreichsten Commodore-Systeme. Nicht weil er besonders geschlossen oder besonders elegant wäre, sondern weil seine Architektur mehrere Ziele gleichzeitig tragen musste: vollständige C64-Kompatibilität, ein eigenständiges 128-Kilobyte-System und zusätzlich einen brauchbaren CP/M-Betrieb. Genau diese Überlagerung macht ihn interessant.

In meinem Umfeld waren C128 und C128D Arbeitsgeräte, keine Schaustücke. Der Wechsel zwischen den Modi, die Logik des Speichermodells und die zwei vollständig getrennten Videosysteme waren keine Nebensache, sondern der eigentliche Kern des Systems. Ob das alles in jeder Situation überzeugend aufging, ist eine andere Frage. Dass Commodore diesen Anspruch überhaupt so weit in Hardware gegossen hat, ist die sachlich wichtigere Feststellung.

System Diagnostic

> C128 / C128D ANALYSIS
TOPIC Commodore 128 / C128D – Drei-Modus-Architektur CPU(s) MOS 8502 mit 7-Bit-I/O-Port (C64/C128-Modus) · Zilog Z80A als Start- und CP/M-Prozessor VIDEO VIC-IIe 40-Spalten · VDC 8563/8568 80-Spalten / RGBI – vollständig getrennt RAM 128 KB (zwei 64-KB-Bänke) · MMU 8722 als Vermittler MODI C64 / C128 nativ / CP/M Plus 3.0 – hardwareseitig getrennte Betriebszustände START Z80 läuft nach Reset zuerst an, prüft Boot- und Modulzustände und übergibt ohne CP/M-Start an den 8502 FAST MODE 2 MHz für den 8502; die 40-Spalten-VIC-Ausgabe ist dabei nicht nutzbar, der VDC arbeitet aus eigenem VRAM MMU Bank-, ROM-, I/O-, Common-RAM-, Page-Zero-/Page-One- und Prozessormodussteuerung VDC 8563 mit typischerweise 16 KB VRAM / 8568 im DCR mit 64 KB; indirekter Zugriff über $D600/$D601 MINDSET verstehen statt vorzeigen – Architektur als Lesestoff STATUS technische Analyse / kein Handelsinteresse
Ein System mit mehreren Rollen – und der offenen Frage, was eine solche Konstruktion im Alltag wirklich trägt.
[origin/context]

Kontext und Einordnung

Der C128 erschien 1985 in einer Phase, in der Commodore zwar noch stark war, intern aber bereits mehrere Richtungen gleichzeitig verfolgte. Der C64 lief weiterhin, der Markt veränderte sich, und die Frage nach einem Nachfolger war nicht einfach zu beantworten. Genau das sieht man dem C128 an: Er ist kein klares Einzelkonzept, sondern der Versuch, mehrere Anforderungen gleichzeitig in einem System unterzubringen.

In meinem Umfeld war der C128 nie nur ein Zwischenobjekt auf dem Weg zum Amiga. Er war ein ernst genommener Rechner. CP/M lief darauf, BASIC 7.0 war das umfangreichste BASIC, das Commodore in dieser Rechnerlinie regulär ausgeliefert hat, und das 80-Spalten-System eröffnete Möglichkeiten, die auf dem C64 so nicht vorhanden waren. Wer ihn nur als erweiterten C64 liest, liest ihn zu eng.

Gleichzeitig war die Rückwärtskompatibilität zum C64 keine dekorative Zusatzfunktion, sondern eine tiefe Systementscheidung. Sie reicht bis in die Speicherlogik, in die Videosysteme und in das generelle Startverhalten hinein. Genau dadurch entsteht ein Rechner, der mehr Schichten hat als sein äußerer Aufbau vermuten lässt.

[1985] Release_Context: Commodore 128
> Marktlage: Druck aus mehreren Richtungen / intern keine einfache Nachfolgelinie
> Ziel: C64-Kompatibilität + eigene Architektur + CP/M-Fähigkeit
> Ergebnis: technisch ambitioniertes Übergangssystem
> Bewertung: aufschlussreich gerade dort, wo mehrere Ziele gleichzeitig sichtbar bleiben

Technisch interessant ist der C128 deshalb vor allem an seinen Nahtstellen. Dort zeigt sich, wie reale Entwicklungsarbeit aussieht, wenn Kompatibilität, Erweiterung und Marktdruck nicht nacheinander, sondern gleichzeitig beantwortet werden müssen.

[hardware/model_family]

C128, C128D und C128DCR sauber unterscheiden

Modell Typische technische Einordnung
C128 Flaches Tastaturgehäuse, externes Netzteil, kein integriertes Laufwerk, 8563-VDC mit typischerweise 16 KB VRAM.
C128D Kunststoff-Desktopgehäuse mit Tragegriff, separate Tastatur, internes Netzteil und integrierte 1571-Baugruppe; meist 8563 und 16 KB VRAM.
C128DCR Metallgehäuse, kostenreduzierte und stärker integrierte Hauptplatine, 1571CR-Logik auf der Systemplatine sowie 8568-VDC mit 64 KB VRAM.

Gehäuseform, Boardrevision, VDC-Typ und Laufwerksintegration gehören zusammen, dürfen aber nicht nur vom äußeren Erscheinungsbild abgeleitet werden. Reparatur und Erweiterung beginnen mit der tatsächlichen Platinen- und Chipidentifikation.

[hardware/system_architecture]

Systemarchitektur: mehrere Rechnerzustände auf einem Bus

Der C128 ist kein C64 mit zusätzlichem RAM und kein CP/M-Rechner mit Commodore-Gehäuse. Seine Logik koordiniert zwei Prozessoren, zwei Videosysteme, zwei RAM-Bänke, mehrere ROM-Bereiche und unterschiedliche Peripheriepfade.

Baustein Systemrolle
MOS 8502 65xx-Hauptprozessor mit 7-Bit-I/O-Port und 1-/2-MHz-Betrieb.
Zilog Z80A Startprozessor und CPU für CP/M Plus; teilt Bus und Systemressourcen mit der 8502-Architektur.
MOS 8722 MMU Prozessorauswahl, RAM-/ROM-Banking, Common RAM, Page-Zero-/Page-One-Verlagerung und Modussteuerung.
VIC-IIe 40-Spalten-Video, C64-Grafik, DRAM-Refresh, Takt- und Busarbitration.
8563/8568 VDC 80-Spalten-RGBI-Ausgabe aus eigenem Video-RAM, indirekt über Register erreichbar.
SID und CIAs Audio, Timer, Tastatur, Joysticks, IEC, User Port und weitere I/O-Funktionen.
[system/reset_startup]

Reset- und Startlogik: Der Z80 beginnt

Nach einem Systemreset ist zunächst der Z80 aktiv. Er führt einen kleinen Startablauf aus, prüft den vorgesehenen Betriebszustand und kann einen CP/M-Start einleiten. Ohne entsprechenden Startfall übergibt er die Kontrolle an den 8502, der C128- oder C64-Modus initialisiert.

  1. Reset: MMU und Systemlogik setzen einen definierten Prozessor- und Speicherzustand.
  2. Z80-Start: der Z80 ist zunächst freigegeben und führt Startcode aus.
  3. Bootprüfung: CP/M-Datenträger beziehungsweise Systembedingungen werden geprüft.
  4. Modul- und Tastenzustand: C64-Modus kann durch kompatibles Modul oder Commodore-Taste gewählt werden.
  5. Übergabe: ohne CP/M-Boot übernimmt der 8502 und startet den gewählten Commodore-Modus.

Die zweite CPU ist damit nicht nur während CP/M vorhanden. Sie ist bereits Teil der grundsätzlichen Startarchitektur und kann später für bestimmte CP/M-I/O-Aufgaben zeitweise an den 8502 übergeben.

[architecture/three_modes]

Drei-Modus-Architektur

Das auffälligste Merkmal des C128 ist sein Drei-Modus-Konzept. Gemeint ist damit keine bloße Startoption, sondern eine echte Hardware-Entscheidung: Das System kennt drei voneinander klar getrennte Betriebszustände, und jeder davon greift auf einen anderen Teil derselben Architektur zu.

Modus 1: C64

Im C64-Modus arbeitet der MOS 8502 mit etwa 1 MHz, der VIC-IIe bildet die C64-Videologik nach, und ROM- sowie I/O-Anordnung folgen weitgehend dem C64-Modell. Die MMU verschwindet für die CPU aus dem normalen Speicherbild, bleibt hardwareseitig aber an Prozessorauswahl, Banksteuerung und Systemsignalen beteiligt.

Kompatibilität war hier Konstruktionsprinzip und in der Praxis sehr hoch. Sie ist dennoch nicht absolut: Timingcode, undokumentierte Chipwirkungen, einzelne Module und Peripherie können Unterschiede sichtbar machen.

Modus 2: C128 nativ

Im nativen C128-Modus erschließt die MMU die 128 KB RAM, BASIC 7.0 steht zur Verfügung, und VIC-IIe sowie VDC können verwendet werden. Der 8502 kann auf 2 MHz geschaltet werden; dabei ist die 40-Spalten-VIC-Anzeige nicht nutzbar, während die 80-Spalten-Ausgabe aus eigenem VDC-RAM weiterarbeitet.

Das ist die eigentliche Eigenständigkeit des Systems: mehr Speicher, höherer Takt, ein ernsthaftes Textarbeits-Videosystem und ein BASIC, das deutlich mehr direkt mitbringt als sein Vorgänger.

Modus 3: CP/M Plus

Im CP/M-Modus übernimmt der eingebaute Zilog Z80A. Das System bootet CP/M Plus 3.0 von einer geeigneten Systemdiskette. CP/M kann 40- oder 80-Spalten-Ausgabe unterstützen; für typische Textarbeit und den sinnvollen schnellen Systembetrieb ist das VDC-System die naheliegende Umgebung.

Damit war der C128 als CP/M-Rechner tatsächlich benutzbar – nicht als theoretische Option, sondern als reale Ergänzung für eine damals noch relevante Softwarewelt.

Modi-Wechsel

Der Betriebszustand wird beim Start beziehungsweise durch einen Neustart gewählt: C64-Modus über Commodore-Taste, kompatibles Modul oder GO64; CP/M über Systemdiskette beim Reset/Einschalten oder über BOOT aus dem C128-Modus. Ein transparenter Wechsel laufender Programme ist nicht vorgesehen.

Jeder Modus ist damit eine eigene Betriebsumgebung – keine Emulation, keine Simulation, sondern eine echte Umschaltung auf Systemebene.

Gerade das Nebeneinander dieser drei Modi macht den C128 technisch ungewöhnlich. Man kann darüber streiten, wie konsequent jeder einzelne Modus im Alltag genutzt wurde. Dass ein solcher Aufbau in einem einzigen Rechner überhaupt so weit durchgezogen wurde, bleibt die sachlich bemerkenswerte Seite der Konstruktion.

„Drei Modi bedeuteten drei verschiedene Betriebslogiken in einem Gehäuse – und damit auch drei verschiedene Arten von Kompromiss.“

[hardware/dual_cpu]

Zwei CPUs: MOS 8502 und Zilog Z80A

Zwei CPUs in einem Rechner von 1985 wirken auf den ersten Blick überzogen. Beim C128 ist das jedoch keine dekorative Komplexität, sondern die direkteste Antwort auf ein konkretes Problem: Wie macht man einen CP/M-fähigen Rechner, ohne die eigene CPU-Linie und die gesamte C64-Kompatibilität aufzugeben?

Der MOS 8502 ist eine Weiterentwicklung des 6510. Sein integrierter I/O-Port besitzt sieben nutzbare Portbits, und der Prozessor kann zwischen ungefähr 1 MHz und 2 MHz umgeschaltet werden. Die 2-MHz-Option war praktisch spürbar: Programme liefen schneller, Berechnungen wirkten weniger zäh, und das System hatte insgesamt etwas mehr Reserven.

Der Z80A und die CP/M-Logik

Der Zilog Z80A ist vor allem für CP/M eingebaut und läuft mit einem 4-MHz-Taktsignal, erhält auf der 65xx-orientierten Busarchitektur aber nicht fortlaufend jeden möglichen Speicherzyklus. Effektiver Speicherdurchsatz und zusätzliche Übergaben an 8502-KERNAL-Routinen machen den CP/M-Betrieb deutlich langsamer als die bloße Taktangabe vermuten lässt.

Die Umschaltung zwischen den CPUs erfolgt hardwareseitig. Im C64- und C128-Modus ist der Z80 ausgeblendet. Im CP/M-Modus übernimmt er, während der 8502 inaktiv bleibt. Es handelt sich also nicht um paralleles Rechnen, sondern um ein kooperatives Dual-CPU-Konzept mit gemeinsamer Busbasis.

[CPU_Analysis] Dual-CPU Architecture
> MOS 8502: 65xx-Hauptprozessor / 7-Bit-I/O-Port / 1 oder 2 MHz
> Zilog Z80A: 4-MHz-Taktsignal / Bus- und I/O-Durchsatz systembedingt deutlich geringer
> Bus-Sharing: gemeinsamer Adress- und Datenbus / keine parallele Ausführung
> Umschaltlogik: hardwareseitig / nicht transparent im laufenden Betrieb
> Fazit: pragmatische Lösung für das CP/M-Problem, nicht akademische Eleganz

Für mich ist genau das ein gutes Beispiel für nüchterne Architekturarbeit. Man hätte die CP/M-Frage auch anders beantworten können – langsamer, komplizierter oder gar nicht. Commodore entschied sich stattdessen für zwei reale CPUs mit klar getrennter Zuständigkeit. Nicht besonders schön im theoretischen Sinn, aber direkt.

[hardware/one_two_mhz]

1 MHz, 2 MHz und die Rolle des VIC-IIe

Der 2-MHz-Betrieb entsteht nicht einfach durch einen schnelleren Prozessor. Im normalen 40-Spalten-Bild teilen sich 8502 und VIC-IIe weiterhin Speicherzyklen. Für vollständigen 2-MHz-Betrieb wird die VIC-Anzeige abgeschaltet; der VIC-IIe bleibt trotzdem Taktgenerator und Busarbitrator.

Zustand Praktische Wirkung
SLOW / etwa 1 MHz 40-Spalten-VIC-Ausgabe und normale Busaufteilung stehen zur Verfügung.
FAST / 2 MHz 8502 erhält den vollen CPU-Zyklus; die 40-Spalten-Anzeige ist nicht nutzbar.
80-Spalten-Betrieb VDC erzeugt sein Bild aus eigenem VRAM und ist deshalb die typische Anzeige für FAST.

BASIC 7.0 stellt dafür FAST und SLOW bereit. Zeitkritische Programme können auch abschnittsweise umschalten, müssen Videozustand, Interrupts und Peripherietiming aber bewusst berücksichtigen.

[hardware/memory]

MMU und Speicherverwaltung

128 Kilobyte RAM wirken heute klein. Interessant wird der C128 erst durch die Frage, wie dieses RAM überhaupt nutzbar gemacht wird. Ein 6502-Derivat kann von sich aus nur 64 Kilobyte direkt adressieren. Der zweite Speicherbereich muss also organisiert, geschaltet und in den sichtbaren Adressraum eingeblendet werden. Dafür ist der MOS 8722 zuständig.

Der 8722 ist keine MMU im modernen Sinn mit virtueller Adressierung oder Schutzmechanismen. Er ist vielmehr ein konfigurierbarer Speicherumschalter. Er bestimmt, welche RAM-Bank gerade sichtbar ist, welche ROM-Bereiche eingeblendet werden und welche I/O-Bereiche aktiv bleiben. Genau dadurch bekommt der C128 ein Speichermodell, das deutlich komplexer ist als das des C64.

Zwei 64-kB-Bänke

Das physische RAM des C128 ist in zwei 64-kB-Bänke gegliedert. Beide sind vorhanden, aber die CPU sieht jeweils nur einen bestimmten Ausschnitt, den die MMU vermittelt. BASIC 7.0 nutzt diese Struktur auf eigene Weise: Programmcode, Variablen und Systembereiche können auf unterschiedliche Bänke verteilt werden.

Hinzu kommt die konfigurierbare ROM-Einblendung. Im C64-Modus verhält sich der Speicher weitgehend wie beim C64. Im C128-Modus bekommt der Programmierer deutlich mehr Kontrolle darüber, welche Bereiche sichtbar sind und wie der Adressraum genutzt wird. Das eröffnet Möglichkeiten, macht die Sache aber auch schwerer durchschaubar.

[MMU_Diagnostic] MOS 8722
> physisches RAM: 128 KB / aufgeteilt in Bank 0 und Bank 1 (je 64 KB)
> CPU-Adressraum: 64 KB / MMU vermittelt zwischen CPU und physischem RAM
> ROM-Einblendung: KERNAL / BASIC / Zeichensatz konfigurierbar je Modus
> I/O-Bereich: konfigurierbar / im C64-Modus wie C64 / im C128-Modus flexibler
> Bewertung: mehr Kontrolle als beim Vorgänger, aber zu höherem Preis in der Komplexität

In der Praxis bedeutete das: Wer das Speichermodell wirklich verstand, konnte den Rechner sehr gezielt ausnutzen. Wer es nur halb verstand, stieß schnell auf Verhalten, das auf den ersten Blick unlogisch wirkte. Genau das ist für mich typisch für Übergangsarchitektur: mehr Möglichkeiten, aber nicht ohne Gegenleistung.

Register und Schnellkonfiguration

Die MMU-Register liegen im C128-I/O-Bereich ab $D500. Konfigurations- und Load-Configuration-Register sind zusätzlich bei $FF00–$FF04 erreichbar, unabhängig davon, welche ROM- oder RAM-Konfiguration im oberen Adressraum eingeblendet ist.

Vier Preconfiguration-Register können häufig benötigte Speichermodelle vorbereiten. Ein Schreibzugriff auf das zugehörige Load-Configuration- Register aktiviert die gespeicherte Konfiguration mit geringem Aufwand.

„Die MMU war kein Komfortmerkmal. Sie war die notwendige Antwort auf ein reales Adressraum-Problem.“

[memory/organization]

Speicherorganisation: RAM, ROM, I/O und zwei Bänke

Das physische Haupt-RAM besteht aus zwei zusammenhängenden 64-KB-Bänken. Für einen 8502-Zugriff wählt die MMU eine Bank und legt fest, welche ROM-, I/O- oder RAM-Blöcke im logischen 64-KB-Raum sichtbar sind.

Ressource Einordnung
RAM Bank 0 64 KB, im BASIC-System typischerweise eng mit Programm- und Systembereichen verbunden.
RAM Bank 1 64 KB, unter anderem für Variablen, Daten und alternative Konfigurationen nutzbar.
System-ROM C128-BASIC, KERNAL, Editor, Monitor, Zeichensatz sowie C64-ROM-Bereiche.
Function ROM Interner und externer Erweiterungsbereich für zusätzliche Software-ROMs.
I/O VIC-IIe, SID, CIAs, VDC-Zugriffsregister und MMU-Register.

Schreibzugriffe können RAM unter eingeblendeten ROMs erreichen. Welche Ressource bei einem Lesezugriff erscheint, bestimmt die konkrete MMU- und PLA-Konfiguration.

[memory/common_zero_page]

Common RAM, Zero Page und Page One

Die MMU kann am unteren und/oder oberen Ende beider RAM-Bänke gemeinsame Speicherbereiche einblenden. Die vorgesehenen Größen sind 1, 4, 8 oder 16 KB. Dadurch können Daten oder Routinen bei einem Bankwechsel unter derselben logischen Adresse erreichbar bleiben.

Zusätzlich lassen sich Zero Page und Page One auf andere physische Seiten verlagern. Das ist besonders für Betriebssystem-, Interpreter- und Bankwechselroutinen wichtig, weil 65xx-Code stark von Zero Page und Stack abhängt.

  • Common RAM: gemeinsamer Bereich für beide 64-KB-Bänke.
  • Page Zero Pointer: legt fest, welche physische Seite als Zero Page erscheint.
  • Page One Pointer: verlagert die Stack-Seite des 8502.
  • Bankwechsel: Code muss festlegen, welche Routinen und Daten bankübergreifend sichtbar bleiben.
[memory/function_rom]

Interne und externe Function ROMs

Der C128 sieht zusätzliche ROM-Steckplätze beziehungsweise Funktions-ROM-Bereiche vor. Beim Systemstart können vorhandene Erweiterungs-ROMs erkannt und nach Priorität eingebunden werden.

Damit ist die Erweiterungslogik flexibler als das reine harte Überschreiben einzelner C64-ROM-Bereiche. Anwendungen oder Betriebssystemerweiterungen können eigene ROM-Bereiche verwenden, ohne die komplette Systemarchitektur zu ersetzen.

Das Expansion-Port-Verhalten im C64-Modus folgt weiterhin weitgehend den bekannten GAME-/EXROM-Regeln. C128-Function-ROM und C64-Modulmodus sind deshalb verwandte, aber getrennte Erweiterungswege.

[hardware/video_systems]

Zwei Videosysteme: VIC-IIe und VDC

Das ungewöhnlichste Merkmal des C128 ist aus meiner Sicht sein doppeltes Videosystem. Gemeint ist damit keine einfache Umschaltoption, sondern zwei tatsächlich getrennte Videologiken mit eigener Hardware, unterschiedlicher Zielsetzung und voneinander unabhängiger Arbeitsweise.

VIC-IIe – das vertraute 40-Spalten-System

Der VIC-IIe ist eine leichte Weiterentwicklung des VIC-II aus dem C64. Er erzeugt das bekannte 40-Spalten-Bild, arbeitet mit demselben Sprite-Prinzip, kennt die vertrauten Grafikmodi und greift wie sein Vorgänger auf das normale System-RAM zu. Im C64-Modus ist er die alleinige Anzeigeeinheit.

Dadurch bleiben aber auch die bekannten Grenzen erhalten: dieselben Speicherzugriffskonflikte, dieselben farblichen und auflösungsbedingten Beschränkungen und dieselbe enge Bindung an das System-RAM.

VDC 8563 – das eigenständige 80-Spalten-System

Der MOS 8563 VDC ist eine grundlegend andere Konstruktion. Er besitzt eigenen Videospeicher – beim normalen C128 und frühen C128D typischerweise 16 KB – und greift nicht wie der VIC-IIe direkt auf das Haupt-RAM zu. Die CPU spricht ihn indirekt über zwei I/O-Register an. Der 8568 des C128DCR ist mit 64 KB Video-RAM verbunden und integriert weitere Systemfunktionen.

Seine Ausgabe erfolgt über RGBI und richtet sich damit an Monitore, die für ernsthafte Textarbeit deutlich geeigneter waren als typische 40-Spalten-Darstellungen. Für CP/M und andere textlastige Anwendungen war das ein echter Unterschied im praktischen Nutzen.

[Video_Diagnostic] Dual-Video-Architecture
> VIC-IIe (8564 PAL): 40 Spalten / Sprite-System / Composite+RF / System-RAM
> VDC 8563: 80×25 Standard / RGBI / typischerweise 16 KB VRAM · 8568 im DCR: 64 KB
> Zugriff: VIC-IIe teilt Haupt-RAM-Bus / VDC arbeitet aus lokalem VRAM / CPU-Zugriff indirekt über $D600/$D601
> Betrieb: beide Systeme gleichzeitig aktiv / zwei Monitore theoretisch möglich
> Bewertung: ungewöhnlich aufwendige Lösung mit klar unterschiedlicher Zielsetzung

Bemerkenswert ist dabei nicht nur die Trennung beider Systeme, sondern auch die Tatsache, dass sie gleichzeitig aktiv sein können. In der Praxis wurde das selten ausgenutzt, weil meist nur ein Monitor vorhanden war. Technisch war das System jedoch darauf vorbereitet.

  • VIC-IIe – Grafikmodi: Hi-Res-Bitmap (320×200), Multicolor-Bitmap (160×200), Zeichenmodi und Sprites im vertrauten Commodore-Rahmen.
  • VDC – Textmodi: 80×25 Standard, bei ausreichendem VRAM erweiterbar. Hardware-Cursor und textorientierte Arbeitsweise.
  • VDC – Grafikmodi: Bitmap-Grafik grundsätzlich vorgesehen, im Alltag aber deutlich seltener genutzt.
  • VRAM: C128 und früher C128D typischerweise 16 KB; C128DCR mit 8568 und 64 KB. Umbauten müssen gerätebezogen dokumentiert werden.

Der VDC ist für mich eines der unterschätzten Merkmale des C128. Nicht weil er spektakulär gewesen wäre, sondern weil er den Rechner dort ernsthaft machte, wo der C64 klar begrenzt blieb: bei Textarbeit, bei CP/M und bei allem, was einen schärferen, ruhigeren Bildschirm verlangte.

„Zwei getrennte Videosysteme in einem solchen Rechner waren keine Selbstverständlichkeit, sondern ein erheblicher konstruktiver Aufwand.“

[video/vdc_register_access]

VDC-Zugriff über $D600 und $D601

Der 8502 besitzt keinen direkten normalen Adressraumzugriff auf das VDC-RAM. Stattdessen wird zuerst über $D600 ein VDC-Register ausgewählt; Daten werden anschließend über $D601 gelesen oder geschrieben.

  1. Status prüfen: Ready-Bit des VDC abwarten.
  2. Registernummer schreiben: gewünschtes internes VDC-Register über $D600 auswählen.
  3. Daten übertragen: Wert über $D601 lesen oder schreiben.
  4. VRAM-Zugriff: interne Adressregister und Datenregister des VDC verwenden.

Dieser Handshake ist langsamer und umständlicher als direktes Screen-RAM, trennt aber Anzeige und Hauptspeicherbus. Der VDC besitzt außerdem Blockkopier- und Füllfunktionen, die lokale VRAM-Arbeit beschleunigen können.

[video/vdc_vram_models]

16 KB und 64 KB Video-RAM

Variante Praktische Bedeutung
8563 + 16 KB Standard für C128 und viele C128D; ausreichend für 80×25-Text und grundlegende VDC-Funktionen.
8563 + 64-KB-Umbau Nachgerüstete Erweiterung; ermöglicht größere Bitmaps, zusätzliche Zeichensätze und flexiblere Bildspeicheraufteilung.
8568 + 64 KB Typischer C128DCR-Stand mit stärker integrierter Logik und größerem lokalen Video-RAM.

Hohe oder interlaced VDC-Auflösungen sind programmierbare Betriebszustände, keine pauschal garantierten Monitorformate. Timing, VRAM-Größe, VDC-Revision und angeschlossener RGBI-Monitor müssen zusammenpassen.

[hardware/interrupt_io]

Interrupts und I/O-Zuständigkeiten

VIC-IIe, CIAs und Expansion-Hardware bilden weiterhin die wesentlichen Interruptquellen des 8502-Systems. Der VDC besitzt eigene Status- und Interruptmöglichkeiten, wird aber über seine Registerschnittstelle bedient.

Im CP/M-Modus müssen System-I/O und Interruptbehandlung teilweise zwischen Z80, BIOS und 8502-KERNAL-Routinen vermittelt werden. Das erhöht den Aufwand und erklärt einen Teil der geringeren praktischen CP/M-Leistung.

  • IRQ: unter anderem VIC-IIe und CIA1.
  • NMI: CIA2, RESTORE-Logik und Erweiterungshardware.
  • VDC: Status-/Ready-Abfragen und programmierbare Ereignisse über Register.
  • Z80/8502-Übergabe: Prozessormodus und Busbesitz werden durch die MMU koordiniert.
[hardware/connectors]

Anschlüsse und ihre Systemrollen

Anschluss Einordnung
Expansion Port C64-Modulkompatibilität und Erweiterung; Modus-, Timing- und MMU-Einflüsse beachten.
User Port CIA-I/O, serielle und Handshake-Signale sowie Versorgung; keine echte RS-232-Pegelwandlung.
IEC Serial Commodore-Peripherie, erweitert um Fast-Serial-/Burst-Signale über die CIA-Schieberegister.
Cassette Kompatible Datasette-Funktionen im Commodore-System.
Control Ports Joysticks, Maus und Paddle-Signale.
40-Spalten-AV/RF VIC-IIe-Ausgabe für Composite, getrennte Luma/Chroma-Signale und Fernsehausgabe.
80-Spalten-RGBI Digitale VDC-Ausgabe für geeignete 80-Spalten-Monitore.
[hardware/storage]

Das 1571-Laufwerk

Der C128 wurde nicht zufällig mit der 1571 verknüpft. Dieses Laufwerk gehört funktional zum Systemgedanken des Rechners. Im Vergleich zur 1541 ist es kein kleiner Schritt, sondern eine ernsthafte Erweiterung des gesamten Massenspeicher-Konzepts.

Das 1571 ist ein doppelseitiges 5,25-Zoll-Laufwerk. Es nutzt beide Seiten der Diskette über zwei Köpfe und verdoppelt damit die nutzbare Kapazität im Vergleich zur 1541 deutlich. Schon das allein war im Alltag relevant.

MFM und CP/M-Kompatibilität

Technisch noch wichtiger ist die Fähigkeit des 1571, neben Commodores GCR auch MFM zu verarbeiten. Erst damit wird der CP/M-Modus des C128 praktisch interessant. Ohne diese Eigenschaft wäre CP/M auf dem C128 vor allem eine Demonstration geblieben. Mit ihr wurde ein realer Austausch mit fremden Diskettenformaten zumindest in einem gewissen Rahmen möglich.

Burst-Modus

Im Zusammenspiel mit dem C128 unterstützt das 1571 einen Burst-Modus, der die serielle Übertragung deutlich beschleunigt. Gerade hier zeigt sich, dass Commodore nicht nur den Rechner selbst, sondern auch die Peripherie als Teil derselben Systementscheidung verstand.

[Drive_Diagnostic] Commodore 1571
> Typ: doppelseitiges 5,25-Zoll-Laufwerk / zwei Schreib-/Leseköpfe
> Format: Commodore-GCR + ausgewählte CP/M-MFM-Formate; kein pauschales MS-DOS/FAT-Laufwerk
> GCR: 350 KB formatiert / 1328 Commodore-Blöcke · MFM: je nach Format bis etwa 410 KB
> Burst-Modus: deutlich höhere Übertragungsrate im C128-Betrieb
> Bedeutung: machte den erweiterten Anspruch des Systems erst praktisch greifbar

Eigener Rechner im Laufwerk

Wie die 1541 ist auch die 1571 ein intelligentes Laufwerk mit eigener 6502-CPU, 2 KB RAM, 32 KB ROM und eingebautem DOS. Zusätzlich besitzt sie MFM-Controllerlogik und schnellere serielle Übertragung für den C128.

Für mich ist die 1571 deshalb ein gutes Beispiel dafür, dass der C128 nicht nur auf Platinenebene ernst gemeint war. Auch das Laufwerk zeigt, dass hier mehrere Anforderungen nicht nur behauptet, sondern bis in die Peripherie hinein mitgedacht wurden.

[storage/burst_serial]

Burst-Modus: Fast Serial statt nur beschleunigter Software

Der Burst-Modus nutzt die seriellen Schieberegister der CIAs und zusätzliche Takt-/Datenfunktionen des C128-Systems. Damit wird nicht nur eine KERNAL-Schleife optimiert, sondern der Transportweg technisch erweitert.

Betrieb Offizielle maximale Programmladerate
C64-Steuerung etwa 300 Zeichen pro Sekunde laut 1571-Servicehandbuch.
C128-Burst bis 5200 Zeichen pro Sekunde als Maximalwert.
CP/M-Burst ebenfalls bis 5200 Zeichen pro Sekunde als Maximalwert.

Reale Werte hängen von Dateityp, DOS-Routine, Fehlern und Software ab. Der entscheidende Punkt ist die Größenordnung: Die 1571 ist im C128-Modus nicht auf das langsame Standardprotokoll der 1541 beschränkt.

[storage/gcr_mfm_formats]

GCR, MFM und CP/M-Diskettenformate

Im Commodore-GCR-Betrieb nutzt die 1571 beide Diskettenseiten und bietet 350 KB formatierte Kapazität beziehungsweise 1328 Commodore-Blöcke. Sie bleibt dabei zur einseitigen 1541-Struktur kompatibel.

Der MFM-Controller erlaubt zusätzlich ausgewählte ein- und doppelseitige Double-Density-Formate. Commodores Servicehandbuch nennt unter anderem Kaypro, Osborne, IBM CP/M-86 und Epson QX-10 als kompatible Formatfamilien.

CP/M wird normalerweise von einer für den C128 vorgesehenen Systemdiskette gebootet. Fremde MFM-Medien werden anschließend über passende Diskettenparameter und CP/M-Werkzeuge gelesen.

[hardware/c128d]

C128D – Gehäuseform, Unterschiede und die DCR-Variante

Der C128D ist im Kern derselbe Rechner in einer anderen Gehäuseform. Diese Gehäuseform ist aber nicht bloß Kosmetik. Sie verändert den praktischen Charakter des Systems deutlich.

Während der Standard-C128 mit integrierter Tastatur noch deutlich als Nachfahre des C64 erscheint, wirkt der C128D eher wie ein kompakter Arbeitsplatzrechner: separates Keyboard, integriertes 1571-Laufwerk, mehr Ordnung auf dem Tisch, weniger Einzelgeräte im Betrieb.

Integriertes Netzteil

Ein wesentlicher Unterschied liegt im eingebauten Netzteil. Das vereinfacht die Aufstellung, verlagert die Wärmeentwicklung aber vollständig ins Gehäuse. Im Alltag ist das bequemer, technisch ist es nicht nur ein Vorteil.

C128D und C128DCR sauber getrennt

Wichtig ist die korrekte Einordnung: Der frühe europäische C128D kam im Kunststoffgehäuse mit Tragegriff und separater Tastatur. Die spätere C128DCR-Variante steht für „Cost Reduced“, besitzt ein Metallgehäuse, ein überarbeitetes Innenleben und eine stärker integrierte Platinenrevision.

Für den normalen Betrieb ist der Unterschied nicht immer groß. Für jemanden, der die Maschine technisch liest, ist er jedoch deutlich: andere Gehäusewirkung, andere innere Revisionen, andere VDC-Bestückung und eine andere Wartungsrealität. Gerade deshalb sollte man C128D und C128DCR nicht einfach gleichsetzen.

[Form_Factor_Comparison] C128 vs C128D vs C128DCR
> C128: flache Keyboard-Einheit / externes Netzteil / kein integriertes Laufwerk
> C128D: Desktop-Gehäuse aus Kunststoff / Tragegriff / integriertes 1571 / internes Netzteil
> C128DCR: Cost-Reduced-Revision / Metallgehäuse / überarbeitete Hauptplatine / integriertere Bestückung
> Kernarchitektur: verwandt / praktischer und technischer Charakter: sichtbar verschieden

Laufwerksintegration und VDC

Beim frühen C128D bleibt die 1571 weitgehend eine eigenständige interne Laufwerksbaugruppe. Im C128DCR ist die sogenannte 1571CR-Logik stärker in die Systemplatine integriert. Der DCR verwendet außerdem typischerweise den 8568-VDC mit 64 KB Video-RAM.

Gerade für den Alltag mit 1571 und 80-Spalten-Monitor war das D-Modell daher mehr als eine Verpackungsänderung. Es machte den Rechner ruhiger und geschlossener im Aufbau, ohne an der grundlegenden Drei-Modus-Logik etwas zu ändern.

[maintenance/power_supply]

Stromversorgung und Modellunterschiede

Der flache C128 verwendet ein externes Netzteil mit den für die Commodore-Architektur benötigten Gleich- und Wechselspannungszweigen. C128D und C128DCR besitzen interne Netzteile und führen deshalb Netzspannung im Rechnergehäuse.

  • Flacher C128: externes Netzteil vor Anschluss prüfen; nicht allein nach Steckerform ersetzen.
  • C128D/DCR: internes Netzteil nur fachgerecht und spannungsfrei öffnen.
  • 5-V-Schiene: Überspannung kann RAM, CPU, MMU, Video- und I/O-Chips beschädigen.
  • 9-V-AC-Zweig: beeinflusst abgeleitete Spannungen und Zeitbasisfunktionen.
  • Wärme: D-Modelle benötigen freie Lüftung und Kontrolle gealterter Netzteilbauteile.
[software/basic_cpm]

BASIC 7.0 und CP/M Plus

Mit BASIC 7.0 brachte der C128 ein deutlich weiterentwickeltes Commodore-BASIC mit. Im Vergleich zu BASIC 2.0 auf dem C64 ist der Unterschied nicht kosmetisch, sondern grundlegend: Grafik, Sound, Diskettenzugriff und strukturiertere Kontrollbefehle sind direkt integriert.

Was BASIC 7.0 direkt mitbrachte

  • Grafik-Befehle: DRAW, BOX, CIRCLE, PAINT – Vektorgrafik ohne zusätzliche Routinen.
  • Sprite-Befehle: direkte Sprite-Verwaltung ohne Umweg über Maschinensprache.
  • Sound-Befehle: PLAY, SOUND, ENVELOPE – SID-nahes Arbeiten aus BASIC heraus.
  • Disk-Befehle: DLOAD, DSAVE, DIRECTORY – deutlich näher am realen Alltagseinsatz.
  • Kontrollstrukturen: DO/LOOP mit WHILE- beziehungsweise UNTIL-Bedingungen sowie EXIT – weniger starre GOTO-Logik.
  • Fehlerbehandlung: TRAP für rudimentäres Abfangen von Laufzeitfehlern.

Damit war der C128 in BASIC erstmals als eigenständiger Arbeitsrechner ernst zu nehmen, ohne dass man sofort auf Erweiterungen oder Maschinensprache ausweichen musste.

[Software_Stack] C128
> BASIC 7.0: Grafik / Sprites / Sound / Disk / strukturierte Schleifen
> integriertes DOS: Verzeichnis- und Dateibefehle ohne OPEN-Umwege
> ML-Monitor: im C128-System-ROM integriert und direkt aufrufbar
> Ergebnis: eigenständige native Softwareumgebung, nicht nur C64-Kompatibilitätsmodus

Hinzu kommt der eingebaute Maschinensprachemonitor, der ohne Zusatzdiskette direkt verfügbar war. Auch das gehört zur Eigenständigkeit des Systems: weniger Umweg, mehr unmittelbarer Zugriff auf die Maschine selbst.

„BASIC 7.0 war nicht nur größer als sein Vorgänger. Es war ein Commodore-BASIC-Dialekt, der im Alltag deutlich weniger nach Zusatzarbeit verlangte.“

[software/kernal_editor]

KERNAL, Bildschirmeditor und 40-/80-Spalten-Umschaltung

Der C128-KERNAL stellt feste Einsprungpunkte für Systemdienste bereit und erweitert das C64-Modell um MMU-, VDC-, Burst- und neue Peripheriefunktionen. Der Bildschirmeditor kann mit beiden Videosystemen arbeiten.

Die 40/80-Taste wählt beim Start beziehungsweise für den Editor die bevorzugte Anzeige. Sie schaltet nicht zwischen C128 und CP/M um. Programme müssen weiterhin wissen, ob sie VIC-IIe- oder VDC-Ausgabe verwenden.

  • 40 Spalten: direktes Screen-/Color-RAM-Modell über VIC-IIe.
  • 80 Spalten: indirekte VDC-Ausgabe über Editor- und KERNAL-Routinen.
  • KERNAL-Einsprungpunkte: stabilere Schnittstelle als direkte Abhängigkeit von ROM-internen Adressen.
  • Function ROM: zusätzliche Systemsoftware kann beim Start eingebunden werden.
[software/cpm_plus]

CP/M Plus 3.0 auf dem C128

CP/M Plus nutzt den Z80 und organisiert die 128 KB über Banked Memory. Der C128 stellt dafür ein BIOS bereit, das Bildschirm, Tastatur, Laufwerke und weitere Hardware an CP/M vermittelt.

Der Betrieb ist funktional, aber die 4-MHz-Z80-Angabe beschreibt nicht die effektive Systemleistung. Speicherzyklen, Busanpassung und Übergaben an 8502-Systemroutinen reduzieren den praktischen Durchsatz.

Bereich Praktische Einordnung
Boot Geeignete C128-CP/M-Systemdiskette beim Reset/Einschalten oder BASIC-Befehl BOOT.
Anzeige 40- oder 80-Spalten-Unterstützung; VDC für Textarbeit deutlich zweckmäßiger.
Laufwerk 1571 oder 1581 für Burst und fremde Formate wesentlich geeigneter als 1541.
Software CP/M-Programme müssen zum Terminal, Speicherbedarf und verfügbaren Diskettenformat passen.

WordStar, dBase, Turbo Pascal und andere Programme zeigen die Breite der CP/M-Welt. Ihre Verfügbarkeit auf lesbaren Medien und ihre Terminalkonfiguration bleiben jedoch genauso wichtig wie reine Prozessor-Kompatibilität.

[compatibility/c64_mode]

C64-Kompatibilität: sehr hoch, nicht absolut

Der C128 bildet im C64-Modus Speicherkarte, ROM, VIC-II-Verhalten, SID, CIAs und Expansion-Port weitgehend nach. Das erklärt die hohe reale Softwarekompatibilität.

  • Dokumentierte Software: Programme mit KERNAL- und üblichen Hardwarewegen funktionieren meist problemlos.
  • Raster- und Timingcode: kann auf exakten VIC-/CPU-Zuständen oder Einschaltwerten beruhen.
  • Module: können den C64-Modus erzwingen, aber nicht jedes Modul verträgt jede C128-Revision.
  • Peripherie: elektrische Kompatibilität bedeutet nicht automatisch identisches Fast-Serial- oder Modusverhalten.
  • Undokumentierte Effekte: offene Buswerte und Chipnebenwirkungen können abweichen.

„Vollständig kompatibel“ ist deshalb als Marketing- und Konstruktionsziel verständlich, technisch aber zu absolut. Für Erhaltung und Tests ist eine abgestufte Kompatibilitätsaussage belastbarer.

[maintenance/diagnostics]

Diagnose nach Systemebenen

Symptom Erste Prüfebenen
Kein Start in irgendeinem Modus Netzteil, Reset, Takt, Z80-Start, MMU, 8502, ROM, RAM und Buslogik.
C64-Modus funktioniert, C128 nicht C128-ROM, MMU-Register, Bank-RAM, Editor und native Initialisierung.
40 Spalten vorhanden, 80 Spalten fehlen VDC, VRAM, RGBI-Ausgang, $D600/$D601-Zugriff und Monitor.
80 Spalten vorhanden, 40 Spalten fehlen VIC-IIe, Videoausgang, RAM-Bus, Takt und Moduskonfiguration.
CP/M bootet nicht Z80, Systemdiskette, Laufwerk, Burst-Leitungen, BIOS-Datenträger und Startlogik.
Nur eine RAM-Bank fehlerhaft DRAM-Bank, CAS-Leitungen, MMU, Multiplexer und Common-RAM-Konfiguration.
1571 arbeitet nur langsam C128-Modus, Burst-Signale, CIA, serielles Kabel, Laufwerks-DOS und Mechanik.
  1. Versorgung, Reset und Takt zuerst prüfen.
  2. 40- und 80-Spalten-Ausgang getrennt testen.
  3. C128-, C64- und CP/M-Zustand getrennt protokollieren.
  4. Beide 64-KB-RAM-Bänke und Common RAM testen.
  5. VDC-RAM-Größe nicht nur aus Modellnamen ableiten.
  6. 1571-Burst und normalen IEC-Betrieb getrennt prüfen.
[maintenance/first_start]

Bestandsschonende Inbetriebnahme

  1. Modell, Typenschild und äußeren Zustand fotografieren.
  2. Netzteil beziehungsweise internes Netzteil fachgerecht prüfen.
  3. Ohne unbekannte Module und Peripherie erstmals starten.
  4. 40-Spalten- und 80-Spalten-Ausgang mit passenden Monitoren testen.
  5. C128- und C64-Modus vor CP/M und Laufwerkstests prüfen.
  6. 1571 zuerst mit entbehrlichem Testmedium verwenden.
  7. ROM-, RAM- und VDC-RAM-Zustand dokumentieren.
  8. Änderungen reversibel halten und Originalteile beschriften.
[archive/c128_preservation]

Erhaltung von Rechner, VDC-RAM und Laufwerksbestand

  • Mainboard: Boardnummer, Revision, 8502, MMU, VDC und RAM-Bestückung fotografieren.
  • ROMs: Dumps und Prüfsummen je Modell und Revision sichern.
  • VDC: 8563/8568 und tatsächliche VRAM-Größe getrennt dokumentieren.
  • 1571: DOS-ROM, Controller, Mechanik und Kalibrierzustand erfassen.
  • Disketten: GCR- und MFM-Medien mit passenden Werkzeugen schreibgeschützt sichern.
  • Netzteil: Messwerte, Reparaturen und Ersatzteile dokumentieren.
  • Zubehör: RGBI-Kabel, Tastatur, Netzteil und Laufwerk eindeutig dem Gerät zuordnen.

Eine moderne VDC-, MMU- oder Netzteilersatzlösung kann den Betrieb sichern. Die Archivakte muss dennoch festhalten, welche Komponenten original, repariert, ersetzt oder erweitert wurden.

[documentation/c128_sources]

Technische Referenzen

Modellrevisionen, PAL/NTSC-Unterschiede, VDC-RAM-Umbauten und Laufwerkscontroller können einzelne Angaben verändern. Der konkrete Gerätebefund hat Vorrang vor einer pauschalen Modellannahme.

[meaning/continuity]

Was der C128 über Übergänge sagt

Der C128 ist für mich ein präzises Beispiel dafür, was ein Übergangssystem leisten kann – und was es dafür in Kauf nehmen muss. Er wollte zugleich kompatibel und eigenständig sein, zugleich Heimrechner und Arbeitsgerät, zugleich Teil der Commodore-Linie und CP/M-Plattform. Genau diese Mehrfachbelastung macht ihn lesbar.

An vielen Stellen seiner Architektur sieht man Entscheidungen, die aus realen Problemen entstanden sind: die MMU als Antwort auf den zu kleinen Adressraum, der Z80 als direkte Lösung für CP/M, die doppelte Videologik als Trennung von Kompatibilität und Textarbeit, das 1571 als notwendige Ergänzung derselben Systemidee. Nichts davon wirkt beiläufig.

Was dabei leidet, ist konzeptionelle Schärfe. Der C128 hat kein einziges, vollständig klares Profil. Genau das ist aber keine Schwäche im moralischen Sinn, sondern eine Folge seines Anspruchs. Übergangssysteme lösen mehrere Probleme gleichzeitig und zeigen gerade deshalb an ihren Nahtstellen oft mehr als reine Serienkonzepte.

Wer so einen Rechner ernst nimmt, muss deshalb nicht nur seine Stärken sehen, sondern auch die Stellen, an denen seine Architektur unter Last sichtbar wird. Genau dort wird er interessant.

[Lesson_Transfer] C128 -> Technikverständnis
> Kompromisse sind keine Fehler – sie sind Entscheidungen unter realen Bedingungen
> Übergangsarchitektur zeigt mehr über Entwicklung als glatte Endzustände
> Kompatibilität und Eigenständigkeit schließen sich nicht aus – kosten aber immer etwas
> Ergebnis: Systeme ernst nehmen heißt, ihre Nahtstellen zu lesen

Für mich gehört der C128 deshalb eher in die Kategorie der lesbaren Systeme als in die der lauten. Er zeigt nicht Perfektion, sondern Struktur unter mehreren Anforderungen. Und genau das ist oft aufschlussreicher.

Was bleibt, ist ein Rechner, der in bemerkenswert engem Rahmen drei Betriebsumgebungen, zwei CPUs und zwei Videologiken zusammenführt und dabei noch vollständige C64-Kompatibilität mitträgt. Das ist keine kleine technische Leistung.

„Der C128 ist nicht deshalb interessant, weil er alles ideal löst. Er ist interessant, weil man an ihm mehrere echte Entscheidungen gleichzeitig lesen kann.“