--- /dev/null
+\r
+#include "core.h"\r
+\r
+void CHNMain(void)\r
+{\r
+ uchar s[128];\r
+ uint data;\r
+ UI_Task *mytask;\r
+ uint i;\r
+ IO_DisplayControl *disp_ctrl;\r
+ UI_Sheet *vramsheet, *testsheet, *sheet_desktop;\r
+ UI_Sheet *sheet08, *sheet16, *sheet32;\r
+ int x, y;\r
+ UI_Timer *timer1, *timer2, *timer3;\r
+ uint counter1, counter2, counter3;\r
+ UI_TextBox *textbox;\r
+ UI_Console *console;\r
+ IO_FloppyDisk *boot_fd;\r
+ IO_File *file;\r
+\r
+ i = 0;\r
+ data = 0;\r
+\r
+ Initialize_System();\r
+\r
+ mytask = System_MultiTask_GetNowTask();\r
+ disp_ctrl = System_Display_Get_Controller();\r
+ boot_fd = FloppyDisk_Initialize(ADR_DISKIMG);\r
+\r
+ vramsheet = disp_ctrl->vramsheet;\r
+\r
+ Sheet_Drawing_Fill_Rectangle(vramsheet, 0xffffff, 0, 0, vramsheet->size.x - 1, vramsheet->size.y - 1);\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10, 0x000000, "Welcome to CHNOSProject!");\r
+\r
+ if(disp_ctrl->display_mode == DISPLAYMODE_VBE_LINEAR){\r
+ i = 0;\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10 + 16 * 1, 0x000000, "Please Select the VideoMode Number.");\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10 + 16 * 2, 0x000000, "(Use cursor Up or Down, Select Enter.)");\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10 + 16 * 6, 0x000000, "Press Esc to boot in VGA(320x200 8bit).");\r
+ Sheet_Drawing_Fill_Rectangle(vramsheet, 0x00ff00, 10, 10 + 16 * 3, VGA08_VRAM_XSIZE - 10 - 1, 10 + 16 * 5 - 1);\r
+ snprintf(s, sizeof(s), "%d:0x%X %dx%d-%dbits", i, disp_ctrl->VBE.list_vmode[i].mode_number, disp_ctrl->VBE.list_vmode[i].xsize, disp_ctrl->VBE.list_vmode[i].ysize, disp_ctrl->VBE.list_vmode[i].bpp);\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10 + 16 * 3, 0x000000, s);\r
+\r
+ for(;;){\r
+ if(FIFO32_MyTaskFIFO_Status() == 0){\r
+ System_MultiTask_Task_Sleep(mytask);\r
+ } else{\r
+ data = FIFO32_MyTaskFIFO_Get();\r
+ if(SIGNAL_KEY_OFFSET <= data && data <= (SIGNAL_KEY_OFFSET + 0xFFFF)){\r
+ data -= SIGNAL_KEY_OFFSET;\r
+ if(!(data & KEYID_MASK_BREAK) && (data & KEYID_MASK_EXTENDED)){\r
+ if((data & KEYID_MASK_ID) == KEYID_CURSOR_U){\r
+ if(i == 0){\r
+ i = disp_ctrl->VBE.list_vmode_tags - 1;\r
+ } else{\r
+ i--;\r
+ }\r
+ Sheet_Drawing_Fill_Rectangle(vramsheet, 0x00ff00, 10, 10 + 16 * 3, VGA08_VRAM_XSIZE - 10 - 1, 10 + 16 * 5 - 1);\r
+ snprintf(s, sizeof(s), "%d:0x%X %dx%d-%dbits", i, disp_ctrl->VBE.list_vmode[i].mode_number, disp_ctrl->VBE.list_vmode[i].xsize, disp_ctrl->VBE.list_vmode[i].ysize, disp_ctrl->VBE.list_vmode[i].bpp);\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10 + 16 * 3, 0x000000, s);\r
+ } else if((data & KEYID_MASK_ID) == KEYID_CURSOR_D){\r
+ if(i == disp_ctrl->VBE.list_vmode_tags - 1){\r
+ i = 0;\r
+ } else{\r
+ i ++;\r
+ }\r
+ Sheet_Drawing_Fill_Rectangle(vramsheet, 0x00ff00, 10, 10 + 16 * 3, VGA08_VRAM_XSIZE - 10 - 1, 10 + 16 * 5 - 1);\r
+ snprintf(s, sizeof(s), "%d:0x%X %dx%d-%dbits", i, disp_ctrl->VBE.list_vmode[i].mode_number, disp_ctrl->VBE.list_vmode[i].xsize, disp_ctrl->VBE.list_vmode[i].ysize, disp_ctrl->VBE.list_vmode[i].bpp);\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10 + 16 * 3, 0x000000, s);\r
+ } else if((data & KEYID_MASK_ID) == KEYID_ENTER){\r
+ if(System_Display_VESA_Set_VideoMode(i) == 0){\r
+ break;\r
+ }\r
+ Sheet_Drawing_Fill_Rectangle(vramsheet, 0x00ff00, 10, 10 + 16 * 3, VGA08_VRAM_XSIZE - 10 - 1, 10 + 16 * 4 - 1);\r
+ Sheet_Drawing_Put_String(vramsheet, 10, 10 + 16 * 4, 0x000000, "Function Failed. Try again.");\r
+ } else if((data & KEYID_MASK_ID) == KEYID_ESC){\r
+ System_TaskControlMessage_Send_AllTask(TCM_OFFSET + TCM_INFO_DISPLAY_UPDATE_RESOLUTION);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ Sheet_SetBuffer(vramsheet, disp_ctrl->vram, disp_ctrl->xsize, disp_ctrl->ysize, disp_ctrl->bpp);\r
+\r
+ sheet_desktop = Sheet_Initialize();\r
+ Sheet_SetBuffer(sheet_desktop, Null, disp_ctrl->xsize, disp_ctrl->ysize, disp_ctrl->bpp);\r
+\r
+ Sheet_Drawing_Fill_Rectangle(sheet_desktop, 0xffffff, 0, 0, disp_ctrl->xsize - 1, disp_ctrl->ysize - 1);\r
+ Sheet_Drawing_Put_String(sheet_desktop, 10, 10, 0x000000, "Welcome to CHNOSProject!");\r
+ if(FloppyDisk_IsPathExist(boot_fd, "chnlogo.bmp")){\r
+ file = File_Initilaize();\r
+ if(FloppyDisk_LoadFile(boot_fd, file, "chnlogo.bmp") == 0){\r
+ Format_BMP_DrawPicture(sheet_desktop->vram, sheet_desktop->size.x, disp_ctrl->xsize - 128 - 4, 4, 0, 0, file->img);\r
+ }\r
+ File_Free(file);\r
+ }\r
+\r
+ testsheet = Sheet_Initialize();\r
+\r
+ sheet08 = Sheet_Initialize();\r
+ sheet16 = Sheet_Initialize();\r
+ sheet32 = Sheet_Initialize();\r
+\r
+ Sheet_SetBuffer(testsheet, Null, 256, 128, 8);\r
+ Sheet_SetBuffer(sheet08, Null, 128, 128, 8);\r
+ Sheet_SetBuffer(sheet16, Null, 128, 128, 16);\r
+ Sheet_SetBuffer(sheet32, Null, 128, 128, 32);\r
+\r
+ for(y = 0; y < testsheet->size.y; y++){\r
+ for(x = 0; x < testsheet->size.x; x++){\r
+ ((uchar *)testsheet->vram)[y * testsheet->size.x + x] = x * 2;\r
+ }\r
+ }\r
+\r
+ Drawing08_Fill_Rectangle(testsheet->vram, testsheet->size.x, 0xc6c6c6, 4, 24, testsheet->size.x - 4 - 1, testsheet->size.y - 4 - 1);\r
+\r
+ textbox = TextBox_Initialize();\r
+ TextBox_SetBuffer(textbox, 20, 6, 8, testsheet);\r
+ TextBox_Show(textbox, 0, 4, 24);\r
+ TextBox_Put_Character(textbox, '>');\r
+ TextBox_SetEnable_RecordInputText(textbox, True);\r
+\r
+\r
+ Drawing08_Put_String(testsheet->vram, testsheet->size.x, 4, 4, 0xffffff, "TestSheet");\r
+ snprintf(s, sizeof(s), "Memory:%d Bytes", System_Get_PhisycalMemorySize());\r
+ Drawing08_Put_String(testsheet->vram, testsheet->size.x, 8, 24 + 16 * 4, 0xffffff, s);\r
+\r
+ for(y = 0; y < sheet08->size.y; y++){\r
+ for(x = 0; x < sheet08->size.x; x++){\r
+ ((uchar *)sheet08->vram)[y * sheet08->size.x + x] = RGB_32_To_08(((x * 2) << 16) | ((y * 2) << 8) | (x + y));\r
+ }\r
+ }\r
+\r
+ for(y = 0; y < sheet16->size.y; y++){\r
+ for(x = 0; x < sheet16->size.x; x++){\r
+ ((ushort *)sheet16->vram)[y * sheet16->size.x + x] = RGB_32_To_16(((x * 2) << 16) | ((y * 2) << 8) | (x + y));\r
+ }\r
+ }\r
+\r
+ for(y = 0; y < sheet32->size.y; y++){\r
+ for(x = 0; x < sheet32->size.x; x++){\r
+ ((uint *)sheet32->vram)[y * sheet32->size.x + x] = ((x * 2) << 16) | ((y * 2) << 8) | (x + y);\r
+ }\r
+ }\r
+\r
+ Sheet_SetParent(sheet_desktop, vramsheet);\r
+ Sheet_Show(sheet_desktop, 0, 0, 0);\r
+\r
+ Sheet_SetParent(sheet08, vramsheet);\r
+ Sheet_Show(sheet08, 1, 20, vramsheet->size.y >> 1);\r
+\r
+ Sheet_SetParent(sheet16, vramsheet);\r
+ Sheet_Show(sheet16, 1, 220, vramsheet->size.y >> 1);\r
+\r
+ Sheet_SetParent(sheet32, vramsheet);\r
+ Sheet_Show(sheet32, 1, 420, vramsheet->size.y >> 1);\r
+\r
+ Sheet_SetParent(testsheet, vramsheet);\r
+ Sheet_SetMovable(testsheet, True);\r
+ Sheet_SetInputFIFO(testsheet, mytask->fifo);\r
+ Sheet_Show(testsheet, 6, 10, 10);\r
+\r
+ timer1 = Timer_Initialize();\r
+ Timer_Config(timer1, 50, mytask->fifo, 11, True);\r
+ counter1 = 0;\r
+ //Timer_Run(timer1);\r
+\r
+ timer2 = Timer_Initialize();\r
+ Timer_Config(timer2, 50, mytask->fifo, 12, False);\r
+ counter2 = 0;\r
+ //Timer_Run(timer2);\r
+\r
+ timer3 = Timer_Initialize();\r
+ Timer_Config(timer3, 200, mytask->fifo, 13, True);\r
+ counter3 = 0;\r
+ //Timer_Run(timer3);\r
+\r
+ console = Console_Initialize();\r
+ x = vramsheet->size.x >> (3 + 1);\r
+ y = vramsheet->size.y >> (4 + 1);\r
+\r
+ if(x < (VGA08_VRAM_XSIZE >> 3)){\r
+ x = (VGA08_VRAM_XSIZE >> 3);\r
+ }\r
+ if(y < (VGA08_VRAM_YSIZE >> 4)){\r
+ y = (VGA08_VRAM_YSIZE >> 4);\r
+ }\r
+\r
+ Console_SetSize(console, x, y);\r
+ Console_Run(console);\r
+ System_InputFocus_Change(console->textbox->sheet->input_fifo);\r
+\r
+ for(;;){\r
+ if(FIFO32_MyTaskFIFO_Status() == 0){\r
+ System_MultiTask_Task_Sleep(mytask);\r
+ } else{\r
+ data = FIFO32_MyTaskFIFO_Get();\r
+ if(SIGNAL_KEY_OFFSET <= data && data <= (SIGNAL_KEY_OFFSET + 0xFFFF)){\r
+ data -= SIGNAL_KEY_OFFSET;\r
+ TextBox_Put_Key(textbox, data);\r
+ if(!(data & KEYID_MASK_BREAK) && (data & KEYID_MASK_EXTENDED)){\r
+ if((data & KEYID_MASK_ID) == KEYID_ENTER){\r
+ TextBox_SetEnable_RecordInputText(textbox, False);\r
+ TextBox_Put_String(textbox, textbox->text_buf);\r
+ TextBox_Put_Character(textbox, '>');\r
+ TextBox_SetEnable_RecordInputText(textbox, True);\r
+ }\r
+ }\r
+ } else if(data == 11){\r
+ Drawing08_Fill_Rectangle(testsheet->vram, testsheet->size.x, 0xc6c6c6, 8, 24, 8 + (20 * 8) - 1, 24 + (16 * 2) - 1);\r
+ snprintf(s, sizeof(s), "Tick :%d", Timer_GetTick());\r
+ Drawing08_Put_String(testsheet->vram, testsheet->size.x, 8, 24, 0xffffff, s);\r
+ snprintf(s, sizeof(s), "Tick1:%d", counter1);\r
+ Drawing08_Put_String(testsheet->vram, testsheet->size.x, 8, 24 + 16, 0xffffff, s);\r
+ Sheet_RefreshSheet(testsheet, 8, 24, 8 + (20 * 8) - 1, 24 + (16 * 2) - 1);\r
+ counter1++;\r
+ } else if(data == 12){\r
+ Drawing08_Fill_Rectangle(testsheet->vram, testsheet->size.x, 0xc6c6c6, 8, 24 + 16 * 2, 8 + (20 * 8) - 1, 24 + (16 * 3) - 1);\r
+ snprintf(s, sizeof(s), "Tick2:%d", counter2);\r
+ Drawing08_Put_String(testsheet->vram, testsheet->size.x, 8, 24 + 16 * 2, 0xffffff, s);\r
+ Sheet_RefreshSheet(testsheet, 8, 24 + 16 * 2, 8 + (20 * 8) - 1, 24 + (16 * 3) - 1);\r
+ Timer_Run(timer2);\r
+ counter2++;\r
+ } else if(data == 13){\r
+ Drawing08_Fill_Rectangle(testsheet->vram, testsheet->size.x, 0xc6c6c6, 8, 24 + 16 * 3, 8 + (20 * 8) - 1, 24 + (16 * 4) - 1);\r
+ snprintf(s, sizeof(s), "Tick3:%d", counter3);\r
+ Drawing08_Put_String(testsheet->vram, testsheet->size.x, 8, 24 + 16 * 3, 0xffffff, s);\r
+ Sheet_RefreshSheet(testsheet, 8, 24 + 16 * 3, 8 + (20 * 8) - 1, 24 + (16 * 4) - 1);\r
+ counter3++;\r
+\r
+ Drawing08_Fill_Rectangle(testsheet->vram, testsheet->size.x, 0xc6c6c6, 8, 24 + 16 * 5, 8 + (20 * 8) - 1, 24 + (16 * 6) - 1);\r
+ snprintf(s, sizeof(s), "Free :%d Bytes", System_Memory_Get_FreeSize());\r
+ Drawing08_Put_String(testsheet->vram, testsheet->size.x, 8, 24 + 16 * 5, 0xffffff, s);\r
+ Sheet_RefreshSheet(testsheet, 8, 24 + 16 * 5, 8 + (20 * 8) - 1, 24 + (16 * 6) - 1);\r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+void KeyboardControlTask(DATA_FIFO32 **InputFocus)\r
+{\r
+ UI_Task *mytask;\r
+ uint data;\r
+\r
+ data = 0;\r
+\r
+ mytask = System_MultiTask_GetNowTask();\r
+\r
+ #ifdef CHNOSPROJECT_DEBUG\r
+ debug("KBCT:KeyboardControlTask Start Running.\nKBCT:UI_Task=0x%X\n", mytask);\r
+ #endif\r
+\r
+ Keyboard_Set_ReceiveFIFO(mytask->fifo, 0x100);\r
+\r
+ for(;;){\r
+ if(FIFO32_MyTaskFIFO_Status() == 0){\r
+ System_MultiTask_Task_Sleep(mytask);\r
+ } else{\r
+ data = FIFO32_MyTaskFIFO_Get();\r
+ #ifdef CHNOSPROJECT_DEBUG_KBCT\r
+ debug("KBCT:Receive data from FIFO(data:0x%X).\n", data);\r
+ #endif\r
+ if(0x100 <= data && data <= 0x1ff){\r
+ data -= 0x100;\r
+ data = Keyboard_Decode_KeyCode(data);\r
+ if(InputFocus != 0 && data != 0){\r
+ FIFO32_Put(*InputFocus, data + SIGNAL_KEY_OFFSET);\r
+ }\r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+void MouseControlTask(DATA_FIFO32 **InputFocus, UI_MouseCursor *mcursor)\r
+{\r
+ UI_Task *mytask;\r
+ uint data;\r
+ IO_MouseControl *mctrl;\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ UI_Sheet *mouseinfosheet;\r
+ uchar s[16];\r
+ #endif\r
+ int scroll;\r
+\r
+ DATA_Location2D moveorg_mfocus;\r
+ UI_Sheet *mfocus;\r
+ bool old_mouse_buttonL;\r
+\r
+ data = 0;\r
+ scroll = 0;\r
+ mfocus = Null;\r
+ old_mouse_buttonL = False;\r
+\r
+ mytask = System_MultiTask_GetNowTask();\r
+\r
+ #ifdef CHNOSPROJECT_DEBUG\r
+ debug("MCT:MouseControlTask Start Running.\nMCT:UI_Task=0x%X\n", mytask);\r
+ #endif\r
+\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ mouseinfosheet = Sheet_Initialize();\r
+ Sheet_SetBuffer(mouseinfosheet, Null, (4 * 2) + (8 * 16), 4 + 16 + (4 * 2) + (16 * 4), 8);\r
+ System_Sheet_SetParentToVRAM(mouseinfosheet);\r
+ Sheet_Drawing_Fill_Rectangle(mouseinfosheet, 0x99cc33, 0, 0, mouseinfosheet->size.x - 1, mouseinfosheet->size.y - 1);\r
+ Sheet_Drawing_Fill_Rectangle(mouseinfosheet, 0xccffff, 4, 24, mouseinfosheet->size.x - 1 - 4, mouseinfosheet->size.y - 1 - 4);\r
+ Sheet_Drawing_Put_String(mouseinfosheet, 4, 4, 0xffffff, "MouseInfo");\r
+ #endif\r
+\r
+ mctrl = Initialize_Mouse();\r
+\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ debug("MCT:Mouse Initialized.\n");\r
+ #endif\r
+\r
+ Mouse_Set_ReceiveFIFO(mytask->fifo, 0x100);\r
+\r
+ Mouse_Decode(mctrl, 0x00); //Decode start.\r
+\r
+ for(;;){\r
+ if(FIFO32_MyTaskFIFO_Status() == 0){\r
+ if(mfocus != Null && ((mcursor->cursor_sheet->location.x - moveorg_mfocus.x) != 0 || (mcursor->cursor_sheet->location.y - moveorg_mfocus.y) != 0)){\r
+ Sheet_Slide_Relative(mfocus, mcursor->cursor_sheet->location.x - moveorg_mfocus.x, mcursor->cursor_sheet->location.y - moveorg_mfocus.y);\r
+ moveorg_mfocus.x = mcursor->cursor_sheet->location.x;\r
+ moveorg_mfocus.y = mcursor->cursor_sheet->location.y;\r
+ } else{\r
+ System_MultiTask_Task_Sleep(mytask);\r
+ }\r
+ } else{\r
+ data = FIFO32_MyTaskFIFO_Get();\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ debug("MCT:Receive data from FIFO(data:0x%X).\n", data);\r
+ #endif\r
+ if(0x100 <= data && data <= 0x1ff){\r
+ if(Mouse_Decode(mctrl, data - 0x100)){\r
+ MouseCursor_Move_Relative(mcursor, mctrl->move.x, mctrl->move.y);\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ Sheet_Drawing_Fill_Rectangle(mouseinfosheet, 0xccffff, 4, 24 + (16 * 0), mouseinfosheet->size.x - 1 - 4, 24 + (16 * 0) + 15);\r
+ snprintf(s, sizeof(s), "X:%d", mcursor->cursor_sheet->location.x);\r
+ Sheet_Drawing_Put_String(mouseinfosheet, 4, 24 + (16 * 0), 0x000000, s);\r
+ Sheet_Drawing_Fill_Rectangle(mouseinfosheet, 0xccffff, 4, 24 + (16 * 1), mouseinfosheet->size.x - 1 - 4, 24 + (16 * 1) + 15);\r
+ snprintf(s, sizeof(s), "Y:%d", mcursor->cursor_sheet->location.y);\r
+ Sheet_Drawing_Put_String(mouseinfosheet, 4, 24 + (16 * 1), 0x000000, s);\r
+ Sheet_Drawing_Fill_Rectangle(mouseinfosheet, 0xccffff, 4, 24 + (16 * 2), mouseinfosheet->size.x - 1 - 4, 24 + (16 * 2) + 15);\r
+ snprintf(s, sizeof(s), "Button:lrc");\r
+ #endif\r
+\r
+ if(old_mouse_buttonL != mctrl->button.bit.L){\r
+ if(old_mouse_buttonL){ //up\r
+ if(mfocus != Null){\r
+ Sheet_Slide_Relative(mfocus, mcursor->cursor_sheet->location.x - moveorg_mfocus.x, mcursor->cursor_sheet->location.y - moveorg_mfocus.y);\r
+ }\r
+ mfocus = Null;\r
+ } else{ //down\r
+ moveorg_mfocus.x = mcursor->cursor_sheet->location.x;\r
+ moveorg_mfocus.y = mcursor->cursor_sheet->location.y;\r
+ mfocus = Sheet_GetSheetFromLocation(mcursor->cursor_sheet->parent, mcursor->cursor_sheet->location.x, mcursor->cursor_sheet->location.y);\r
+ System_InputFocus_Change(mfocus->input_fifo);\r
+ if(mfocus != Null){\r
+ if(mfocus->flags.bit.movable){\r
+ Sheet_ChangeHeight(mfocus, SHEET_MAX_CHILDREN);\r
+ } else{\r
+ mfocus = Null;\r
+ }\r
+ }\r
+ }\r
+ old_mouse_buttonL = mctrl->button.bit.L;\r
+ }\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ if(mctrl->button.bit.L){\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ s[7] -= 0x20;\r
+ #endif\r
+ }\r
+ if(mctrl->button.bit.R){\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ s[8] -= 0x20;\r
+ #endif\r
+ }\r
+ if(mctrl->button.bit.C){\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ s[9] -= 0x20;\r
+ #endif\r
+ }\r
+ #endif\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ Sheet_Drawing_Put_String(mouseinfosheet, 4, 24 + (16 * 2), 0x000000, s);\r
+ #endif\r
+ if(mctrl->flags.scroll){\r
+ scroll += mctrl->scroll;\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ Sheet_Drawing_Fill_Rectangle(mouseinfosheet, 0xccffff, 4, 24 + (16 * 3), mouseinfosheet->size.x - 1 - 4, 24 + (16 * 3) + 15);\r
+ snprintf(s, sizeof(s), "Scroll:%d", scroll);\r
+ Sheet_Drawing_Put_String(mouseinfosheet, 4, 24 + (16 * 3), 0x000000, s);\r
+ Sheet_RefreshSheet(mouseinfosheet, 4, 24 + (16 * 0), mouseinfosheet->size.x - 1 - 4, 24 + (16 * 3) + 15);\r
+ #endif\r
+ } else{\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ Sheet_RefreshSheet(mouseinfosheet, 4, 24 + (16 * 0), mouseinfosheet->size.x - 1 - 4, 24 + (16 * 2) + 15);\r
+ #endif\r
+ }\r
+ }\r
+ } else if(data == TCM_OFFSET + TCM_INFO_DISPLAY_UPDATE_RESOLUTION){\r
+ MouseCursor_Move_Absolute(mcursor, mcursor->cursor_sheet->parent->size.x >> 1, mcursor->cursor_sheet->parent->size.y >> 1);\r
+ MouseCursor_Show(mcursor);\r
+ #ifdef CHNOSPROJECT_DEBUG_MCT\r
+ Sheet_Show(mouseinfosheet, 2, 200, 200);\r
+ #endif\r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+\r