| Autor |
Nachricht |
taljeth
Mitglied
Benutzerprofil
Anmeldungsdatum: 11.09.2009
Beiträge: 149
|
taljeth Mitglied
19:12:58 28.07.2011 Titel: |
|
Zitieren |
Strenggenommen ist das Limit damit ein Byte zu groß, aber weh tut das nicht besodners: Es wird ja immer nur auf ganze GDT-Einträge zugegriffen und damit hat der nächste immer noch sieben Bytes außerhalb des Limits liegen und kann deswegen nicht versehentlich benutzt werden. |
_________________ Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.
Lowlevel - die deutschsprachige OS-Dev-Community
|
|
 |
Erhard Henkes
Mitglied
Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 12167
|
Erhard Henkes Mitglied
00:35:48 07.08.2011 Titel: |
|
Zitieren |
|
 |
fr33g
Mitglied
Benutzerprofil
Anmeldungsdatum: 07.01.2010
Beiträge: 809
|
fr33g Mitglied
22:28:42 11.08.2011 Titel: |
|
Zitieren |
| Erhard Henkes schrieb: | Danke für den Hinweis.  |
Kein Ding |
_________________ Das kann ich: C/C++, Asm, HTML, CSS, Javascript;
|
|
 |
fr33g
Mitglied
Benutzerprofil
Anmeldungsdatum: 07.01.2010
Beiträge: 809
|
fr33g Mitglied
00:00:13 12.08.2011 Titel: |
|
Zitieren |
| fr33g schrieb: | | Erhard Henkes schrieb: | | kannst du bitte den code genau darstellen? IST und das, was du für richtig hältst. |
Sorry, mein Fehler, hatte ganz vergessen, dass ja AT&T Syntax verwendet wird, bzw dass dort eben die Operanden im Vergleich zur Intel Syntax vertauscht sind. Von daher stimmt alles;-), hier trotzdem mal der Code den ich meinte. Aber wie gesagt, passt alles
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | inline void outportb(unsigned int port,unsigned char value)
{
asm volatile ("outb %%al,%%dx"::"d" (port), "a" (value));
};
void update_cursor(int row, int col)
{
unsigned short position = (row*80) + col;
// cursor HIGH port to vga INDEX register
outportb(0x3D4, 0x0E);
outportb(0x3D5, (unsigned char)((position>>8)&0xFF));
// cursor LOW port to vga INDEX register
outportb(0x3D4, 0x0F);
outportb(0x3D5, (unsigned char)(position&0xFF));
}; | |
Lg freeG |
Nochmal zu dem Thema: Ich wusste doch dass ich mir aber sicher war, dass da irgendwas falsch ist...
Du schreibst im Tutorial an der oben genannten Stelle, man würde Befehle an die Ports 0x0E und 0x0F senden. Dies ist aber ja nicht der Fall, stattdessen sendet man Befehle an die Ports 0x3D4 und 0x3D5, wobei 0x0E und 0x0F nur zwei der vier Befehle sind, die an die genannten Ports gesendet werden.
Lg freeG |
_________________ Das kann ich: C/C++, Asm, HTML, CSS, Javascript;
|
|
 |
Erhard Henkes
Mitglied
Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 12167
|
Erhard Henkes Mitglied
00:27:33 12.08.2011 Titel: |
|
Zitieren |
Thx. Habe den letzten Punkt korrigiert. |
_________________ OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
|
|
 |
fr33g
Mitglied
Benutzerprofil
Anmeldungsdatum: 07.01.2010
Beiträge: 809
|
fr33g Mitglied
20:09:21 12.08.2011 Titel: |
|
Zitieren |
| Erhard Henkes schrieb: | | Thx. Habe den letzten Punkt korrigiert. |
Habs gesehen |
_________________ Das kann ich: C/C++, Asm, HTML, CSS, Javascript;
|
|
 |
Erhard Henkes
Mitglied
Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 12167
|
Erhard Henkes Mitglied
21:54:18 12.08.2011 Titel: |
|
Zitieren |
Danke für Hinweise zum Tutorial. |
_________________ OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|