Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Sys = Cosmos.System;
- using Cosmos.HAL;
- using Cosmos.System.Graphics;
- using System.IO;
- using Cosmos.System.FileSystem;
- namespace CosmosKernel1
- {
- public class Kernel : Sys.Kernel
- {
- protected override void BeforeRun()
- {
- Console.WriteLine("Initializing file system...");
- var fs = new Sys.FileSystem.CosmosVFS(); //virtual file system
- Sys.FileSystem.VFS.VFSManager.RegisterVFS(fs);
- Console.WriteLine("Cosmos booted successfully."); //Type a line of text to get it echoed back.
- //new PIT().Wait(10000);
- Console.Clear();
- Console.WriteLine(" #| # ##### ###### ##### #####");
- Console.WriteLine(" ## # #| #| #| # #|");
- Console.WriteLine(" #|# # ##### #| #| # #####");
- Console.WriteLine(" #| # # #| #| #| # |#");
- Console.WriteLine(".: #| ## ##### #| ##### #####");
- Console.WriteLine();
- Console.WriteLine($".NET OS 1.0 ({Cosmos.Core.CPU.GetAmountOfRAM()} RAM)");
- }
- protected override void Run()
- {
- Console.Write(".: ");
- var input = Console.ReadLine().Split();
- //Console.Write("Text typed: ");
- //Console.WriteLine(input);
- switch (input[0])
- {
- case "shutdown":
- Cosmos.System.Power.Shutdown();
- break;
- case "reboot":
- Cosmos.System.Power.Reboot();
- break;
- case "clear":
- Console.Clear();
- break;
- case "echo":
- try
- {
- Console.WriteLine(String.Join(" ", input).Replace(input[0], ""));
- }
- catch (ArgumentOutOfRangeException)
- {
- Console.WriteLine(" ");
- }
- break;
- /*case "sleep":
- new PIT().Wait(UInt32.Parse(input[1])*1000);
- break;*/
- case "ls":
- string path = input[1];
- foreach (var i in Directory.GetFiles(path))
- {
- Console.WriteLine(i);
- }
- foreach (var i in Directory.GetDirectories(path))
- {
- Console.WriteLine(i);
- }
- break;
- case "edit":
- using (FileStream fstream = new FileStream($"{input[1]}", FileMode.OpenOrCreate))
- {
- // преобразуем строку в байты
- byte[] array = System.Text.Encoding.Default.GetBytes(Console.ReadLine());
- // запись массива байтов в файл
- fstream.Write(array, 0, array.Length);
- }
- break;
- case "cat":
- //using (FileStream fstream = File.OpenRead($"{input[1]}"))
- //{
- // // преобразуем строку в байты
- // byte[] array = new byte[fstream.Length];
- // // считываем данные
- // fstream.Read(array, 0, array.Length);
- // // декодируем байты в строку
- // string textFromFile = System.Text.Encoding.Default.GetString(array);
- // Console.WriteLine(textFromFile);
- //}
- using (StreamReader sr = new StreamReader(input[1], System.Text.Encoding.Default))
- {
- string line;
- while ((line = sr.ReadLine()) != null)
- {
- Console.WriteLine(line);
- }
- }
- break;
- case "ironinfo":
- //Console.WriteLine("---------- Информация о камне -----------");
- Console.WriteLine("---------- CPU info-----------");
- Console.WriteLine($"Name: {Cosmos.Core.ProcessorInformation.GetVendorName()}");
- //Console.WriteLine($"NumberOfCores: {Cosmos.Core.ProcessorInformation.GetCycleCount()}");
- Console.WriteLine($"NumberOfCores: {Cosmos.Core.CPU.GetEndOfKernel()}");
- break;
- case "piano":
- ConsoleKeyInfo key;
- do
- {
- Console.Clear();
- Console.WriteLine("Piano v1.0\nPress 'Esc' to exit the program.\n");
- Console.WriteLine("Press the Q-U button:");
- key = Console.ReadKey();
- switch (key.Key)
- {
- case ConsoleKey.Q:
- PCSpeaker.Beep(523);
- Console.Clear();
- break;
- case ConsoleKey.W:
- PCSpeaker.Beep(587);
- Console.Clear();
- break;
- case ConsoleKey.E:
- PCSpeaker.Beep(659);
- Console.Clear();
- break;
- case ConsoleKey.R:
- PCSpeaker.Beep(698);
- Console.Clear();
- break;
- case ConsoleKey.T:
- PCSpeaker.Beep(784);
- Console.Clear();
- break;
- case ConsoleKey.Y:
- PCSpeaker.Beep(880);
- Console.Clear();
- break;
- case ConsoleKey.U:
- PCSpeaker.Beep(987);
- Console.Clear();
- break;
- }
- }
- while (key.Key != ConsoleKey.Escape); // по нажатию на Escape завершаем цикл
- break;
- case "date":
- //Console.WriteLine($"{RTC.DayOfTheWeek} {RTC.Month} {RTC.DayOfTheMonth} {RTC.Hour}:{RTC.Minute}:{RTC.Second} {RTC.Year} {RTC.Century}"); //Real Time Clock
- Console.WriteLine(DateTime.Now);
- break;
- case "df":
- foreach (var i in Sys.FileSystem.VFS.VFSManager.GetLogicalDrives())
- {
- Console.WriteLine(i);
- }
- break;
- default:
- if (input[0] != "")
- Console.WriteLine($"{input[0]}: command not found");
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement