aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/common.protmode.print.asm
blob: 5995e691cecf87f2e33cc6f2fa3dfa3b0830b307 (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
;; common.protmode.print.asm

%include "common.asm"

_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