Das Schneider CPC Systembuch

Das Innenleben der CPC-Rechner

Der Video Controller HD 6845

Die Register des Video-Controllers HD 6845

Der Die Anschlussbelegungen der wichtigsten ICs im CPC: Der CRTC HD 6845
Die Bildausgabe: Der CRTC HD 6845
HD
6845 verfügt über insgesamt 18 interne Control-Register, die teilweise jedoch nur beschrieben oder nur gelesen werden können. Trotzdem benötigt man normalerweise nur zwei verschiedene Adressen, um den 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
anzusprechen. Durch die Super-Sparschaltung, mit der man bei Amstrad den 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
in's Gesamtsystem eingebunden hat, muss man im Schneider CPC allerdings vier verschiedene Adressen unterscheiden.

Um eins der sogenannten Control-Register zu beschreiben oder zu lesen, muss man es vorher mit dem Adress-Register anwählen. Dafür dient der Eingang Erklärung zu den verwendeten Bezeichnungen: RS - Register SelectRS (Register Select) des 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
. Dieser ist direkt mit der Adressleitung Erklärung der Anschlussbelegung: A8
Der Zeichensatz des Schneider CPC: &A8 = 168
A8
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
verbunden. A9 hingegen liegt am Eingang R/W (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: RD - Read
Read
/Write-Select) des 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
an. Die Gründe wurden ja schon weiter oben erläutert.

Daraus ergeben sich folgende Adressen, mit denen der 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
im Schneider CPC angesprochen wird:

OUT (&BCxx) -> Video-Chip-Register adressieren
OUT (&BDxx) -> Video-Chip-Register beschreiben
 IN (&BExx) -> reserviert für Status lesen
 IN (&BFxx) -> Video-Chip-Register einlesen

Um also beispielsweise den Wert &40 ins Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
12 zu schreiben, muss man wie folgt vorgehen:

LD   C,12   ; Registernummer
LD   LOW KERNEL JUMPBLOCK: 000B:  LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
,#BC ; Portadresse CRTC-Register adressieren OUT (C),C ; 12 in's Adress-Register latchen ; LD C,#40 ; Wert für Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
12 LD LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
,#BD ; Portadresse CRTC-Register beschreiben OUT (C),C ; #40 in's angewählte Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
12 latchen

Zu beachten ist dabei wieder, dass durch die spezielle I/O-Decodierung im Schneider CPC der Befehl 'OUT_(C),C' eigentlich mehr einem 'OUT_(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' entspricht.

Die folgende Tabelle enthält eine Aufstellung aller 18 Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
des Die Anschlussbelegungen der wichtigsten ICs im CPC: Der CRTC HD 6845
Die Bildausgabe: Der CRTC HD 6845
HD
6845. Zu jedem Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
ist angegeben, ob es sich beschreiben bzw. ob es sich lesen lässt. Die meisten Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
sind nur beschreibbar. Außerdem ist angegeben, mit welchen Werten dieses Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
beim Einschalten des Computers initialisiert wird. Dabei muss jedoch zwischen Speicher und Peripherie: Das PAL im CPC 6128PAL, SECAM und der NTSC-Norm für Amerika unterschieden werden. Die Werte für Speicher und Peripherie: Das PAL im CPC 6128PAL und SECAM sind identisch. Für NTSC war das nicht möglich, da hier ein Bild mit einer Wiederholungsfrequenz von 60 Hz geschrieben werden muss. In Deutschland wird das Videosignal entsprechend der PAL-Norm erzeugt.

+------------------------------------------------------------------+
! r = lesbares / w = beschreibbares Die Tonausgabe: Das Kontrollregister  (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
NTSC Speicher und Peripherie: Das PAL im CPC 6128PAL/SECAM! ! Werte rechts: Standard-Einstellung: dez/hex dez/hex! +------------------------------------------------------------------+ ! Erklärungen zu den einzelnen Registern: R00: (-/w) theoretische Zeichenzahl für eine Zeile incl. Border und StrahlrücklaufR00: (-/w) theoretische Zeichenzahl für eine ! ! Zeile incl. Border & Strahlrücklauf 63 &3F 63 &3F! ! Erklärungen zu den einzelnen Registern: R01: (-/w) dargestellte Zeichen pro ZeileR01: (-/w) dargestellte Zeichen pro Zeile 40 &28 40 &28! ! Erklärungen zu den einzelnen Registern: R02: (-/w) Zeitpunkt für horizontale Synchr.R02: (-/w) Zeitpunkt für horizontale Synchr. 46 &2LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
46 &2LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
! ! Erklärungen zu den einzelnen Registern: R03: (-/w) Breite des horizontalen Synchr.PulsesR03: (-/w) Breite des horizontalen Synchr.Pulses 142 &8LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
142 &8LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
! ! Erklärungen zu den einzelnen Registern: R04/05: (-/w) theoretische Zeichenzahl für eine Spalte incl. Border und StrahlhochlaufR04: (-/w) theoretische Zeichenzahl für eine ! ! Spalte incl. Border & Strahlhochlauf 31 &1F 38 &26! ! R05: (-/w) Feinabgleich zu R04 06 &06 00 &00! ! Erklärungen zu den einzelnen Registern: R06: (-/w) dargestellte Zeichen pro SpalteR06: (-/w) dargestellte Zeichen pro Spalte 25 &19 25 &19! ! Erklärungen zu den einzelnen Registern: R07: (-/w) Zeitpunkt für vertikale Synchr.R07: (-/w) Zeitpunkt für vertikale Synchr. 27 &1LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
30 &1LOW KERNEL JUMPBLOCK: 000E: LOW PCBC INSTRUCTION
LOW KERNEL JUMPBLOCK: 001E: LOW PCHL INSTRUCTION
E
! ! Erklärungen zu den einzelnen Registern: R08: (-/w) Schalter für Zeilensprung-VerfahrenR08: (-/w) Schalter für Zeilensprung-Verfahren 00 &00 00 &00! ! R09: (-/w) Rasterzeilen/Buchstabe - 1 07 &07 07 &07! ! Erklärungen zu den einzelnen Registern: R10: (-/w) Einstellung für Hardware-CursorR10: (-/w) Einstellung für Hardware-Cursor 00 &00 00 &00! ! Erklärungen zu den einzelnen Registern: R11: (-/w) Einstellung für Hardware-CursorR11: (-/w) Einstellung für Hardware-Cursor 00 &00 00 &00! ! Erklärungen zu den einzelnen Registern: R12/13: (r/w) Text-Start-AdresseR12: (r/w) Text-Start-Adresse (msb) 48 &30 48 &30! ! R13: (r/w) Text-Start-Adresse (lsb) 00 &00 00 &00! ! Erklärungen zu den einzelnen Registern: R14/15: (r/w) Adresse des Hardware-CursorsR14: (r/w) Adresse des Hardware-Cursors (msb) 192 &Der Zeichensatz des Schneider CPC: &C0 = 192C0 192 &Der Zeichensatz des Schneider CPC: &C0 = 192C0! ! R15: (r/w) Adresse des Hardware-Cursors (lsb) 00 &00 00 &00! ! Erklärungen zu den einzelnen Registern: R16/17: (r/ ) Lightpen-PositionR16: (r/ ) Lightpen-Position (msb) -- -- ! ! R17: (r/ ) Lightpen-Position (lsb) -- -- ! +------------------------------------------------------------------+
Erklärungen zu den einzelnen Registern
R00: (-/w) theoretische Zeichenzahl für eine Zeile incl. Border und Strahlrücklauf

Hiermit wird ein Zähler programmiert, der den Abstand zwischen zwei HSYNC-Impulsen festlegt. 'Zeichenzahl' ist dabei jedoch irreführend. Normalerweise entspricht ein Speicherzugriff des 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
auch einem Buchstaben auf dem Monitor, was beim Schneider CPC aber nicht der Fall ist. 'Speicherzugriffe' wäre vielleicht korrekter. Der korrekte Wert für Speicher und Peripherie: Das PAL im CPC 6128PAL lässt sich leicht aus der Taktfrequenz des 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
, der Bildfrequenz und der Zeilenzahl berechnen:

       1.000.000
R00 = ----------- = 64
       50 * 312
R01: (-/w) dargestellte Zeichen pro Zeile

Auch hier ist wieder die Anzahl der Speicherzugriffe für eine Bildschirmzeile gemeint. Jetzt jedoch, wieviele Adressen der 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
tatsächlich ausgeben muss. R01 enthält also normalerweise die Anzahl der Zeichen, die in einer Zeile dargestellt werden sollen. Garbage Collection: ... beim CPC 464Beim CPC entsprechen 80 Datentypen: Bytes
Datenbreite: Bytes
Bytes
einer Zeile im Bildschirmspeicher. Da der 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
die unterste Adresse Der Zeichensatz des Schneider CPC: &A0 = 160A0 nicht selbst verwaltet, wird R01 nur mit 40 programmiert. Wer hier andere Werte hineinschreibt, muss sich alle Routinen des Betriebssystems, die auf den Bildschirmspeicher zugreifen, neu schreiben.

R02: (-/w) Zeitpunkt für horizontale Synchr.

Durch Verändern des Wertes in diesem Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
kann man das Bild auf dem Monitor nach links oder nach rechts schieben. Verkleinert man den Wert, kommt der Synchronisationsimpuls früher. Dadurch wird die Zeitspanne zwischen Impuls und Beginn der Bilddarstellung länger, das Bild verschiebt sich also nach rechts.

R03: (-/w) Breite des horizontalen Synchr.Pulses

Von diesem Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
werden nur die unteren 4 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
benutzt. Damit wird die Breite sowohl des vertikalen als auch des horizontalen Synchronisations-Impulses festgelegt.

R04/05: (-/w) theoretische Zeichenzahl für eine Spalte incl. Border und Strahlhochlauf

Auch hier geht man wieder davon aus, dass der 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
selbst bestimmt (programmierbar durch R09) wie hoch ein Zeichen sein soll. Zufällig stimmt der Wert jedoch auch für den Schneider CPC, da dessen Buchstaben 8 Rasterzeilen hoch sind, was den drei benutzten Rasteradress-Leitungen des 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
entspricht, die zum Adressieren des Bildschirmspeichers benutzt werden: 2^3 = 8. Aus dem Wert, mit dem R04 im Schneider CPC programmiert wird, lässt sich errechnen, wieviele Rasterzeilen der Schneider CPC tatsächlich zum Monitor bringt:

38 * 8 = 304.

200 Zeilen liegen im Bereich des beschreibbaren Bildschirmausschnittes. Die restlichen 104 Zeilen verteilen sich auf untere und obere Umrandung.

R06: (-/w) dargestellte Zeichen pro Spalte

Hier gilt das Selbe wie bei R05. R06 bezieht sich nur auf den tatsächlich beschreibbaren Bildschirmausschnitt.

R07: (-/w) Zeitpunkt für vertikale Synchr.

Mit diesem Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
lässt sich der Zeitpunkt für das VSYNC-Signal festlegen. Damit kann man das Monitorbild nach unten oder nach oben verschieben. Wird der Wert in diesem Register verringert, so wird der Impuls früher erzeugt. Dadurch wird die Zeitspanne zwischen Impuls und Beginn des beschreibbaren Bildschirmbereiches länger, das Monitorbild also nach unten verschoben.

R08: (-/w) Schalter für Zeilensprung-Verfahren

In Port B - Input: &F5xx: Bits 1, 2 und 3:
Port C - Output: &F6xx: Bit 6 und 7:
Bit 0 und
1 dieses Registers befinden sich Die Z80: Wirkung der Z80-Befehle auf die FlagsFlags, mit denen der 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
auf Zeilensprung-Verfahren umgeschaltet werden kann. Dann werden keine 310 Rasterzeilen mit einer Bildwiederholfrequenz von 50 Hz geschrieben, sondern 625 mit nur noch 25 Hz. Dieses Verfahren wird für Fernsehbilder verwendet. Im Schneider CPC ist es jedoch aufgrund der Beschaltung der Adressleitungen nicht anwendbar.

R09: (-/w) maximale Rasterzeilen-Adresse

Mit diesem Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
wird festgelegt, wieviele Rasterzeilen die Buchstaben hoch sein sollen. Damit werden die Row-Address-Leitungen RA0 bis RA4 des 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
programmiert. Da diese Leitungen beim Schneider CPC jedoch direkt Die Anschlussbelegungen der wichtigsten ICs im CPC: Das RAM 4164das RAM adressieren, ist hier kein anderer Wert als die standardmäßigen 7 sinnvoll. Programmiert man einen kleineren Wert, Der Linien-Algorithmus: Fehler 3fehlen in jeder Buchstabenzeile die untersten Rasterzeilen, und der dargestellte Bildschirmausschnitt wird schmäler. Da sich dadurch auch die Bildwiederholfrequenz ändert, müsste man auch noch R05 umprogrammieren, sonst bekommt man kein stehendes Bild mehr.

R10: (-/w) Einstellung für Hardware-Cursor

Die Port C - Output: &F6xx: Bits 0 bis 3:Bits 0 bis 4 legen fest, in welcher Rasterzeile Die Text-VDU: Der Cursorder Cursor beginnen soll. Die Port B - Input: &F5xx: Bits 1, 2 und 3:
Port C - Output: &F6xx: Bit 6 und 7:
Bits 5 und
6 bestimmen, wie Die Text-VDU: Der Cursorder Cursor dargestellt wird:

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 6 Erklärung zu den verwendeten Bezeichnungen: CursorCursor ------------------------------------ 0 0 dargestellt, blinkt nicht 0 1 blinkt MAIN FIRMWARE JUMPBLOCK: CASSETTE MANAGER
Die Firmware des Schneider CPC: CASSETTE MANAGER
ca
. 3 mal/Sek. 1 0 kein Erklärung zu den verwendeten Bezeichnungen: CursorCursor 1 1 blinkt MAIN FIRMWARE JUMPBLOCK: CASSETTE MANAGER
Die Firmware des Schneider CPC: CASSETTE MANAGER
ca
. 1,5 mal/Sek. ------------------------------------
R11: (-/w) Einstellung für Hardware-Cursor

Entsprechend R10 wir festgelegt, auf welcher Rasterzeile Die Text-VDU: Der Cursorder Cursor endet. Mit R10 und R11 lässt sich ein Erklärung zu den verwendeten Bezeichnungen: CursorCursor in vielen Formen darstellen. Das CPC-gewohnte 'Inverse Patch' ebenso, wie ein einfacher 'Unterstreicher'. Leider ist er im Schneider CPC nicht einsetzbar.

R12/13: (r/w) Text-Start-Adresse

Diese Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
legen fest, ab welcher MA-Adresse der Textspeicher beginnen soll. Normalerweise wird das dazu benutzt, um das Monitorbild hardwaremäßig durch einen größeren Textspeicher durchscrollen zu können (bei reiner Textdarstellung, versteht sich). Dadurch, dass man beim Schneider CPC die Adressleitungen MA10 und MA11 nicht beschaltet hat, wurde erreicht, dass der 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
, wenn er am Ende des Bildschirmspeichers ankommt, an dessen Anfang weiter macht. Der Übertrag von MA9 nach MA10 findet zwar statt, hat aber keinen Effekt bei der Adressierung des Bildschirm-RAMs. Die Adressen MA12 und MA13, mit denen das Speicherviertel für den Bildwiederholspeicher ausgewählt wird, werden davon nicht betroffen, wenn man als Bildspeicher-Startadresse Werte programmiert, bei denen MA10 und MA11 Real: NullNull sind. Dadurch kann man auch den Grafikbildschirm des CPC hardwaremäßig scrollen. Zwar nicht durch einen größeren Textspeicher, sondern immer auf der Stelle, und was man hinten herausscrollt, kommt vorne mit einem leichten Versatz wieder herrein und muss gelöscht oder überschrieben werden.

Wenn man als Bildspeicher-Startadresse Werte programmiert, bei denen MA10 und MA11 gleich Eins sind, macht der Video-Controller mit den RAM-Adressen nicht mehr am Anfang weiter, wenn er das Ende erreicht hat. Dann rippelt sich der Übertrag von MA9 über MA10 und MA11 bis MA12 und evtl. auch MA13 durch, und Anhang: Die Bildausgabedie Bildausgabe geht aus dem nächsten Speicherviertel weiter. Dadurch könnte man rein hardwaremäßig auch beim Schneider CPC durch einen Grafikspeicher von etwa 51 Buchstaben-Zeilen scrollen. Beeinträchtigt wird dieses Vergnuegen nur durch den verbrauchten Speicherplatz und dadurch, dass neben dem normalen Bildschirmspeicher nur die beiden schlechter verwertbaren Speicherviertel liegen: Der unterste Die Speicherkonfiguration im Schneider CPC: BlockBlock enthält leider die wichtigen ROM-Konfiguration: RestartsRestarts und Die Speicherkonfiguration im Schneider CPC: BlockBlock 3 die BCD1: KL LOG EXT: 1. JumpblockJumpblocks und die Interruptroutine. Man könnte aber beispielsweise in Die Speicherkonfiguration im Schneider CPC: BlockBlock 2 anfangen und in Die Speicherkonfiguration im Schneider CPC: BlockBlock 3 nur bis zu den vom Betriebssystem belegten Bereichen weitermachen. Dann beschränkt sich der Bildspeicher auf etwa 45 Zeilen. Die Text- und Grafik-Routinen des CPC-Betriebssystems sind dann natürlich nur noch bedingt einsatzfähig.

R14/15: (r/w) Adresse des Hardware-Cursors

In diese Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
wird die MA-Adresse des Zeichens geschrieben, auf dem Die Text-VDU: Der Cursorder Cursor dargestellt werden soll.

R16/17: (r/ ) Lightpen-Position

Nach einer 0-1-Flanke am Lightpen-Eingang enthält dieses Die Tonausgabe: Das Kontrollregister (Reg. 7)
Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)
Register
die MA-Adresse des Zeichens, das in dem Augenblick dargestellt wurde, als dieser Impuls eintraf. In Bildschirm-Modus 1 kann man so die Position eines Lightpens auf eine Buchstabenposition genau ermitteln. Für Grafikanwendungen etwas dürftig, für eine Menüauswahl aber sicherlich ausreichend.

R18 - R31

Hardware-Basteleien: Das 8. BitDas 5 Bits breite Adress-Register kann man natürlich auch noch mit den Die Z80: Illegalsillegalen Register-Adressen 18 bis 31 programmieren. Diese werden vom 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
aber automatisch ignoriert.

Valid HTML   Valid CSS