-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodo.txt
33 lines (30 loc) · 1.6 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
ObisidianOS Todo list
Immediate tasks:
-Make bootloader from scratch
-Everything will go in 0x500 (top of IVT and BDA) to 0x9FC00 (start of EBDA) (654K total)
-Get total memory size with int 0x12: ax = KB from 0 to EBDA
-Load kernel at 0x500, fixed size stack above, then sinlge heap using remainder
-Data structure library: binary search tree, red-black tree, bitset
-New malloc:
-One RB tree of free block sizes, and one of free block locations
-Use size list of find minimum size free block when mallocing
-Use location list to merge adjacent free blocks when freeing
PROGRESS - (high) stdlib.h function implementations
PROGRESS - (high) stdio.h functions
- (high) raw binary executable loader
- (high) Editor (built-in to kernel for now)
- (low) only move cursor down one line when valid process is started AND it writes to stdout
- (low) PS/2 mouse driver, cursor drawing
- (low) have the keyboard interrupt only place a stroke in a circular queue instead of actually calling the key listener from the interrupt handler
- (high) vertical sync (read from 0x3DA, bit 3)
- (high) graphics library (2D primitives, then textures, then matrices for 3D, depth buffer, and simple lighting. Also put keyboard/mouse input functions.
- (med) double buffering
- for GL, pretend color palette is 3-2-3 RGB ?
- (high) C compiler
- (high) ELF32 linker to build libraries and executables to make self-hosted
>>>>>>>>>>>>>>>>------------<<<<<<<<<<<<<<<<
----------------Self-hosted!----------------
>>>>>>>>>>>>>>>>------------<<<<<<<<<<<<<<<<
- (high) basic UX customizations
- (high) games! (pong, snake, platformers, etc.)
- GUI