aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/common.protmode.print.asm
diff options
context:
space:
mode:
authorkotorifan <kotorifan05@gmail.com>2026-03-08 15:33:02 +0100
committerkotorifan <kotorifan05@gmail.com>2026-03-08 15:33:02 +0100
commitceedd4f2c7e990162f1b619f0d60471eea3aed1f (patch)
tree640ffbfcb9428624b6386d45d28db35d9ccac756 /src/common/common.protmode.print.asm
parentf81dee10ef19f0c82eb89d0e528bcbfb7a38b016 (diff)
downloadkotori-os-ceedd4f2c7e990162f1b619f0d60471eea3aed1f.tar.gz
Made a common directory, moved the protmode print there
Diffstat (limited to 'src/common/common.protmode.print.asm')
-rw-r--r--src/common/common.protmode.print.asm35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/common/common.protmode.print.asm b/src/common/common.protmode.print.asm
new file mode 100644
index 0000000..5995e69
--- /dev/null
+++ b/src/common/common.protmode.print.asm
@@ -0,0 +1,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