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, e.g. 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?