OSDN Git Service

svn rev.329より移動。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_009 / chnos / init.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/init.c b/CHNOSProject/chnos/tolset_chn_000/chnos_009/chnos/init.c
new file mode 100644 (file)
index 0000000..189d523
--- /dev/null
@@ -0,0 +1,53 @@
+\r
+#include "core.h"\r
+\r
+void Initialise_System(System_CommonData *systemdata)\r
+{\r
+       uint eflags;\r
+\r
+       systemdata->vesainfo = (DATA_VESAInfo *) ADR_VESAINFO;\r
+       systemdata->bootinfo = (DATA_BootInfo *) ADR_BOOTINFO;\r
+       systemdata->focus = 0;\r
+       systemdata->key_focus = 0;\r
+\r
+       eflags = IO_Load_EFlags();\r
+       IO_CLI();\r
+\r
+       Initialise_SerialPort();\r
+\r
+       Initialise_Graphic(systemdata->vesainfo->BitsPerPixel);\r
+       Draw_Fill_Rectangle(systemdata->vesainfo->PhysBasePtr, systemdata->bootinfo->scrnx - 1, 0x00000000, 0, 0, systemdata->bootinfo->scrnx - 1, systemdata->bootinfo->scrny - 1);\r
+\r
+       Initialise_GlobalDescriptorTable();\r
+       Initialise_InterruptDescriptorTable();\r
+\r
+       System_MemoryControl_Initialise();\r
+       Initialise_Paging(systemdata->vesainfo->PhysBasePtr, systemdata->bootinfo->scrnx, systemdata->bootinfo->scrny, systemdata->vesainfo->BitsPerPixel);\r
+Emergency_Out("Mem-Block is going to Initialise");\r
+       Initialise_MemoryBlock(&sys_mem_ctrl);\r
+Emergency_Out("Mem-Block Initialised");\r
+       FIFO32_Initialise(&systemdata->sysfifo, SYS_FIFOSIZE);\r
+       FIFO32_Initialise(&systemdata->keyboardfifo, KEYCTRL_FIFOSIZE);\r
+       FIFO32_Initialise(&systemdata->mousefifo, MOUSECTRL_FIFOSIZE);\r
+       FIFO32_Initialise(&systemdata->keycmdfifo, KEYCMD_FIFOSIZE);\r
+Emergency_Out("FIFOs Initialised");\r
+       Initialise_ProgrammableInterruptController();\r
+       Initialise_ProgrammableIntervalTimer();\r
+Emergency_Out("Interrupts Initialised");\r
+       Initialise_MultiTask();\r
+       systemdata->maintask = taskctrl->main;\r
+Emergency_Out("MultiTask Initialised");\r
+       Initialise_Keyboard(&systemdata->keyboardfifo, &systemdata->keycmdfifo, DATA_BYTE, systemdata->bootinfo->leds, &systemdata->keycmd_wait);\r
+Emergency_Out("Keyboard Initialised");\r
+       Initialise_Mouse(&systemdata->mousefifo, DATA_BYTE, &systemdata->mousedecode);\r
+Emergency_Out("Mouse Initialised");\r
+       System_Sheet_Initialise(systemdata->vesainfo->PhysBasePtr, systemdata->bootinfo->scrnx, systemdata->bootinfo->scrny, systemdata->vesainfo->BitsPerPixel);\r
+       Initialise_Window(&systemdata->windowctrl);\r
+       Initialise_Console(&systemdata->consctrl, systemdata);\r
+Emergency_Out("Desktop Initialised");\r
+       systemdata->fd_boot = FloppyDisk_Initialise((uchar *)ADR_DISKIMG);\r
+\r
+       IO_Store_EFlags(eflags);\r
+Emergency_Out("Going to return...");\r
+       return;\r
+}\r