Bankswitching beim C64 und C128

der heutige Aufsatz kommt von Hans. Damit ihr ihn in aller Ausführlichkeit genießen könnt gibt es erst am Montag einen neuen Blog von mir.

Aufbauend auf den Artikel von Bernd hier ein paar Details zu den grossen Konkurenten der CPC-Serie. Als erstes wären da die CPUs zu nennen, das sind nämlich keine reinen 6502-CPUs, sondern Abwandlungen davon. Sie sind allerdings Befehlssatzkompatibel. Beim C64 ist das eine 6510 CPU, beim 128er eine 8502 CPU. Beiden gemeinsam ist, das sie über einen 6 Pin Port verfügen, über den das Speichermanagement gesteuert wird. Genutzt werden davon allerdings nur 3 Bits, die anderen drei werden zur Steuerung der Datasette, also des Kassettenrecorders zum Datenspeichern benutzt. Die 8502 CPU im 128er kann ausserdem noch mit der doppelten Taktfrequenz von 2MHz arbeiten. Und beim 128er kommt noch eine programmierbare MMU (Memory Management Unit) dazu, aber dazu später.

Die Speicherchips sind fast identisch; beim C64 sind acht, beim 128er sechzehn 4164 RAM-Chips verbaut. Dazu kommen beim 64er zwei ROMs vom Typ 2364A, eines vom Typ 2332A sowie ein spezielles Color-RAM, Typ 2114L-3. Der C128 hat vier ROMs vom Typ 23128, wovon zwei auch vom Typ 23256 sein können, und einen Steckplatz, d.h. IC-Sockel für ein fünftes 23256 ROM. Ausserdem hat er noch zwei 4416 RAMs für den 80-Zeichen Controller. Continue reading „Bankswitching beim C64 und C128“

Bankswitching

Das heutige Thema kommt vielleicht 25-30 Jahre zu spät, aber vielleicht interessiert es den einen oder anderen doch, wie sein Heimcomputer mit mehr als 64 KByte Speicher zurecht kam.  Es geht darum, wie ein ein 8-Bit-Prozesssor mehr als 64 KB Gesamtspeicher verwaltet. Als erstes muss klar sein, dass wir von Gesamtspeicher reden, also RAM und ROM (ich glaube viele wären in den achtziger Jahren schon froh gewesen, wenn der Rechner jeweils 64 KByte RAM und 64 KByte ROM hätte ansprechen können, aber leider ist dem nicht so).
Fangen wir zuerst mal an wie der Speicher adressiert wird. Wenn der Computer ein Wort aus dem Speicher lesen möchte macht er folgendes:

  • Er legt die Adresse von der der Zugriff erfolgt auf den Adressbus
  • Er zieht das Chip-Select Signal auf logisch 0 (bei den Bausteinen steht immer kein Strom für Zugriff und Strom für keinen Zugriff)
  • Er wartet einen Takt bis der Speicher die Adresse dekodiert und die Daten auf den Datenbus geschrieben hat
  • Er liest die Daten über den Datenbus ein. Continue reading „Bankswitching“