From c055a2f6a9778f93a8f09b6d820d2504d3fa2601 Mon Sep 17 00:00:00 2001 From: Benji Dial Date: Thu, 26 Dec 2019 18:21:44 -0500 Subject: keyboard skeleton, skeleton, rcs, etc --- src/kernel/serial.asm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/kernel/serial.asm') diff --git a/src/kernel/serial.asm b/src/kernel/serial.asm index 6318bc5..2213fd8 100644 --- a/src/kernel/serial.asm +++ b/src/kernel/serial.asm @@ -17,7 +17,9 @@ global send_byte global read_byte +global poll_port +section .text send_byte:;void send_byte(uint8_t value, uint8_t port) push ebp mov ebp, esp @@ -77,5 +79,29 @@ read_byte:;uint8_t read_byte(uint8_t port) leave ret +poll_port:;bool poll_port(uint8_t port) + push ebp + mov ebp, esp + + xor eax, eax + + xor ecx, ecx + mov cl, byte [ebp + 8];port + + test cl, 0xfc + jnz .leave + + shl cl, 1 + mov dx, word [ecx + com_ports] + + or dx, 5 + + in al, dx + and al, 0x01 + +.leave: + leave + ret + section .rodata com_ports dw 0x03f8, 0x02f8, 0x03e8, 0x02e8 \ No newline at end of file -- cgit v1.2.3