| Zeile 125: | Zeile 125: | ||
|} | |} | ||
| − | == Start Address == | + | ==== Start Address ==== |
Die Register 12 und 13 geben das Offset an, an der das erste darzustellende Zeichen auf dem Bildschirm, also das Zeichen oben links, steht. Dabei ist zu beachten, dass die Berechnung des Offsets wie Berechnung der Cursorposition (siehe unten) verläuft. Das heißt das Offset darf nicht mit 2 multipliziert werden, um die Attribute einzubeziehen. | Die Register 12 und 13 geben das Offset an, an der das erste darzustellende Zeichen auf dem Bildschirm, also das Zeichen oben links, steht. Dabei ist zu beachten, dass die Berechnung des Offsets wie Berechnung der Cursorposition (siehe unten) verläuft. Das heißt das Offset darf nicht mit 2 multipliziert werden, um die Attribute einzubeziehen. | ||
| Zeile 150: | Zeile 150: | ||
outb(0x3D4, 13); | outb(0x3D4, 13); | ||
| − | outb(0x3D5, start_address); // Low Byte schreiben | + | outb(0x3D5, start_address & 0xff); // Low Byte schreiben |
outb(0x3D4, 12); | outb(0x3D4, 12); | ||
| − | outb(0x3D5, start_address >> 8); // High Byte schreiben | + | outb(0x3D5, (start_address >> 8) & 0xff); // High Byte schreiben |
/* | /* | ||
| Zeile 163: | Zeile 163: | ||
}</c> | }</c> | ||
| − | == Cursor Address == | + | ==== Cursor Address ==== |
Die Register 14 und 15 setzen die Cursor Addresse, die sich aus der Cursor Position berechnet. Um den Cursor zum Beispiel in Zeile 10, Spalte 63 zu setzen muss man 10 * 80 + 63 = 863 rechnen. Dieser Wert wird dann in die High und Low Bytes der Register für die Cursor Addresse geschrieben. | Die Register 14 und 15 setzen die Cursor Addresse, die sich aus der Cursor Position berechnet. Um den Cursor zum Beispiel in Zeile 10, Spalte 63 zu setzen muss man 10 * 80 + 63 = 863 rechnen. Dieser Wert wird dann in die High und Low Bytes der Register für die Cursor Addresse geschrieben. | ||
| Zeile 185: | Zeile 185: | ||
outb(0x3D4, 15); | outb(0x3D4, 15); | ||
| − | outb(0x3D5, cursor_address); | + | outb(0x3D5, cursor_address & 0xff); |
outb(0x3D4, 14); | outb(0x3D4, 14); | ||
| − | outb(0x3D5, cursor_address >> 8); | + | outb(0x3D5, (cursor_address >> 8) & 0xff); |
}</c> | }</c> | ||