diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-02-03 15:58:34 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-02-03 15:58:34 +0200 |
commit | ca8ea6f6abe9826ab6817b2c37ff78bb9758360d (patch) | |
tree | 5c707d465996a52cc681503a11510a35218054f1 | |
parent | Print some multiboot2 information (diff) | |
download | kernel.cpp-ca8ea6f6abe9826ab6817b2c37ff78bb9758360d.tar.xz |
Update readme with required packages
-rw-r--r-- | kernel.cc | 1 | ||||
-rw-r--r-- | readme.md | 40 | ||||
-rw-r--r-- | vga.cc | 4 | ||||
-rw-r--r-- | vga.h | 3 |
4 files changed, 32 insertions, 16 deletions
@@ -17,7 +17,6 @@ extern "C" void kernel_main(uint32_t mb_magic, uint32_t mb_addr) { VGA terminal; Console::set(&terminal); - terminal.set_color(VGA::VGA_COLOR_CYAN, VGA::VGA_COLOR_BROWN); printk("Hello, kernel World!\n"); printk("multiboot magic: 0x", mb_magic, @@ -1,14 +1,30 @@ ## Compiling -- gnu make -- llvm/clang (llvm-ar, clang++, ld.lld) -- nasm -- grub -- qemu - -## running -- make run -- requires multiboot2-compliant bootloader - -## foreign sources -multiboot2.h | https://git.savannah.gnu.org/git/grub.git +### Required tools + +build tools | arch package +------------|-------------- + GNU make | make + nasm | nasm + clang++ | clang + llvm-ar | llvm + ld.lld | lld + +grub tools | arch package +---------------|-------------- + grub-mkrescue | grub + mformat | mtools + +GRUB can potentially be replaced by any multiboot2-compliant bootloader. + +## Running + +i386 emulator | arch package +------------------|-------------- + qemu | qemu + qemu-system-i386 | qemu-arch-extra + +## Credits / foreign sources +- osdev wiki +- [multiboot2.h](https://git.savannah.gnu.org/git/grub.git) + @@ -9,8 +9,8 @@ constexpr uint16_t vga_entry(unsigned char uc, uint8_t color) { return (uint16_t)uc | (uint16_t)color << 8; } -VGA::VGA(uint32_t address) { - color = vga_entry_color(VGA_COLOR_LIGHT_GREY, VGA_COLOR_BROWN); +VGA::VGA(vga_color fg, vga_color bg, uint32_t address) { + color = vga_entry_color(fg, bg); buffer = (uint16_t *)address; // clear buffer @@ -23,7 +23,8 @@ public: VGA_COLOR_WHITE = 15, }; - VGA(uint32_t address = 0xB8000); + VGA(vga_color fg = VGA_COLOR_BLACK, vga_color bg = VGA_COLOR_LIGHT_GREY, + uint32_t address = 0xB8000); ~VGA() = default; void put_char(char c, size_t x, size_t y, uint8_t color = 0); |