modify CSI_ESC
This commit is contained in:
parent
27c1d3c033
commit
2e9e43cd8e
23
kernel/csi.c
23
kernel/csi.c
@ -9,16 +9,6 @@
|
||||
#define LASTLINE(row) LAST(row, SCR_MAXLINE)
|
||||
#define ADDLINE(row, add_num) (((row) + add_num) % SCR_MAXLINE)
|
||||
|
||||
void enable_blink()
|
||||
{
|
||||
disable_int();
|
||||
inb(0x3DA);
|
||||
outb(0x3C0, 0x30);
|
||||
u8 temp = inb(0x3C1);
|
||||
outb(0x3C0, temp | 0x08);
|
||||
enable_int();
|
||||
}
|
||||
|
||||
void disable_blink()
|
||||
{
|
||||
disable_int();
|
||||
@ -29,6 +19,16 @@ void disable_blink()
|
||||
enable_int();
|
||||
}
|
||||
|
||||
void enable_blink()
|
||||
{
|
||||
disable_int();
|
||||
inb(0x3DA);
|
||||
outb(0x3C0, 0x30);
|
||||
u8 temp = inb(0x3C1);
|
||||
outb(0x3C0, temp | 0x08);
|
||||
enable_int();
|
||||
}
|
||||
|
||||
void set_underline(u32 addr)
|
||||
{
|
||||
disable_int();
|
||||
@ -327,7 +327,7 @@ void CSI_Erase_handler(vga_buf *vgabuf, int n)
|
||||
|
||||
void CSI_handler(u8 terminator, vga_buf *vgabuf)
|
||||
{
|
||||
vgabuf->CSI = CSI_ESC;
|
||||
|
||||
i16 param[MAXNUM_PARAM] = {0};
|
||||
i16 param_cnt = 0;
|
||||
for (int i = 0; i < vgabuf->param_num && param_cnt < MAXNUM_PARAM; i++)
|
||||
@ -343,6 +343,7 @@ void CSI_handler(u8 terminator, vga_buf *vgabuf)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
switch (terminator)
|
||||
{
|
||||
case 'A': // Cursor Up
|
||||
|
||||
@ -265,8 +265,7 @@ void vga_tty_write(NTTY *tty, char ch)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (!(0x20 <= ch && ch <= 0x7e))
|
||||
vga->CSI = CSI_ESC;
|
||||
vga->CSI = CSI_ESC;
|
||||
if (0x40 <= ch && ch <= 0x7e)
|
||||
CSI_handler(ch, vga);
|
||||
break;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user