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

📄 vgahico.c

📁 linux 下svgalib编的一个界面程序示例
💻 C
字号:
/* vgahico.c - used by ET4000 driver. *//* Set Hicolor RAMDAC mode. * HH: Added support for 24-bit Sierra RAMDAC (15025/6) (untested). */#include "vga.h"#include "libvga.h"#include "driver.h"#include "ramdac/ramdac.h"int __svgalib_hicolor(int dac_type, int mode)/* Enters hicolor mode - 0 for no hi, 1 for 15 bit, 2 for 16, 3 for 24 *//* For any modes it doesn't know about, etc, it attempts to turn hicolor off. */{    int x;    _ramdac_dactocomm();    x = port_in(PEL_MSK);    _ramdac_dactocomm();    switch (dac_type & ~1) {    case 0:			/* Sierra SC11486 */	if (mode == HI15_DAC)	    port_out(x | 0x80, PEL_MSK);	else	    port_out(x & ~0x80, PEL_MSK);	break;    case 2:			/* Sierra Mark2/Mark3 */	switch (mode) {	case HI15_DAC:	    /* port_out( (x | 0x80) & ~0x40, PEL_MSK); */	    port_out((x & 0x1f) | 0xa0, PEL_MSK);	    break;	case HI16_DAC:	    /* port_out( x | 0xC0, PEL_MSK); */	    port_out((x & 0x1f) | 0xe0, PEL_MSK);	    break;	default:	    port_out(x & ~0xC0, PEL_MSK);	    break;	}	break;    case 4:			/* Diamond SS2410 */	if (mode == HI15_DAC)	    port_out(x | 0x80, PEL_MSK);	else	    port_out(x & ~0x80, PEL_MSK);	break;    case 8:			/* AT&T 20c491/2 */	switch (mode) {	case HI15_DAC:	    port_out((x & 0x1f) | 0xA0, PEL_MSK);	    break;	case HI16_DAC:	    port_out((x & 0x1f) | 0xC0, PEL_MSK);	    break;	case TC24_DAC:	    port_out((x & 0x1f) | 0xE0, PEL_MSK);	    break;	default:	    port_out(x & 0x1F, PEL_MSK);	    break;	}	break;    case 16:			/* AcuMos ADAC1 */	switch (mode) {	case HI15_DAC:	    port_out(0xF0, PEL_MSK);	    break;	case HI16_DAC:	    port_out(0xE1, PEL_MSK);	    break;	case TC24_DAC:	    port_out(0xE5, PEL_MSK);	    break;	default:	    port_out(0, PEL_MSK);	    break;	}	break;    case 32:			/* Sierra 15025/6 24-bit DAC */	switch (mode) {	case HI15_DAC:	    port_out((x & 0x1f) | 0xa0, PEL_MSK);	    /* 0xa0 is also a 15-bit mode. */	    break;	case HI16_DAC:	    port_out((x & 0x1f) | 0xe0, PEL_MSK);	    /* 0xc0 is also a 16-bit mode. */	    /* 0xc0 doesn't seem to work, so use 0xe0. */	    break;	case TC24_DAC:	    port_out((x & 0x1f) | 0x60, PEL_MSK);	    break;	default:	    port_out(x & 0x1f, PEL_MSK);	    break;	}	break;    default:	/* Normal VGA mode. */	port_out(x & 0x1F, PEL_MSK);	break;    }    _ramdac_dactopel();    return 0;}

⌨️ 快捷键说明

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