From 8a0ab6de92c0e2b4260d6a149c43c58d004d74d9 Mon Sep 17 00:00:00 2001 From: kotorifan Date: Tue, 3 Feb 2026 22:50:32 +0100 Subject: Added common.asm --- src/boot/boot.stage2.print.asm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/boot/boot.stage2.print.asm (limited to 'src/boot/boot.stage2.print.asm') diff --git a/src/boot/boot.stage2.print.asm b/src/boot/boot.stage2.print.asm new file mode 100644 index 0000000..d567d6d --- /dev/null +++ b/src/boot/boot.stage2.print.asm @@ -0,0 +1,39 @@ + ;; boot.stage2.print.asm + + section .stage2 + + %define VGA_BUFFER 0xb8000 + %define WB_COLOR 0xf + + +_print_string_pm_vga: + mov eax, [esi] + lea esi, [esi+1] + cmp al, 0 + jne .print_char_pm_vga + add byte [pos_x], 0 + add byte [pos_y], 1 + ret + + .print_char_pm_vga: + mov ah, WB_COLOR ; White on black + mov ecx, eax + movzx eax, byte [pos_y] + mov edx, 160 + mul edx + movzx ebx, byte [pos_x] + shl ebx, 1 + + mov edi, VGA_BUFFER ; Video memory start + add edi, ebx ; Add X offset + add edi, eax ; Add Y offset + + mov eax, ecx ; Restore char + mov word [ds:edi], ax + add byte [pos_x], 1 ; Advance to right + ret + +pos_x: db 0 +pos_y: db 0 + + -- cgit v1.3