From 84c5da93a755ef1f34e3284bb9e879f12e29bcc7 Mon Sep 17 00:00:00 2001
From: rick <rick@gnous.eu>
Date: Thu, 14 Sep 2023 20:37:04 +0200
Subject: [PATCH] add inb function and doc

---
 include/io.h | 21 +++++++++++++++++++++
 src/io.s     | 15 ++++++++++++---
 2 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/include/io.h b/include/io.h
index 8b3ea10..f0fb83c 100644
--- a/include/io.h
+++ b/include/io.h
@@ -1,6 +1,27 @@
+/** @file io.h
+ * Fichier d'en-tête pour les entrées sorties.
+ */
+
 #ifndef IO_H
 #define IO_H
 
+/**
+ * Fonction pour pouvoir envoyer des données à un port.
+ *
+ * Elle est définie dans le fichier @c io.s.
+ *
+ * @param port le port où envoyer les données
+ * @param data les données
+ */
 void outb(unsigned short port, unsigned char data);
 
+/**
+ * Fonction pour pouvoir lire une donnée d'un port.
+ *
+ * Elle est définie dans le fichier @c io.s.
+ *
+ * @param port le port où envoyer les données
+ * @return la valeur lue
+ */
+unsigned char inb(unsigned short port);
 #endif
diff --git a/src/io.s b/src/io.s
index 8e7697e..c624a31 100644
--- a/src/io.s
+++ b/src/io.s
@@ -1,11 +1,20 @@
 global outb
+global inb
 
 ; permet de communiquer avec des ports
-; pile :	[ esp + 8 ] la valeur à écrire
-;			[ esp + 4 ] le port
-;			[ esp ]		l'adresse de retour
+; pile :	[ esp + 8 ] 	la valeur à écrire
+;		[ esp + 4 ] 	le port
+;		[ esp ]		l'adresse de retour
 outb:
 	mov al, [esp + 8]
 	mov dx, [esp + 4]
 	out dx, al
 	ret
+
+; permet de récupérer la valeur d'un port
+; pile :	[ esp + 4 ] 	le port
+;		[ esp ]		l'adresse de retour
+inb:
+	mov dx, [esp + 4]
+	in al, dx
+	ret