public static void Start() { Screen.Color = 0x0; Screen.Clear(); Screen.GotoTop(); Screen.Color = 0x0E; Screen.Write('M'); Screen.Write('O'); Screen.Write('S'); Screen.Write('A'); Screen.Write(' '); Screen.Write('O'); Screen.Write('S'); Screen.Write("!"); Screen.Write(" "); DebugClient.Setup(Serial.COM1); Screen.Write('0'); IDT.SetInterruptHandler(null); Screen.Write('1'); Multiboot.Setup(); Screen.Write('2'); PIC.Setup(); Screen.Write('3'); GDT.Setup(); Screen.Write('4'); IDT.Setup(); Screen.Write('5'); PageFrameAllocator.Setup(); Screen.Write('6'); PageTable.Setup(); Screen.Write('7'); VirtualPageAllocator.Setup(); Screen.Write('8'); ProcessManager.Setup(); Screen.Write('9'); GC.Setup(); Screen.Write('0'); //Runtime.Setup(); Screen.Write('A'); TaskManager.Setup(); Screen.Write('B'); IDT.SetInterruptHandler(ProcessInterrupt); Screen.Write('C'); ConsoleManager.Setup(); Screen.Write('D'); Console = ConsoleManager.Controller.Boot; Screen.Write('E'); Screen.Write('F'); Console.Color = 0x0E; Console.BackgroundColor = 1; Console.WriteLine(); Console.WriteLine(); Console.Write("!MOSA is alive!"); Console.WriteLine(); KernelTest.RunTests(); Console.WriteLine(); DumpStackTrace(); //System.Threading.SpinLock splk = new System.Threading.SpinLock(); //bool lockTaken = false; //splk.Enter(ref lockTaken); //if (splk.IsHeld) // Console.Write("Entered..."); //lockTaken = false; //splk.Enter(ref lockTaken); //Console.Write("Should have looped!!!"); Console.Goto(22, 0); Process(); }
public static void Main() { Screen.Clear(); Screen.BackgroundColor = ScreenColor.Blue; Screen.Color = ScreenColor.Yellow; Screen.Write('M'); Screen.Write('O'); Screen.Write('S'); Screen.Write('A'); Screen.Write(' '); Screen.Write('O'); Screen.Write('S'); Screen.Write("!"); Screen.Write(" "); Multiboot.Setup(); Screen.Write('0'); GDT.Setup(); Screen.Write('1'); IDT.SetInterruptHandler(null); Screen.Write('2'); Debugger.Setup(Serial.COM1); Screen.Write('3'); PIC.Setup(); Screen.Write('4'); IDT.Setup(); Screen.Write('5'); PageFrameAllocator.Setup(); Screen.Write('6'); PageTable.Setup(); Screen.Write('7'); VirtualPageAllocator.Setup(); Screen.Write('8'); GC.Setup(); Screen.Write('9'); Scheduler.Setup(); Screen.Write('B'); IDT.SetInterruptHandler(ProcessInterrupt); Screen.Write('C'); ConsoleManager.Setup(); Screen.Write('D'); Screen.Write('E'); Screen.WriteLine(); Screen.WriteLine(); //Screen.Write("CompilerBugTests: "); //bool value1 = Test1(); //if (value1) // Screen.WriteLine("Ok"); //else // Screen.WriteLine("Failed"); //Screen.Write("FindTypeOfTest: "); //bool value3 = Test3(); //if (value3) // Screen.WriteLine("Ok"); //else // Screen.WriteLine("Failed"); //UnitTest(); KernelTest.RunTests(); StackTrace(); TestHash(); int value2 = CallReturn10(); Screen.Write("Return10 Test: "); if (value2 == 10) { Screen.WriteLine("Ok"); } else { Screen.WriteLine("Failed"); } StartThreadTest(); // should never get here Screen.Write("!BAD!"); while (true) { Native.Hlt(); } }
public static void Main() { Screen.Clear(); Screen.BackgroundColor = ScreenColor.Blue; Screen.Color = ScreenColor.Yellow; Screen.Write('M'); Screen.Write('O'); Screen.Write('S'); Screen.Write('A'); Screen.Write(' '); Screen.Write('O'); Screen.Write('S'); Screen.Write("!"); Screen.Write(" "); Multiboot.Setup(); Screen.Write('0'); GDT.Setup(); Screen.Write('1'); IDT.SetInterruptHandler(null); Screen.Write('2'); Debugger.Setup(Serial.COM1); Screen.Write('3'); PIC.Setup(); Screen.Write('4'); IDT.Setup(); Screen.Write('5'); PageFrameAllocator.Setup(); Screen.Write('6'); PageTable.Setup(); Screen.Write('7'); VirtualPageAllocator.Setup(); Screen.Write('8'); GC.Setup(); Screen.Write('9'); Scheduler.Setup(); Screen.Write('B'); IDT.SetInterruptHandler(ProcessInterrupt); Screen.Write('C'); ConsoleManager.Setup(); Screen.Write('D'); Screen.Write('E'); Screen.WriteLine(); Screen.WriteLine(); KernelTest.RunTests(); StackTrace(); StartThreadTest(); // should never get here Screen.Write("!BAD!"); while (true) { Native.Hlt(); } }
/// <summary> /// Mains this instance. /// </summary> public static void Main() { Mosa.Kernel.x86.Kernel.Setup(); Screen.GotoTop(); Screen.Color = Colors.Yellow; Screen.Write(@"MOSA OS Version 0.9 '"); Screen.Color = Colors.Red; Screen.Write(@"Prophecy"); Screen.Color = Colors.Yellow; Screen.Write(@"' Copyright 2008-2011"); Screen.NextLine(); Screen.Color = 0x0F; Screen.Write(new String((char)205, 60)); Screen.Write((char)203); Screen.Write(new String((char)205, 19)); Screen.NextLine(); Screen.Goto(2, 0); Screen.Color = Colors.Green; Screen.Write(@"Multibootaddress: "); Screen.Color = Colors.Gray; Screen.Write(Native.Get32(0x200004), 16, 8); Screen.NextLine(); Screen.Color = Colors.Green; Screen.Write(@"Magic number: "); Screen.Color = Colors.Gray; Screen.Color = 0x07; Screen.Write(Native.Get32(0x200000), 16, 8); Screen.NextLine(); Screen.Color = Colors.Green; Screen.Write(@"Multiboot-Flags: "); Screen.Color = Colors.Gray; Screen.Write(Multiboot.Flags, 2, 32); Screen.NextLine(); Screen.NextLine(); Screen.Color = Colors.Green; Screen.Write(@"Size of Memory: "); Screen.Color = Colors.Gray; Screen.Write((Multiboot.MemoryLower + Multiboot.MemoryUpper) / 1024, 10, -1); Screen.Write(@" MB ("); Screen.Write(Multiboot.MemoryLower + Multiboot.MemoryUpper, 10, -1); Screen.Write(@" KB)"); Screen.NextLine(); Screen.Color = Colors.White; for (uint index = 0; index < 60; index++) { Screen.Write((char)205); } Screen.NextLine(); /*Screen.Color = Colors.Green; * Screen.Write(@"Memory-Map:"); * Screen.NextLine(); * * for (uint index = 0; index < Multiboot.MemoryMapCount; index++) * { * Screen.Color = Colors.White; * Screen.Write(Multiboot.GetMemoryMapBase(index), 16, 10); * Screen.Write(@" - "); * Screen.Write(Multiboot.GetMemoryMapBase(index) + Multiboot.GetMemoryMapLength(index) - 1, 16, 10); * Screen.Write(@" ("); * Screen.Color = Colors.Gray; * Screen.Write(Multiboot.GetMemoryMapLength(index), 16, 10); * Screen.Color = Colors.White; * Screen.Write(@") "); * Screen.Color = Colors.Gray; * Screen.Write(@"Type: "); * Screen.Write(Multiboot.GetMemoryMapType(index), 16, 1); * Screen.NextLine(); * }*/ Screen.Color = Colors.Green; Screen.Write(@"Smbios Info: "); if (SmbiosManager.IsAvailable) { Screen.Color = Colors.White; Screen.Write(@"["); Screen.Color = Colors.Gray; Screen.Write(@"Version "); Screen.Write(SmbiosManager.MajorVersion, 10, -1); Screen.Write(@"."); Screen.Write(SmbiosManager.MinorVersion, 10, -1); Screen.Color = Colors.White; Screen.Write(@"]"); Screen.NextLine(); Screen.Color = Colors.Yellow; Screen.Write(@"[Bios]"); Screen.Color = Colors.White; Screen.NextLine(); BiosInformationStructure biosInformation = new BiosInformationStructure(); Screen.Color = Colors.White; Screen.Write(@"Vendor: "); Screen.Color = Colors.Gray; Screen.Write(biosInformation.BiosVendor); Screen.NextLine(); Screen.Color = Colors.Yellow; Screen.Row = 9; Screen.Column = 25; Screen.Write(@"[Cpu]"); Screen.Color = Colors.White; Screen.NextLine(); Screen.Column = 25; CpuStructure cpuStructure = new CpuStructure(); Screen.Color = Colors.White; Screen.Write(@"Vendor: "); Screen.Color = Colors.Gray; Screen.Write(cpuStructure.Vendor); Screen.NextLine(); Screen.Column = 25; Screen.Color = Colors.White; Screen.Write(@"Clock Freq.: "); Screen.Color = Colors.Gray; Screen.Write(cpuStructure.ClockFrequency, 10, -1); Screen.Write(@" MHz"); Screen.NextLine(); Screen.Column = 25; Screen.Color = Colors.White; Screen.Write(@"Max. Speed: "); Screen.Color = Colors.Gray; Screen.Write(cpuStructure.MaxSpeed, 10, -1); Screen.Write(@" MHz"); Screen.NextLine(); Screen.Column = 25; } else { Screen.Color = Colors.Red; Screen.Write(@"No SMBIOS available on this system!"); } Screen.Goto(17, 0); Screen.Color = 0x0F; for (uint index = 0; index < 60; index++) { Screen.Write((char)205); } Screen.NextLine(); CpuInfo cpuInfo = new CpuInfo(); #region Vendor Screen.Color = Colors.Green; Screen.Write(@"Vendor: "); Screen.Color = Colors.White; cpuInfo.PrintVendorString(); Screen.NextLine(); #endregion #region Brand Screen.Color = Colors.Green; Screen.Write(@"Brand: "); Screen.Color = Colors.White; cpuInfo.PrintBrandString(); Screen.NextLine(); #endregion #region Stepping Screen.Color = Colors.Green; Screen.Write(@"Stepping: "); Screen.Color = Colors.White; Screen.Write(cpuInfo.Stepping, 16, 2); #endregion #region Model Screen.Color = Colors.Green; Screen.Write(@" Model: "); Screen.Color = Colors.White; Screen.Write(cpuInfo.Model, 16, 2); #endregion #region Family Screen.Color = Colors.Green; Screen.Write(@" Family: "); Screen.Color = Colors.White; Screen.Write(cpuInfo.Family, 16, 2); #endregion #region Type Screen.Color = Colors.Green; Screen.Write(@" Type: "); Screen.Color = Colors.White; Screen.Write(cpuInfo.Type, 16, 2); Screen.NextLine(); Screen.Color = Colors.Green; Screen.Write(@"Cores: "); Screen.Color = Colors.White; Screen.Write(cpuInfo.NumberOfCores, 16, 2); #endregion //Multiboot.Dump(4,53); Screen.Row = 22; for (uint index = 0; index < 80; index++) { Screen.Column = index; Screen.Write((char)205); } for (uint index = 2; index < 23; index++) { Screen.Column = 60; Screen.Row = index; Screen.Color = Colors.White; if (index == 7) { Screen.Write((char)185); } else if (index == 17) { Screen.Write((char)185); } else if (index == 22) { Screen.Write((char)202); } else { Screen.Write((char)186); } } Screen.Goto(24, 29); Screen.Color = Colors.Yellow; Screen.Write(@"www.mosa-project.org"); CMOS cmos = new CMOS(); KernelTest.RunTests(); while (true) { cmos.Dump(2, 65); DisplayTime(cmos); } }