/*
* 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 .
*/
#include
#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),
};