Compare commits

...

5 Commits

8 changed files with 40 additions and 7 deletions

1
.clang-format Normal file
View File

@ -0,0 +1 @@
BasedOnStyle: Google

1
.gitignore vendored
View File

@ -1 +1,2 @@
builddbg/
compile_commands.json

View File

@ -1,6 +1,12 @@
add_executable(zion
debug/debug.cpp
zion.cpp)
target_include_directories(zion
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
)
# -c -- Don't run the linker.
# -nostdlib -- Don't include the standard library.
# -mabi=sysv -- Explicitly specify the ABI since we will rely on it.

View File

@ -1,6 +1,6 @@
# Needs to be copied into the EFI partition of the drive.
TIMEOUT=10
TIMEOUT=0
:AcadiaOS

13
zion/common/port.h Normal file
View File

@ -0,0 +1,13 @@
#pragma once
#include <stdint.h>
static inline uint8_t inb(uint16_t port) {
uint8_t result;
asm volatile("inb %1, %0" : "=a"(result) : "Nd"(port));
return result;
}
static inline void outb(uint16_t port, uint8_t value) {
asm volatile("outb %0, %1" ::"a"(value), "Nd"(port));
}

13
zion/debug/debug.cpp Normal file
View File

@ -0,0 +1,13 @@
#include "debug/debug.h"
#include "common/port.h"
#define COM1 0x3f8
void dbgln(const char* str) {
while (*str != 0) {
outb(COM1, *str);
str++;
}
outb(COM1, '\n');
}

3
zion/debug/debug.h Normal file
View File

@ -0,0 +1,3 @@
#pragma once
void dbgln(const char *str);

View File

@ -1,13 +1,9 @@
#include <stdint.h>
#define COM1 0x3f8
void outb(uint16_t port, uint8_t value) {
asm volatile("outb %0, %1" ::"a"(value), "Nd"(port));
}
#include "debug/debug.h"
extern "C" void zion() {
outb(COM1, 'a');
dbgln("Hello World!");
while (1)
;