forked from PoliEcho-holding-org/kern
186 lines
4.6 KiB
Plaintext
186 lines
4.6 KiB
Plaintext
=== Todo ===
|
||
|
||
Legend:
|
||
- [ ] Not done
|
||
- [x] Done
|
||
- [_] Was done at some point, but isn't now
|
||
- [!] Important todo
|
||
- [?] Optional
|
||
|
||
- [!] The Big Refactor
|
||
- [?] Use UEFI
|
||
- [ ] 32-bit (probably)
|
||
- [ ] Partitioned disk
|
||
- [ ] project structure
|
||
- [ ] system root
|
||
- [ ] arch/
|
||
- [x] lib/
|
||
- [x] include/
|
||
- [ ] cross compiler setup
|
||
- [x] libc - User space
|
||
- [x] libk - Kernel libc
|
||
- [x] kernel
|
||
- [x] use libk
|
||
- [x] makefile
|
||
- [?] probably a full rewrite
|
||
- [ ] userspace
|
||
- [ ] shell
|
||
- [ ] calc
|
||
- [ ] editor
|
||
- [ ] filesystem
|
||
- [ ] proper file organization
|
||
- [X] Makefile refactorin' (finally done!!!)
|
||
|
||
- [x] Multistage Bootloader
|
||
- [x] Bootloader reads filesystem to find files
|
||
- [x] The almighty 'printf()'
|
||
- [x] Write down where stuff is in memory (in notes.txt)
|
||
- [ ] "Text" mode (not actually)
|
||
- [x] Scrolling
|
||
- [ ] Scroll-back
|
||
- [x] Color codes (and just multicolor text in general)
|
||
- [x] Controll sequences!
|
||
- [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!
|
||
- [x] Filled verisons
|
||
- [x] Interrupts
|
||
- [x] IDT Setup (idt.h)
|
||
- [x] Exception handling
|
||
- [x] Hardware/software interrupts
|
||
- [x] Syscalls! (int 0x80)
|
||
- [x] IRQ 0 - PIT
|
||
- [x] IRQ 1 - Keyboard
|
||
- [x] IRQ 8 - CMOS Real time clock
|
||
- [?] Other IRQs (idk which ones)
|
||
- [ ] Sound
|
||
- [x] Pc Speaker
|
||
- [x] Notes (in hertz)
|
||
- [ ] Sound Blaster 16
|
||
- [x] MEGALOVANIA
|
||
- [ ] 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
|
||
- [ ] Floating point macros/functions
|
||
- [ ] Filesystem
|
||
- [x] Utility for filesystem building (not just an assembly file)
|
||
- [_] Better header for file i/o (disk/filesys.h)
|
||
- [x] Filetable
|
||
- [x] A better filesystem using INodes etc.
|
||
- [x] Files
|
||
- [x] Larger than one sector (512B)
|
||
- [x] Any file size (Not multiples of 512B)
|
||
- [x] Filetypes
|
||
- [ ] Directories
|
||
- [x] File tree
|
||
- [x] Dir Entries
|
||
- [ ] cd command
|
||
- [ ] Links??
|
||
- [ ] Symbolic
|
||
- [ ] Hard
|
||
- [ ] System Calls
|
||
- [x] Sleep()
|
||
- [x] Write()
|
||
- [ ] Read() (temporarly gets())
|
||
- [ ] Open()
|
||
- [ ] Close()
|
||
- [x] Malloc()
|
||
- [x] Free()
|
||
- [ ] Seek()
|
||
- [ ] Tell()
|
||
- [ ] Exit()
|
||
- [ ] Shell
|
||
- [ ] Separate file/program
|
||
- [ ] ';' separated commands
|
||
- [ ] I/O Redirection with '<' '>'
|
||
- [x] Display directory in prompt
|
||
- [ ] Custom prompts
|
||
- [ ] Variables
|
||
- [ ] Enviromental/Global
|
||
- [ ] Normal
|
||
- [ ] 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
|
||
- [x] stdout
|
||
- [ ] stderr
|
||
- [x] Memory manager
|
||
- [x] Memory map
|
||
- [x] Print mem map
|
||
- [x] Physical
|
||
- [x] Virtual
|
||
- [x] Paging
|
||
- [ ] User (or system) programs
|
||
- [x] Loading them
|
||
- [x] Running them
|
||
- [x] Exit back to kernel/shell
|
||
- [x] Let them use libs
|
||
- [ ] Proper include files (LibC?)
|
||
- [x] argc, argv[]
|
||
- [ ] Standalone shell program
|
||
- [ ] Userspace programs
|
||
- [x] Calculator
|
||
- [ ] Calendar
|
||
- [ ] 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
|
||
- [ ] Tetris
|
||
|