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 LASTLINE(row) LAST(row, SCR_MAXLINE)
|
||||||
#define ADDLINE(row, add_num) (((row) + add_num) % 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()
|
void disable_blink()
|
||||||
{
|
{
|
||||||
disable_int();
|
disable_int();
|
||||||
@ -29,6 +19,16 @@ void disable_blink()
|
|||||||
enable_int();
|
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)
|
void set_underline(u32 addr)
|
||||||
{
|
{
|
||||||
disable_int();
|
disable_int();
|
||||||
@ -327,7 +327,7 @@ void CSI_Erase_handler(vga_buf *vgabuf, int n)
|
|||||||
|
|
||||||
void CSI_handler(u8 terminator, vga_buf *vgabuf)
|
void CSI_handler(u8 terminator, vga_buf *vgabuf)
|
||||||
{
|
{
|
||||||
vgabuf->CSI = CSI_ESC;
|
|
||||||
i16 param[MAXNUM_PARAM] = {0};
|
i16 param[MAXNUM_PARAM] = {0};
|
||||||
i16 param_cnt = 0;
|
i16 param_cnt = 0;
|
||||||
for (int i = 0; i < vgabuf->param_num && param_cnt < MAXNUM_PARAM; i++)
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (terminator)
|
switch (terminator)
|
||||||
{
|
{
|
||||||
case 'A': // Cursor Up
|
case 'A': // Cursor Up
|
||||||
|
|||||||
@ -265,8 +265,7 @@ void vga_tty_write(NTTY *tty, char ch)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!(0x20 <= ch && ch <= 0x7e))
|
vga->CSI = CSI_ESC;
|
||||||
vga->CSI = CSI_ESC;
|
|
||||||
if (0x40 <= ch && ch <= 0x7e)
|
if (0x40 <= ch && ch <= 0x7e)
|
||||||
CSI_handler(ch, vga);
|
CSI_handler(ch, vga);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user