Exemple #1
0
        internal static unsafe void Setup(uint xSig, uint Address)
        {
            if (xSig != 0x2BADB002)
            {
                aIsValid = false;
                Debug.Write("Invalid Multiboot Signature\n");
                return;
            }
            aIsValid = true;
            Address += 0xC0000000;// We are in higher half =D
            Mb_Info  = (Multiboot_Info *)Address;
            Debug.Write("Multiboot Found!!\n");
            Debug.Write("       Address       ::%d\n", Address);
            Debug.Write("       VBEModeInfo   ::%d\n", Mb_Info->vbeModeInfo);
            Debug.Write("       VBEControlInfo::%d\n", Mb_Info->vbeControlInfo);

            Initrd     = 0;
            InitrdSize = 0;
            var modules = (UInt32 *)(Mb_Info->mods_addr + 0xC0000000);

            Debug.Write("       Modules Count:%d\n", Mb_Info->mods_count);
            if (Mb_Info->mods_count > 0)
            {
                Initrd     = modules[0];
                InitrdSize = modules[1] - Initrd;
                Initrd    += 0xC0000000;
                Debug.Write("       RamDisk:%d\n", Initrd);
                Debug.Write("       RamDisk-Size:%d\n", InitrdSize);
            }
            if (Mb_Info->mods_count == 0)
            {
                Debug.Write("       No Initial RAM Disk Found!!\n");
            }
            Debug.Write("       Flags:%d\n", Mb_Info->Flags);
        }
Exemple #2
0
 public static void Setup(uint magic, uint address)
 {
     if (magic != MULTIBOOT_BOOTLOADER_MAGIC)
     {
         Console.WriteLine("No VALID MULTIBOOT");
         while (true)
         {
             ;
         }
     }
     MultibootHeader = address;
     Mb_Info         = (Multiboot_Info *)MultibootHeader;
 }