summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-03-19 01:41:22 +0100
committerAnton Kling <anton@kling.gg>2024-03-19 01:41:22 +0100
commit553b43d2e563dcff74d4c86904fa3737e96d7365 (patch)
tree002b70c9d919b8a18a95bb5754c57db897b5977e /kernel
parent0dccff86e50dfe1555b8bc29862dba2b972a3705 (diff)
IRC: Add the IRC client I am working on
Diffstat (limited to 'kernel')
-rw-r--r--kernel/drivers/keyboard.c10
-rw-r--r--kernel/init/kernel.c21
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);