private static Point2i MapCharNumberToImage(byte CharNumber)
        {
            Point2i Result = new Point2i();

            byte CharPosX = (byte)(CharNumber % 16);
            byte CharPosY = (byte)(CharNumber / 16);

            Result.MoveTo(CharPosX, CharPosY);

            return(Result);
        }
        private static Point2i MapCharToImage(char Chr)
        {
            Point2i Result = new Point2i();

            switch (Chr)
            {
            // First 2 lines of image contains graphic drawing characters

            // Line 3:
            case ' ': Result.MoveTo(00, 02); break;

            case '!': Result.MoveTo(01, 02); break;

            case '"': Result.MoveTo(02, 02); break;

            case '#': Result.MoveTo(03, 02); break;

            case '$': Result.MoveTo(04, 02); break;

            case '%': Result.MoveTo(05, 02); break;

            case '&': Result.MoveTo(06, 02); break;

            case '\'': Result.MoveTo(07, 02); break;

            case '(': Result.MoveTo(08, 02); break;

            case ')': Result.MoveTo(09, 02); break;

            case '*': Result.MoveTo(10, 02); break;

            case '+': Result.MoveTo(11, 02); break;

            case ',': Result.MoveTo(12, 02); break;

            case '-': Result.MoveTo(13, 02); break;

            case '.': Result.MoveTo(14, 02); break;

            case '/': Result.MoveTo(15, 02); break;

            // Line 4:
            case '0': Result.MoveTo(00, 03); break;

            case '1': Result.MoveTo(01, 03); break;

            case '2': Result.MoveTo(02, 03); break;

            case '3': Result.MoveTo(03, 03); break;

            case '4': Result.MoveTo(04, 03); break;

            case '5': Result.MoveTo(05, 03); break;

            case '6': Result.MoveTo(06, 03); break;

            case '7': Result.MoveTo(07, 03); break;

            case '8': Result.MoveTo(08, 03); break;

            case '9': Result.MoveTo(09, 03); break;

            case ':': Result.MoveTo(10, 03); break;

            case ';': Result.MoveTo(11, 03); break;

            case '<': Result.MoveTo(12, 03); break;

            case '=': Result.MoveTo(13, 03); break;

            case '>': Result.MoveTo(14, 03); break;

            case '?': Result.MoveTo(15, 03); break;

            // Line 5:
            case '@': Result.MoveTo(00, 04); break;

            case 'A': Result.MoveTo(01, 04); break;

            case 'B': Result.MoveTo(02, 04); break;

            case 'C': Result.MoveTo(03, 04); break;

            case 'D': Result.MoveTo(04, 04); break;

            case 'E': Result.MoveTo(05, 04); break;

            case 'F': Result.MoveTo(06, 04); break;

            case 'G': Result.MoveTo(07, 04); break;

            case 'H': Result.MoveTo(08, 04); break;

            case 'I': Result.MoveTo(09, 04); break;

            case 'J': Result.MoveTo(10, 04); break;

            case 'K': Result.MoveTo(11, 04); break;

            case 'L': Result.MoveTo(12, 04); break;

            case 'M': Result.MoveTo(13, 04); break;

            case 'N': Result.MoveTo(14, 04); break;

            case 'O': Result.MoveTo(15, 04); break;

            // Line 6:
            case 'P': Result.MoveTo(00, 05); break;

            case 'Q': Result.MoveTo(01, 05); break;

            case 'R': Result.MoveTo(02, 05); break;

            case 'S': Result.MoveTo(03, 05); break;

            case 'T': Result.MoveTo(04, 05); break;

            case 'U': Result.MoveTo(05, 05); break;

            case 'V': Result.MoveTo(06, 05); break;

            case 'W': Result.MoveTo(07, 05); break;

            case 'X': Result.MoveTo(08, 05); break;

            case 'Y': Result.MoveTo(09, 05); break;

            case 'Z': Result.MoveTo(10, 05); break;

            case '[': Result.MoveTo(11, 05); break;

            case '\\': Result.MoveTo(12, 05); break;

            case ']': Result.MoveTo(13, 05); break;

            case '^': Result.MoveTo(14, 05); break;

            case '_': Result.MoveTo(15, 05); break;

            // Line 7:
            //case '\'': Result.MoveTo(00, 06); break;      // we already have this character. Why?!?
            case 'a': Result.MoveTo(01, 06); break;

            case 'b': Result.MoveTo(02, 06); break;

            case 'c': Result.MoveTo(03, 06); break;

            case 'd': Result.MoveTo(04, 06); break;

            case 'e': Result.MoveTo(05, 06); break;

            case 'f': Result.MoveTo(06, 06); break;

            case 'g': Result.MoveTo(07, 06); break;

            case 'h': Result.MoveTo(08, 06); break;

            case 'i': Result.MoveTo(09, 06); break;

            case 'j': Result.MoveTo(10, 06); break;

            case 'k': Result.MoveTo(11, 06); break;

            case 'l': Result.MoveTo(12, 06); break;

            case 'm': Result.MoveTo(13, 06); break;

            case 'n': Result.MoveTo(14, 06); break;

            case 'o': Result.MoveTo(15, 06); break;

            // Line 8:
            case 'p': Result.MoveTo(00, 07); break;

            case 'q': Result.MoveTo(01, 07); break;

            case 'r': Result.MoveTo(02, 07); break;

            case 's': Result.MoveTo(03, 07); break;

            case 't': Result.MoveTo(04, 07); break;

            case 'u': Result.MoveTo(05, 07); break;

            case 'v': Result.MoveTo(06, 07); break;

            case 'w': Result.MoveTo(07, 07); break;

            case 'x': Result.MoveTo(08, 07); break;

            case 'y': Result.MoveTo(09, 07); break;

            case 'z': Result.MoveTo(10, 07); break;

            case '{': Result.MoveTo(11, 07); break;

            case '|': Result.MoveTo(12, 07); break;

            case '}': Result.MoveTo(13, 07); break;
            // The new 2 characters don't exists on keyboard :)

            // The next 2 lines are graphic drawing characters
            // The next 6 lines are the same characters in yellow/green

            // We don't have an image for this character
            default: Result = null; break;
            }

            return(Result);
        }