From 47fc6fe8bef017d120e6a88f75628003b72b9fe7 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Sun, 15 Sep 2019 00:05:48 +0200 Subject: Added basic IO receiver/sender --- src/io/io.c | 9 +++++++++ src/io/io.h | 10 ++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/io/io.c create mode 100644 src/io/io.h (limited to 'src/io') diff --git a/src/io/io.c b/src/io/io.c new file mode 100644 index 0000000..d617cf2 --- /dev/null +++ b/src/io/io.c @@ -0,0 +1,9 @@ +unsigned char receive(unsigned short port) { + unsigned char value; + __asm__ __volatile__ ("inb %1, %0" : "=a" (value) : "dN" (port)); + return value; +} + +void send(unsigned short _port, unsigned char _data) { + __asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data)); +} diff --git a/src/io/io.h b/src/io/io.h new file mode 100644 index 0000000..8d3beda --- /dev/null +++ b/src/io/io.h @@ -0,0 +1,10 @@ +#ifndef MELVIX_IO_H +#define MELVIX_IO_H + +#include + +unsigned char receive(unsigned short port); + +void send(unsigned short _port, unsigned char _data); + +#endif -- cgit v1.2.3