diff options
author | Anton Kling <anton@kling.gg> | 2024-03-19 01:41:22 +0100 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-03-19 01:41:22 +0100 |
commit | 553b43d2e563dcff74d4c86904fa3737e96d7365 (patch) | |
tree | 002b70c9d919b8a18a95bb5754c57db897b5977e /kernel | |
parent | 0dccff86e50dfe1555b8bc29862dba2b972a3705 (diff) |
IRC: Add the IRC client I am working on
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/drivers/keyboard.c | 10 | ||||
-rw-r--r-- | kernel/init/kernel.c | 21 |
2 files changed, 9 insertions, 22 deletions
diff --git a/kernel/drivers/keyboard.c b/kernel/drivers/keyboard.c index 7d35dc1..24ebbb0 100644 --- a/kernel/drivers/keyboard.c +++ b/kernel/drivers/keyboard.c @@ -102,10 +102,11 @@ u8 keyboard_to_ascii(u16 key, u8 capital) { u8 is_shift_down = 0; u8 is_alt_down = 0; +u8 is_ctrl_down = 0; struct KEY_EVENT { char c; - u8 mode; // (shift (0 bit)) (alt (1 bit)) + u8 mode; // (shift (0 bit)) (alt (1 bit)) (ctrl (2 bit)) u8 release; // 0 pressed, 1 released }; @@ -125,6 +126,9 @@ void int_keyboard(reg_t *frame) { case 0x38: is_alt_down = 0; return; + case 0x1D: + is_ctrl_down = 0; + return; } released = 1; } else { @@ -136,6 +140,9 @@ void int_keyboard(reg_t *frame) { case 0x38: is_alt_down = 1; return; + case 0x1D: + is_ctrl_down = 1; + return; } released = 0; } @@ -146,6 +153,7 @@ void int_keyboard(reg_t *frame) { ev.mode = 0; ev.mode |= is_shift_down << 0; ev.mode |= is_alt_down << 1; + ev.mode |= is_ctrl_down << 2; fifo_object_write((u8 *)&ev, 0, sizeof(ev), keyboard_fifo); kb_inode->has_data = keyboard_fifo->has_data; } diff --git a/kernel/init/kernel.c b/kernel/init/kernel.c index db7fb27..ef7cdae 100644 --- a/kernel/init/kernel.c +++ b/kernel/init/kernel.c @@ -98,28 +98,7 @@ void kernel_main(u32 kernel_end, unsigned long magic, unsigned long addr, add_keyboard(); add_mouse(); - //////// rtl8139_init(); - enable_interrupts(); - - /* - u32 ip = gen_ipv4(10, 0, 2, 2); - int err; - u32 listen_socket = tcp_listen_ipv4(ip, 6000, &err); - assert(!err); - u32 socket = tcp_accept(listen_socket, &err); - assert(!err); - - kprintf("socket: %x\n", socket); - - u64 out; - char buffer[256]; - assert(tcp_read(socket, buffer, 256, &out)); - kprintf("got %x bytes\n", out); - for (int i = 0; i < out; i++) { - kprintf("%c", buffer[i]); - } - */ ipv4_t gateway; gen_ipv4(&gateway, 10, 0, 2, 2); |