summaryrefslogtreecommitdiff
path: root/src/kernel/util.asm
diff options
context:
space:
mode:
authorBenji Dial <benji3.141@gmail.com>2020-05-24 11:02:43 -0400
committerBenji Dial <benji3.141@gmail.com>2020-05-24 11:02:43 -0400
commit02f14113cbf14c6f842fb43ecbc68d0c851ef3b0 (patch)
tree75d2d943d9822b3f945fd947e9b91eec1d68e900 /src/kernel/util.asm
parent31d8ae388a7ded576abd3e3d99c3d9193ea6d704 (diff)
downloadportland-os-02f14113cbf14c6f842fb43ecbc68d0c851ef3b0.tar.gz
very basic vga, ata, serial drivers. start of fat and fs drivers
Diffstat (limited to 'src/kernel/util.asm')
-rw-r--r--src/kernel/util.asm37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/kernel/util.asm b/src/kernel/util.asm
new file mode 100644
index 0000000..acac17f
--- /dev/null
+++ b/src/kernel/util.asm
@@ -0,0 +1,37 @@
+bits 32
+
+global outb
+global inb
+global outw
+global inw
+
+section .text
+outb:
+ ;word [esp + 4] = port
+ ;byte [esp + 8] = value
+ mov dx, word [esp + 4]
+ mov al, byte [esp + 8]
+ out dx, al
+ ret
+
+inb:
+ ;word [esp + 4] = port
+ ;al out = value
+ mov dx, word [esp + 4]
+ in al, dx
+ ret
+
+outw:
+ ;word [esp + 4] = port
+ ;word [esp + 8] = value
+ mov dx, word [esp + 4]
+ mov ax, word [esp + 8]
+ out dx, ax
+ ret
+
+inw:
+ ;word [esp + 4] = port
+ ;ax out = value
+ mov dx, word [esp + 4]
+ in ax, dx
+ ret \ No newline at end of file