projects
/
bootcensus
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
second stage loader loading semi-works
[bootcensus]
/
src
/
boot
/
boot2.s
1
# this is the second-stage boot loader
2
.code16
3
.section .boot2,"a"
4
5
mov $0x13, %ax
6
int $0x10
7
8
# copy palette
9
mov $logo_pal, %si
10
xor %cl, %cl
11
12
0: mov $0x3c8, %dx
13
movb %cl, %al
14
outb %al, %dx
15
inc %dx
16
# red
17
movb (%si), %al
18
inc %si
19
shr $2, %al
20
outb %al, %dx
21
# green
22
movb (%si), %al
23
inc %si
24
shr $2, %al
25
outb %al, %dx
26
# blue
27
movb (%si), %al
28
inc %si
29
shr $2, %al
30
outb %al, %dx
31
inc %cl
32
jno 0b
33
34
# copy pixels
35
pushw $0xa000
36
pop %es
37
xor %di, %di
38
mov $logo_pix, %eax
39
shr $4, %eax
40
mov %ax, %ds
41
xor %si, %si
42
mov $16000, %ecx
43
rep movsl
44
45
cli
46
hlt
47
48
set_palette:
49
mov %sp, %bp
50
mov $0x3c8, %dx
51
movw 2(%bp), %ax
52
outb %al, %dx
53
inc %dx
54
movw 4(%bp), %ax
55
outb %al, %dx
56
movw 6(%bp), %ax
57
outb %al, %dx
58
movw 8(%bp), %ax
59
outb %al, %dx
60
ret
61
62
logo_pal:
63
.incbin "logo.pal"
64
65
.align 16
66
logo_pix:
67
.incbin "logo.raw"