This commit is contained in:
2025-08-05 22:49:34 +02:00
parent f8399152d4
commit f8f00cc608
12 changed files with 1838 additions and 25 deletions

32
kernel/com1.c Normal file
View File

@ -0,0 +1,32 @@
#include <serial.h>
#include <com1.h>
#define COM1 0x3f8
void com1_init(void) {
serial_outb(COM1 + 1, 0x00); // no intr
serial_outb(COM1 + 3, 0x80); // enable DLAB
serial_outb(COM1 + 0, 0x01); // 115200 baudrate
serial_outb(COM1 + 1, 0x00);
serial_outb(COM1 + 3, 0x03); // 8N1
serial_outb(COM1 + 2, 0xc7); // fifo
serial_outb(COM1 + 4, 0x0b); // irqs enabled, rts/dsr set
}
int32 com1_is_ready(void) {
return serial_inb(COM1 + 5) & 0x20;
}
void com1_putch(char c) {
while (!com1_is_ready());
serial_outb(COM1, c);
}
void com1_puts(char *s) {
while (*s) com1_putch(*s++);
}
void putchar_(char c) {
com1_putch(c);
}