Mail Archives: djgpp/1994/04/06/11:13:11
Hi,
I am currently porting a VGA graphics routine (vgl) to DJGPP. The majority of
the routines are in assembler and I have been able to port them to GAS
relatively easily. Some of the minor routines like setting VGA mode and
setting colors I have made into C routines and used INT86().
I am having a problem with one of the int 0x10 functions. It is function
0x1012 which sets the entire or portion of the color palette. The registers
it uses are :
_AX = 0x1012
_BX = Starting color index (say 0)
_CX = Number colors (say 256)
_ES:_DX points to bufer that holds the r,g,b values for each color.
I was reading the info on Int86 and it said that GO32 would know how to
convert from virtual pointers to segment:offset values. It said to load
the extended register (in this case _EDX) with the actual pointer (say from a
malloc). It also said that the ES register does not need to be filled in.
I did this and it didn't work :( Anyone know what I could be doing wrong?
In the meantime I am using function 0x1010 which sets an individual color
but it is painfully slow for setting up all 256 colors.
By the way, the reason I am porting VGL is because I didn't see anything out
there for DJGPP. I saw LIBGRX but it wasn't fast enough for what I need. Is
there anything else out there that is fast? I have the majority of VGL
routines ported. If there is demand I will put them out for public consumption
once I get the original authors blessing.
Thanks for any help,
Mark Wyman
- Raw text -