hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/user/program.c
diff options
context:
space:
mode:
Diffstat (limited to 'user/program.c')
-rw-r--r--user/program.c63
1 files changed, 0 insertions, 63 deletions
diff --git a/user/program.c b/user/program.c
deleted file mode 100644
index 65621f5..0000000
--- a/user/program.c
+++ /dev/null
@@ -1,63 +0,0 @@
-static long sys_write(const char* buffer, unsigned long buffer_length)
-{
- long ret;
- __asm__ volatile("int $0x80" : "=a"(ret) : "a"(1L), "D"(buffer), "S"(buffer_length) : "memory");
- return ret;
-}
-
-static long sys_read(void)
-{
- long ret;
- __asm__ volatile("int $0x80" : "=a"(ret) : "a"(2L) : "memory");
- return ret;
-}
-
-static void sys_exit(long code)
-{
- __asm__ volatile("int $0x80" : : "a"(0L), "D"(code) : "memory");
- for (;;);
-}
-
-static void put(const char* string)
-{
- unsigned long n = 0;
- while (string[n])
- n++;
- sys_write(string, n);
-}
-
-void _start(void)
-{
- put("what's your name? ");
- char name[64];
- int name_length = 0;
-
- for (;;)
- {
- char character = (char)sys_read();
- if (character == '\n')
- break;
-
- if (character == '\b')
- {
- if (name_length > 0)
- {
- name_length--;
- sys_write("\b \b", 3);
- }
-
- continue;
- }
-
- if (name_length < 63)
- {
- name[name_length++] = character;
- sys_write(&character, 1);
- }
- }
-
- put("\noue va te faire foutre ");
- sys_write(name, name_length);
- put("\n");
- sys_exit(0);
-}