modify CSI_ESC

This commit is contained in:
xiaoxiao 2023-01-20 23:22:04 +08:00
parent 27c1d3c033
commit 2e9e43cd8e
2 changed files with 13 additions and 13 deletions

View File

@ -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

View File

@ -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;