X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=src%2Fboot%2Fboot2.s;h=7b8c7bb68a3a1614a35de1da6aecdb007ee499ad;hp=47121ee70f6443544581ad88dcca61d8f8d53d23;hb=07db0aabb3ad8dbb0a3cee2d3837dd93792ae825;hpb=ced643ce94dafd3d31e121435a40a967993e2be5 diff --git a/src/boot/boot2.s b/src/boot/boot2.s index 47121ee..7b8c7bb 100644 --- a/src/boot/boot2.s +++ b/src/boot/boot2.s @@ -5,20 +5,44 @@ mov $0x13, %ax int $0x10 - pushw $63 - pushw $63 - pushw $0 - pushw $0xff - call set_palette - add $8, %sp + # copy palette + mov $logo_pal, %si + xor %cl, %cl +0: mov $0x3c8, %dx + movb %cl, %al + outb %al, %dx + inc %dx + # red + movb (%si), %al + inc %si + shr $2, %al + outb %al, %dx + # green + movb (%si), %al + inc %si + shr $2, %al + outb %al, %dx + # blue + movb (%si), %al + inc %si + shr $2, %al + outb %al, %dx + inc %cl + jno 0b + + # copy pixels pushw $0xa000 pop %es xor %di, %di + mov $logo_pix, %eax + shr $4, %eax + mov %ax, %ds + xor %si, %si mov $16000, %ecx - mov $0xffffffff, %eax - rep stosl + rep movsl + cli hlt set_palette: @@ -34,3 +58,10 @@ set_palette: movw 8(%bp), %ax outb %al, %dx ret + +logo_pal: + .incbin "logo.pal" + + .align 16 +logo_pix: + .incbin "logo.raw"