diff options
author | Freya Murphy <freya@freyacat.org> | 2025-04-03 21:32:00 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-04-03 21:32:00 -0400 |
commit | 16b7b4c2c008c976ee5948c97a8337d6224c3be9 (patch) | |
tree | 70f8402c3a2650d72fb174a43f8893a6f415546b /kernel/io | |
parent | fix printf (diff) | |
download | comus-16b7b4c2c008c976ee5948c97a8337d6224c3be9.tar.gz comus-16b7b4c2c008c976ee5948c97a8337d6224c3be9.tar.bz2 comus-16b7b4c2c008c976ee5948c97a8337d6224c3be9.zip |
add 64-bit idt/pic and fix paging
Diffstat (limited to 'kernel/io')
-rw-r--r-- | kernel/io/io.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/kernel/io/io.c b/kernel/io/io.c index a68114d..11acfdb 100644 --- a/kernel/io/io.c +++ b/kernel/io/io.c @@ -1,9 +1,16 @@ #include <lib.h> #include <stdio.h> +#include <comus/asm.h> + +#define PORT 0x3F8 +static void serial_out(uint8_t ch) { + // wait for output to be free + while ((inb(PORT + 5) & 0x20) == 0); + outb(PORT, ch); +} void fputc(FILE *stream, char c) { (void) stream; - (void) c; - // FIXME: !!! + serial_out(c); } |