diff --git a/13_day/bootpack.c b/13_day/bootpack.c index 986040b..837bffb 100644 --- a/13_day/bootpack.c +++ b/13_day/bootpack.c @@ -29,18 +29,16 @@ void HariMain(void) io_out8(PIC0_IMR, 0xf8); /* PIT和PIC1和键盘设置为许可(11111000) */ io_out8(PIC1_IMR, 0xef); /* 开放鼠标中断(11101111) */ - fifo8_init(&timerfifo, 8, timerbuf); - timer = timer_alloc(); - timer_init(timer, &timerfifo, 1); - timer_settime(timer, 1000); - fifo8_init(&timerfifo2, 8, timerbuf2); - timer2 = timer_alloc(); - timer_init(timer2, &timerfifo2, 1); - timer_settime(timer2, 300); - fifo8_init(&timerfifo3, 8, timerbuf3); - timer3 = timer_alloc(); - timer_init(timer3, &timerfifo3, 1); - timer_settime(timer3, 50); + fifo8_init(&timerfifo, 8, timerbuf); + timer = timer_alloc(); + timer_init(timer, &timerfifo, 10); + timer_settime(timer, 1000); + timer2 = timer_alloc(); + timer_init(timer2, &timerfifo, 3); + timer_settime(timer2, 300); + timer3 = timer_alloc(); + timer_init(timer3, &timerfifo, 1); + timer_settime(timer3, 50); init_keyboard(); enable_mouse(&mdec); @@ -81,8 +79,7 @@ void HariMain(void) putfonts8_asc_sht(sht_win, 40, 28, COL8_000000, COL8_C6C6C6, s, 10); io_cli(); - if (fifo8_status(&keyfifo) + fifo8_status(&mousefifo) + fifo8_status(&timerfifo) - + fifo8_status(&timerfifo2) + fifo8_status(&timerfifo3) == 0) { + if (fifo8_status(&keyfifo) + fifo8_status(&mousefifo) + fifo8_status(&timerfifo) == 0) { io_sti(); } else { if (fifo8_status(&keyfifo) != 0) { @@ -126,25 +123,24 @@ void HariMain(void) sheet_slide(sht_mouse, mx, my);/* 包含sheet_refresh含sheet_refresh */ } } else if (fifo8_status(&timerfifo) != 0) { - i = fifo8_get(&timerfifo); /* 首先读入(为了设定起始点) */ + i = fifo8_get(&timerfifo); /*超时的是哪个呢? */ io_sti(); - putfonts8_asc_sht(sht_back, 0, 64, COL8_FFFFFF, COL8_008484, "10[sec]", 7); - } else if (fifo8_status(&timerfifo2) != 0) { - i = fifo8_get(&timerfifo2); /* 首先读入(为了设定起始点) */ - io_sti(); - putfonts8_asc_sht(sht_back, 0, 80, COL8_FFFFFF, COL8_008484, "3[sec]", 6); - } else if (fifo8_status(&timerfifo3) != 0) { - i = fifo8_get(&timerfifo3); - io_sti(); - if (i != 0) { - timer_init(timer3, &timerfifo3, 0); /* 然后设置0 */ - boxfill8(buf_back, binfo->scrnx, COL8_FFFFFF, 8, 96, 15, 111); + if (i == 10) { + putfonts8_asc_sht(sht_back, 0, 64, COL8_FFFFFF, COL8_008484, "10[sec]", 7); + } else if (i == 3) { + putfonts8_asc_sht(sht_back, 0, 80, COL8_FFFFFF, COL8_008484, "3[sec]", 6); } else { - timer_init(timer3, &timerfifo3, 1); /* 然后设置1 */ - boxfill8(buf_back, binfo->scrnx, COL8_008484, 8, 96, 15, 111); + /* 0还是1 */ + if (i != 0) { + timer_init(timer3, &timerfifo, 0); /*下面是设定为0 */ + boxfill8(buf_back, binfo->scrnx, COL8_FFFFFF, 8, 96, 15, 111); + } else { + timer_init(timer3, &timerfifo, 1); /*下面是设定为1*/ + boxfill8(buf_back, binfo->scrnx, COL8_008484, 8, 96, 15, 111); + } + timer_settime(timer3, 50); + sheet_refresh(sht_back, 8, 96, 16, 112); } - timer_settime(timer3, 50); - sheet_refresh(sht_back, 8, 96, 16, 112); } } }