Autor Thema: Protected Mode Tutorials?  (Gelesen 13878 mal)

ODIN

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« am: 27. January 2005, 15:27 »
Hallo Leute...

Sagt kann mir jemand ein paar links für protected mode sagen?
ich mein ich hab schon ein paar tutorials gelesen aber das is ziemlich kompliziert denk ich mal...

Da ich alle meine treiber selber schreibe und nicht die interrupts verwende bzw. so wenig wie möglich verwenden möchte, kann ich auch gleich PM machen ...

bitte helft mir ...

lg Daniel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

ODIN

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 30. January 2005, 20:57 »
Hi Leute!


Also ich hab noch eine Frage .. .also eher 3 ...=)
1.) Wenn ich alle Treiber sozusagen selber schreiben muss, muss ich auf alle Interrupts verzichten oder nur auf Bildschirm, Tastatur, ...

Ich mein wie kann ich Sektoren lesen ohne Interrupts?!? Geht das überhaupt?


2.) Wenn ich Charakters am Bildschirm ausgeben will, muss ich die Char an die Speicherstelle 0x8B00 schreiben (2 Byte pro Zeichen)

Im ProtectedMode Tutorial ist im Deskriptor von der Speicherstell 0x8B000 die Rede. Is das jetzt 0x8B00 oder 0x8B000?

3.) Wie kann ich in VGA oder SVGA im PMode schalten? Und wie kann ich hohe Auflösungen und höhere Farbtiefen erreichen?

lg Daniel

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 31. January 2005, 13:50 »
Zitat von: ODIN
Ich mein wie kann ich Sektoren lesen ohne Interrupts?!? Geht das überhaupt?

Du musst dann über I/O Ports direkt oder mit DMA auf die Hardware zugreifen. -> hier gibt es infos für die verschiedenen medien

Zitat
Im ProtectedMode Tutorial ist im Deskriptor von der Speicherstell 0x8B000 die Rede. Is das jetzt 0x8B00 oder 0x8B000?

Kleiner Zahlendreher. Es muss 0xB800 oder 0xB8000 heissen. ;)
Im Real Mode ist die Speicheradressierung anders als im Protected Mode. Es wird über ein Segment-Offset-Paar adressiert mit der "Formel" Segment * 0x10 + Offset = Lineare Adresse. Das Segment für den Zugriff auf den Textmodus ist üblicherweise 0xB800. Wenn man für Offset = 0 nimmt kommt man mit dieser Formel auf die lineare Adresse 0xB800 * 0x10 + 0x0 = 0xB8000, was der Adresse im Protected Mode entspricht. Mehr dazu in Ausgabe #1

Zitat
3.) Wie kann ich in VGA oder SVGA im PMode schalten? Und wie kann ich hohe Auflösungen und höhere Farbtiefen erreichen?

Entweder du schreibst deinen eigenen Grafiktreiber für deine Grafikkarte (sehr schwer) oder du erstellst einen v86-Task der dann per VESA in den Grafikmodus schaltet (auch nicht leicht). Es gibt auch noch die Möglichkeit mit den VESA BIOS Extensions (VBE) Version 3.0 glaub im Protected Mode den Grafikmodus zu wechseln. (funktioniert nur mit neueren karten und da auch nicht immer) Aber da kenn ich mich auch nicht aus.

Aber am einfachsten ist es erstmal, wenn du den Grafikmodus wählst bevor du in den Protected Mode gehst.

Die VESA-Modi bieten hohe Auflösungen und hohe Farbtiefen. Eine Liste mit Modi gibt es hier.

PorkChicken
Dieser Text wird unter jedem Beitrag angezeigt.

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #4 am: 31. January 2005, 17:23 »
Einen Grafiktreiber für Karten selbst zu schreiben ist nicht nur sehr schwer, sondern unmöglich da,von der Vodoo Banshee einmal abgesehen, noch nie Dokus/Datasheets veröffentlicht wurden die man dazu verwenden könnte. Wer im Besitz solcher Infos ist, hat entweder einen Knallharten Vertrag unterschrieben bei dem Todesstrafe noch milde ist, oder illegal irgendwie. Man kann da nur hoffen, dass das OS bekannt wird und die Hersteller selbst Treiber für dein OS zur Verfügung stellen, aber da sehe ich schwarz.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 31. January 2005, 18:11 »
... oder du die Linuxtreiber benutzt / portierst :D

 

Einloggen