Skip to content

Commit 6002012

Browse files
committed
Stil in progress, not bootable boot.asm
1 parent b3097f1 commit 6002012

7 files changed

Lines changed: 31 additions & 8 deletions

File tree

boot.asm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
bits 16 ; Defines architecture of bootloader
1+
[bits 16] ; Defines architecture of bootloader
22
org 0x7c00 ; Defines general offset
33

44

bootloader/disk_mng.asm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,24 @@ section .text:
1212
mov dh, 0x00 ; Head that read
1313

1414
int 0x13 ; BIOS interupt to read data
15-
jc _disk_error ; If carry is set raise an error
15+
jc _disk_error ; If carry is set raise an error
1616

1717
pop dx ; Recover DX from stack
1818
cmp al, dh ; Check amount of readen sectors
19-
jne _sectors_error ; If they are not equal raise an error
19+
jne _sectors_error ; If they are not equal raise an error
2020
popa ; Recover registers
2121
ret ; Exit the function
2222

2323

2424
_disk_error:
2525
push disk_error_text
2626
call _printformat
27+
jmp $
2728

2829
_sectors_error:
2930
push sectors_error_text
3031
call _printformat
32+
jmp $
3133

3234
disk_error_text: db "Disk read error\0"
3335
sectors_error_text: db "Incorrect number of sectors read\0",

bootloader/gets.asm

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
global _gets
22

3-
43
section .text:
54
; Get string function
65
_gets:

bootloader/io.asm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
; Includes headers
2-
%include "functions/printf.asm" ; Loads printf function
3-
%include "functions/gets.asm" ; Loads gets function
2+
%include "bootloader/printf.asm" ; Loads printf function
3+
%include "bootloader/gets.asm" ; Loads gets function

bootloader/kernel_entry.asm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[bits 32]
2+
3+
extern main
4+
global _load_kernel
5+
6+
section .text:
7+
_load_kernel:
8+
call main
9+
jmp $

kernel/kernel.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
extern "C" void main(){
2+
*(char*)0xb8000 = 'Q';
3+
return;
4+
}

run.sh

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
#!/bin/bash
22

3-
nasm -f bin -o boot.bin boot.asm
4-
qemu-system-x86_64 -fda boot.bin
3+
nasm -f bin -o build/boot.bin boot.asm
4+
nasm -f elf -o build/kernel_entry.o bootloader/kernel_entry.asm
5+
i386-elf-gcc -ffreestanding -m32 -g -c kernel/kernel.cpp -o build/kernel.o
6+
7+
i386-elf-ld -o build/full_kernel.bin -Ttext 0x1000 build/kernel_entry.o build/kernel.o --oformat binary
8+
9+
cat build/boot.bin build/full_kernel.bin > build/OS.bin
10+
11+
# qemu-system-x86_64 -fda boot.bin
12+
13+
qemu-system-x86_64 -drive format=raw,file="build/OS.bin",index=0,if=flash, -m 128M

0 commit comments

Comments
 (0)