/* 簡単なI/Oテスト: * gcc -O -o beep beep.c * 参考: /usr/src/linux/drivers/char/vt.c */ #include #include #include #include int main(void) { unsigned int count; /* 一括 */ if(iopl(3)) /* 部分 */ /*if((ioperm(0x0040, 4, 1))||(ioperm(0x0061, 1, 1)))*/ { perror("iopl/ioperm"); return 1; } count=1193180/1000; /* 1000 Hz */ outb(inb(0x61)|3, 0x61); /* beep on */ outb(0xb6, 0x43); /* set freq */ outb(count & 0xff, 0x42); outb((count>>8) & 0xff, 0x42); sleep(1); outb(inb(0x61)&0xfc, 0x61); /* off */ return 0; }