⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vgatweak.c

📁 linux 下svgalib编的一个界面程序示例
💻 C
字号:
/* From VGAlib, changed for svgalib *//* partially copyrighted (C) 1993 by Hartmut Schirmer */#include <stdio.h>#include <unistd.h>		/* for usleep( long ) */#include <string.h>#include "vga.h"static unsigned char line[2048 * 3];static void testmode(int mode){    int xmax, ymax, i, yw, ys;    unsigned char buf[60];    vga_modeinfo *modeinfo;    vga_setmode(mode);    modeinfo = vga_getmodeinfo(mode);    printf("Width: %d  Height: %d  Colors: %d\n",	   modeinfo->width,	   modeinfo->height,	   modeinfo->colors);    printf("DisplayStartRange: %xh  Maxpixels: %d  Blit: %s\n",	   modeinfo->startaddressrange,	   modeinfo->maxpixels,	   modeinfo->haveblit ? "YES" : "NO");    vga_screenoff();    xmax = vga_getxdim() - 1;    ymax = vga_getydim() - 1;    vga_setcolor(vga_white());    vga_drawline(0, 0, xmax, 0);    vga_drawline(xmax, 0, xmax, ymax);    vga_drawline(xmax, ymax, 0, ymax);    vga_drawline(0, ymax, 0, 0);    for (i = 0; i <= 15; i++) {	vga_setegacolor(i);	vga_drawline(10 + i * 5, 10, 90 + i * 5, 90);    }    for (i = 0; i <= 15; i++) {	vga_setegacolor(i);	vga_drawline(90 + i * 5, 10, 10 + i * 5, 90);    }    vga_screenon();    ys = 100;    yw = (ymax - 100) / 4;    for (i = 0; i < xmax - 1; i++)	line[i] = (i + 2) % 16;    line[0] = line[xmax] = 15;    line[1] = line[xmax - 1] = 0;    for (i = 100; i < ymax - 1; i++)	vga_drawscanline(i, line);    if (getchar() == 'd')	vga_dumpregs();            vga_getcrtcregs(buf);    buf[0]=0x4d;    buf[1]=0x3f;    buf[2]=0x3f;    buf[3]=0x80;    buf[4]=0x41;    buf[5]=0x10;            vga_setcrtcregs(buf);    for(i=0;i<20;i++) {        vga_setdisplaystart(i);        usleep(200000);        vga_waitretrace();    }    vga_getch();    vga_setmode(TEXT);}int main(void){    int mode;    int i, high;    vga_init();			/* Initialize. */    mode = 4;    if (mode == -1) {	printf("Choose one of the following video modes: \n");	high = 0;	for (i = 1; i <= vga_lastmodenumber(); i++)	    if (vga_hasmode(i)) {		vga_modeinfo *info;		char expl[100];		char *cols = NULL;		*expl = '\0';		info = vga_getmodeinfo(i);                cols = "16";		strcpy(expl, "4 bitplanes");		high = i;		printf("%5d: %dx%d, ",		       i, info->width, info->height);		if (cols == NULL)		    printf("%d", info->colors);		else		    printf("%s", cols);		printf(" colors ");		if (*expl != '\0')		    printf("(%s)", expl);		printf("\n");	    }    }    if (vga_hasmode(mode))	testmode(mode);    else {	printf("Error: Video mode not supported by driver\n");	exit(-1);    }        return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -