From abaab98bd757cd0818cfcddc983eee25ab7672ed Mon Sep 17 00:00:00 2001 From: EmulatedSeasons <89668582+EmulatedSeasons@users.noreply.github.com> Date: Tue, 7 May 2024 11:07:03 -0400 Subject: Made framebuffer class, serial write functions, and finally got makefile to build without having to make clean --- kernel/arch/x86_64/serial.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 kernel/arch/x86_64/serial.cpp (limited to 'kernel/arch/x86_64/serial.cpp') diff --git a/kernel/arch/x86_64/serial.cpp b/kernel/arch/x86_64/serial.cpp new file mode 100644 index 0000000..e90bcde --- /dev/null +++ b/kernel/arch/x86_64/serial.cpp @@ -0,0 +1,23 @@ +#include +#include + +#define PORT 0x3f8 + +int is_transmit_empty() { + return inb(PORT + 5) & 0x20; +} + +extern "C" void serial_putchar(char c) { + while (is_transmit_empty() == 0); + outb(PORT, c); +} + +void serial_write(const char* data, size_t size) { + for (size_t i = 0; i < size; i++) { + serial_putchar(data[i]); + } +} + +void serial_writestring(const char* data) { + serial_write(data, strlen(data)); +} \ No newline at end of file -- cgit v1.2.3-70-g09d2