Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:cpm:64kmodul [2013/07/04 14:16] – [IORQ-Problem] volkerpz9001:cpm:64kmodul [2020/03/19 13:47] (aktuell) – [64K-SRAM-Modul U. Zander] volkerp
Zeile 35: Zeile 35:
 64K-RAM-Modul 1.6640.01080 64K-RAM-Modul 1.6640.01080
  
-BILDER+{{:z9001:module:ram64_k.jpg?300|}} {{:z9001:module:ram64b_k.jpg?300|}}
  
 Schreibzugriff auf Port 04h: Vordergrund-RAM aktiv (Bank 1)\\  Schreibzugriff auf Port 04h: Vordergrund-RAM aktiv (Bank 1)\\ 
Zeile 81: Zeile 81:
 Schreibzugriff auf Port 07h: Zuschaltung RAM-Bereich C000H-E7FFh (RAM ist les- und schreibbar (R/W))\\   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) Nach Reset ist Bank 1 aktiv, der hohe RAM im Bereich C000H-E7FFh ist unsichtbar (hier ist das Boot-ROM-Modul aktiv)
 +
 +===== 64K-SRAM-Modul U. Zander =====
 +
 +{{:z9001:cpm:64ksram.jpg?300|}}
 +
 +http://www.sax.de/~zander/projekte/sram64.html
 +
 +Das 64K-SRAM-Modul ist eine Eigenentwicklung von U. Zander. Es enthält:
 +
 +  * 128K RAM, davon jeweils 58K in zwei Bänken nutzbar 
 +  * ROM-Bank, 128K bis 1MB ROM, in 16 bis 128 Bänken nutzbar analog [[z9001:module_sonstige:128k_rombank|TU-ROM-Bank]]
 +  * CMOS-RTC Echtzeituhr nach [[z1013:literatur:practic-90-11-1|O. Matthäi]] (nicht kompatibel zur GIDE-RTC).
 +
 +Anzeige:
 +
 +  rote LED                       Hi-RAM C000-E7FF aktiv
 +  grüne LED                      RAM 8000-BFFF aktiv
 +  gelbe LED                      Shadow-RAM 4000-7FFF aktiv
 +  7-Segment-Anzeige              aktive ROM-Bank-Nummer
 +  Dezimalpunkt der Zehnerstelle  ROM-Bank ist aktiv
 +  Dezimalpunkt der Einerstelle   2. RAM-Bereich ist aktiv
 +
 +
 +Bedeutung der Schalter, wenn geschlossen/on (Achtung: Nummerierung der Schalter ist anders als die der Steckbrücken!):
 +  X2  (5)  /ROMDI für KC87 (on)
 +  X3  (4)  Gesamt-RAM 48K  (on)
 +  X4  (3)  ROM abgeschaltet (off)
 +  X5  (2)  RTC abgeschaltet (off)
 +  X6  (1)  ADR19 für EPROM 27C040 und 27C080 (M28F101 -> On)
 +
 +Ein 128K-Flash-Eprom M28F101 funktioniert, 29C020 und 29C040 leider nicht. Hier müsste man Pin 1/Pin31 ändern (A18,A19).
 +
 +
 +die CMOS-Uhr ist leider nicht kompatibel zur GIDE-RTC.
 +
 +Für die Zusammenarbeit mit dem **Mega-Modul** muss auch auf diesem Modul die Verbindung zwischen  X1:27B--27B getrennt und ein Draht von D8 (unterer DL074) Pin 6 an X1:27B gelegt werden. Alternativ gibt es eine Variante der [[z9001:software:mega|]], die auf diesem Modul läuft und das Mega-Flash-Modul überflüssig macht.
 +
 +^ I/O-Adresse ^ Bedeutung ^
 +| 04H | Setzen RAM-Bank 0 (Vordergrund-RAM), Adressbereich 4000H bis 7FFFH |
 +| 05H | Setzen RAM-Bank 1 (Hintergrund-RAM), Adressbereich 4000H bis 7FFFH |
 +| 06H | RAM ist W/O, Adressbereich C000H bis E7FFH |
 +| 07H | RAM ist R/W, Adressbereich C000H bis E7FFH |
 +| 60H-6FH | RTC (CMOS-Uhr) |
 +| 74H | Modul-Disable, arbeitet wie ein Flipflop |
 +| 75H | Setzen der ROM-Bank, 0 bis max. 7FH (128 Bänke) |
 +| 76H | Einschalten des 1. 64K-RAM, Grundzustand |
 +| 77H | Einschalten des 2. 64K-RAM |
 +| 78H | Weiterschalten der ROM-Bank beim Suchen, 0 bis max. 7FH (128 Bänke) |
 +
 +<ditaa noedgesep>
 +RAM
 +
 +  E800      +---------+           +---------+          
 +            |  Hi-RAM |            Hi-RAM |          
 +            |  10K    |            10K    |          
 +  C000      +---------+           +---------+          
 +            |                                    
 +            |  16K    |            16K    |          
 +  8000      +---------+---------+ +---------+---------+
 +            |  Bank 0 |  Bank 1 | |  Bank 0 |  Bank 1 |
 +            |  16K    |  16K    | |  16K    |  16K    |
 +  4000      +---------+---------+ +---------+---------+
 +                  1. 64K-RAM            2. 64K-RAM
 +
 +ROM
 +
 +  E800      +---------+---------+       +---------+---------+
 +            |  ROM    |  Hi-RAM |        ROM    |  Hi-RAM |
 +  D7FF      |         +---------+               +---------+
 +            |  10K    |  ROM 6k |  ...  |  10K    |  ROM 6k |
 +  C000      +---------+---------+       +---------+---------+
 +              Bank 0    Bank 1            Bank 126  Bank 127
 +</ditaa>
 +
 +Beim Steuern der Zustände mit OUT-Befehlen werden bis auf OUT 75H keine Werte übergeben. OUT 75H wird zur Steuerung der ROM-Bänke benutzt.
 +
 +Der SRAM-Bereich (2x 16K von 4000H bis 7FFFH und 26K von 8000H bis E7FFH) steht doppelt zur Verfügung und kann bei Bedarf umgeschaltet werden.
 +
 +RAM-Bereich 4000H bis BFFFH (32K):
 +
 +Der Bereich 4000H bis 7FFFH ist doppelt belegt und steht z.B. als Vordergrund-RAM und als Hintergrund-RAM zur Verwendung unter dem Rossendorfer CP/M zur Verfügung. OUT 4 schaltet den Vordergrund-RAM ein, das ist auch der Grundzustand nach RESET. OUT 5 schaltet den Hintergrund-RAM sichtbar.
 +
 +RAM-Bereich C000H bis E7FFH (10K):
 +
 +Die ROM-Bank benutzt 10K und 6K große Bänke. Ist die ROM-Bank nur 6K groß, sind die verbleibenden 4K des Hi-RAM sichtbar.
 +
 +Um den 128K-SRAM-Schaltkreis optimal auszulasten, kann mit OUT 77H  ein zweiter, gleich großer RAM von 4000H bis E7FFH genutzt werden (1. und 2. RAM-Bank). Rückgeschaltet wird mit OUT 76H (= Zustand nach RESET). 
 +
 +===== Kombi-Modul U. Zander =====
 +
 +Auch das [[z9001:module_sonstige:kombimodul|]] bietet 64K Rossendorf-kompatiblen Speicher.
 +Je nach eingesetztem RAM stehen im Unterschied zum 64K-SRAM-Modul 2 bzw. 8 RAM-Bänke a 42k+16k zur Verfügung, die leicht anders angesteuert werden:
 +
 +  76H n - RAM-Bank n setzen (n =0..1 bzw. 0..7)
 +  77H - Modul-Disable/Enable
 +
  
 ====== Modifikationen ====== ====== Modifikationen ======
Zeile 88: Zeile 184:
 Klaus Junge hat durch geeignete Meßtechnik einen störenden Fehler im 64K-Schalt-RAM-Modul gefunden: 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. +Die originale Schaltung sowohl des Rossendorfer 64K-Schalt-RAM-Moduls als auch des Robotron-64K-Schalt-RAM-Moduls hat einen Designfehler. Bei einer speziellen Konstellation (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.** **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:+Der Umbau beschränkt sich auf das Trennen von 3 Leiterzügen und das einfügen von 3 Drahtbrücken:
  
 {{:z9001:cpm:fehler_64k.gif?380|}} {{:z9001:cpm:umbau_64k_l.gif?300|}}\\ {{:z9001:cpm:fehler_64k.gif?380|}} {{:z9001:cpm:umbau_64k_l.gif?300|}}\\
Zeile 106: Zeile 202:
  
 **Das Mega-Modul muss als erstes Modul in den Modulschacht gesteckt werden, direkt gefolgt vom 64K-RAM-Modul!** **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. 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.
  
-{{:z9001:module:64kram-umbau.jpg?250|}}\\ +Beim 64K-SRAM-Modul muss die Verbindung zwischen X1:27A–27B getrennt und ein Draht von D8 (unterer DL074) Pin 6 an X1:27B gelegt werden. 
-zusätzliche Verbindung am 64K-RAM-Nachbau-Modul (Leiterseite)+ 
 +{{:z9001:module:64kram-umbau.jpg?250|}} {{:z9001:cpm:64ksram_leiterseite.jpg?250|}}\\ 
 +zusätzliche Verbindung am 64K-RAM-Nachbau-Modul (Leiterseite), 64K-SRAM-Modul (rechts) 
 + 
 +**Wegen der Zweckentfremdung der Signale A27 (BAI-BAO = BUSAK) dürfen umgebaute RAM-Module nicht mehr auf dem ersten Steckplatz gesteckt sein!!**
  
  • z9001/cpm/64kmodul.1372947380.txt.gz
  • Zuletzt geändert: 2013/07/04 14:16
  • von volkerp