diff options
author | Benji Dial <benji3.141@gmail.com> | 2020-05-24 11:02:43 -0400 |
---|---|---|
committer | Benji Dial <benji3.141@gmail.com> | 2020-05-24 11:02:43 -0400 |
commit | 02f14113cbf14c6f842fb43ecbc68d0c851ef3b0 (patch) | |
tree | 75d2d943d9822b3f945fd947e9b91eec1d68e900 /src/kernel/util.asm | |
parent | 31d8ae388a7ded576abd3e3d99c3d9193ea6d704 (diff) | |
download | portland-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.asm | 37 |
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 |