I have noticed something rather strange messing around in DOSBox with VGA/VESA programming.
Running the VESA BIOS function 01h, and then printing out the entries of the list pointed to by the value at an offset of 14 into the buffer until -1 is reached prints the following entries:
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
The code to do this, in TurboC++ for DOS, is:
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");
Basically, what I don't understand is what a lot of these modes are. Some of them, eg up to 117, I can find documentation for, but for a lot of these, like the 150's and everything past 200, I cannot find any indication of what these modes actually are. Can anyone help me figure this out?
Taken from VGA/VESA videomodes :
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
looks like they where S3 gfx cards related... IIRC They needed special gfx driver under DOS to work unlike standard VGA/VESA cards which runs natively without any drivers needed (unless you wanted VBE extentions like UNIVBE).
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.