Das Schneider CPC Systembuch

Das Betriebssystem des Schneider CPC

Die Speicherkonfiguration im Schneider CPC

Externe Hardware

Der Schneider CPC ist dafür ausgelegt, erweitert zu werden, auch wenn man mit der einen oder anderen Schwierigkeit kaempfen muss (bei den RAMs zum Beispiel). Wer eigene Hardware entwickeln und an den CPC anschließen will, muss über einige Informationen verfügen, die sich nicht aus der Die CPU Z80: Die Anschlussbelegung der CPU Z80
Die PIO 8255: Die Anschlussbelegung der PIO 8255
Anschlussbelegung
des Expansion Ports ergeben.

IN/OUT-Adressen

Der erste, wichtige Punkt betrifft die frei verfügbaren Speicher und Peripherie: Reservierte und frei verfügbare I/O-AdressenI/O-Adressen. Diese sind im Handbuch ziemlich unglücklich beschrieben.

Um den Hardware-Aufwand für die Dekodierung der einzelnen Adressen so gering wie möglich zu Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Halthalten, werden beim Schneider CPC, wie bei den meisten anderen Z80-Systemen auch, die IN- und OUT-Adressen von den Peripheriebausteinen nur sehr unvollständig dekodiert.

Denn dafür setzt man ja eine 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
und nicht etwa eine 6502-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
ein: Anhang: Die Z80Die Z80 enthält spezielle Befehle für I/O-Operationen, die sich von den Speicherzugriffen unterscheiden: Bei der Programmierung in den verwendeten Befehlen, und nach außen hin in den Signal-Leitungen 'Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ' für I/O-Zugriffe und 'Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: MREQ - memory requestMREQ' für Speicher-Schreib- oder -Leseoperationen.

Dadurch steht für I/O-Zwecke ein Adressumfang von normalerweise acht 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
(Erklärung der Anschlussbelegung: A0 bis A7A0 bis A7) zur Verfügung. Bei der im Schneider CPC akzeptierten Beschränkung auf die einfachsten I/O-Befehle sogar der gesamte Erklärung zu den Anschlüssen: A0 bis A15Adressbus mit 16 Leitungen.

Deshalb muss man den verschiedenen Peripherie-ICs keine exakt dekodierten (Speicher-) Adressen zuweisen wie bei 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
6502, sondern kann die verschiedenen ICs durch jeweils eine einzige Adressleitung (in Verbindung mit Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ) direkt anwählen. Das nennt man dann eine unvollständige, Bit-signifikante Adressdekodierung. Dabei hat man im Schneider CPC die Adressleitungen 'Null-Aktiv' definiert: Ein Baustein, wie beispielsweise Die ICs im Überblick: Die PIO 8255
Das Innenleben der CPC-Rechner: Die PIO 8255
Speicher und Peripherie: Die PIO 8255
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255
die PIO
oder der Video-Controller, wird durch eine Real: NullNull auf einer Adressleitung und an Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ angesprochen.

Durch die unvollständige Dekodierung bleiben für eigene Anhang: Hardware-BasteleienHardware-Basteleien nur noch sehr wenige Adressen übrig. Die folgende Tabelle zeigt die im Schneider CPC bereits benutzten und die reservierten Adressen. Ganz zum Schluss sind die noch verfügbaren Adressen aufgeführt:

Reservierte und frei verfügbare I/O-Adressen
-----------------+-------------------+-----------------------
                 | Adresse: (Binär)  |
    Baustein     | FEDCBA98 76543210 | Bemerkung
-----------------+-------------------+-----------------------
 Gate Datenspeicherung und Datenstrukturen: ArraysArray, Speicher und Peripherie: Das PAL im CPC 6128PAL | 011111?? ???????? |
-----------------+-^-----------------+-----------------------
                 | 10111100 ???????? | Die Tonausgabe: Das Kontrollregister  (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
adressieren Die ICs im Überblick: Der CRTC HD 6845
Die Anschlussbelegungen der wichtigsten ICs im CPC: Der CRTC HD 6845
Die Bildausgabe: Der CRTC HD 6845
CRTC
| 10111101 ???????? | Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
beschreiben Video-Controller| 10111110 ???????? | Status lesen | 10111111 ???????? | reserviert -----------------+--^----------------+----------------------- Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM select | 110111?? ???????? | -----------------+---^---------------+----------------------- Drucker-Port | 111011?? ???????? | -----------------+----^--------------+----------------------- | 11110100 ???????? | Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A Daten 8255 Die ICs im Überblick: Die PIO 8255
Das Innenleben der CPC-Rechner: Die PIO 8255
Speicher und Peripherie: Die PIO 8255
Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255
PIO
| 11110101 ???????? | Erklärung zu den Anschluss-Bezeichnungen: PB0 bis PB7 - Port B Leitungen 0 bis 7Port B Daten I/O-Schnittstelle| 11110110 ???????? | Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C Daten | 11110111 ???????? | Control-Register -----------------+-----^-------------+----------------------- | 111110?? 011111?? | Diskettenstation Die Anschlüsse am Schneider CPC: Der Expansion-Port (Systembus)Systembus | 111110?? 101111?? | reserviert Peripheriegeräte | 111110?? 110111?? | serielle Schnittstelle | 111110?? 111011?? | ** frei verfügbar ** | 111110?? 111101?? | ** frei verfügbar ** | 111110?? 111110?? | ** frei verfügbar ** -----------------+------^------------+-----------------------

Man kann sehr gut sehen, wie mit jeweils einer Adress-Leitung (A15 bis A10) ein Baustein angesprochen und mit Erklärung der Anschlussbelegung: A8
Der Zeichensatz des Schneider CPC: &A8 = 168
A8
und A9 manchmal noch eine Zusatz-Auswahl vorgenommen wird. Die Adress-Bits Erklärung der Anschlussbelegung: A0 bis A7A0 bis A7 sind völlig uninteressant, außer wenn der Erweiterungs-Bus angesprochen ist (A10 = 0).

Alle System-Erweiterungen, die am Die Anschlüsse am Schneider CPC: Der Expansion-Port (Systembus)Expansion-Port angeschlossen werden und bei den CPCs 664 und 6128 auch der eingebaute Disketten-Controller, werden zunächst einmal durch eine Real: NullNull an A10 und Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ angesprochen. Welches Gerät gemeint ist, wird dann durch die Adressbits A2 bis A7 festgelegt. Dabei sind A5, 6 und 7 durch Amstrad bereits vergeben.

Für eigene Erweiterungen bleiben nur A2, 3 und 4. Man kann diese 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
natürlich auch 'vollständig' ausdekodieren und so bis zu 7 verschiedene, eigene Geräte gleichzeitig anschließen (nicht acht. Die Kombination '111' ist dem Software-Reset vorbehalten. Siehe weiter unten). Das ist aber nicht besonders empfehlenswert, weil man damit den 'CPC-Standard' verlässt und mehr Aufwand bei der Dekodierung treiben muss.

Wenn man Pech hat, dekodieren dann aber 2 Geräte die selbe Adress-Leitung. Deshalb ist es sinnvoll, dass man die Möglichkeit vorsieht, diese zu wechseln. Das kann z.LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
. mit einem kleinen Schalter auf der Platine geschehen. Dann muss man allerdings auch die Treiber-Software entsprechend gestalten, z.LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
. durch eine Abfrage bei der Initialisierung oder durch mehrere Versionen mit den 3 möglichen Adress-Varianten.

Um verschiedene Die Fließkomma-Routinen: FunktionenFunktionen in einer Erweiterung auszulösen, sollte man auf keinen Fall 2 oder alle 3 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
im Bereich A2 bis A4 benutzen, sondern immer nur zusätzlich zu einer dieser Leitungen die 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
Der Zeichensatz des Schneider CPC: &A0 = 160A0, A1, Erklärung der Anschlussbelegung: A8
Der Zeichensatz des Schneider CPC: &A8 = 168
A8
und A9, wie das von Amstrad auch vorgesehen ist.

Reset-Dekodierung

Der Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Reset
Erklärung zu den Anschluss-Bezeichnungen: RESET
Erklärung der Anschlussbelegung: Reset
Erklärung zu den Bezeichnungen: RESET
Erklärungen zu den Anschlussbezeichnungen: RESET
Erläuterung zu den Anschlüssen 40 bis 45: 41 - RESET (0)
Reset
Garbage Collection: ... beim CPC 464beim CPC hat es echt in sich. Bei dieser normalerweise recht unkomplizierten Sache haben sich die Entwickler bei Amstrad fast überschlagen. Man muss zwischen dem Hardware-Reset, dem Software-Reset und dem Bus-Reset unterscheiden.

Beim Einschalten des Rechners wird ein Hardware-Reset ausgelöst, der sich in einem Null-Pegel der RESET-Leitung äußert. Diese Leitung ist an Pin 41 des Expansion Ports herausgeführt, wo man das Signal zum Zurücksetzen eigener Hardware-Erweiterungen benutzen kann. Vor allem solche Peripherie, die Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupts erzeugen kann, muss hiermit ruhiggestellt werden, bis sie explizit wieder Rederecht erhält.

Gleichzeitig kann jedes Modul, das hier an den Die Anschlüsse am Schneider CPC: Der Expansion-Port (Systembus)Systembus angeschlossen ist, auch selbst einen Hardware-Reset an Pin 41 auslösen, indem es die Leitung 40 (Erläuterung zu den Anschlüssen 40 bis 45: 40 - BUS RESET (0)BUS RESET) am Expansion Port auf logischen Null-Pegel zieht. Das wird beispielsweise in dem Bastelvorschlag für einen Reset-Schalter ausgenutzt.

Nun kennt das Betriebssystem aber auch noch den Software-Reset, der unabhängig von einem Null-Impuls an der Reset-Leitung befolgt werden muss: Immer wenn der Computer im Betrieb initialisiert wird, arbeitet das Betriebssystem einen speziellen OUT-Befehl ab:

OUT &FBFF,&FF = OUT &Die verwendeten Abkürzungen bedeuten: x:X 11111011 11111111, &FF

Dieser sollte dekodiert und ebenfalls dazu benutzt werden, am Expansion Port angeschlossene Hardware zu re-initialisieren. Bei einem einfachen [CTRL] -[SHIFT] - [ESC] wird kein Hardware-Reset, also kein Null-Pegel auf der Reset-Leitung erzeugt!

Vorausgesetzt, jedwede am CPC angeschlossene Hardware befolgt vorschriftsmäßig das weiter oben erklärte Adress-Konzept, genügt die Dekodierung der folgenden Adressbits:

&Die verwendeten Abkürzungen bedeuten: x:X ?????0?? 111111??

Nur die Real: NullNull an A10 (Ansprechen des Expansion Ports) und die Einsen an A2, bis A7 sind signifikant.

Für einen korrekten Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Reset
Erklärung zu den Anschluss-Bezeichnungen: RESET
Erklärung der Anschlussbelegung: Reset
Erklärung zu den Bezeichnungen: RESET
Erklärungen zu den Anschlussbezeichnungen: RESET
Erläuterung zu den Anschlüssen 40 bis 45: 41 - RESET (0)
Reset
kann man sich auch ausschließlich auf diesen OUT-Befehl verlassen, denn dieser Befehl wird natürlich bei jeder Initialisierung, also auch nach dem Einschalten ausgegeben. Demgegenüber wird der Hardware-Reset nur beim Einschalten erzeugt (und durch Bus-Reset, was aber bisher nur bei sehr wenigen Erweiterungen ausgenutzt wird).

Trotzdem wird der Software-Reset kaum benutzt. Für seine Dekodierung benötigt man nämlich selbst in der einfachsten Form drei ICs der Serie 74LS... mit zusammen 12 TTL-Gattern. Das war anscheins selbst Amstrad zu aufwendig. Wie lässt es sich sonst erklären, dass sich das Floppy-Controller-IC (Die ICs im Überblick: Der FDC 765
Das Innenleben der CPC-Rechner: Der FDC 765
der FDC
765) nicht vollständig zurücksetzen lässt? (Siehe Beschreibung des LOW KERNEL JUMPBLOCK: 0000 - RST 0: LOW RESET ENTRYRST_0) Hier hätte es einer vollständigen Dekodierung der Reset-Bedingung bedurft.

Meist reicht es also aus, nur den Ausgang 41 'Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Reset
Erklärung zu den Anschluss-Bezeichnungen: RESET
Erklärung der Anschlussbelegung: Reset
Erklärung zu den Bezeichnungen: RESET
Erklärungen zu den Anschlussbezeichnungen: RESET
Erläuterung zu den Anschlüssen 40 bis 45: 41 - RESET (0)
RESET
' des Expansion Ports zur Initialisierung einer Hardware-Erweiterung auszunutzen. Speziell Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt- oder gar NMI-erzeugende Erweiterungen müssen aber auch den Software-Reset Erklärung der Anschlussbelegung: Testtesten.

Anschluss eines Zusatz-ROM

Das Bindeglied zwischen externer Hard- und Software ist wohl ein Die Anschlussbelegungen der wichtigsten ICs im CPC: Die EPROMs 27128 und 27256Eprom mit Programm-Erweiterungen, das am Expansion Port angeschlossen wird. Dafür ist von Amstrad als offizieller Weg der Erwerb einer Modulbox proklamiert Datenbreite: Wordsworden. Wer dieses Kästchen aber nicht erst suchen, und wenn er es denn findet, nicht bezahlen will, kann sich ohne große Schwierigkeiten auch eine eigene Eprom-Platine basteln.

Dazu muss man aber wissen, wie Das Betriebssystem des Schneider CPCdas Betriebssystem des Schneider CPC zusätzliche Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs handhabt.

Prinzipiell können Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs im gesamten Adressbereich eingeblendet werden. Alle Lesezugriffe 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
auf das eingebaute RAM oder ein Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM können mit den Steuerleitungen Erläuterung zu den Anschlüssen 40 bis 45: 43 - ROMDIS (1)ROMDIS und Erläuterung zu den Anschlüssen 40 bis 45: 45 - RAMDIS (1)
Externes RAM: Bastelanleitung für RD- und WR-wirksames RAMDIS
RAMDIS
abgeblockt und statt dessen das eigene Die Anschlussbelegungen der wichtigsten ICs im CPC: Die EPROMs 27128 und 27256Eprom eingeblendet werden.

Es ist allerdings für den Normalgebrauch empfehlenswert, sich an die von Amstrad vorgezeichneten Regeln zu Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Halthalten, und zusätzliche Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs nur im obersten Adressviertel einzublenden, weil man so in den Genuss der verschiedenen Kernel-Routinen, insbesondere die ROM-Konfiguration: RestartsRestarts kommt.

ROM-Selektion

Jedes ROM erhält eine Selekt-Adresse, die sich normalerweise aus dem Steckplatz in der Modulbox ergibt. Ein Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM wird angewählt (nicht unbedingt auch eingeblendet!!), indem auf einer bestimmten Output-Adresse seine Nummer ausgegeben wird. Wird eine andere Nummer ausgegeben, ist das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM wieder abgeschaltet. Diese Adresse ist &DFFF =&Die verwendeten Abkürzungen bedeuten: x:X 110111?? ????????. Eine Real: NullNull auf A13 zusammen mit Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ spricht die ROM-Konfiguration: ROM-Selektion
Anschluss eines Zusatz-ROM: ROM-Selektion
ROM-Selektion
an.

ROM-Status

Ist das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM selektiert, so muss es eingeblendet werden, wenn ein Speicherzugriff im obersten Adressviertel erfolgt UND Speicher und Peripherie: Die ULA
Die Bildausgabe: Die ULA
die ULA
die Leitung Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMEN aktiviert. Ob letzteres geschieht, hängt vom ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
ab, der in Speicher und Peripherie: Die ULA
Die Bildausgabe: Die ULA
die ULA
programmiert wurde. Bei jedem Lesezugriff auf ein RAM aktiviert diese Erläuterung zu den Anschlüssen 40 bis 45: 44 - RAMRD (0)RAMRD und bei Lesezugriffen auf Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMEN. Unabhängig vom ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
wird bei Speicherschreib-Befehlen immer MWE aktiviert.

Fühlt sich ein Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM solchermassen angesprochen, darf es seine Daten auf dem Erklärung zu den Anschlüssen: D0 bis D7Datenbus ausgeben, muss aber das eingebaute Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM mit Erläuterung zu den Anschlüssen 40 bis 45: 43 - ROMDIS (1)ROMDIS ausblenden. Das Basic-ROM enthält nämlich keine eigene Selekt-Dekodierung, sondern wird immer eingeblendet, wenn es eben nicht ausgeblendet wird.

Die folgende Zeichnung enthält den Schaltplan für eine solche Eprom-Platine. Für das benötigte Daten-Flipflop kann beispielsweise ein IC 74LS74 eingesetzt werden. Jedes andere, Flanken- oder Null-Impuls-getriggerte Flipflop tut es aber auch.

Die Dekodierung für die Selekt-Adresse ist das umständlichste an der ganzen Schaltung. Die hier gewählte Variante mit einem 2*8-Bit-Komparator ist sicher die universellste, bestimmt aber nicht die billigste. Auch bei den ROM-Adressen kann man sich sicherlich auch auf eine mehr oder weniger unvollständige Adress-Dekodierung beschränken. Das ist aber immer mit einem gewissen Risiko behaftet, weil sich Probleme im Zusammenspiel mit eventuellen anderen Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs ergeben können.

So ist es beispielsweise denkbar, die untersten 4 Datenbits über einen 4zu16-Bit-Dekoder auszuwerten. Mit den überzähligen Gattern der Schaltung könnten noch zwei oder drei der oberen Datenbits zu einem CS-Signal für den Dekoder selbst zusammengefasst werden, wodurch die ROM-Adresse auch fast vollständig dekodiert werden kann.

Anschluss eines externen ROM-Moduls
Expansion Port

     Der Zeichensatz des Schneider CPC: &D0 = 208D0
    ... <================++++++++===============================++
     D7                  ||||||||                               ||
                         ||||||||                               ||
                         ||||||||                               \/
                      +---------------+                  +--------------+
                      | 2*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
- ___| +------+ |__ Der Zeichensatz des Schneider CPC: &D0 = 208D0...D7 | | EQU|---->|D Q|--+->|CE | | Komparator | | | | | | +---------------+ +->|>-----| | | | ^^^^^^^^ | | _| | | | oooooooo | | Q| | | | ROM-Adresse -> | || | +------+ | | | oooooooo | | |__ | |||||||| | +----->|OE | ____ ___ ++++++++--(0) | | | | Der Zeichensatz des Schneider CPC: &A0 = 160A0...A13 | Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ ----\ \ ___ | | | +--------------+ __ | >---\ \ | | | /\ Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: RD und WR - read und write
Erklärung zu den Anschluss-Bezeichnungen: WR - Write
WR
----/___/ | >-------------+ | | || +----------/___/ | | || _____ | | | || Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMEN --|--------------------+ ___ | | || | ___ +---------\ \ | | || A15 --|----------\ \ | >--+ | || | | O-----------+--/___/ | || | (0)-----/___/ | | || | | | || | ___ | | || | / /---+ | || Erläuterung zu den Anschlüssen 40 bis 45: 43 - ROMDIS (1)ROMDIS --|--|<|-+-----------O | | || ------ | DUS | \___\------------------+ || | | ____ || | +---|____|---(+) || A13 --+ R 680 Ohm || ... <======================================================++ Der Zeichensatz des Schneider CPC: &A0 = 160A0

Die hier gezeigte Schaltung geht dabei von einer Vereinfachung aus, die immer gegeben sein muss: Dass sich nämlich niemals zwei Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs gleichzeitig angesprochen fühlen.

Daisy Chain

Die Leitung Erläuterung zu den Anschlüssen 40 bis 45: 43 - ROMDIS (1)ROMDIS sollte nämlich korrekterweise zu einer 'Daisy-Chain' ausgebaut werden. Dabei geht diese Leitung nicht ununterbrochen vom Expansion Port am Computer bis zum letzten, dort angesteckten Modul durch, sondern wird in jedem Modul unterbrochen. Die Leitung die hinten in das Modul hineinführt ist ein Eingang, die Leitung die vorne wieder herauskommt, ist ein Ausgang.

Fühlt sich ein weiter hinten angestecktes Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM angesprochen, wird es, in der Hoffnung, so das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM des Basic-Interpreters auszublenden, seinen Ausgang Erläuterung zu den Anschlüssen 40 bis 45: 43 - ROMDIS (1)ROMDIS aktivieren. Dieses Signal kommt nun am ROMDIS-Eingang unserer Eprom-Platine an, und muss von dieser auf elektronischem Wege auf den eigenen Ausgang durchgeschaltet werden, damit das ROMDIS-Signal auch tatsächlich bis zum Computer gelangt.

Wofür dieser Aufwand? Das wird klar, wenn man den Fall betrachtet, dass das weiter hinten angesteckte Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM die selbe Selekt-Adresse hat, wie das Die Anschlussbelegungen der wichtigsten ICs im CPC: Die EPROMs 27128 und 27256Eprom auf der eigenen Erweiterung, was auch bei nominell unterschiedlichen Adressen wegen einer unvollständigen Adressdekodierung der Fall sein kann! Dann würden bei einem ROM-Lesezugriff 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
zwei Bausteine ihre Daten auf den Bus ablegen. Dass die 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
dann kein lauffähiges Programm mehr lesen kann, ist wohl klar. Im Extremfall kann das aber auch bis zur Zerstörung der Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs gehen.

Um das zu verhindern, muss die eigene Eprom-Erweiterung nicht nur erkennen, ob sie selbst angesprochen ist, sie muss sich auch mit ihrem ROMDIS-Eingang abschalten lassen. Bei dieser Prioritäts-Steuerung mittels Erläuterung zu den Anschlüssen 40 bis 45: 43 - ROMDIS (1)ROMDIS erhalten automatisch alle weiter hinten angesteckten Platinen eine höhere Priorität.

Es ist allerdings auch denkbar, dass die Leitung Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMEN für eine Daisy-Chain missbraucht wird. In diesem Fall leitet eine ROM-Platine, die sich angesprochen fühlt, einfach das Signal Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMEN nicht nach hinten weiter. Dadurch erhalten weiter vorne angesteckte Platinen eine höhere Priorität.

Im Allgemeinen wird man aber auf solche Spielereien verzichten, da alle angeschlossenen Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs eigentlich leicht unterscheidbare Select-Adressen haben können (Bei dem Angebot: 252 verschiedene Adressen!).

Benötigt werden diese Tricks aber, wenn Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMs, von deren Existenz man weiß, ganz bewusst ausgeblendet werden sollen. Wenn man beispielsweise das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM des Basic-Interpreters komplett ausschalten will, um eine andere Programmiersprache an seiner Statt fest zu installieren. Oder, um mit einer eigenen ROM-Platine das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM von Die Abteilungen des Betriebssystems: AmsdosAmsdos ersetzt, und so ein eigenes DOS (für zweiseitige 80-Tracklaufwerke?) zu installieren.

Valid HTML   Valid CSS