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

📄 mad16.h

📁 freebsd v4.4内核源码
💻 H
字号:
/* *	Initialization code for OPTI MAD16 interface chip by *	Davor Jadrijevic <davor@emard.pub.hr> *	(Included by ad1848.c when MAD16 support is enabled) * * It looks like MAD16 is similar than the Mozart chip (OAK OTI-601). * It could be even possible that these chips are exactly the same. Can * anybody confirm this? */static void wr_a_mad16(int base, int v, int a){ OUTB(a, base + 0xf); OUTB(v, base + 0x11);}static void wr_b_mad16(int base, int v, int a){ OUTB(a, base + 0xf); OUTB(v, base + 0xd);}/*static int rd_a_mad16(int base, int a){ OUTB(a, base + 0xf); return INB(base + 0x11);}*/static int rd_b_mad16(int base, int a){ OUTB(a, base + 0xf); return INB(base + 0xd);}/*static int rd_0_mad16(int base, int a){ OUTB(a, base + 0xf); return INB(base + 0xf);}static void wr_ad(int base, int v, int a){ OUTB(a, base + 4); OUTB(v, base + 5);}static int rd_ad(int base, int a){ OUTB(a, base + 4); return INB(base + 5);}*/static int mad16init(int adr){ int j; long i; static int ad1848_bases[] = { 0x220, -1, -1, 0x240, -1, -1, -1, -1, 0x530, 0xE80, 0xF40, 0x604, 0 }; int mad16_base = 0xf80, ad1848_base; for(j = 0; (j < 16) && (ad1848_bases[j] != 0); j++)  if(adr == ad1848_bases[j])   break; if( (ad1848_base = ad1848_bases[j]) < 0x530) {  printk("Unknown MAD16 setting 0x%3X\n", adr);  return -1; } /* printk("OPTi MAD16 WSS at 0x%3X\n", ad1848_base); */ rd_b_mad16(mad16_base, 0xe2); wr_a_mad16(mad16_base, 0x1a, 0xe2); wr_b_mad16(mad16_base, j * 16 + 1, 0xe2); wr_a_mad16(mad16_base, 0x1a, 0xe2); for( i = 0; i < 10000; i++)  if( (INB(ad1848_base+4) & 0x80) == 0 )   break; return 0;};

⌨️ 快捷键说明

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