#include #include "hal/hal.h" #include "kprintf.h" // https://wiki.osdev.org/Serial_Ports #define PORT 0x3f8 void serial_init(void) { io_out8(PORT+1, 0x00); io_out8(PORT+3, 0x80); io_out8(PORT+0, 0x03); io_out8(PORT+1, 0x00); io_out8(PORT+3, 0x03); io_out8(PORT+2, 0xC7); io_out8(PORT+4, 0x0B); io_out8(PORT+4, 0x1E); io_out8(PORT+0, 0xAE); if (io_in8(PORT+0) != 0xAE) { ERR("serial", "serial is faulty!\n"); return; } io_out8(PORT+4, 0x0F); } int serial_recvready(void) { return io_in8(PORT+5) & 1; } uint8_t serial_recvb(void) { return io_in8(PORT); } int serial_sendready(void) { return io_in8(PORT+5) & 0x20; } void serial_sendb(uint8_t b) { io_out8(PORT, b); }