| Zeile 37: | Zeile 37: | ||
Die I/O Ports 0x3D0 bis 0x3DC sind für den CGA reserviert. Die Ports sind jeweils ein Byte groß. | Die I/O Ports 0x3D0 bis 0x3DC sind für den CGA reserviert. Die Ports sind jeweils ein Byte groß. | ||
=== Interne Register === | === Interne Register === | ||
| − | Der Motorola 6845 CRT | + | Der Motorola 6845 CRT Controller hat 18 interne Register, die verschiedene Aspekte der Darstellung kontrollieren. Sie werden über die Ports 0x3D4 und 0x3D5 angesteuert. Das Laden eines Registers erfolgt, indem der Index des Registers an den Port 0x3D4 geschrieben wird, und dann die Daten nach Port 0x3D5 geschrieben werden. |
Die folgende Tabelle listet alle zur Verfügung stehenden Register auf: | Die folgende Tabelle listet alle zur Verfügung stehenden Register auf: | ||
| Zeile 87: | Zeile 87: | ||
Die ersten 10 Register (0-9) steuern das Timing des CRT-Displays, sowie weitere Details der Darstellung, die über den Zweck dieses Artikels hinausgehen. Informationen dazu gibt es im Datenblatt des 6845 z.B. unter [http://bbc.nvg.org/doc/datasheets/MC6845.zip]. | Die ersten 10 Register (0-9) steuern das Timing des CRT-Displays, sowie weitere Details der Darstellung, die über den Zweck dieses Artikels hinausgehen. Informationen dazu gibt es im Datenblatt des 6845 z.B. unter [http://bbc.nvg.org/doc/datasheets/MC6845.zip]. | ||
| − | Nur die Register 14 bis 17 können laut Spezifikation ausgelesen werden. Deswegen ist es notwendig die Werte der anderen Register in einer Variable zu speichern, wenn ihre Werte | + | Nur die Register 14 bis 17 können laut Spezifikation ausgelesen werden. Deswegen ist es notwendig die Werte der anderen Register in einer Variable zu speichern, wenn man ihre Werte benötigt. Das BIOS nutzt dafür zum Beispiel Teile der [[Bios Data Area#Grafik-Adapter-Informationen|Bios Data Area]]. |
==== Cursor Format ==== | ==== Cursor Format ==== | ||
| − | Die Register 10 und 11 steuern die Form des Cursors. Die unteren 5 Bits dieser Register geben jeweils die Start- und End-Scanline des Cursors innerhalb eines Zeichens an. Außerdem steuern Bits 5 und 6 des | + | Die Register 10 und 11 steuern die Form des Cursors. Die unteren 5 Bits dieser Register geben jeweils die Start- und End-Scanline des Cursors innerhalb eines Zeichens an. Außerdem steuern Bits 5 und 6 des Registers 10 das Blinken des Cursors. |
{| {{Prettytable}} style="text-align: center;" | {| {{Prettytable}} style="text-align: center;" | ||
| Zeile 111: | Zeile 111: | ||
|} | |} | ||
| − | Die folgende Tabelle listet alle möglichen Belegungen von Enable und Timing | + | Die folgende Tabelle listet alle möglichen Belegungen von Enable und Timing auf: |
{| {{Prettytable}} | {| {{Prettytable}} | ||