Archived

This topic is now archived and is closed to further replies.

Irrelevant

wayyy low level video stuff

Recommended Posts

what things are there in common with video cards? i''ve skimmed over stuff like bios intterupts to set video modes (int(0x13)) or something so i guess it''s common across all vga video hardware. Is there some list somewhere and information about doing low-as-you-can-go graphics programming? and if this is the case (the commonality of low level graphics stuff), is there some universal library (portable) that i can use to tell the bios stuff like that? and one more, is assembly common across all machines? is there some general assembly language that is understood by all (or at least most) systems? for example IBM type machines. i''d guess there are different ones for mac and sun systems (guess=key word). it''s late at night and my eyes are getting all crusty so i hope i''ve made myself somewhat clear. in summary: - are there universal standards for the most commonly used video card(s) - is there a way of having a common language and interface for the system(s) on which these card(s) are installed - do i need to know assembler and write my own stuff for this sorry for sounding like a doofus and thanks for any information/links/book recommendations and no thanks for any scoldings/ego trips/flamings ok i will continue my quest in google. thank you.

Share this post


Link to post
Share on other sites
Video cards are anything but standard. There is almost NO common denominator. That's why God created drivers.

If you want to play around with low-level video card stuff that'll work on more than one model of video card, look up VESA. It isn't really used anymore and it's kind of outdated, but it's a start.

EDIT: oh, and all x86 machines (the ones that run Windows) use x86 assembler.


Don't listen to me. I've had too much coffee.

[edited by - sneftel on October 18, 2002 12:37:56 AM]

Share this post


Link to post
Share on other sites
An interupt just calls the operating system. It doesn't actually do anything with the hardware. If you want to access hardware under Windows then you have to write a device driver. Well, you can also modify the executable for Windows. You have to be in protected mode to access hardware and the only applications Windows lets run in protected mode are device drivers. Device driver is somewhat misleading because it is really any library that needs to execute privledged instructions or access protected memory.

Make that to access hardware directly since the Windows API lets you access hardware indirectly.

[edited by - LilBudyWizer on October 20, 2002 2:34:33 PM]

Share this post


Link to post
Share on other sites
Why don''t you just use Allegro or SDL?

I know it''s not really low-level but close enough without going trough the trouble with the device driver stuff.

Share this post


Link to post
Share on other sites
LilBudyWizer: ehm.. everything in windows.. since NT, 2000 and XP runs in protected mode (your programs on win 95 and 98 too, but some rutines use thunking (switching to virtual realmode to execute some of the function)).. device drivers are just protected mode programs which can mess with hardware interrupts and probably also share its memory space with the kernel.. im not complety sure it has been I while since I read about it.. do a google search for real - and protected mode.. and probably also dos extenders this should give you an idea about what protected mode is.. and to irrelevant:

Believe me, you want to benefit from hardware abstraction.. otherwise look up VESA as someone said.. but many cards does not implement vesa in hardware and therefore there isn''t much "down to the metal" about it..
Common language for graphics cards.. well yeah direct x and OpenGL for example.. Assembly or machine code is different with each processor, but all IBM types machine should understand 8086 assembly (but not in protected mode) so kindda :-)
No you don''t need to know assembler for using a universel language for graphics cards (a graphic api).. c++, c, VB etc will suffer :-)

Share this post


Link to post
Share on other sites