Other Programming Languages
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming Languages - MoreOther Programming Languages

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
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  
Old June 25th, 2007, 05:37 PM
keantoken keantoken is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Apr 2007
Location: devshed, datarealms, ngemu, kubuntuforums, here, there, and wherever my heart throws me.
Posts: 12 keantoken User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 58 m
Reputation Power: 0
[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

Reply With Quote
  #2  
Old June 27th, 2007, 09:10 PM
Lux Perpetua Lux Perpetua is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: Feb 2004
Location: San Francisco Bay
Posts: 1,418 Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level)Lux Perpetua User rank is Major (30000 - 40000 Reputation Level) 
Time spent in forums: 3 Weeks 4 Days 23 h 47 m 27 sec
Reputation Power: 334
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.

Reply With Quote
  #3  
Old June 28th, 2007, 02:31 AM
keantoken keantoken is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Apr 2007
Location: devshed, datarealms, ngemu, kubuntuforums, here, there, and wherever my heart throws me.
Posts: 12 keantoken User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 58 m
Reputation Power: 0
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

Reply With Quote
  #4  
Old July 30th, 2007, 01:46 PM
calpol2004's Avatar
calpol2004 calpol2004 is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Sep 2004
Posts: 249 calpol2004 User rank is Sergeant Major (2000 - 5000 Reputation Level)calpol2004 User rank is Sergeant Major (2000 - 5000 Reputation Level)calpol2004 User rank is Sergeant Major (2000 - 5000 Reputation Level)calpol2004 User rank is Sergeant Major (2000 - 5000 Reputation Level)calpol2004 User rank is Sergeant Major (2000 - 5000 Reputation Level)calpol2004 User rank is Sergeant Major (2000 - 5000 Reputation Level) 
Time spent in forums: 5 Days 9 h 40 m 44 sec
Reputation Power: 48
Send a message via MSN to calpol2004
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.

Reply With Quote
  #5  
Old July 30th, 2007, 11:48 PM
keantoken keantoken is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Apr 2007
Location: devshed, datarealms, ngemu, kubuntuforums, here, there, and wherever my heart throws me.
Posts: 12 keantoken User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 58 m
Reputation Power: 0
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

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming Languages - MoreOther Programming Languages > [Assembly] VESA 2.0 in Assembly?


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 4 hosted by Hostway