Exemple #1
0
        /// <summary>
        /// Mains this instance.
        /// </summary>
        public static void Main()
        {
            Mosa.Kernel.x86.Kernel.Setup();

            IDT.SetInterruptHandler(ProcessInterrupt);

            Screen.GotoTop();
            Screen.Color = Colors.Yellow;

            Screen.Write(@"MOSA OS Version 1.0 '");
            Screen.Color = Colors.Red;
            Screen.Write(@"Titan");
            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(Multiboot.MultibootStructure, 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.White;
                Screen.Write(@"Version: ");
                Screen.Color = Colors.Gray;
                Screen.Write(biosInformation.BiosVersion);
                Screen.NextLine();
                Screen.Color = Colors.White;
                Screen.Write(@"Date: ");
                Screen.Color = Colors.Gray;
                Screen.Write(biosInformation.BiosDate);

                Screen.Color = Colors.Yellow;
                Screen.Row = 8;
                Screen.Column = 35;
                Screen.Write(@"[Cpu]");
                Screen.Color = Colors.White;
                Screen.NextLine();
                Screen.Column = 35;

                CpuStructure cpuStructure = new CpuStructure();
                Screen.Color = Colors.White;
                Screen.Write(@"Vendor: ");
                Screen.Color = Colors.Gray;
                Screen.Write(cpuStructure.Vendor);
                Screen.NextLine();
                Screen.Column = 35;
                Screen.Color = Colors.White;
                Screen.Write(@"Version: ");
                Screen.Color = Colors.Gray;
                Screen.Write(cpuStructure.Version);
                Screen.NextLine();
                Screen.Column = 35;
                Screen.Color = Colors.White;
                Screen.Write(@"Socket: ");
                Screen.Color = Colors.Gray;
                Screen.Write(cpuStructure.Socket);
                Screen.Write(@" MHz");
                Screen.NextLine();
                Screen.Column = 35;
                Screen.Color = Colors.White;
                Screen.Write(@"Cur. Speed: ");
                Screen.Color = Colors.Gray;
                Screen.Write(cpuStructure.MaxSpeed, 10, -1);
                Screen.Write(@" MHz");
                Screen.NextLine();
                Screen.Column = 35;
            }
            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 Vendor

            #region Brand

            Screen.Color = Colors.Green;
            Screen.Write(@"Brand:    ");
            Screen.Color = Colors.White;
            cpuInfo.PrintBrandString();
            Screen.NextLine();

            #endregion Brand

            #region Stepping

            Screen.Color = Colors.Green;
            Screen.Write(@"Stepping: ");
            Screen.Color = Colors.White;
            Screen.Write(cpuInfo.Stepping, 16, 2);

            #endregion Stepping

            #region Model

            Screen.Color = Colors.Green;
            Screen.Write(@" Model: ");
            Screen.Color = Colors.White;
            Screen.Write(cpuInfo.Model, 16, 2);

            #endregion Model

            #region Family

            Screen.Color = Colors.Green;
            Screen.Write(@" Family: ");
            Screen.Color = Colors.White;
            Screen.Write(cpuInfo.Family, 16, 2);

            #endregion Family

            #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 Type

            //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 == 6)
                    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);
            }
        }
Exemple #2
0
        /// <summary>
        /// Displays the seconds.
        /// </summary>
        private static void DisplayTime(CMOS cmos)
        {
            Screen.Goto(24, 52);
            Screen.Color = Colors.Green;
            Screen.Write(@"Time: ");

            byte bcd = 10;

            if (cmos.BCD)
                bcd = 16;

            Screen.Color = Colors.White;
            Screen.Write(cmos.Hour, bcd, 2);
            Screen.Color = Colors.Gray;
            Screen.Write(':');
            Screen.Color = Colors.White;
            Screen.Write(cmos.Minute, bcd, 2);
            Screen.Color = Colors.Gray;
            Screen.Write(':');
            Screen.Color = Colors.White;
            Screen.Write(cmos.Second, bcd, 2);
            Screen.Write(' ');
            Screen.Color = Colors.Gray;
            Screen.Write('(');
            Screen.Color = Colors.White;
            Screen.Write(cmos.Month, bcd, 2);
            Screen.Color = Colors.Gray;
            Screen.Write('/');
            Screen.Color = Colors.White;
            Screen.Write(cmos.Day, bcd, 2);
            Screen.Color = Colors.Gray;
            Screen.Write('/');
            Screen.Color = Colors.White;
            Screen.Write('2');
            Screen.Write('0');
            Screen.Write(cmos.Year, bcd, 2);
            Screen.Color = Colors.Gray;
            Screen.Write(')');
        }
Exemple #3
0
        /// <summary>
        /// Displays the seconds.
        /// </summary>
        private static void DisplayCMOS(CMOS cmos)
        {
            Console.Row = 2;
            Console.Column = 65;
            Console.Color = 0x0A;
            Console.Write(@"CMOS:");
            Console.WriteLine();
            Console.Color = 0x0F;

            byte i = 0;
            for (byte x = 0; x < 5; x++)
            {
                Console.Column = 65;
                for (byte y = 0; y < 4; y++)
                {
                    Console.Write(cmos.Get(i), 16, 2);
                    Console.Write(' ');
                    i++;
                }
                Console.WriteLine();
            }
        }
Exemple #4
0
        /// <summary>
        /// Mains this instance.
        /// </summary>
        public static void Main()
        {
            Mosa.Kernel.x86.Kernel.Setup();

            IDT.SetInterruptHandler(ProcessInterrupt);

            Console = ConsoleManager.Controller.Boot;

            Console.Clear();
            Console.Color = Colors.Yellow;
            Console.BackgroundColor = Colors.Black;

            Console.Write(@"MOSA OS Version 1.0 '");
            Console.Color = Colors.Red;
            Console.Write(@"Zaphod");
            Console.Color = Colors.Yellow;
            Console.Write(@"'                                Copyright 2008-2012");
            Console.WriteLine();

            Console.Color = 0x0F;
            Console.Write(new String((char)205, 60));
            Console.Write((char)203);
            Console.Write(new String((char)205, 19));
            Console.WriteLine();

            Console.Goto(2, 0);
            Console.Color = Colors.Green;
            Console.Write(@"Multibootaddress: ");
            Console.Color = Colors.Gray;
            Console.Write(Multiboot.MultibootStructure, 16, 8);

            Console.WriteLine();
            Console.Color = Colors.Green;
            Console.Write(@"Multiboot-Flags:  ");
            Console.Color = Colors.Gray;
            Console.Write(Multiboot.Flags, 2, 32);
            Console.WriteLine();
            Console.WriteLine();

            Console.Color = Colors.Green;
            Console.Write(@"Size of Memory:   ");
            Console.Color = Colors.Gray;
            Console.Write((Multiboot.MemoryLower + Multiboot.MemoryUpper) / 1024, 10, -1);
            Console.Write(@" MB (");
            Console.Write(Multiboot.MemoryLower + Multiboot.MemoryUpper, 10, -1);
            Console.Write(@" KB)");
            Console.WriteLine();

            Console.Color = Colors.White;
            for (uint index = 0; index < 60; index++)
                Console.Write((char)205);

            Console.WriteLine();

            /*Console.Color = Colors.Green;
            Console.Write(@"Memory-Map:");
            Console.WriteLine();

            for (uint index = 0; index < Multiboot.MemoryMapCount; index++)
            {
                Console.Color = Colors.White;
                Console.Write(Multiboot.GetMemoryMapBase(index), 16, 10);
                Console.Write(@" - ");
                Console.Write(Multiboot.GetMemoryMapBase(index) + Multiboot.GetMemoryMapLength(index) - 1, 16, 10);
                Console.Write(@" (");
                Console.Color = Colors.Gray;
                Console.Write(Multiboot.GetMemoryMapLength(index), 16, 10);
                Console.Color = Colors.White;
                Console.Write(@") ");
                Console.Color = Colors.Gray;
                Console.Write(@"Type: ");
                Console.Write(Multiboot.GetMemoryMapType(index), 16, 1);
                Console.WriteLine();
            }*/

            Console.Color = Colors.Green;
            Console.Write(@"Smbios Info: ");
            if (SmbiosManager.IsAvailable)
            {
                Console.Color = Colors.White;
                Console.Write(@"[");
                Console.Color = Colors.Gray;
                Console.Write(@"Version ");
                Console.Write(SmbiosManager.MajorVersion, 10, -1);
                Console.Write(@".");
                Console.Write(SmbiosManager.MinorVersion, 10, -1);
                Console.Color = Colors.White;
                Console.Write(@"]");
                Console.WriteLine();

                Console.Color = Colors.Yellow;
                Console.Write(@"[Bios]");
                Console.Color = Colors.White;
                Console.WriteLine();

                BiosInformationStructure biosInformation = new BiosInformationStructure();
                Console.Color = Colors.White;
                Console.Write(@"Vendor: ");
                Console.Color = Colors.Gray;
                Console.Write(biosInformation.BiosVendor);
                Console.WriteLine();
                Console.Color = Colors.White;
                Console.Write(@"Version: ");
                Console.Color = Colors.Gray;
                Console.Write(biosInformation.BiosVersion);
                Console.WriteLine();
                Console.Color = Colors.White;
                Console.Write(@"Date: ");
                Console.Color = Colors.Gray;
                Console.Write(biosInformation.BiosDate);

                Console.Color = Colors.Yellow;
                Console.Row = 8;
                Console.Column = 35;
                Console.Write(@"[Cpu]");
                Console.Color = Colors.White;
                Console.WriteLine();
                Console.Column = 35;

                CpuStructure cpuStructure = new CpuStructure();
                Console.Color = Colors.White;
                Console.Write(@"Vendor: ");
                Console.Color = Colors.Gray;
                Console.Write(cpuStructure.Vendor);
                Console.WriteLine();
                Console.Column = 35;
                Console.Color = Colors.White;
                Console.Write(@"Version: ");
                Console.Color = Colors.Gray;
                Console.Write(cpuStructure.Version);
                Console.WriteLine();
                Console.Column = 35;
                Console.Color = Colors.White;
                Console.Write(@"Socket: ");
                Console.Color = Colors.Gray;
                Console.Write(cpuStructure.Socket);
                Console.Write(@" MHz");
                Console.WriteLine();
                Console.Column = 35;
                Console.Color = Colors.White;
                Console.Write(@"Cur. Speed: ");
                Console.Color = Colors.Gray;
                Console.Write(cpuStructure.MaxSpeed, 10, -1);
                Console.Write(@" MHz");
                Console.WriteLine();
                Console.Column = 35;
            }
            else
            {
                Console.Color = Colors.Red;
                Console.Write(@"No SMBIOS available on this system!");
            }

            Console.Goto(14, 0);

            Console.Color = 0x0F;
            for (uint index = 0; index < 60; index++)
                Console.Write((char)205);

            Console.WriteLine();

            CpuInfo cpuInfo = new CpuInfo();

            #region Vendor
            Console.Color = Colors.Green;
            Console.Write(@"Vendor:   ");
            Console.Color = Colors.White;

            cpuInfo.PrintVendorString(Console);

            Console.WriteLine();
            #endregion

            #region Brand
            Console.Color = Colors.Green;
            Console.Write(@"Brand:    ");
            Console.Color = Colors.White;
            cpuInfo.PrintBrandString(Console);
            Console.WriteLine();
            #endregion

            #region Stepping
            Console.Color = Colors.Green;
            Console.Write(@"Stepping: ");
            Console.Color = Colors.White;
            Console.Write(cpuInfo.Stepping, 16, 2);
            #endregion

            #region Model
            Console.Color = Colors.Green;
            Console.Write(@" Model: ");
            Console.Color = Colors.White;
            Console.Write(cpuInfo.Model, 16, 2);
            #endregion

            #region Family
            Console.Color = Colors.Green;
            Console.Write(@" Family: ");
            Console.Color = Colors.White;
            Console.Write(cpuInfo.Family, 16, 2);
            #endregion

            #region Type
            Console.Color = Colors.Green;
            Console.Write(@" Type: ");
            Console.Color = Colors.White;

            Console.Write(cpuInfo.Type, 16, 2);
            Console.WriteLine();
            Console.Color = Colors.Green;
            Console.Write(@"Cores:    ");
            Console.Color = Colors.White;
            Console.Write(cpuInfo.NumberOfCores, 16, 2);
            #endregion

            Console.Row = 19;
            for (uint index = 0; index < 80; index++)
            {
                Console.Column = index;
                Console.Write((char)205);
            }

            Console.Row = 23;
            for (uint index = 0; index < 80; index++)
            {
                Console.Column = index;
                Console.Write((char)205);
            }

            for (uint index = 2; index < 20; index++)
            {
                Console.Column = 60;
                Console.Row = index;

                Console.Color = Colors.White;
                if (index == 6)
                    Console.Write((char)185);
                else if (index == 14)
                    Console.Write((char)185);
                else if (index == 19)
                    Console.Write((char)202);
                else
                    Console.Write((char)186);
            }

            Console.Goto(24, 29);
            Console.Color = Colors.Yellow;

            Console.Write(@"www.mosa-project.org");

            CMOS cmos = new CMOS();

            KernelTest.RunTests();

            while (true)
            {
                DisplayCMOS(cmos);
                DisplayTime(cmos);
            }
        }
Exemple #5
0
        /// <summary>
        /// Mains this instance.
        /// </summary>
        public static void Main()
        {
            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(" ");

            Test();

            SSE.Setup();
            Screen.Write('0');
            //DebugClient.Setup(Serial.COM1);
            IDT.SetInterruptHandler(null);
            Screen.Write('1');
            Multiboot.Setup();
            Screen.Write('2');
            ProgrammableInterruptController.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');
            TaskManager.Setup();
            Screen.Write('A');
            ConsoleManager.Setup();
            Screen.Write('B');
            CMOS cmos = new CMOS();
            Screen.Write('C');
            Console = ConsoleManager.Controller.Boot;
            Screen.Write('D');
            //IDT.SetInterruptHandler(ProcessInterrupt);
            Screen.Write('E');

            Console.Color = 0x0E;
            Console.BackgroundColor = 1;
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("MOSA is alive!");

            byte last = 0;

            Console.WriteLine();

            while (true)
            {
                if (cmos.Second != last)
                {
                    last = cmos.Second;
                    //DebugClient.SendAlive();
                    Screen.Write('.');
                }

                //DebugClient.Process();

                Native.Hlt();
            }
        }