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 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(); MessageManager.OnDispatchError = OnDispatchError; MessageManager.OnMessageReceived = MessageReceived; Console.WriteLine("Gui Demo starting"); var targetProcessID = SysCalls.GetProcessIDForCommand(SysCallTarget.Tmp_DisplayServer_CreateWindow); var windowData = (CreateWindowResult *)SysCalls.RequestMessageBuffer((uint)sizeof(CreateWindowResult), targetProcessID).Start; SysCalls.Tmp_DisplayServer_CreateWindow(ApplicationRuntime.CurrentProcessID, windowData, 200, 100); sur = new MemorySurface(windowData->Addr, windowData->Width, windowData->Height, windowData->Pitch, windowData->Depth); gfx = new GraphicsAdapter(sur); gfx.SetSource(0x0000FF00); gfx.Rectangle(0, 0, sur.Width, sur.Height); gfx.Fill(); SysCalls.Tmp_DisplayServer_FlushWindow(); Console.WriteLine("Gui Demo ready"); var direction = 1; var pos = 128; gfx.MoveTo(10, 10); gfx.LineTo(50, 70); while (true) { uint color = 0x0000FF00; uint mask = (uint)pos; uint newColor = color | mask; gfx.SetSource(newColor); gfx.Rectangle(0, 0, sur.Width, sur.Height); gfx.Fill(); gfx.SetSource(0x00FF0000); gfx.Stroke(); pos += direction; if (pos >= 255) { direction = -1; } else { if (pos <= 0) { direction = 1; } } SysCalls.Tmp_DisplayServer_FlushWindow(); //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 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 void Main() { ApplicationRuntime.Init(); MessageManager.OnMessageReceived = MessageReceived; while (true) { SysCalls.ThreadSleep(0); } }
public static void Main() { ApplicationRuntime.Init(); //MessageManager.OnMessageReceived = MessageReceived; //SysCalls.SetServiceStatus(ServiceStatus.Ready); while (true) { //Serial.Write(port, (byte)'M'); Thread.Sleep(0); } }
public static void Main() { ApplicationRuntime.Init(); MessageManager.OnMessageReceived = MessageReceived; HostCommunicator.Init(); //RuntimeMemory.Free(fileBuf); SysCalls.WriteDebugChar('+'); 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); } }
public static void Main() { try { ApplicationRuntime.Init(); //var result = MessageManager.Send(SysCallTarget.ServiceFunc1, 55); SysCalls.WriteDebugChar('='); SysCalls.WriteDebugChar('/'); SysCalls.WriteDebugChar('*'); var conStream = File.Open("/dev/console"); var con = new ConsoleClient(conStream); con.Reset(); con.SetForegroundColor(7); con.SetBackgroundColor(0); con.ApplyDefaultColor(); con.Clear(); con.SetCursor(0, 0); con.Write("kl\n"); //for (int i = 0; i < ApplicationRuntime.ElfSections.Count; i++) // con.WriteLine(ApplicationRuntime.ElfSections[i].Name); var cmdProcId_CreateFifo = SysCalls.GetProcessIDForCommand(SysCallTarget.CreateFifo); var buf3 = SysCalls.RequestMessageBuffer(4096, cmdProcId_CreateFifo); SysCalls.CreateFifo(buf3, "/tmp/tmp_fifo"); #pragma warning disable CA2000 // Dispose objects before losing scope var kbStream2 = File.Open("/tmp/tmp_fifo"); #pragma warning restore CA2000 // Dispose objects before losing scope using (var kbStream = File.Open("/dev/keyboard")) { while (true) { SysCalls.ThreadSleep(0); var num = kbStream.ReadByte(); if (num >= 0) { var key = (byte)num; // F8 if (key == 0x42) { StartProc("CHELLO.BIN"); continue; } // F9 if (key == 0x43) { StartProc("DSPSRV.BIN"); continue; } // F10 if (key == 0x44) { StartProc("GUIDEMO.BIN"); continue; } var s = key.ToString("x"); //for (var i = 0; i < s.Length; i++) // SysCalls.WriteDebugChar(s[i]); //SysCalls.WriteDebugChar(' '); for (var i = 0; i < s.Length; i++) { con.Write(s[i]); kbStream2.WriteByte(64); } con.Write(' '); } //SysCalls.WriteDebugChar('?'); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public static unsafe void Main() { ApplicationRuntime.Init(); //var result = MessageManager.Send(SysCallTarget.ServiceFunc1, 55); SysCalls.WriteDebugChar('='); SysCalls.WriteDebugChar('/'); SysCalls.WriteDebugChar('*'); var targetProcessId = SysCalls.GetProcessIDForCommand(SysCallTarget.OpenFile); var buf = SysCalls.RequestMessageBuffer(4096, targetProcessId); var kb = SysCalls.OpenFile(buf, "/dev/keyboard"); var con = new ConsoleClient(); con.Init(); //con.Write("\x001B[37;42m\x001B[8]"); //con.Write("abc\x001B[2Jgh\x001B[37;42mjk"); con.Reset(); con.SetForegroundColor(7); con.SetBackgroundColor(0); con.ApplyDefaultColor(); con.Clear(); con.SetCursor(0, 0); con.Write("kl\n"); for (uint i = 0; i < ApplicationRuntime.ElfSections.SectionHeaderCount; i++) { var section = ApplicationRuntime.ElfSections.GetSectionHeader(i); var name = ApplicationRuntime.ElfSections.GeSectionName(section); con.WriteLine(name); } while (true) { SysCalls.ThreadSleep(0); //SysCalls.WriteDebugChar('~'); var gotBytes = SysCalls.ReadFile(kb, buf); if (gotBytes > 0) { for (var byteIdx = 0; byteIdx < gotBytes; byteIdx++) { var bufPtr = (byte *)buf.Start; var key = bufPtr[byteIdx]; var s = key.ToString("x"); //for (var i = 0; i < s.Length; i++) // SysCalls.WriteDebugChar(s[i]); //SysCalls.WriteDebugChar(' '); for (var i = 0; i < s.Length; i++) { con.Write(s[i]); } con.Write(' '); } } //SysCalls.WriteDebugChar('?'); } }