DOSBox下列出的支持的无法识别的视频模式



我注意到在使用VGA/VESA编程的DOSBox中出现了一些非常奇怪的问题。

运行VESA BIOS功能01h,然后将偏移量为14的值指向的列表条目打印到缓冲区中,直到达到-1为止,打印以下条目:

Modes: 100, 101, 102, 103, 104, 105, 106, 107, 10d, 10e, 10f, 110, 111, 112, 113, 114, 115, 116, 117, 150,
151, 152, 153, 160, 161, 162, 165, 170, 171, 172, 175, 190, 191, 192, 207, 209, 20a, 213, 222, 223, 224, 225

在DOS的TurboC++中,这样做的代码是:

union REGS regs;
struct SREGS sregs;
byte buffer[1024];
word far *modes, far *mptr;
regs.x.ax = 0x4f00;
sregs.es = FP_SEG(buffer);
regs.x.di = FP_OFF(buffer);
int86x(0x10, &regs, &regs, &sregs);
modes = *(word far**)(buffer + 14);
printf("Modes: ");
for(mptr = modes; *mptr != -1; mptr++){
printf("%02x, ", *mptr);
}
printf("n");

基本上,我不明白的是很多模式是什么。其中一些,例如高达117,我可以找到它们的文档,但对于其中许多,比如150和200之后的所有模式,我找不到任何关于这些模式实际是什么的指示。有人能帮我弄清楚吗?

从VGA/VESA视频模式拍摄:

Values for S3 OEM video mode:[18]
201h   640x480x256
202h   800x600x16
203h   800x600x256
204h   1024x768x16
205h   1024x768x256
206h   1280x960x16
207h   1152x864x256 (Diamond Stealth 64)
208h   1280x1024x16
209h   1152x864x32K
20Ah   1152x864x64K (Diamond Stealth 64)
20Bh   1152x864x4G
211h   640x480x64K (Diamond Stealth 24)
211h   640x400x4G  (Diamond Stealth64 Video / Stealth64 Graphics)
212h   640x480x16M (Diamond Stealth 24)
301h   640x480x32K

看起来它们与S3 gfx卡相关。。。IIRC他们需要在DOS下使用特殊的gfx驱动程序才能工作,而不像标准的VGA/VESA卡那样在本机运行而不需要任何驱动程序(除非你想要像UNIVBE这样的VBE扩展(。

最新更新