Das Schneider CPC Systembuch

Das Innenleben der CPC-Rechner

Der FDC 765

Ansteuerung des Disketten-Controllers

Das gesamte Floppy-Interface (außer dem Amsdos-ROM) wird durch einen Peripherie-Zugriff 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
(Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ=0) angesprochen, bei dem die Adressbits A10 und A7 auf Null-Pegel liegen. A10 signalisiert dabei den Zugriff auf ein Gerät, das am Expansion Port angeschlossen ist (auch bei den CPCs 664 und 6128 ist der Floppy-Controller logisch ein 'externes' Gerät) und A7 selektiert das Diskettenlaufwerk. Zur weiteren Funktions-Auswahl werden noch Der Zeichensatz des Schneider CPC: &A0 = 160A0 und Erklärung der Anschlussbelegung: A8
Der Zeichensatz des Schneider CPC: &A8 = 168
A8
benutzt.

Liegt bei einem OUT-Befehl auch Erklärung der Anschlussbelegung: A8
Der Zeichensatz des Schneider CPC: &A8 = 168
A8
auf Real: NullNull, so ist nicht Die ICs im Überblick: Der FDC 765
Das Innenleben der CPC-Rechner: Der FDC 765
der FDC
angesprochen, sondern ein Flip-Flop, dessen Ausgang das Motor-ON-Signal für die Laufwerke liefert. Als Eingabe dient dabei dann nur das Datenbit Der Zeichensatz des Schneider CPC: &D0 = 208D0. Ist es gesetzt, werden die Laufwerkmotoren gestartet, ist es Real: NullNull, werden sie gestoppt.

      ----Adresse-----   --Datum-
OUT &X111110x0011111xx,&Xxxxxxxx0 -> Stoppe Motor
OUT &X111110x0011111xx,&Xxxxxxxx1 -> Starte Motor
           ^ ^^                 ^
         A10 |A7               Der Zeichensatz des Schneider CPC: &D0 = 208D0
            Erklärung der Anschlussbelegung: A8
Der Zeichensatz des Schneider CPC: &A8 = 168
A8

Bei diesen Portadressen sind die mit 'Die verwendeten Abkürzungen bedeuten: x:x' gekennzeichneten 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
beliebig. Die Einser '1' müssen gesetzt sein, damit sich nicht noch andere Geräte angesprochen fühlen. Sie werden aber, wie üblich, nicht überprüft. die Nullbits '0' dienen zur Adressierung des Flip-Flops und werden hardwaremäßig ausdecodiert. Insgesamt kann man, aufgrund der 3 'Die verwendeten Abkürzungen bedeuten: x:x'-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
, acht verschiedene, gültige Portadressen benutzen. Die Abteilungen des Betriebssystems: AmsdosAmsdos benutzt normalerweise die Adresse &FA7E, und als Datenbyte nur die Werte &FF (255) und 0.

Beim Z80-Befehl 'OUT_(C),C' wird das B-Register auf der oberen Adresshälfte (Erklärung der Anschlussbelegung: A8
Der Zeichensatz des Schneider CPC: &A8 = 168
A8
bis A15), und das C-Register gleichzeitig auf Erklärung der Anschlussbelegung: A0 bis A7A0 bis A7 und auf dem Erklärung zu den Anschlüssen: D0 bis D7Datenbus ausgegeben. Dabei ist für die Adresse die Leitung Der Zeichensatz des Schneider CPC: &A0 = 160A0 uninteressant, was 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
0 des C-Registers entspricht. Gleichzeitig ist nur Der Zeichensatz des Schneider CPC: &D0 = 208D0 als Datum interessant, was wieder durch 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
0 des C-Registers bestimmt würde.

Daraus ergibt sich, dass man den Laufwerksmotor in einem Assembler-Programm besonders elegant mit folgenden beiden Werten an- und ausstellen kann:

Motor an:        Motor aus:
-------------    -------------
LD   BC,#FA7F    LD   BC,#FA7E
OUT  (C),C       OUT  (C),C

Die Ein- oder Ausschalt-Information ist dann bereits in die Adresse integriert.

Eine weitere Adresse ist wichtig: &DFxx. Hier ist nur das Adressbit A13 Real: NullNull. Das ist keine spezifische Adresse für den Floppy-Controller, sondern allgemein das Signal dafür, dass das Betriebssystem ein neues Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM anwählen will. Das geschieht dabei unabhängig von der Die ICs im Überblick: Die ULA 40007, 40008 oder 40010
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die ULA 40007 und 40008 (CPC 464 und 664)
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die ULA 40010 (CPC 6128)
ULA
: Diese entscheidet nur, 'ob' ein Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM eingeblendet wird, aber nicht 'welches' es sein soll.

Garbage Collection: ... beim CPC 464Beim CPC 464 im Grundzustand gibt es da keine Probleme: Hier gibt es nur ein Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM, in dem der Basic-Interpreter untergebracht ist. Sobald man aber den Floppy-Controller hinten ansteckt, und Garbage Collection: ... beim CPC 664 und 6128beim CPC 664 und 6128 sowieso, gibt es bereits mindestens 2 Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs, die im obersten Adressviertel 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
residieren.

Die werden mit einem OUT-Befehl mit der Adresse &DFFF angewählt (aber noch nicht unbedingt eingeblendet, das macht ja Speicher und Peripherie: Die ULA
Die Bildausgabe: Die ULA
die ULA
). Das Datenbyte muss dabei die Nummer des gewünschten Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs enthalten:

OUT &DFFF,0 -> Basic-ROM
OUT &DFFF,7 -> Amsdos-ROM

Genaueres darüber folgt aber noch in einem eigenen Kapitel.

Valid HTML   Valid CSS