DEV-TRONIC.de

Z80Ardu – Extended Memory

Nachdem ich die Grafikkarte mit dem MC6847 beiseite gelegt, und diese durch die Grafikkarte mit dem TMS9918 ersetzt hatte, wurde der Speicherbereich von E000 bis FFFF frei. Zuvor war dort der Speicher für die MC6847-Grafikkarte. Da der TMS9918 seinen Speicher unabhängig vom regulären 64 Kilobyte-Speicher des Z80Ardu verwaltet (dieser befindet sich für den Z80-Prozessor unsichtbar auf der TMS9918-Grafikkarte), kann der nun freie Speicherbereich wieder für andere Zwecke genutzt werden.

Es liegt also nahe, den Bereich wieder mit RAM zu belegen, der für reguläre Programmdaten verfügbar ist. Immerhin handelt es sich um 8 Kilobyte, die, wenn die MC6847-Karte zum einsatz kam, eben als Video-RAM deklariert waren.

Also habe ich eine Erweiterungskarte entworfen, die den Bereich ab E000 wieder mit RAM belegt. Es erschien mir aber sinnvoll, dort nicht nur 8 KB zur verfügung zu stellen, sondern 2 Megabyte RAM. Da der Z80-Prozessor nur 64 Kilobyte adressieren kann, werden die 2 MB als „Banked Memory“ verfügbar gemacht. Es sind also ab E000 immer nur 8 Kilobyte verfügbar.

Per I/O-Befehl können 256 Bänke aktiviert werden. Es lassen sich also 256 x 8 Kilobyte Daten oder Programme in den 2 MB RAM ablegen. Für ein Z80-System ist das eine gewaltige Speichergröße.

Für die Speicherkarte habe ich keinen Prototyp gebaut (zu viele Leitungen 🙂 ). Ich habe den Schaltplan entworfen und gleich die passenden Platinen bestellt.

Erste Version der Speichererweiterung. Hier gab es Timingprobleme, da das /IOREQ-Signal nicht mit dem /WR-Signal synvhron war

Verbaut sind vier 512 Kilobyte-SRAM-Bausteine. Das Bankswitching erledigt ein Latch (74HCT573). Chipselect erfolgt mit einem 74HCT139 und zu guter Letzt kümmert sich ein Inverter (74HCT04) um die Umkehr des Latch-Enable-Signals des 74HCT573.

06.01.2024 – Eine neue Version der Platine erstellt und bestellt.

Es ist ein ODER-Gatter dazu gekommen, um /IOREQ und /WR zu synchronisieren. Außerdem wurde das Layout der Platine leicht verändert. Vier LEDs zeigen an, welcher Chip gerade aktiv ist (reine Kontrollfunktion)

Cookie Consent mit Real Cookie Banner