Click to See Complete Forum and Search --> : svga low level programming


ales
09-27-2001, 09:35 PM
Hi,
I´m a c programmer, but i´m not used to do a lot of low level programming.

But now I need a super-fast program that "moves" images on the screen. With functions that I can get from libraries I just can´t do that, so, I´m searching info on the svga standar, how it works, how to program a svga, routines, etc.

The program will work on DOS (I know, I know)
so is easy to use low level assembler calls, or just c functions.

hope anybody knows something.
thanks.
bye.

Conrad Song
09-28-2001, 10:24 AM
Originally posted by ales:
Hi,
I´m a c programmer, but i´m not used to do a lot of low level programming.

But now I need a super-fast program that "moves" images on the screen. With functions that I can get from libraries I just can´t do that, so, I´m searching info on the svga standar, how it works, how to program a svga, routines, etc.

The program will work on DOS (I know, I know)
so is easy to use low level assembler calls, or just c functions.

hope anybody knows something.
thanks.
bye.


Yes, and unfortunately, you're going to have a hard time. Every graphics chip pretty much handles Super VGA modes differently from the rest. And one needs API support to work with every video chip.

Before DirectX came along, the standard group at the time was VEGA, who defined a series of bios API routines to program in SVGA mode. You would have to use these.

However, I'm not sure if the VEGA standards are still supported now that DirectX has become so popular. Perhaps someone with better knowledge will speak up.

bryce777
09-28-2001, 08:59 PM
You can write directly into your video memory area through assembly. I have done it before, so know it can be done and isn't too painful. You can probably do the same through C++ at worst having to go to asm to do it. You have two buffers you have access to, so it is easy to do double buffering.

As far as the acual spriting goes, you are on your own as far as coming up with the algorithms goes. Chances are good that you won't be able to improve much on whatever algorithms they used to do it, though.

------------------
system specs:
Voodoo 5 5500 agp
tyan 1834d tiger 133 dual 800eb 133mhz FSB
via chipset 133 via apollo pro (don't make this mistake)
256 MB RAM
2 maxtor 60gig ata100 drives
promise ata100 controller
liteon 52 truex cdrom
Linksys ethernet 10/100
Soundblaster Live! (what's so exciting about it??) value edition
300watt power supply (inwin)
about 7 pounds of fans (I'm not kidding)
Suse 7.1(god gnome is crappy compared to CDE)/win2000 based system

ales
09-28-2001, 10:50 PM
hi, thanks for tour answer.

anyway, I wanna try it. It is just becouse I need all the speed I can get, plus a small size.

bryce777, do you know where I can get tutorials or just some info?

thanks

bryce777
09-29-2001, 01:21 AM
You can look it up on google, or you could look in the DOS programmer's reference manual. It's been years since I did that, but it is definitely possible and not too tough once you know where it is....

You should be able to get at that area of memory, though who knows in 2k you may get a protection error.

Originally posted by ales:
hi, thanks for tour answer.

anyway, I wanna try it. It is just becouse I need all the speed I can get, plus a small size.

bryce777, do you know where I can get tutorials or just some info?

thanks



------------------
system specs:
Voodoo 5 5500 agp
tyan 1834d tiger 133 dual 800eb 133mhz FSB
via chipset 133 via apollo pro (don't make this mistake)
256 MB RAM
2 maxtor 60gig ata100 drives
promise ata100 controller
liteon 52 truex cdrom
Linksys ethernet 10/100
Soundblaster Live! (what's so exciting about it??) value edition
300watt power supply (inwin)
about 7 pounds of fans (I'm not kidding)
Suse 7.1(god gnome is crappy compared to CDE)/win2000 based system