using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Cosmos.HAL { public abstract class TextScreenBase : Device { public abstract void Clear(); public abstract void SetColors(ConsoleColor aForeground, ConsoleColor aBackground); public abstract byte GetColor(); public abstract ushort Cols { get; } public abstract ushort Rows { get; } public ConsoleColor Foreground { get { return (ConsoleColor)(GetColor() ^ (byte)((byte)Background << 4)); } set { SetColors(value, Background); } } public ConsoleColor Background { get { return (ConsoleColor)(GetColor() >> 4); } set { SetColors(Foreground, value); } } public abstract void SetCursorPos(int x, int y); public abstract void ScrollUp(); public abstract char this[int x, int y] { get; set; } public abstract int GetCursorSize(); public abstract void SetCursorSize(int value); public abstract bool GetCursorVisible(); public abstract void SetCursorVisible(bool value); } }