BIOS中断_int86

BIOS interrupt _int86

我正在尝试书中 "Black art of 3d game programming" 中的一些旧代码。我知道它已经过时了,但我开始阅读它,它很有趣。我下载了 OpenWatcom C 编译器并制作了一个新的 DOS 项目,以便甚至可以编译这些旧代码。我已经编译了一段代码,其中设置了 Videomode int13h,然后我能够在屏幕上绘制像素。但这是通过名为 _setvideomode() 的 C 函数完成的。在下面的示例中,videomode 是通过调用中断的 _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);