2021-04-29 22:02:16 +03:00

881 lines
20 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* This file is part of the TETRIS project.
* Copyright 2019 Edward V. Emelianov <eddy@sao.ru, edward.emelianoff@gmail.com>
*
* This program 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.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
// this file should be included JUST ONCE!
// only in fonts.c
#define FONTNUMB8BYTES 11
#define FONTNUMB8HEIGHT 11
#define FONTNUMB8BASELINE 2
/*
32 (0x20) - 64 (0x40) - @ 96 (0x60) - ` 128 (0x80) - € 160 (0xa0) -   192 (0xc0) - À 224 (0xe0) - à
33 (0x21) - ! 65 (0x41) - A 97 (0x61) - a 129 (0x81) - <20> 161 (0xa1) - ¡ 193 (0xc1) - Á 225 (0xe1) - á
34 (0x22) - " 66 (0x42) - B 98 (0x62) - b 130 (0x82) - 162 (0xa2) - ¢ 194 (0xc2) - Â 226 (0xe2) - â
35 (0x23) - # 67 (0x43) - C 99 (0x63) - c 131 (0x83) - ƒ 163 (0xa3) - £ 195 (0xc3) - Ã 227 (0xe3) - ã
36 (0x24) - $ 68 (0x44) - D 100 (0x64) - d 132 (0x84) - „ 164 (0xa4) - ¤ 196 (0xc4) - Ä 228 (0xe4) - ä
37 (0x25) - % 69 (0x45) - E 101 (0x65) - e 133 (0x85) - … 165 (0xa5) - ¥ 197 (0xc5) - Å 229 (0xe5) - å
38 (0x26) - & 70 (0x46) - F 102 (0x66) - f 134 (0x86) - † 166 (0xa6) - ¦ 198 (0xc6) - Æ 230 (0xe6) - æ
39 (0x27) - ' 71 (0x47) - G 103 (0x67) - g 135 (0x87) - ‡ 167 (0xa7) - § 199 (0xc7) - Ç 231 (0xe7) - ç
40 (0x28) - ( 72 (0x48) - H 104 (0x68) - h 136 (0x88) - ˆ 168 (0xa8) - ¨ 200 (0xc8) - È 232 (0xe8) - è
41 (0x29) - ) 73 (0x49) - I 105 (0x69) - i 137 (0x89) - ‰ 169 (0xa9) - © 201 (0xc9) - É 233 (0xe9) - é
42 (0x2a) - * 74 (0x4a) - J 106 (0x6a) - j 138 (0x8a) - Š 170 (0xaa) - ª 202 (0xca) - Ê 234 (0xea) - ê
43 (0x2b) - + 75 (0x4b) - K 107 (0x6b) - k 139 (0x8b) - 171 (0xab) - « 203 (0xcb) - Ë 235 (0xeb) - ë
44 (0x2c) - , 76 (0x4c) - L 108 (0x6c) - l 140 (0x8c) - Œ 172 (0xac) - ¬ 204 (0xcc) - Ì 236 (0xec) - ì
45 (0x2d) - - 77 (0x4d) - M 109 (0x6d) - m 141 (0x8d) - <20> 173 (0xad) - ­ 205 (0xcd) - Í 237 (0xed) - í
46 (0x2e) - . 78 (0x4e) - N 110 (0x6e) - n 142 (0x8e) - Ž 174 (0xae) - ® 206 (0xce) - Î 238 (0xee) - î
47 (0x2f) - / 79 (0x4f) - O 111 (0x6f) - o 143 (0x8f) - <20> 175 (0xaf) - ¯ 207 (0xcf) - Ï 239 (0xef) - ï
48 (0x30) - 0 80 (0x50) - P 112 (0x70) - p 144 (0x90) - <20> 176 (0xb0) - ° 208 (0xd0) - Ð 240 (0xf0) - ð
49 (0x31) - 1 81 (0x51) - Q 113 (0x71) - q 145 (0x91) - 177 (0xb1) - ± 209 (0xd1) - Ñ 241 (0xf1) - ñ
50 (0x32) - 2 82 (0x52) - R 114 (0x72) - r 146 (0x92) - 178 (0xb2) - ² 210 (0xd2) - Ò 242 (0xf2) - ò
51 (0x33) - 3 83 (0x53) - S 115 (0x73) - s 147 (0x93) - “ 179 (0xb3) - ³ 211 (0xd3) - Ó 243 (0xf3) - ó
52 (0x34) - 4 84 (0x54) - T 116 (0x74) - t 148 (0x94) - ” 180 (0xb4) - ´ 212 (0xd4) - Ô 244 (0xf4) - ô
53 (0x35) - 5 85 (0x55) - U 117 (0x75) - u 149 (0x95) - • 181 (0xb5) - µ 213 (0xd5) - Õ 245 (0xf5) - õ
54 (0x36) - 6 86 (0x56) - V 118 (0x76) - v 150 (0x96) - 182 (0xb6) - ¶ 214 (0xd6) - Ö 246 (0xf6) - ö
55 (0x37) - 7 87 (0x57) - W 119 (0x77) - w 151 (0x97) - — 183 (0xb7) - · 215 (0xd7) - × 247 (0xf7) - ÷
56 (0x38) - 8 88 (0x58) - X 120 (0x78) - x 152 (0x98) - ˜ 184 (0xb8) - ¸ 216 (0xd8) - Ø 248 (0xf8) - ø
57 (0x39) - 9 89 (0x59) - Y 121 (0x79) - y 153 (0x99) - ™ 185 (0xb9) - ¹ 217 (0xd9) - Ù 249 (0xf9) - ù
58 (0x3a) - : 90 (0x5a) - Z 122 (0x7a) - z 154 (0x9a) - 186 (0xba) - º 218 (0xda) - Ú 250 (0xfa) - ú
59 (0x3b) - ; 91 (0x5b) - [ 123 (0x7b) - { 155 (0x9b) - 187 (0xbb) - » 219 (0xdb) - Û 251 (0xfb) - û
60 (0x3c) - < 92 (0x5c) - \ 124 (0x7c) - | 156 (0x9c) - œ 188 (0xbc) - ¼ 220 (0xdc) - Ü 252 (0xfc) - ü
61 (0x3d) - = 93 (0x5d) - ] 125 (0x7d) - } 157 (0x9d) - <20> 189 (0xbd) - ½ 221 (0xdd) - Ý 253 (0xfd) - ý
62 (0x3e) - > 94 (0x5e) - ^ 126 (0x7e) - ~ 158 (0x9e) - ž 190 (0xbe) - ¾ 222 (0xde) - Þ 254 (0xfe) - þ
63 (0x3f) - ? 95 (0x5f) - _ 127 (0x7f) - 159 (0x9f) - Ÿ 191 (0xbf) - ¿ 223 (0xdf) - ß 255 (0xff) - ÿ
*/
// this array shows position of every koi8-r symbol in font10_table
const uint8_t fontNumb8_encoding[256] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0..31
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
/*20*/1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, // 47
/*30*/2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 29, 30, 31, 32, 33, 34, // 63
/*40*/35, 12, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 13, // 79
/*50*/49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 0, 0, // 95
/*60*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 111
/*70*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 127
/*80*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 143
/*90*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 159
/*A0*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 175
/*B0*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 191
/*C0*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 207
/*D0*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 223
/*E0*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 239
/*F0*/0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 255
};
const uint8_t fontNumb8_table[] = {
// 0 0x00 - empty
0,
________,
________,
________,
________,
________,
________,
________,
________,
________,
________,
________,
// 1 0x20 - ' '
4,
________,
________,
________,
________,
________,
________,
________,
________,
________,
________,
________,
// 2 0x30 - '0'
6,
________,
_XXX____,
XX_XX___,
X___X___,
X___X___,
X___X___,
X___X___,
XX_XX___,
_XXX____,
________,
________,
// 3 0x31 - '1'
6,
________,
_XX_____,
X_X_____,
__X_____,
__X_____,
__X_____,
__X_____,
__X_____,
XXXXX___,
________,
________,
// 4 0x32 - '2'
6,
________,
_XXX____,
X___X___,
____X___,
____X___,
___X____,
__X_____,
_X______,
XXXXX___,
________,
________,
// 5 0x33 - '3'
6,
________,
XXXX____,
____X___,
____X___,
_XXX____,
____X___,
____X___,
____X___,
XXXX____,
________,
________,
// 6 0x34 - '4'
7,
________,
___XX___,
___XX___,
__X_X___,
_X__X___,
_X__X___,
XXXXXX__,
____X___,
____X___,
________,
________,
// 7 0x35 - '5'
5,
________,
XXXX____,
X_______,
X_______,
XXX_____,
___X____,
___X____,
___X____,
XXX_____,
________,
________,
// 8 0x36 - '6'
6,
________,
_XXX____,
X___X___,
X_______,
XXXX____,
X___X___,
X___X___,
X___X___,
_XXX____,
________,
________,
// 9 0x37 - '7'
5,
________,
XXXX____,
___X____,
__X_____,
__X_____,
__X_____,
_X______,
_X______,
_X______,
________,
________,
// 10 0x38 - '8'
6,
________,
_XXX____,
X___X___,
X___X___,
_XXX____,
X___X___,
X___X___,
X___X___,
_XXX____,
________,
________,
// 11 0x39 - '9'
6,
________,
_XXX____,
X___X___,
X___X___,
X___X___,
_XXXX___,
____X___,
X___X___,
_XXX____,
________,
________,
// 12 0x41 - 'A'
6,
________,
__X_____,
_X_X____,
_X_X____,
_X_X____,
X___X___,
XXXXX___,
X___X___,
X___X___,
________,
________,
// 13 0x4f - 'O'
7,
________,
__XX____,
_X__X___,
X____X__,
X____X__,
X____X__,
X____X__,
_X__X___,
__XX____,
________,
________,
// 14 0x21 - '!'
2,
________,
X_______,
X_______,
X_______,
X_______,
X_______,
X_______,
________,
X_______,
________,
________,
// 15 0x22 - '"'
4,
________,
________,
X_X_____,
X_X_____,
X_X_____,
________,
________,
________,
________,
________,
________,
// 16 0x23 - '#'
7,
________,
________,
____X_X_,
___X_X__,
XXXXXXX_,
__X_X___,
XXXXXXX_,
_X_X____,
X_X_____,
________,
________,
// 17 0x24 - '$'
6,
________,
__X_____,
_XXX____,
X_X_X___,
X_X_____,
_XXX____,
__X_X___,
X_X_X___,
XXXX____,
__X_____,
________,
// 18 0x25 - '%'
8,
________,
________,
_XX___X_,
X__X_X__,
_XX_X___,
___X____,
__X_XX__,
_X_X__X_,
X___XX__,
________,
________,
// 19 0x26 - '&'
7,
________,
________,
_X______,
X_X_____,
X_X_____,
_X__XX__,
X_XXX___,
X__X____,
_XX_XX__,
________,
________,
// 20 0x27 - '''
2,
________,
________,
X_______,
X_______,
X_______,
________,
________,
________,
________,
________,
________,
// 21 0x28 - '('
4,
________,
__XX____,
_X______,
X_______,
X_______,
X_______,
X_______,
X_______,
_X______,
__XX____,
________,
// 22 0x29 - ')'
4,
________,
XX______,
__X_____,
___X____,
___X____,
___X____,
___X____,
___X____,
__X_____,
XX______,
________,
// 23 0x2A - '*'
6,
________,
________,
________,
__X_____,
XXXXX___,
_XXX____,
X___X___,
________,
________,
________,
________,
// 24 0x2B - '+'
6,
________,
________,
________,
__X_____,
__X_____,
XXXXX___,
__X_____,
__X_____,
________,
________,
________,
// 25 0x2C - ','
3,
________,
________,
________,
________,
________,
________,
________,
XX______,
_X______,
X_______,
________,
// 26 0x2D - '-'
6,
________,
________,
________,
________,
________,
XXXXX___,
________,
________,
________,
________,
________,
// 27 0x2E - '.'
3,
________,
________,
________,
________,
________,
________,
________,
XX______,
XX______,
________,
________,
// 28 0x2F - '/'
6,
________,
____X___,
___X____,
___X____,
__X_____,
__X_____,
_X______,
_X______,
_X______,
X_______,
________,
// 29 0x3A - ':'
3,
________,
________,
________,
XX______,
XX______,
________,
XX______,
XX______,
________,
________,
________,
// 30 0x3B - ';'
3,
________,
________,
________,
________,
XX______,
XX______,
________,
XX______,
_X______,
X_______,
________,
// 31 0x3C - '<'
4,
________,
________,
________,
__X_____,
_X______,
X_______,
_X______,
__X_____,
________,
________,
________,
// 32 0x3D - '='
5,
________,
________,
________,
________,
XXXX____,
________,
XXXX____,
________,
________,
________,
________,
// 33 0x3E - '>'
4,
________,
________,
________,
X_______,
_X______,
__X_____,
_X______,
X_______,
________,
________,
________,
// 34 0x3F - '?'
5,
________,
_XX_____,
X__X____,
___X____,
__X_____,
_X______,
_X______,
________,
_X______,
________,
________,
// 35 0x40 - '@'
8,
________,
___XXX__,
__X__X__,
_X_XXXX_,
X__X_XX_,
X_X_X_X_,
X_X_X_X_,
X__X_X__,
_X______,
__XXXX__,
________,
// 36 0x42 - 'B'
6,
________,
XXX_____,
X__X____,
X_X_____,
XXXX____,
X___X___,
X___X___,
X___X___,
XXXX____,
________,
________,
// 37 0x43 - 'C'
7,
________,
__XXX___,
_X___X__,
X_______,
X_______,
X_______,
X_______,
_X___X__,
__XXX___,
________,
________,
// 38 0x44 - 'D'
6,
________,
XXX_____,
X__X____,
X___X___,
X___X___,
X___X___,
X___X___,
X__X____,
XXX_____,
________,
________,
// 39 0x45 - 'E'
6,
________,
XXXXX___,
X_______,
X_______,
XXX_____,
X_______,
X_______,
X___X___,
XXXXX___,
________,
________,
// 40 0x46 - 'F'
6,
________,
XXXXX___,
X___X___,
X_______,
X_______,
XXX_____,
X_______,
X_______,
X_______,
________,
________,
// 41 0x47 - 'G'
7,
________,
__XXX___,
_X___X__,
X_______,
X_______,
X_______,
X__XXX__,
_X___X__,
__XXX___,
________,
________,
// 42 0x48 - 'H'
6,
________,
X___X___,
X___X___,
X___X___,
XXXXX___,
X___X___,
X___X___,
X___X___,
X___X___,
________,
________,
// 43 0x49 - 'I'
4,
________,
XXX_____,
_X______,
_X______,
_X______,
_X______,
_X______,
_X______,
XXX_____,
________,
________,
// 44 0x4A - 'J'
5,
________,
XXXX____,
X__X____,
___X____,
___X____,
___X____,
___X____,
X_XX____,
_X______,
________,
________,
// 45 0x4B - 'K'
6,
________,
X___X___,
X__X____,
X_X_____,
XXX_____,
X__X____,
X__X____,
X___X___,
X___X___,
________,
________,
// 46 0x4C - 'L'
6,
________,
X_______,
X_______,
X_______,
X_______,
X_______,
X_______,
X___X___,
XXXXX___,
________,
________,
// 47 0x4D - 'M'
8,
________,
X_____X_,
XX___XX_,
X_X_X_X_,
X_X_X_X_,
X__X__X_,
X_____X_,
X_____X_,
X_____X_,
________,
________,
// 48 0x4E - 'N'
6,
________,
X___X___,
XX__X___,
XX__X___,
X_X_X___,
X_X_X___,
X__XX___,
X__XX___,
X___X___,
________,
________,
// 49 0x50 - 'P'
6,
________,
XXXX____,
X__XX___,
X___X___,
X__XX___,
XXXX____,
X_______,
X_______,
X_______,
________,
________,
// 50 0x51 - 'Q'
7,
________,
__XX____,
_X__X___,
X____X__,
X____X__,
X____X__,
X____X__,
_X_XX___,
__XX____,
___XXX__,
________,
// 51 0x52 - 'R'
6,
________,
XXXX____,
X__XX___,
X___X___,
X__XX___,
XXXX____,
X_X_____,
X__X____,
X__XX___,
________,
________,
// 52 0x53 - 'S'
6,
________,
_XX_____,
X__X____,
X_______,
_XX_____,
__XX____,
____X___,
XX_XX___,
_XXX____,
________,
________,
// 53 0x54 - 'T'
6,
________,
XXXXX___,
__X_____,
__X_____,
__X_____,
__X_____,
__X_____,
__X_____,
__X_____,
________,
________,
// 54 0x55 - 'U'
7,
________,
X____X__,
X____X__,
X____X__,
X____X__,
X____X__,
X____X__,
_X__X___,
__XX____,
________,
________,
// 55 0x56 - 'V'
6,
________,
X___X___,
X___X___,
X___X___,
X___X___,
X___X___,
_X_X____,
_X_X____,
__X_____,
________,
________,
// 56 0x57 - 'W'
8,
________,
X_____X_,
X_____X_,
X_____X_,
X__X__X_,
X__X__X_,
_X_X_X__,
_X_X_X__,
__X_X___,
________,
________,
// 57 0x58 - 'X'
6,
________,
X___X___,
X___X___,
_X_X____,
_X_X____,
__X_____,
_X_X____,
X___X___,
X___X___,
________,
________,
// 58 0x59 - 'Y'
6,
________,
X___X___,
X___X___,
X___X___,
_X_X____,
_XXX____,
__X_____,
__X_____,
__X_____,
________,
________,
// 59 0x5A - 'Z'
6,
________,
XXXXX___,
____X___,
___X____,
__X_____,
__X_____,
_X______,
X_______,
XXXXX___,
________,
________,
};
#if 0
// 14 0x21 - '!'
0,
________,
________,
________,
________,
________,
________,
________,
________,
________,
________,
________,
#endif