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
|