--- /dev/null
+\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