「OS自作入門 七日目」の編集履歴(バックアップ)一覧に戻る
//int.c #define PORT_KEYDAT 0x0060 void inthandler21(int *esp) { struct BOOTINFO *binfo = (struct BOOTINFO *) ADR_BOOTINFO; unsigned char data, s[4]; io_out8(PIC0_OCW2, 0x61); /* IRQ-01受付完了をPICに通知 */ data = io_in8(PORT_KEYDAT); sprintf(s, "%02X", data); boxfill8(binfo->vram, binfo->scrnx, COL8_008484, 0, 16, 15, 31); putfonts8_asc(binfo->vram, binfo->scrnx, 0, 16, COL8_FFFFFF, s); return; }
io_out8(PIC0_OCW2, 0x61); /* IRQ-01受付完了をPICに通知 *
0x60+(IRQ number)
//bootpack.h struct KEYBUF { unsigned char data, flag; };
//int.c struct KEYBUF keybuf; void inthandler21(int *esp) { unsigned char data; io_out8(PIC0_OCW2, 0x61); /* IRQ-01受付完了をPICに通知 */ data = io_in8(PORT_KEYDAT); if (keybuf.flag == 0) { keybuf.data = data; keybuf.flag = 1; } return; }