added 14x7 font - ploot - simple plotting tools
 (HTM) git clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 543398796b10e8f93841918a617933c853efe0ff
 (DIR) parent d962017f48ac3c15c670c154b9a7f951fe1dd82d
 (HTM) Author: Josuah Demangeon <mail@josuah.net>
       Date:   Mon, 30 Apr 2018 17:09:10 +0200
       
       added 14x7 font
       
       Diffstat:
         M Makefile                            |       2 +-
         M ffdraw.c                            |       8 +++++---
         D font-14x6.c                         |     551 -------------------------------
         D font-14x6.h                         |       1 -
         M font.h                              |      34 +++++++++++++++++++++++--------
         A font_14x7.c                         |    1639 ++++++++++++++++++++++++++++++
         A font_14x7.h                         |       1 +
         M main.c                              |       6 +++---
       
       8 files changed, 1674 insertions(+), 568 deletions(-)
       ---
 (DIR) diff --git a/Makefile b/Makefile
       @@ -1,6 +1,6 @@
        CFLAGS        = -Wall -Wextra -Werror -std=c89 -pedantic -D_POSIX_C_SOURCE=200809L
        
       -SRC = main.c ffdraw.c font-14x6.c
       +SRC = main.c ffdraw.c font_14x7.c
        
        OBJ = $(SRC:.c=.o)
        
 (DIR) diff --git a/ffdraw.c b/ffdraw.c
       @@ -11,7 +11,7 @@
        #include <stdlib.h>
        
        #include "ffdraw.h"
       -#include "font-14x6.h"
       +#include "font_14x7.h"
        
        #define WIDTH 100
        #define HEIGHT 100
       @@ -22,8 +22,8 @@ void
        ffdraw_pixel(Canvas *can, Color col,
                int x, int y)
        {
       -        x = MIN(can->w - 1, x);
       -        y = MIN(can->h - 1, y);
       +        if (x >= can->w || y >= can->h)
       +                return;
                memcpy(can->b + x + (can->h - 1 - y) * can->w, col, sizeof(*can->b));
        }
        
       @@ -85,6 +85,8 @@ ffdraw_char(Canvas *can, Color col, char c, Font *f,
        {
                int xf, yf;
        
       +        if (c & 0x80)
       +                c = '\0';
                x -= f->w / 2;
                y -= f->h / 2;
        
 (DIR) diff --git a/font-14x6.c b/font-14x6.c
       @@ -1,551 +0,0 @@
       -#include "font.h"
       -#include "font-14x6.h"
       -
       -#define FONT_HEIGHT 14
       -#define FONT_WIDTH 6
       -
       -C(space) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(bang) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(double) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,_,X,_,
       -_        ,_,X,_,X,_,
       -_        ,_,X,_,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(hash) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,_,X,_,
       -_        ,_,X,_,X,_,
       -_        ,X,X,X,X,X,
       -_        ,_,X,_,X,_,
       -_        ,_,X,_,X,_,
       -_        ,X,X,X,X,X,
       -_        ,_,X,_,X,_,
       -_        ,_,X,_,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(dollar) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,X,_,X,
       -_        ,X,_,X,_,_,
       -_        ,X,_,X,_,_,
       -_        ,_,X,X,X,_,
       -_        ,_,_,X,_,X,
       -_        ,_,_,X,_,X,
       -_        ,X,_,X,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -};
       -
       -C(percent) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,X,X,_,_,X,
       -_        ,X,X,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,X,X,
       -_        ,X,_,_,X,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(ampersand) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,X,_,
       -_        ,_,X,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,X,_,X,
       -_        ,X,_,_,X,_,
       -_        ,X,_,_,X,_,
       -_        ,X,_,_,X,_,
       -_        ,_,X,X,_,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(single) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(l_round) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(r_round) = {
       -_        ,_,_,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(asterisk) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,X,_,X,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,X,_,X,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(plus) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,X,X,X,X,X,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(coma) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(minus) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,X,X,X,X,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(dot) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(slash) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(0) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,X,_,X,_,X,
       -_        ,X,_,X,_,X,
       -_        ,X,_,X,_,X,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(1) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(2) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,X,X,X,X,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(3) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(4) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,X,X,
       -_        ,_,_,X,_,X,
       -_        ,_,X,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,X,X,X,X,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(5) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,X,X,X,X,X,
       -_        ,X,_,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,X,X,X,X,_,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(6) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,X,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(7) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,X,X,X,X,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(8) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(9) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,X,X,X,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(column) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(semicolumn) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(l_angle) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(equal) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,X,X,X,X,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,X,X,X,X,X,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(r_angle) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,_,X,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,X,_,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,X,_,_,_,
       -_        ,X,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -C(question) = {
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,X,X,X,_,
       -_        ,X,_,_,_,X,
       -_        ,X,_,_,_,X,
       -_        ,_,_,_,_,X,
       -_        ,_,_,_,X,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,X,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_,
       -_        ,_,_,_,_,_
       -};
       -
       -FONT(font_14x6);
 (DIR) diff --git a/font-14x6.h b/font-14x6.h
       @@ -1 +0,0 @@
       -extern Font font_14x6;
 (DIR) diff --git a/font.h b/font.h
       @@ -7,15 +7,17 @@
         */
        #define _ 0
        #define X 1
       -#define C(x) char glyph_ ## x[FONT_WIDTH * FONT_HEIGHT]
       +#define C(x) static char glyph_ ## x[FONT_WIDTH * FONT_HEIGHT]
        
        #define FONT(x) Font x = { FONT_WIDTH, FONT_HEIGHT, { \
       -        NULL, NULL, NULL, NULL, \
       -        NULL, NULL, NULL, NULL, \
       -        NULL, NULL, NULL, NULL, \
       -        NULL, NULL, NULL, NULL, \
       -        NULL, NULL, NULL, NULL, \
       -        NULL, NULL, NULL, NULL, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
       +        glyph_error, glyph_error, glyph_error, glyph_error, \
                glyph_space, glyph_bang, glyph_double, glyph_hash, \
                glyph_dollar, glyph_percent, glyph_ampersand, glyph_single, \
                glyph_l_round, glyph_r_round, glyph_asterisk, glyph_plus, \
       @@ -24,6 +26,20 @@
                glyph_4, glyph_5, glyph_6, glyph_7, \
                glyph_8, glyph_9, glyph_column, glyph_semicolumn, \
                glyph_l_angle, glyph_equal, glyph_r_angle, glyph_question, \
       -        glyph_column, glyph_semicolumn, glyph_l_angle, glyph_equal, \
       -        glyph_r_angle, glyph_question \
       +        glyph_at, glyph_A, glyph_B, glyph_C, \
       +        glyph_D, glyph_E, glyph_F, glyph_G, \
       +        glyph_H, glyph_I, glyph_J, glyph_K, \
       +        glyph_L, glyph_M, glyph_N, glyph_O, \
       +        glyph_P, glyph_Q, glyph_R, glyph_S, \
       +        glyph_T, glyph_U, glyph_V, glyph_W, \
       +        glyph_X, glyph_Y, glyph_Z, glyph_l_square, \
       +        glyph_backslash, glyph_r_square, glyph_hat, glyph_underscore, \
       +        glyph_backtilt, glyph_a, glyph_b, glyph_c, \
       +        glyph_d, glyph_e, glyph_f, glyph_g, \
       +        glyph_h, glyph_i, glyph_j, glyph_k, \
       +        glyph_l, glyph_m, glyph_n, glyph_o, \
       +        glyph_p, glyph_q, glyph_r, glyph_s, \
       +        glyph_t, glyph_u, glyph_v, glyph_w, \
       +        glyph_x, glyph_y, glyph_z, glyph_l_curly, \
       +        glyph_pipe, glyph_r_curly, glyph_tilde, glyph_error \
        } }
 (DIR) diff --git a/font_14x7.c b/font_14x7.c
       @@ -0,0 +1,1639 @@
       +#include "font.h"
       +#include "font_14x7.h"
       +
       +#define FONT_HEIGHT 14
       +#define FONT_WIDTH 7
       +
       +C(error) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(space) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(bang) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(double) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(hash) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(dollar) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,_,_,
       +        _,X,_,X,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,X,_,X,_,
       +        _,_,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(percent) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,_,_,X,_,
       +        _,X,X,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,X,X,_,
       +        _,X,_,_,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(ampersand) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,_,X,_,
       +        _,X,_,_,X,_,_,
       +        _,X,_,_,X,_,_,
       +        _,X,_,_,X,_,_,
       +        _,_,X,X,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(single) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(l_round) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(r_round) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(asterisk) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,X,_,X,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,X,_,X,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(plus) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(coma) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(minus) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(dot) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(slash) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(0) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(1) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(2) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(3) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(4) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,X,_,
       +        _,_,_,X,_,X,_,
       +        _,_,X,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(5) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(6) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(7) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(8) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(9) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(column) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(semicolumn) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(l_angle) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(equal) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(r_angle) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(question) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(at) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,X,X,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,X,X,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(A) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(B) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(C) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(D) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(E) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(F) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(G) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,X,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(H) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(I) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(J) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,X,_,_,X,_,_,
       +        _,_,X,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(K) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,X,_,_,
       +        _,X,_,X,_,_,_,
       +        _,X,X,_,_,_,_,
       +        _,X,_,X,_,_,_,
       +        _,X,_,_,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(L) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(M) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,_,X,X,_,
       +        _,X,X,_,X,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(N) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,_,_,X,_,
       +        _,X,X,_,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,_,X,X,_,
       +        _,X,_,_,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(O) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(P) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(Q) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(R) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,X,_,_,_,
       +        _,X,_,_,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(S) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(T) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(U) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(V) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(W) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,X,_,X,X,_,
       +        _,X,X,_,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(X) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(Y) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(Z) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(l_square) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(backslash) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(r_square) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(hat) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(underscore) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +X        ,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(backtilt) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(a) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(b) = {
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(c) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(d) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(e) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(f) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,X,X,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(g) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_
       +};
       +
       +C(h) = {
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(i) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(j) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,X,_,_,X,_,_,
       +        _,_,X,X,_,_,_
       +};
       +
       +C(k) = {
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,X,_,_,
       +        _,X,_,X,_,_,_,
       +        _,X,X,_,_,_,_,
       +        _,X,_,X,_,_,_,
       +        _,X,_,_,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(l) = {
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(m) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(n) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(o) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(p) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_
       +};
       +
       +C(q) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X
       +};
       +
       +C(r) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,X,X,X,X,
       +        _,X,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(s) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,X,X,_,
       +        _,X,_,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,X,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,_,X,_,
       +        _,X,X,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(t) = {
       +        _,_,_,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,X,X,X,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(u) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(v) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(w) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(x) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,X,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(y) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,X,_,_,_,X,_,
       +        _,_,X,X,X,_,_
       +};
       +
       +C(z) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,X,X,X,X,X,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(l_curly) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,X,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,X,_,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,X,_,_,_,_,
       +        _,_,_,X,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(pipe) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(r_curly) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,X,_,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,_,X,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,_,_,X,_,_,
       +        _,_,X,X,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +C(tilde) = {
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,X,_,_,X,_,
       +        _,X,_,X,_,X,_,
       +        _,X,_,_,X,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_,
       +        _,_,_,_,_,_,_
       +};
       +
       +FONT(font_14x7);
 (DIR) diff --git a/font_14x7.h b/font_14x7.h
       @@ -0,0 +1 @@
       +extern Font font_14x7;
 (DIR) diff --git a/main.c b/main.c
       @@ -4,9 +4,9 @@
        #include <stdio.h>
        
        #include "ffdraw.h"
       -#include "font-14x6.h"
       +#include "font_14x7.h"
        
       -#define WIDTH 100
       +#define WIDTH 500
        #define HEIGHT 100
        
        Color buffer[WIDTH * HEIGHT];
       @@ -19,7 +19,7 @@ ffdraw(Canvas *can)
        
                ffdraw_fill(can, col1);
                ffdraw_line(can, col2, 49,1,9,79);
       -        ffdraw_str(can, col2, "01234", &font_14x6, 44, 50);
       +        ffdraw_str(can, col2, "R\\S`T'UaVbWcYdZe\nfghb\tjoi\rklmnopqrstuvwxyz{|}", &font_14x7, 44, 50);
        }
        
        int