summaryrefslogtreecommitdiff
path: root/font_cp04.c
diff options
context:
space:
mode:
Diffstat (limited to 'font_cp04.c')
-rw-r--r--font_cp04.c761
1 files changed, 761 insertions, 0 deletions
diff --git a/font_cp04.c b/font_cp04.c
new file mode 100644
index 0000000..a657f52
--- /dev/null
+++ b/font_cp04.c
@@ -0,0 +1,761 @@
+/*
+ * 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 kCp04[256 * 3];
+
+const uint32_t kCp04[256 * 3] = {
+ [0x01 * 3] = GLYPH("# # ", //
+ " ", //
+ "#### ", //
+ "# ", //
+ "# ", //
+ "### ", //
+ "# ", //
+ "# ", //
+ "#### ", //
+ " ", //
+ " ", 4),
+ [0x10 * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ "# # ", //
+ "#### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x11 * 3] = GLYPH(" ", //
+ " ", //
+ "### ", //
+ "# ", //
+ "# ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "### ", //
+ " ", //
+ " ", 4),
+ [0x12 * 3] = GLYPH(" ", //
+ " ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "### ", //
+ " ", //
+ " ", 4),
+ [0x13 * 3] = GLYPH(" ", //
+ " ", //
+ "#### ", //
+ "# ", //
+ "# ", //
+ "# ", //
+ "# ", //
+ "# ", //
+ "# ", //
+ " ", //
+ " ", 4),
+ [0x14 * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ " # # ", //
+ " # # ", //
+ " # # ", //
+ " # # ", //
+ "###### ", //
+ "# # ", //
+ " ", //
+ " ", 6),
+ [0x15 * 3] = GLYPH(" ", //
+ " ", //
+ "#### ", //
+ "# ", //
+ "# ", //
+ "### ", //
+ "# ", //
+ "# ", //
+ "#### ", //
+ " ", //
+ " ", 4),
+ [0x16 * 3] = GLYPH(" ", //
+ " ", //
+ "# # # ", //
+ "# # # ", //
+ "# # # ", //
+ " ### ", //
+ "# # # ", //
+ "# # # ", //
+ "# # # ", //
+ " ", //
+ " ", 5),
+ [0x17 * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x18 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# ## ", //
+ "# # # ", //
+ "## # ", //
+ "# # ", //
+ " ", //
+ " ", 5),
+ [0x19 * 3] = GLYPH(" ### ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# ## ", //
+ "# # # ", //
+ "## # ", //
+ "# # ", //
+ " ", //
+ " ", 5),
+ [0x1a * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "## ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x1b * 3] = GLYPH(" ", //
+ " ", //
+ " # ", //
+ " # # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x1c * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "## ## ", //
+ "# # # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 5),
+ [0x1d * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "#### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x1e * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x1f * 3] = GLYPH(" ", //
+ " ", //
+ "#### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x20 * 3] = GLYPH(" ", //
+ " ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "### ", //
+ "# ", //
+ "# ", //
+ "# ", //
+ " ", //
+ " ", 4),
+ [0x21 * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ "# ", //
+ "# ", //
+ "# ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x22 * 3] = GLYPH(" ", //
+ " ", //
+ "##### ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " ", //
+ " ", 5),
+ [0x23 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ " # ", //
+ " # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x24 * 3] = GLYPH(" ", //
+ " ", //
+ " ### ", //
+ "# # # ", //
+ "# # # ", //
+ " ### ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " ", //
+ " ", 5),
+ [0x25 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ## ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x26 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "##### ", //
+ " # ", //
+ " ", 5),
+ [0x27 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " ", //
+ " ", 4),
+ [0x28 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # # ", //
+ "# # # ", //
+ "# # # ", //
+ "# # # ", //
+ "##### ", //
+ " ", //
+ " ", 5),
+ [0x29 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # # ", //
+ "# # # ", //
+ "# # # ", //
+ "# # # ", //
+ "###### ", //
+ " # ", //
+ " ", 6),
+ [0x2a * 3] = GLYPH(" ", //
+ " ", //
+ "### ", //
+ " # ", //
+ " # ", //
+ " ### ", //
+ " # # ", //
+ " # # ", //
+ " ### ", //
+ " ", //
+ " ", 6),
+ [0x2b * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "### # ", //
+ "# # # ", //
+ "# # # ", //
+ "### # ", //
+ " ", //
+ " ", 6),
+ [0x2c * 3] = GLYPH(" ", //
+ " ", //
+ "# ", //
+ "# ", //
+ "# ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "### ", //
+ " ", //
+ " ", 4),
+ [0x2d * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ " # ", //
+ " ### ", //
+ " # ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x2e * 3] = GLYPH(" ", //
+ " ", //
+ "# ## ", //
+ "# # # ", //
+ "# # # ", //
+ "### # ", //
+ "# # # ", //
+ "# # # ", //
+ "# ## ", //
+ " ", //
+ " ", 6),
+ [0x2f * 3] = GLYPH(" ", //
+ " ", //
+ " ### ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x30 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ " ", //
+ " ", 4),
+ [0x31 * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ "# ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x32 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "## ", //
+ "# # ", //
+ "### ", //
+ "# # ", //
+ "### ", //
+ " ", //
+ " ", 4),
+ [0x33 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ## ", //
+ " # ", //
+ " ## ", //
+ "# ", //
+ " ### ", //
+ " ", //
+ " ", 4),
+ [0x34 * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ " # ", //
+ " ### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x35 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ "#### ", //
+ "# ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x36 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # # ", //
+ "# # # ", //
+ " ### ", //
+ "# # # ", //
+ "# # # ", //
+ " ", //
+ " ", 5),
+ [0x37 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ " # ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x38 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ " ", //
+ " ", 4),
+ [0x39 * 3] = GLYPH(" ", //
+ " ", //
+ " ## ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ " ", //
+ " ", 4),
+ [0x3a * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "## ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x3b * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " # ", //
+ " # # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x3c * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "## ## ", //
+ "# # # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 5),
+ [0x3d * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "#### ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x3e * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x3f * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x40 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "### ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "### ", //
+ "# ", //
+ "# ", 4),
+ [0x41 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ "# ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x42 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "### ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " # ", //
+ " ", //
+ " ", 3),
+ [0x43 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ " # ", //
+ " ## ", 4),
+ [0x44 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ### ", //
+ "# # # ", //
+ "# # # ", //
+ "# # # ", //
+ " ### ", //
+ " # ", //
+ " # ", 5),
+ [0x45 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ " ## ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x46 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "# # ", //
+ "##### ", //
+ " # ", //
+ " ", 5),
+ [0x47 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ " ### ", //
+ " # ", //
+ " # ", //
+ " ", //
+ " ", 4),
+ [0x48 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # # ", //
+ "# # # ", //
+ "##### ", //
+ " ", //
+ " ", 5),
+ [0x49 * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "# # # ", //
+ "# # # ", //
+ "###### ", //
+ " # ", //
+ " ", 6),
+ [0x4a * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "## ", //
+ " # ", //
+ " ### ", //
+ " # # ", //
+ " ### ", //
+ " ", //
+ " ", 5),
+ [0x4b * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# # ", //
+ "# # ", //
+ "### # ", //
+ "# # # ", //
+ "### # ", //
+ " ", //
+ " ", 6),
+ [0x4c * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# ", //
+ "# ", //
+ "### ", //
+ "# # ", //
+ "### ", //
+ " ", //
+ " ", 4),
+ [0x4d * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ " ## ", //
+ "# # ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+ [0x4e * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ "# ## ", //
+ "# # # ", //
+ "### # ", //
+ "# # # ", //
+ "# ## ", //
+ " ", //
+ " ", 6),
+ [0x4f * 3] = GLYPH(" ", //
+ " ", //
+ " ", //
+ " ", //
+ " ### ", //
+ "# # ", //
+ " ### ", //
+ "# # ", //
+ "# # ", //
+ " ", //
+ " ", 4),
+ [0x51 * 3] = GLYPH(" ", //
+ " ", //
+ "# # ", //
+ " ", //
+ " ## ", //
+ "# # ", //
+ "#### ", //
+ "# ", //
+ " ## ", //
+ " ", //
+ " ", 4),
+};