Nativer Z80 Modus. Die Statusbits ADL und mixed ADL sind ebenso wie das MBASE-Register auf 0 gesetzt, und die MMU ist inaktiv geschaltet. Im nativen Z80 Modus stehen 16-Bit Register und 16-Bit Adressen zur Verfügung. Der 64 kB große Arbeitsspeicher liegt am Beginn des potentiell 16 MB großen Adreßraumes des eZ80.

Virtueller Z80 Modus. Ist das Statusbit ADL gelöscht und die MMU abgeschaltet, jedoch im MBASE-Register ein von Null verschiedener Wert enthalten, dann umfaßt die Programmumgebung weiterhin 16-Bit Register und einen 64 kB großen Adreßraum. Dessen Basisadresse wird allerdings vom Wert in MBASE bestimmt. Im virtuellen Z80 Modus können mehrere Tasks jeweils ihren eigenen Z80-Bereich haben.

Nativer Z180 Modus. Sind ADL und MBASE gleich Null, während die MMU aktiv geschaltet ist, dann ist die Programmumgebung vollständig Z80180-kompatibel. In diesem Fall stehen 16-Bit Register und ein 64 kB großer, logischer Adreßraum zur Verfügung. Die logischen Adressen werden dabei von der MMU in physikalische Adressen von 20 Bit umgesetzt. Die 64 kB logischer Adreßraum können in ein bis drei Bereiche unterteilt werden, von denen zwei innerhalb der ersten 1 MB des maximal 16 MB umfassenden Adreßraum des eZ80 beliebig angeordnet werden können.

Virtueller Z180 Modus. Ist das Statusbit ADL gelöscht, die MMU aktiviert und in MBASE ein von Null verschiedener Wert enthalten, dann verwaltet die MMU die Umsetzung in physikalische Adressen für 1 MB virtuellen Adreßraum, dessen Basisadresse vom Wert in MBASE bestimmt wird. Auf diese Weise können mehrere Tasks jeweils in ihrem eigenen Z180-Bereich laufen.

ADL Modus. Wenn das ADL-Statusbit gesetzt ist, haben weder die MMU noch der Wert in MBASE Einfluß auf die Adressierung des Arbeitsspeichers. In diesem Modus werden der Programmladezähler (PC) sowie die Register BC, DE, HL, IX und IY von 16 auf 24 Bit erweitert. Anstelle des 16 Bit umfassenden Stackpointers (SPS, Stack Pointer Short) wird ein 24 Bit großer Stackpointer (SPL, Stack Pointer Long) benutzt. Erhält der Prozessor in diesem Modus unmittelbar Daten eines anderen Modus oder einen Befehl, der eine 16-Bit Adresse beinhaltet, dann werden diese 16-Bit-Werte automatisch in 24-Bit-Werte umgewandelt. Zur Erzeugung von Programmcode, der im ADL Modus ausgeführt wird, muß ein eZ80-kompatibler Compiler oder Assembler benutzt werden.

Der eZ80 schaltet zwischen dem ADL Modus und den anderen Modi nur über speziell eingeleitete CALL-, JP-, RET- oder RST-Befehle oder Interrupt-/Trap-Operationen um. Das MBASE-Register kann nur im ADL Modus verändert werden. Hingegen kann die MMU in jedem Modus programmiert werden. Allerdings muß der Programmierer darauf achten, daß der Programmladezähler währenddessen nicht verändert wird. Lediglich im ADL Modus muß darauf keine Rücksicht genommen werden.

Soweit zur technischen Beschreibung. Die weiteren Einzelheiten (Interrupt- und Trapbehandlung, Befehlsumfang usw.) möchte ich lieber den Experten überlassen. Alles in allem glaube ich aber, daß uns ZILOG mit dem eZ80 einen sehr interessanten Prozessor beschert hat, der mit Preisen zwischen 3 und 8 Dollar auch noch recht günstig ist.

Wie gesagt, wird es wieder Zeit, neue Ideen für CP/M-Hardware zu entwickeln!

>> weiter