Autor Thema: VGA modus setzen  (Gelesen 17721 mal)

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« am: 06. June 2005, 20:44 »
hi leutz,
hab da folgendes problem:
Ich befinde mich im Protected Mode, Textmode, und möchte den VGA Mode X (320x240) aktivieren. Hab mir schon da was gedacht. Ich schalte den Modus einfach über die VGA register an. und genau da hörts schon auf... wie mach ich das??

Ich hoffe da kann mir jemand helfen, danke schonmal...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #1 am: 06. June 2005, 20:47 »
Hier verlässt sich sogut wie jeder darauf betreffende Modi bereits im Bootloader(also noch Real-Mode durch BIOS) zu setzen, was afaik auch die einfachste Methode ist.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #2 am: 07. June 2005, 12:35 »
Oder gleich VESA auf Standartmodi wie 1024x768 oder 800x600 setzen, das erspart mehrere Treiber und so weiter. So mache ich es. Passt alles in den bootloader. Hab PutPixel als einziges, was auf der Ebene arbeitet und das geht mit den modi 1024x768 und 800x600 (zuerst versucht er den ersten zu setzen, danach den zweiten, wenn der erste net geht) mit der bitzahl 24 und 32. Muss mich jetzt um nichts mehr kümmern ;)
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 #3 am: 07. June 2005, 13:38 »
Zitat von: joachim_neu
Hab PutPixel als einziges, was auf der Ebene arbeitet
Wenn du also deinen Vesatreiber schon im Bootloader hast und dort nur eine Funktion definierst, wirst du bei spezielleren Funktionen ein bisschen Ärger kriegen. Viele Karten können z.B. Linien oder Rechtecke schon hardwareseitig zeichnen.
Ausserdem gibt es auch noch einige Karten mit nicht vorhandenem/zu altem oder fehlerhaften VESA-Bios. Betrifft aber eher etwas ältere Rechner (meine TNT2 kann manche Vesa2-Funktionen nicht korrekt ausfuehren und schmiert ab, wenn ich kein Vesa-TSR unter DOS geladen habe - aber sie hat ein Vesa2-Bios!)

Im Protected Mode ist es vielleicht ein bisschen umständlich, aber wegen den VGA-Registern schaust du in eine gute Spezifikation. Oder was einfacher ist, das System fuer Auflösungsänderungen einfach in den Real Mode schalten, mittels BIOS (oder Treiber) die Auflösung setzen und in den PM zuruecksetzen.

Svenska

GhostCoder

  • Beiträge: 187
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 07. June 2005, 14:03 »
Hi,

habe auch mal versucht einen "richtigen" VGA Treiber im PMode zu schreiben, das Problem ist nur, das die Informationen dazu ziemlich rar sind und man afaik auch seine GraKa zerschießen kann.

Die Tauron VGA Utils sind da schon recht hilfreich und die alten SkyOS Sourcen haben glaube ich auch einen VGA Treiber im PMode.

Gruß GhostCoder
A man, a legend!

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 07. June 2005, 15:30 »
Hi,
wenn du wirklich einen VGA Treiber schreiben willst, musst du dir im klaren sein, das du damit höchstens 640x480 mit 16 Farben oder 320x200 (oder 240) mit 256 Farben hinbekommen kannst. Wenn das aber kein Problem ist schlag ich dir vor dir den Source Code des VGABIOS 0.4c (oder so, liegt bei bochs dabei) anzuschauen, da sind die Register und die nötigen Werte drin , um den Modus zu switchen.
Und ich glaube nicht das mit VGA Register-zu-müllen die GraKa klein bekommt, unter Umständen aber vielleicht nen alten Rohrenmonitor (wenn man die Wiederholfrequenz lustig setzt), habe damit aber keine Erfahrung :D.
Agieren statt Konsumieren!

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 07. June 2005, 16:28 »
das man mit den VGA register die graka zerschiessen
kann ist im prinzip schon möglich, aber nur bei den älteren
oder wenn man da total dämliche werte einträgt.
hat jemand vielleicht noch source(außer VGABIOS 0.04c) den er mir posten kann.
so und ich möchte nich im bootloader in den VGA modus schalten.
Dieser ist nämlich GRUB...
Also kann keine BIOS-Interrupts verwenden...


Nein, falls einer auf die idee kommt,
ich hab auch nich vor mir n Virtual-x86-hanlder zu coden
um die bios-interrupts zu handlen...
vieeel zu umständlich...

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 07. June 2005, 16:30 »
ach und @n3Ro ist nich schlimm mit den farben...
will ja keine suuper gute GUI coden...
ach und danke an alle die mir bis jetze
geholfen haben...  :D

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 07. June 2005, 16:31 »
Es gibt für GRUB einen VBE-Patch, mit dem es möglich ist, von GRUB Vesa aktivieren zu lassen. Ein solcher GRUB ist z.B. im Comm-OS enthalten.

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 07. June 2005, 16:43 »
kuuuuuuhl! abba funzt der auch mit der floppy version von GRUB??
abba möchte trotzdem ersmal nur n VGA/SVGA treiber...

GhostCoder

  • Beiträge: 187
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 07. June 2005, 17:11 »
[url]http://osdever.net/documents/vga_ports.txt?the_id=26{/url]

Wie gesagt, richtig gute Informationen habe ich auch nie gefunden...

Gruß GhostCoder
A man, a legend!

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 07. June 2005, 17:13 »
Die Sourcen von dem VGA BIOS: http://savannah.gnu.org/download/vgabios/vgabios-0.4c.tgz
Viel Spaß damit ;-)
Agieren statt Konsumieren!

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 07. June 2005, 17:20 »
joar, is abba auch n shice... na ja danke ersmal werd' ma schauen wie ich des hinbiege.. lol  :?

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 08. June 2005, 13:30 »
Das PC-Hardwarebuch hat afaik einen ziemlich ausfuehrlichen Teil zu den VGA-Registern. Auch EGA und CGA (sowie Hercules) werden dort beschrieben... also kann ich fuer solche Sachen nur empfehlen :)

Viel Erfolg (und ich finde es erstaunlich, dass sich jemand die Muehe macht, noch einen Standardvga-Treiber zu coden... grosses Lob!)

Svenska

__OS_coder

  • Beiträge: 69
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 09. June 2005, 15:26 »
danke für des lob...

Ich mach des erstens, weil ich nunmal im PMode bin
und deswegen nich über INTs in einen VGA modus schalten kann,
und damit ich des lerne...
des hilft mir später vielleicht mal irgendwann

 

Einloggen