Dies ist eine alte Version des Dokuments!
64K-RAM-Modul
Um CP/M mit maximalem Speicher (und der originalen Software) nutzen zu können, wird ein spezielles 64K-Schalt-RAM-Modul benötigt. Dieses kann über OUT-Befehle auch den ansonsten vom ROM-Modul bzw. internen BASIC genutzten Speicherbereich von C000-E7FF mit nutzen.
Das 64K-RAM-Modul enthält RAM-Speicher von 4000h-E7FFh, der Bereich von 4000h-7FFFh ist doppelt vorhanden. Diese 2. Bank, der „Schatten-RAM“ wird vom CP/M-BIOS genutzt. Hier wir ein Großteil des BIOS abgelegt, außerdem befindet sich in diesem Bereich der Floppy-Disk-Puffer. Damit ist der im Hauptspeicherbereich liegende Teil des BIOS bedeutend kleiner und so steht viel mehr Speicher für CP/M zur Verfügung (d.h. ein größerer TPA-Bereich).
<ditaa noedgesep>
E800 +---------+ | Hi-RAM | | 10K | C000 +---------+ | | | 16K | 8000 +---------+---------+ | Bank 1 | Bank 2 | | 16K | 16K | 4000 +---------+---------+
</ditaa>
Das Modul wird über I/O-Adressen abgesteuert:
- Schreibzugriff auf Port 04h: Vordergrund-RAM aktiv (Bank 1)
- Schreibzugriff auf Port 05h: Hintergrund-RAM aktiv (Bank 2, Shadow-RAM)
- Schreibzugriff auf Port 06h: Abschaltung RAM-Bereich C000H-E7FFh (RAM ist nur beschreibbar (W/O))
- Schreibzugriff auf Port 07h: Zuschaltung RAM-Bereich C000H-E7FFh (RAM ist les- und schreibbar (R/W))
Nach Reset ist Bank 1 aktiv, der hohe RAM im Bereich C000H-E7FFh ist unsichtbar (hier ist das Boot-ROM-Modul aktiv)
Hinweis: Sowohl von Rossendorf als auch von Robotron werden die im Modul vorhandenen 32k-Grund-RAM erst im Zusammenhang mit der RAM-Umschaltung aktiviert, d.h. der weggeschaltete RAM-Bereich geht von 4000H-E7FFh! Damit ist ein originales 64K-RAM-Modul leider nicht als RAM-Modul-Ersatz für den normalen OS-Betrieb mit BASIC nutzbar. Die Nach- und Umbauten vermeiden dies, so dass diese 64K-RAM-Module nach dem Einschalten des KCs 2 16K-RAM-Module vollständig ersetzen.
Robotron
64K-RAM-Modul 1.6640.01080
BILDER
Schreibzugriff auf Port 04h: Vordergrund-RAM aktiv (Bank 1)
Schreibzugriff auf Port 05h: Hintergrund-RAM aktiv (Bank 2, Shadow-RAM)
Schreibzugriff auf Port 06h: Abschaltung RAM-Bereich 4000H-E7FFh (RAM ist nur beschreibbar (W/O))
Schreibzugriff auf Port 07h: Zuschaltung RAM-Bereich 4000H-E7FFh (RAM ist les- und schreibbar (R/W))
Nach Reset ist Bank 1 aktiv, der hohe RAM im Bereich 4000H-E7FFh ist unsichtbar (hier ist das Boot-ROM-Modul aktiv)
Rossendorf
64K-DRAM-Modul 5285.0015
Das Modul wird über I/O-Adressen abgesteuert:
Schreibzugriff auf Port 04h: Vordergrund-RAM aktiv (Bank 1)
Schreibzugriff auf Port 05h: Hintergrund-RAM aktiv (Bank 2, Shadow-RAM)
Schreibzugriff auf Port 06h: Abschaltung RAM-Bereich 4000H-E7FFh (RAM ist nur beschreibbar (W/O))
Schreibzugriff auf Port 07h: Zuschaltung RAM-Bereich 4000H-E7FFh (RAM ist les- und schreibbar (R/W))
Nach Reset ist Bank 1 aktiv, der hohe RAM im Bereich 4000H-E7FFh ist unsichtbar (hier ist das Boot-ROM-Modul aktiv)
Nachbau U. Zander
http://www.sax.de/~zander/projekte/z9ram1b.html
Neuauflage des 64K-RAM-Modul von Robotron:
U. Zander hat eine Platine des 64K-RAM-Modul nachfertigen lassen.
Die Platine wurde nicht an modernere Bauelemente angepaßt. Die einzige Erweiterung ist die Anzeige der aktuellen RAM-Konfiguration durch LEDs.
Sowohl von Rossendorf als auch von Robotron wurden die im Modul vorhandenen 32k-Grund-RAM erst im Zusammenhang mit der RAM-Umschaltung aktiviert. Im neuen 64K-RAM-Modul ist dieser Nachteil behoben.
Außerdem gibt es von U. Zander eine Umbauanleitung eines 16k-Moduls zum 64k-Modul:
http://www.sax.de/~zander/z9001/ex/ram64e.html
Schreibzugriff auf Port 04h: Vordergrund-RAM aktiv (Bank 1)
Schreibzugriff auf Port 05h: Hintergrund-RAM aktiv (Bank 2, Shadow-RAM)
Schreibzugriff auf Port 06h: Abschaltung RAM-Bereich C000H-E7FFh (RAM ist nur beschreibbar (W/O))
Schreibzugriff auf Port 07h: Zuschaltung RAM-Bereich C000H-E7FFh (RAM ist les- und schreibbar (R/W))
Nach Reset ist Bank 1 aktiv, der hohe RAM im Bereich C000H-E7FFh ist unsichtbar (hier ist das Boot-ROM-Modul aktiv)
Modifikationen
IORQ-Problem
Klaus Junge hat durch geeignete Meßtechnik einen störenden Fehler im 64K-Schalt-RAM-Modul gefunden:
Die originale Schaltung sowohl des Rossendorfer 64K-Schalt-RAM-Moduls als auch des Robotron-64K-Schalt-RAM-Moduls habt einen Designfehler. Bei einer speziellen Konstellationen (XX04..XX07 auf dem Adressbus und gleichzeitiger Interrupt-Anforderung) liegt das M1-Signal noch vor dem IORQ-Signal an Gatter XX. Dadurch wird fälschlicherweise ein Portzugriff erkannt; das Modul schaltet um; der KC hängt sich auf.
Abhilfe schafft eine Verzögerung des M1-Signals durch 2 auf der Leiterplatte verfügbare Gatter. Der Umbau beschränkt sich auf das Trennen von 3 Leierzügen und das einfügen von 3 Drahtbrücken:
links: fehlerhaftes Signal bei Port 07h, rechts: Umbau des 64-Moduls
- Korrektur Leiterplatte z9ram1b-korr1.pdf
- Korrektur Schaltbild z9ram1b_s-korr.pdf
Abschaltsignal für Megamodul
Wird ein Megamodul als Bootstrap-Lader genutzt, muss das Megamodul abschaltbar sein. U. Zander hat eine Lösung entwickelt, die das Abschaltsignal für das ROM-Modul aus dem 64K-Schalt-RAM-Modul bekommt. Über die Signalleitung 27 des Systembusses (original BAO-BAI) wird das Abschaltsignal vom RAM-Modul X1:27B an das davorsteckende Mega-Modul X1:27A durchgereicht.
Das Mega-Modul muss als erstes Modul in den Modulschacht gesteckt werden, direkt gefolgt vom 64K-RAM-Modul!
Der Umbau des 64K-Schalt-RAM-Moduls ist trivial: Das Abschaltsignal (58K-RAM-Signal) des 64K-RAM-Nachbau-Moduls wird von D7A/6 an X1:27B gelegt.
zusätzliche Verbindung am 64K-RAM-Nachbau-Modul (Leiterseite)