Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: ODIN am 30. January 2005, 22:13

Titel: VESA .. klar doch wie?
Beitrag von: ODIN am 30. January 2005, 22:13
Hi Leute!

Ich bin grad dabei mein OS PM fähig zu machen =)

Wollte nur fragen wo ich mich über VESA programmierung informieren kann... Anscheinend können das schon alle außer mir =)

Thx schon im voraus...

lg Daniel - ODIN
Titel: VESA .. klar doch wie?
Beitrag von: TeeJay am 30. January 2005, 23:28
Warum wollen immer alle gleich mit Vesa, Grafik und GUI anfangen?

Warum macht ihr nicht erstmal Multitasking, Paging usw?
Titel: VESA .. klar doch wie?
Beitrag von: ODIN am 30. January 2005, 23:35
*g*
So ist es auch wieder nicht.
Ich möchte nur bevor ich beginne mein OS wirklich umfangreich zu gestalten vorher bescheid wissen wie ich das mache bzw. ob ich das überhaupt verstehe / machen kann.

Dann wenn ich alles verstanden habe, fange ich mit den grundlegenden funktionen an ...

Wenn ich gleich dabei bin. Du hast die PIC programmierung als Tutorial und das A20 Gate sowie PMode aktivierung.

Nur ich würde gerne wissen wie man das dann zusammenfügt.
Wie schreibe ich zB interrupts `?!?

lg Daniel
Titel: VESA .. klar doch wie?
Beitrag von: TeeJay am 31. January 2005, 14:03
Hab ich dir ja gestern im ICQ erklärt. Oder sind da noch Fragen offen?
Titel: VESA .. klar doch wie?
Beitrag von: Roshl am 31. January 2005, 17:38
Also ich hab MT und Paging schon^^ auch Speichermanagement in 3 Ebenen das alles aufteilt ist da^^ Festplatte->da Floppy->da Virtuelles Dateisystem->im Bau
Ich denke TJ wird mir erlauben mit VESA rum zu hantieren^^
Aber er hat schon recht, bevor man sich über kompliziertes Zeug Gedanken macht sollte man erstmal die einfacheren umsetzten und vor allem verstehen, habe beobachtet das manche os-dever überhaupt nicht verstanden haben was sie eigentlich machen.
Titel: ...Grafik...: DAS GRÖßTE PROBLEM VON OS-PROGGERN !!!
Beitrag von: BigOlly am 31. January 2005, 18:45
Hi Leute.

Also Grundsätzlich ist die Sache mit der Grafik-Programmierung die größte Hürde die ein OS-Progger nehmen muss. Meiner Meinung nach jedenfalls.

Mann bin ich froh das ich von einer GUI noch Meilenweit entfernt bin. Warscheinlich baue ich auch erst mal eine so eine Art "Zeichen-Mode-GUI" (vielleicht kann sich ja noch jemand an die Turbo-Vision-Bibliotheken von Turbo-Pascal erinnern, das war sowas ähnliches...).

Das Problem ist: Für alles kann man im Grunde Treiber schreiben, Netzkarten, USB, Tastatur, Scanner, Maus, Timer, APIC, Zip, CD..... usw.  weil alles ist dokumentiert und früher oder später findet man entsprechende Spezifikationen im Netzt. Allerdings gibt es eine Ausnahme: So gut wie sämtliche Grafik-Chips werden mit Ihren Register-Sätzen von den Herstelern so geheim gehalten wie die Farbe des Clopapiers des CIA-Chefs!

Und nun zu VESA:
Leider ist das so ziemlich die einzige Möglichkeit für einen OS-Progger (*heul*) eine Grafik-GUI (doppelt-gemoppelt  :wink: ) zu proggen. Und wenn man ein 32-Bit OS proggt (also in den P-Mode geht) dann gibt es im Grunde nur 2 Möglichkeiten mit VESA zu arbeiten (bitte korregiert mich wenn ich eine Möglichkeit übersehen hab).

1. Man schaltet den gewünschten Grafikmode schon beim booten mit hilfe des Bios ein und bleibt dann für alle Ewigkeit, bzw. bis zum nächsten Reset in diesem Mode.

2. Man benutzt die "PMode-Schnittstelle" die es ab VBE 3.0 gibt. Leider haben meiner Meinung nach nicht viele Grafikkarten diese Schnittstelle. Und wenn ich richtig gelesen hab ist die auch nicht ganz so einfach zu proggen.

Eine Möglichkeit würde mir noch einfallen: Evtl. könnte man einen "Vesa-Treiber" schreiben der für die Mode-Umschaltung das Multitasking, und das Paging abschaltet, in den Real-Mode schaltet, das BIOS für die Vesa-Einstellungen benutzt, und dann wieder den P-Mode, Paging und Multitsaking aktiviert....  Hilfe, wer will das proggen....   :-k


Gruß BigOlly

PS: Falls irgend jemand da draußen Spezifikations-Unterlagen über z.B. den S3-Trio64 Chipsatz hat....   BITTE MELDEN !!!
 :roll:
Titel: VESA .. klar doch wie?
Beitrag von: joachim_neu am 04. February 2005, 18:04
Zitat von: TeeJay
Warum wollen immer alle gleich mit Vesa, Grafik und GUI anfangen?

Warum macht ihr nicht erstmal Multitasking, Paging usw?


bei mir mache ich es, weil ich meine ausgabe sowieso in VESA am ende haben will, und warum soll ich da verschiedene funktionen für textmode und grafikmode schreiben, wenn ich gleich nach VESA wechseln kann, und dann nurnoch eine brauche?
Titel: Re: ...Grafik...: DAS GRÖßTE PROBLEM VON OS-PROGGERN !!!
Beitrag von: Svenska am 04. February 2005, 18:14
Zitat von: BigOlly
Eine Möglichkeit würde mir noch einfallen: Evtl. könnte man einen "Vesa-Treiber" schreiben der für die Mode-Umschaltung das Multitasking, und das Paging abschaltet, in den Real-Mode schaltet, das BIOS für die Vesa-Einstellungen benutzt, und dann wieder den P-Mode, Paging und Multitsaking aktiviert....  Hilfe, wer will das proggen....

Mal ne ganz ganz blöde Frage:
Was passiert, wenn ich nur mal "kurz" in den RealMode zurueckspringen will, um z.B. Vesa-Modi zu ändern? Dazu muss ich ja CS und Co neu laden, schmiert dabei nicht der gesamte PC ab??

Svenska
Titel: VESA .. klar doch wie?
Beitrag von: Roshl am 04. February 2005, 18:22
dazu ist ja der v86 da, der ist extra dafür geschaffen worden
Titel: VESA .. klar doch wie?
Beitrag von: BigOlly am 04. February 2005, 18:30
Ja, mit den v86-Mode geht's natürlich auch. Aber dann muss man die 64-Bit-Möglichkeit für sein Betriebssystem begraben. Denn im Long-Mode (auch im Compatibility-Mode) wird kein v86 mehr unterstützt.  :cry:
Titel: VESA .. klar doch wie?
Beitrag von: BigOlly am 04. February 2005, 18:33
Ach ja, nochwas: Mein OS-loader funktioniert so!
Ich schalte zurück in den Real-Mode, springe zurück in den OS-Loader, dieser läd mir den gewünschten Treiber per BIOS vom Boot-Drive dort hin wo ich will (irgendwohin in die 4GB ber Switch in den PM), und springt nach dem laden zurück in dem PM und zum Kernel.

Und: es funzt!    =D>
Titel: VESA .. klar doch wie?
Beitrag von: Another Stupid Coder am 06. February 2005, 09:22
Also, da es hier ohnehin schon um VESA geht, missbrauche ich gleich einmal diesen Thread: Der wechsel in den VESA-Mode 0x4105 (1024*768*8 + LFB) klappt ausgezeichnet (sowohl mit Bochs, als auch mit meinem PC) Nur wenn ich dann was schönes Zeichnen will, so klappt das nur mit meinem PC, nicht aber mit Bochs O_o Ich mach' das wie mit einem String:

mov edi, [VbeModePhysBasePtr]

mov ecx, ( 1024 * 768 / 4 )

mov eax, 0xFFFFFFFF

rep stosd

Das sollte doch klappen, oder? Und auf meinem echten PC klappts auch (also nur auf einem, weil der 2. zu alt für den Mode ist :D)