我只能说可能你对显卡硬件不了解,具体怎么配置也不是一两句话可以说清楚,我这样给出 JS256图形包 的少量代码,希望对你有所帮助:
初始化硬件
void set_SVGA_mode(int vmode) /*设置SVGA屏幕模式*/
{
int i;
union REGS r;
switch(vmode)
{
case 0x13:
COLS = 320;
ROWS = 200;
break;
case 0X100:
COLS = 640;
ROWS = 400;
break;
case 0X101:
COLS = 640;
ROWS = 480;
break;
case 0X103:
COLS = 800;
ROWS = 600;
break;
case 0X105:
COLS = 1024;
ROWS = 768;
break;
}
r.x.ax=0x4f02;
r.x.bx=vmode;
int86(0x10,&r,&r);
}
这就是SVGA模式对256色下各分辨率的设置,这样设置好后,我们就进入了256色图形模式,那首要的就是我们建立画点函数
void dot(int x, int y, unsigned char color)
{
char page_new_dot1;
page_new_dot1 = (y*(long)COLS+x)/65536l; /*计算显示页*/
if(x > -1 && x < COLS &&
y > -1 && y < ROWS) /*在屏幕范围*/
{
if(x > screen_left-1 && x < screen_right &&
y > screen_top-1 && y < screen_bottom ) /*screen()函数设定的范围*/
{
if(page_new_dot1 != page_old_dot1)
{
selectpage(page_new_dot1);
page_old_dot1 = page_new_dot1;
}
video_buffer[y*COLS+x] = color; /*画点函数,直接将color写入显存, *video_buffer 为指向显存的指针*/
}
}
}
这里,要注意的就是对页面的计算,你必须配置好正确的页面画点的位置才能正确。仔细看看,应该会有所帮助的
[此贴子已经被作者于2006-7-29 19:50:14编辑过]