Advertisement
lartman

.NET OS

Jun 26th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.49 KB | None | 0 0
  1. using Sys = Cosmos.System;
  2. using Cosmos.HAL;
  3. using Cosmos.System.Graphics;
  4. using System.IO;
  5. using Cosmos.System.FileSystem;
  6.  
  7. namespace CosmosKernel1
  8. {
  9.     public class Kernel : Sys.Kernel
  10.     {
  11.  
  12.         protected override void BeforeRun()
  13.         {
  14.             Console.WriteLine("Initializing file system...");
  15.             var fs = new Sys.FileSystem.CosmosVFS(); //virtual file system
  16.             Sys.FileSystem.VFS.VFSManager.RegisterVFS(fs);        
  17.             Console.WriteLine("Cosmos booted successfully."); //Type a line of text to get it echoed back.
  18.             //new PIT().Wait(10000);
  19.             Console.Clear();
  20.             Console.WriteLine("   #|   #  #####  ######   #####  #####");
  21.             Console.WriteLine("   ##   #  #|       #|     #|  #  #|");
  22.             Console.WriteLine("   #|#  #  #####    #|     #|  #  #####");  
  23.             Console.WriteLine("   #| # #  #|       #|     #|  #     |#");  
  24.             Console.WriteLine(".: #|  ##  #####    #|     #####  #####");
  25.             Console.WriteLine();
  26.             Console.WriteLine($".NET OS 1.0 ({Cosmos.Core.CPU.GetAmountOfRAM()} RAM)");
  27.         }
  28.  
  29.         protected override void Run()
  30.         {
  31.             Console.Write(".: ");
  32.             var input = Console.ReadLine().Split();
  33.             //Console.Write("Text typed: ");
  34.             //Console.WriteLine(input);
  35.             switch (input[0])
  36.             {
  37.                 case "shutdown":
  38.                     Cosmos.System.Power.Shutdown();
  39.                     break;
  40.                 case "reboot":
  41.                     Cosmos.System.Power.Reboot();
  42.                     break;
  43.                 case "clear":
  44.                     Console.Clear();
  45.                     break;
  46.                 case "echo":
  47.                     try
  48.                     {
  49.                         Console.WriteLine(String.Join(" ", input).Replace(input[0], ""));
  50.                     }
  51.                     catch (ArgumentOutOfRangeException)
  52.                     {
  53.                         Console.WriteLine(" ");
  54.                     }
  55.                     break;
  56.                 /*case "sleep":
  57.                    new PIT().Wait(UInt32.Parse(input[1])*1000);
  58.                     break;*/
  59.                 case "ls":
  60.                     string path = input[1];                
  61.                     foreach (var i in Directory.GetFiles(path))
  62.                     {
  63.                         Console.WriteLine(i);
  64.                     }
  65.                     foreach (var i in Directory.GetDirectories(path))
  66.                     {
  67.                         Console.WriteLine(i);
  68.                     }
  69.                     break;
  70.                 case "edit":                  
  71.                     using (FileStream fstream = new FileStream($"{input[1]}", FileMode.OpenOrCreate))
  72.                     {
  73.                         // преобразуем строку в байты
  74.                         byte[] array = System.Text.Encoding.Default.GetBytes(Console.ReadLine());
  75.                         // запись массива байтов в файл
  76.                         fstream.Write(array, 0, array.Length);                        
  77.                     }
  78.                     break;
  79.                 case "cat":
  80.                     //using (FileStream fstream = File.OpenRead($"{input[1]}"))
  81.                     //{
  82.                     //    // преобразуем строку в байты
  83.                     //    byte[] array = new byte[fstream.Length];
  84.                     //    // считываем данные
  85.                     //    fstream.Read(array, 0, array.Length);
  86.                     //    // декодируем байты в строку
  87.                     //    string textFromFile = System.Text.Encoding.Default.GetString(array);
  88.                     //    Console.WriteLine(textFromFile);
  89.                     //}
  90.                     using (StreamReader sr = new StreamReader(input[1], System.Text.Encoding.Default))
  91.                     {
  92.                         string line;
  93.                         while ((line = sr.ReadLine()) != null)
  94.                         {
  95.                             Console.WriteLine(line);
  96.                         }
  97.                     }
  98.                     break;
  99.  
  100.                 case "ironinfo":
  101.                     //Console.WriteLine("---------- Информация о камне -----------");                
  102.                     Console.WriteLine("---------- CPU info-----------");
  103.                     Console.WriteLine($"Name: {Cosmos.Core.ProcessorInformation.GetVendorName()}");
  104.                     //Console.WriteLine($"NumberOfCores: {Cosmos.Core.ProcessorInformation.GetCycleCount()}");
  105.                     Console.WriteLine($"NumberOfCores: {Cosmos.Core.CPU.GetEndOfKernel()}");
  106.                     break;
  107.                 case "piano":
  108.                     ConsoleKeyInfo key;
  109.                     do
  110.                     {
  111.                         Console.Clear();
  112.                         Console.WriteLine("Piano v1.0\nPress 'Esc' to exit the program.\n");
  113.                         Console.WriteLine("Press the Q-U button:");                      
  114.                         key = Console.ReadKey();
  115.                         switch (key.Key)
  116.                         {
  117.                             case ConsoleKey.Q:                        
  118.                                 PCSpeaker.Beep(523);
  119.                                 Console.Clear();
  120.                                 break;
  121.                             case ConsoleKey.W:                          
  122.                                 PCSpeaker.Beep(587);
  123.                                 Console.Clear();
  124.                                 break;
  125.                             case ConsoleKey.E:
  126.                               PCSpeaker.Beep(659);
  127.                                 Console.Clear();
  128.                                 break;
  129.                             case ConsoleKey.R:
  130.                               PCSpeaker.Beep(698);
  131.                                 Console.Clear();
  132.                                 break;
  133.                             case ConsoleKey.T:
  134.                               PCSpeaker.Beep(784);
  135.                                 Console.Clear();
  136.                                 break;
  137.                             case ConsoleKey.Y:
  138.                               PCSpeaker.Beep(880);
  139.                                 Console.Clear();
  140.                                 break;
  141.                             case ConsoleKey.U:
  142.                               PCSpeaker.Beep(987);
  143.                                 Console.Clear();
  144.                                 break;
  145.                         }
  146.                     }
  147.                     while (key.Key != ConsoleKey.Escape); // по нажатию на Escape завершаем цикл
  148.                     break;
  149.                 case "date":
  150.                     //Console.WriteLine($"{RTC.DayOfTheWeek} {RTC.Month} {RTC.DayOfTheMonth} {RTC.Hour}:{RTC.Minute}:{RTC.Second} {RTC.Year} {RTC.Century}"); //Real Time Clock
  151.                     Console.WriteLine(DateTime.Now);
  152.                     break;
  153.                 case "df":
  154.                     foreach (var i in Sys.FileSystem.VFS.VFSManager.GetLogicalDrives())
  155.                     {
  156.                         Console.WriteLine(i);
  157.                     }
  158.                     break;
  159.                 default:
  160.                     if (input[0] != "")
  161.                         Console.WriteLine($"{input[0]}: command not found");
  162.                     break;
  163.             }
  164.         }
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement