From 506f1691f1ca7b562d82ab6f2280b87d0e4af84c Mon Sep 17 00:00:00 2001 From: James Barnett Date: Sat, 25 May 2019 20:11:52 +0100 Subject: Add keyboard support --- kernel/kernel-bootstrap.asm | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'kernel/kernel-bootstrap.asm') diff --git a/kernel/kernel-bootstrap.asm b/kernel/kernel-bootstrap.asm index 9e3b10e..8af3565 100644 --- a/kernel/kernel-bootstrap.asm +++ b/kernel/kernel-bootstrap.asm @@ -7,12 +7,53 @@ dd 0x1BADB002 dd 0x00 dd - (0x1BADB002 + 0x00) ; checksum +global flush_gdt +global read_port +global write_port +global load_idt +global keyboard_handler global start + extern kernel_entrypoint +extern handle_keypress +extern gdt_pointer + +flush_gdt: + lgdt [gdt_pointer] + mov ax, 0x10 + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + mov ss, ax + jmp 0x08:flush +flush: + ret + +read_port: + mov edx, [esp + 4] + in al, dx + ret + +write_port: + mov edx, [esp + 4] + mov al, [esp + 4 + 4] + out dx, al + ret + +load_idt: + mov edx, [esp + 4] + lidt [edx] + sti + ret + +keyboard_handler: + call handle_keypress + iretd + - ; call kernel and halt start: - cli ; disable interrups + cli mov esp, stack_space call kernel_entrypoint hlt -- cgit v1.2.3