/* * This file is part of the nitrogen project. * Copyright 2023 Edward V. Emelianov . * * 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 . */ // numbers and base symbols up to Z // this file should be included JUST ONCE! // only in fonts.c #define FONTNUMB8BYTES 10 #define FONTNUMB8HEIGHT 10 #define FONTNUMB8BASELINE 2 // 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, 59, 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