public static void Main() { ApplicationRuntime.Init(); MessageManager.OnDispatchError = OnDispatchError; MessageManager.OnMessageReceived = MessageReceived; fb = CreateFrameBuffer(); if (fb == null) { Console.WriteLine("No Framebuffer found"); ApplicationRuntime.Exit(0); } sur = new FramebufferSurface(fb); gfx = new GraphicsAdapter(sur); gfx.SetSource(0x00115F9F); gfx.Rectangle(0, 0, sur.Width, sur.Height); gfx.Fill(); SysCalls.RegisterService(SysCallTarget.Tmp_DisplayServer_CreateWindow); SysCalls.RegisterService(SysCallTarget.Tmp_DisplayServer_FlushWindow); SysCalls.SetServiceStatus(ServiceStatus.Ready); Console.WriteLine("DisplayServer ready"); while (true) { SysCalls.ThreadSleep(0); } }
public static unsafe void Main() { ApplicationRuntime.Init(); var targetProcessId = SysCalls.GetProcessIDForCommand(SysCallTarget.OpenFile); var buf = SysCalls.RequestMessageBuffer(4096, targetProcessId); var conHandle = SysCalls.OpenFile(buf, "/dev/console"); var con = new ConsoleServer(); con.Write("ConsoleServer Started"); // TODO: Create dev /dev/console, other processes can check their existence SysCalls.SetServiceStatus(ServiceStatus.Ready); while (true) { SysCalls.ThreadSleep(0); // TODO: Signal var gotBytes = SysCalls.ReadFile(conHandle, buf); if (gotBytes > 0) { for (var byteIdx = 0; byteIdx < gotBytes; byteIdx++) { var bufPtr = (byte *)buf.Start; var key = bufPtr[byteIdx]; con.Write(key); } } } }
public static unsafe void Main() { ApplicationRuntime.Init(); MessageManager.OnMessageReceived = MessageReceived; var targetProcID = SysCalls.GetProcessIDForCommand(SysCallTarget.GetProcessByName); GetProcessByNameBuffer = SysCalls.RequestMessageBuffer(4096, targetProcID); SysCalls.RegisterService(SysCallTarget.HostCommunication_CreateProcess); SysCalls.RegisterService(SysCallTarget.TmpDebug); SysCalls.SetServiceStatus(ServiceStatus.Ready); try { SetupDrivers(); } catch (Exception ex) { Console.WriteLine(ex.Message); } while (true) { //Serial.Write(port, (byte)'M'); SysCalls.ThreadSleep(0); } }
public static unsafe void Main() { ApplicationRuntime.Init(); Files = new List <VfsFile>(); OpenFiles = new List <OpenFile>(); KeyBoardFifo = new VfsFile { Path = "/dev/keyboard", Buffer = new FifoFile() }; Files.Add(KeyBoardFifo); Files.Add(new VfsFile { Path = "/dev/screen", Buffer = new FifoFile() }); MessageManager.OnMessageReceived = MessageReceived; MessageManager.OnDispatchError = OnDispatchError; SysCalls.RegisterService(SysCallTarget.OpenFile); SysCalls.RegisterService(SysCallTarget.CreateFifo); SysCalls.RegisterService(SysCallTarget.ReadFile); SysCalls.RegisterService(SysCallTarget.WriteFile); SysCalls.RegisterInterrupt(33); SysCalls.SetServiceStatus(ServiceStatus.Ready); while (true) { SysCalls.ThreadSleep(0); } }
public static void Main() { ApplicationRuntime.Init(); Service.Setup(); MessageManager.OnMessageReceived = MessageReceived; MessageManager.OnDispatchError = OnDispatchError; SysCalls.RegisterService(SysCallTarget.OpenFile); SysCalls.RegisterService(SysCallTarget.CreateFifo); SysCalls.RegisterService(SysCallTarget.ReadFile); SysCalls.RegisterService(SysCallTarget.WriteFile); SysCalls.RegisterService(SysCallTarget.GetFileLength); SysCalls.RegisterService(SysCallTarget.FStat); SysCalls.RegisterService(SysCallTarget.CreateStandartInputOutput); SysCalls.RegisterService(SysCallTarget.SetStandartInputOutput); var targetProcID = SysCalls.GetProcessIDForCommand(SysCallTarget.GetProcessByName); GetProcessByNameBuffer = SysCalls.RequestMessageBuffer(4096, targetProcID); SysCalls.RegisterService(SysCallTarget.HostCommunication_CreateProcess); // TODO: Obsolete? Consider rename TmpDebug to HostCommunication_CreateProcess SysCalls.RegisterService(SysCallTarget.TmpDebug); try { InitHAL.SetupDrivers(); } catch (Exception ex) { Console.WriteLine(ex.Message); } SysCalls.RegisterInterrupt(33); SysCalls.SetServiceStatus(ServiceStatus.Ready); while (true) { SysCalls.ThreadSleep(0); } }