diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2019-05-26 19:28:27 +0100 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2019-05-26 19:28:27 +0100 |
| commit | bd77381c27ef5b61bf1c123efef3895b98a7a615 (patch) | |
| tree | ba798b442305ad4e174d79cf5bb7a822b7e1e2e9 /kernel | |
| parent | eb4de24523e8f0832daae89a083844c8e9a261e9 (diff) | |
| download | tinyOS-bd77381c27ef5b61bf1c123efef3895b98a7a615.tar.xz tinyOS-bd77381c27ef5b61bf1c123efef3895b98a7a615.zip | |
Proxy keypress from kernel to focused program
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/io/keyboard/keyboard_handler.c | 15 | ||||
| -rw-r--r-- | kernel/kernel.c | 24 |
2 files changed, 5 insertions, 34 deletions
diff --git a/kernel/io/keyboard/keyboard_handler.c b/kernel/io/keyboard/keyboard_handler.c index 26b4586..e06936d 100644 --- a/kernel/io/keyboard/keyboard_handler.c +++ b/kernel/io/keyboard/keyboard_handler.c @@ -1,6 +1,7 @@ #include "../../interrupt_descriptor_table.h" #include "../../gpu/text_mode/display.h" #include "scancode_map.h" +#include "../../../os/main.h" extern void keyboard_handler(void); extern char read_port(unsigned short port); @@ -66,18 +67,8 @@ void handle_keypress() { if(!isKeyup(scancode)) { - char pressed_key = scancode_map[scancode]; - switch(pressed_key) - { - case '\b': - scrn_backspace(); - break; - case '\n': - scrn_newline(); - break; - default: - scrn_putchar(pressed_key); - } + unsigned char pressed_key = scancode_map[scancode]; + os_proxy_keypress(pressed_key); } } diff --git a/kernel/kernel.c b/kernel/kernel.c index 7f702e7..bd90a3f 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -2,32 +2,12 @@ #include "./gpu/text_mode/colours.h" #include "./io/keyboard/keyboard_handler.h" #include "global_descriptor_table.h" - -void run_kern_demo() -{ - scrn_enable_cursor(10, 12); - scrn_clear(); - scrn_set_text_colour(COLOUR_LIGHT_GREEN, COLOUR_BLACK); - - scrn_println(" _ _ ____ _____ "); - scrn_println(" | | (_) / __ \\ / ____|"); - scrn_println(" | |_ _ _ __ _ _| | | | (___ "); - scrn_println(" | __| | '_ \\| | | | | | |\\___ \\ "); - scrn_println(" | |_| | | | | |_| | |__| |____) |"); - scrn_println(" \\__|_|_| |_|\\__, |\\____/|_____/ "); - scrn_println(" __/ | "); - scrn_println(" |___/ "); - - scrn_set_text_colour(COLOUR_WHITE, COLOUR_BLACK); - scrn_newline(); -} - - +#include "../os/main.h" void kernel_entrypoint() { init_gdt(); init_keyboard_handler(); - run_kern_demo(); + os_start(); while(1); } |