Adressdekodierung und Speicheraufteilung

Verwertete Steuerbus-Signale

IORQInput Output Request Lowactive
MREQMemory Request Lowactive
WRWrite Signal Lowactive
RDRead Signal Lowactive
Generation von Signalen zur Verdrahtung 

Zuordnung am GAL 22V10

PIN NrBezeichnerAusdruck PIN NrBezeichnerAusdruck
1A16Eingang 13A15Eingang
2A17Eingang 14A14Eingang
3A18Eingang 15CSI2CEingang (kommt vom LS138) 
4A19Eingang 16I2CToggleCSI2C & A2 & !A1 & !A0
5IORQEingang 17MEMRD!MREQ & !RD
6MREQEingang 18MEMWR!MREQ & !WR
7WREingang 19IORD!IORQ & !RD
8RDEingang 20IOWR!IORQ & !WR
9A0Eingang 21CSRAM512 siehe unten 
10A1Eingang 22CSRAM256 siehe unten 
11A2Eingang 23CSEEPROM256 siehe unten 

Adresslogik CAPRI-Z180

Das Schaubild zeigt die Aufteilung des gesamt-adressierbaren Bereich in 16k Abschnitte. Hier werden diese Abschnitte Segmente/Slots genannt. Der Begriff Segment kommt wohl eher aus der Intel-spezifischen Mikroprozessorecke (z.B. Intel 8088) und der Begriff Slot kennen wir aus der MSX Analyse.
Der hier genutzte Mikroprozessor Z180 der Firma Zilog kann laut Spezifikation einen Speicherbereich von bis zu einem Mega Byte (1 MB = 1024 kB ) adressieren. Da der Z180 jedoch auf den Z80 basiert, der von Hause aus nur 2^16 (weil ein Kabelbündel mit 16 einzelnen Leitungen = 16 bit breiter Adressbus) also 64K (65536) Speicherzellen adressieren kann, so ist das bei dem Z180 auch so. Mit dem Unterschied dass man bei dem Z180 einen bestimmten Bereich von 64K so gestalten kann, dass er über dem 1 MB großen Bereich gleiten kann. Wie eine Blende von einem Fotoapparat welches nur einen Teil der gesamten Welt auf das betrachtbare Bild abbildet. Man kann solch einen Bereich mindestens 4 K breit machen und bis zu einem multiplen davon - also 4K, 8K, 16k, 20k, 24k etc.. . Wir wählen für das Capri-Z180 Board eine 16K grosse "Blende". Diese ist im Schaubild als "BANK"-Area bezeichnet. Das versetzen der Blende auf einen bestimmten Bereich innerhalb des 1M Bereichs und das "Abbilden" des dort gesehenen in diesen BANK-Area, nennt man "memory banking". Erfahrene Entwickler formulierten in Artikel über den Z180 Bank die Empfehlung die BANK-Area relativ klein zu halten, so dass zu einem bestimmten Zeitpunkt mehr Information für die Anwendung direkt im Speicher vorhanden sein kann. Es wäre eigentlich geschickter mit nur 8KB BANK-Area zu arbeiten, jedoch ist das bei CAPRI-Z180 schwer zu realisieren, da die physische Begebenheiten dafür nicht vorhanden sind. Diese wären entsprechende "niedere" Adressleitungen ebenso in die "Glue-Logic" zu berücksichtigen.

Validierung / Modifikation des GALs als Glue-Logic

Die "Glue-Logic" wurde anhand dem Memory Map überarbeitet. Die Gleichungen, die in das GAL (dieser Programmierbare Logik-Baustein siehe hier ) wurde reprogrammiert. Die fehlenden Adressleitungen A14 und A15 wurden mit an das GAL angeschlossen.
CSEEPROM256 = MREQ & !A19 & !A18 & !A17 & !A16 & !A15 & !A14               ;
CSRAM256    =  (MREQ & !A19 & A14) & (A15 # !A15)                ;
CSRAM512    = MREQ &  A19                        ;
IOWR        = IORQ & WR                         ;
IORD        = IORQ & RD                         ;
MEMWR       = MREQ & WR                         ;
MEMRD       = MREQ & RD                         ;