|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
Get inside! Sample the range of functionality easily built with JMSL Library for Time Series Data Analysis, Heat Maps, Portfolio Optimization, Monte Carlo Simulation, Stock Price Charting and more. Download Now! |
|
#1
|
|||
|
|||
|
[Assembly] VESA 2.0 in Assembly?
Hello. As some of you may recall, I was that newb who wanted to start out programming in assembly. I still do. Right now I'm on to graphics.
I've heard that VESA is basically a programming language that makes it simple to operate a graphics card. Unfortunately, looking up "Official VESA 2.0 specifications" on Google gets me second to nowhere. The main reason I'm interested is because From what I know, most decent graphics cards have VESA hardwired in so you don't have to install VESA software on your computer to be able to use it. This is what I'm interested in. How do you send the VESA information to the graphics card? I've heard that a completely alternate option to VESA would be using interrupt 10h, but there is surprisingly little information on the net about assembly programming. From what I know, interrupt 10h limits you to 16 colors or something like that... Needless to say, I could live with 16 colors, but I would need to move out of that at some point. Hopefully before I get into it. I think a good starting point would be to find these mysterious VESA 2.0 specifications. I went to the VESA site, but I didn't have Java enabled and hopefully you don't have to enable Java just so that you can get further than the front page. That would just be extremely lame. And I stand on that last statement as a customer, not a programmer. Of course, with a little more help from Google, I might actually be able to find something useful, rendering this whole topic useless. Then why am I posting this topic? Because of my internet connection. I have CABLE and I can only get on for scarcely a few minutes every hour. Either someone's trying to hack me or my modem's croaking, or their servers are croaking. But whatever the case, my internet connection is down about 90% of the time and even Google is a surprising feat for me. So could I have some help with this? EDIT: I found this page at http://everything2.com/index.pl?node_id=1024492 That explains quite a lot about interrupt 10h. So now my question is, how much more useful is VESA than interrupt 10h? Okay, now that I just read more that seemed like a relatively stupid question. Okay, so what about VESA and how do I program it!? Better yet, how about I just send the right codes to my graphics card and not worry about it? This is horrible... ![]() Much appreciated, keantoken |
|
#2
|
|||
|
|||
|
I think this might be what you're looking for: http://en.wikipedia.org/wiki/VESA_BIOS_Extensions
See especially the links at the bottom. |
|
#3
|
|||
|
|||
|
Ah! Thanks!
I would have never thought about Wikipedia... Figures. Them and Google may as well be in control of the world right now. Thanks! - keantoken |
|
#4
|
||||
|
||||
|
Well first of all VESA is just a BIOS extension. Because there are hundreds of different graphics cards which all need different inputs to do the same thing, VESA have set standards so that your code will work on all PC's with a VESA complying BIOS (99.9% of pc's).
By initializing a bunch of stuff and calling interrupt 10h with function 4Fh with the right parameters you can change the video mode and have access to the standard VESA SVGA modes which is very useful since you can access resolutions up to 1280x1024 in up to 32bit colour by doing so . It's a bit more complicated than you think however, it's not like the standard VGA BIOS modes where you just call an interrupt to write a pixel with your colour attribute and x,y coordinates. You have to learn to use banks, windowing and linear frame buffers.I've yet to use it myself though, I know there's example code in the source for DexOs (google it) for modes with the VESA BIOS extension and outputting through the graphics controller. Other than that theres a guide in the link below, code examples aren't very good and often repesented in pseudo-code (not an actual language) but it should give you an idea of where to start. You can also get some documentation from the organisation itself at www.vesa.org and get some documentation. Theres a guide here: http://freespace.virgin.net/hugo.el...hics/x_svga.htm it's old (version 1.2, think there a VESA version 3.0 now) and in 16bit code but it should make a good start. I'll let you know if i get any good code examples. Last edited by calpol2004 : July 30th, 2007 at 04:18 PM. |
|
#5
|
|||
|
|||
|
Ah, thanks. That'll be useful.
And forget code samples, I'll write my own! I write my own code, even if it is 'reinventing the wheel', because sometimes you have to 'tweak' the old wheels so they'll work right. The major joy I'm finding is that if I don't use pre-maid include files, I can make my own network of includes and program everything as I want, make my own system of transferring variables an such, and find tactical advantages in my own system and build upon them. It's like a strategy game! But whatever. This might come in handy if I have problems reading the VBE standards. Thanks, - keantoken |
![]() |
| Viewing: Dev Shed Forums > Programming Languages - More > Other Programming Languages > [Assembly] VESA 2.0 in Assembly? |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|