diff --git a/programs/keyboard/src/main.cpp b/programs/keyboard/src/main.cpp index 67c42bf5..5aff8b00 100644 --- a/programs/keyboard/src/main.cpp +++ b/programs/keyboard/src/main.cpp @@ -11,9 +11,12 @@ const char* source = "Hello world"; int main(){ + char buffer[16]; + for(int i = 0; i < 10; ++i){ - auto c = read_char(); - print(c); + auto c = read_input(buffer, 15); + buffer[c] = '\0'; + print(buffer); } exit(0); diff --git a/userlib/include/print.hpp b/userlib/include/print.hpp index 6ff08181..9704546a 100644 --- a/userlib/include/print.hpp +++ b/userlib/include/print.hpp @@ -47,12 +47,12 @@ void print_line(size_t v){ print_line(); } -char read_char(){ +size_t read_input(char* buffer, size_t max){ size_t value; asm volatile("mov rax, 3; int 50; mov %0, rax" : "=m" (value) - : //No inputs - : "rax", "rbx"); + : "b" (buffer), "c" (max) + : "rax"); return value; }