rulimine/src/main.c

33 lines
657 B
C
Raw Normal View History

2019-05-15 07:08:56 +03:00
asm (
".section .entry\n\t"
2019-05-15 07:08:56 +03:00
"xor dh, dh\n\t"
"push edx\n\t"
"call main\n\t"
);
#include <drivers/vga_textmode.h>
#include <lib/real.h>
2019-05-31 08:19:02 +03:00
#include <lib/print.h>
2020-01-21 13:42:17 +03:00
#include <lib/types.h>
extern symbol bss_begin;
extern symbol bss_end;
2019-05-15 07:08:56 +03:00
void main(int boot_drive) {
2020-01-21 13:42:17 +03:00
// Zero out .bss section
for (uint8_t *p = bss_begin; p < bss_end; p++)
*p = 0;
init_vga_textmode();
2019-05-31 08:19:02 +03:00
print("qLoader 2\n\n");
2020-01-21 13:42:17 +03:00
print("=> Boot drive: %x\n\n", boot_drive);
for (;;) {
struct rm_regs r = {0};
rm_int(0x16, &r, &r); // Real mode interrupt 16h
char c = (char)(r.eax & 0xff);
text_write(&c, 1);
}
2019-05-15 07:08:56 +03:00
}