public static bool InitVBE(BaseHardwareAbstraction hal) { if (!VBE.IsVBEAvailable) { return(false); } uint memorySize = (uint)(VBE.ScreenWidth * VBE.ScreenHeight * (VBE.BitsPerPixel / 8)); _lfb = hal.GetPhysicalMemory((uint)VBE.MemoryPhysicalLocation.ToInt32(), memorySize); switch (VBE.BitsPerPixel) { case 8: Framebuffer = new FrameBuffer8bpp(_lfb, VBE.ScreenWidth, VBE.ScreenHeight, 0, VBE.Pitch); break; case 16: Framebuffer = new FrameBuffer16bpp(_lfb, VBE.ScreenWidth, VBE.ScreenHeight, 0, VBE.Pitch); break; case 24: Framebuffer = new FrameBuffer24bpp(_lfb, VBE.ScreenWidth, VBE.ScreenHeight, 0, VBE.Pitch); break; case 32: Framebuffer = new FrameBuffer32bpp(_lfb, VBE.ScreenWidth, VBE.ScreenHeight, 0, VBE.Pitch); break; default: return(false); } return(true); }
public static bool InitVBE(BaseHardwareAbstraction hal) { if (!Multiboot.IsMultibootEnabled) { return(false); } if (!Multiboot.VBEPresent) { return(false); } VBEMode vbeInfo = Multiboot.VBEModeInfoStructure; uint memorySize = (uint)(vbeInfo.ScreenWidth * vbeInfo.ScreenHeight * (vbeInfo.BitsPerPixel / 8)); _lfb = hal.RequestPhysicalMemory(vbeInfo.MemoryPhysicalLocation, memorySize); switch (vbeInfo.BitsPerPixel) { case 8: Framebuffer = new FrameBuffer8bpp(_lfb, vbeInfo.ScreenWidth, vbeInfo.ScreenHeight, 0, vbeInfo.Pitch); break; case 16: Framebuffer = new FrameBuffer16bpp(_lfb, vbeInfo.ScreenWidth, vbeInfo.ScreenHeight, 0, vbeInfo.Pitch); break; case 24: Framebuffer = new FrameBuffer24bpp(_lfb, vbeInfo.ScreenWidth, vbeInfo.ScreenHeight, 0, vbeInfo.Pitch); break; case 32: Framebuffer = new FrameBuffer32bpp(_lfb, vbeInfo.ScreenWidth, vbeInfo.ScreenHeight, 0, vbeInfo.Pitch); break; default: return(false); } return(true); }
public static void Initialize(BaseHardwareAbstraction hardware, HAL.HandleInterrupt handleInterrupt) { // Set device driver system to the hardware HAL HAL.SetHardwareAbstraction(hardware); // Set the interrupt handler HAL.SetInterruptHandler(handleInterrupt); }
public static DeviceManager Initialize(PlatformArchitecture platform, BaseHardwareAbstraction hardware) { // Create Device Manager var deviceManager = new DeviceManager(platform); deviceManager.RegisterDaemon(new DiskDeviceMountDeamon()); // Set device driver system to the hardware HAL HAL.SetHardwareAbstraction(hardware); // Set the interrupt handler HAL.SetInterruptHandler(deviceManager.ProcessInterrupt); return(deviceManager); }
/// <summary> /// Sets the hardware abstraction. /// </summary> /// <param name="hardwareAbstraction">The hardware abstraction.</param> public static void SetHardwareAbstraction(BaseHardwareAbstraction hardwareAbstraction) { HAL.hardwareAbstraction = hardwareAbstraction; }