COBE 0.1 ALPHA
|
00001 #include <stdio.h> 00002 #include <sysfunc.h> 00003 #include <idt.h> 00004 #include <io.h> 00005 #include <pic.h> 00006 #include <bootlogo.h> 00007 #include <multitasking.h> 00008 #include <gdt.h> 00009 #include <cmos.h> 00010 #include <pgng.h> 00011 #include <pmm.h> 00012 #include <pit.h> 00013 #include <fat.h> 00014 00015 //Die meisten Kommentare dienen Doxygen 00031 multiboot_info_t* mbinfo; 00032 uint8_t booted; 00033 00035 00042 int kmain(multiboot_info_t* mbinf) { 00044 booted = 0; 00046 mbinfo = mbinf; 00047 00048 //----------Der Bootscreen wird initialisiert---------- 00049 //show_bootlogo(); 00050 //setload(2); 00051 clrscr(); 00052 00053 //----------Die physische Speicherverwaltung wird initialisiert---------- 00054 kprintf("\nPhysische Speicherverwaltung initialisiert..."); 00055 init_pmm(mbinf); 00056 00057 00058 //----------Paging wird initialisiert---------- 00059 kprintf("\nPaging initialisiert..."); 00060 init_paging(); 00061 //setload(3); 00062 00063 //----------Die GDT wird initialisiert---------- 00064 kprintf("\nGDT initialisiert..."); 00065 init_gdt(); 00066 //setload(4); 00067 00068 //----------Der PIC-Chip wird initialisiert---------- 00069 kprintf("\nPIC initialisiert..."); 00070 init_pic(); 00071 //setload(5); 00072 00073 //----------Die IDT wird initialisiert---------- 00074 kprintf("\nIDT initialisiert..."); 00075 init_idt(); 00076 //setload(6); 00077 00078 //----------Multitasking wird initialisiert---------- 00079 kprintf("\nMultitasking initialisiert..."); 00080 init_mm(mbinf); 00081 //setload(7); 00082 00083 //----------PIT wird initialisiert---------- 00084 kprintf("\nPIT initialisiert..."); 00085 set_pit_channel(0, 2, 100); 00086 00087 //----------FAT wird initialisiert---------- 00088 kprintf("\nFAT initialisiert..."); 00089 init_fat(); 00090 00091 //----------Der Bildschirm wird geleert und der Header wird geschrieben---------- 00092 clrscr(); 00093 activate_16background(); setcolor(0xF2); 00094 kprintf("\tCOBE - Computer Betriebsystem 0.1 ALPHA - Shell 0.1\t\t"); time(); kprintf("\n"); 00095 setcolor(0x0F); 00096 //----------Interrupts werden aktiviert---------- 00098 booted = 1; 00099 __asm("sti"); 00101 while(1); 00102 return 0; 00103 } 00104