X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fboot%2Fboot2.s;h=86ee611d309a754d3b773eb05e1f68e0d79b68c4;hb=e552b31989dbb36f780428332be1b4958d26a37b;hp=47121ee70f6443544581ad88dcca61d8f8d53d23;hpb=098b0dd7bf6600ed6b904cd531a55a6415996900;p=bootcensus diff --git a/src/boot/boot2.s b/src/boot/boot2.s index 47121ee..86ee611 100644 --- a/src/boot/boot2.s +++ b/src/boot/boot2.s @@ -2,35 +2,86 @@ .code16 .section .boot2,"a" + .extern print_num + .extern ser_putchar + 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: xor %eax, %eax + mov $0x3c8, %dx + movb %cl, %al + outb %al, %dx + #DBG + call print_num + mov $58, %al + call ser_putchar + mov $32, %al + call ser_putchar + xor %eax, %eax + #### + inc %dx + # red + movb (%si), %al + inc %si + shr $2, %al + outb %al, %dx + #DBG + call print_num + mov $32, %al + call ser_putchar + xor %eax, %eax + #### + # green + movb (%si), %al + inc %si + shr $2, %al + outb %al, %dx + #DBG + call print_num + mov $32, %al + call ser_putchar + xor %eax, %eax + #### + # blue + movb (%si), %al + inc %si + shr $2, %al + outb %al, %dx + #DBG + call print_num + mov $32, %al + call ser_putchar + mov $13, %al + call ser_putchar + mov $10, %al + call ser_putchar + xor %eax, %eax + #### + add $1, %cl + jnc 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: - mov %sp, %bp - mov $0x3c8, %dx - movw 2(%bp), %ax - outb %al, %dx - inc %dx - movw 4(%bp), %ax - outb %al, %dx - movw 6(%bp), %ax - outb %al, %dx - movw 8(%bp), %ax - outb %al, %dx - ret +logo_pal: + .incbin "logo.pal" + + .align 16 +logo_pix: + .incbin "logo.raw"