Перемещение курсора в текстовом режиме не работает

Я работал над перемещением курсора в текстовом режиме в операционной системе, которую я сейчас разрабатываю. У меня проблемы с тем, чтобы он вообще появился. Вот код, который я использую для обновления курсора:

   void update_cursor()
    {
        unsigned char cursor_loc = (y_pos*Cols)+x_pos;
         // cursor LOW port to vga INDEX register
        outb(0x3D4, 0x0F);
        outb(0x3D5, (unsigned char)(cursor_loc));
        // cursor HIGH port to vga INDEX register
        outb(0x3D4, 0x0E);
        outb(0x3D5, (unsigned char)((cursor_loc>>8)));


    }
   static inline void outb(unsigned short port, unsigned char value)
   {
      asm volatile ( "outb %0, %1" : : "a"(value), "Nd"(port) );

    }
    static inline unsigned char inb(unsigned short port)
    {
       unsigned char ret;
       asm volatile ( "inb %1, %0" : "=a"(ret) : "Nd"(port) );

       return ret;
    }

Я использую gcc версии 4.8.3 (GCC) для компиляции моего основного файла. Я полностью потерян. Кто-нибудь есть какие-либо предложения относительно того, что может быть проблема с этим? Если вы хотите увидеть полный источник, он находится здесь:https://github.com/AnonymousUser1337/Anmu/blob/master/Kernel/kernel.cpp

РЕДАКТИРОВАТЬ: Я использую Virtual Box для запуска

Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос