/* 割り込み関係 */

#include "bootpack.h"
#include <stdio.h>

void pic_init(void)
{
	outb(PIC0_IMR, 0xff);	/* すべての割り込みを拒否 */
	outb(PIC1_IMR, 0xff);	/* すべての割り込みを拒否 */

	outb(PIC0_ICW1, 0x11);	/* エッジトリガモード */
	outb(PIC0_ICW2, 0x20);	/* IRQ0-7は、INT20-27にする */
	outb(PIC0_ICW3, 0x04);	/* PIC1は、IRQ2で通信 */
	outb(PIC0_ICW4, 0x01);	/* ノンバッファモード */

	outb(PIC1_ICW1, 0x11);	/* エッジトリガモード */
	outb(PIC1_ICW2, 0x28);	/* IRQ8-15は、INT28-2fにする */
	outb(PIC1_ICW3, 0x02);	/* PIC1は、IRQ2で通信 */
	outb(PIC1_ICW4, 0x01);	/* ノンバッファモード */

	outb(PIC0_IMR, 0xfb);	/* 11111011 PIC1以外は割り込みを拒否 */
	outb(PIC1_IMR, 0xff);	/* 11111111 すべての割り込みを拒否 */

	return;
}
