| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | multiboot: docs and cleanup | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | multiboot: parse mmap blocks | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | multiboot: get memory info from MB info | Tianhao Wang | 2024-06-11 |
| | | | | | Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | multiboot: basic support for multiboot info | Tianhao Wang | 2024-06-11 |
| | | | | | | | | | well, it's not trivial to use bios function because thanks to grub + multiboot, we are already in protected mode when the startup code takes control. Also the MB info is easier to play with than BIOS (or ACPI) Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | keyboard: pad key translation table | Tianhao Wang | 2024-06-11 |
| | | | | | | | | | some keys such as the Win key has larger scancode, causing out-of-bound read in the translation table. As a temp fix pad the tables with 0 up to 100 chars. Signed-off-by: Tianhao Wang <shrik3@mailbox.org> | ||
| * | fix io blocking bug in kbdctl | Tianhao Wang | 2024-06-11 |
| | | |||
| * | cgascr: refactoring | Tianhao Wang | 2024-06-11 |
| | | |||
| * | move io.rs into submodule | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore | Tianhao Wang | 2024-06-11 |
| | | |||
| * | rename wraper -> vector | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore | Tianhao Wang | 2024-06-11 |
| | | |||
| * | linker: "optimize" section arrangements | Tianhao Wang | 2024-06-11 |
| | | | | | | | | 1. throw vectors in a custom ".reserved" section 2. throw idt in a NOLOAD ".reserved_0" section: save some binary size (like .bss) since we don't care for its initial value. 3. squash all ".data.*" sections from rust into ".data" | ||
| * | interrupt: add rust binding for idt | Tianhao Wang | 2024-06-11 |
| | | |||
| * | formatting code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | split idt and vectors from startup code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore | Tianhao Wang | 2024-06-11 |
| | | |||
| * | interrupt: rename `guardian` to `interrupt_gate` | Tianhao Wang | 2024-06-11 |
| | | |||
| * | mask keyboard interrupt while polling key | Tianhao Wang | 2024-06-11 |
| | | |||
| * | mask interrupt during handler routine | Tianhao Wang | 2024-06-11 |
| | | |||
| * | remove plugbox module | Tianhao Wang | 2024-06-11 |
| | | |||
| * | pic: initialize with rust code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore linting | Tianhao Wang | 2024-06-11 |
| | | |||
| * | cgascr: init cursor in rust code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | re-organize code | Tianhao Wang | 2024-06-11 |
| | | |||
| * | keyboard: implement leds and reboot | Tianhao Wang | 2024-06-11 |
| | | | | | works on qemu, untested on real machine | ||
| * | thredding 1/? | Tianhao Wang | 2024-06-11 |
| | | |||
| * | fix bug in cga driver | Tianhao Wang | 2024-06-11 |
| | | |||
| * | paging: add basic bitmap frame allocator | Tianhao Wang | 2024-06-11 |
| | | |||
| * | chore: make clippy happy | Tianhao Wang | 2024-06-11 |
| | | |||
| * | define memory layout (if there was a layout) | Tianhao Wang | 2024-06-11 |
| | | |||
| * | add mm and ds modules (yet empty) | Tianhao Wang | 2024-06-11 |
| | | |||
| * | MM: add modules for memory management | Tianhao Wang | 2024-06-11 |
| | | |||
| * | PS/2 Keyboard controller: read and decode key | Tianhao Wang | 2024-06-11 |
| | | |||
| * | PS/2 Keyboard controller: baseline | Tianhao Wang | 2024-06-11 |
| | | |||
| * | add IOPort struct | Tianhao Wang | 2024-06-11 |
| | | | | | So that device IO can be be synchronized. | ||
| * | keyctl: use bitflags for key modifiers | Tianhao Wang | 2024-06-11 |
| | | | | | Merge key modifier getters and setters | ||
| * | make device_io a arch independent interface. | Tianhao Wang | 2024-06-11 |
| | | | | | | In arm we will be using MMIO instead of the IO instructions. However the peripherals should use the same interface for IOs. | ||
| * | basic interrupt/PIC support | Tianhao Wang | 2024-06-11 |
| | | |||
| * | pub(crate) use for println macros | Tianhao Wang | 2024-06-11 |
| | | | | | | | The println! and print! macros are defined in submodule "io", I have to add this trick to make it work across the crate. Maybe there is a better way... | ||
| * | add println! and panic! macro | Tianhao Wang | 2024-02-01 |
| | | | | | | The rust lazy_static requires interior mutability. I have to include a Mutex impl (spin::Mutex). But I'd like to implement my own primitives. | ||
| * | use inline asm for x86 IO instr | Tianhao Wang | 2024-02-01 |
| | | |||
| * | Allow dead_code and unused_imports at crate level | Tianhao Wang | 2024-02-01 |
| | | | | | | | to make the linter shutup.... You stupid linter, this is a new project! ofc there are stuffs defined not used.... I'll let you do the job when I finish... :( | ||
| * | formatting code, use tab identation -- before it's too late | Tianhao Wang | 2024-01-30 |
| | | |||
| * | minimal support for keyctrl, not complete | Tianhao Wang | 2023-03-24 |
| | | |||
| * | usable printf, with some ptr magic | Tianhao Wang | 2023-03-15 |
| | | |||
| * | add delay between IOs | Tianhao Wang | 2023-03-14 |
| | | |||
| * | CGA cursor location | Tianhao Wang | 2023-03-14 |
| | | |||
| * | cleanup | Tianhao Wang | 2023-03-14 |
| | | |||
| * | rework makefile, include other asm sources | Tianhao Wang | 2023-03-14 |
| | | |||
| * | adding io port | Tianhao Wang | 2023-03-11 |
| | | |||
