summaryrefslogtreecommitdiffstats
path: root/01_exercise/bootloader.c
diff options
context:
space:
mode:
Diffstat (limited to '01_exercise/bootloader.c')
-rw-r--r--01_exercise/bootloader.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/01_exercise/bootloader.c b/01_exercise/bootloader.c
new file mode 100644
index 0000000..a5806e4
--- /dev/null
+++ b/01_exercise/bootloader.c
@@ -0,0 +1,23 @@
+/* needs to stay the first line */
+asm(".code16gcc\njmp $0, $main");
+
+/* space for additional code */
+
+void main(void)
+{
+ asm(
+ "mov $0x007, %%ebx;"
+ "mov $0xE4E, %%eax; int $0x10;"
+ "mov $0xE69, %%eax; int $0x10;"
+ "mov $0xE63, %%eax; int $0x10;"
+ "mov $0xE65, %%eax; int $0x10;"
+ "mov $0xE20, %%eax; int $0x10;"
+ "mov $0xE42, %%eax; int $0x10;"
+ "mov $0xE6F, %%eax; int $0x10;"
+ "mov $0xE6F, %%eax; int $0x10;"
+ "mov $0xE74, %%eax; int $0x10;"
+ "mov $0xE73, %%eax; int $0x10;"
+ "jmp .;"
+ ::: "eax", "ebx"
+ );
+}