summaryrefslogtreecommitdiff
path: root/kernel/io
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-04-03 21:32:00 -0400
committerFreya Murphy <freya@freyacat.org>2025-04-03 21:32:00 -0400
commit16b7b4c2c008c976ee5948c97a8337d6224c3be9 (patch)
tree70f8402c3a2650d72fb174a43f8893a6f415546b /kernel/io
parentfix printf (diff)
downloadcomus-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.c11
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);
}