Die Speicherkonfiguration im Schneider CPCExterne HardwareDer 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 IN/OUT-AdressenDer 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 Dadurch steht für I/O-Zwecke ein Adressumfang von normalerweise acht Datenbreite: Bits Deshalb muss man den verschiedenen Peripherie-ICs keine exakt dekodierten (Speicher-) Adressen zuweisen wie bei der Die ICs im Überblick: Die CPU Z80 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) Man kann sehr gut sehen, wie mit jeweils einer Adress-Leitung (A15 bis A10) ein Baustein angesprochen und mit Erklärung der Anschlussbelegung: A8 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 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 Um verschiedene Die Fließkomma-Routinen: FunktionenFunktionen in einer Erweiterung auszulösen, sollte man auf keinen Fall 2 oder alle 3 Datenbreite: Bits Reset-DekodierungDer Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Reset 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 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 Meist reicht es also aus, nur den Ausgang 41 'Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Reset Anschluss eines Zusatz-ROMDas 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 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-SelektionJedes Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)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 ROM-StatusIst 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 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-ModulsExpansion Port Der Zeichensatz des Schneider CPC: &D0 = 208D0 ... <================++++++++===============================++ D7 |||||||| || |||||||| || |||||||| \/ +---------------+ +--------------+ | 2*8-Datenbreite: Bits 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 ChainDie 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 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. |