PageRenderTime 39ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/BrainFuckOS/BrainFuckOS-TestConsole/PortForwarderTEST.cs

#
C# | 69 lines | 65 code | 2 blank | 2 comment | 3 complexity | 919f2c7a0f610a480e556e7985b9535f MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace BrainFuckOS
  6. {
  7. static class PortForwarder
  8. {
  9. public static uint Read(uint pointer,object sender)
  10. {
  11. switch ((WR_Modes)pointer)
  12. {
  13. case WR_Modes.ConsoleChar:
  14. return (uint)Console.ReadKey(true).KeyChar;
  15. case WR_Modes.ConsoleCursorTop:
  16. return (uint)Console.CursorTop;
  17. case WR_Modes.ConsoleCursorLeft:
  18. return (uint)Console.CursorLeft;
  19. default:
  20. //Cosmos.System.Global.Dbg.SendMessage(sender.ToString(), "0x" + pointer.ToString("X2") + " ist nicht lesbar.");
  21. return 0;
  22. }
  23. }
  24. public static void Write(uint pointer, uint value, object sender)
  25. {
  26. Program.Debug("Pointer: " + pointer.ToString("X2") + "; Value: " + value.ToString("X2"));
  27. try
  28. {
  29. switch ((WR_Modes)pointer)
  30. {
  31. case WR_Modes.ConsoleChar:
  32. Console.Write((char)value);
  33. if (Console.CursorTop > 24)
  34. {
  35. Console.CursorTop = 0;
  36. }
  37. break;
  38. case WR_Modes.ConsoleBG:
  39. Console.BackgroundColor = (ConsoleColor)value;
  40. break;
  41. case WR_Modes.ConsoleFG:
  42. Console.ForegroundColor = (ConsoleColor)value;
  43. break;
  44. case WR_Modes.ConsoleBeep:
  45. Console.Beep((int)(value * 10 + 37), 500);
  46. break;
  47. case WR_Modes.Wait:
  48. System.Threading.Thread.Sleep((int)(value * 1000));
  49. break;
  50. case WR_Modes.ConsoleCursorTop:
  51. Console.CursorTop = (int)value;
  52. break;
  53. case WR_Modes.ConsoleCursorLeft:
  54. Console.CursorLeft = (int)value;
  55. break;
  56. default:
  57. //Cosmos.System.Global.Dbg.SendMessage(sender.ToString(), "0x" + pointer.ToString("X2") + " ist nicht beschreibar.");
  58. break;
  59. }
  60. }
  61. catch
  62. {
  63. Console.Beep(500, 1500);
  64. }
  65. }
  66. }
  67. }