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