diff options
Diffstat (limited to 'font_cp00.c')
-rw-r--r-- | font_cp00.c | 1069 |
1 files changed, 1069 insertions, 0 deletions
diff --git a/font_cp00.c b/font_cp00.c new file mode 100644 index 0000000..1cf9555 --- /dev/null +++ b/font_cp00.c @@ -0,0 +1,1069 @@ +/* + * Copyright (C) 2020 Mikhail Burakov. This file is part of Chrand. + * + * Chrand is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Chrand is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Chrand. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stdint.h> + +#define PIXEL(op) ((uint32_t) !!(op - ' ')) + +#define LINE(str) \ + (PIXEL(str[0]) << 7 | PIXEL(str[1]) << 6 | PIXEL(str[2]) << 5 | \ + PIXEL(str[3]) << 4 | PIXEL(str[4]) << 3 | PIXEL(str[5]) << 2 | \ + PIXEL(str[6]) << 1 | PIXEL(str[7])) + +#define GLYPH(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _a, width) \ + width << 24 | LINE(_0) << 16 | LINE(_1) << 8 | LINE(_2), \ + LINE(_3) << 24 | LINE(_4) << 16 | LINE(_5) << 8 | LINE(_6), \ + LINE(_7) << 24 | LINE(_8) << 16 | LINE(_9) << 8 | LINE(_a) + +extern const uint32_t kCp00[256 * 3]; + +const uint32_t kCp00[256 * 3] = { + [0x21 * 3] = GLYPH(" ", // + " ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + " ", // + "# ", // + " ", // + " ", 1), + [0x22 * 3] = GLYPH(" ", // + "# # ", // + "# # ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", 3), + [0x23 * 3] = GLYPH(" ", // + " ", // + " # # ", // + "###### ", // + " # # ", // + " # # ", // + " # # ", // + "###### ", // + " # # ", // + " ", // + " ", 6), + [0x24 * 3] = GLYPH(" ", // + " # ", // + " ### ", // + "# # # ", // + "# # ", // + " ### ", // + " # # ", // + "# # # ", // + " ### ", // + " # ", // + " ", 5), + [0x25 * 3] = GLYPH(" ", // + " ", // + " ## # ", // + "# # # ", // + "## # ", // + " ", // + " # ## ", // + " # # # ", // + "# ## ", // + " ", // + " ", 6), + [0x26 * 3] = GLYPH(" ", // + " ", // + " # ", // + " # # ", // + " # ", // + " # # ", // + "# # ", // + "# ## ", // + " ### ", // + " ", // + " ", 6), + [0x27 * 3] = GLYPH(" ", // + "## ", // + " # ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", 2), + [0x28 * 3] = GLYPH(" ", // + " # ", // + " # ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + " # ", // + " # ", // + " ", 3), + [0x29 * 3] = GLYPH(" ", // + "# ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + "# ", // + " ", 3), + [0x2a * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "# # ", // + " # ", // + "# # ", // + " ", // + " ", // + " ", // + " ", 3), + [0x2b * 3] = GLYPH(" ", // + " ", // + " ", // + " # ", // + " # ", // + "##### ", // + " # ", // + " # ", // + " ", // + " ", // + " ", 5), + [0x2c * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + "## ", // + " # ", // + " ", 2), + [0x2d * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ", // + "#### ", // + " ", // + " ", // + " ", // + " ", // + " ", 4), + [0x2e * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + "# ", // + " ", // + " ", 1), + [0x2f * 3] = GLYPH(" ", // + " ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + "# ", // + "# ", // + " ", 4), + [0x30 * 3] = GLYPH(" ", // + " ", // + " ### ", // + "# # ", // + "# # # ", // + "# # # ", // + "# # # ", // + "# # ", // + " ### ", // + " ", // + " ", 5), + [0x31 * 3] = GLYPH(" ", // + " ", // + " # ", // + " ## ", // + "# # ", // + " # ", // + " # ", // + " # ", // + " ### ", // + " ", // + " ", 4), + [0x32 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + " # ", // + " # ", // + " # ", // + "# ", // + "#### ", // + " ", // + " ", 4), + [0x33 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + " # ", // + " # ", // + " # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x34 * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "#### ", // + " # ", // + " # ", // + " # ", // + " ", // + " ", 4), + [0x35 * 3] = GLYPH(" ", // + " ", // + "### ", // + "# ", // + "# ", // + "### ", // + " # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x36 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# ", // + "# ", // + "### ", // + "# # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x37 * 3] = GLYPH(" ", // + " ", // + "#### ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " ", // + " ", 4), + [0x38 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# # ", // + " ## ", // + "# # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x39 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# # ", // + " ### ", // + " # ", // + " # ", // + " ## ", // + " ", // + " ", 4), + [0x3a * 3] = GLYPH(" ", // + " ", // + "# ", // + " ", // + " ", // + " ", // + " ", // + " ", // + "# ", // + " ", // + " ", 1), + [0x3b * 3] = GLYPH(" ", // + " ", // + " # ", // + " ", // + " ", // + " ", // + " ", // + " ", // + "## ", // + " # ", // + " ", 2), + [0x3c * 3] = GLYPH(" ", // + " ", // + " ", // + " # ", // + " # ", // + "# ", // + " # ", // + " # ", // + " ", // + " ", // + " ", 3), + [0x3d * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "#### ", // + " ", // + "#### ", // + " ", // + " ", // + " ", // + " ", 4), + [0x3e * 3] = GLYPH(" ", // + " ", // + " ", // + "# ", // + " # ", // + " # ", // + " # ", // + "# ", // + " ", // + " ", // + " ", 3), + [0x3f * 3] = GLYPH(" ", // + " ", // + " ### ", // + "# # ", // + " # ", // + " ## ", // + " # ", // + " ", // + " # ", // + " ", // + " ", 5), + [0x40 * 3] = GLYPH(" ", // + " ", // + " #### ", // + "# # ", // + "# ## # ", // + "# ## # ", // + "# #### ", // + "# ", // + " #### ", // + " ", // + " ", 6), + [0x41 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# # ", // + "#### ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x42 * 3] = GLYPH(" ", // + " ", // + "### ", // + "# # ", // + "# # ", // + "### ", // + "# # ", // + "# # ", // + "### ", // + " ", // + " ", 4), + [0x43 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# ", // + "# ", // + "# ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x44 * 3] = GLYPH(" ", // + " ", // + "### ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "### ", // + " ", // + " ", 4), + [0x45 * 3] = GLYPH(" ", // + " ", // + "#### ", // + "# ", // + "# ", // + "### ", // + "# ", // + "# ", // + "#### ", // + " ", // + " ", 4), + [0x46 * 3] = GLYPH(" ", // + " ", // + "#### ", // + "# ", // + "# ", // + "### ", // + "# ", // + "# ", // + "# ", // + " ", // + " ", 4), + [0x47 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# ", // + "# ## ", // + "# # ", // + "# # ", // + " ### ", // + " ", // + " ", 4), + [0x48 * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "#### ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x49 * 3] = GLYPH(" ", // + " ", // + "### ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + "### ", // + " ", // + " ", 3), + [0x4a * 3] = GLYPH(" ", // + " ", // + " ## ", // + " # ", // + " # ", // + " # ", // + " # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x4b * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "## ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x4c * 3] = GLYPH(" ", // + " ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "#### ", // + " ", // + " ", 4), + [0x4d * 3] = GLYPH(" ", // + " ", // + "# # ", // + "## ## ", // + "# # # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 5), + [0x4e * 3] = GLYPH(" ", // + " ", // + "# # ", // + "## # ", // + "# # # ", // + "# ## ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 5), + [0x4f * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x50 * 3] = GLYPH(" ", // + " ", // + "### ", // + "# # ", // + "# # ", // + "### ", // + "# ", // + "# ", // + "# ", // + " ", // + " ", 4), + [0x51 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ## ", // + " # ", // + " # ", 4), + [0x52 * 3] = GLYPH(" ", // + " ", // + "### ", // + "# # ", // + "# # ", // + "### ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x53 * 3] = GLYPH(" ", // + " ", // + " ## ", // + "# # ", // + "# ", // + " ## ", // + " # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x54 * 3] = GLYPH(" ", // + " ", // + "##### ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " ", // + " ", 5), + [0x55 * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x56 * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " # ", // + " ", // + " ", 4), + [0x57 * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # # ", // + "# # # ", // + "# # # ", // + "# # # ", // + " # # ", // + " ", // + " ", 5), + [0x58 * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + " ## ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x59 * 3] = GLYPH(" ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + " ### ", // + " # ", // + " # ", // + " ## ", // + " ", // + " ", 4), + [0x5a * 3] = GLYPH(" ", // + " ", // + "##### ", // + " # ", // + " # ", // + " # ", // + " # ", // + "# ", // + "##### ", // + " ", // + " ", 5), + [0x5b * 3] = GLYPH(" ", // + "### ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "### ", // + " ", 3), + [0x5c * 3] = GLYPH(" ", // + " ", // + "# ", // + "# ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " ", 4), + [0x5d * 3] = GLYPH(" ", // + "### ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + "### ", // + " ", 3), + [0x5e * 3] = GLYPH(" ", // + " # ", // + " # # ", // + "# # ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", 5), + [0x5f * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + "#### ", // + " ", // + " ", 4), + [0x60 * 3] = GLYPH(" ", // + "## ", // + "# ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", 2), + [0x61 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ### ", // + "# # ", // + "# # ", // + "# # ", // + " ### ", // + " ", // + " ", 4), + [0x62 * 3] = GLYPH(" ", // + " ", // + "# ", // + "# ", // + "### ", // + "# # ", // + "# # ", // + "# # ", // + "### ", // + " ", // + " ", 4), + [0x63 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ## ", // + "# # ", // + "# ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x64 * 3] = GLYPH(" ", // + " ", // + " # ", // + " # ", // + " ### ", // + "# # ", // + "# # ", // + "# # ", // + " ### ", // + " ", // + " ", 4), + [0x65 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ## ", // + "# # ", // + "#### ", // + "# ", // + " ## ", // + " ", // + " ", 4), + [0x66 * 3] = GLYPH(" ", // + " ", // + " # ", // + " # ", // + "### ", // + " # ", // + " # ", // + " # ", // + " # ", // + " ", // + " ", 3), + [0x67 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ### ", // + "# # ", // + "# # ", // + "# # ", // + " ### ", // + " # ", // + " ## ", 4), + [0x68 * 3] = GLYPH(" ", // + " ", // + "# ", // + "# ", // + "### ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x69 * 3] = GLYPH(" ", // + " ", // + "# ", // + " ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + " ", // + " ", 1), + [0x6a * 3] = GLYPH(" ", // + " ", // + " # ", // + " ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + "# ", 2), + [0x6b * 3] = GLYPH(" ", // + " ", // + "# ", // + "# ", // + "# # ", // + "# # ", // + "## ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x6c * 3] = GLYPH(" ", // + " ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + " ", // + " ", 1), + [0x6d * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "## # ", // + "# # # ", // + "# # # ", // + "# # # ", // + "# # # ", // + " ", // + " ", 5), + [0x6e * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "### ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x6f * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ## ", // + "# # ", // + "# # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x70 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "### ", // + "# # ", // + "# # ", // + "# # ", // + "### ", // + "# ", // + "# ", 4), + [0x71 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ### ", // + "# # ", // + "# # ", // + "# # ", // + " ### ", // + " # ", // + " # ", 4), + [0x72 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "### ", // + "# ", // + "# ", // + "# ", // + "# ", // + " ", // + " ", 3), + [0x73 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + " ## ", // + "# ", // + " ## ", // + " # ", // + "### ", // + " ", // + " ", 4), + [0x74 * 3] = GLYPH(" ", // + " ", // + " # ", // + " # ", // + "### ", // + " # ", // + " # ", // + " # ", // + " # ", // + " ", // + " ", 3), + [0x75 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ## ", // + " ", // + " ", 4), + [0x76 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " # ", // + " ", // + " ", 4), + [0x77 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "# # ", // + "# # ", // + "# # # ", // + "# # # ", // + " # # ", // + " ", // + " ", 5), + [0x78 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "# # ", // + "# # ", // + " ## ", // + "# # ", // + "# # ", // + " ", // + " ", 4), + [0x79 * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "# # ", // + "# # ", // + "# # ", // + "# # ", // + " ### ", // + " # ", // + " ## ", 4), + [0x7a * 3] = GLYPH(" ", // + " ", // + " ", // + " ", // + "### ", // + " # ", // + " # ", // + "# ", // + "### ", // + " ", // + " ", 3), + [0x7b * 3] = GLYPH(" ", // + " # ", // + " # ", // + " # ", // + " # ", // + "# ", // + " # ", // + " # ", // + " # ", // + " # ", // + " ", 3), + [0x7c * 3] = GLYPH(" ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + "# ", // + " ", 1), + [0x7d * 3] = GLYPH(" ", // + "# ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + " # ", // + "# ", // + " ", 3), + [0x7e * 3] = GLYPH(" ", // + " ## # ", // + "# ## ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", // + " ", 6), +}; |