X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=src%2Fboot%2Fboot2.s;h=838af4688e44bd453351ee3d651e8c0270b8dace;hp=86ee611d309a754d3b773eb05e1f68e0d79b68c4;hb=7fe9b061ba7556ca9617cd061d16e2bc8e040f63;hpb=e552b31989dbb36f780428332be1b4958d26a37b diff --git a/src/boot/boot2.s b/src/boot/boot2.s index 86ee611..838af46 100644 --- a/src/boot/boot2.s +++ b/src/boot/boot2.s @@ -2,7 +2,6 @@ .code16 .section .boot2,"a" - .extern print_num .extern ser_putchar mov $0x13, %ax @@ -16,8 +15,8 @@ mov $0x3c8, %dx movb %cl, %al outb %al, %dx - #DBG - call print_num + #### DBG + call ser_print_num mov $58, %al call ser_putchar mov $32, %al @@ -30,8 +29,8 @@ inc %si shr $2, %al outb %al, %dx - #DBG - call print_num + #### DBG + call ser_print_num mov $32, %al call ser_putchar xor %eax, %eax @@ -41,8 +40,8 @@ inc %si shr $2, %al outb %al, %dx - #DBG - call print_num + #### DBG + call ser_print_num mov $32, %al call ser_putchar xor %eax, %eax @@ -52,12 +51,10 @@ inc %si shr $2, %al outb %al, %dx - #DBG - call print_num + #### DBG + call ser_print_num mov $32, %al call ser_putchar - mov $13, %al - call ser_putchar mov $10, %al call ser_putchar xor %eax, %eax @@ -79,6 +76,46 @@ cli hlt + # expects string pointer in ds:si +ser_print_str: + pusha + +0: mov (%si), %al + cmp $0, %al + jz .Lend + call ser_putchar + inc %si + jmp 0b + +.Lend: popa + ret + + + # expects number in eax +ser_print_num: + # save registers + pusha + + movw $numbuf + 16, %si + movb $0, (%si) + mov $10, %ebx +.Lconvloop: + xor %edx, %edx + div %ebx + add $48, %dl + dec %si + mov %dl, (%si) + cmp $0, %eax + jnz .Lconvloop + + call ser_print_str + + # restore regs + popa + ret + +numbuf: .space 16 + logo_pal: .incbin "logo.pal"