# Todo for Choacury

### Barebones

- [x] Compiler (Linux).
- [x] Compiler (Windows).
- [x] Makefile.
- [x] Cursor Control.

### Kernel
- [x] String Message.
- [x] Keyboard Input (PS/2 Only)
- [ ] Multi-Tasking.
- [ ] Multi Core.
- [ ] Multi Threading.
- [ ] ML Paging
- [ ] More CPU features supported (e.g. AVX10, AVX512, SSE5...)

### Extra Drivers
- [ ] USB Keyboard Support.
- [ ] Network Card support.
- [ ] USB Mouse Support.

### Misc.
- [ ] Ctrl+Alt+Del support 

### Command Line Interface (CLI)
- [x] Scrolling.
- [x] Barebones CLI.
- [x] Terminal Commands.
- [x] Command Input Detection.
- [x] Standard "echo" command.

### Filesystem
- [x] Barebones.
- [x] GPT Partitioning Support.
- [x] Detection from CLI.
- [x] Let Users View files/dirs
- [x] Let Users Read files/dirs
- [ ] Let Users Modify files/dirs
- [ ] Let Users Create files/dirs
- [ ] Built in CLI Text Editor
- [x] FAT Support.
- [ ] RAM Disk
- [ ] Custom Filesystem (CHFM).
- [ ] ext4 (Linux) Support.
- [ ] NTFS (Windows) Support.

### Graphics
- [x] 4-bit colour support (16/Standard DOS colours).
- [x] 8-bit colour support (256 colours/ANSI Support).
- [x] High-colour/True colour support (beyond 8-bit/>=256 colours).
- [x] Graphical Shell (GUI).
- [ ] Window Management System
- [x] Mouse Drivers
- [ ] Virtual Terminal/Command Prompt
- [ ] Basic GUI Apps. (e.g. File Manager, Program Launcher)
- [x] VMWare SVGA II drivers
- [x] Bochs Graphics Adaptor
- [ ] Intel HD drivers
- [ ] NVIDIA drivers
- [ ] AMD drivers
- [ ] 3D acceleration
- [x] Possible switch to GPU framebuffer

### Audio
- [x] PC Speaker/DOS Beeps.
- [ ] Sound Blaster 16.
- [ ] Audio Codec '97.
- [ ] Intel High Definition Audio.

### Networking/Internet
- [ ] Standard networking support.
- [ ] Ability to ping networks/servers.
- [ ] Ability to host a server
- [ ] Working Graphical Web Browser

### CPU Architectures
- [x] x86 (Common Intel/AMD)
- [ ] ARM and ARM-based (e.g. Apple Silicon)
- [ ] PowerPC
- [ ] MIPS

### Shell
- [ ] Arrow keys support in shell
- [ ] Tab key implementation
- [ ] Options for commands like ls -a -l -R.... and support for more cd commands like cd -, cd ~
- [ ] Stop using VGA text mode

