mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-29 20:54:13 +01:00
VESA BIOS support update in syscons.
- Accept generic video mode names: 80x25, 80x30, etc. Specific video mode names, VGA_80x25, VESA_132x25, are still accpeted too. - Update the man page accordingly.
This commit is contained in:
parent
95bafc8f5a
commit
cb1d2924c4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=39592
@ -11,7 +11,7 @@
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" @(#)vidcontrol.1
|
||||
.\" $Id: vidcontrol.1,v 1.12 1997/10/27 07:52:08 charnier Exp $
|
||||
.\" $Id: vidcontrol.1,v 1.13 1998/09/15 18:16:39 sos Exp $
|
||||
.\"
|
||||
.Dd May 22, 1994
|
||||
.Dt VIDCONTROL 1
|
||||
@ -45,20 +45,39 @@ such as video mode, colors, cursors, scrnmaps, font and screensaver timeout.
|
||||
The following command line options are supported:
|
||||
.Bl -tag -width indent
|
||||
.It mode
|
||||
Select a new video mode. The modes currently supported are:
|
||||
Select a new video mode. The modes currently recognized are:
|
||||
.Ar 40x25 ,
|
||||
.Ar 80x25 ,
|
||||
.Ar 80x30 ,
|
||||
.Ar 80x43 ,
|
||||
.Ar 80x50 ,
|
||||
.Ar 80x60 ,
|
||||
.Ar 132x25 ,
|
||||
.Ar 132x30 ,
|
||||
.Ar 132x43 ,
|
||||
.Ar 132x50 ,
|
||||
.Ar 132x60 ,
|
||||
.Ar VGA_40x25 ,
|
||||
.Ar VGA_80x25 ,
|
||||
.Ar VGA_80x30 ,
|
||||
.Ar VGA_80x50 ,
|
||||
.Ar VGA_80x60 ,
|
||||
.Ar EGA_80x25 ,
|
||||
.Ar EGA_80x43 .
|
||||
On some laptops the modes
|
||||
.Ar VGA_80x30
|
||||
and
|
||||
.Ar VGA_80x60
|
||||
can be used.
|
||||
.Ar EGA_80x43 ,
|
||||
.Ar VESA_132x25 ,
|
||||
.Ar VESA_132x30 ,
|
||||
.Ar VESA_132x43 ,
|
||||
.Ar VESA_132x50 ,
|
||||
.Ar VESA_132x60 .
|
||||
The graphic mode
|
||||
.Ar VGA_320x200
|
||||
and
|
||||
.Ar VESA_800x600
|
||||
can also be chosen.
|
||||
Note that not all modes listed above may be supported by the video
|
||||
hardware, and that the VESA BIOS support must be linked to the kernel
|
||||
or loaded as a LKM if you wish to use VESA video modes or
|
||||
132 column modes.
|
||||
.It fgcol Op bgcol
|
||||
Change colors when displaying text. Specify the foreground color
|
||||
(e.g. "vidcontrol white"), or both a foreground & background color
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
#ifndef lint
|
||||
static const char rcsid[] =
|
||||
"$Id: vidcontrol.c,v 1.20 1998/09/15 18:16:39 sos Exp $";
|
||||
"$Id: vidcontrol.c,v 1.21 1998/09/16 13:55:26 abial Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <ctype.h>
|
||||
@ -258,37 +258,47 @@ set_cursor_type(char *appearence)
|
||||
void
|
||||
video_mode(int argc, char **argv, int *index)
|
||||
{
|
||||
static struct {
|
||||
char *name;
|
||||
unsigned long mode;
|
||||
} modes[] = {
|
||||
{ "80x25", SW_TEXT_80x25 },
|
||||
{ "80x30", SW_TEXT_80x30 },
|
||||
{ "80x43", SW_TEXT_80x43 },
|
||||
{ "80x50", SW_TEXT_80x50 },
|
||||
{ "80x60", SW_TEXT_80x60 },
|
||||
{ "132x25", SW_TEXT_132x25 },
|
||||
{ "132x30", SW_TEXT_132x30 },
|
||||
{ "132x43", SW_TEXT_132x43 },
|
||||
{ "132x50", SW_TEXT_132x50 },
|
||||
{ "132x60", SW_TEXT_132x60 },
|
||||
{ "VGA_40x25", SW_VGA_C40x25 },
|
||||
{ "VGA_80x25", SW_VGA_C80x25 },
|
||||
{ "VGA_80x30", SW_VGA_C80x30 },
|
||||
{ "VGA_80x50", SW_VGA_C80x50 },
|
||||
{ "VGA_80x60", SW_VGA_C80x60 },
|
||||
{ "VGA_320x200", SW_VGA_CG320 },
|
||||
{ "EGA_80x25", SW_ENH_C80x25 },
|
||||
{ "EGA_80x43", SW_ENH_C80x43 },
|
||||
{ "VESA_132x25", SW_VESA_C132x25 },
|
||||
{ "VESA_132x43", SW_VESA_C132x43 },
|
||||
{ "VESA_132x50", SW_VESA_C132x50 },
|
||||
{ "VESA_132x60", SW_VESA_C132x60 },
|
||||
{ "VESA_800x600", SW_VESA_800x600 },
|
||||
{ NULL },
|
||||
};
|
||||
unsigned long mode;
|
||||
int size[3];
|
||||
int i;
|
||||
|
||||
if (*index < argc) {
|
||||
if (!strcmp(argv[*index], "VGA_40x25"))
|
||||
mode = SW_VGA_C40x25;
|
||||
else if (!strcmp(argv[*index], "VGA_80x25"))
|
||||
mode = SW_VGA_C80x25;
|
||||
else if (!strcmp(argv[*index], "VGA_80x30"))
|
||||
mode = SW_VGA_C80x30;
|
||||
else if (!strcmp(argv[*index], "VGA_80x50"))
|
||||
mode = SW_VGA_C80x50;
|
||||
else if (!strcmp(argv[*index], "VGA_80x60"))
|
||||
mode = SW_VGA_C80x60;
|
||||
else if (!strcmp(argv[*index], "VGA_320x200"))
|
||||
mode = SW_VGA_CG320;
|
||||
else if (!strcmp(argv[*index], "EGA_80x25"))
|
||||
mode = SW_ENH_C80x25;
|
||||
else if (!strcmp(argv[*index], "EGA_80x43"))
|
||||
mode = SW_ENH_C80x43;
|
||||
else if (!strcmp(argv[*index], "VESA_132x25"))
|
||||
mode = SW_VESA_C132x25;
|
||||
else if (!strcmp(argv[*index], "VESA_132x43"))
|
||||
mode = SW_VESA_C132x43;
|
||||
else if (!strcmp(argv[*index], "VESA_132x50"))
|
||||
mode = SW_VESA_C132x50;
|
||||
else if (!strcmp(argv[*index], "VESA_132x60"))
|
||||
mode = SW_VESA_C132x60;
|
||||
else if (!strcmp(argv[*index], "VESA_800x600"))
|
||||
mode = SW_VESA_800x600;
|
||||
else
|
||||
for (i = 0; modes[i].name != NULL; ++i) {
|
||||
if (!strcmp(argv[*index], modes[i].name)) {
|
||||
mode = modes[i].mode;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (modes[i].name == NULL)
|
||||
return;
|
||||
if (ioctl(0, mode, NULL) < 0)
|
||||
warn("cannot set videomode");
|
||||
|
Loading…
Reference in New Issue
Block a user