Testing on QEMU, here are the video options from OpenWatcom's _setvideomode:
> Mode Type Size Colors Adapter
> _MAXRESMODE (graphics mode with highest resolution)
> _MAXCOLORMODE (graphics mode with most colors)
> _DEFAULTMODE (restores screen to original mode)
> _TEXTBW40 M,T 40x25 16 MDPA,HGC,VGA,SVGA
> _TEXTC40 C,T 40x25 16 CGA,EGA,MCGA,VGA,SVGA
> _TEXTBW80 M,T 80x25 16 MDPA,HGC,VGA,SVGA
> _TEXTC80 C,T 80x25 16 CGA,EGA,MCGA,VGA,SVGA
> _MRES4COLOR C,G 320x200 4 CGA,EGA,MCGA,VGA,SVGA
> _MRESNOCOLOR C,G 320x200 4 CGA,EGA,MCGA,VGA,SVGA
> _HRESBW C,G 640x200 2 CGA,EGA,MCGA,VGA,SVGA
> _TEXTMONO M,T 80x25 16 MDPA,HGC,VGA,SVGA
> _HERCMONO M,G 720x350 2 HGC
> _MRES16COLOR C,G 320x200 16 EGA,VGA,SVGA
> _HRES16COLOR C,G 640x200 16 EGA,VGA,SVGA
> _ERESNOCOLOR M,G 640x350 4 EGA,VGA,SVGA
> _ERESCOLOR C,G 640x350 4/16 EGA,VGA,SVGA
> _VRES2COLOR C,G 640x480 2 MCGA,VGA,SVGA
> _VRES16COLOR C,G 640x480 16 VGA,SVGA
> _MRES256COLOR C,G 320x200 256 MCGA,VGA,SVGA
> _URES256COLOR C,G 640x400 256 SVGA
> _VRES256COLOR C,G 640x480 256 SVGA
> _SVRES16COLOR C,G 800x600 16 SVGA
> _SVRES256COLOR C,G 800x600 256 SVGA
> _XRES16COLOR C,G 1024x768 16 SVGA
> _XRES256COLOR C,G 1024x768 256 SVGA
If I write a sample C program (below) to test the video mode, this is
the result I get for each of _MAXCOLORMODE and _MAXRESMODE for both
'cirrus' and 'std' VGA adapters in QEMU:
cirrus:
max color: 320 x 200 @ 256
max res: 640 x 480 @ 16
*However, I can run another program to test the XRES modes, and I can
set (and use) 256-color mode, but cannot set XRES 16-color mode. [I'll
share the XRES test program in a followup email]
std:
max color: 320 x 200 @ 256
max res: 640 x 480 @ 16
*If I run the other program to test XRES modes, I can set both
256-color mode and 16-color mode .. but the 16-color mode doesn't
actually work.
#include <stdio.h>
#include <graph.h>
int main()
{
struct videoconfig mxcolor, mxres;
/* try highest colors */
if (_setvideomode(_MAXCOLORMODE) == 0) {
puts("cannot set max color video mode");
return 1;
}
_getvideoconfig(&mxcolor);
_setvideomode(_DEFAULTMODE);
/* try highest res */
if (_setvideomode(_MAXRESMODE) == 0) {
puts("cannot set max res video mode");
return 1;
}
_getvideoconfig(&mxres);
_setvideomode(_DEFAULTMODE);
/* print results */
printf("max color: %d x %d @ %d\n",
mxcolor.numxpixels, mxcolor.numypixels, mxcolor.numcolors);
printf("max res: %d x %d @ %d\n",
mxres.numxpixels, mxres.numypixels, mxres.numcolors);
return 0;
}
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel