C128 NetLex

Commodore 128 Bedienungshandbuch
Commodore 128 System Guide



B. Die Speicherverwaltung mit der MMU

B.2.1 Das Konfigurations-Register

Das Konfigurations-Register (CR) kontrolliert ROM-, RAM- und I/O-Konfiguration im C128-System. Es liegt sowohl bei Adresse $D500 des I/O-Bereiches als auch bei Adresse $FF00.

Im C128-Modus kontrolliert das Bit 0, ob der I/O-Bereich ($D500-$D5FF) eingeschaltet oder ob der ROM/RAM-Bereich zugeschaltet ist. Eine 0 schaltet die I/O-Konfiguration ein. Eine 1 erlaubt eine der verschiedenen ROM/RAM-Kombinationen einzuschalten. Welche, hängt vom Zustand der anderen Bits im Konfigurations-Register ab. Der Wert dieses Bits wird zwischengespeichert, bis der Taktimpuls abfällt, um einen unstabilen Zustand zu vermeiden. Im C64-Modus wird die I/O-Select-Leitung durch dieses Bit auf 1 festgehalten. Zu beachten ist, daß, wenn der I/O-Bereich nicht eingeschaltet ist, der ROM/RAM-Zugriff durch die ROM-High-Konfigurations-Bits kontrolliert wird (dies wird in einem späteren Abschnitt behandelt). Das Bit 0 ist nach dem Einschalten oder nach einem Systemreset auf 0 gesetzt. Wenn Bit 0 = 1 ist, schalten sich die MMU-Register ($D500-$D508) dazu. Wenn Bit 0 = 0 ist, werden die Register aus dem Speicherbereich weggeschaltet. Die MMU-Register im Bereich von $FF00-$FF04 sind im C128-Modus immer präsent. Die I/O-Select-Leitung zeigt im C128-Modus den Zustand dieses Bits an.

Das Bit 1 kontrolliert im C128-Modus den Prozessorzugriff zum niederwertigen ROM-Bereich (s. Bild B.1), der im Adreßraum $4000-$7FFF angelegt ist. Ist das Bit 1, so erscheint der Bereich als RAM und wird mit CAS-Signalen versorgt. Wenn Bit 1 = 0 ist, wird System-ROM in diesen Bereich eingeschaltet. Dieses Bit hat Auswirkung auf die Speicher-Status-Leitungen MS0 und MS1. Es wird im PLA (Progamable Logic Array) decodiert und gibt den entsprechenden ROM-Steckplatz (chip select) frei. Wurde an dieser Stelle ROM gewählt, werden die beiden MS0- und MS1-Leitungen nach 0 gezogen, wenn der Prozessor diesen Bereich adressiert. Bit 1 wird auf 0 gesetzt, wenn im C128-Modus das BASIC-Low-ROM (s. Bild B.1) eingeschaltet werden soll.

Die nächsten zwei Bits (Bit 2 und 3) bestimmen im C128-Modus die Speicherart (ROM oder RAM) für den mittleren Bereich, der im Adressraum von $8000-$BFFF angelegt ist. Wenn beide Bits auf 0, sind wird hier das System-ROM angelagert. Ist nur das Bit 2 = 1, wird das interne Funktions-RAM zugeschaltet. Das externe Funktions-ROM ist eingeschaltet, wenn das Bit 3 alleine 1 ist. RAM wird in diesem Bereich angelegt, wenn beide Bits auf 1 gesetzt sind.

Diese beiden Bits haben auch eine Auswirkung auf die Speicherstatus-Leitungen:

Wenn der mittlere Bereich adressiert wird, reflektiert MS0 den Zustand von Bit 3 und MS1 den Zustand von Bit 2. Beide Bits werden auf 0 gesetzt, wenn der BASIC-High-ROM eingeschaltet wird.

Die Bits 4 und 5 bestimmen die Speicherart (RAM oder ROM im Adreßraum $C000-$FFFF. Diese beiden Bits haben keinen Einfuß auf den C64-Modus. Ähnlich wie im mittleren Bereich, ist, wenn beide Bits auf 0 gesetzt sind, das System-ROM eingeschaltet.

Ist Bit 4 allein 1, wird das interne Funktions-ROM zugeschaltet. Das externe Funktions-ROM ist eingeschaltet, wenn Bit 5 allein 1 ist. Sind beide Bits auf 1 gesetzt, ist in diesem Bereich RAM angelegt. Zu beachten ist, daß, wenn das I/O-Bit 1 ist, der Bereich zwischen $D500 und $D5FF unabhängig vom Zustand dieser Bits für I/O-Funktionen reserviert ist. Ist das I/O-Bit 0, ist in diesem Bereich ($D000-$DFFF) der Zeichengenerator (Character ROM) angelegt. Das bedeutet, daß im oberen ROM im Bereich $D000-$DFFF immer eine Lücke existiert. Wie bei den anderen ROM-Select-Bits beeinflussen diese beiden Bits auch die Memory-Select-Leitungen. Bit 5 korrespondiert mit MS1 und Bit 4 mit MS0. Die beiden Bits werden durch Einschalten oder
durch einen System-Reset auf 0 gelegt und die ROMs mit Betriebssystem und Zeichengenerator werden eingeschaltet.

Auch hier ist zu beachten, daß im C128-Modus ebenfalls eine Lücke für die MMU-Register im Bereich von $FF04 vorhanden ist. Diese Lücke wird durch die beiden MS-Leitungen und die beiden CAS-Enable-Leitungen geschaffen, die alle auf 1 gehalten werden.

Die beiden letzten Bits (Bit 6 und 7) kontrollieren die RAM-Bank-Auswahl. Ihre Funktion hängt von der MMU-Version ab. Für die vorliegende Version als 128-kByte-System ist nur das Bit 6 signifikant. Ist das Bit 6 auf 0, ist die Bank 0 eingeschaltet, indem das CAS0-Signal freigegeben wird. Ist Bit 6 = 1, wird das CAS1-Signal freigegeben und schaltet damit die Bank 1 ein. Bit 7 ist in dieser Version inaktiv.


Auszug aus dem Commodore C128 (D) Bedienungshandbuch: Seite B-9 und B-12


[Seitenanfang] [Infos] [Links] [Lexikon] [Home]
Erstellt von WTE, am 04. Februar 2013; überarbeitet am 04. Februar 2013