diff options
| author | Alejandro Sior <aho@sior.be> | 2022-05-13 20:50:39 +0200 |
|---|---|---|
| committer | Alejandro Sior <aho@sior.be> | 2022-05-13 20:50:39 +0200 |
| commit | e50cbe8eb763cf63fb44b047d5164f6fbf07eb39 (patch) | |
| tree | 8acb610a4f33462c843f54016861780ffadc010d /main.ha | |
boot: longmode to realmode stub
This is the initial commit to the repo. It adds all the code.
The last proper thing that I got working before committing is
calling real mode functions from long mode using a stub.
Next up, I would like to implement a disk reader abstraction over
the BIOS in order to read form partitions (most notably FAT32).
Diffstat (limited to 'main.ha')
| -rw-r--r-- | main.ha | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -0,0 +1,22 @@ +use vga; +use term; +use rt; +use real; + +export fn main() void = { + let text = vga::attach(0xb8000, 80, 25); + term::clear(&text); + term::setcolors(&text, (term::color::LMAGENTA, term::color::BLACK)); + + term::print(&text, "hello hare world!"); + for (let i = 0z; i < 10; i += 1) { + term::print(&text, "a"); + for (let j = 0z; j < 10000000; j += 1) { + yield; + }; + }; + + real::regs.edi = 0; + real::regs.esi = 0x7c00; + real::call((&real::testt): uintptr: u16); +}; |
