summaryrefslogtreecommitdiff
path: root/src/bootloader/bios_functions/bios_disk.asm
blob: 28fc74de57bd82ea30ebf042dee4772115c51064 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
bios_disk:
.load_sectors:
pusha
mov es, dx

mov ah, 0x02      ; read disc sectors
mov ch, 0x00      ; track 0
mov dh, 0x00      ; head 0
mov dl, [stage0.boot_device]

int 0x13

jc .failed

mov ah, 0
popa
ret

.failed:

mov bx, .loadsectors_error
mov cx, 0
call bios_print

push 0
mov al, ah
mov ah, 0   ; you need to clean up the bios print function!
push ax
mov cx, 1
mov bx, sp
call bios_print


mov ah, 1
popa
ret

.loadsectors_error: db "Error loading sectors: ", 0