Das Schneider CPC Systembuch

Das Innenleben der CPC-Rechner

Die CPU Z80

Beschreibung der Z80

Anhang: Die Z80Die Z80 ist ein Acht-Bit-Mikroprozessor. Das bedeutet, dass ihr Erklärung zu den Anschlüssen: D0 bis D7Datenbus genau 8 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bits
breit ist. Wie die meisten anderen 8-Bitter auch, verfügt sie über einen Erklärung zu den Anschlüssen: A0 bis A15Adressbus von doppelter Breite: mit 16 Adressbits kann sie insgesamt 2^16, das sind 65536 verschiedene Speicherzellen adressieren. Mittels der im Schneider CPC angewandten Bank-Switching-Technik allerdings auch noch weit mehr.

Anhang: Die Z80Die Z80 verfügt, im Gegensatz zu vielen anderen Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
CPUs
, über eine getrennte Ansteuerung von Speicher-ICs und Peripherie-ICs. Damit muss man die verfügbaren Adressen nicht für Anhang: Speicher und PeripherieSpeicher und Peripherie aufteilen.

Normalerweise werden Peripherie-Bausteine nur mit der unteren Hälfte des Adressbusses adressiert, wodurch sich schon bis zu 256 verschiedene externe Die Fließkomma-Routinen: FunktionenFunktionen ansprechen lassen. Mit den im Schneider CPC akzeptierten Einschränkungen ist aber auch der gesamte Erklärung zu den Anschlüssen: A0 bis A15Adressbus in voller Breite für I/O-Zwecke verwertbar. Damit wären dann, zusätzlich zu den 65536 Speicherzellen, auch noch 65536 verschiedene Peripherie-Funktionen steuerbar.

Zum normalen Interieur jeder Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
CPU
gehören ein Programmzeiger (PC), ein Stapelzeiger (SP), ein Akkumulator (Akku oder einfach Operationen: BD5B / 349A / 349A: FLO SUBA) und ein Signalregister (Die Z80: Wirkung der Z80-Befehle auf die FlagsFlags oder F). Das sind alles Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
, also Speicherzellen im Inneren der Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
CPU
.

Der Programmzeiger (PC = Program Counter) zeigt dabei jeweils auf den gerade abgearbeiteten Befehl. Das PC-Register ist deshalb, wie der Erklärung zu den Anschlüssen: A0 bis A15Adressbus, 16 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
breit.

Der Stapelzeiger (SP = Stack Pointer) dient als Zeiger auf die Spitze des Maschinenstapels, auf dem u. Operationen: BD5B / 349A / 349A: FLO SUBA. die Return-Adressen bei Unterprogrammaufrufen abgelegt werden. Wie der PC ist auch dieses Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
16 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
breit. Der Stack kann daher an jeder beliebigen Stelle im RAM liegen und auch beliebig lang werden (im Gegensatz beispielsweise zur 6502).

Der Akku, das Haupt-Rechenregister, ist nur 8 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
breit und entspricht somit der Breite des Datenbuses. Die meisten Die Fließkomma-Routinen: OperationenOperationen und Die Fließkomma-Routinen: FunktionenFunktionen, die Anhang: Die Z80die Z80 durchführen kann, erwarten im Akku ihr bzw. eines ihrer Argumente und legen dort auch das Ergebnis ab.

Das Flagregister ist zwar auch 8 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
breit, doch werden hiervon nur 6 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bits
auch wirklich benutzt. Davon sind wiederum zwei auszuschließen, die nur für einen einzigen Spezialbefehl, DAA zum Dezimalabgleich beim Rechnen mit BCD-codierten Zahlen, ausgewertet werden. Die verbliebenen vier Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bits
enthalten das Carry-Flag (Übertrag aus dem 8. bzw. 16 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
), das Zero-Flag (Anzeige, ob ein Ergebnis Real: NullNull ist), das Signum-Flag (Vorzeichen des Ergebnisses = Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
8 oder 16) und das kombinierte Parity-Overflow-Flag. Hierin wird bei boolschen Die Fließkomma-Routinen: FunktionenFunktionen die Parität der Real: NullNull- und Eins-Bits im Ergebnis festgehalten (gerade oder ungerade Anzahl) und bei arithmetischen Die Fließkomma-Routinen: FunktionenFunktionen ein eventueller Überlauf in's Vorzeichenbit (Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
8 bzw. 16).

Anhang: Die Z80Die Z80 verfügt darüber hinaus noch über viele weitere Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
: BC, DE und HL sind 16-Bit-Register, die aber auch getrennt als 8-Bit-B, C, D, LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
, H und L-Register verwendet werden können.

Neben dem Akku erhalten aber auch einige andere Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
durch die verfügbaren Befehle eine besondere Bedeutung: So ist das HL-Register das am vielseitigsten einsetzbare Doppelregister. Bei der 16-Bit-Addition und Rechnen im Binärsystem: SubtraktionSubtraktion fungiert es praktisch als ein 16-Bit-Akku. Außerdem ist die indirekte Adressierung einer Speicherzelle mit dem HL-Register fast gleichwertig mit der Verwendung eines normalen Registers als Daten-Quelle oder -Ziel.

Das B-Register dient als universelles Zählregister für Schleifen.

Das C-Register bildet bei den meisten I/O-Befehlen die Port-Adresse. Im Schneider CPC existiert hier allerdings eine Die CPU Z80: Besonderheiten der Z80 im Schneider CPCBesonderheit: Hier wird nur mit einem Nebeneffekt der I/O-Befehle gearbeitet, der das gesamte BC-Register auf den Adressleitungen Erklärung zu den Anschlüssen: A0 bis A15A0 bis A15 erscheinen lässt.

Diese Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
sind in der Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
Z80
jeweils doppelt vorhanden: AF, BC, DE und HL haben jeweils noch eine Kopie, zwischen denen beliebig hin- und hergeschaltet werden kann.

Die 16-Bit-Register IX und IY werden für die Adressierungsarten der Z80: Indiziertindizierte Adressierung verwendet.

Abschließend gibt es noch die Spezialregister I und R. Hardware-Basteleien: Das 8. BitDas 8 Bit breite I-Register wird dabei für einen speziellen Interruptmodus als höherwetiges Datentypen: Bytes
Datenbreite: Bytes
Byte
der Adresse einer Tabelle verwendet, in der die Adressen von verschiedenen Interrupt-Behandlungsroutinen stehen können. Dieser Die 3 verschiedenen Betriebsarten der PIO 8255: Modus 0
Die 3 verschiedenen Betriebsarten der PIO 8255: Modus 1
Die 3 verschiedenen Betriebsarten der PIO 8255: Modus 2
Modus
wird im Schneider CPC aber nicht verwendet.

Das R-Register ist nur 7 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
breit und dient als Refresh-Zähler. Anhang: Die Z80Die Z80 unterstuetzt nämlich als eine Die CPU Z80: Besonderheiten der Z80 im Schneider CPCBesonderheit das Wiederauffrischen dynamischer RAMs. Dazu erzeugt sie in der zweiten Hälfte jedes Befehlshole-Zykluses ein Pseudo-Lesesignal für die Speicherbausteine, wobei sie als Adresse auf den untersten 7 Leitungen den Inhalt des R-Registers ausgibt und dieses danach erhöht. Dadurch werden nach 128 (=2^7) Befehlen, die Anhang: Die Z80die Z80 abarbeitet, die dynamischen RAM-Bausteine vollständig wiederaufgefrischt.

Das I-Register wird im Schneider CPC überhaupt nicht, und das R-Register nur im Cassette-Manager (zweck-entfremdet) benutzt.

Folgende Grafik zeigt einen Die Firmware des Schneider CPC: ÜberblickÜberblick über Die Z80: Die Register der Z80die Register der Z80. Jedes Kaestchen symbolisiert dabei normalerweise ein 8 Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
breites Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
. Einige Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
sind mit einem Sternchen '*' markiert. Diese Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
sind auch bei dem Vorgänger der Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
Z80
, der Die ICs im Überblick: Die CPU Z80
Das Innenleben der CPC-Rechner: Die CPU Z80
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80
CPU
8080 vorhanden:

            +---------+---------+
            !*        PC        !
            +---------+---------+
 
            +---------+---------+
            !*        SP        !
            +---------+---------+
 
+---------+---------+   +---------+---------+
!*   Operationen: BD5B / 349A / 349A:  FLO SUBA    !*   F    !   !    Operationen: BD5B / 349A / 349A:  FLO SUBA'   !    F'   !
+---------+---------+   +---------+---------+
!*   LOW KERNEL JUMPBLOCK: 000B:  LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
!* C ! ! LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
' ! C' ! +---------+---------+ +---------+---------+ !* D !* LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
! ! D' ! LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
' ! +---------+---------+ +---------+---------+ !* H !* L ! ! H' ! L' ! +---------+---------+ +---------+---------+   +---------+---------+ ! (XH) IX (XL) ! +---------+---------+ ! (YH) IY (YL) ! +---------+---------+   +---------+ +-------+ ! I ! ! R ! +---------+ +-------+

Valid HTML   Valid CSS