Aus 8085 wird Z80
Da der Befehlssatz des Mikroprozessors 8085 nur eine Teilmenge (ausgenommen SIM und RIM) des viel umfangreicheren Z80-Befehlssatzes bildet, können zwar 8085-Programme auf Z80-Systemen ablaufen, die Über nahme von Z80-Software auf 8085-Systeme ist jedoch nicht bzw. nicht direkt möglich. Im folgenden wird ein einfacher Weg aufgezeigt , der die Verarbeitung von Z80-Pogrammen in 8085-Mikrocomputern ermöglicht.
Der Schlüsse l zur Lösung dieser Aufgabe ist der CMOS-Mikroprozessor NSC800 von National Semiconductor. Dieser Prozessor weist ein (fast) Z80-gleiches logischen Aktivierungspegeln diverser Leitungen, einer Interruptadresse und der Funktion des Interrupteingangs niedrigster Priorität (Tabelle). Außer den achtunddreißig funktionsgleichen Anschlüssen von 8085 und NSC800 gibt es lediglich zwei, die funktionell völlig verschieden sind. Es sind dies PS (power save input) und RFSH (refresh output) beim NSC800 und SID (serial input data) und SOD 8085-Innenleben auf und ist nach außen hin dem 8085 sehr ähnlich. Die internen Unterschiede gegenüber dem Z80 bestehen in dem auf 8 Bit erweiterten Refresh-Register des NSC800 und in der fixen internen Verwendung der I/O-Adresse BBh als Interrupt Control Register (ICR).
Durch Setzen entsprechender ICR-Bits wird die Annahme der vier maskierbaren Interrupts RSTA, RSTB, RSTC und INTR ermöglicht. Nach außen hin differieren 8085 und NSC800 in folgenden Punkten:
a) Anschlussschema
b) logische Aktivierungspegel diverser Leitungen
c) serielle Ein- /Ausgänge.
Wie aus den Anschlussbildern in den entsprechenden Datenblättern hervorgeht , weisen NSC800 und 8085 achtunddreißig funktionell gleiche Anschlüsse auf , nur sind sie unterschiedlich platziert. Neben Anforderungsunterschieden bestehen auch noch Differenzen in den logischen Aktivierungspegeln diverser Leitungen, einer Interruptadresse und der Funktion des Interrupteingangs niedrigster Priorität (Tabelle).
Tabele der funktionellen Unterschiede zwischen 8085 und NSC800
8085 Anschluss | 8085 Restart-Adresse | NSC800 Anschluss | NSC800 Restart-Adresse | Funktion |
---|---|---|---|---|
TRAP | 024h | /NMI | 66h | Interrupt höchster Priorität, nicht maskierbar |
RST 7.5 | 03Ch | /RSTA | 03Ch | Interrupt zweithöchster Priorität, maskierbar |
RST 6.5 | 034h | /RSTB | 034h | Interrupt dritthöchster Priorität, maskierbar |
RST 5.5 | 02Ch | /RSTC | 02Ch | Interrupt vierthöchster Priorität, maskierbar |
INTR | /INT | Interrupt niedrigster Priorität, NSC800: drei Betriebsarten wie Z80 | ||
HOLD/HLDA | /BREQ /BACK | Busfreigabeaufforderung, Busfreigabesignal |
Außer den achtunddreißig funktionsgleichen Anschlüssen von 8085 und NSC800 gibt es lediglich zwei, die funktionell völlig verschieden sind. Es sind dies PS (power save input) und RFSH (refresh output) beim NSC800 und SID (serial input data) und SOD (serial output data) beim 8085. Ihre Verwendung entscheidet, ob eine Adaptienmg ·für Z80-Software möglich ist oder nicht.
Werden in einem 8085-System die Leitungen SID und SOD nicht verwendet, so bietet sich die Möglichkeit, durch Auskreuzen der Anschlüsse und Invertieren von sieben Leitungen einen NSC800 anstelle eines 8085 einzusetzen. Die entsprechende Schaltung ist in Bild 1 dargestellt
Bild 2 zeigt die praktische Realisierung der Schaltung in Form einer 70 x 30 mm großen Adapterplatine, die oben zwei Sockel zur Aufnahme von NSC800 und Inverter (74LS240) aufweist und unten mit einem 40poligen Stecker versehen ist, der ein Einstecken in einen 8085-Sockel ermöglicht.
Schaltplan
Bild 1. Schaltung der Adapterplatine mit NSC800 und Inverter . B1…B3 sind Brücken (B3 ist im Regelfall geschlossen, Power-Save – Eingang auf Ucc) – Die Systemtaktfrequenz ist dem verwendeten NSC800 anzupassen
Platinenaufbau
Bild 2. Die Adapterplatine ohne NSC800 aber mit eingesetztem lnverterbaustein. Auf der
Unterseite der 40polige Stecker als Verbindung zur Systemplatine (8085-Sockel)
Quelle: Elektronik 1984, Seite 91/92, Dipl.-Ing. Franz Braunschmid