Kernel: Add basic ANSI support :)
This commit is contained in:
@@ -228,6 +228,10 @@ namespace Keyboard
|
||||
s_key_callback = callback;
|
||||
IDT::register_irq_handler(KEYBOARD_IRQ, irq_handler);
|
||||
PIC::unmask(KEYBOARD_IRQ);
|
||||
|
||||
kb_command(0xED, 0b111);
|
||||
IO::io_wait();
|
||||
while (kb_try_read(tmp));
|
||||
}
|
||||
|
||||
char key_to_ascii(Key key, uint8_t modifiers)
|
||||
|
||||
@@ -28,10 +28,16 @@ void on_key_press(Keyboard::Key key, uint8_t modifiers, bool pressed)
|
||||
kprint("time since boot: {} ms\n", PIT::ms_since_boot());
|
||||
return;
|
||||
}
|
||||
|
||||
char ascii = Keyboard::key_to_ascii(key, modifiers);
|
||||
if (ascii)
|
||||
kprint("{}", ascii);
|
||||
else if (key == Keyboard::Key::Backspace)
|
||||
{
|
||||
kprint("\b \b");
|
||||
}
|
||||
else
|
||||
{
|
||||
char ascii = Keyboard::key_to_ascii(key, modifiers);
|
||||
if (ascii)
|
||||
kprint("{}", ascii);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,9 +51,6 @@ void kernel_main(multiboot_info_t* mbi, uint32_t magic)
|
||||
if (magic != 0x2BADB002)
|
||||
return;
|
||||
|
||||
if (mbi->framebuffer.type != 2)
|
||||
return;
|
||||
|
||||
TTY::initialize();
|
||||
Serial::initialize();
|
||||
|
||||
@@ -60,17 +63,11 @@ void kernel_main(multiboot_info_t* mbi, uint32_t magic)
|
||||
PIT::initialize();
|
||||
Keyboard::initialize(on_key_press);
|
||||
|
||||
|
||||
kprintln("Hello from the kernel!");
|
||||
|
||||
dprintln("Hello emulator from kernel!");
|
||||
kprint("HHHHHHHHHHHHHHHHHHHHHHHHHHHHH\e[20D.\e[3K");
|
||||
|
||||
int** lol = new int*[10];
|
||||
for (int i = 0; i < 10; i++)
|
||||
lol[i] = new int;
|
||||
|
||||
kprint("{.2}\n", -12.123f);
|
||||
kprint("0x{.H}", 0xcafebabe);
|
||||
ENABLE_INTERRUPTS();
|
||||
|
||||
for (;;)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user