From 88f4f449bb504423bb98d3574fd9ed3eb52afa19 Mon Sep 17 00:00:00 2001 From: Yourtion Date: Wed, 27 Apr 2016 16:03:01 +0800 Subject: [PATCH] =?UTF-8?q?cls=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 18_day/bootpack.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/18_day/bootpack.c b/18_day/bootpack.c index a47d36b..1bff3c0 100644 --- a/18_day/bootpack.c +++ b/18_day/bootpack.c @@ -2,6 +2,7 @@ #include "bootpack.h" #include +#include void make_window8(unsigned char *buf, int xsize, int ysize, char *title, char act); void putfonts8_asc_sht(struct SHEET *sht, int x, int y, int c, int b, char *s, int l); @@ -378,6 +379,7 @@ void console_task(struct SHEET *sheet, unsigned int memtotal) int i, fifobuf[128], cursor_x = 16, cursor_y = 28, cursor_c = -1; char s[30], cmdline[30]; struct MEMMAN *memman = (struct MEMMAN *) MEMMAN_ADDR; + int x, y; fifo32_init(&task->fifo, 128, fifobuf, task); timer = timer_alloc(); @@ -431,7 +433,7 @@ void console_task(struct SHEET *sheet, unsigned int memtotal) cmdline[cursor_x / 8 - 2] = 0; cursor_y = cons_newline(cursor_y, sheet); /*执行命令*/ - if (cmdline[0] == 'm' && cmdline[1] == 'e' && cmdline[2] == 'm' && cmdline[3] == 0) { + if (strcmp(cmdline, "mem") == 0) { /* mem命令*/ sprintf(s, "total %dMB", memtotal / (1024 * 1024)); putfonts8_asc_sht(sheet, 8, cursor_y, COL8_FFFFFF, COL8_000000, s, 30); @@ -440,7 +442,16 @@ void console_task(struct SHEET *sheet, unsigned int memtotal) putfonts8_asc_sht(sheet, 8, cursor_y, COL8_FFFFFF, COL8_000000, s, 30); cursor_y = cons_newline(cursor_y, sheet); cursor_y = cons_newline(cursor_y, sheet); - } else if (cmdline[0] != 0) { + } else if (strcmp(cmdline, "cls") == 0) { + /* cls命令*/ + for (y = 28; y < 28 + 128; y++) { + for (x = 8; x < 8 + 240; x++) { + sheet->buf[x + y * sheet->bxsize] = COL8_000000; + } + } + sheet_refresh(sheet, 8, 28, 8 + 240, 28 + 128); + cursor_y = 28; + } else if (cmdline[0] != 0) { /*不是命令,也不是空行 */ putfonts8_asc_sht(sheet, 8, cursor_y, COL8_FFFFFF, COL8_000000, "Bad command.", 12); cursor_y = cons_newline(cursor_y, sheet);