aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMarvin Borner2020-08-09 17:27:08 +0200
committerMarvin Borner2020-08-09 17:27:08 +0200
commit544acef0986977ef9d3a05d87bb9f55163b1280a (patch)
tree764d28f454b818c3ac19d59df17ecd914f9d7ecf /apps
parent162d024a53e1e31e00ff0b6f47dd4590edebc551 (diff)
Temporary cpu and serial drivers in libc
Diffstat (limited to 'apps')
-rw-r--r--apps/a.c34
-rw-r--r--apps/b.c36
-rw-r--r--apps/init.c35
3 files changed, 8 insertions, 97 deletions
diff --git a/apps/a.c b/apps/a.c
index 45375c9..040a454 100644
--- a/apps/a.c
+++ b/apps/a.c
@@ -1,41 +1,11 @@
// MIT License, Copyright (c) 2020 Marvin Borner
#include <def.h>
-#include <str.h>
-
-u8 inb(u16 port)
-{
- u8 value;
- __asm__ volatile("inb %1, %0" : "=a"(value) : "Nd"(port));
- return value;
-}
-
-void outb(u16 port, u8 data)
-{
- __asm__ volatile("outb %0, %1" ::"a"(data), "Nd"(port));
-}
-
-int is_transmit_empty()
-{
- return inb(0x3f8 + 5) & 0x20;
-}
-
-void serial_put(char ch)
-{
- while (is_transmit_empty() == 0)
- ;
- outb(0x3f8, (u8)ch);
-}
-
-void serial_print(const char *data)
-{
- for (u32 i = 0; i < strlen(data); i++)
- serial_put(data[i]);
-}
+#include <print.h>
void main()
{
while (1) {
- serial_print("a");
+ print("a");
}
}
diff --git a/apps/b.c b/apps/b.c
index 20ca888..1ed9249 100644
--- a/apps/b.c
+++ b/apps/b.c
@@ -1,42 +1,12 @@
// MIT License, Copyright (c) 2020 Marvin Borner
#include <def.h>
-#include <str.h>
-
-u8 inb(u16 port)
-{
- u8 value;
- __asm__ volatile("inb %1, %0" : "=a"(value) : "Nd"(port));
- return value;
-}
-
-void outb(u16 port, u8 data)
-{
- __asm__ volatile("outb %0, %1" ::"a"(data), "Nd"(port));
-}
-
-int is_transmit_empty()
-{
- return inb(0x3f8 + 5) & 0x20;
-}
-
-void serial_put(char ch)
-{
- while (is_transmit_empty() == 0)
- ;
- outb(0x3f8, (u8)ch);
-}
-
-void serial_print(const char *data)
-{
- for (u32 i = 0; i < strlen(data); i++)
- serial_put(data[i]);
-}
+#include <print.h>
void main()
{
- serial_print("\nB loaded\n");
+ print("\nB loaded\n");
while (1) {
- serial_print("b");
+ print("b");
}
}
diff --git a/apps/init.c b/apps/init.c
index c35f26f..91f5083 100644
--- a/apps/init.c
+++ b/apps/init.c
@@ -1,43 +1,14 @@
// MIT License, Copyright (c) 2020 Marvin Borner
#include <def.h>
+#include <print.h>
#include <str.h>
-u8 inb(u16 port)
-{
- u8 value;
- __asm__ volatile("inb %1, %0" : "=a"(value) : "Nd"(port));
- return value;
-}
-
-void outb(u16 port, u8 data)
-{
- __asm__ volatile("outb %0, %1" ::"a"(data), "Nd"(port));
-}
-
-int is_transmit_empty()
-{
- return inb(0x3f8 + 5) & 0x20;
-}
-
-void serial_put(char ch)
-{
- while (is_transmit_empty() == 0)
- ;
- outb(0x3f8, (u8)ch);
-}
-
-void serial_print(const char *data)
-{
- for (u32 i = 0; i < strlen(data); i++)
- serial_put(data[i]);
-}
-
void main()
{
- serial_print("Init loaded\n");
+ print("Init loaded\n");
__asm__ volatile("int $0x80");
while (1) {
- serial_print("b");
+ print("b");
};
}