我正在尝试从“ 3d游戏编程的妖术”一书中获取一些旧代码。我知道它已经过时了,但是我开始阅读它,它既有趣又有趣。我下载了OpenWatcom C编译器,并制作了一个新的DOS项目,以便甚至编译此旧代码。我已经在设置Videomode int13h的代码上进行了编译,然后能够在屏幕上绘制像素。但这是通过名为_setvideomode()的C函数完成的。在以下示例中,通过_int86函数设置了视频模式,该函数进行中断调用,并且原型应位于bios.h中,但是OpenWatcom表示:没有为函数_int86找到原型。我现在陷入困境,不知道该怎么做;)这是代码:

void setGraphxMode(int mode){
    union REGS inregs,outregs;

    inregs.h.ah = 0;
    inregs.h.al = (unsigned char)mode;

    _int86(0x10,&inregs,&outregs);
}

int main(){

    return 0;
}


对此,我们将不胜感激,是的,我知道:目前,图形是通过DirectX或OpenGL完成的。这只是出于学习目的!谢谢 :)

最佳答案

在OpenWatcom下,您要查找的电话是int386,我相信:

int386(0x10, &inregs, &outregs);

关于c - BIOS中断_int86,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28388775/

10-10 20:56