From 7517c5e770e95f4bd668bf719846da4b4ae4722f Mon Sep 17 00:00:00 2001 From: Yourtion Date: Wed, 20 Apr 2016 11:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 13_day/bootpack.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/13_day/bootpack.c b/13_day/bootpack.c index 57324d0..986040b 100644 --- a/13_day/bootpack.c +++ b/13_day/bootpack.c @@ -4,6 +4,7 @@ #include void make_window8(unsigned char *buf, int xsize, int ysize, char *title); +void putfonts8_asc_sht(struct SHEET *sht, int x, int y, int c, int b, char *s, int l); void HariMain(void) { @@ -70,30 +71,25 @@ void HariMain(void) sheet_updown(sht_win, 1); sheet_updown(sht_mouse, 2); sprintf(s, "(%3d, %3d)", mx, my); - putfonts8_asc(buf_back, binfo->scrnx, 0, 0, COL8_FFFFFF, s); + putfonts8_asc_sht(sht_back, 0, 0, COL8_FFFFFF, COL8_008484, s, 10); sprintf(s, "memory %dMB free : %dKB", memtotal / (1024 * 1024), memman_total(memman) / 1024); - putfonts8_asc(buf_back, binfo->scrnx, 0, 32, COL8_FFFFFF, s); - sheet_refresh(sht_back, 0, 0, binfo->scrnx, 48); /* 刷新文字 */ + putfonts8_asc_sht(sht_back, 0, 32, COL8_FFFFFF, COL8_008484, s, 40); for (;;) { sprintf(s, "%010d", timerctl.count); - boxfill8(buf_win, 160, COL8_C6C6C6, 40, 28, 119, 43); - putfonts8_asc(buf_win, 160, 40, 28, COL8_000000, s); - sheet_refresh(sht_win, 40, 28, 120, 44); /* 到这里结束 */ + 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) { - io_sti(); /* 不做HLT */ + io_sti(); } else { if (fifo8_status(&keyfifo) != 0) { i = fifo8_get(&keyfifo); io_sti(); sprintf(s, "%02X", i); - boxfill8(buf_back, binfo->scrnx, COL8_008484, 0, 16, 15, 31); - putfonts8_asc(buf_back, binfo->scrnx, 0, 16, COL8_FFFFFF, s); - sheet_refresh(sht_back, 0, 16, 16, 32); /* 刷新文字 */ + putfonts8_asc_sht(sht_back, 0, 16, COL8_FFFFFF, COL8_008484, s, 2); } else if (fifo8_status(&mousefifo) != 0) { i = fifo8_get(&mousefifo); io_sti(); @@ -109,9 +105,7 @@ void HariMain(void) if ((mdec.btn & 0x04) != 0) { s[2] = 'C'; } - boxfill8(buf_back, binfo->scrnx, COL8_008484, 32, 16, 32 + 15 * 8 - 1, 31); - putfonts8_asc(buf_back, binfo->scrnx, 32, 16, COL8_FFFFFF, s); - sheet_refresh(sht_back, 32, 16, 32 + 15 * 8, 32); /* 刷新文字 */ + putfonts8_asc_sht(sht_back, 32, 16, COL8_FFFFFF, COL8_008484, s, 15); /* 移动光标 */ mx += mdec.x; my += mdec.y; @@ -128,23 +122,19 @@ void HariMain(void) my = binfo->scrny - 1; } sprintf(s, "(%3d, %3d)", mx, my); - boxfill8(buf_back, binfo->scrnx, COL8_008484, 0, 0, 79, 15); /* 消坐标 */ - putfonts8_asc(buf_back, binfo->scrnx, 0, 0, COL8_FFFFFF, s); /* 写坐标 */ - sheet_refresh(sht_back, 0, 0, 80, 16); /* 刷新文字 */ - sheet_slide(sht_mouse, mx, my); /* 包含sheet_refresh含sheet_refresh */ + putfonts8_asc_sht(sht_back, 0, 0, COL8_FFFFFF, COL8_008484, s, 10); + sheet_slide(sht_mouse, mx, my);/* 包含sheet_refresh含sheet_refresh */ } } else if (fifo8_status(&timerfifo) != 0) { i = fifo8_get(&timerfifo); /* 首先读入(为了设定起始点) */ io_sti(); - putfonts8_asc(buf_back, binfo->scrnx, 0, 64, COL8_FFFFFF, "10[sec]"); - sheet_refresh(sht_back, 0, 64, 56, 80); + 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(buf_back, binfo->scrnx, 0, 80, COL8_FFFFFF, "3[sec]"); - sheet_refresh(sht_back, 0, 80, 48, 96); + putfonts8_asc_sht(sht_back, 0, 80, COL8_FFFFFF, COL8_008484, "3[sec]", 6); } else if (fifo8_status(&timerfifo3) != 0) { - i = fifo8_get(&timerfifo3); /* 首先读入(为了设定起始点) */ + i = fifo8_get(&timerfifo3); io_sti(); if (i != 0) { timer_init(timer3, &timerfifo3, 0); /* 然后设置0 */ @@ -208,3 +198,11 @@ void make_window8(unsigned char *buf, int xsize, int ysize, char *title) } return; } + +void putfonts8_asc_sht(struct SHEET *sht, int x, int y, int c, int b, char *s, int l) +{ + boxfill8(sht->buf, sht->bxsize, b, x, y, x + l * 8 - 1, y + 15); + putfonts8_asc(sht->buf, sht->bxsize, x, y, c, s); + sheet_refresh(sht, x, y, x + l * 8, y + 16); + return; +}