aboutsummaryrefslogtreecommitdiffstats
path: root/src/boot/boot.stage2.print.asm
blob: 4527b87c8f5b591284fad8e23fe90dbd3f3fc282 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    ;; boot.stage2.print.asm
    
    %define VGA_BUFFER 0xb8000
    %define WB_COLOR 0xf


_print_string_pm_vga:   
    pusha
    mov edi, VGA_BUFFER
    mov ah, WB_COLOR
    xor ecx, ecx
    xor edx, edx

    .print_loop:
    lodsb
    test al, al
    jz .done

    push eax
    mov eax, edx
    imul eax, eax, 160
    lea edi, [VGA_BUFFER + eax]
    lea edi, [edi + ecx * 2]
    pop eax
    
    ;; Advance cursor
    inc cl
    cmp cl, 80
    jb .print_loop
    xor cl, cl
    inc dl

    jmp .print_loop
    
    .done:
    popa
    ret