Link to home
Start Free TrialLog in
Avatar of Cypher19
Cypher19

asked on

2 page SVGA256.bgi?

I'm trying to develop a program that runs in 640x480x256, and managed to find a SVGA256.bgi driver by Jonathan Hargreaves (?)

Anyways, one flaw I found with the driver was that while it CAN do two pages, the 2nd page, when displayed, starts at about location 385,400, and wraps around the right side, and the top and bottom. For example, one test I have has a blue pac-man opening and closing his mouth. When using two pages the result looks sort of like this:
 ______
|......|
|..C...|
|......|
|____O_|

Where C is when the mouth is open (on page 1) and O is a closed mouth (page 2).

If anyone could offer any help on how to make the 2nd page work properly, or offer a better driver, any help would be appreciated.
Avatar of Cypher19
Cypher19

ASKER

Geez, that didn't turn out well...

let's try that again.

 ______
|_____|
|__C__|
|_____|
|___O_|
Yeah, I asked about using monospace in EE and the admin answered, it is on top isues but don't hold your breath waiting for it :)
I don't think there's many using SVGA driver any more and if the driver has bug I think you have problems finding anyone who can fix it or anyone who even have the sourcecode for it anymore. I may be wrong in this but that's my guess.

Chances are that you just have to live with any bugs that there may be.

In any case, what system or platform are you talking about here. I would guess PC but you mention an address 385400 which doesn't ring any bells with me.

Graphics memory is starting from address 0xa0000 on a PC and that would be address 655360 in decimal, very much higher than 385400 (and I don't think anyone in their right mind would use decimal numbers to refer to memory addresses anyway) so that leaves the alternative that 385400 is a hex address in which case it is way beyond where any PC using SVGA store their graphics data.

So chances are you are not running on a PC and in that case it really would help if you could tell which system you are on. If you are on a PC I would prefer you somehow reoriented your memory addresses so that they get in the range 0xa0000.. 0xb0000 which is what is available to graphics data. How you get the value 385400 from is beyond me if it is decimal it corresopnd to 0x5e178 and I still get no bells ringing.

Secondly, if you're running on a PC running old MS-DOS 6.22 or earlier then you probably should continue trying to dig up a graphics driver for SVGA but if you're on more modern machines you probably should take a look into DirectX. It might be what you need.

Alf
No, the memory address itself isn't at 385400, but it's just that when the 1st page is displayed while there is content on the 2nd, the second page is visible, and its origin is at (as deduced from experimentation) the coordinate (384, 412).

Btw, I'm using Borland's C++ 4.52, and if possible would prefer using a bgi graphics driver, since it's for a school project which requires the use of graphics.h, so DirectX (even if I DID have the SDK) is out of the question.
ASKER CERTIFIED SOLUTION
Avatar of Salte
Salte

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial