diff --git a/Font10x14.c b/Font10x14.c new file mode 100644 index 0000000..16a0743 --- /dev/null +++ b/Font10x14.c @@ -0,0 +1,1716 @@ +/* + * Copyright (c) 2019-2020, written by DiSlord dislordlive@gmail.com + * All rights reserved. + * + * This 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, or (at your option) + * any later version. + * + * The software 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 GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + + * Font size 10x14 pixels + * most font glyph have width 10 pixels + */ + +#include +#include "nanovna.h" + +/* + * Check 1 byte of bitmap data for get width + */ + +#define wFONT_START_CHAR 0x17 +#define wFONT_MAX_WIDTH 12 +#define wFONT_GET_HEIGHT 14 +#define wFONT_STR_HEIGHT 16 +#define wFONT_GET_DATA(ch) ( &x10x14_bits[(ch-wFONT_START_CHAR)*2*wFONT_GET_HEIGHT ]) +#define wFONT_GET_WIDTH(ch) (14-(x10x14_bits[(ch-wFONT_START_CHAR)*2*wFONT_GET_HEIGHT+1]&0x7)) + + +#define CW_06 0x07 +#define CW_07 0x06 +#define CW_08 0x05 +#define CW_09 0x04 +#define CW_10 0x03 +#define CW_11 0x02 +#define CW_12 0x01 +#define CW_13 0x00 + +// Font character bitmap data. +// If use blit8BitWidthBitmap width should be > 8 !!) +// for less 8 width used 9 but next char draw at correct place +const uint8_t x10x14_bits[(127-wFONT_START_CHAR)*wFONT_GET_HEIGHT*2] = +{ +//S_DELTA "\029" // 0x17 + _BMP16(0b0000000000000000|CW_13), // | | + _BMP16(0b0000011000000000), // | ** | + _BMP16(0b0000011000000000), // | ** | + _BMP16(0b0000111100000000), // | **** | + _BMP16(0b0000111100000000), // | **** | + _BMP16(0b0000111100000000), // | **** | + _BMP16(0b0001101110000000), // | ** *** | + _BMP16(0b0001101110000000), // | ** *** | + _BMP16(0b0011000111000000), // | ** *** | + _BMP16(0b0011000111000000), // | ** *** | + _BMP16(0b0110000011100000), // | ** *** | + _BMP16(0b0110000011100000), // | ** *** | + _BMP16(0b0110000011100000), // | ** *** | + _BMP16(0b1111111111110000), // |************ | + +//S_SARROW "\030" // 0x18 + _BMP16(0b0000000000000000|CW_08), // | | + _BMP16(0b1000000000000000), // |* | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b1111110000000000), // |****** | + _BMP16(0b1111111000000000), // |******* | + _BMP16(0b1111110000000000), // |****** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b1000000000000000), // |* | + +//S_INFINITY "\031" // 0x19 + _BMP16(0b0000000000000000|CW_13), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011100111000000), // | *** *** | + _BMP16(0b0111111111100000), // | ********** | + _BMP16(0b1110111001110000), // |*** *** *** | + _BMP16(0b1100111000110000), // |** *** ** | + _BMP16(0b1100011000110000), // |** ** ** | + _BMP16(0b1100011100110000), // |** *** ** | + _BMP16(0b1110011101110000), // |*** *** *** | + _BMP16(0b0111111111100000), // | ********** | + _BMP16(0b0011100111000000), // | *** *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +//S_LARROW "\032" // 0x1A + _BMP16(0b0000000000000000|CW_09), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0001000000000000), // | * | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0111000000000000), // | *** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b0111000000000000), // | *** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0001000000000000), // | * | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +//S_RARROW "\033" // 0x1B + _BMP16(0b0000000000000000|CW_09), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000100000000000), // | * | + _BMP16(0b0000110000000000), // | ** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000110000000000), // | ** | + _BMP16(0b0000100000000000), // | * | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +//S_PI "\034" // 0x1C + _BMP16(0b0000000000000000|CW_13), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0111111111100000), // | ********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1011000110000000), // |* ** ** | + _BMP16(0b0011000110000000), // | ** ** | + _BMP16(0b0011000110000000), // | ** ** | + _BMP16(0b0011000110000000), // | ** ** | + _BMP16(0b0011000110000000), // | ** ** | + _BMP16(0b0011000110000000), // | ** ** | + _BMP16(0b1110000111110000), // |*** **** | + _BMP16(0b1110000111100000), // |** *** | + +//S_MICRO "\035" // 0x1D + _BMP16(0b0000000000000000|CW_13), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0111000111000000), // | *** *** | + _BMP16(0b0111000111000000), // | *** *** | + _BMP16(0b0111000111000000), // | *** *** | + _BMP16(0b0111000111000000), // | *** *** | + _BMP16(0b0111000111000000), // | *** *** | + _BMP16(0b0111001111010000), // | *** **** * | + _BMP16(0b0111111011100000), // | ****** *** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + +//S_OHM "\036" // 0x1E + _BMP16(0b0000111100000000|CW_13), // | **** | + _BMP16(0b0011111111000000), // | ******** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0011100111000000), // | *** *** | + _BMP16(0b1001100110010000), // | ** ** | + _BMP16(0b1111100111110000), // |***** ***** | + _BMP16(0b1111100111110000), // |***** ***** | + +//S_DEGREE "\037" // 0x1F + _BMP16(0b0001110000000000|CW_09), // | *** | + _BMP16(0b0011111000000000), // | ***** | + _BMP16(0b0110001100000000), // | ** ** | + _BMP16(0b0110001100000000), // | ** ** | + _BMP16(0b0110001100000000), // | ** ** | + _BMP16(0b0011111000000000), // | ***** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char ' ', width = 6 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '!', width = 6 + _BMP16(0b0011000000000000|CW_06), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b0011000000000000), // | ** | + +// Char '"', width = 8 + _BMP16(0b0110011000000000|CW_08), // | ** ** | + _BMP16(0b0110011000000000), // | ** ** | + _BMP16(0b0110011000000000), // | ** ** | + _BMP16(0b0110011000000000), // | ** ** | + _BMP16(0b0100010000000000), // | * * | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '#', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b0010000100000000), // | * * | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '$', width = 10 + _BMP16(0b0011111000000000|CW_10), // | ***** | + _BMP16(0b0110101100000000), // | ** * ** | + _BMP16(0b1100100100000000), // |** * * | + _BMP16(0b1100100100000000), // |** * * | + _BMP16(0b1110100000000000), // |*** * | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b0011110000000000), // | **** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000101100000000), // | * ** | + _BMP16(0b0000100110000000), // | * ** | + _BMP16(0b1000100110000000), // |* * ** | + _BMP16(0b1000100110000000), // |* * ** | + _BMP16(0b1100101100000000), // |** * ** | + _BMP16(0b0111111000000000), // | ****** | + + // Char '%', width = 13 + _BMP16(0b0111000000010000|CW_13), // | *** * | + _BMP16(0b1000100000110000), // |* * ** | + _BMP16(0b1000100001100000), // |* * ** | + _BMP16(0b1000100011000000), // |* * ** | + _BMP16(0b1000100110000000), // |* * ** | + _BMP16(0b0111001100000000), // | *** ** | + _BMP16(0b0000011000000000), // | ** | + _BMP16(0b0000110011100000), // | ** *** | + _BMP16(0b0001100100010000), // | ** * * | + _BMP16(0b0011000100010000), // | ** * * | + _BMP16(0b0110000100010000), // | ** * * | + _BMP16(0b1100000100010000), // |** * * | + _BMP16(0b1000000011100000), // |* *** | + _BMP16(0b0000000000000000), // | | + +// Char '&', width = 13 + _BMP16(0b0001111000000000|CW_13), // | **** | + _BMP16(0b0011000100000000), // | ** * | + _BMP16(0b0011000100000000), // | ** * | + _BMP16(0b0011000100000000), // | ** * | + _BMP16(0b0011001000000000), // | ** * | + _BMP16(0b0001110011110000), // | *** **** | + _BMP16(0b0001100001100000), // | ** ** | + _BMP16(0b0010110001000000), // | * ** * | + _BMP16(0b0100111010000000), // | * *** * | + _BMP16(0b1100011100000000), // |** *** | + _BMP16(0b1100001100000000), // |** ** | + _BMP16(0b1100001110010000), // |** *** * | + _BMP16(0b1110010111110000), // |*** * ***** | + _BMP16(0b0111100001100000), // | **** ** | + +// Char ''', width = 6 + _BMP16(0b0011100000000000|CW_06), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '(', width = 6 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0000000000000000), // | | + +// Char ')', width = 6 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b0000000000000000), // | | + +// Char '*', width = 9 + _BMP16(0b0000000000000000|CW_09), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0001000000000000), // | * | + _BMP16(0b1101011000000000), // |** * ** | + _BMP16(0b1101011000000000), // |** * ** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1101011000000000), // |** * ** | + _BMP16(0b1101011000000000), // |** * ** | + _BMP16(0b0001000000000000), // | * | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '+', width = 9 + _BMP16(0b0000000000000000|CW_09), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char ',', width = 5 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b0111000000000000), // | *** | + _BMP16(0b1110000000000000), // |*** | + +// Char '-', width = 9 + _BMP16(0b0000000000000000|CW_09), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '.', width = 4 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b0110000000000000), // | ** | + +// Char '/', width = 9 + _BMP16(0b0000000000000000|CW_09), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000100000000), // | * | + _BMP16(0b0000001100000000), // | ** | + _BMP16(0b0000011000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b1000000000000000), // |* | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '0', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110001111100000), // |*** ***** | + _BMP16(0b1110011111100000), // |*** ****** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1111110011100000), // |****** *** | + _BMP16(0b1111100011100000), // |***** *** | + _BMP16(0b1111000011100000), // |**** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char '1', width = 8 + _BMP16(0b0011100000000000|CW_08), // | *** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1111111000000000), // |******* | + _BMP16(0b1111111000000000), // |******* | + +// Char '2', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0000001111000000), // | **** | + _BMP16(0b0000111110000000), // | ***** | + _BMP16(0b0011111000000000), // | ***** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + +// Char '3', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0001111111000000), // | ******* | + _BMP16(0b0001111111000000), // | ******* | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char '4', width = 12 + _BMP16(0b0000000111000000|CW_12), // | *** | + _BMP16(0b0000001111000000), // | **** | + _BMP16(0b0000011111000000), // | ***** | + _BMP16(0b0000111111000000), // | ****** | + _BMP16(0b0001111111000000), // | ******* | + _BMP16(0b0011110111000000), // | **** *** | + _BMP16(0b0111100111000000), // | **** *** | + _BMP16(0b1111000111000000), // |**** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + +// Char '5', width = 12 + _BMP16(0b1111111111100000|CW_12), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char '6', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110111110000000), // |*** ***** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char '7', width = 12 + _BMP16(0b1111111111100000|CW_12), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0000001111000000), // | **** | + _BMP16(0b0000011110000000), // | **** | + _BMP16(0b0000111100000000), // | **** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + +// Char '8', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char '9', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111100000), // | ********** | + _BMP16(0b0011111011100000), // | ***** *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char ':', width = 6 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char ';', width = 6 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0000000000000000), // | | + +// Char '<', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000001110000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000001110000000), // | *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '=', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '>', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000001110000000), // | *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000001110000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '?', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0000001111000000), // | **** | + _BMP16(0b0000011110000000), // | **** | + _BMP16(0b0000111100000000), // | **** | + _BMP16(0b0001111000000000), // | **** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + +// Char '@', width = 13 + _BMP16(0b0000111100000000|CW_13), // | **** | + _BMP16(0b0011000011000000), // | ** ** | + _BMP16(0b0100000000100000), // | * * | + _BMP16(0b1000011010010000), // |* ** * * | + _BMP16(0b1000100110010000), // |* * ** * | + _BMP16(0b1001000010010000), // |* * * * | + _BMP16(0b1001000010010000), // |* * * * | + _BMP16(0b1001000010010000), // |* * * * | + _BMP16(0b1001000010010000), // |* * * * | + _BMP16(0b1000100110010000), // |* * ** * | + _BMP16(0b1000011011100000), // |* ** *** | + _BMP16(0b0100000000000000), // | * | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0000111100000000), // | **** | + +// Char 'A', width = 12 + _BMP16(0b0000111000000000|CW_12), // | *** | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + +// Char 'B', width = 12 + _BMP16(0b1111111110000000|CW_12), // |********* | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111110000000), // |********* | + +// Char 'C', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char 'D', width = 12 + _BMP16(0b1111111110000000|CW_12), // |********* | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0111000111100000), // | *** **** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000011100000), // | *** *** | + _BMP16(0b0111000111100000), // | *** **** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111110000000), // |********* | + +// Char 'E', width = 12 + _BMP16(0b1111111111000000|CW_11), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + +// Char 'F', width = 12 + _BMP16(0b1111111111000000|CW_11), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + +// Char 'G', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110001111100000), // |*** ***** | + _BMP16(0b1110001111100000), // |*** ***** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1111001111100000), // |**** ***** | + _BMP16(0b0111111101100000), // | ******* ** | + _BMP16(0b0011111001100000), // | ***** ** | + +// Char 'H', width = 11 + _BMP16(0b1110000111000000|CW_11), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + +// Char 'I', width = 8 + _BMP16(0b1111111000000000|CW_08), // |******* | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1111111000000000), // |******* | + +// Char 'J', width = 12 + _BMP16(0b0001111111100000|CW_12), // | ******** | + _BMP16(0b0001111111100000), // | ******** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b0011111100000000), // | ****** | + +// Char 'K', width = 12 + _BMP16(0b1110000011100000|CW_12), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110001111000000), // |*** **** | + _BMP16(0b1110011110000000), // |*** **** | + _BMP16(0b1110111100000000), // |*** **** | + _BMP16(0b1111111000000000), // |******* | + _BMP16(0b1111110000000000), // |****** | + _BMP16(0b1111110000000000), // |****** | + _BMP16(0b1111111000000000), // |******* | + _BMP16(0b1110111100000000), // |*** **** | + _BMP16(0b1110011110000000), // |*** **** | + _BMP16(0b1110001111000000), // |*** **** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + +// Char 'L', width = 11 + _BMP16(0b1110000000000000|CW_11), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + +// Char 'M', width = 13 + _BMP16(0b1110000001110000|CW_13), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1111000011110000), // |**** **** | + _BMP16(0b1111100111110000), // |***** ***** | + _BMP16(0b1111111111110000), // |************ | + _BMP16(0b1111111111110000), // |************ | + _BMP16(0b1111111111110000), // |************ | + _BMP16(0b1110111101110000), // |*** **** *** | + _BMP16(0b1110111101110000), // |*** **** *** | + _BMP16(0b1110011001110000), // |*** ** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + _BMP16(0b1110000001110000), // |*** *** | + +// Char 'N', width = 12 + _BMP16(0b1110000011100000|CW_12), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000011100000), // |**** *** | + _BMP16(0b1111100011100000), // |***** *** | + _BMP16(0b1111110011100000), // |****** *** | + _BMP16(0b1111111011100000), // |******* *** | + _BMP16(0b1110111111100000), // |*** ******* | + _BMP16(0b1110011111100000), // |*** ****** | + _BMP16(0b1110001111100000), // |*** ***** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + +// Char 'O', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char 'P', width = 12 + _BMP16(0b1111111110000000|CW_12), // |********* | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + +// Char 'Q', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111111100000), // |*** ******* | + _BMP16(0b1110011110000000), // |*** **** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b0111111111100000), // | ********** | + _BMP16(0b0011111011100000), // | ***** *** | + +// Char 'R', width = 12 + _BMP16(0b1111111110000000|CW_12), // |********* | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1111111000000000), // |******* | + _BMP16(0b1110111100000000), // |*** **** | + _BMP16(0b1110011110000000), // |*** **** | + _BMP16(0b1110001111000000), // |*** **** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + +// Char 'S', width = 12 + _BMP16(0b0011111110000000|CW_12), // | ******* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b0011111111000000), // | ******** | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char 'T', width = 12 + _BMP16(0b1111111111100000|CW_12), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1000111000100000), // |* *** * | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + +// Char 'U', width = 12 + _BMP16(0b1110000011100000|CW_12), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char 'V', width = 12 + _BMP16(0b1110000011100000|CW_12), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0000111000000000), // | *** | + +// Char 'W', width = 12 + _BMP16(0b1110000011100000|CW_12), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011101110000000), // | *** *** | + +// Char 'X', width = 12 + _BMP16(0b1110000011100000|CW_12), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + +// Char 'Y', width = 12 + _BMP16(0b1110000011100000|CW_12), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + +// Char 'Z', width = 12 + _BMP16(0b1111111111100000|CW_12), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b0000000011100000), // | *** | + _BMP16(0b0000000111100000), // | **** | + _BMP16(0b0000001111000000), // | **** | + _BMP16(0b0000011110000000), // | **** | + _BMP16(0b0000111100000000), // | **** | + _BMP16(0b0001111000000000), // | **** | + _BMP16(0b0011110000000000), // | **** | + _BMP16(0b0111100000000000), // | **** | + _BMP16(0b1111000000000000), // |**** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + +// Char '[', width = 6 + _BMP16(0b1111100000000000|CW_06), // |***** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b1111100000000000), // |***** | + +// Char '\', width = 7 + _BMP16(0b0000000000000000|CW_09), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1000000000000000), // |* | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0000110000000000), // | ** | + _BMP16(0b0000011000000000), // | ** | + _BMP16(0b0000001100000000), // | ** | + _BMP16(0b0000000100000000), // | * | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char ']', width = 6 + _BMP16(0b1111100000000000|CW_06), // |***** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b1111100000000000), // |***** | + +// Char '^', width = 10 + _BMP16(0b0000100000000000|CW_10), // | * | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0011011000000000), // | ** ** | + _BMP16(0b0110001100000000), // | ** ** | + _BMP16(0b1100000110000000), // |** ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char '_', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1111111111100000), // |*********** | + +// Char '`', width = 6 + _BMP16(0b0110000000000000|CW_06), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + +// Char 'a', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b0111111101100000), // | ******* ** | + +// Char 'b', width = 11 + _BMP16(0b1110000000000000|CW_11), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110111100000000), // |*** **** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1101111100000000), // |** ***** | + +// Char 'c', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011111100000000), // | ****** | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b0011111100000000), // | ****** | + +// Char 'd', width = 11 + _BMP16(0b0000000111000000|CW_11), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0011110111000000), // | **** *** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111000111000000), // |**** *** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111011000000), // | ***** ** | + +// Char 'e', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011111100000000), // | ****** | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111000011000000), // |**** ** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111110000000), // | ******* | + +// Char 'f', width = 11 + _BMP16(0b0000111111000000|CW_11), // | ****** | + _BMP16(0b0001111111000000), // | ******* | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + +// Char 'g', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011111011000000), // | ***** ** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1111000111000000), // |**** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111111000000), // | ******** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b0111111110000000), // | ******** | + +// Char 'h', width = 11 + _BMP16(0b1110000000000000|CW_11), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110111100000000), // |*** **** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + +// Char 'i', width = 8 + _BMP16(0b0011100000000000|CW_08), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1111100000000000), // |***** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1111111000000000), // |******* | + +// Char 'j', width = 10 + _BMP16(0b0000011100000000|CW_09), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b1110011100000000), // |*** *** | + _BMP16(0b0111111000000000), // | ****** | + +// Char 'k', width = 12 + _BMP16(0b1110000000000000|CW_12), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110001111000000), // |*** **** | + _BMP16(0b1110011110000000), // |*** **** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1111111100000000), // |******** | + _BMP16(0b1110011110000000), // |*** **** | + _BMP16(0b1110001111000000), // |*** **** | + _BMP16(0b1110000111100000), // |*** **** | + _BMP16(0b1110000011100000), // |*** *** | + +// Char 'l', width = 8 + _BMP16(0b1111100000000000|CW_08), // |***** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b1111111000000000), // |******* | + +// Char 'm', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1101101110000000), // |** ** *** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + +// Char 'n', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1101111100000000), // |** ***** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + +// Char 'o', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011111100000000), // | ****** | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b0011111100000000), // | ****** | + +// Char 'p', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1101111110000000), // |** ****** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1110000000000000), // |*** | + +// Char 'q', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011111011100000), // | ***** *** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111111000000), // | ******** | + _BMP16(0b0000000111000000), // | *** | + +// Char 'r', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1101111110000000), // |** ****** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111000111000000), // |**** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1110000000000000), // |*** | + +// Char 's', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0111111110000000), // | ******** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0111111110000000), // | ******** | + +// Char 't', width = 11 + _BMP16(0b0001110000000000|CW_11), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b1111111110000000), // |********* | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0001110111000000), // | *** *** | + _BMP16(0b0001111111000000), // | ******* | + _BMP16(0b0000111110000000), // | ***** | + +// Char 'u', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111001111000000), // |**** **** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011111011000000), // | ***** ** | + +// Char 'v', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0000111000000000), // | *** | + +// Char 'w', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1110111011100000), // |*** *** *** | + _BMP16(0b1111111111100000), // |*********** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0011101110000000), // | *** *** | + +// Char 'x', width = 12 + _BMP16(0b0000000000000000|CW_12), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1110000011100000), // |*** *** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0001111100000000), // | ***** | + _BMP16(0b0011111110000000), // | ******* | + _BMP16(0b0111101111000000), // | **** **** | + _BMP16(0b1111000111100000), // |**** **** | + _BMP16(0b1110000011100000), // |*** *** | + +// Char 'y', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b1111000111000000), // |**** *** | + _BMP16(0b0111111111000000), // | ********* | + _BMP16(0b0001110111000000), // | *** *** | + _BMP16(0b0000000111000000), // | *** | + _BMP16(0b1110000111000000), // |*** *** | + _BMP16(0b0111111110000000), // | ******** | + +// Char 'z', width = 11 + _BMP16(0b0000000000000000|CW_11), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b0000001110000000), // | *** | + _BMP16(0b0000011100000000), // | *** | + _BMP16(0b0000111000000000), // | *** | + _BMP16(0b0001110000000000), // | *** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0111000000000000), // | *** | + _BMP16(0b1111111111000000), // |********** | + _BMP16(0b1111111111000000), // |********** | + +// Char '{', width = 6 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b1100000000000000), // |** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0110000000000000), // | ** | + _BMP16(0b0011100000000000), // | *** | + _BMP16(0b0000000000000000), // | | + +// Char '|', width = 6 + _BMP16(0b0011000000000000|CW_06), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + +// Char '}', width = 6 + _BMP16(0b0000000000000000|CW_06), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0001100000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b0011000000000000), // | ** | + _BMP16(0b1110000000000000), // |*** | + _BMP16(0b0000000000000000), // | | + +// Char '~', width = 10 + _BMP16(0b0000000000000000|CW_10), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0011100011000000), // | *** ** | + _BMP16(0b0110110110000000), // |** ** ** | + _BMP16(0b1100011100000000), // |** *** | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | + _BMP16(0b0000000000000000), // | | +}; diff --git a/Font5x7.c b/Font5x7.c index 4e65bcb..2eab2eb 100644 --- a/Font5x7.c +++ b/Font5x7.c @@ -6,13 +6,18 @@ #include /* - * Check 1 byte of char bitmap data for get width + * Check 0 byte of char bitmap data for get width */ -#define FONT_GET_DATA(ch) (&x5x7_bits[ch*7]) -#define FONT_GET_WIDTH(ch) (8-x5x7_bits[ch*7]&7) +// Font definitions +#define FONT_START_CHAR 0x17 #define FONT_MAX_WIDTH 7 +#define FONT_WIDTH 5 #define FONT_GET_HEIGHT 7 +#define FONT_STR_HEIGHT 8 +#define FONT_GET_DATA(ch) ( &x5x7_bits[(ch-FONT_START_CHAR)*FONT_GET_HEIGHT]) +#define FONT_GET_WIDTH(ch) (8-(x5x7_bits[(ch-FONT_START_CHAR)*FONT_GET_HEIGHT]&7)) + #define CHAR5x7_WIDTH_1px 0x07 #define CHAR5x7_WIDTH_2px 0x06 @@ -24,8 +29,9 @@ #define CHAR5x7_WIDTH_8px 0x00 /* Font character bitmap data. */ -const uint8_t x5x7_bits[127*7] = +const uint8_t x5x7_bits[] = { +#if 0 /* Character (0x00): width=5 +--------+ @@ -103,23 +109,23 @@ const uint8_t x5x7_bits[127*7] = 0b00100000, /* Character (0x04): - width=6 + width=5 +--------+ - | | - |** | - |**** | - |****** | - |**** | - |** | - | | + | ** | + | *** | + | *** | + | *** | + | *** | + | *** | + | ** | +--------+ */ - 0b00000000|CHAR5x7_WIDTH_6px, - 0b11000000, - 0b11110000, - 0b00011100, - 0b11110000, - 0b11000000, - 0b00000000, + 0b00100000|CHAR5x7_WIDTH_5px, + 0b00100000, + 0b00100000, + 0b11100000, + 0b00100000, + 0b00100000, + 0b00100000, /* Character (0x05): width=5 @@ -445,24 +451,25 @@ const uint8_t x5x7_bits[127*7] = 0b00100000, /* Character (0x16): - width=5 + width=6 +--------+ - | ** | - | *** | - | *** | - | *** | - | *** | - | *** | - | ** | + | | + |** | + |**** | + |****** | + |**** | + |** | + | | +--------+ */ - 0b00100000|CHAR5x7_WIDTH_5px, - 0b00100000, - 0b00100000, - 0b11100000, - 0b00100000, - 0b00100000, - 0b00100000, - + 0b00000000|CHAR5x7_WIDTH_6px, + 0b11000000, + 0b11110000, + 0b00011100, + 0b11110000, + 0b11000000, + 0b00000000, +#endif +// FONT_START_CHAR = 0x17 /* Character (0x17): width=6 +--------+ diff --git a/Font7x13b.c b/Font7x13b.c index b47674b..6b72062 100644 --- a/Font7x13b.c +++ b/Font7x13b.c @@ -6,16 +6,18 @@ #include /* - * Check 1 byte of char bitmap data for get width + * Check 0 byte of char bitmap data for get width */ // Font definitions -#define FONT_GET_DATA(ch) (&x7x11b_bits[ch*11]) -#define FONT_GET_WIDTH(ch) (8-(x7x11b_bits[ch*11]&7)) +#define FONT_START_CHAR 0x17 #define FONT_MAX_WIDTH 8 #define FONT_WIDTH 7 #define FONT_GET_HEIGHT 11 #define FONT_STR_HEIGHT 11 +#define FONT_GET_DATA(ch) ( &x7x11b_bits[(ch-FONT_START_CHAR)*FONT_GET_HEIGHT]) +#define FONT_GET_WIDTH(ch) (8-(x7x11b_bits[(ch-FONT_START_CHAR)*FONT_GET_HEIGHT]&7)) + #define CHAR7x11_WIDTH_MASK 0x07 #define CHAR7x11_WIDTH_4px 0x04 #define CHAR7x11_WIDTH_5px 0x03 @@ -24,8 +26,9 @@ #define CHAR7x11_WIDTH_8px 0x00 /* Font character bitmap data. */ -const uint8_t x7x11b_bits[127*11] = +const uint8_t x7x11b_bits[] = { +#if 0 /* Character 0 (0x00): width 7 +-------+ @@ -646,7 +649,8 @@ const uint8_t x7x11b_bits[127*11] = 0b00110000, 0b00110000, 0b00110000, - +#endif +// FONT_START_CHAR = 23 /* Character 23 (0x17): width 8 +-------+ diff --git a/Makefile b/Makefile index eaeffb0..b83a16e 100644 --- a/Makefile +++ b/Makefile @@ -122,7 +122,7 @@ CSRC = $(STARTUPSRC) \ $(BOARDSRC) \ $(STREAMSSRC) \ usbcfg.c \ - main.c plot.c ui.c ili9341.c numfont20x22.c Font5x7.c flash.c adc.c si4432.c Font7x13b.c + main.c plot.c ui.c ili9341.c numfont20x22.c Font5x7.c Font10x14.c flash.c adc.c si4432.c Font7x13b.c # C++ sources that can be compiled in ARM or THUMB mode depending on the global # setting. diff --git a/ili9341.c b/ili9341.c index 29a98f2..3dd1cd6 100644 --- a/ili9341.c +++ b/ili9341.c @@ -597,18 +597,19 @@ void ili9341_set_rotation(uint8_t r) send_command(ILI9341_MEMORY_ACCESS_CONTROL, 1, &r); } +static uint8_t bit_align = 0; void blit8BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, - const void *bitmap) + const uint8_t *b) { uint16_t *buf = spi_buffer; uint8_t bits = 0; - const uint8_t *b = bitmap; for (uint16_t c = 0; c < height; c++) { for (uint16_t r = 0; r < width; r++) { if ((r&7) == 0) bits = *b++; *buf++ = (0x80 & bits) ? foreground_color : background_color; bits <<= 1; } + if (bit_align) b+=bit_align; } ili9341_bulk(x, y, width, height); } @@ -660,6 +661,21 @@ void ili9341_drawstring_7x13(const char *str, int x, int y) } } +void ili9341_drawstring_10x14(const char *str, int x, int y) +{ + int x_pos = x; + while (*str) { + uint8_t ch = *str++; + if (ch == '\n') {x = x_pos; y+=wFONT_STR_HEIGHT; continue;} + const uint8_t *char_buf = wFONT_GET_DATA(ch); + uint16_t w = wFONT_GET_WIDTH(ch); + bit_align = (w<=8) ? 1 : 0; + blit8BitWidthBitmap(x, y, w, wFONT_GET_HEIGHT, char_buf); + x += w; + } + bit_align = 0; +} + void ili9341_drawstringV(const char *str, int x, int y) { ili9341_set_rotation(DISPLAY_ROTATION_270); diff --git a/nanovna.h b/nanovna.h index c1890b1..c094139 100644 --- a/nanovna.h +++ b/nanovna.h @@ -332,23 +332,36 @@ extern int16_t area_height; // font extern const uint8_t x5x7_bits []; extern const uint8_t x7x11b_bits []; -#define FONT_GET_DATA(ch) (&x5x7_bits[ch*7]) -#define FONT_GET_WIDTH(ch) (8-(x5x7_bits[ch*7]&7)) -#define FONT_MAX_WIDTH 7 -#define FONT_GET_HEIGHT 7 -#define FONT_STR_HEIGHT 8 - -#define bFONT_GET_DATA(ch) (&x7x11b_bits[ch*11]) -#define bFONT_GET_WIDTH(ch) (8-(x7x11b_bits[ch*11]&7)) +extern const uint8_t x10x14_bits[]; +extern const uint8_t numfont16x22[]; + +#define FONT_START_CHAR 0x17 +#define FONT_MAX_WIDTH 7 +#define FONT_WIDTH 5 +#define FONT_GET_HEIGHT 7 +#define FONT_STR_HEIGHT 8 +#define FONT_GET_DATA(ch) ( &x5x7_bits[(ch-FONT_START_CHAR)*FONT_GET_HEIGHT]) +#define FONT_GET_WIDTH(ch) (8-(x5x7_bits[(ch-FONT_START_CHAR)*FONT_GET_HEIGHT]&7)) + +#define bFONT_START_CHAR 0x17 #define bFONT_MAX_WIDTH 8 #define bFONT_WIDTH 7 #define bFONT_GET_HEIGHT 11 #define bFONT_STR_HEIGHT 11 -extern const uint8_t numfont16x22[]; -#define NUM_FONT_GET_DATA(ch) (&numfont16x22[ch*2*22]) +#define bFONT_GET_DATA(ch) ( &x7x11b_bits[(ch-bFONT_START_CHAR)*bFONT_GET_HEIGHT]) +#define bFONT_GET_WIDTH(ch) (8-(x7x11b_bits[(ch-bFONT_START_CHAR)*bFONT_GET_HEIGHT]&7)) + +#define wFONT_START_CHAR 0x17 +#define wFONT_MAX_WIDTH 12 +#define wFONT_GET_HEIGHT 14 +#define wFONT_STR_HEIGHT 16 +#define wFONT_GET_DATA(ch) ( &x10x14_bits[(ch-wFONT_START_CHAR)*2*wFONT_GET_HEIGHT ]) +#define wFONT_GET_WIDTH(ch) (14-(x10x14_bits[(ch-wFONT_START_CHAR)*2*wFONT_GET_HEIGHT+1]&0x7)) + #define NUM_FONT_GET_WIDTH 16 #define NUM_FONT_GET_HEIGHT 22 +#define NUM_FONT_GET_DATA(ch) (&numfont16x22[ch*2*NUM_FONT_GET_HEIGHT]) #if 1 #define KP_WIDTH ((LCD_WIDTH) / 4)// numeric keypad button width @@ -373,8 +386,8 @@ extern const uint8_t numfont16x22[]; #define S_MICRO "\035" // 0x1D #define S_OHM "\036" // 0x1E #define S_DEGREE "\037" // 0x1F -// trace +// trace #define MAX_TRACE_TYPE 12 enum trace_type { TRC_LOGMAG=0, TRC_PHASE, TRC_DELAY, TRC_SMITH, TRC_POLAR, TRC_LINEAR, TRC_SWR, TRC_REAL, TRC_IMAG, TRC_R, TRC_X, TRC_OFF @@ -558,9 +571,10 @@ extern uint16_t background_color; extern uint16_t spi_buffer[SPI_BUFFER_SIZE]; // Used for easy define big Bitmap as 0bXXXXXXXXX image -#define _BMP16(d) ((d>>8)&0xFF), ((d)&0xFF) -#define _BMP24(d) ((d>>16)&0xFF), ((d>>8)&0xFF), ((d)&0xFF) -#define _BMP32(d) ((d>>24)&0xFF), ((d>>16)&0xFF), ((d>>8)&0xFF), ((d)&0xFF) +#define _BMP8(d) ((d)&0xFF) +#define _BMP16(d) (((d)>>8)&0xFF), ((d)&0xFF) +#define _BMP24(d) (((d)>>16)&0xFF), (((d)>>8)&0xFF), ((d)&0xFF) +#define _BMP32(d) (((d)>>24)&0xFF), (((d)>>16)&0xFF), (((d)>>8)&0xFF), ((d)&0xFF) void ili9341_init(void); void ili9341_test(int mode); @@ -576,11 +590,12 @@ void ili9341_set_background(uint16_t fg); #endif void ili9341_clear_screen(void); -void blit8BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const void *bitmap); +void blit8BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint8_t *bitmap); void blit16BitWidthBitmap(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint16_t *bitmap); void ili9341_drawchar(uint8_t ch, int x, int y); void ili9341_drawstring(const char *str, int x, int y); void ili9341_drawstring_7x13(const char *str, int x, int y); +void ili9341_drawstring_10x14(const char *str, int x, int y); void ili9341_drawstringV(const char *str, int x, int y); int ili9341_drawchar_size(uint8_t ch, int x, int y, uint8_t size); void ili9341_drawstring_size(const char *str, int x, int y, uint8_t size); diff --git a/plot.c b/plot.c index 5e35713..0b2cd76 100644 --- a/plot.c +++ b/plot.c @@ -1703,11 +1703,11 @@ request_to_draw_cells_behind_numeric_input(void) redraw_request |= REDRAW_CELLS; } -static int -cell_blit_char_bitmap(int x, int y, uint16_t w, uint16_t h, const uint8_t *char_buf) +static void +cell_blit_bitmap(int x, int y, uint16_t w, uint16_t h, const uint8_t *char_buf) { if (x <= -w) - return w; + return; uint8_t bits = 0; int c = h+y, r; for (; y < c; y++) { @@ -1718,7 +1718,6 @@ cell_blit_char_bitmap(int x, int y, uint16_t w, uint16_t h, const uint8_t *char_ bits <<= 1; } } - return w; } void @@ -1730,7 +1729,9 @@ cell_drawstring(char *str, int x, int y) if (x >= CELLWIDTH) return; uint8_t ch = *str++; - x += cell_blit_char_bitmap(x, y, FONT_GET_WIDTH(ch), FONT_GET_HEIGHT, FONT_GET_DATA(ch)); + uint16_t w = FONT_GET_WIDTH(ch); + cell_blit_bitmap(x, y, w, FONT_GET_HEIGHT, FONT_GET_DATA(ch)); + x += w; } } @@ -1743,7 +1744,24 @@ cell_drawstring_7x13(char *str, int x, int y) if (x >= CELLWIDTH) return; uint8_t ch = *str++; - x += cell_blit_char_bitmap(x, y, bFONT_GET_WIDTH(ch), bFONT_GET_HEIGHT, bFONT_GET_DATA(ch)); + uint16_t w = bFONT_GET_WIDTH(ch); + cell_blit_bitmap(x, y, w, bFONT_GET_HEIGHT, bFONT_GET_DATA(ch)); + x += w; + } +} + +void +cell_drawstring_10x14(char *str, int x, int y) +{ + if (y <= -wFONT_GET_HEIGHT || y >= CELLHEIGHT) + return; + while (*str) { + if (x >= CELLWIDTH) + return; + uint8_t ch = *str++; + uint16_t w = wFONT_GET_WIDTH(ch); + cell_blit_bitmap(x, y, w <=8 ? 9 : w, wFONT_GET_HEIGHT, wFONT_GET_DATA(ch)); + x+=w; } } diff --git a/ui.c b/ui.c index d5bed95..23745c7 100644 --- a/ui.c +++ b/ui.c @@ -414,7 +414,7 @@ show_version(void) ili9341_clear_screen(); uint16_t shift = 0b0000010000111110; - ili9341_drawstring_size(info_about[i++], x , y, 4); + ili9341_drawstring_10x14(info_about[i++], x , y); while (info_about[i]) { do {shift>>=1; y+=5;} while (shift&1); ili9341_drawstring(info_about[i++], x, y+=5); @@ -1420,7 +1420,7 @@ static const char * const keypad_mode_label[] = { }; #endif -static const char * const keypad_scale_text[] = { "1", "2", "5", "10", "20" , "50", "100", "200", "500"}; +static const char * const keypad_scale_text[] = {"0", "1", "2", "5", "10", "20" , "50", "100", "200", "500"}; //static const int keypad_scale_value[] = { 1, 2, 5, 10, 20 , 50, 100, 200, 500}; static void @@ -1457,15 +1457,15 @@ draw_keypad(void) int x = KP_GET_X(keypads[i].x); int y = KP_GET_Y(keypads[i].y); draw_button(x, y, KP_WIDTH, KP_HEIGHT, &button); - if (keypads[i].c < 32) { // KP_1 + if (keypads[i].c < KP_0) { // KP_0 ili9341_drawfont(keypads[i].c, x + (KP_WIDTH - NUM_FONT_GET_WIDTH) / 2, y + (KP_HEIGHT - NUM_FONT_GET_HEIGHT) / 2); } else { - const char *t = keypad_scale_text[keypads[i].c - KP_1]; - ili9341_drawstring_size(t, - x + (KP_WIDTH - 5*strlen(t)*2) / 2, - y + (KP_HEIGHT - 13) / 2,2); + const char *t = keypad_scale_text[keypads[i].c - KP_0]; + ili9341_drawstring_10x14(t, + x + (KP_WIDTH - wFONT_MAX_WIDTH*strlen(t)) / 2, + y + (KP_HEIGHT - wFONT_GET_HEIGHT) / 2); } i++; } @@ -1770,8 +1770,8 @@ draw_menu_buttons(const menuitem_t *menu) blit8BitWidthBitmap(button_start+3, y+(MENU_BUTTON_HEIGHT-ICON_HEIGHT)/2, ICON_WIDTH, ICON_HEIGHT, &check_box[button.icon*2*ICON_HEIGHT]); text_offs = button_start+6+ICON_WIDTH+1; } - ili9341_drawstring_size(button.text, text_offs, y+(button_height-2*FONT_GET_HEIGHT)/2, 2); -// ili9341_drawstring_7x13(button.text, text_offs, y+(button_height-bFONT_GET_HEIGHT)/2); +// ili9341_drawstring_size(button.text, text_offs, y+(button_height-2*FONT_GET_HEIGHT)/2, 2); + ili9341_drawstring_10x14(button.text, text_offs, y+(button_height-wFONT_GET_HEIGHT)/2); #ifdef __ICONS__ if (menu[i].type & MT_ICON) { blit8BitWidthBitmap(button_start+MENU_FORM_WIDTH-2*FORM_ICON_WIDTH-8,y+(button_height-FORM_ICON_HEIGHT)/2,FORM_ICON_WIDTH,FORM_ICON_HEIGHT,& left_icons[((menu[i].data >>4)&0xf)*2*FORM_ICON_HEIGHT]); @@ -2305,8 +2305,8 @@ keypad_click(int key) return KP_DONE; } else if (c <= 9 && kp_index < NUMINPUT_LEN) { kp_buf[kp_index++] = '0' + c; - } else if (c>=KP_1) { - kp_buf[kp_index++] = keypad_scale_text[c-KP_1][0]; + } else if (c>=KP_0) { + kp_buf[kp_index++] = keypad_scale_text[c-KP_0][0]; if (c >=KP_10) kp_buf[kp_index++] = '0'; if (c >=KP_100) diff --git a/ui_sa.c b/ui_sa.c index d8f3c5f..36a562b 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -240,6 +240,7 @@ enum { #define KP_n 23 #define KP_p 24 +#define KP_0 31 #define KP_1 32 #define KP_2 33 #define KP_5 34 @@ -316,9 +317,9 @@ static const keypads_t keypads_positive[] = { static const keypads_t keypads_pos_unit[] = { { 1, 3, KP_PERIOD }, { 0, 3, 0 }, - { 0, 2, KP_1 }, - { 1, 2, KP_2 }, - { 2, 2, KP_5 }, + { 0, 2, 1 }, + { 1, 2, 2 }, + { 2, 2, 5 }, { 0, 1, KP_10 }, { 1, 1, KP_20 }, { 2, 1, KP_50 }, @@ -453,12 +454,12 @@ static UI_FUNCTION_ADV_CALLBACK(menu_mode_acb) (void)data; if (b){ if (item == setting.mode) { - b->param_1.text = "RETURN"; + b->param_1.text = "Return"; b->bg = RGB565(200,200,200);//config.menu_active_color; b->border = BUTTON_BORDER_FALLING | MENU_BUTTON_BORDER; } else - b->param_1.text = "SWITCH"; + b->param_1.text = "Switch"; return; } set_mode(item); @@ -1196,7 +1197,7 @@ static const menuitem_t menu_store_preset_high[8] = { MT_ADV_CALLBACK, 7, "STORE %d", menu_store_preset_acb}, { MT_ADV_CALLBACK, 8, "STORE %d", menu_store_preset_acb}, { MT_ADV_CALLBACK, 100,"FACTORY\nDEFAULTS",menu_store_preset_acb}, - { MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1208,7 +1209,7 @@ static const menuitem_t menu_load_preset_high[] = { MT_ADV_CALLBACK, 7, "LOAD %d", menu_load_preset_acb}, { MT_ADV_CALLBACK, 8, "LOAD %s", menu_load_preset_acb}, { MT_SUBMENU, 0, "STORE" , menu_store_preset_high}, - { MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; #endif @@ -1221,7 +1222,7 @@ static const menuitem_t menu_store_preset[] = { MT_ADV_CALLBACK, 3, "STORE %d", menu_store_preset_acb}, { MT_ADV_CALLBACK, 4, "STORE %d", menu_store_preset_acb}, { MT_ADV_CALLBACK, 100,"FACTORY\nDEFAULTS",menu_store_preset_acb}, - { MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1233,7 +1234,7 @@ static const menuitem_t menu_load_preset[] = { MT_ADV_CALLBACK, 3, "LOAD %d" , menu_load_preset_acb}, { MT_ADV_CALLBACK, 4, "LOAD %d" , menu_load_preset_acb}, { MT_SUBMENU, 0, "STORE" , menu_store_preset}, - { MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1242,7 +1243,7 @@ static const menuitem_t menu_drive[] = { { MT_ADV_CALLBACK, 14, "%+ddBm", menu_drive_acb}, { MT_ADV_CALLBACK, 13, "%+ddBm", menu_drive_acb}, { MT_ADV_CALLBACK, 12, "%+ddBm", menu_drive_acb}, - { MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1253,7 +1254,7 @@ static const menuitem_t menu_drive_wide3[] = { { MT_FORM | MT_ADV_CALLBACK, 2, "%+ddBm", menu_drive_acb}, { MT_FORM | MT_ADV_CALLBACK, 1, "%+ddBm", menu_drive_acb}, { MT_FORM | MT_ADV_CALLBACK, 0, "%+ddBm", menu_drive_acb}, - { MT_FORM | MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_FORM | MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1263,8 +1264,8 @@ static const menuitem_t menu_drive_wide2[] = { { MT_FORM | MT_ADV_CALLBACK, 8, "%+ddBm", menu_drive_acb}, { MT_FORM | MT_ADV_CALLBACK, 7, "%+ddBm", menu_drive_acb}, { MT_FORM | MT_ADV_CALLBACK, 6, "%+ddBm", menu_drive_acb}, - { MT_FORM | MT_SUBMENU, 255, "\033 MORE", menu_drive_wide3}, - { MT_FORM | MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_FORM | MT_SUBMENU, 255, S_RARROW" MORE", menu_drive_wide3}, + { MT_FORM | MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1274,20 +1275,20 @@ static const menuitem_t menu_drive_wide[] = { { MT_FORM | MT_ADV_CALLBACK, 13, "%+ddBm", menu_drive_acb}, { MT_FORM | MT_ADV_CALLBACK, 12, "%+ddBm", menu_drive_acb}, { MT_FORM | MT_ADV_CALLBACK, 11, "%+ddBm", menu_drive_acb}, - { MT_FORM | MT_SUBMENU, 255, "\033 MORE", menu_drive_wide2}, - { MT_FORM | MT_CANCEL, 255, "\032 BACK", NULL }, + { MT_FORM | MT_SUBMENU, 255, S_RARROW" MORE", menu_drive_wide2}, + { MT_FORM | MT_CANCEL, 255, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; static const menuitem_t menu_modulation[] = { { MT_FORM | MT_TITLE, 0, "MODULATION",NULL}, - { MT_FORM | MT_ADV_CALLBACK, MO_NONE, "NONE", menu_modulation_acb}, + { MT_FORM | MT_ADV_CALLBACK, MO_NONE, "NONE", menu_modulation_acb}, { MT_FORM | MT_ADV_CALLBACK | MT_LOW, MO_AM_1kHz, "AM 1kHz", menu_modulation_acb}, { MT_FORM | MT_ADV_CALLBACK | MT_LOW, MO_AM_10Hz, "AM 10Hz", menu_modulation_acb}, - { MT_FORM | MT_ADV_CALLBACK, MO_NFM, "NARROW FM", menu_modulation_acb}, - { MT_FORM | MT_ADV_CALLBACK, MO_WFM, "WIDE FM", menu_modulation_acb}, + { MT_FORM | MT_ADV_CALLBACK, MO_NFM, "NARROW FM", menu_modulation_acb}, + { MT_FORM | MT_ADV_CALLBACK, MO_WFM, "WIDE FM", menu_modulation_acb}, { MT_FORM | MT_ADV_CALLBACK | MT_LOW, MO_EXTERNAL, "EXTERNAL", menu_modulation_acb}, - { MT_FORM | MT_CANCEL, 0, "\032 BACK",NULL }, + { MT_FORM | MT_CANCEL, 0, S_LARROW" BACK",NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1304,7 +1305,7 @@ static const menuitem_t menu_lowoutputmode[] = { }; static const menuitem_t menu_highoutputmode[] = { - { MT_FORM | MT_ADV_CALLBACK, 0, "HIGH OUTPUT %s", menu_outputmode_acb}, + { MT_FORM | MT_ADV_CALLBACK, 0, "HIGH OUTPUT %s", menu_outputmode_acb}, { MT_FORM | MT_KEYPAD, KM_CENTER, "FREQ: %s", "240MHz..960MHz"}, { MT_FORM | MT_ADV_CALLBACK, 0, "LEVEL: %+ddBm", menu_sdrive_acb}, { MT_FORM | MT_ADV_CALLBACK, 0, "MODULATION: %s", menu_smodulation_acb}, @@ -1321,7 +1322,7 @@ static const menuitem_t menu_average[] = { { MT_ADV_CALLBACK, 3, "MAX\nDECAY", menu_average_acb}, { MT_ADV_CALLBACK, 4, "AVER 4", menu_average_acb}, { MT_ADV_CALLBACK, 5, "AVER 16", menu_average_acb}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1333,7 +1334,7 @@ static const menuitem_t menu_rbw[] = { { MT_ADV_CALLBACK, 4, "%4dkHz", menu_rbw_acb}, { MT_ADV_CALLBACK, 5, "%4dkHz", menu_rbw_acb}, { MT_ADV_CALLBACK, 6, "%4dkHz", menu_rbw_acb}, - { MT_CANCEL, -1, "\032 BACK", NULL }, + { MT_CANCEL, -1, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1345,8 +1346,8 @@ static const menuitem_t menu_scale_per2[] = { { MT_ADV_CALLBACK, 9, "0.02/", menu_scale_per_acb}, { MT_ADV_CALLBACK,10, "0.01/", menu_scale_per_acb}, //{ MT_ADV_CALLBACK,11, "0.005/", menu_scale_per_acb}, -//{ MT_SUBMENU, 0, "\033 MORE", menu_scale_per2}, - { MT_CANCEL, 0, "\032 BACK", NULL }, +//{ MT_SUBMENU, 0, S_RARROW" MORE", menu_scale_per2}, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1357,8 +1358,8 @@ static const menuitem_t menu_scale_per[] = { { MT_ADV_CALLBACK, 3, " 2/", menu_scale_per_acb}, { M_ADVT_CALLBACK, 4, " 1/", menu_scale_per_acb}, { MT_ADV_CALLBACK, 5, "0.5/", menu_scale_per_acb}, - { MT_SUBMENU, 0, "\033 MORE", menu_scale_per2}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_SUBMENU, 0, S_RARROW" MORE", menu_scale_per2}, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; #endif @@ -1368,7 +1369,7 @@ static const menuitem_t menu_reffer2[] = { { MT_FORM | MT_ADV_CALLBACK, 5, "%s", menu_reffer_acb}, { MT_FORM | MT_ADV_CALLBACK, 6, "%s", menu_reffer_acb}, { MT_FORM | MT_ADV_CALLBACK, 7, "%s", menu_reffer_acb}, - { MT_FORM | MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_FORM | MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; #endif @@ -1381,8 +1382,8 @@ static const menuitem_t menu_reffer[] = { { MT_FORM | MT_ADV_CALLBACK, 4, "%s", menu_reffer_acb}, { MT_FORM | MT_ADV_CALLBACK, 6, "%s", menu_reffer_acb}, { MT_FORM | MT_ADV_CALLBACK, 7, "%s", menu_reffer_acb}, -// { MT_FORM | MT_SUBMENU, 0, "\033 MORE", menu_reffer2}, - { MT_FORM | MT_CANCEL, 0, "\032 BACK", NULL }, +//{ MT_FORM | MT_SUBMENU, 0, S_RARROW" MORE", menu_reffer2}, + { MT_FORM | MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1391,25 +1392,25 @@ static const menuitem_t menu_atten[] = { { MT_KEYPAD | MT_LOW, KM_ATTENUATION, "MANUAL", "0 - 30dB"}, { MT_ADV_CALLBACK | MT_HIGH,0, "0dB", menu_atten_high_acb}, { MT_ADV_CALLBACK | MT_HIGH,30, "22.5 - 40dB", menu_atten_high_acb}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; static const menuitem_t menu_reflevel[] = { { MT_ADV_CALLBACK,0, "AUTO", menu_reflevel_acb}, { MT_KEYPAD, KM_REFLEVEL, "MANUAL", NULL}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; const menuitem_t menu_marker_search[] = { //{ MT_CALLBACK, "OFF", menu_marker_search_cb }, - { MT_CALLBACK, 0, "MIN\n" "\032 LEFT", menu_marker_search_cb }, - { MT_CALLBACK, 1, "MIN\n" "\033 RIGHT", menu_marker_search_cb }, - { MT_CALLBACK, 2, "MAX\n" "\032 LEFT", menu_marker_search_cb }, - { MT_CALLBACK, 3, "MAX\n" "\033 RIGHT", menu_marker_search_cb }, - { MT_ADV_CALLBACK, 0, "TRACKING", menu_marker_tracking_acb }, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CALLBACK, 0, "MIN\n" S_LARROW" LEFT", menu_marker_search_cb }, + { MT_CALLBACK, 1, "MIN\n" S_RARROW" RIGHT", menu_marker_search_cb }, + { MT_CALLBACK, 2, "MAX\n" S_LARROW" LEFT", menu_marker_search_cb }, + { MT_CALLBACK, 3, "MAX\n" S_RARROW" RIGHT", menu_marker_search_cb }, + { MT_ADV_CALLBACK, 0, "TRACKING",menu_marker_tracking_acb }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1419,9 +1420,9 @@ const menuitem_t menu_marker_modify[] = { { MT_ADV_CALLBACK, M_NOISE, "NOISE", menu_marker_modify_acb}, { MT_ADV_CALLBACK, M_TRACKING, "TRACKING", menu_marker_tracking_acb}, { MT_ADV_CALLBACK, M_NORMAL, "NORMAL", menu_marker_modify_acb}, - { MT_SUBMENU, 0, "SEARCH", menu_marker_search}, - { MT_CALLBACK, M_DELETE, "DELETE", menu_marker_delete_cb}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_SUBMENU, 0, "SEARCH", menu_marker_search}, + { MT_CALLBACK, M_DELETE, "DELETE", menu_marker_delete_cb}, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1435,7 +1436,7 @@ const menuitem_t menu_marker_sel[] = { { MT_CALLBACK, 0, "DELTA", menu_marker_sel_cb }, { MT_CALLBACK, 0, "NOISE", menu_marker_sel_cb }, { MT_CALLBACK, 0, "TRACKING", menu_marker_sel_cb }, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; #endif @@ -1445,17 +1446,17 @@ const menuitem_t menu_marker_select[] = { { MT_ADV_CALLBACK, 2, "MARKER %d", menu_marker_select_acb }, { MT_ADV_CALLBACK, 3, "MARKER %d", menu_marker_select_acb }, { MT_ADV_CALLBACK, 4, "MARKER %d", menu_marker_select_acb }, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; const menuitem_t menu_marker_ops[] = { - { MT_CALLBACK, ST_START, "\033 START", menu_marker_op_cb }, - { MT_CALLBACK, ST_STOP, "\033 STOP", menu_marker_op_cb }, - { MT_CALLBACK, ST_CENTER, "\033 CENTER", menu_marker_op_cb }, - { MT_CALLBACK, ST_SPAN, "\033 SPAN", menu_marker_op_cb }, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CALLBACK, ST_START, S_RARROW" START", menu_marker_op_cb }, + { MT_CALLBACK, ST_STOP, S_RARROW" STOP", menu_marker_op_cb }, + { MT_CALLBACK, ST_CENTER, S_RARROW" CENTER", menu_marker_op_cb }, + { MT_CALLBACK, ST_SPAN, S_RARROW" SPAN", menu_marker_op_cb }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1466,13 +1467,13 @@ static const menuitem_t menu_marker[] = { { MT_SUBMENU, 0, "MODIFY\nMARKERS", menu_marker_select}, { MT_SUBMENU, 0, "MARKER OPS", menu_marker_ops}, { MT_SUBMENU, 0, "SEARCH\nMARKER", menu_marker_search}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; static const menuitem_t menu_dfu[] = { { MT_FORM | MT_CALLBACK, 0, "ENTER DFU", menu_dfu_cb}, - { MT_FORM | MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_FORM | MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1483,7 +1484,7 @@ static const menuitem_t menu_harmonic[] = { MT_ADV_CALLBACK, 3, "3", menu_harmonic_acb}, { MT_ADV_CALLBACK, 4, "4", menu_harmonic_acb}, { MT_ADV_CALLBACK, 5, "5", menu_harmonic_acb}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; #endif @@ -1497,7 +1498,7 @@ static const menuitem_t menu_scanning_speed[] = // { MT_KEYPAD | MT_LOW,KM_FAST_SPEEDUP, "FAST\nSPEEDUP", "2..20"}, { MT_KEYPAD, KM_SAMPLETIME, "SAMPLE\nDELAY", "300..30000"}, // This must be item 4 to match highlighting { MT_KEYPAD, KM_OFFSET_DELAY, "OFFSET\nDELAY", "300..30000"}, // This must be item 5 to match highlighting - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1516,7 +1517,7 @@ static const menuitem_t menu_sweep_speed[] = { MT_KEYPAD, KM_SWEEP_TIME, "SWEEP\nTIME", "0..600s, 0=disable"}, // This must be item 3 to match highlighting { MT_SUBMENU, 0, "SWEEP\nPOINTS", menu_sweep_points}, { MT_KEYPAD | MT_LOW,KM_FAST_SPEEDUP,"FAST\nSPEEDUP", "2..20, 0=disable"}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1532,7 +1533,7 @@ static const menuitem_t menu_settings2[] = #ifdef __ULTRA__ { MT_SUBMENU,0, "HARMONIC", menu_harmonic}, #endif - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1544,8 +1545,8 @@ static const menuitem_t menu_settings[] = { MT_SUBMENU,0, "SCAN SPEED", menu_scanning_speed}, { MT_KEYPAD, KM_REPEAT, "SAMPLE\nREPEAT", "1..100"}, { MT_SUBMENU | MT_LOW,0, "MIXER\nDRIVE", menu_drive}, - { MT_SUBMENU, 0, "\033 MORE", menu_settings2}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_SUBMENU, 0, S_RARROW" MORE", menu_settings2}, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1557,7 +1558,7 @@ static const menuitem_t menu_measure[] = { // { MT_ADV_CALLBACK, M_STOP_BAND, "STOP\nBAND", menu_measure_acb}, // { MT_ADV_CALLBACK, M_PASS_BAND, "PASS\nBAND", menu_measure_acb}, // { MT_ADV_CALLBACK | MT_LOW, M_LINEARITY, "LINEAR", menu_measure_acb}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1566,7 +1567,7 @@ static const menuitem_t menu_calibrate[] = { MT_FORM | MT_TITLE, 0, "CONNECT INPUT AND OUTPUT", NULL}, { MT_FORM | MT_CALLBACK, 0, "CALIBRATE", menu_calibrate_cb}, { MT_FORM | MT_CALLBACK, 0, "RESET CALBRATION", menu_calibrate_cb}, - { MT_FORM | MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_FORM | MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1577,8 +1578,8 @@ static const menuitem_t menu_config[] = { { MT_SUBMENU, 0, "LEVEL CAL", menu_calibrate}, { MT_CALLBACK, 0, "VERSION", menu_config_cb}, { MT_SUBMENU, 0, "EXPERT\nCONFIG", menu_settings}, - { MT_SUBMENU, 0, "\033 DFU", menu_dfu}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_SUBMENU, 0, S_RARROW" DFU", menu_dfu}, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1592,7 +1593,7 @@ static const menuitem_t menu_display[] = { { MT_SUBMENU, 0, "SWEEP\nSETTINGS", menu_sweep_speed}, // { MT_KEYPAD, KM_SWEEP_TIME, "SWEEP\nTIME", NULL}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1605,7 +1606,7 @@ static const menuitem_t menu_unit[] = //{ MT_ADV_CALLBACK,U_UVOLT, S_MICRO"Volt", menu_unit_acb}, { MT_ADV_CALLBACK,U_WATT, "Watt", menu_unit_acb}, //{ MT_ADV_CALLBACK,U_UWATT, S_MICRO"Watt", menu_unit_acb}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1616,7 +1617,7 @@ static const menuitem_t menu_trigger[] = { { MT_KEYPAD, KM_TRIGGER, "TRIGGER\nLEVEL", NULL}, { MT_ADV_CALLBACK, T_UP, "UP\nEDGE", menu_trigger_acb}, { MT_ADV_CALLBACK, T_DOWN, "DOWN\nEDGE", menu_trigger_acb}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1629,7 +1630,7 @@ static const menuitem_t menu_level[] = { { MT_SUBMENU, 0, "UNIT", menu_unit}, { MT_KEYPAD, KM_OFFSET, "EXTERNAL\nAMP",NULL}, { MT_SUBMENU, 0, "TRIGGER", menu_trigger}, - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1643,21 +1644,21 @@ static const menuitem_t menu_stimulus[] = { #ifdef __SPUR__ { MT_ADV_CALLBACK | MT_LOW,0, "SPUR\nREMOVAL", menu_spur_acb}, #endif - { MT_CANCEL, 0, "\032 BACK", NULL }, + { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; static const menuitem_t menu_mode[] = { // { MT_FORM | MT_TITLE, 0, "tinySA MODE", NULL}, - { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_LOW_INPUT+I_SA, "%s TO LOW INPUT", menu_mode_acb}, - { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_HIGH_INPUT+I_SA, "%s TO HIGH INPUT", menu_mode_acb}, - { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_LOW_OUTPUT+I_SINUS, "%s TO LOW OUTPUT", menu_mode_acb}, - { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_HIGH_OUTPUT+I_GEN, "%s TO HIGH OUTPUT", menu_mode_acb}, - { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_CONNECT+I_GEN, "CAL OUTPUT: %s", menu_sreffer_acb}, + { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_LOW_INPUT+I_SA, "%s to LOW in", menu_mode_acb}, + { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_HIGH_INPUT+I_SA, "%s to HIGH in", menu_mode_acb}, + { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_LOW_OUTPUT+I_SINUS, "%s to LOW out", menu_mode_acb}, + { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_HIGH_OUTPUT+I_GEN, "%s to HIGH out", menu_mode_acb}, + { MT_FORM | MT_ADV_CALLBACK | MT_ICON, I_CONNECT+I_GEN, "Cal. output: %s", menu_sreffer_acb}, #ifdef __ULTRA__ { MT_FORM | MT_CALLBACK | MT_ICON, I_LOW_INPUT+I_SA, "ULTRA HIGH INPUT",menu_mode_cb}, #endif -// { MT_FORM | MT_CANCEL, 0, "\032 BACK", NULL }, +// { MT_FORM | MT_CANCEL, 0, S_RARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel };