/* * font.c - russian font * * Copyright 2015 Edward V. Emelianoff * * 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 2 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include "font.h" const U8 rusfont [] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// 32 [0x20] - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,// 33 [0x21] - ! 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,// 34 [0x22] - " 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,// 35 [0x23] - # 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,// 36 [0x24] - $ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,// 37 [0x25] - % 0x36, 0x49, 0x55, 0x22, 0x50, 0x00,// 38 [0x26] - & 0x00, 0x05, 0x03, 0x00, 0x00, 0x00,// 39 [0x27] - ' 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,// 40 [0x28] - ( 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,// 41 [0x29] - ) 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x00,// 42 [0x2a] - * 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,// 43 [0x2b] - + 0x00, 0x50, 0x30, 0x00, 0x00, 0x00,// 44 [0x2c] - , 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,// 45 [0x2d] - - 0x00, 0x60, 0x60, 0x00, 0x00, 0x00,// 46 [0x2e] - . 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,// 47 [0x2f] - / 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,// 48 [0x30] - 0 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,// 49 [0x31] - 1 0x42, 0x61, 0x51, 0x49, 0x46, 0x00,// 50 [0x32] - 2 0x21, 0x41, 0x45, 0x4B, 0x31, 0x00,// 51 [0x33] - 3 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,// 52 [0x34] - 4 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,// 53 [0x35] - 5 0x3C, 0x4A, 0x49, 0x49, 0x30, 0x00,// 54 [0x36] - 6 0x01, 0x71, 0x09, 0x05, 0x03, 0x00,// 55 [0x37] - 7 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,// 56 [0x38] - 8 0x06, 0x49, 0x49, 0x29, 0x1E, 0x00,// 57 [0x39] - 9 0x00, 0x36, 0x36, 0x00, 0x00, 0x00,// 58 [0x3a] - : 0x00, 0x56, 0x36, 0x00, 0x00, 0x00,// 59 [0x3b] - ; 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// 60 [0x3c] - < 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,// 61 [0x3d] - = 0x41, 0x22, 0x14, 0x08, 0x00, 0x00,// 62 [0x3e] - > 0x02, 0x01, 0x51, 0x09, 0x06, 0x00,// 63 [0x3f] - ? 0x32, 0x49, 0x79, 0x41, 0x3E, 0x00,// 64 [0x40] - @ 0x7E, 0x11, 0x11, 0x11, 0x7E, 0x00,// 65 [0x41] - A 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,// 66 [0x42] - B 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,// 67 [0x43] - C 0x7F, 0x41, 0x41, 0x22, 0x1C, 0x00,// 68 [0x44] - D 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,// 69 [0x45] - E 0x7F, 0x09, 0x09, 0x01, 0x01, 0x00,// 70 [0x46] - F 0x3E, 0x41, 0x41, 0x51, 0x32, 0x00,// 71 [0x47] - G 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,// 72 [0x48] - H 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,// 73 [0x49] - I 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,// 74 [0x4a] - J 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,// 75 [0x4b] - K 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,// 76 [0x4c] - L 0x7F, 0x02, 0x04, 0x02, 0x7F, 0x00,// 77 [0x4d] - M 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,// 78 [0x4e] - N 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,// 79 [0x4f] - O 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,// 80 [0x50] - P 0x3e, 0x41, 0x51, 0x21, 0xde, 0x00,// 81 [0x51] - Q 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,// 82 [0x52] - R 0x46, 0x49, 0x49, 0x49, 0x31, 0x00,// 83 [0x53] - S 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,// 84 [0x54] - T 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,// 85 [0x55] - U 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,// 86 [0x56] - V 0x7F, 0x20, 0x18, 0x20, 0x7F, 0x00,// 87 [0x57] - W 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,// 88 [0x58] - X 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,// 89 [0x59] - Y 0x61, 0x51, 0x49, 0x45, 0x43, 0x00,// 90 [0x5a] - Z 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// 91 [0x5b] - [ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,// 92 [0x5c] - "\" 0x41, 0x41, 0x7F, 0x00, 0x00, 0x00,// 93 [0x5d] - ] 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,// 94 [0x5e] - ^ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,// 95 [0x5f] - _ 0x00, 0x01, 0x02, 0x04, 0x00, 0x00,// 96 [0x60] - ` 0x20, 0x54, 0x54, 0x54, 0x78, 0x00,// 97 [0x61] - a 0x7F, 0x48, 0x44, 0x44, 0x38, 0x00,// 98 [0x62] - b 0x38, 0x44, 0x44, 0x44, 0x20, 0x00,// 99 [0x63] - c 0x38, 0x44, 0x44, 0x48, 0x7F, 0x00,//100 [0x64] - d 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,//101 [0x65] - e 0x00, 0x08, 0xfe, 0x09, 0x02, 0x00,//102 [0x66] - f 0x18, 0xa4, 0xa4, 0x94, 0x78, 0x00,//103 [0x67] - g 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,//104 [0x68] - h 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,//105 [0x69] - i 0x40, 0x80, 0x84, 0x7d, 0x00, 0x00,//106 [0x6a] - j 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,//107 [0x6b] - k 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,//108 [0x6c] - l 0x7C, 0x04, 0x18, 0x04, 0x78, 0x00,//109 [0x6d] - m 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,//110 [0x6e] - n 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,//111 [0x6f] - o 0xfc, 0x28, 0x24, 0x24, 0x18, 0x00,//112 [0x70] - p 0x18, 0x24, 0x24, 0x28, 0xfc, 0x00,//113 [0x71] - q 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,//114 [0x72] - r 0x48, 0x54, 0x54, 0x54, 0x20, 0x00,//115 [0x73] - s 0x04, 0x3F, 0x44, 0x40, 0x20, 0x00,//116 [0x74] - t 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,//117 [0x75] - u 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,//118 [0x76] - v 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,//119 [0x77] - w 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,//120 [0x78] - x 0x0C, 0x50, 0x50, 0x50, 0x3C, 0x00,//121 [0x79] - y 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,//122 [0x7a] - z 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,//123 [0x7b] - { 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00,//124 [0x7c] - | 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,//125 [0x7d] - } 0x08, 0x04, 0x08, 0x10, 0x08, 0x00,//126 [0x7e] - ~ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//127 [0x7f] - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,//128 [0x80] - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,//129 [0x81] - 0x00, 0x00, 0xf8, 0x08, 0x08, 0x08,//130 [0x82] - 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00,//131 [0x83] - 0x00, 0x00, 0x0f, 0x08, 0x08, 0x08,//132 [0x84] - 0x08, 0x08, 0x0f, 0x00, 0x00, 0x00,//133 [0x85] - 0x00, 0x00, 0xff, 0x08, 0x08, 0x08,//134 [0x86] - 0x08, 0x08, 0xff, 0x00, 0x00, 0x00,//135 [0x87] - 0x08, 0x08, 0xf8, 0x08, 0x08, 0x08,//136 [0x88] - 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08,//137 [0x89] - 0x08, 0x08, 0xff, 0x08, 0x08, 0x08,//138 [0x8a] - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,//139 [0x8b] - 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,//140 [0x8c] - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,//141 [0x8d] - 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,//142 [0x8e] - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,//143 [0x8f] - 0x00, 0xaa, 0x00, 0x55, 0x00, 0xaa,//144 [0x90] - 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa,//145 [0x91] - 0x55, 0xff, 0x55, 0xff, 0x55, 0xff,//146 [0x92] - 0x00, 0x00, 0xfc, 0x02, 0x04, 0x00,//147 [0x93] - 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c,//148 [0x94] - 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,//149 [0x95] - 0x08, 0x38, 0x40, 0x30, 0x0e, 0x01,//150 [0x96] - 0x24, 0x12, 0x24, 0x48, 0x24, 0x00,//151 [0x97] - 0x00, 0x44, 0x4a, 0x51, 0x00, 0x00,//152 [0x98] - 0x00, 0x51, 0x4a, 0x44, 0x00, 0x00,//153 [0x99] - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//154 [0x9a] - 0x20, 0x40, 0x3f, 0x00, 0x00, 0x00,//155 [0x9b] - 0x00, 0x06, 0x09, 0x06, 0x00, 0x00,//156 [0x9c] - 0x00, 0x0d, 0x0b, 0x00, 0x00, 0x00,//157 [0x9d] - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,//158 [0x9e] - 0x08, 0x08, 0x2a, 0x08, 0x08, 0x00,//159 [0x9f] - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14,//160 [0xa0] - 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,//161 [0xa1] - 0x00, 0x00, 0xfc, 0x14, 0x14, 0x14,//162 [0xa2] - 0x38, 0x55, 0x54, 0x55, 0x18, 0x00,//163 [0xa3] - 0x00, 0xf8, 0x08, 0xf8, 0x08, 0x08,//164 [0xa4] - 0x00, 0xfc, 0x04, 0xf4, 0x14, 0x14,//165 [0xa5] - 0x14, 0x14, 0xfc, 0x00, 0x00, 0x00,//166 [0xa6] - 0x08, 0xf8, 0x08, 0xf8, 0x00, 0x00,//167 [0xa7] - 0x14, 0xf4, 0x04, 0xfc, 0x00, 0x00,//168 [0xa8] - 0x00, 0x00, 0x1f, 0x14, 0x14, 0x14,//169 [0xa9] - 0x00, 0x0f, 0x08, 0x0f, 0x08, 0x08,//170 [0xaa] - 0x00, 0x1f, 0x10, 0x17, 0x14, 0x14,//171 [0xab] - 0x14, 0x14, 0x1f, 0x00, 0x00, 0x00,//172 [0xac] - 0x08, 0x0f, 0x08, 0x0f, 0x00, 0x00,//173 [0xad] - 0x14, 0x17, 0x10, 0x1f, 0x00, 0x00,//174 [0xae] - 0x00, 0x00, 0xff, 0x14, 0x14, 0x14,//175 [0xaf] - 0x00, 0xff, 0x00, 0xff, 0x08, 0x08,//176 [0xb0] - 0x00, 0xff, 0x00, 0xf7, 0x14, 0x14,//177 [0xb1] - 0x14, 0x14, 0xff, 0x00, 0x00, 0x00,//178 [0xb2] - 0x7e, 0x4b, 0x4a, 0x43, 0x42, 0x00,//179 [0xb3] - 0x08, 0xff, 0x00, 0xff, 0x00, 0x00,//180 [0xb4] - 0x14, 0xf7, 0x00, 0xff, 0x00, 0x00,//181 [0xb5] - 0x14, 0x14, 0xf4, 0x14, 0x14, 0x14,//182 [0xb6] - 0x08, 0xf8, 0x08, 0xf8, 0x08, 0x08,//183 [0xb7] - 0x14, 0xf4, 0x04, 0xf4, 0x14, 0x14,//184 [0xb8] - 0x14, 0x14, 0x17, 0x14, 0x14, 0x14,//185 [0xb9] - 0x08, 0x0f, 0x08, 0x0f, 0x08, 0x08,//186 [0xba] - 0x14, 0x17, 0x14, 0x17, 0x14, 0x14,//187 [0xbb] - 0x14, 0x14, 0xff, 0x14, 0x14, 0x14,//188 [0xbc] - 0x08, 0xff, 0x08, 0xff, 0x08, 0x08,//189 [0xbd] - 0x14, 0xf7, 0x00, 0xf7, 0x14, 0x14,//190 [0xbe] - 0x3e, 0x5d, 0x55, 0x41, 0x3e, 0x00,//191 [0xbf] - 0x7c, 0x10, 0x38, 0x44, 0x38, 0x00,//192 [0xc0] - 0x20, 0x54, 0x54, 0x54, 0x78, 0x00,//193 [0xc1] - 0x3c, 0x4a, 0x4a, 0x49, 0x31, 0x00,//194 [0xc2] - 0x7c, 0x40, 0x40, 0x40, 0xfc, 0x00,//195 [0xc3] - 0xe0, 0x54, 0x4c, 0x44, 0xfc, 0x00,//196 [0xc4] - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,//197 [0xc5] - 0x30, 0x48, 0xfc, 0x48, 0x30, 0x00,//198 [0xc6] - 0x7c, 0x04, 0x04, 0x04, 0x0c, 0x00,//199 [0xc7] - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,//200 [0xc8] - 0x7c, 0x20, 0x10, 0x08, 0x7c, 0x00,//201 [0xc9] - 0x7c, 0x41, 0x22, 0x11, 0x7c, 0x00,//202 [0xca] - 0x7c, 0x10, 0x28, 0x44, 0x00, 0x00,//203 [0xcb] - 0x20, 0x44, 0x3c, 0x04, 0x7c, 0x00,//204 [0xcc] - 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00,//205 [0xcd] - 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00,//206 [0xce] - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,//207 [0xcf] - 0x7c, 0x04, 0x04, 0x04, 0x7c, 0x00,//208 [0xd0] - 0x08, 0x54, 0x34, 0x14, 0x7c, 0x00,//209 [0xd1] - 0x7C, 0x14, 0x14, 0x14, 0x08, 0x00,//210 [0xd2] - 0x38, 0x44, 0x44, 0x44, 0x20, 0x00,//211 [0xd3] - 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00,//212 [0xd4] - 0x0C, 0x50, 0x50, 0x50, 0x3C, 0x00,//213 [0xd5] - 0x6c, 0x10, 0x7c, 0x10, 0x6c, 0x00,//214 [0xd6] - 0x7c, 0x54, 0x54, 0x28, 0x00, 0x00,//215 [0xd7] - 0x7c, 0x50, 0x50, 0x20, 0x00, 0x00,//216 [0xd8] - 0x7c, 0x50, 0x50, 0x20, 0x7c, 0x00,//217 [0xd9] - 0x44, 0x44, 0x54, 0x54, 0x28, 0x00,//218 [0xda] - 0x7c, 0x40, 0x7c, 0x40, 0x7c, 0x00,//219 [0xdb] - 0x28, 0x44, 0x54, 0x54, 0x38, 0x00,//220 [0xdc] - 0x7c, 0x40, 0x7c, 0x40, 0xfc, 0x00,//221 [0xdd] - 0x0c, 0x10, 0x10, 0x10, 0x7c, 0x00,//222 [0xde] - 0x04, 0x7c, 0x50, 0x50, 0x20, 0x00,//223 [0xdf] - 0x7f, 0x08, 0x3e, 0x41, 0x3e, 0x00,//224 [0xe0] - 0x7e, 0x11, 0x11, 0x11, 0x7e, 0x00,//225 [0xe1] - 0x7f, 0x49, 0x49, 0x49, 0x33, 0x00,//226 [0xe2] - 0x7f, 0x40, 0x40, 0x40, 0xff, 0x00,//227 [0xe3] - 0xe0, 0x51, 0x4f, 0x41, 0xff, 0x00,//228 [0xe4] - 0x7f, 0x49, 0x49, 0x49, 0x41, 0x00,//229 [0xe5] - 0x1c, 0x22, 0x7f, 0x22, 0x1c, 0x00,//230 [0xe6] - 0x7f, 0x01, 0x01, 0x01, 0x03, 0x00,//231 [0xe7] - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,//232 [0xe8] - 0x7f, 0x10, 0x08, 0x04, 0x7f, 0x00,//233 [0xe9] - 0x7c, 0x21, 0x12, 0x09, 0x7c, 0x00,//234 [0xea] - 0x7f, 0x08, 0x14, 0x22, 0x41, 0x00,//235 [0xeb] - 0x20, 0x41, 0x3f, 0x01, 0x7f, 0x00,//236 [0xec] - 0x7f, 0x02, 0x0c, 0x02, 0x7f, 0x00,//237 [0xed] - 0x7f, 0x08, 0x08, 0x08, 0x7f, 0x00,//238 [0xee] - 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00,//239 [0xef] - 0x7f, 0x01, 0x01, 0x01, 0x7f, 0x00,//240 [0xf0] - 0x46, 0x29, 0x19, 0x09, 0x7f, 0x00,//241 [0xf1] - 0x7f, 0x09, 0x09, 0x09, 0x06, 0x00,//242 [0xf2] - 0x3e, 0x41, 0x41, 0x41, 0x22, 0x00,//243 [0xf3] - 0x01, 0x01, 0x7f, 0x01, 0x01, 0x00,//244 [0xf4] - 0x47, 0x28, 0x10, 0x08, 0x07, 0x00,//245 [0xf5] - 0x77, 0x08, 0x7f, 0x08, 0x77, 0x00,//246 [0xf6] - 0x7f, 0x49, 0x49, 0x49, 0x36, 0x00,//247 [0xf7] - 0x22, 0x41, 0x49, 0x49, 0x3e, 0x00,//248 [0xf8] - 0x7f, 0x48, 0x30, 0x00, 0x7f, 0x00,//249 [0xf9] - 0x41, 0x49, 0x49, 0x49, 0x36, 0x00,//250 [0xfa] - 0x7f, 0x40, 0x7f, 0x40, 0x7f, 0x00,//251 [0xfb] - 0x00, 0x7f, 0x48, 0x48, 0x30, 0x00,//252 [0xfc] - 0x7f, 0x40, 0x7f, 0x40, 0xff, 0x00,//253 [0xfd] - 0x07, 0x08, 0x08, 0x08, 0x7f, 0x00,//254 [0xfe] - 0x01, 0x7f, 0x48, 0x48, 0x30, 0x00,//255 [0xff] - }; /** * Return letter array */ const U8 *letter(U8 koi8){ U16 idx; if(koi8 < 32) koi8 = 32; idx = (koi8 - 32) * LTR_WIDTH; return &rusfont[idx]; }