Mirai's Miscellaneous Misadventures
M25 / x86 / boot.s
1# copyright 2022 zamfofex
2# license: AGPLv3 or later
3
4.intel_syntax noprefix
5.code16
6
7.section boot
8 jmp 0:begin
9
10begin:
11 mov eax, 0
12 mov ebx, 0
13 mov ecx, 0
14 mov edx, 0
15 mov ds, ax
16 mov es, ax
17 mov fs, ax
18 mov gs, ax
19 mov ss, ax
20 mov esp, 0x7C00
21 mov ebp, esp
22
23# prepare to read
24
25 mov ch, 0
26 mov dh, 0
27 mov dl, 0x80
28
29 mov ecx, 6
30
31load_loop:
32 dec ecx
33 jz main
34
35 push ecx
36
37# load first part before the bootloader
38
39 mov ah, 2
40 mov al, 0x20
41 mov cl, 2
42 mov bx, 0x500
43
44 int 0x13
45 jc begin
46 cmp ah, 0
47 jne begin
48 cmp al, 0x20
49 jne begin
50
51# load second part before the bootloader
52
53 mov ah, 2
54 mov al, 0x1B
55 mov cl, 0x22
56 mov bx, 0x4500
57
58 int 0x13
59 jc begin
60 cmp ah, 0
61 jne begin
62 cmp al, 0x1B
63 jne begin
64
65# load loop end
66 pop ecx
67
68 cmp ah, 0
69 jne load_loop
70
71main:
72 jmp mimimi_boot