📄 ramdac.c
字号:
/* * ramdac.c: * * This file contains RAMDAC definitions of type DacMethods for * various DACs. * * Note that the restoreState function is the only function that * should program the DAC registers; the initializeState function * should merely define the values that will be written in a * subsequent call of the restore funtion. */#include <stdlib.h>#include <stdio.h>#include "libvga.h"#include "timing.h"#include "vgaregs.h"#include "driver.h" /* for __svgalib_driver_report */#include "ramdac.h"/* * The following function probes the DACs in daclist, which must be * terminated by NULL. It returns the detected DAC if successful, NULL * otherwise. The detected DAC is also initialized. */DacMethods *__svgalib_probeDacs(DacMethods ** dacs_to_probe){ /* Probe for a RAMDAC. */ for (;;) { DacMethods *dac; dac = *dacs_to_probe; if (dac == NULL) /* None found. */ return NULL; if (dac->probe()) { dac->initialize(); return dac; } dacs_to_probe++; }}int __svgalib_setDacSpeed(int dacspeed, int defspeed){ if (!dacspeed) { if (__svgalib_driver_report) printf("svgalib: Assuming %dMHz DAC.\n", defspeed / 1000); dacspeed = defspeed; } else { if (__svgalib_driver_report) printf("svgalib: DAC speed set to %dMHz.\n", dacspeed / 1000); } return dacspeed;}#ifndef __OPTIMIZE__ /* otherwise inlined from ramdac.h */void _ramdac_dactocomm(void){ inb(PEL_IW); inb(PEL_MSK); inb(PEL_MSK); inb(PEL_MSK); inb(PEL_MSK);}void _ramdac_dactopel(void){ inb(PEL_IW);}unsigned char _ramdac_setcomm(unsigned char data){ _ramdac_dactocomm(); outb(PEL_MSK, data); _ramdac_dactocomm(); return inb(PEL_MSK);}#endif/* * List of all DACs. */DacMethods *__svgalib_all_dacs[] ={#ifdef INCLUDE_NORMAL_DAC &__svgalib_normal_dac_methods,#endif#ifdef INCLUDE_S3_SDAC_DAC &__svgalib_S3_SDAC_methods,#endif#ifdef INCLUDE_S3_GENDAC_DAC &__svgalib_S3_GENDAC_methods,#endif#ifdef INCLUDE_S3_TRIO64_DAC &__svgalib_Trio64_methods,#endif#ifdef INCLUDE_SIERRA_DAC &__svgalib_Sierra_32K_methods,#endif#ifdef INCLUDE_SC15025_DAC &__svgalib_SC15025_methods,#endif#ifdef INCLUDE_ATT20C490_DAC &__svgalib_ATT20C490_methods,#endif#ifdef INCLUDE_ATT20C498_DAC &__svgalib_ATT20C498_methods,#endif#ifdef INCLUDE_ICW_DAC &__svgalib_ICW_methods,#endif#ifdef INCLUDE_SC1148X_DAC &__svgalib_SC1148X_methods,#endif NULL};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -