text: #include <console.h>
  #include <keyboard.h>
  
  void User_ConsoleWriteCharacter(unsigned char c)
  {
  	asm volatile("movl $1, %%eax\n\t"
  				 "movzx %0, %%ebx\n\t"
  				 "int $0x80\n"
  				 : : "b"(c)
  				);
  }
  
  void User_ConsoleWriteString(char* str)
  {
  	asm volatile("xor %%eax, %%eax\n\t"
  				 "leal (%0), %%ebx\n\t"
  				 "int $0x80\n"
  				 : : "b"(str)
  				);
  }
  
  void User_ConsoleWriteInt(unsigned int i, unsigned int base)
  {
  	asm volatile("movl $2, %%eax\n\t"
  				 "movl %0, %%ecx\n\t"
  				 "movl %1, %%ebx\n\t"
  				 "int $0x80\n"
  				 : : "c"(base), "b"(i)
  				);
  }
  
  void User_ConsoleClearScreen(const uint8_t c)
  {
  	asm volatile("movl $3, %%eax\n\t"
  				 "movzx %0, %%ebx\n\t"
  				 "int $0x80\n"
  				 : : "b"(c)
  				);
  }
  
  void User_ConsoleGotoXY(unsigned int x, unsigned int y) 
  {
  	asm volatile("movl $4, %%eax\n\t"
  				 "movl %0, %%ecx\n\t"
  				 "movl %1, %%ebx\n\t"
  				 "int $0x80\n"
  				 : : "c"(y), "b"(x)
  				);
  }
  
  