+\r
+void Vesa_int_HideCursor(void)\r
+{\r
+ DrvUtil_Video_RemoveCursor( &gVesa_BufInfo );\r
+ #if BLINKING_CURSOR\r
+ if(giVesaCursorTimer != -1) {\r
+ Time_RemoveTimer(giVesaCursorTimer);\r
+ giVesaCursorTimer = -1;\r
+ }\r
+ #endif\r
+}\r
+\r
+void Vesa_int_ShowCursor(void)\r
+{\r
+ gbVesa_CursorVisible = (giVesaCursorX >= 0);\r
+ if(gVesa_BufInfo.BufferFormat == VIDEO_BUFFMT_TEXT)\r
+ {\r
+ DrvUtil_Video_DrawCursor(\r
+ &gVesa_BufInfo,\r
+ giVesaCursorX*giVT_CharWidth,\r
+ giVesaCursorY*giVT_CharHeight\r
+ );\r
+ #if BLINKING_CURSOR\r
+ giVesaCursorTimer = Time_CreateTimer(VESA_CURSOR_PERIOD, Vesa_FlipCursor, NULL);\r
+ #endif\r
+ }\r
+ else\r
+ DrvUtil_Video_DrawCursor(\r
+ &gVesa_BufInfo,\r
+ giVesaCursorX,\r
+ giVesaCursorY\r
+ );\r
+}\r
+\r
+/**\r
+ * \brief Swaps the text cursor on/off\r
+ */\r
+void Vesa_FlipCursor(void *Arg)\r
+{\r
+ if( gVesa_BufInfo.BufferFormat != VIDEO_BUFFMT_TEXT )\r
+ return ;\r
+\r
+ if( gbVesa_CursorVisible )\r
+ DrvUtil_Video_RemoveCursor(&gVesa_BufInfo);\r
+ else\r
+ DrvUtil_Video_DrawCursor(&gVesa_BufInfo,\r
+ giVesaCursorX*giVT_CharWidth,\r
+ giVesaCursorY*giVT_CharHeight\r
+ );\r
+ gbVesa_CursorVisible = !gbVesa_CursorVisible;\r
+ \r
+ #if BLINKING_CURSOR\r
+ giVesaCursorTimer = Time_CreateTimer(VESA_CURSOR_PERIOD, Vesa_FlipCursor, Arg);\r
+ #endif\r
+}\r
+\r