VGA, VBE, and VESA - what are they?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
ubergeek
Posts: 23
Joined: Thu Aug 09, 2007 5:26 am

VGA, VBE, and VESA - what are they?

Post by ubergeek »

All right, so I think I'm going to do the gui thing. (VGA is out, because of its low quality only 640x480? Who wants that? I looked on the wiki, which wasn't very helpful.)

1. What is VESA?
2. What is VBE?
3. How do I set up the one I want to use if I'm using GRUB as a bootloader?

Thanks.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Post by Brynet-Inc »

Are you seriously going to waist everyones time asking for defintions? :?

http://en.wikipedia.org/wiki/VESA_BIOS_Extensions
http://en.wikipedia.org/wiki/VESA
http://www.google.ca/

Have fun.. :wink:
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
Pyrofan1
Member
Member
Posts: 234
Joined: Sun Apr 29, 2007 1:13 am

Post by Pyrofan1 »

waist everyones time asking for defintions?
waist?
User avatar
bewing
Member
Member
Posts: 1401
Joined: Wed Feb 07, 2007 1:45 pm
Location: Eugene, OR, US

Post by bewing »

Well, Brynet, I suspect he meant something more along the lines of "are either of them irrelevant to a typical OS design? Because I don't have an infinite amount of time or brainspace to devote to reading definitions/specs of irrelevant crap, while I'm trying to write an OS."

And, as I've argued with Combuster et al., before, we need to get more of this definition stuff into some better order in our wiki -- with proper links to more in-depth wiki articles.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Post by Combuster »

Well, Brynet, I suspect he meant something more along the lines of "are either of them irrelevant to a typical OS design? Because I don't have an infinite amount of time or brainspace to devote to reading definitions/specs of irrelevant crap, while I'm trying to write an OS."
If that was indeed the purpose of the question, why wouldn't the OP just skip to the grub documentation and read up on the multiboot header.

@ubergeek: would you please post meaningful questions instead of the ones that can be satisfied with a simple google query? And btw, a VGA can do 800x600 :wink:
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Craze Frog
Member
Member
Posts: 368
Joined: Sun Sep 23, 2007 4:52 am

Post by Craze Frog »

Combuster wrote:@ubergeek: would you please post meaningful questions instead of the ones that can be satisfied with a simple google query? And btw, a VGA can do 800x600 :wink:
Standard VGA has a maximum of 720 horizontal pixels. (= no 800x600).
User avatar
JamesM
Member
Member
Posts: 2935
Joined: Tue Jul 10, 2007 5:27 am
Location: York, United Kingdom
Contact:

Post by JamesM »

* JamesM readies his popcorn for the upcoming flamefest.
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Post by jal »

Craze Frog wrote:Standard VGA has a maximum of 720 horizontal pixels. (= no 800x600).
Yes, but most (if not all) SVGA cards can get to 800x600 by manipulating standard VGA registers only, iirc.


JAL
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

jal wrote:
Craze Frog wrote:Standard VGA has a maximum of 720 horizontal pixels. (= no 800x600).
Yes, but most (if not all) SVGA cards can get to 800x600 by manipulating standard VGA registers only, iirc.
Actually shouldn't be a problem on standard VGA either. You could even go much higher? But the problem is that when the fastest clock you have is around 28MHz, your refresh-rate becomes such a joke, that it might be fun trying to convince monitors into drawing it...

Anyway, I just read a fun article about getting 640x400x256 colors out of standard VGA (not sure about the lines, but horizontally 640 anyway). Since getting 256 colors happens to involve halving horizontal resolution, that's really configured as 1280x400. The catch is, the thing was targeting televisions, which supposedly wouldn't mind the low clock rate. There was also some messy stuff to get it do interleaving as well.. :P
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
ubergeek
Posts: 23
Joined: Thu Aug 09, 2007 5:26 am

Post by ubergeek »

sorry for the stupid question, I searched the wiki for VBE, but got nothing. If I had known what it stood for I would have found that page. :oops:
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Post by jal »

mystran wrote:Anyway, I just read a fun article about getting 640x400x256 colors out of standard VGA (not sure about the lines, but horizontally 640 anyway).
The 400 seems plausible. I vaguely recall 480 should also be possible, but that would require more RAM space than available (in chained mode, 640x400 will need 64000 bytes, but 640x480 would 76800, and that's more than the 64K that's addressable.
There was also some messy stuff to get it do interleaving as well.. :P
Interleaving on the VGA? You sure you don't mean the chained mode?


JAL
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Post by Combuster »

I think what they meant is that somebody abused Allegro-style triple-buffering (syncing the PIT to the vertical retrace) and swap the drawing offset from there. If you have set the virtual width to 1280 as well it will end up sending the odd lines in the first frame and the even ones in the next frame while memory still appears contiguous.

I haven't found any documented limit on the VGA's cycle counters so I would have to assume its a power of two, with the size the same as the register's. 720 is highly unplausible since it would mean either that there was a builtin comparator for such a number, or the register size would have fractions of a bit. 1024 would be more likely (about the horizontal counter value used in 800x600) and 2048 apparently is as well (for the 640 pixels in 256 colors)

VGAs support 320x400 pretty well (just clear the doublescanning bit) so 640x400 interlaced would still have a vsync frequency of some 60Hz

640x480 would require a bit of cheating to update the top of video memory halfway during the drawing cycle (and then again during retrace), but yes it's theoretically possible.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Post Reply