Deal all,
I just tested int 0x10 BIOS interrupt to draw some pictures.
However, when I coded the follow to enter 640X480 video mode, it seems that the 
actual video mode is 640X100,
I draw a rectangle with range(0,0, 640, 480) to verify, and it resulted in 
range(0,0, 640,100), about a quarter square of a rectangle.


And I noticed that 320X200 video mode is OK, and 320X200 == 640X100, is that 
mean my machine can hand only 64000 pixels?
Can anyone tell me why?


///////////////////////////////////////////////////////////////////////////////////////////////////////
void setvga()     
{
__asm__ __volatile__ ( REAL_CODE ( "movw $0x4f02, %%ax\n\t"  //ax=0x0012 here 
seem stay in the text mode
"movw $0x0101, %%bx\n\t"
"int $0x10\n\t" )::);
}


void putpixel(int x,int y,int c)   
{
    if(vediobuf == NULL)
{
   vediobuf = (unsigned char*)phys_to_user(0xa0000); //physic address of 
graphic mode
}
    *(vediobuf+x+640*y)=c;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////






yours,
soforth
_______________________________________________
gPXE mailing list
gPXE@etherboot.org
http://etherboot.org/mailman/listinfo/gpxe

Reply via email to