📄 fdc37c93x.c
字号:
#include "u.h"#include "../port/lib.h"#include "mem.h"#include "dat.h"#include "fns.h"#include "io.h"/* * SMC FDC37C93x Plug and Play Compatible Ultra I/O Controller. */enum { /* I/O Ports */ Config = 0x370, /* could also be 0x3F0 */ Index = 0, Data = 1,};static int fddregs[] = { 0x30, 0x60, 0x61, 0x70, 0x74, 0xF0, 0xF1, 0xF2, 0xF4, 0xF5, 0,};#define OUTB(p, d) outb(p, d); microdelay(10);voidfdc37c93xdump(void){ int config, i, x; config = Config; OUTB(config, 0x55); OUTB(config, 0x55); OUTB(config+Index, 0x20); x = inb(config+Data); print("fdc37c93x: Device ID 0x%2.2uX\n", x); OUTB(config+Index, 0x22); x = inb(config+Data); print("fdc37c93x: Power/Control 0x%2.2uX\n", x); OUTB(config+Index, 0x07); OUTB(config+Data, 0); for(i = 0; fddregs[i]; i++){ OUTB(config+Index, fddregs[i]); x = inb(config+Data); print("FDD%2.2uX: 0x%2.2uX\n", fddregs[i], x); } OUTB(config+Index, 0x70); OUTB(config+Data, 0x06); OUTB(config+Index, 0x74); OUTB(config+Data, 0x02); OUTB(config+Index, 0x30); OUTB(config+Data, 0x01); OUTB(config, 0xAA);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -