Das Schneider CPC Systembuch

Das Innenleben der CPC-Rechner

Die ULA 40007, 40008 oder 40010 und das PAL HAL16L8

Die Register des Gate Arrays und des PALs

Das Gate Datenspeicherung und Datenstrukturen: ArraysArray und Garbage Collection: ... beim CPC 464beim CPC 6128 das Speicher und Peripherie: Das PAL im CPC 6128PAL enthalten Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
, die die Bildschirm-Darstellung und die Speicherkonfiguration beeinflussen. Durch Programmieren dieser Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
kann man festlegen, welcher Bildschirm-Modus dargestellt wird, welche Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
die einzelnen Die Bildausgabe: Tinten und FarbenTinten haben, ob oben oder unten ein Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM eingeblendet werden soll und, Garbage Collection: ... beim CPC 464beim CPC 6128, wie die zusätzlichen 64kByte RAM verwendet werden.

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
und Speicher und Peripherie: Das PAL im CPC 6128PAL werden beide durch eine Real: NullNull auf der Adressleitung A15 (zusammen mit Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: IORQ - Input/Output requestIORQ) angesprochen. Daraus ergibt sich die Portadresse hex: &7Fxx (binär: &X0111111xxxxxxxx). Alle Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
in 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
und Speicher und Peripherie: Das PAL im CPC 6128PAL sind nicht lesbar, sondern können nur beschrieben werden. Zur Unterscheidung zwischen diesen beiden ICs und zur Auswahl eines bestimmten Registers in 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
dienen keine zusätzlichen Adressleitungen, sondern die Port B - Input: &F5xx: Bits 1, 2 und 3:
Port C - Output: &F6xx: Bit 6 und 7:
Bits 6 und
7 des übergebenen Datenwortes.

Portadresse: &7FFF (nur Output!)
+---------------------------------------------------------------------+
|                                                                     |
|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
76543210 1. das Gate Datenspeicherung und Datenstrukturen: ArraysArray: | +------------ ------------------ | | Datenwort | | binär Bedeutung der einzelnen 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 Datenbyte | +------------ ----------------------------------------- | | &X0000iiii Wählt das Farbregister für Die Bildausgabe: Tinten und FarbenTinte iiii an | | &X0001???? Wählt das BORDER-Farbregister an | | &X010nnnnn Programmiert das gerade angewählte Farbregister | | mit der Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
nnnnn (Paletten-Farbnummer) | | &X100roumm r=1 => Löscht den 52-Bildschirmzeilen-Zähler | | (=> Interrupt-Verzögerung) | | o=1 => Blendet oberes Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM aus | | u=1 => Blendet unteres Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM aus | | mm => Bestimmt Bildschirm-Modus | +---------------------------------------------------------------------+
+---------------------------------------------------------------------+
|                                                                     |
|                             2. das Speicher und Peripherie: Das PAL im CPC 6128PAL:                             |
|                             -----------                             |
|                                                                     |
|              Steuerung der RAM-Bankauswahl wie folgt.               |
|              (n)ormale RAM-Bank - (z)usätzliches RAM                |
|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
76543210 0,1,2,3: Die Speicherkonfiguration im Schneider CPC: BlockBlock der jeweiligen Die Speicherkonfiguration im Schneider CPC: BankBank | +------------ | | Datenwort CPU-Adressviertel Konfiguration wird normale Lage | | binär -0- -1- -2- -3- verwendet bei: für Video-RAM| +------------ ------------------ --------------------- -------------| | &X11000000 n0 - n1 - n2 - n3 Normalzustand n3=Screen | | &X11000001 n0 - n1 - n2 - z3 Einleitung: CP/MCP/M: BIOS, BDOS etc. n1=Screen | | &X11000010 z0 - z1 - z2 - z3 Einleitung: CP/MCP/M: TPA (n1=Screen) | | &X11000011 n0 - n3 - n2 - z3 Einleitung: CP/MCP/M: n3=Hush-Tabelle (n1=Screen) | | &X11000100 n0 - z0 - n2 - n3 Bankmanager n3=Screen | | &X11000101 n0 - z1 - n2 - n3 Bankmanager n3=Screen | | &X11000110 n0 - z2 - n2 - n3 Bankmanager n3=Screen | | &X11000111 n0 - z3 - n2 - n3 Bankmanager n3=Screen | +---------------------------------------------------------------------+
+---------------------------------------------------------------------+
|              Queues als verkettete Liste: Anmerkung:ANMERKUNG: 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
5 ist immer 0 (reserviert) | | Das Z80-Registerpaar 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' enthält ständig die Portadresse und das | | passende Datenbyte, um mit einem OUT (C),C die momentane Die Speicherkonfiguration im Schneider CPC: BankBank- | | Konfiguration und Bildschirm-Modus einzustellen. | +---------------------------------------------------------------------+
Datenbyte &X000biiii und &X010nnnnn

Die Die Grafik: FarbenFarbdarstellung des Schneider CPC unterscheidet Die Bildausgabe: Tinten und FarbenTinten (INKs) und zugehörige Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
(Colours). Im Bildschirmspeicher wird zu jedem Punkt des Bildschirms eine Tintennummer gespeichert. Während der Bildausgabe erzeugt das Gate Datenspeicherung und Datenstrukturen: ArraysArray daraus die zugehörige Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
.

Diese Zuordnung ist nicht fest, sondern programmierbar. Dafür benutzt Speicher und Peripherie: Die ULA
Die Bildausgabe: Die ULA
die ULA
eine sogenannte CLUT (Color Look Up Table), eine Tabelle, in der die Farbzuordnungen gespeichert sind. Beim Schneider CPC wird die CLUT meist als Palette bezeichnet. Sie ist in Registern in 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
gespeichert, und kann von 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
programmiert werden.

Um die Farbzuordnung einer Die Bildausgabe: Tinten und FarbenTinte (INK) zu ändern, muss diese zunächst einmal adressiert werden. Das erkennt Speicher und Peripherie: Die ULA
Die Bildausgabe: Die ULA
die ULA
daran, dass die beiden obersten Datenbits beide nicht gesetzt sind (Kombination '00'). Unabhängig vom dargestellten Bildschirm-Modus können alle 16 Tintennummern (0 bis 15) so programmiert werden. Ist auch 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
4 gesetzt (Tintennummern von 16 bis 31), so wird das Border-Farbregister angewählt, das wie eine eigene Die Bildausgabe: Tinten und FarbenTinte funktioniert.

Danach schreibt man die gewünschte Farbwert in das so angewählte Palettenregister. Diese Die Fließkomma-Routinen: FunktionenFunktion wird durch die Kombination '01' der beiden obersten Datenbits angewählt.

Man muss aber aufpassen: Die Farbnummer, mit der die Palette in 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
programmiert wird, entspricht NICHT der Farbnummer, die man beispielsweise im INK-Statement in Einleitung: BASIC
Anhang: Basic
Basic
angeben muss. Diese Farbnummern sind nach ihren Grauwerten sortiert und werden vom MAIN FIRMWARE JUMPBLOCK: SCREEN PACK
Die Firmware des Schneider CPC: SCREEN PACK
Screen Pack
über eine Tabelle in die entsprechenden Paletten-Farbnummern übersetzt.

Zusammenhang zwischen Farbe, Farbnummer und Paletten-Farbnummer
                   Paletten- Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farb
- || Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farb
- Paletten- Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
Farb-Nr. Nummer || Nummer Farb-Nr. Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
-----------------------------++----------------------------------- Schwarz 20 0 || 26 11 Hellweiß Blau 4 1 || 25 3 Pastell-Gelb Hellblau 21 2 || 24 10 Hellgelb Rot 28 3 || 23 27 Pastell-Blaugrün Magenta 24 4 || 22 25 Pastell-Grün Hellviolett 29 5 || 21 26 Limonengrün Hellrot 12 6 || 20 19 Hellblaugrün Purpur 5 7 || 19 2 Seegrün Hellmagenta 13 8 || 18 18 Hellgrün Grün 22 9 || 17 15 Pastell-Magenta Blaugrün 6 10 || 16 7 Rosa Himmelblau 23 11 || 15 14 Orange Gelb 30 12 || 14 31 Pastell-Blau Weiss 0 13 || 13 0 Weiss -----------------------------++-----------------------------------

Das Farb-Blinken wird vom MAIN FIRMWARE JUMPBLOCK: SCREEN PACK
Die Firmware des Schneider CPC: SCREEN PACK
SCREEN PACK
software-mäßig realisiert. Dazu hängt es einen BCEF: KL INIT EVENT: EventblockEventblock auf dem FRAME FLYBACK TICKER ein, durch den im SPEED-INK-Rhythmus die Farbzuordnungen für Border und Inks immer wieder umprogrammiert werden. Bei nicht blinkenden Die Bildausgabe: Tinten und FarbenTinten wird dabei einfach zwischen zwei gleichen Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
'gewechselt'.

Wird Die Abteilungen des Betriebssystems: Das Screen Packdas SCREEN PACK initialisiert (beim Einschalten des Rechners beispielsweise), so nimmt es folgende Zuordnung von Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
zu den 16 Die Bildausgabe: Tinten und FarbenTinten und Border vor:

---------+----------------------------------------------------------------------
  Die Bildausgabe: Tinten und FarbenTinte: | Border 0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
---------+----------------------------------------------------------------------
Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
1: | 1 1 24 20 6 26 0 2 8 10 12 14 16 18 22 1 16 Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
2: | 1 1 24 20 6 26 0 2 8 10 12 14 16 18 22 24 11 ---------+---------------------------------------------------------------------- <---- Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
2 ----------> <------> <---- Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
1 ------------------> blinkend <---- Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
0 ------------------------------------------------------------------>

Da der Bildschirm zuerst im 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
1 dargestellt wird, können nur die Tinten 0 bis 3 angesprochen werden. Trotzdem werden bei jedem Farbblinken alle 16 Die Bildausgabe: Tinten und FarbenTinten neu 'gefärbt'. Schaltet man auf 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
0 um, so kann man alle 16 Die Bildausgabe: Tinten und FarbenTinten ansprechen. Dass hier, wie in der Tabelle oben angegeben, die letzten beiden Inks blinken, davon kann man sich überzeugen, wenn man im 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
0 'PEN_15' und PEN_14' eingibt.

Speicher und Peripherie: Die ULA
Die Bildausgabe: Die ULA
Die ULA
kann natürlich auch von Einleitung: BASIC
Anhang: Basic
Basic
aus via OUT-Statement programmiert werden. Speziell bei den Farbzuordnungen wird man aber nicht lange Freude haben, da diese ja, wie bereits gesagt, vom MAIN FIRMWARE JUMPBLOCK: SCREEN PACK
Die Firmware des Schneider CPC: SCREEN PACK
SCREEN PACK
in regelmäßigen abständen neu programmiert werden. Wenn man aber vorher

SPEED INK 255,255 [ENTER]

eingibt, kann man den Effekt solcher OUT-Statements schon länger bewundern:

OUT &7FFF,&X00010000 : OUT &7FFF,&X01000111 [ENTER]

Das erste OUT wählt das Border-Tintenregister an und das zweite programmiert es mit der Paletten-Farbnummer 7, ein wunderhuebsches Bonbon-Rosa. Danach ist für eine unbestimmte Zeit (maximal 5 Sekunden) der Border in seiner neuen Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farbe
zu bewundern, bis der nächste 'Farb-Blink' den alten Zustand wieder herstellt.

Datenbyte &X100roumm

Wird Speicher und Peripherie: Die ULA
Die Bildausgabe: Die ULA
die ULA
mit einem Datenbyte programmiert, in dem die beiden oberen 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
in der Kombination '10' gesetzt sind, so haben die Port C - Output: &F6xx: Bits 0 bis 3:Bits 0 bis 4 spezielle Die Fließkomma-Routinen: FunktionenFunktionen.

Die Port B - Input: &F5xx: Bits 1, 2 und 3:
Port C - Output: &F6xx: Bit 6 und 7:
Bits 0 und
1 zusammen bestimmen den 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
, in dem der Bildschirm dargestellt werden soll:

00 - Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
0 - 16 Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
- 20 Zeichen pro Zeile 01 - Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
1 - 4 Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
- 40 Zeichen pro Zeile 10 - Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
2 - 2 Die Grafik: Farben
Die Bildausgabe: Tinten und Farben
Farben
- 80 Zeichen pro Zeile 11 - nicht spezifiziert (Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 2:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 1:
Die Kodierung der Tintennummern in den Bildschirm-Bytes: Mode 0:
Mode
0)

Ist 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
2 gesetzt, so wird das untere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM ausgeblendet, bei 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
3 das obere. Sind 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
zurückgesetzt, so wird das entsprechende Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM eingeblendet.

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
2 = 0 - unten Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM 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
2 = 1 - unten RAM
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
3 = 0 - oben Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM 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
3 = 1 - oben RAM

Der ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
bezieht sich nur auf 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
und wird 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
dadurch realisiert, dass sie entsprechend ihrer Programmierung Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROMEN oder Erläuterung zu den Anschlüssen 40 bis 45: 44 - RAMRD (0)RAMRD aktiviert. Schreibbefehle gehen leider immer an's interne RAM.

Ist 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
4 gesetzt, so wird der Rasterzeilenzähler in 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
zurückgesetzt. Dieser Zähler erzeugt, sobald er den Wert 52 erreicht, einen Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt. Der Zähler wird außerdem noch mit dem Strahlhochlauf synchronisiert, so dass pro Sekunde exakt 300 Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupts erzeugt werden.

Auch dieses Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
eignet sich nur sehr beschränkt für Spielereien in Einleitung: BASIC
Anhang: Basic
Basic
. Da hierin auch der ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
programmiert wird, wird es bei jedem Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt beschrieben. Die Interrupt-Routine muss nämlich das Betriebssystem-ROM einblenden, um dort Grundlagen: UnterprogrammeUnterprogramme ausführen zu können. Dazu ist ständig im 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'-Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
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 korrekte Wert gespeichert, um mit einem 'OUT_(C),C' den aktuellen ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
des Hauptprogramms wieder herzustellen. LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
' enthält das höherwertige, signifikante Datentypen: Bytes
Datenbreite: Bytes
Byte
der ULA-Adresse (&7F) und C' das Datenbyte mit ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
und Bildschirm-Modus. Die Port B - Input: &F5xx: Bits 1, 2 und 3:
Port C - Output: &F6xx: Bit 6 und 7:
Bits 6 und
7 sind natürlich in der Kombination '10' gesetzt.

Von Einleitung: BASIC
Anhang: Basic
Basic
aus sind deshalb nur recht unsinnige Spielereien möglich. Man kann den CPC beispielsweise sehr effektiv in einer Schleife aufhängen, in der der Interruptzähler immer wieder genullt wird. Da kein Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt mehr erzeugt wird, unterbleibt auch die Tastaturabfrage und der Rechner kann nur noch durch Ausschalten wieder zum Leben erweckt werden:

   10 OUT &7FFF,&X10010101 : GOTO 10

Auch ein unterhaltsames Quiz ist möglich:

   OUT &7FFF,&X10001001

schaltet das obere Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM aus und das untere ein. Das ist genau der umgekehrte ROM-Konfiguration: ROM-Status
Anschluss eines Zusatz-ROM: ROM-Status
ROM-Status
, als ihn Einleitung: BASIC
Anhang: Basic
Basic
benötigt. Die tollsten Meldungen sind so möglich: Vom einfachen 'Erklärung zu den Bezeichnungen: READY
Erklärungen zu den Anschlussbezeichnungen: READY
Ready
' über 'press play on tape' bis (seufz) zum totalen Systemabsturz. Die Frage ist nur immer: Was kommt als nächstes?

Datenbyte &X11000ram

Ein OUT auf der Adresse 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
, bei der im Datenbyte die beiden obersten 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
gesetzt sind (Kombination '11'), spricht kein Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
in 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
an. Im Schneider CPC 6128 wird hiermit aber das Speicher und Peripherie: Das PAL im CPC 6128PAL programmiert, das Die Speicherkonfiguration im Schneider CPC: Die RAM-Konfigurationdie RAM-Konfiguration steuert.

Das Speicher und Peripherie: Das PAL im CPC 6128PAL wertet nur die untersten drei Datenbits aus. Entsprechend sind acht verschiedene BD5B: KL RAM SELECT: Mögliche RAM-Konfigurationen:RAM-Konfigurationen möglich. Die nicht benutzten 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
sollte man immer auf Real: NullNull setzen, falls Amstrad hier in Zukunft noch andere Die Fließkomma-Routinen: FunktionenFunktionen plant.

Das Speicher und Peripherie: Das PAL im CPC 6128PAL steuert nur den 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
auf Die Anschlussbelegungen der wichtigsten ICs im CPC: Das RAM 4164das RAM. Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration und Bildausgabe bleiben davon unberührt. Die folgende Tabelle zeigt noch einmal die verschiedenen Möglichkeiten:

Programmierbare RAM-Konfigurationen
  &X11000000  n0 - n1 - n2 - n3   Normalzustand           n3=Screen
  &X11000001  n0 - n1 - n2 - z3   Einleitung: CP/MCP/M: BIOS, BDOS etc.   n1=Screen
  &X11000010  z0 - z1 - z2 - z3   Einleitung: CP/MCP/M: TPA              (n1=Screen)
  &X11000011  n0 - n3 - n2 - z3   Einleitung: CP/MCP/M: n3=Hush-Tabelle  (n1=Screen)
  &X11000100  n0 - z0 - n2 - n3   Bankmanager             n3=Screen
  &X11000101  n0 - z1 - n2 - n3   Bankmanager             n3=Screen
  &X11000110  n0 - z2 - n2 - n3   Bankmanager             n3=Screen
  &X11000111  n0 - z3 - n2 - n3   Bankmanager             n3=Screen
  n=normale RAM-Bank - z=zusätzliche RAM-Bank

Wenn man den RAM-Block, der gerade den Bildwiederholspeicher enthält, ausblendet, schreibt 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
ab sofort in einen Die Speicherkonfiguration im Schneider CPC: BlockBlock des zusätzlichen RAMs, der aber nicht dargestellt wird:

OUT &7FFF,&X11000001 : REM n0 - n1 - n2 - z3

Alle Textausgaben bleiben dann unsichtbar. Trotzdem wird der sichtbare Bildschirm gescrollt, wenn der (unsichtbare) Bildschirm hardwaremäßig gescrollt werden muss. 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
löscht dabei die neu entstehenden Zeilen in der zusätzlichen RAM-Bank, nicht aber in der tatsächlich dargestellten. Dadurch rollt hier die Anzeige oben heraus und unten wieder versetzt herein, oder umgekehrt. Der Versatz kommt daher, dass aus einer 'Das Screen Pack: RAM-ZeilenRAM-Zeile' des Video-RAMs, die 2k = 2048 Datentypen: Bytes
Datenbreite: Bytes
Bytes
umfasst nur 2000 tatsächlich benutzt werden.

Um die normale BD5B: KL RAM SELECT: Mögliche RAM-Konfigurationen:RAM-Konfiguration wieder herzustellen, muss man nun blind und fehlerfrei OUT_&7FFF,&X11000000 eingeben, oder den Rechner mit CTRL-SHIFT-ESCAPE neu initialisieren. Danach kann man sich mit dem Bank-Manager ansehen, was man die ganze Zeit blind eingetippt hat: |SCREENSWAP,1,5 bringt den nicht darstellbaren, dritten Die Speicherkonfiguration im Schneider CPC: BlockBlock der zusätzlichen RAM-Bank, in den man die ganze Zeit geschrieben hat, in den Bildschirmspeicher.

Valid HTML   Valid CSS