From ca2e904cf6604b76534ebbc0194894ffea56538b Mon Sep 17 00:00:00 2001 From: kieron Date: Fri, 18 Sep 2015 17:28:12 +0000 Subject: [PATCH] Added the good stuff. git-svn-id: https://spexeah.com:8443/svn/Asuro@5 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- bin/kernel.bin | Bin 0 -> 12516 bytes src/stub/stub.asm | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100755 bin/kernel.bin create mode 100644 src/stub/stub.asm diff --git a/bin/kernel.bin b/bin/kernel.bin new file mode 100755 index 0000000000000000000000000000000000000000..6fef80cb9ebb13cc46a0ec8dff6571f165ab402c GIT binary patch literal 12516 zcmeI2QD|Fb6vw|LH%-W@rkKux6+a=2iMHfn0~HEcHKWjOt*(6-4D@EX>B5rSk$hDP zQwMj0eqMro6$IB;L2$5#V27HfWb3RCZGD(ka0~}`w#XhvGBQ|q&dp8CG(%Crmvh2* z@44Ukf9IUvV+dnTe1fqqC;s|PkwEv4=7R}LMMeaO01+SpM1Tko0U|&IhyW2F0z`la{I>+$ zUwr(6ht;1X~g3-Is`_}!H zCFHU&0W+1T%hzz&`Yt+YavI*II43(*s^DV*J4cA&D`J56su+XUD z_Z^T|K3+ss?Vhv~na^O3=YNpj7N?WRWNk}cE7iM7*0Zi9X_sFcK!MpGHkOrg;o=@x zi~aebKPke>zwL1m^KI<~F6Mr0^21QyTSCoLyew3TTas$F=*Jr-}=esbW zXJgsl+=;UxW4lit3wOhYg7S1YR1o1^l`eMfoA>;(T>J5YYfF*k3rtoI%WGd^!(RvB zQmYwDk-6P+v-sWW>T2yq=~s{3IJZ8td3Hr8hbvtJ^0u{ce`m*p%uqIHLS|#RuMB%N zwnMFYrN$q_e6*q{5#w$kS1lZa@*W1dQF+C#_my3*iuIn9SKI2XVLf@>I@wmoSPqr3 z$u?{J*V2^;5CI}U1c(3;AOb{y2oM1x@Mi*ebT~Nm>L@=tKJ^^>IZZpI=8vms9#?Z( zT+eEJ{0NWhy3i6J7*W$Am7V7K*}Tv)FLISA0VLXT9)g^Yv@^RHYmSx(-+zF?VZhfbWJG`n5CI}U1c(3;AOb{y2oM1x zKm`650)zPzd65%poDB-?UBLzus!-WrJfHvD?ZBy*xnS7u_v0JNedTM+d*K nJ7?m~x~E_oe`~jO99Bo*AqvAW?%c7at#O`F*WdKvj&ZaHNzi}g literal 0 HcmV?d00001 diff --git a/src/stub/stub.asm b/src/stub/stub.asm new file mode 100644 index 00000000..b361513e --- /dev/null +++ b/src/stub/stub.asm @@ -0,0 +1,79 @@ +;///////////////////////////////////////////////////////// +;// // +;// Freepascal barebone OS // +;// stub.asm // +;// // +;///////////////////////////////////////////////////////// +;// +;// By: De Deyn Kim +;// License: Public domain +;// + +; +; Kernel stub +; + +; +; We are in 32bits protected mode +; +[bits 32] + +; +; Export entrypoint +; +[global kstart] + +; +; Import kernel entrypoint +; +[extern kmain] + +; +; Posible multiboot header flags +; +MULTIBOOT_MODULE_ALIGN equ 1<<0 +MULTIBOOT_MEMORY_MAP equ 1<<1 +MULTIBOOT_GRAPHICS_FIELDS equ 1<<2 +MULTIBOOT_ADDRESS_FIELDS equ 1<<16 + +; +; Multiboot header defines +; +MULTIBOOT_HEADER_MAGIC equ 0x1BADB002 +MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_MODULE_ALIGN | MULTIBOOT_MEMORY_MAP +MULTIBOOT_HEADER_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) + +; +; Kernel stack size +; +KERNEL_STACKSIZE equ 0x4000 + +section .text + +; +; Multiboot header +; +align 4 +dd MULTIBOOT_HEADER_MAGIC +dd MULTIBOOT_HEADER_FLAGS +dd MULTIBOOT_HEADER_CHECKSUM + +; +; Entrypoint +; +kstart: + mov esp, KERNEL_STACK+KERNEL_STACKSIZE ;Create kernel stack + push eax ;Multiboot magic number + push ebx ;Multiboot info + call kmain ;Call kernel entrypoint + cli ;Clear interrupts + hlt ;Halt machine + +section .bss + +; +; Kernel stack location +; +align 32 +KERNEL_STACK: + resb KERNEL_STACKSIZE \ No newline at end of file