diff --git a/kernel/arch/i386/io.nim b/kernel/arch/i386/io.nim new file mode 100644 index 0000000..f72bc25 --- /dev/null +++ b/kernel/arch/i386/io.nim @@ -0,0 +1,16 @@ +type + IOPacket* = tuple + port: uint16 + value: uint8 + +{.push stackTrace:off.} +proc outb*(data: IOPacket) = + asm """ + outb `data.value` `data.port` + """ + +proc inb*(port: uint16): uint = + asm """ + inb `port` `result` + """ +{.pop.}