Page 1 of 1
VGA, VBE, and VESA - what are they?
Posted: Tue Dec 11, 2007 4:11 pm
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.
Posted: Tue Dec 11, 2007 4:38 pm
by Brynet-Inc
Posted: Tue Dec 11, 2007 5:23 pm
by Pyrofan1
waist everyones time asking for defintions?
waist?
Posted: Tue Dec 11, 2007 5:50 pm
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.
Posted: Tue Dec 11, 2007 6:23 pm
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
Posted: Wed Dec 12, 2007 5:48 am
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
Standard VGA has a maximum of 720 horizontal pixels. (= no 800x600).
Posted: Wed Dec 12, 2007 5:49 am
by JamesM
* JamesM readies his popcorn for the upcoming flamefest.
Posted: Wed Dec 12, 2007 8:02 am
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
Posted: Wed Dec 12, 2007 6:29 pm
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..
Posted: Wed Dec 12, 2007 6:32 pm
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.
Posted: Thu Dec 13, 2007 4:47 am
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
Posted: Thu Dec 13, 2007 5:39 pm
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.