我采用NEO在MSDOS6.22下编程,由于有很多画面,需要切换画面。
当切换画面时,需要将原先的画面清除(用背景色清除),感觉从一幅画面切换到另一幅画面,并将新画面画好不是很快,肉眼能够明显感觉不流畅,请问用什么方法解决。     
[此贴子已经被作者于2006-12-8 13:17:45编辑过]
[此贴子已经被作者于2006-12-8 13:17:45编辑过]
我的程序在MSDOS6.22下运行(纯DOS),分辨率为800X600,色深为8。
所有的函数(矩形、直线)都是由画点函数构成。
请问:换页技术是否显示换页呢?如果不是该如何实现呢?
/////////////////////////////////////////////////////////////////////////////////////////////////
//显存换页函数
/////////////////////////////////////////////////////////////////////////////////////////////////
void _Cdecl set_vbe_page(int page)
{
    if (g_cur_vbe_page != page)
    {
        _BX = 0;
        _DX = g_cur_vbe_page = page;
        _AX = 0x4F05;
        __int__(0x10);
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////
//画点函数
/////////////////////////////////////////////////////////////////////////////////////////////////
void _Cdecl putpixel(int x,int y,int color)
{
    long addr;
    int page;
    char far *videoptr = (char far *)0xa0000000L;
    addr = (long)y * 800 + x;
    page = (int)(addr >> 16);
    set_vbe_page(page);
    *(videoptr+(unsigned int)(addr&0xffff))= color;
}
