OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_009 / chnos / bootpack.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/bootpack.c b/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/bootpack.c
deleted file mode 100644 (file)
index d4ce40b..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-\r
-#include "core.h"\r
-\r
-uchar *ACPI_MemoryMap_Type[5] = {\r
-       "  USABLE",\r
-       "RESERVED",\r
-       "    ACPI",\r
-       "ACPI_NVS",\r
-       "UNUSABLE"\r
-};\r
-\r
-System_CommonData systemdata;\r
-\r
-void CHNMain(void)\r
-{\r
-       uint i;\r
-       UI_Timer *c_timer;\r
-       UI_Sheet *taskbar, *desktop;\r
-       UI_Task *mytask;\r
-\r
-       IO_CLI();\r
-\r
-       Initialise_System(&systemdata);\r
-\r
-       IO_STI();\r
-\r
-       mytask = MultiTask_Get_NowTask();\r
-\r
-       systemdata.keyctrltask = MultiTask_Task_Get("SysKeyCtrlTask");\r
-       systemdata.keyctrltask->tss.ldtr = 0;\r
-       systemdata.keyctrltask->tss.iomap = 0x4000;\r
-       systemdata.keyctrltask->tss.eip = (uint)&CHNOS_KeyboardControlTask;\r
-       systemdata.keyctrltask->tss.eflags = 0x00000202;\r
-       systemdata.keyctrltask->tss.esp = (uint)MemoryBlock_Allocate_System(64 * 1024) + 64 * 1024;\r
-       MemoryBlock_Write_Description((void *)(systemdata.keyctrltask->tss.esp - 64 * 1024), "SysKCT-Stack");\r
-       systemdata.keyctrltask->tss.es = 1 * 8;\r
-       systemdata.keyctrltask->tss.cs = 2 * 8;\r
-       systemdata.keyctrltask->tss.ss = 1 * 8;\r
-       systemdata.keyctrltask->tss.ds = 1 * 8;\r
-       systemdata.keyctrltask->tss.fs = 1 * 8;\r
-       systemdata.keyctrltask->tss.gs = 1 * 8;\r
-       systemdata.keyctrltask->tss.cr3 = (uint)ADR_Paging_Directory;\r
-       MultiTask_Task_Run(systemdata.keyctrltask);\r
-\r
-       Mouse_Make_MouseCursor(&systemdata.mouse_cursor, 0, 0, systemdata.bootinfo->scrnx - 1, systemdata.bootinfo->scrny - 1, System_Sheet_Get_Top_Of_Height());\r
-       Mouse_Move_Absolute(&systemdata.mouse_cursor, systemdata.bootinfo->scrnx >> 1, systemdata.bootinfo->scrny >> 1);\r
-\r
-       systemdata.mousectrltask = MultiTask_Task_Get("MouseCtrlTask");\r
-       systemdata.mousectrltask->tss.ldtr = 0;\r
-       systemdata.mousectrltask->tss.iomap = 0x4000;\r
-       systemdata.mousectrltask->tss.eip = (uint)&CHNOS_MouseControlTask;\r
-       systemdata.mousectrltask->tss.eflags = 0x00000202;\r
-       systemdata.mousectrltask->tss.esp = (uint)MemoryBlock_Allocate_System(64 * 1024) + 64 * 1024;\r
-       MemoryBlock_Write_Description((void *)(systemdata.mousectrltask->tss.esp - 64 * 1024), "SysMCT-Stack");\r
-       systemdata.mousectrltask->tss.es = 1 * 8;\r
-       systemdata.mousectrltask->tss.cs = 2 * 8;\r
-       systemdata.mousectrltask->tss.ss = 1 * 8;\r
-       systemdata.mousectrltask->tss.ds = 1 * 8;\r
-       systemdata.mousectrltask->tss.fs = 1 * 8;\r
-       systemdata.mousectrltask->tss.gs = 1 * 8;\r
-       systemdata.mousectrltask->tss.cr3 = (uint)ADR_Paging_Directory;\r
-       MultiTask_Task_Run(systemdata.mousectrltask);\r
-\r
-       desktop = System_Sheet_Get(systemdata.bootinfo->scrnx, systemdata.bootinfo->scrny, 0, 0);\r
-       Sheet_Show(desktop, 0, 0, System_Sheet_Get_Top_Of_Height());\r
-       Sheet_Draw_Fill_Rectangle(desktop, 0x66ff66, 0, 0, desktop->size.x - 1, desktop->size.y - 1);\r
-\r
-       taskbar = System_Sheet_Get(systemdata.bootinfo->scrnx, 32, 0, 0);\r
-       Sheet_Show(taskbar, 0, systemdata.bootinfo->scrny - 32, System_Sheet_Get_Top_Of_Height());\r
-       Sheet_Draw_Fill_Rectangle_Gradation_Vertical(taskbar, 0xffffff, 0x6666ff, 0, 0, taskbar->size.x - 1, taskbar->size.y - 1);\r
-\r
-       c_timer = Timer_Get(&systemdata.sysfifo, 5);\r
-       Timer_Set(c_timer, 50, interval);\r
-       Timer_Run(c_timer);\r
-\r
-       FIFO32_Set_Task(&systemdata.sysfifo, mytask);\r
-\r
-       Console_Create((systemdata.bootinfo->scrnx >> 4), (systemdata.bootinfo->scrny >> 5));\r
-\r
-       for (;;) {\r
-               if(FIFO32_Status(&systemdata.sysfifo) == 0){\r
-                       MultiTask_Task_Sleep(mytask);\r
-               } else{\r
-                       i = FIFO32_Get(&systemdata.sysfifo);\r
-                       if(i < DATA_BYTE){\r
-                               if(i == 5){\r
-\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-void CHNOS_KeyboardControlTask(void)\r
-{\r
-       UI_Task *mytask;\r
-       UI_Listener *next, **now, *send;\r
-       UI_KeyInfo kinfo;\r
-       uint i, j;\r
-       uint buf[5];\r
-\r
-       mytask = MultiTask_Get_NowTask();\r
-       next = 0;\r
-       systemdata.keycmd_wait = 0;\r
-\r
-       FIFO32_Set_Task(&systemdata.keyboardfifo, mytask);\r
-\r
-       for (;;) {\r
-               if(FIFO32_Status(&systemdata.keycmdfifo) > 0 && systemdata.keycmd_wait < 0){\r
-                       systemdata.keycmd_wait = FIFO32_Get(&systemdata.keycmdfifo);\r
-                       Keyboard_Controller_Wait_SendReady();\r
-                       IO_Out8(KEYB_DATA, systemdata.keycmd_wait);\r
-               }\r
-               if(FIFO32_Status(&systemdata.keyboardfifo) == 0){\r
-                       MultiTask_Task_Sleep(mytask);\r
-               } else{\r
-                       i = FIFO32_Get(&systemdata.keyboardfifo);\r
-                       if(i < DATA_BYTE){      /*\83^\83X\83N\82Ö\82Ì\83R\83}\83\93\83h*/\r
-                               if(i == 1){     /*\83\8a\83X\83i\81[\93o\98^ FIFO32_Put_Arguments([fifo], 4, 0x01, [DATA_FIFO*], [flags], [offset]); ([0xFFFFFFFF])*/\r
-                                       buf[0] = 0x01;\r
-                                       buf[4] = 0x00;\r
-                                       for(j = 1; j < 5; j++){\r
-                                               buf[j] = FIFO32_Get(&systemdata.keyboardfifo);\r
-                                               if(buf[j] == SIGNAL_ARGUMENTS_END){\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                                       if(buf[4] == SIGNAL_ARGUMENTS_END){     /*\82·\82×\82Ä\90³\8fí\82É\8eó\90M\82µ\82½\81B*/\r
-                                               for(now = &next; *now != 0; now = &(*now)->next){\r
-\r
-                                               }\r
-                                               *now = MemoryBlock_Allocate_System(sizeof(UI_Listener));\r
-                                               MemoryBlock_Write_Description(*now, "UI_Listener");\r
-                                               (*now)->next = 0;\r
-                                               (*now)->fifo = (DATA_FIFO *)buf[1];\r
-                                               (*now)->flags = buf[2];\r
-                                               (*now)->offset = buf[3];\r
-                                       }\r
-                               }\r
-                       } else if(DATA_BYTE <= i && i < (DATA_BYTE * 2)){       /*\83L\81[\83{\81[\83h\82©\82ç\82Ì\8eó\90M\83f\81[\83^*/\r
-                               Keyboard_Decode(&kinfo, i - DATA_BYTE);\r
-                               if(kinfo.make){\r
-                                       if(kinfo.c != 0){       /*\88ê\94Ê\95\8e\9a*/\r
-                                               for(send = next; send != 0; send = send->next){\r
-                                                       FIFO32_Put(send->fifo, kinfo.c + send->offset);\r
-                                               }\r
-                                               if(systemdata.key_focus != 0 && systemdata.key_focus->fifo != 0){       /*\83t\83H\81[\83J\83X\82Í\83L\81[\83f\81[\83^\82Ì\8eæ\93¾\82ð\8aó\96]\82µ\82Ä\82¢\82é*/\r
-                                                       FIFO32_Put(systemdata.key_focus->fifo, kinfo.c);\r
-                                               }\r
-                                       } else{ /*\93Á\8eê\95\8e\9a*/\r
-\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-void CHNOS_MouseControlTask(void)\r
-{\r
-       UI_Task *mytask;\r
-       UI_Sheet *focus;\r
-       DATA_Position2D focus_moveorg;\r
-       uint i;\r
-       int button_before;\r
-       bool key_focus_changed;\r
-       UI_Sheet *key_focus_before;\r
-\r
-       UI_MouseEventArguments e;\r
-\r
-       mytask = MultiTask_Get_NowTask();\r
-       focus = 0;\r
-       button_before = 0;\r
-       key_focus_changed = false;\r
-       key_focus_before = 0;\r
-\r
-       FIFO32_Set_Task(&systemdata.mousefifo, mytask);\r
-\r
-       for (;;) {\r
-               if(FIFO32_Status(&systemdata.mousefifo) == 0){\r
-                       if(focus != 0){\r
-                               Sheet_Slide(focus, focus->position.x + (systemdata.mouse_cursor.position.x - focus_moveorg.x), focus->position.y + (systemdata.mouse_cursor.position.y - focus_moveorg.y));\r
-                               focus_moveorg.x = systemdata.mouse_cursor.position.x;\r
-                               focus_moveorg.y = systemdata.mouse_cursor.position.y;\r
-                       }\r
-                       MultiTask_Task_Sleep(mytask);\r
-               } else{\r
-                       i = FIFO32_Get(&systemdata.mousefifo);\r
-                       if(i < DATA_BYTE){      /*\83^\83X\83N\82Ö\82Ì\83R\83}\83\93\83h*/\r
-\r
-                       } else if(DATA_BYTE <= i && i < (DATA_BYTE * 2)){       /*\83}\83E\83X\82©\82ç\82Ì\8eó\90M\83f\81[\83^*/\r
-                               if(Mouse_Decode(i - DATA_BYTE) != 0){\r
-                                       Mouse_Move_Relative(&systemdata.mouse_cursor, systemdata.mousedecode.move.x, systemdata.mousedecode.move.y);\r
-                                       if(focus == 0){\r
-                                               if(systemdata.focus != Sheet_Get_From_Position(&sys_sheet_ctrl, systemdata.mouse_cursor.position.x, systemdata.mouse_cursor.position.y)){\r
-                                                       if(systemdata.focus != 0 && systemdata.focus->MouseEventProcedure != 0){\r
-                                                               e.focus = systemdata.focus;\r
-                                                               e.move.x = 0;\r
-                                                               e.move.y = 0;\r
-                                                               e.button = 0;\r
-                                                               e.button_before = (uint)button_before;\r
-                                                               systemdata.focus->MouseEventProcedure(&e);\r
-                                                       }\r
-                                               }\r
-                                               systemdata.focus = Sheet_Get_From_Position(&sys_sheet_ctrl, systemdata.mouse_cursor.position.x, systemdata.mouse_cursor.position.y);\r
-                                       }\r
-                                       if((systemdata.mousedecode.btn & MOUSE_BUTTON_L) != 0 && (button_before & MOUSE_BUTTON_L) == 0){        /*L down*/\r
-                                               if(systemdata.key_focus != systemdata.focus){\r
-                                                       key_focus_changed = true;\r
-                                                       key_focus_before = systemdata.key_focus;\r
-                                               }\r
-                                               systemdata.key_focus = systemdata.focus;\r
-                                               focus = systemdata.focus;\r
-                                               focus_moveorg.x = systemdata.mouse_cursor.position.x;\r
-                                               focus_moveorg.y = systemdata.mouse_cursor.position.y;\r
-                                               if(!focus->mouse_movable){      /*\83}\83E\83X\82É\82æ\82é\88Ú\93®\95s\89Â*/\r
-                                                       focus = 0;\r
-                                               } else{\r
-                                                       Sheet_UpDown(focus, System_Sheet_Get_Top_Of_Height());\r
-                                               }\r
-                                       } else if((systemdata.mousedecode.btn & MOUSE_BUTTON_L) == 0 && (button_before & MOUSE_BUTTON_L) != 0){ /*L up*/\r
-                                               focus = 0;\r
-                                       }\r
-                                       if((systemdata.mousedecode.btn & MOUSE_BUTTON_R) != 0){ /*R*/\r
-\r
-                                       }\r
-                                       if((systemdata.mousedecode.btn & MOUSE_BUTTON_C) != 0){ /*C*/\r
-\r
-                                       }\r
-                                       if(key_focus_changed){\r
-                                               if(key_focus_before != 0 && key_focus_before->fifo != 0 && (key_focus_before->ksignal_flags & SIGNAL_FLAGS_FOCUSINFO) != 0){\r
-                                                       FIFO32_Put_Arguments(key_focus_before->fifo, 2, SIGNAL_WINDOW_FOCUS_LOST, (uint)key_focus_before);\r
-                                               }\r
-                                               if(systemdata.key_focus != 0 && systemdata.key_focus->fifo != 0 && (systemdata.key_focus->ksignal_flags & SIGNAL_FLAGS_FOCUSINFO) != 0){\r
-                                                       FIFO32_Put_Arguments(systemdata.key_focus->fifo, 2, SIGNAL_WINDOW_FOCUS_GET, (uint)systemdata.key_focus);\r
-                                               }\r
-                                               key_focus_changed = false;\r
-                                       }\r
-                                       if(systemdata.focus != 0 && systemdata.focus->MouseEventProcedure != 0){        /*\83t\83H\81[\83J\83X\82Í\83V\81[\83g\82Å\81A\83C\83x\83\93\83g\82Ì\8eæ\93¾\82ð\8aó\96]\82µ\82Ä\82¢\82é*/\r
-                                               e.focus = systemdata.focus;\r
-                                               e.move.x = systemdata.mousedecode.move.x;\r
-                                               e.move.y = systemdata.mousedecode.move.y;\r
-                                               e.position_local.x = systemdata.mouse_cursor.position.x - focus->position.x;\r
-                                               e.position_local.y = systemdata.mouse_cursor.position.y - focus->position.y;\r
-                                               e.button = (uint)systemdata.mousedecode.btn;\r
-                                               e.button_before = (uint)button_before;\r
-                                               systemdata.focus->MouseEventProcedure(&e);\r
-                                       }\r
-                                       key_focus_before = systemdata.key_focus;\r
-                                       button_before = systemdata.mousedecode.btn;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-void CHNOS_UI_KeyFocus_Change(UI_Sheet *focus_new)\r
-{\r
-       uint eflags;\r
-\r
-       eflags = IO_Load_EFlags();\r
-       IO_CLI();\r
-\r
-       if(systemdata.key_focus != 0 && systemdata.key_focus->fifo != 0 && (systemdata.key_focus->ksignal_flags & SIGNAL_FLAGS_FOCUSINFO) != 0){\r
-               FIFO32_Put_Arguments(systemdata.key_focus->fifo, 2, SIGNAL_WINDOW_FOCUS_LOST, systemdata.key_focus);\r
-       }\r
-       if(focus_new != 0 && focus_new->fifo != 0 && (focus_new->ksignal_flags & SIGNAL_FLAGS_FOCUSINFO) != 0){\r
-               FIFO32_Put_Arguments(focus_new->fifo, 2, SIGNAL_WINDOW_FOCUS_GET, (uint)focus_new);\r
-       }\r
-       systemdata.key_focus = focus_new;\r
-\r
-       IO_Store_EFlags(eflags);\r
-       return;\r
-}\r