[英]Unidentifiable video modes listed as supported under DOSBox
我注意到使用 VGA/VESA 編程的 DOSBox 中出現了一些相當奇怪的問題。
運行 VESA BIOS function 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
在 TurboC++ for DOS 中執行此操作的代碼是:
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, ®s, ®s, &sregs);
modes = *(word far**)(buffer + 14);
printf("Modes: ");
for(mptr = modes; *mptr != -1; mptr++){
printf("%02x, ", *mptr);
}
printf("\n");
基本上,我不明白很多這些模式是什么。 其中一些,例如高達 117,我可以找到文檔,但對於其中的很多,例如 150 和超過 200 的所有內容,我找不到任何關於這些模式實際是什么的跡象。 誰能幫我解決這個問題?
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 卡不同,標准 VGA/VESA 卡無需任何驅動程序即可本地運行(除非您想要像 UNIVBE 這樣的 VBE 擴展)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.