=== Todo === Legend: - [ ] Not done - [x] Done - [_] Was done at some point, but isn't now - [!] Important todo - [?] Optional - [x] Multistage Bootloader - [ ] Bootloader reads filetable to find files - [!] Makefile refactorin' - [x] Write down where stuff is in memory (in notes.txt) - [ ] "Text" mode (not actually) - [ ] Scrolling - [ ] Scroll-back - [ ] Color codes (and just multicolor text in general) - [x] VESA BIOS Extensions - [x] Better resolution - [x] Graphics mode - [x] Custom font - [_] Larger text size - [ ] Variable text size :) - [x] Make output overflow go to next line - [x] More fonts - [x] Generic screen.h stuff (don't assume 1920x1080 32bpp) - [x] Multi vbe mode support - [x] Setup on boot - [ ] Different font size support - [x] Graphics - [?] Enter/exit a "graphics" mode (idk if we need this) - [x] Pixel drawing - [x] Line drawing (Raycaster Alert??) - [x] Triangles (3D?!!???) - [x] Rectange :) - [x] Circle! - [_] Filled verisons - [ ] Interrupts - [x] IDT Setup (idt.h) - [x] Exception handling - [ ] Hardware/software interrupts - [ ] Syscalls! (int 0x80) - [ ] Math - [ ] Trigonometry - [ ] Sine - [ ] Cosine - [ ] Tangent - [ ] Cotangent - [ ] Arc (inverse) versions - [ ] Hyperbolic versions - [x] Absolute value - [ ] isOdd() 🗿 - [ ] Exponential fn (e^x) - [ ] Logarithm - [ ] Power - [ ] Square Root - [ ] Nth Root - [x] Floor - [x] Round - [x] Ceiling - [x] Sign - [ ] INFINITY - [ ] NAN - [x] E (eulers number) - [x] PI - [ ] Filesystem - [ ] Utility for filesystem building (not just an assembly file) - [x] Filetable - [ ] Files - [x] Larger than one sector (512B) - [ ] Any file size (Not multiples of 512B) - [ ] Filetypes - [ ] Directories - [ ] File tree - [ ] cd command - [ ] Links?? - [ ] Symbolic - [ ] Hard - [ ] System Calls - [ ] Write() - [ ] Read() - [ ] Open() - [ ] Close() - [ ] Malloc() - [ ] Free() - [ ] Seek() - [ ] Shell - [ ] Separate file/program - [ ] ';' separated commands - [ ] I/O Redirection with '<' '>' - [ ] Commands - [x] echo - [x] clear - [x] help - [x] ls - [x] exit - [ ] touch (make file) - [ ] rm - [ ] mkdir (add dirs first) - [x] reboot - [ ] cd - [ ] Standard I/O stuff - [ ] stdin - [ ] stdout - [ ] stderr - [ ] printf - [ ] Memory manager - [x] Memory map - [x] Print mem map - [x] Physical - [ ] Virtual - [ ] Paging - [ ] User (or system) programs - [x] Loading them - [x] Running them - [x] Exit back to kernel/shell - [ ] Let them use libs - [ ] Proper include files (LibC?) - [ ] argc, argv[] - [ ] Standalone shell program - [ ] Code Editor - [ ] Text editor - [ ] Syntax highlighting - [ ] Saving/Loading - [ ] Hex editor - [ ] Assembler/Compiler - [ ] Assembler - [ ] Compiler (probably C) - [ ] Standard libs - [ ] Finish all todos - [ ] Refactoring!!! - [ ] Can it run DOOM? - [ ] Games - [ ] Minesweeper - [ ] Solitaire