Autor Thema: VESA .. klar doch wie?  (Gelesen 7824 mal)

ODIN

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« 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

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #1 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?
----------------------
Redakteur bei LowLevel

ODIN

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« Antwort #2 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

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #3 am: 31. January 2005, 14:03 »
Hab ich dir ja gestern im ICQ erklärt. Oder sind da noch Fragen offen?
----------------------
Redakteur bei LowLevel

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #4 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.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

BigOlly

  • Beiträge: 88
    • Profil anzeigen
Gespeichert
« Antwort #5 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:
====================================================
Zitat: "Es ist schwierig zu antworten, wenn man die Frage nicht versteht."
(würde mich ja mal interessieren ob jemand weiß woher dieser Satz stammt...)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #6 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?
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,...

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #7 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

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #8 am: 04. February 2005, 18:22 »
dazu ist ja der v86 da, der ist extra dafür geschaffen worden
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

BigOlly

  • Beiträge: 88
    • Profil anzeigen
Gespeichert
« Antwort #9 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:
====================================================
Zitat: "Es ist schwierig zu antworten, wenn man die Frage nicht versteht."
(würde mich ja mal interessieren ob jemand weiß woher dieser Satz stammt...)

BigOlly

  • Beiträge: 88
    • Profil anzeigen
Gespeichert
« Antwort #10 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>
====================================================
Zitat: "Es ist schwierig zu antworten, wenn man die Frage nicht versteht."
(würde mich ja mal interessieren ob jemand weiß woher dieser Satz stammt...)

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #11 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)

 

Einloggen