Mover el cursor del modo de texto no funciona

He estado trabajando para mover el cursor del modo de texto en el sistema operativo que estoy desarrollando actualmente. Tengo problemas para que aparezca. Aquí está el código que uso para actualizar el cursor:

   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;
    }

Utilizo gcc versión 4.8.3 (GCC) para compilar mi archivo principal. Estoy completamente perdido ¿Alguien tiene alguna sugerencia sobre cuál podría ser el problema con esto? Si desea ver la fuente completa, se encuentra aquí:https://github.com/AnonymousUser1337/Anmu/blob/master/Kernel/kernel.cpp

EDITAR: Estoy usando Virtual box para ejecutarlo

Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta