public static void Setup() { ModeInfo = (VBE_Mode_Info *)Multiboot.VBE_Mode_Info; LinearFrameBuffer = (UInt32 *)ModeInfo->physbase; Xres = ModeInfo->Xres; Yres = ModeInfo->Yres; /* * for (uint i = ModeInfo->physbase; i <= ModeInfo->physbase + 0xFF0000; i+= 0x1000) * { * Paging.DMAFrame(Paging.GetPage(i, (UInt32*)Paging.Current_Directory, true), false, true, i); * } * * Paging.ReloadDirectory();*/ }
internal static void Init() { Debug.Write("VBE Init()\n"); ModeInfoBlock = (VBE_Mode_Info *)(Multiboot.VBE_Mode_Info + 0xC0000000); Xres = ModeInfoBlock->Xres; Yres = ModeInfoBlock->Yres; BytesPerPixel = (uint)ModeInfoBlock->bpp / 8; SecondaryBuffer = Paging.AllocateSecondayBuffer(); VirtualFrameBuffer = Paging.AllocateMainBuffer(ModeInfoBlock->physbase); /* Print Debug Info */ Debug.Write("Virtual Frame Buffer: %d\n", VirtualFrameBuffer); Debug.Write("Secondary Frame Buffer: %d\n", SecondaryBuffer); Debug.Write("Resolution: %dx", (uint)Xres); Debug.Write("%dx", (uint)Yres); Debug.Write("%d\n", BytesPerPixel); }