From 469e18589ffcc9cd7f0f9fd6cca5ee55113dec80 Mon Sep 17 00:00:00 2001 From: nILS Date: Tue, 21 Oct 2025 21:41:36 +0200 Subject: [PATCH 01/10] adds 8x8 wide font and improves font count references to use ThemeConstants --- .../Adapters/picoTracker/display/chargfx.c | 8 +- sources/Adapters/picoTracker/display/font.h | 220 ++---------------- .../Adapters/picoTracker/display/font_bold.h | 108 +++++++++ .../picoTracker/display/font_hourglass.h | 118 ++++++++++ .../Adapters/picoTracker/display/font_wide.h | 107 +++++++++ sources/Application/Model/Config.cpp | 6 +- sources/Application/Model/ThemeConstants.h | 4 +- sources/Application/Views/ThemeView.cpp | 2 +- 8 files changed, 356 insertions(+), 217 deletions(-) create mode 100644 sources/Adapters/picoTracker/display/font_bold.h create mode 100644 sources/Adapters/picoTracker/display/font_hourglass.h create mode 100644 sources/Adapters/picoTracker/display/font_wide.h diff --git a/sources/Adapters/picoTracker/display/chargfx.c b/sources/Adapters/picoTracker/display/chargfx.c index 64c756a96..e7deb7e48 100644 --- a/sources/Adapters/picoTracker/display/chargfx.c +++ b/sources/Adapters/picoTracker/display/chargfx.c @@ -192,21 +192,21 @@ inline void chargfx_draw_sub_region(uint8_t x, uint8_t y, uint8_t width, ili9341_start_writing(); + const font_t *font = fonts[ui_font_index]; + for (int page = x; page < x + width; page++) { // create one column of screen information uint16_t *buffer_idx = buffer; for (int bit = CHAR_WIDTH - 1; bit >= 0; bit--) { - uint8_t mask = 1 << (CHAR_WIDTH - 1 - bit); + uint16_t mask = 1 << (CHAR_WIDTH - 1 - bit); for (int col = y + height - 1; col >= y; col--) { int16_t idx = col * TEXT_WIDTH + page; uint8_t character = screen[idx]; uint16_t fg_color = palette[colors[idx] >> 4]; uint16_t bg_color = palette[colors[idx] & 0xf]; - uint16_t const *pixel_data = (ui_font_index == 0) - ? FONT_HOURGLASS_BITMAP[character] - : FONT_YOU_SQUARED_BITMAP[character]; + const uint16_t *pixel_data = (*font)[character]; // draw the character into the buffer for (int j = CHAR_HEIGHT - 1; j >= 0; j--) { diff --git a/sources/Adapters/picoTracker/display/font.h b/sources/Adapters/picoTracker/display/font.h index 7d537108e..cc47d3160 100644 --- a/sources/Adapters/picoTracker/display/font.h +++ b/sources/Adapters/picoTracker/display/font.h @@ -1,213 +1,19 @@ /* - * Hourglass font by Damien Guard (https://damieng.com/zx-origins) - * Used in accordance with the informal permission in the project's README. - * Do not redistribute the font itself; this usage only embeds a converted - * bitmap. + * SPDX-License-Identifier: BSD-3-Clause * - * SPDX-License-Identifier: LicenseRef-DamienGuard-Custom + * Copyright (c) 2024 xiphonics, inc. + * + * This file is part of the picoTracker firmware */ -#include +typedef uint16_t font_t[96][10]; -// Hourglass font from https://damieng.com/zx-origins -// used with permission the acknowledgement is included in credits -// converted to left-to-right pixel format -static const uint16_t FONT_HOURGLASS_BITMAP[96][10] = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00}, // ! - {0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " - {0x00, 0x14, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x14, 0x00, 0x00}, // # - {0x00, 0x08, 0x3C, 0x0A, 0x1C, 0x28, 0x1E, 0x08, 0x00, 0x00}, // $ - {0x00, 0x26, 0x16, 0x10, 0x08, 0x04, 0x34, 0x32, 0x00, 0x00}, // % - {0x00, 0x1C, 0x02, 0x02, 0x3C, 0x12, 0x12, 0x3C, 0x00, 0x00}, // & - {0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' - {0x00, 0x10, 0x08, 0x04, 0x04, 0x04, 0x08, 0x10, 0x00, 0x00}, // ( - {0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x08, 0x04, 0x00, 0x00}, // ) - {0x00, 0x00, 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x00, 0x00, 0x00}, // * - {0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x00}, // + - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x00}, // , - {0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00}, // . - {0x00, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00}, // / - {0x00, 0x1C, 0x22, 0x32, 0x2A, 0x26, 0x22, 0x1C, 0x00, 0x00}, // 0 - {0x00, 0x08, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // 1 - {0x00, 0x1C, 0x22, 0x20, 0x10, 0x08, 0x04, 0x3E, 0x00, 0x00}, // 2 - {0x00, 0x3E, 0x20, 0x10, 0x18, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 3 - {0x00, 0x30, 0x28, 0x24, 0x22, 0x3E, 0x20, 0x20, 0x00, 0x00}, // 4 - {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 5 - {0x00, 0x18, 0x04, 0x02, 0x1E, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 6 - {0x00, 0x3E, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x00, 0x00}, // 7 - {0x00, 0x1C, 0x22, 0x22, 0x1C, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 8 - {0x00, 0x1C, 0x22, 0x22, 0x3C, 0x20, 0x10, 0x0C, 0x00, 0x00}, // 9 - {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00}, // : - {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x04, 0x00}, // ; - {0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00}, // < - {0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00}, // = - {0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00}, // > - {0x00, 0x1C, 0x20, 0x20, 0x10, 0x08, 0x00, 0x08, 0x00, 0x00}, // ? - {0x00, 0x38, 0x44, 0x72, 0x4A, 0x4A, 0x72, 0x04, 0x78, 0x00}, // @ - {0x00, 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x22, 0x00, 0x00}, // A - {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x22, 0x22, 0x1E, 0x00, 0x00}, // B - {0x00, 0x1C, 0x22, 0x02, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // C - {0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // D - {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x3E, 0x00, 0x00}, // E - {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // F - {0x00, 0x3C, 0x02, 0x02, 0x32, 0x22, 0x22, 0x3C, 0x00, 0x00}, // G - {0x00, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00, 0x00}, // H - {0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // I - {0x00, 0x20, 0x20, 0x20, 0x20, 0x22, 0x22, 0x1C, 0x00, 0x00}, // J - {0x00, 0x22, 0x12, 0x0A, 0x06, 0x0A, 0x12, 0x22, 0x00, 0x00}, // K - {0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3E, 0x00, 0x00}, // L - {0x00, 0x41, 0x63, 0x55, 0x49, 0x49, 0x41, 0x41, 0x00, 0x00}, // M - {0x00, 0x22, 0x26, 0x2A, 0x32, 0x22, 0x22, 0x22, 0x00, 0x00}, // N - {0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // O - {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // P - {0x00, 0x1C, 0x22, 0x22, 0x22, 0x2A, 0x12, 0x2C, 0x20, 0x00}, // Q - {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x0A, 0x12, 0x22, 0x00, 0x00}, // R - {0x00, 0x3C, 0x02, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // S - {0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // T - {0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // U - {0x00, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // V - {0x00, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 0x22, 0x00, 0x00}, // W - {0x00, 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, 0x00}, // X - {0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x08, 0x00, 0x00}, // Y - {0x00, 0x3E, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x00, 0x00}, // Z - {0x00, 0x3C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3C, 0x00, 0x00}, // [ - {0x00, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00, 0x00}, /* \ */ - {0x00, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, 0x00}, // ] - {0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00}, // ^ - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ - {0x00, 0x38, 0x04, 0x04, 0x1E, 0x04, 0x04, 0x3E, 0x00, 0x00}, // £ - {0x00, 0x00, 0x1C, 0x20, 0x3C, 0x22, 0x22, 0x3C, 0x00, 0x00}, // a - {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // b - {0x00, 0x00, 0x1C, 0x22, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // c - {0x00, 0x20, 0x2C, 0x32, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // d - {0x00, 0x00, 0x1C, 0x22, 0x3E, 0x02, 0x22, 0x1C, 0x00, 0x00}, // e - {0x00, 0x30, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}, // f - {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x3C, 0x20, 0x1C, 0x00}, // g - {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // h - {0x00, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // i - {0x00, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x00}, // j - {0x00, 0x04, 0x24, 0x14, 0x0C, 0x14, 0x24, 0x44, 0x00, 0x00}, // k - {0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // l - {0x00, 0x00, 0x3F, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, 0x00}, // m - {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // n - {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // o - {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x26, 0x1A, 0x02, 0x00}, // p - {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x32, 0x2C, 0x20, 0x00}, // q - {0x00, 0x00, 0x34, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00}, // r - {0x00, 0x00, 0x3C, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // s - {0x00, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00}, // t - {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // u - {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // v - {0x00, 0x00, 0x89, 0x89, 0x52, 0x5A, 0x24, 0x24, 0x00, 0x00}, // w - {0x00, 0x00, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x00, 0x00}, // x - {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x06, 0x00}, // y - {0x00, 0x00, 0x3C, 0x20, 0x10, 0x08, 0x04, 0x3C, 0x00, 0x00}, // z - {0x00, 0x38, 0x08, 0x08, 0x06, 0x08, 0x08, 0x38, 0x00, 0x00}, // { - {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // | - {0x00, 0x0E, 0x08, 0x08, 0x30, 0x08, 0x08, 0x0E, 0x00, 0x00}, // } - {0x00, 0x2C, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ - {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © -}; +#include "font_hourglass.h" +#include "font_bold.h" +#include "font_wide.h" -// You Squared font from https://damieng.com/zx-origins -// converted to left-to-right pixel format -static const uint16_t FONT_YOU_SQUARED_BITMAP[96][10] = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00}, // ! - {0x00, 0x66, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " - {0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, 0x00}, // # - {0x00, 0x18, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x18, 0x00, 0x00}, // $ - {0x00, 0x66, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x66, 0x00, 0x00}, // % - {0x00, 0x3E, 0x06, 0x66, 0x7C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // & - {0x00, 0x18, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' - {0x00, 0x38, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x00, 0x00}, // ( - {0x00, 0x1C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1C, 0x00, 0x00}, // ) - {0x00, 0x00, 0x14, 0x1C, 0x3E, 0x1C, 0x14, 0x00, 0x00, 0x00}, // * - {0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00}, // + - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1C, 0x00}, // , - {0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . - {0x00, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x00, 0x00}, // / - {0x00, 0x7E, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x7E, 0x00, 0x00}, // 0 - {0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // 1 - {0x00, 0x7E, 0x66, 0x60, 0x7E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // 2 - {0x00, 0x7E, 0x66, 0x60, 0x38, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 3 - {0x00, 0x3E, 0x36, 0x36, 0x36, 0x7E, 0x30, 0x30, 0x00, 0x00}, // 4 - {0x00, 0x7E, 0x06, 0x7E, 0x60, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 5 - {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 6 - {0x00, 0x7E, 0x66, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, 0x00}, // 7 - {0x00, 0x7E, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 8 - {0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 9 - {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, // : - {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x1C, 0x00}, // ; - {0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00}, // < - {0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00}, // = - {0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00}, // > - {0x00, 0x7E, 0x66, 0x60, 0x78, 0x18, 0x00, 0x18, 0x00, 0x00}, // ? - {0x00, 0x7E, 0x66, 0x76, 0x76, 0x76, 0x06, 0x7E, 0x00, 0x00}, // @ - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00, 0x00}, // A - {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // B - {0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x66, 0x7E, 0x00, 0x00}, // C - {0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x00}, // D - {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // E - {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00, 0x00}, // F - {0x00, 0x7E, 0x66, 0x06, 0x76, 0x66, 0x66, 0x7E, 0x00, 0x00}, // G - {0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00}, // H - {0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // I - {0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x7E, 0x00, 0x00}, // J - {0x00, 0x66, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // K - {0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00, 0x00}, // L - {0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x00, 0x00}, // M - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // N - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // O - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00, 0x00}, // P - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x70, 0x00}, // Q - {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // R - {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // S - {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // T - {0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // U - {0x00, 0x66, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // V - {0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // W - {0x00, 0x66, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x00, 0x00}, // X - {0x00, 0x66, 0x66, 0x66, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00}, // Y - {0x00, 0x7E, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x7E, 0x00, 0x00}, // Z - {0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00}, // [ - {0x00, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x60, 0x00, 0x00}, /* \*/ - {0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00}, // ] - {0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C, 0x00, 0x00}, // ^ - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ - {0x00, 0x7E, 0x66, 0x06, 0x1E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // £ - {0x00, 0x00, 0x00, 0x7E, 0x60, 0x7E, 0x66, 0x7E, 0x00, 0x00}, // a - {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // b - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x66, 0x7E, 0x00, 0x00}, // c - {0x00, 0x60, 0x60, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // d - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x7E, 0x06, 0x7E, 0x00, 0x00}, // e - {0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00}, // f - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // g - {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // h - {0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // i - {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x7E, 0x00}, // j - {0x00, 0x06, 0x06, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x00, 0x00}, // k - {0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x00, 0x00}, // l - {0x00, 0x00, 0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x00, 0x00}, // m - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // n - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // o - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00}, // p - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x60, 0x00}, // q - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x00, 0x00}, // r - {0x00, 0x00, 0x00, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x00, 0x00}, // s - {0x00, 0x00, 0x0C, 0x7E, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00}, // t - {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // u - {0x00, 0x00, 0x00, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // v - {0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // w - {0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x00, 0x00}, // x - {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // y - {0x00, 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00, 0x00}, // z - {0x00, 0x78, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x78, 0x00, 0x00}, // { - {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // | - {0x00, 0x1E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x1E, 0x00, 0x00}, // } - {0x00, 0x00, 0x00, 0x6E, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ - {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © -}; +static const font_t *fonts[] = { + &FONT_HOURGLASS_BITMAP, + &FONT_YOU_SQUARED_BITMAP, + &FONT_WIDE_BITMAP, +}; \ No newline at end of file diff --git a/sources/Adapters/picoTracker/display/font_bold.h b/sources/Adapters/picoTracker/display/font_bold.h new file mode 100644 index 000000000..280642a7d --- /dev/null +++ b/sources/Adapters/picoTracker/display/font_bold.h @@ -0,0 +1,108 @@ +#ifndef _FONT_BOLD_H +#define _FONT_BOLD_H + +#include + +// You Squared font from https://damieng.com/zx-origins +// converted to left-to-right pixel format + +static const font_t FONT_YOU_SQUARED_BITMAP = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // + {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00}, // ! + {0x00, 0x66, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " + {0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, 0x00}, // # + {0x00, 0x18, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x18, 0x00, 0x00}, // $ + {0x00, 0x66, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x66, 0x00, 0x00}, // % + {0x00, 0x3E, 0x06, 0x66, 0x7C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // & + {0x00, 0x18, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' + {0x00, 0x38, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x00, 0x00}, // ( + {0x00, 0x1C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1C, 0x00, 0x00}, // ) + {0x00, 0x00, 0x14, 0x1C, 0x3E, 0x1C, 0x14, 0x00, 0x00, 0x00}, // * + {0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00}, // + + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1C, 0x00}, // , + {0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . + {0x00, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x00, 0x00}, // / + {0x00, 0x7E, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x7E, 0x00, 0x00}, // 0 + {0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // 1 + {0x00, 0x7E, 0x66, 0x60, 0x7E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // 2 + {0x00, 0x7E, 0x66, 0x60, 0x38, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 3 + {0x00, 0x3E, 0x36, 0x36, 0x36, 0x7E, 0x30, 0x30, 0x00, 0x00}, // 4 + {0x00, 0x7E, 0x06, 0x7E, 0x60, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 5 + {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 6 + {0x00, 0x7E, 0x66, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, 0x00}, // 7 + {0x00, 0x7E, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 8 + {0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 9 + {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, // : + {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x1C, 0x00}, // ; + {0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00}, // < + {0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00}, // = + {0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00}, // > + {0x00, 0x7E, 0x66, 0x60, 0x78, 0x18, 0x00, 0x18, 0x00, 0x00}, // ? + {0x00, 0x7E, 0x66, 0x76, 0x76, 0x76, 0x06, 0x7E, 0x00, 0x00}, // @ + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00, 0x00}, // A + {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // B + {0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x66, 0x7E, 0x00, 0x00}, // C + {0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x00}, // D + {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // E + {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00, 0x00}, // F + {0x00, 0x7E, 0x66, 0x06, 0x76, 0x66, 0x66, 0x7E, 0x00, 0x00}, // G + {0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00}, // H + {0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // I + {0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x7E, 0x00, 0x00}, // J + {0x00, 0x66, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // K + {0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00, 0x00}, // L + {0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x00, 0x00}, // M + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // N + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // O + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00, 0x00}, // P + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x70, 0x00}, // Q + {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // R + {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // S + {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // T + {0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // U + {0x00, 0x66, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // V + {0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // W + {0x00, 0x66, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x00, 0x00}, // X + {0x00, 0x66, 0x66, 0x66, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00}, // Y + {0x00, 0x7E, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x7E, 0x00, 0x00}, // Z + {0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00}, // [ + {0x00, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x60, 0x00, 0x00}, /* \*/ + {0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00}, // ] + {0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C, 0x00, 0x00}, // ^ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ + {0x00, 0x7E, 0x66, 0x06, 0x1E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // £ + {0x00, 0x00, 0x00, 0x7E, 0x60, 0x7E, 0x66, 0x7E, 0x00, 0x00}, // a + {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // b + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x66, 0x7E, 0x00, 0x00}, // c + {0x00, 0x60, 0x60, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // d + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x7E, 0x06, 0x7E, 0x00, 0x00}, // e + {0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00}, // f + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // g + {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // h + {0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // i + {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x7E, 0x00}, // j + {0x00, 0x06, 0x06, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x00, 0x00}, // k + {0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x00, 0x00}, // l + {0x00, 0x00, 0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x00, 0x00}, // m + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // n + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // o + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00}, // p + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x60, 0x00}, // q + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x00, 0x00}, // r + {0x00, 0x00, 0x00, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x00, 0x00}, // s + {0x00, 0x00, 0x0C, 0x7E, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00}, // t + {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // u + {0x00, 0x00, 0x00, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // v + {0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // w + {0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x00, 0x00}, // x + {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // y + {0x00, 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00, 0x00}, // z + {0x00, 0x78, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x78, 0x00, 0x00}, // { + {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // | + {0x00, 0x1E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x1E, 0x00, 0x00}, // } + {0x00, 0x00, 0x00, 0x6E, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ + {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © +}; + +#endif //_FONT_BOLD_H \ No newline at end of file diff --git a/sources/Adapters/picoTracker/display/font_hourglass.h b/sources/Adapters/picoTracker/display/font_hourglass.h new file mode 100644 index 000000000..61b2b53a2 --- /dev/null +++ b/sources/Adapters/picoTracker/display/font_hourglass.h @@ -0,0 +1,118 @@ +#ifndef _FONT_HOURGLASS_H +#define _FONT_HOURGLASS_H + +#include + +/* + * Hourglass font by Damien Guard (https://damieng.com/zx-origins) + * Used in accordance with the informal permission in the project's README. + * Do not redistribute the font itself; this usage only embeds a converted + * bitmap. + * + * SPDX-License-Identifier: LicenseRef-DamienGuard-Custom + */ + +// Hourglass font from https://damieng.com/zx-origins +// used with permission the acknowledgement is included in credits +// converted to left-to-right pixel format + +static const font_t FONT_HOURGLASS_BITMAP = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // + {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00}, // ! + {0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " + {0x00, 0x14, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x14, 0x00, 0x00}, // # + {0x00, 0x08, 0x3C, 0x0A, 0x1C, 0x28, 0x1E, 0x08, 0x00, 0x00}, // $ + {0x00, 0x26, 0x16, 0x10, 0x08, 0x04, 0x34, 0x32, 0x00, 0x00}, // % + {0x00, 0x1C, 0x02, 0x02, 0x3C, 0x12, 0x12, 0x3C, 0x00, 0x00}, // & + {0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' + {0x00, 0x10, 0x08, 0x04, 0x04, 0x04, 0x08, 0x10, 0x00, 0x00}, // ( + {0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x08, 0x04, 0x00, 0x00}, // ) + {0x00, 0x00, 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x00, 0x00, 0x00}, // * + {0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x00}, // + + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x00}, // , + {0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00}, // . + {0x00, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00}, // / + {0x00, 0x1C, 0x22, 0x32, 0x2A, 0x26, 0x22, 0x22, 0x1C, 0x00}, // 0 + {0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff}, // 1 + {0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff}, // 2 + {0xaaa, 0x555, 0xaaa, 0x555, 0xaaa, 0x555, 0xaaa, 0x555, 0xaaa, 0x555}, // 3 + {0xfff, 0x000, 0xfff, 0x000, 0xfff, 0x000, 0xfff, 0x000, 0xfff, 0x000}, // 4 + {0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa}, // 5 + {0x00, 0x18, 0x04, 0x02, 0x1E, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 6 + {0x00, 0x3E, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x00, 0x00}, // 7 + {0x00, 0x1C, 0x22, 0x22, 0x1C, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 8 + {0x00, 0x1C, 0x22, 0x22, 0x3C, 0x20, 0x10, 0x0C, 0x00, 0x00}, // 9 + {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00}, // : + {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x04, 0x00}, // ; + {0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00}, // < + {0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00}, // = + {0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00}, // > + {0x00, 0x1C, 0x20, 0x20, 0x10, 0x08, 0x00, 0x08, 0x00, 0x00}, // ? + {0x00, 0x38, 0x44, 0x72, 0x4A, 0x4A, 0x72, 0x04, 0x78, 0x00}, // @ + {0x00, 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x22, 0x00, 0x00}, // A + {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x22, 0x22, 0x1E, 0x00, 0x00}, // B + {0x00, 0x1C, 0x22, 0x02, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // C + {0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // D + {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x3E, 0x00, 0x00}, // E + {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // F + {0x00, 0x3C, 0x02, 0x02, 0x32, 0x22, 0x22, 0x3C, 0x00, 0x00}, // G + {0x00, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00, 0x00}, // H + {0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // I + {0x00, 0x20, 0x20, 0x20, 0x20, 0x22, 0x22, 0x1C, 0x00, 0x00}, // J + {0x00, 0x22, 0x12, 0x0A, 0x06, 0x0A, 0x12, 0x22, 0x00, 0x00}, // K + {0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3E, 0x00, 0x00}, // L + {0x00, 0x41, 0x63, 0x55, 0x49, 0x49, 0x41, 0x41, 0x00, 0x00}, // M + {0x00, 0x22, 0x26, 0x2A, 0x32, 0x22, 0x22, 0x22, 0x00, 0x00}, // N + {0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // O + {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // P + {0x00, 0x1C, 0x22, 0x22, 0x22, 0x2A, 0x12, 0x2C, 0x20, 0x00}, // Q + {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x0A, 0x12, 0x22, 0x00, 0x00}, // R + {0x00, 0x3C, 0x02, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // S + {0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // T + {0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // U + {0x00, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // V + {0x00, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 0x22, 0x00, 0x00}, // W + {0x00, 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, 0x00}, // X + {0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x08, 0x00, 0x00}, // Y + {0x00, 0x3E, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x00, 0x00}, // Z + {0x00, 0x3C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3C, 0x00, 0x00}, // [ + {0x00, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00, 0x00}, // backslash + {0x00, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, 0x00}, // ] + {0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00}, // ^ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ + {0x00, 0x38, 0x04, 0x04, 0x1E, 0x04, 0x04, 0x3E, 0x00, 0x00}, // £ + {0x00, 0x00, 0x1C, 0x20, 0x3C, 0x22, 0x22, 0x3C, 0x00, 0x00}, // a + {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // b + {0x00, 0x00, 0x1C, 0x22, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // c + {0x00, 0x20, 0x2C, 0x32, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // d + {0x00, 0x00, 0x1C, 0x22, 0x3E, 0x02, 0x22, 0x1C, 0x00, 0x00}, // e + {0x00, 0x30, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}, // f + {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x3C, 0x20, 0x1C, 0x00}, // g + {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // h + {0x00, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // i + {0x00, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x00}, // j + {0x00, 0x04, 0x24, 0x14, 0x0C, 0x14, 0x24, 0x44, 0x00, 0x00}, // k + {0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // l + {0x00, 0x00, 0x3F, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, 0x00}, // m + {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // n + {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // o + {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x26, 0x1A, 0x02, 0x00}, // p + {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x32, 0x2C, 0x20, 0x00}, // q + {0x00, 0x00, 0x34, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00}, // r + {0x00, 0x00, 0x3C, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // s + {0x00, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00}, // t + {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // u + {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // v + {0x00, 0x00, 0x89, 0x89, 0x52, 0x5A, 0x24, 0x24, 0x00, 0x00}, // w + {0x00, 0x00, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x00, 0x00}, // x + {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x06, 0x00}, // y + {0x00, 0x00, 0x3C, 0x20, 0x10, 0x08, 0x04, 0x3C, 0x00, 0x00}, // z + {0x00, 0x38, 0x08, 0x08, 0x06, 0x08, 0x08, 0x38, 0x00, 0x00}, // { + {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // | + {0x00, 0x0E, 0x08, 0x08, 0x30, 0x08, 0x08, 0x0E, 0x00, 0x00}, // } + {0x00, 0x2C, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ + {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © +}; + +#endif //_FONT_HOURGLASS_H \ No newline at end of file diff --git a/sources/Adapters/picoTracker/display/font_wide.h b/sources/Adapters/picoTracker/display/font_wide.h new file mode 100644 index 000000000..c491c5aef --- /dev/null +++ b/sources/Adapters/picoTracker/display/font_wide.h @@ -0,0 +1,107 @@ +#ifndef _FONT_WIDE_H +#define _FONT_WIDE_H + +#include + +// simple 8x8 font by nILS, given to the public domain. + +static const font_t FONT_WIDE_BITMAP = { + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // + {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000, 0x030, 0x000}, // ! + {0x000, 0x0CC, 0x0CC, 0x0CC, 0x048, 0x000, 0x000, 0x000, 0x000, 0x000}, // " + {0x000, 0x0C0, 0x1CC, 0x0FC, 0x0CE, 0x0CC, 0x1CC, 0x0FC, 0x0CE, 0x00C}, // # + {0x000, 0x030, 0x0FC, 0x036, 0x0FC, 0x1B0, 0x1B0, 0x0FC, 0x030, 0x000}, // $ + {0x000, 0x000, 0x186, 0x0C6, 0x060, 0x030, 0x018, 0x18C, 0x186, 0x000}, // % + {0x000, 0x078, 0x0CC, 0x0CC, 0x078, 0x03C, 0x166, 0x0C6, 0x1BC, 0x000}, // & + {0x000, 0x180, 0x0C0, 0x060, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ' + {0x000, 0x180, 0x0C0, 0x060, 0x060, 0x060, 0x060, 0x0C0, 0x180, 0x000}, // ( + {0x000, 0x006, 0x00C, 0x018, 0x018, 0x018, 0x018, 0x00C, 0x006, 0x000}, // ) + {0x000, 0x000, 0x132, 0x0B4, 0x078, 0x1FE, 0x078, 0x0B4, 0x132, 0x000}, // * + {0x000, 0x000, 0x030, 0x030, 0x030, 0x1FE, 0x030, 0x030, 0x030, 0x000}, // + + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x030, 0x030, 0x018, 0x000}, // , + {0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000, 0x000, 0x000, 0x000}, // - + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x018, 0x018, 0x000}, // . + {0x000, 0x300, 0x180, 0x0C0, 0x060, 0x030, 0x018, 0x00C, 0x006, 0x000}, // / + {0x000, 0x0FC, 0x186, 0x1C6, 0x1A6, 0x196, 0x18E, 0x186, 0x0FC, 0x000}, // 0 + {0x000, 0x070, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x000}, // 1 + {0x000, 0x0FE, 0x180, 0x180, 0x0FC, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // 2 + {0x000, 0x0FE, 0x180, 0x180, 0x0F8, 0x180, 0x180, 0x180, 0x0FE, 0x000}, // 3 + {0x000, 0x186, 0x186, 0x186, 0x1FE, 0x180, 0x180, 0x180, 0x180, 0x000}, // 4 + {0x000, 0x1FE, 0x006, 0x006, 0x0FE, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // 5 + {0x000, 0x0FC, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // 6 + {0x000, 0x1FE, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x000}, // 7 + {0x000, 0x0FC, 0x186, 0x186, 0x0FC, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // 8 + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180, 0x0FC, 0x000}, // 9 + {0x000, 0x000, 0x030, 0x030, 0x000, 0x000, 0x030, 0x030, 0x000, 0x000}, // : + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ; + {0x000, 0x180, 0x0C0, 0x060, 0x030, 0x030, 0x060, 0x0C0, 0x180, 0x000}, // < + {0x000, 0x000, 0x000, 0x000, 0x1FC, 0x000, 0x1FC, 0x000, 0x000, 0x000}, // = + {0x000, 0x006, 0x00C, 0x018, 0x030, 0x030, 0x018, 0x00C, 0x006, 0x000}, // > + {0x000, 0x0FC, 0x186, 0x180, 0x0C0, 0x060, 0x060, 0x000, 0x060, 0x000}, // ? + {0x000, 0x0FC, 0x186, 0x1B6, 0x196, 0x196, 0x1F6, 0x006, 0x0FC, 0x000}, // @ + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FE, 0x186, 0x186, 0x186, 0x000}, // A + {0x000, 0x0FE, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // B + {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // C + {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // D + {0x000, 0x1FE, 0x006, 0x006, 0x07E, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // E + {0x000, 0x1FE, 0x006, 0x006, 0x07E, 0x006, 0x006, 0x006, 0x006, 0x000}, // F + {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x1E6, 0x186, 0x186, 0x0FC, 0x000}, // G + {0x000, 0x186, 0x186, 0x186, 0x1FE, 0x186, 0x186, 0x186, 0x186, 0x000}, // H + {0x000, 0x1FE, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x1FE, 0x000}, // I + {0x000, 0x1E0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x0E6, 0x07C, 0x000}, // J + {0x000, 0x186, 0x0C6, 0x066, 0x03E, 0x03E, 0x066, 0x0C6, 0x186, 0x000}, // K + {0x000, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // L + {0x000, 0x186, 0x1CE, 0x1FE, 0x1B6, 0x186, 0x186, 0x186, 0x186, 0x000}, // M + {0x000, 0x186, 0x18E, 0x19E, 0x1BE, 0x1F6, 0x1E6, 0x1C6, 0x186, 0x000}, // N + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // O + {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006, 0x006, 0x000}, // P + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x136, 0x066, 0x0DC, 0x000}, // Q + {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x000}, // R + {0x000, 0x0FC, 0x186, 0x006, 0x0FC, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // S + {0x000, 0x1FE, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000}, // T + {0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // U + {0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // V + {0x000, 0x186, 0x186, 0x186, 0x186, 0x1B6, 0x1FE, 0x1CE, 0x186, 0x000}, // W + {0x000, 0x186, 0x186, 0x0CC, 0x078, 0x0CC, 0x186, 0x186, 0x186, 0x000}, // X + {0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x030, 0x030, 0x000}, // Y + {0x000, 0x1FE, 0x180, 0x0C0, 0x070, 0x018, 0x00C, 0x006, 0x1FE, 0x000}, // Z + {0x000, 0x07C, 0x01C, 0x01C, 0x01C, 0x01C, 0x01C, 0x01C, 0x07C, 0x000}, // [ + {0x000, 0x000, 0x006, 0x01C, 0x038, 0x030, 0x060, 0x1C0, 0x380, 0x000}, // backslash + {0x000, 0x07C, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x07C, 0x000}, // ] + {0x000, 0x020, 0x070, 0x0DC, 0x18E, 0x306, 0x202, 0x000, 0x000, 0x000}, // ^ + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x3FF}, // _ + {0x004, 0x008, 0x010, 0x020, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ` + {0x000, 0x000, 0x000, 0x0F8, 0x180, 0x1FC, 0x186, 0x186, 0x1FC, 0x000}, // a + {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // b + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // c + {0x000, 0x180, 0x180, 0x1FC, 0x186, 0x186, 0x186, 0x186, 0x1FC, 0x000}, // d + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x1FE, 0x006, 0x186, 0x0FC, 0x000}, // e + {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x006, 0x006, 0x006, 0x01E, 0x006}, // f + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FC}, // g + {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // h + {0x000, 0x030, 0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // i + {0x000, 0x180, 0x000, 0x1E0, 0x180, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // j + {0x000, 0x006, 0x006, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x000}, // k + {0x000, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // l + {0x000, 0x000, 0x000, 0x0FE, 0x1B6, 0x1B6, 0x186, 0x186, 0x186, 0x000}, // m + {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // n + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // o + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006}, // p + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180}, // q + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x006, 0x006, 0x006, 0x006, 0x000}, // r + {0x000, 0x000, 0x000, 0x0FC, 0x006, 0x0FE, 0x180, 0x186, 0x0FC, 0x000}, // s + {0x000, 0x006, 0x006, 0x01E, 0x006, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // t + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // u + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // v + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1B6, 0x1B6, 0x0FC, 0x000}, // w + {0x000, 0x000, 0x000, 0x0CC, 0x0CC, 0x078, 0x0CC, 0x186, 0x186, 0x000}, // x + {0x000, 0x000, 0x000, 0x186, 0x186, 0x1FC, 0x180, 0x186, 0x0FC, 0x000}, // y + {0x000, 0x000, 0x000, 0x1FC, 0x180, 0x0FC, 0x006, 0x006, 0x1FE, 0x000}, // z + {0x0E0, 0x030, 0x030, 0x030, 0x01C, 0x030, 0x030, 0x070, 0x060, 0x000}, // { + {0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030}, // | + {0x01C, 0x030, 0x030, 0x030, 0x0E0, 0x030, 0x030, 0x038, 0x018, 0x000}, // } + {0x000, 0x000, 0x000, 0x000, 0x23C, 0x1E6, 0x000, 0x000, 0x000, 0x000}, // ~ + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // © +}; + +#endif //_FONT_WIDE_H diff --git a/sources/Application/Model/Config.cpp b/sources/Application/Model/Config.cpp index 09cb5a3db..76e00e84d 100644 --- a/sources/Application/Model/Config.cpp +++ b/sources/Application/Model/Config.cpp @@ -34,8 +34,6 @@ static const char *midiSendSync[2] = {"Off", "Send"}; static const char *midiClockSyncOptions[2] = {"Internal", "External"}; static const char *remoteUIOnOff[2] = {"Off", "On"}; -static const char *fontOptions[2] = {"Standard", "Bold"}; - // NOTE: these MUST match up to the RecordSource enum in record.h (of all // adapters) also note we *dont* show "All Off" as a UI option for now static const char *recordSourceOptions[4] = {"All Off", "Line In", "Mic", @@ -172,8 +170,8 @@ static const ConfigParam configParams[] = { {"UIFONT", {.intValue = ThemeConstants::DEFAULT_UIFONT}, FourCC::VarUIFont, - fontOptions, - 2, + ThemeConstants::FONT_NAMES, + ThemeConstants::FONT_COUNT, false}, // {"RESERVED1", ThemeConstants::DEFAULT_RESERVED1, diff --git a/sources/Application/Model/ThemeConstants.h b/sources/Application/Model/ThemeConstants.h index ab9611dc1..0f2ecefcc 100644 --- a/sources/Application/Model/ThemeConstants.h +++ b/sources/Application/Model/ThemeConstants.h @@ -32,7 +32,9 @@ const uint32_t DEFAULT_EMPHASIS = 0xFFA500; // Font constants const int DEFAULT_UIFONT = 0x0; -// Default theme name - using inline to avoid multiple definition errors +const int FONT_COUNT = 3; +inline const char *FONT_NAMES[FONT_COUNT] = {"Regular", "Bold", "Wide"}; + inline const char *DEFAULT_THEME_NAME = "Default"; } // namespace ThemeConstants diff --git a/sources/Application/Views/ThemeView.cpp b/sources/Application/Views/ThemeView.cpp index 76957b0e9..0175cd3d6 100644 --- a/sources/Application/Views/ThemeView.cpp +++ b/sources/Application/Views/ThemeView.cpp @@ -47,7 +47,7 @@ ThemeView::ThemeView(GUIWindow &w, ViewData *data) : FieldView(w, data) { // Font selection position._y = FONT_FIELD_LINE; v = config->FindVariable(FourCC::VarUIFont); - intVarField_.emplace_back(position, *v, "Font: %s", 0, 1, 1, 1); + intVarField_.emplace_back(position, *v, "Font: %s", 0, ThemeConstants::FONT_COUNT - 1, 1, ThemeConstants::FONT_COUNT - 1); fieldList_.insert(fieldList_.end(), &(*intVarField_.rbegin())); (*intVarField_.rbegin()).AddObserver(*this); From 8615acc82c69e3af11512fe119d2722f35c4cdc6 Mon Sep 17 00:00:00 2001 From: nILS Date: Wed, 22 Oct 2025 15:28:04 +0200 Subject: [PATCH 02/10] removes dummy/testing characters --- .../picoTracker/display/font_hourglass.h | 115 ++++++++++++++++-- 1 file changed, 108 insertions(+), 7 deletions(-) diff --git a/sources/Adapters/picoTracker/display/font_hourglass.h b/sources/Adapters/picoTracker/display/font_hourglass.h index 61b2b53a2..570ff9e07 100644 --- a/sources/Adapters/picoTracker/display/font_hourglass.h +++ b/sources/Adapters/picoTracker/display/font_hourglass.h @@ -33,12 +33,12 @@ static const font_t FONT_HOURGLASS_BITMAP = { {0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00}, // . {0x00, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00}, // / - {0x00, 0x1C, 0x22, 0x32, 0x2A, 0x26, 0x22, 0x22, 0x1C, 0x00}, // 0 - {0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff, 0xfff}, // 1 - {0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff}, // 2 - {0xaaa, 0x555, 0xaaa, 0x555, 0xaaa, 0x555, 0xaaa, 0x555, 0xaaa, 0x555}, // 3 - {0xfff, 0x000, 0xfff, 0x000, 0xfff, 0x000, 0xfff, 0x000, 0xfff, 0x000}, // 4 - {0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa, 0xaaa}, // 5 + {0x00, 0x1C, 0x22, 0x32, 0x2A, 0x26, 0x22, 0x1C, 0x00, 0x00}, // 0 + {0x00, 0x08, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // 1 + {0x00, 0x1C, 0x22, 0x20, 0x10, 0x08, 0x04, 0x3E, 0x00, 0x00}, // 2 + {0x00, 0x3E, 0x20, 0x10, 0x18, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 3 + {0x00, 0x30, 0x28, 0x24, 0x22, 0x3E, 0x20, 0x20, 0x00, 0x00}, // 4 + {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 5 {0x00, 0x18, 0x04, 0x02, 0x1E, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 6 {0x00, 0x3E, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x00, 0x00}, // 7 {0x00, 0x1C, 0x22, 0x22, 0x1C, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 8 @@ -77,7 +77,7 @@ static const font_t FONT_HOURGLASS_BITMAP = { {0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x08, 0x00, 0x00}, // Y {0x00, 0x3E, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x00, 0x00}, // Z {0x00, 0x3C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3C, 0x00, 0x00}, // [ - {0x00, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00, 0x00}, // backslash + {0x00, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00, 0x00}, /* \ */ {0x00, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, 0x00}, // ] {0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00}, // ^ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ @@ -115,4 +115,105 @@ static const font_t FONT_HOURGLASS_BITMAP = { {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © }; +// You Squared font from https://damieng.com/zx-origins +// converted to left-to-right pixel format +static const uint16_t FONT_YOU_SQUARED_BITMAP[96][10] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // + {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00}, // ! + {0x00, 0x66, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " + {0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, 0x00}, // # + {0x00, 0x18, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x18, 0x00, 0x00}, // $ + {0x00, 0x66, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x66, 0x00, 0x00}, // % + {0x00, 0x3E, 0x06, 0x66, 0x7C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // & + {0x00, 0x18, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' + {0x00, 0x38, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x00, 0x00}, // ( + {0x00, 0x1C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1C, 0x00, 0x00}, // ) + {0x00, 0x00, 0x14, 0x1C, 0x3E, 0x1C, 0x14, 0x00, 0x00, 0x00}, // * + {0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00}, // + + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1C, 0x00}, // , + {0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . + {0x00, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x00, 0x00}, // / + {0x00, 0x7E, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x7E, 0x00, 0x00}, // 0 + {0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // 1 + {0x00, 0x7E, 0x66, 0x60, 0x7E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // 2 + {0x00, 0x7E, 0x66, 0x60, 0x38, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 3 + {0x00, 0x3E, 0x36, 0x36, 0x36, 0x7E, 0x30, 0x30, 0x00, 0x00}, // 4 + {0x00, 0x7E, 0x06, 0x7E, 0x60, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 5 + {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 6 + {0x00, 0x7E, 0x66, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, 0x00}, // 7 + {0x00, 0x7E, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 8 + {0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 9 + {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, // : + {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x1C, 0x00}, // ; + {0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00}, // < + {0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00}, // = + {0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00}, // > + {0x00, 0x7E, 0x66, 0x60, 0x78, 0x18, 0x00, 0x18, 0x00, 0x00}, // ? + {0x00, 0x7E, 0x66, 0x76, 0x76, 0x76, 0x06, 0x7E, 0x00, 0x00}, // @ + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00, 0x00}, // A + {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // B + {0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x66, 0x7E, 0x00, 0x00}, // C + {0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x00}, // D + {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // E + {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00, 0x00}, // F + {0x00, 0x7E, 0x66, 0x06, 0x76, 0x66, 0x66, 0x7E, 0x00, 0x00}, // G + {0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00}, // H + {0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // I + {0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x7E, 0x00, 0x00}, // J + {0x00, 0x66, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // K + {0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00, 0x00}, // L + {0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x00, 0x00}, // M + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // N + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // O + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00, 0x00}, // P + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x70, 0x00}, // Q + {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // R + {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // S + {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // T + {0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // U + {0x00, 0x66, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // V + {0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // W + {0x00, 0x66, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x00, 0x00}, // X + {0x00, 0x66, 0x66, 0x66, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00}, // Y + {0x00, 0x7E, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x7E, 0x00, 0x00}, // Z + {0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00}, // [ + {0x00, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x60, 0x00, 0x00}, /* \*/ + {0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00}, // ] + {0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C, 0x00, 0x00}, // ^ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ + {0x00, 0x7E, 0x66, 0x06, 0x1E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // £ + {0x00, 0x00, 0x00, 0x7E, 0x60, 0x7E, 0x66, 0x7E, 0x00, 0x00}, // a + {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // b + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x66, 0x7E, 0x00, 0x00}, // c + {0x00, 0x60, 0x60, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // d + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x7E, 0x06, 0x7E, 0x00, 0x00}, // e + {0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00}, // f + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // g + {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // h + {0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // i + {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x7E, 0x00}, // j + {0x00, 0x06, 0x06, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x00, 0x00}, // k + {0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x00, 0x00}, // l + {0x00, 0x00, 0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x00, 0x00}, // m + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // n + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // o + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00}, // p + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x60, 0x00}, // q + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x00, 0x00}, // r + {0x00, 0x00, 0x00, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x00, 0x00}, // s + {0x00, 0x00, 0x0C, 0x7E, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00}, // t + {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // u + {0x00, 0x00, 0x00, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // v + {0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // w + {0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x00, 0x00}, // x + {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // y + {0x00, 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00, 0x00}, // z + {0x00, 0x78, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x78, 0x00, 0x00}, // { + {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // | + {0x00, 0x1E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x1E, 0x00, 0x00}, // } + {0x00, 0x00, 0x00, 0x6E, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ + {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © +}; + #endif //_FONT_HOURGLASS_H \ No newline at end of file From c70682e73a89f508a64b5ce4b11b7c6619e89b53 Mon Sep 17 00:00:00 2001 From: nILS Date: Wed, 22 Oct 2025 15:42:52 +0200 Subject: [PATCH 03/10] font updates --- .../Adapters/picoTracker/display/font_wide.h | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/sources/Adapters/picoTracker/display/font_wide.h b/sources/Adapters/picoTracker/display/font_wide.h index c491c5aef..09a758ec5 100644 --- a/sources/Adapters/picoTracker/display/font_wide.h +++ b/sources/Adapters/picoTracker/display/font_wide.h @@ -3,25 +3,25 @@ #include -// simple 8x8 font by nILS, given to the public domain. +/* 8x8 wide font by nILS, given to the public domain */ -static const font_t FONT_WIDE_BITMAP = { +static const uint16_t FONT_WIDE_BITMAP[96][10] = { {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000, 0x030, 0x000}, // ! {0x000, 0x0CC, 0x0CC, 0x0CC, 0x048, 0x000, 0x000, 0x000, 0x000, 0x000}, // " - {0x000, 0x0C0, 0x1CC, 0x0FC, 0x0CE, 0x0CC, 0x1CC, 0x0FC, 0x0CE, 0x00C}, // # + {0x000, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x000}, // # {0x000, 0x030, 0x0FC, 0x036, 0x0FC, 0x1B0, 0x1B0, 0x0FC, 0x030, 0x000}, // $ {0x000, 0x000, 0x186, 0x0C6, 0x060, 0x030, 0x018, 0x18C, 0x186, 0x000}, // % {0x000, 0x078, 0x0CC, 0x0CC, 0x078, 0x03C, 0x166, 0x0C6, 0x1BC, 0x000}, // & {0x000, 0x180, 0x0C0, 0x060, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ' {0x000, 0x180, 0x0C0, 0x060, 0x060, 0x060, 0x060, 0x0C0, 0x180, 0x000}, // ( {0x000, 0x006, 0x00C, 0x018, 0x018, 0x018, 0x018, 0x00C, 0x006, 0x000}, // ) - {0x000, 0x000, 0x132, 0x0B4, 0x078, 0x1FE, 0x078, 0x0B4, 0x132, 0x000}, // * + {0x000, 0x000, 0x084, 0x0CC, 0x078, 0x1FE, 0x078, 0x0CC, 0x084, 0x000}, // * {0x000, 0x000, 0x030, 0x030, 0x030, 0x1FE, 0x030, 0x030, 0x030, 0x000}, // + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x030, 0x030, 0x018, 0x000}, // , {0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000, 0x000, 0x000, 0x000}, // - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x018, 0x018, 0x000}, // . - {0x000, 0x300, 0x180, 0x0C0, 0x060, 0x030, 0x018, 0x00C, 0x006, 0x000}, // / + {0x000, 0x100, 0x180, 0x0C0, 0x060, 0x030, 0x018, 0x00C, 0x006, 0x000}, // / {0x000, 0x0FC, 0x186, 0x1C6, 0x1A6, 0x196, 0x18E, 0x186, 0x0FC, 0x000}, // 0 {0x000, 0x070, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x000}, // 1 {0x000, 0x0FE, 0x180, 0x180, 0x0FC, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // 2 @@ -70,38 +70,39 @@ static const font_t FONT_WIDE_BITMAP = { {0x000, 0x07C, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x07C, 0x000}, // ] {0x000, 0x020, 0x070, 0x0DC, 0x18E, 0x306, 0x202, 0x000, 0x000, 0x000}, // ^ {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x3FF}, // _ - {0x004, 0x008, 0x010, 0x020, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ` + {0x000, 0x006, 0x00C, 0x018, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ` {0x000, 0x000, 0x000, 0x0F8, 0x180, 0x1FC, 0x186, 0x186, 0x1FC, 0x000}, // a - {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // b + {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // b {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // c {0x000, 0x180, 0x180, 0x1FC, 0x186, 0x186, 0x186, 0x186, 0x1FC, 0x000}, // d {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x1FE, 0x006, 0x186, 0x0FC, 0x000}, // e - {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x006, 0x006, 0x006, 0x01E, 0x006}, // f - {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FC}, // g + {0x000, 0x0F0, 0x018, 0x018, 0x018, 0x018, 0x018, 0x07E, 0x018, 0x018}, // f + {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FC}, // g {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // h {0x000, 0x030, 0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // i - {0x000, 0x180, 0x000, 0x1E0, 0x180, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // j - {0x000, 0x006, 0x006, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x000}, // k - {0x000, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // l + {0x000, 0x0C0, 0x000, 0x0F0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x07E, 0x000}, // j + {0x000, 0x006, 0x006, 0x186, 0x0C6, 0x07E, 0x0C6, 0x186, 0x186, 0x000}, // k + {0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // l {0x000, 0x000, 0x000, 0x0FE, 0x1B6, 0x1B6, 0x186, 0x186, 0x186, 0x000}, // m {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // n {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // o - {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006}, // p - {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180}, // q - {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x006, 0x006, 0x006, 0x006, 0x000}, // r - {0x000, 0x000, 0x000, 0x0FC, 0x006, 0x0FE, 0x180, 0x186, 0x0FC, 0x000}, // s - {0x000, 0x006, 0x006, 0x01E, 0x006, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // t + {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006}, // p + {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180}, // q + {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x006, 0x006, 0x006, 0x006, 0x000}, // r + {0x000, 0x000, 0x000, 0x0FC, 0x006, 0x0FC, 0x180, 0x180, 0x0FE, 0x000}, // s + {0x000, 0x00C, 0x00C, 0x03E, 0x00C, 0x00C, 0x00C, 0x00C, 0x0F8, 0x000}, // t {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // u {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // v {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1B6, 0x1B6, 0x0FC, 0x000}, // w - {0x000, 0x000, 0x000, 0x0CC, 0x0CC, 0x078, 0x0CC, 0x186, 0x186, 0x000}, // x - {0x000, 0x000, 0x000, 0x186, 0x186, 0x1FC, 0x180, 0x186, 0x0FC, 0x000}, // y + {0x000, 0x000, 0x000, 0x186, 0x0CC, 0x078, 0x078, 0x0CC, 0x186, 0x000}, // x + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FE, 0x000}, // y {0x000, 0x000, 0x000, 0x1FC, 0x180, 0x0FC, 0x006, 0x006, 0x1FE, 0x000}, // z - {0x0E0, 0x030, 0x030, 0x030, 0x01C, 0x030, 0x030, 0x070, 0x060, 0x000}, // { - {0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030}, // | - {0x01C, 0x030, 0x030, 0x030, 0x0E0, 0x030, 0x030, 0x038, 0x018, 0x000}, // } - {0x000, 0x000, 0x000, 0x000, 0x23C, 0x1E6, 0x000, 0x000, 0x000, 0x000}, // ~ - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // © + {0x000, 0x0C0, 0x060, 0x060, 0x038, 0x038, 0x060, 0x060, 0x0C0, 0x000}, // { + {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000}, // | + {0x000, 0x00C, 0x018, 0x018, 0x070, 0x070, 0x018, 0x018, 0x00C, 0x000}, // } + {0x000, 0x000, 0x000, 0x018, 0x1BC, 0x0F6, 0x060, 0x000, 0x000, 0x000}, // ~ + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, //  }; -#endif //_FONT_WIDE_H +#endif // FONT_WIDE_H + From b748ddc805bf0ddf724d52c0162498018fb1fb62 Mon Sep 17 00:00:00 2001 From: nILS Date: Mon, 3 Nov 2025 11:08:08 +0100 Subject: [PATCH 04/10] minor font udpates --- .../Adapters/picoTracker/display/font_wide.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sources/Adapters/picoTracker/display/font_wide.h b/sources/Adapters/picoTracker/display/font_wide.h index 09a758ec5..0318ed20c 100644 --- a/sources/Adapters/picoTracker/display/font_wide.h +++ b/sources/Adapters/picoTracker/display/font_wide.h @@ -32,10 +32,10 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { {0x000, 0x1FE, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x000}, // 7 {0x000, 0x0FC, 0x186, 0x186, 0x0FC, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // 8 {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180, 0x0FC, 0x000}, // 9 - {0x000, 0x000, 0x030, 0x030, 0x000, 0x000, 0x030, 0x030, 0x000, 0x000}, // : - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ; + {0x000, 0x000, 0x000, 0x018, 0x018, 0x000, 0x018, 0x018, 0x000, 0x000}, // : + {0x000, 0x000, 0x000, 0x018, 0x018, 0x000, 0x018, 0x018, 0x00C, 0x000}, // ; {0x000, 0x180, 0x0C0, 0x060, 0x030, 0x030, 0x060, 0x0C0, 0x180, 0x000}, // < - {0x000, 0x000, 0x000, 0x000, 0x1FC, 0x000, 0x1FC, 0x000, 0x000, 0x000}, // = + {0x000, 0x000, 0x000, 0x1FC, 0x000, 0x000, 0x1FC, 0x000, 0x000, 0x000}, // = {0x000, 0x006, 0x00C, 0x018, 0x030, 0x030, 0x018, 0x00C, 0x006, 0x000}, // > {0x000, 0x0FC, 0x186, 0x180, 0x0C0, 0x060, 0x060, 0x000, 0x060, 0x000}, // ? {0x000, 0x0FC, 0x186, 0x1B6, 0x196, 0x196, 0x1F6, 0x006, 0x0FC, 0x000}, // @ @@ -65,11 +65,11 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { {0x000, 0x186, 0x186, 0x0CC, 0x078, 0x0CC, 0x186, 0x186, 0x186, 0x000}, // X {0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x030, 0x030, 0x000}, // Y {0x000, 0x1FE, 0x180, 0x0C0, 0x070, 0x018, 0x00C, 0x006, 0x1FE, 0x000}, // Z - {0x000, 0x07C, 0x01C, 0x01C, 0x01C, 0x01C, 0x01C, 0x01C, 0x07C, 0x000}, // [ - {0x000, 0x000, 0x006, 0x01C, 0x038, 0x030, 0x060, 0x1C0, 0x380, 0x000}, // backslash - {0x000, 0x07C, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x07C, 0x000}, // ] - {0x000, 0x020, 0x070, 0x0DC, 0x18E, 0x306, 0x202, 0x000, 0x000, 0x000}, // ^ - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x3FF}, // _ + {0x000, 0x078, 0x018, 0x018, 0x018, 0x018, 0x018, 0x018, 0x078, 0x000}, // [ + {0x000, 0x002, 0x006, 0x00C, 0x018, 0x030, 0x060, 0x0C0, 0x180, 0x000}, // backslash + {0x000, 0x078, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x078, 0x000}, // ] + {0x000, 0x030, 0x078, 0x0CC, 0x186, 0x102, 0x000, 0x000, 0x000, 0x000}, // ^ + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000}, // _ {0x000, 0x006, 0x00C, 0x018, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ` {0x000, 0x000, 0x000, 0x0F8, 0x180, 0x1FC, 0x186, 0x186, 0x1FC, 0x000}, // a {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // b @@ -90,7 +90,7 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180}, // q {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x006, 0x006, 0x006, 0x006, 0x000}, // r {0x000, 0x000, 0x000, 0x0FC, 0x006, 0x0FC, 0x180, 0x180, 0x0FE, 0x000}, // s - {0x000, 0x00C, 0x00C, 0x03E, 0x00C, 0x00C, 0x00C, 0x00C, 0x0F8, 0x000}, // t + {0x000, 0x00C, 0x00C, 0x03E, 0x00C, 0x00C, 0x00C, 0x18C, 0x0F8, 0x000}, // t {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // u {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // v {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1B6, 0x1B6, 0x0FC, 0x000}, // w From 66ec66aba221102122d913aa7729533bea822480 Mon Sep 17 00:00:00 2001 From: nILS Date: Mon, 3 Nov 2025 11:12:59 +0100 Subject: [PATCH 05/10] removes duplicate font defintitions, adds missing copyright info --- .../Adapters/picoTracker/display/font_bold.h | 9 ++ .../picoTracker/display/font_hourglass.h | 103 ------------------ 2 files changed, 9 insertions(+), 103 deletions(-) diff --git a/sources/Adapters/picoTracker/display/font_bold.h b/sources/Adapters/picoTracker/display/font_bold.h index 280642a7d..46a8dd518 100644 --- a/sources/Adapters/picoTracker/display/font_bold.h +++ b/sources/Adapters/picoTracker/display/font_bold.h @@ -3,6 +3,15 @@ #include +/* + * You Squared font by Damien Guard (https://damieng.com/zx-origins) + * Used in accordance with the informal permission in the project's README. + * Do not redistribute the font itself; this usage only embeds a converted + * bitmap. + * + * SPDX-License-Identifier: LicenseRef-DamienGuard-Custom + */ + // You Squared font from https://damieng.com/zx-origins // converted to left-to-right pixel format diff --git a/sources/Adapters/picoTracker/display/font_hourglass.h b/sources/Adapters/picoTracker/display/font_hourglass.h index 570ff9e07..551287778 100644 --- a/sources/Adapters/picoTracker/display/font_hourglass.h +++ b/sources/Adapters/picoTracker/display/font_hourglass.h @@ -114,106 +114,3 @@ static const font_t FONT_HOURGLASS_BITMAP = { {0x00, 0x2C, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © }; - -// You Squared font from https://damieng.com/zx-origins -// converted to left-to-right pixel format -static const uint16_t FONT_YOU_SQUARED_BITMAP[96][10] = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00}, // ! - {0x00, 0x66, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " - {0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, 0x00}, // # - {0x00, 0x18, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x18, 0x00, 0x00}, // $ - {0x00, 0x66, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x66, 0x00, 0x00}, // % - {0x00, 0x3E, 0x06, 0x66, 0x7C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // & - {0x00, 0x18, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' - {0x00, 0x38, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x00, 0x00}, // ( - {0x00, 0x1C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1C, 0x00, 0x00}, // ) - {0x00, 0x00, 0x14, 0x1C, 0x3E, 0x1C, 0x14, 0x00, 0x00, 0x00}, // * - {0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00}, // + - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1C, 0x00}, // , - {0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . - {0x00, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x00, 0x00}, // / - {0x00, 0x7E, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x7E, 0x00, 0x00}, // 0 - {0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // 1 - {0x00, 0x7E, 0x66, 0x60, 0x7E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // 2 - {0x00, 0x7E, 0x66, 0x60, 0x38, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 3 - {0x00, 0x3E, 0x36, 0x36, 0x36, 0x7E, 0x30, 0x30, 0x00, 0x00}, // 4 - {0x00, 0x7E, 0x06, 0x7E, 0x60, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 5 - {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 6 - {0x00, 0x7E, 0x66, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, 0x00}, // 7 - {0x00, 0x7E, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 8 - {0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 9 - {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, // : - {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x1C, 0x00}, // ; - {0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00}, // < - {0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00}, // = - {0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00}, // > - {0x00, 0x7E, 0x66, 0x60, 0x78, 0x18, 0x00, 0x18, 0x00, 0x00}, // ? - {0x00, 0x7E, 0x66, 0x76, 0x76, 0x76, 0x06, 0x7E, 0x00, 0x00}, // @ - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00, 0x00}, // A - {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // B - {0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x66, 0x7E, 0x00, 0x00}, // C - {0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x00}, // D - {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // E - {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00, 0x00}, // F - {0x00, 0x7E, 0x66, 0x06, 0x76, 0x66, 0x66, 0x7E, 0x00, 0x00}, // G - {0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00}, // H - {0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // I - {0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x7E, 0x00, 0x00}, // J - {0x00, 0x66, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // K - {0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00, 0x00}, // L - {0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x00, 0x00}, // M - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // N - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // O - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00, 0x00}, // P - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x70, 0x00}, // Q - {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // R - {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // S - {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // T - {0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // U - {0x00, 0x66, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // V - {0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // W - {0x00, 0x66, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x00, 0x00}, // X - {0x00, 0x66, 0x66, 0x66, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00}, // Y - {0x00, 0x7E, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x7E, 0x00, 0x00}, // Z - {0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00}, // [ - {0x00, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x60, 0x00, 0x00}, /* \*/ - {0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00}, // ] - {0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C, 0x00, 0x00}, // ^ - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ - {0x00, 0x7E, 0x66, 0x06, 0x1E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // £ - {0x00, 0x00, 0x00, 0x7E, 0x60, 0x7E, 0x66, 0x7E, 0x00, 0x00}, // a - {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // b - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x66, 0x7E, 0x00, 0x00}, // c - {0x00, 0x60, 0x60, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // d - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x7E, 0x06, 0x7E, 0x00, 0x00}, // e - {0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00}, // f - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // g - {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // h - {0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // i - {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x7E, 0x00}, // j - {0x00, 0x06, 0x06, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x00, 0x00}, // k - {0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x00, 0x00}, // l - {0x00, 0x00, 0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x00, 0x00}, // m - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // n - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // o - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00}, // p - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x60, 0x00}, // q - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x00, 0x00}, // r - {0x00, 0x00, 0x00, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x00, 0x00}, // s - {0x00, 0x00, 0x0C, 0x7E, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00}, // t - {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // u - {0x00, 0x00, 0x00, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // v - {0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // w - {0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x00, 0x00}, // x - {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // y - {0x00, 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00, 0x00}, // z - {0x00, 0x78, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x78, 0x00, 0x00}, // { - {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // | - {0x00, 0x1E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x1E, 0x00, 0x00}, // } - {0x00, 0x00, 0x00, 0x6E, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ - {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © -}; - -#endif //_FONT_HOURGLASS_H \ No newline at end of file From fc9496978f40239b70cf44068e759716cb7d26de Mon Sep 17 00:00:00 2001 From: nILS Date: Mon, 3 Nov 2025 11:19:42 +0100 Subject: [PATCH 06/10] clang-format --- sources/Adapters/picoTracker/display/font_bold.h | 2 +- sources/Adapters/picoTracker/display/font_hourglass.h | 2 ++ sources/Adapters/picoTracker/display/font_wide.h | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sources/Adapters/picoTracker/display/font_bold.h b/sources/Adapters/picoTracker/display/font_bold.h index 46a8dd518..eb093f6b1 100644 --- a/sources/Adapters/picoTracker/display/font_bold.h +++ b/sources/Adapters/picoTracker/display/font_bold.h @@ -114,4 +114,4 @@ static const font_t FONT_YOU_SQUARED_BITMAP = { {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © }; -#endif //_FONT_BOLD_H \ No newline at end of file +#endif //_FONT_BOLD_H diff --git a/sources/Adapters/picoTracker/display/font_hourglass.h b/sources/Adapters/picoTracker/display/font_hourglass.h index 551287778..cdf54d785 100644 --- a/sources/Adapters/picoTracker/display/font_hourglass.h +++ b/sources/Adapters/picoTracker/display/font_hourglass.h @@ -114,3 +114,5 @@ static const font_t FONT_HOURGLASS_BITMAP = { {0x00, 0x2C, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © }; + +#endif // _FONT_HOURGLASS_H \ No newline at end of file diff --git a/sources/Adapters/picoTracker/display/font_wide.h b/sources/Adapters/picoTracker/display/font_wide.h index 0318ed20c..679b02770 100644 --- a/sources/Adapters/picoTracker/display/font_wide.h +++ b/sources/Adapters/picoTracker/display/font_wide.h @@ -105,4 +105,3 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { }; #endif // FONT_WIDE_H - From 3c5e6dc4f8e70fe7fb479e8bb916225334d457b3 Mon Sep 17 00:00:00 2001 From: nILS Date: Mon, 3 Nov 2025 11:19:42 +0100 Subject: [PATCH 07/10] clang-format --- sources/Adapters/picoTracker/display/chargfx.c | 2 +- sources/Adapters/picoTracker/display/font.h | 4 ++-- sources/Adapters/picoTracker/display/font_bold.h | 2 +- sources/Adapters/picoTracker/display/font_hourglass.h | 2 ++ sources/Adapters/picoTracker/display/font_wide.h | 6 +++--- sources/Application/Views/ThemeView.cpp | 4 +++- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/sources/Adapters/picoTracker/display/chargfx.c b/sources/Adapters/picoTracker/display/chargfx.c index e7deb7e48..612b35f08 100644 --- a/sources/Adapters/picoTracker/display/chargfx.c +++ b/sources/Adapters/picoTracker/display/chargfx.c @@ -192,7 +192,7 @@ inline void chargfx_draw_sub_region(uint8_t x, uint8_t y, uint8_t width, ili9341_start_writing(); - const font_t *font = fonts[ui_font_index]; + const font_t *font = fonts[ui_font_index]; for (int page = x; page < x + width; page++) { // create one column of screen information diff --git a/sources/Adapters/picoTracker/display/font.h b/sources/Adapters/picoTracker/display/font.h index cc47d3160..8f243ba07 100644 --- a/sources/Adapters/picoTracker/display/font.h +++ b/sources/Adapters/picoTracker/display/font.h @@ -8,12 +8,12 @@ typedef uint16_t font_t[96][10]; -#include "font_hourglass.h" #include "font_bold.h" +#include "font_hourglass.h" #include "font_wide.h" static const font_t *fonts[] = { &FONT_HOURGLASS_BITMAP, &FONT_YOU_SQUARED_BITMAP, &FONT_WIDE_BITMAP, -}; \ No newline at end of file +}; \ No newline at end of file diff --git a/sources/Adapters/picoTracker/display/font_bold.h b/sources/Adapters/picoTracker/display/font_bold.h index 46a8dd518..eb093f6b1 100644 --- a/sources/Adapters/picoTracker/display/font_bold.h +++ b/sources/Adapters/picoTracker/display/font_bold.h @@ -114,4 +114,4 @@ static const font_t FONT_YOU_SQUARED_BITMAP = { {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © }; -#endif //_FONT_BOLD_H \ No newline at end of file +#endif //_FONT_BOLD_H diff --git a/sources/Adapters/picoTracker/display/font_hourglass.h b/sources/Adapters/picoTracker/display/font_hourglass.h index 551287778..cdf54d785 100644 --- a/sources/Adapters/picoTracker/display/font_hourglass.h +++ b/sources/Adapters/picoTracker/display/font_hourglass.h @@ -114,3 +114,5 @@ static const font_t FONT_HOURGLASS_BITMAP = { {0x00, 0x2C, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © }; + +#endif // _FONT_HOURGLASS_H \ No newline at end of file diff --git a/sources/Adapters/picoTracker/display/font_wide.h b/sources/Adapters/picoTracker/display/font_wide.h index 0318ed20c..8e1671031 100644 --- a/sources/Adapters/picoTracker/display/font_wide.h +++ b/sources/Adapters/picoTracker/display/font_wide.h @@ -6,7 +6,7 @@ /* 8x8 wide font by nILS, given to the public domain */ static const uint16_t FONT_WIDE_BITMAP[96][10] = { - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000, 0x030, 0x000}, // ! {0x000, 0x0CC, 0x0CC, 0x0CC, 0x048, 0x000, 0x000, 0x000, 0x000, 0x000}, // " {0x000, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x000}, // # @@ -66,7 +66,8 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { {0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x030, 0x030, 0x000}, // Y {0x000, 0x1FE, 0x180, 0x0C0, 0x070, 0x018, 0x00C, 0x006, 0x1FE, 0x000}, // Z {0x000, 0x078, 0x018, 0x018, 0x018, 0x018, 0x018, 0x018, 0x078, 0x000}, // [ - {0x000, 0x002, 0x006, 0x00C, 0x018, 0x030, 0x060, 0x0C0, 0x180, 0x000}, // backslash + {0x000, 0x002, 0x006, 0x00C, 0x018, 0x030, 0x060, 0x0C0, 0x180, + 0x000}, // backslash {0x000, 0x078, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x078, 0x000}, // ] {0x000, 0x030, 0x078, 0x0CC, 0x186, 0x102, 0x000, 0x000, 0x000, 0x000}, // ^ {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000}, // _ @@ -105,4 +106,3 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { }; #endif // FONT_WIDE_H - diff --git a/sources/Application/Views/ThemeView.cpp b/sources/Application/Views/ThemeView.cpp index 0175cd3d6..db2b4366e 100644 --- a/sources/Application/Views/ThemeView.cpp +++ b/sources/Application/Views/ThemeView.cpp @@ -47,7 +47,9 @@ ThemeView::ThemeView(GUIWindow &w, ViewData *data) : FieldView(w, data) { // Font selection position._y = FONT_FIELD_LINE; v = config->FindVariable(FourCC::VarUIFont); - intVarField_.emplace_back(position, *v, "Font: %s", 0, ThemeConstants::FONT_COUNT - 1, 1, ThemeConstants::FONT_COUNT - 1); + intVarField_.emplace_back(position, *v, "Font: %s", 0, + ThemeConstants::FONT_COUNT - 1, 1, + ThemeConstants::FONT_COUNT - 1); fieldList_.insert(fieldList_.end(), &(*intVarField_.rbegin())); (*intVarField_.rbegin()).AddObserver(*this); From c737011735ca4c0aa5b7da49b4300763e234a045 Mon Sep 17 00:00:00 2001 From: nILS Date: Tue, 4 Nov 2025 20:09:09 +0100 Subject: [PATCH 08/10] comment clean up --- sources/Adapters/picoTracker/display/font_wide.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/Adapters/picoTracker/display/font_wide.h b/sources/Adapters/picoTracker/display/font_wide.h index 8e1671031..22ca45967 100644 --- a/sources/Adapters/picoTracker/display/font_wide.h +++ b/sources/Adapters/picoTracker/display/font_wide.h @@ -67,7 +67,7 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { {0x000, 0x1FE, 0x180, 0x0C0, 0x070, 0x018, 0x00C, 0x006, 0x1FE, 0x000}, // Z {0x000, 0x078, 0x018, 0x018, 0x018, 0x018, 0x018, 0x018, 0x078, 0x000}, // [ {0x000, 0x002, 0x006, 0x00C, 0x018, 0x030, 0x060, 0x0C0, 0x180, - 0x000}, // backslash + 0x000}, /* \ */ {0x000, 0x078, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x078, 0x000}, // ] {0x000, 0x030, 0x078, 0x0CC, 0x186, 0x102, 0x000, 0x000, 0x000, 0x000}, // ^ {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000}, // _ From 9b8a8ecf0103f9126a0dfbc056b2785d1cbed199 Mon Sep 17 00:00:00 2001 From: nILS Date: Wed, 5 Nov 2025 08:55:20 +0100 Subject: [PATCH 09/10] merges font files, improves the font visuals --- sources/Adapters/picoTracker/display/font.h | 329 +++++++++++++++++- .../Adapters/picoTracker/display/font_bold.h | 117 ------- .../picoTracker/display/font_hourglass.h | 118 ------- .../Adapters/picoTracker/display/font_wide.h | 108 ------ 4 files changed, 325 insertions(+), 347 deletions(-) delete mode 100644 sources/Adapters/picoTracker/display/font_bold.h delete mode 100644 sources/Adapters/picoTracker/display/font_hourglass.h delete mode 100644 sources/Adapters/picoTracker/display/font_wide.h diff --git a/sources/Adapters/picoTracker/display/font.h b/sources/Adapters/picoTracker/display/font.h index 8f243ba07..495aadac5 100644 --- a/sources/Adapters/picoTracker/display/font.h +++ b/sources/Adapters/picoTracker/display/font.h @@ -8,12 +8,333 @@ typedef uint16_t font_t[96][10]; -#include "font_bold.h" -#include "font_hourglass.h" -#include "font_wide.h" +/* + * Hourglass font by Damien Guard (https://damieng.com/zx-origins) + * Used in accordance with the informal permission in the project's README. + * Do not redistribute the font itself; this usage only embeds a converted + * bitmap. + * + * SPDX-License-Identifier: LicenseRef-DamienGuard-Custom + */ + +// Hourglass font from https://damieng.com/zx-origins +// used with permission the acknowledgement is included in credits +// converted to left-to-right pixel format + +static const font_t FONT_HOURGLASS_BITMAP = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // + {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00}, // ! + {0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " + {0x00, 0x14, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x14, 0x00, 0x00}, // # + {0x00, 0x08, 0x3C, 0x0A, 0x1C, 0x28, 0x1E, 0x08, 0x00, 0x00}, // $ + {0x00, 0x26, 0x16, 0x10, 0x08, 0x04, 0x34, 0x32, 0x00, 0x00}, // % + {0x00, 0x1C, 0x02, 0x02, 0x3C, 0x12, 0x12, 0x3C, 0x00, 0x00}, // & + {0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' + {0x00, 0x10, 0x08, 0x04, 0x04, 0x04, 0x08, 0x10, 0x00, 0x00}, // ( + {0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x08, 0x04, 0x00, 0x00}, // ) + {0x00, 0x00, 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x00, 0x00, 0x00}, // * + {0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x00}, // + + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x00}, // , + {0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00}, // . + {0x00, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00}, // / + {0x00, 0x1C, 0x22, 0x32, 0x2A, 0x26, 0x22, 0x1C, 0x00, 0x00}, // 0 + {0x00, 0x08, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // 1 + {0x00, 0x1C, 0x22, 0x20, 0x10, 0x08, 0x04, 0x3E, 0x00, 0x00}, // 2 + {0x00, 0x3E, 0x20, 0x10, 0x18, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 3 + {0x00, 0x30, 0x28, 0x24, 0x22, 0x3E, 0x20, 0x20, 0x00, 0x00}, // 4 + {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 5 + {0x00, 0x18, 0x04, 0x02, 0x1E, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 6 + {0x00, 0x3E, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x00, 0x00}, // 7 + {0x00, 0x1C, 0x22, 0x22, 0x1C, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 8 + {0x00, 0x1C, 0x22, 0x22, 0x3C, 0x20, 0x10, 0x0C, 0x00, 0x00}, // 9 + {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00}, // : + {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x04, 0x00}, // ; + {0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00}, // < + {0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00}, // = + {0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00}, // > + {0x00, 0x1C, 0x20, 0x20, 0x10, 0x08, 0x00, 0x08, 0x00, 0x00}, // ? + {0x00, 0x38, 0x44, 0x72, 0x4A, 0x4A, 0x72, 0x04, 0x78, 0x00}, // @ + {0x00, 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x22, 0x00, 0x00}, // A + {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x22, 0x22, 0x1E, 0x00, 0x00}, // B + {0x00, 0x1C, 0x22, 0x02, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // C + {0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // D + {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x3E, 0x00, 0x00}, // E + {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // F + {0x00, 0x3C, 0x02, 0x02, 0x32, 0x22, 0x22, 0x3C, 0x00, 0x00}, // G + {0x00, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00, 0x00}, // H + {0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // I + {0x00, 0x20, 0x20, 0x20, 0x20, 0x22, 0x22, 0x1C, 0x00, 0x00}, // J + {0x00, 0x22, 0x12, 0x0A, 0x06, 0x0A, 0x12, 0x22, 0x00, 0x00}, // K + {0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3E, 0x00, 0x00}, // L + {0x00, 0x41, 0x63, 0x55, 0x49, 0x49, 0x41, 0x41, 0x00, 0x00}, // M + {0x00, 0x22, 0x26, 0x2A, 0x32, 0x22, 0x22, 0x22, 0x00, 0x00}, // N + {0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // O + {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // P + {0x00, 0x1C, 0x22, 0x22, 0x22, 0x2A, 0x12, 0x2C, 0x20, 0x00}, // Q + {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x0A, 0x12, 0x22, 0x00, 0x00}, // R + {0x00, 0x3C, 0x02, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // S + {0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // T + {0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // U + {0x00, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // V + {0x00, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 0x22, 0x00, 0x00}, // W + {0x00, 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, 0x00}, // X + {0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x08, 0x00, 0x00}, // Y + {0x00, 0x3E, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x00, 0x00}, // Z + {0x00, 0x3C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3C, 0x00, 0x00}, // [ + {0x00, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00, 0x00}, /* \*/ + {0x00, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, 0x00}, // ] + {0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00}, // ^ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ + {0x00, 0x38, 0x04, 0x04, 0x1E, 0x04, 0x04, 0x3E, 0x00, 0x00}, // £ + {0x00, 0x00, 0x1C, 0x20, 0x3C, 0x22, 0x22, 0x3C, 0x00, 0x00}, // a + {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // b + {0x00, 0x00, 0x1C, 0x22, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // c + {0x00, 0x20, 0x2C, 0x32, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // d + {0x00, 0x00, 0x1C, 0x22, 0x3E, 0x02, 0x22, 0x1C, 0x00, 0x00}, // e + {0x00, 0x30, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}, // f + {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x3C, 0x20, 0x1C, 0x00}, // g + {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // h + {0x00, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // i + {0x00, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x00}, // j + {0x00, 0x04, 0x24, 0x14, 0x0C, 0x14, 0x24, 0x44, 0x00, 0x00}, // k + {0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // l + {0x00, 0x00, 0x3F, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, 0x00}, // m + {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // n + {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // o + {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x26, 0x1A, 0x02, 0x00}, // p + {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x32, 0x2C, 0x20, 0x00}, // q + {0x00, 0x00, 0x34, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00}, // r + {0x00, 0x00, 0x3C, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // s + {0x00, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00}, // t + {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // u + {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // v + {0x00, 0x00, 0x89, 0x89, 0x52, 0x5A, 0x24, 0x24, 0x00, 0x00}, // w + {0x00, 0x00, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x00, 0x00}, // x + {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x06, 0x00}, // y + {0x00, 0x00, 0x3C, 0x20, 0x10, 0x08, 0x04, 0x3C, 0x00, 0x00}, // z + {0x00, 0x38, 0x08, 0x08, 0x06, 0x08, 0x08, 0x38, 0x00, 0x00}, // { + {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // | + {0x00, 0x0E, 0x08, 0x08, 0x30, 0x08, 0x08, 0x0E, 0x00, 0x00}, // } + {0x00, 0x2C, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ + {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © +}; + +/* + * You Squared font by Damien Guard (https://damieng.com/zx-origins) + * Used in accordance with the informal permission in the project's README. + * Do not redistribute the font itself; this usage only embeds a converted + * bitmap. + * + * SPDX-License-Identifier: LicenseRef-DamienGuard-Custom + */ + +// You Squared font from https://damieng.com/zx-origins +// converted to left-to-right pixel format + +static const font_t FONT_YOU_SQUARED_BITMAP = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // + {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00}, // ! + {0x00, 0x66, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " + {0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, 0x00}, // # + {0x00, 0x18, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x18, 0x00, 0x00}, // $ + {0x00, 0x66, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x66, 0x00, 0x00}, // % + {0x00, 0x3E, 0x06, 0x66, 0x7C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // & + {0x00, 0x18, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' + {0x00, 0x38, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x00, 0x00}, // ( + {0x00, 0x1C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1C, 0x00, 0x00}, // ) + {0x00, 0x00, 0x14, 0x1C, 0x3E, 0x1C, 0x14, 0x00, 0x00, 0x00}, // * + {0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00}, // + + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1C, 0x00}, // , + {0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . + {0x00, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x00, 0x00}, // / + {0x00, 0x7E, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x7E, 0x00, 0x00}, // 0 + {0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // 1 + {0x00, 0x7E, 0x66, 0x60, 0x7E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // 2 + {0x00, 0x7E, 0x66, 0x60, 0x38, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 3 + {0x00, 0x3E, 0x36, 0x36, 0x36, 0x7E, 0x30, 0x30, 0x00, 0x00}, // 4 + {0x00, 0x7E, 0x06, 0x7E, 0x60, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 5 + {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 6 + {0x00, 0x7E, 0x66, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, 0x00}, // 7 + {0x00, 0x7E, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 8 + {0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 9 + {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, // : + {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x1C, 0x00}, // ; + {0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00}, // < + {0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00}, // = + {0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00}, // > + {0x00, 0x7E, 0x66, 0x60, 0x78, 0x18, 0x00, 0x18, 0x00, 0x00}, // ? + {0x00, 0x7E, 0x66, 0x76, 0x76, 0x76, 0x06, 0x7E, 0x00, 0x00}, // @ + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00, 0x00}, // A + {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // B + {0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x66, 0x7E, 0x00, 0x00}, // C + {0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x00}, // D + {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // E + {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00, 0x00}, // F + {0x00, 0x7E, 0x66, 0x06, 0x76, 0x66, 0x66, 0x7E, 0x00, 0x00}, // G + {0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00}, // H + {0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // I + {0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x7E, 0x00, 0x00}, // J + {0x00, 0x66, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // K + {0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00, 0x00}, // L + {0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x00, 0x00}, // M + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // N + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // O + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00, 0x00}, // P + {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x70, 0x00}, // Q + {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // R + {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // S + {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // T + {0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // U + {0x00, 0x66, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // V + {0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // W + {0x00, 0x66, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x00, 0x00}, // X + {0x00, 0x66, 0x66, 0x66, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00}, // Y + {0x00, 0x7E, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x7E, 0x00, 0x00}, // Z + {0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00}, // [ + {0x00, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x60, 0x00, 0x00}, /* \*/ + {0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00}, // ] + {0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C, 0x00, 0x00}, // ^ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ + {0x00, 0x7E, 0x66, 0x06, 0x1E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // £ + {0x00, 0x00, 0x00, 0x7E, 0x60, 0x7E, 0x66, 0x7E, 0x00, 0x00}, // a + {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // b + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x66, 0x7E, 0x00, 0x00}, // c + {0x00, 0x60, 0x60, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // d + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x7E, 0x06, 0x7E, 0x00, 0x00}, // e + {0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00}, // f + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // g + {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // h + {0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // i + {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x7E, 0x00}, // j + {0x00, 0x06, 0x06, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x00, 0x00}, // k + {0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x00, 0x00}, // l + {0x00, 0x00, 0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x00, 0x00}, // m + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // n + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // o + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00}, // p + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x60, 0x00}, // q + {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x00, 0x00}, // r + {0x00, 0x00, 0x00, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x00, 0x00}, // s + {0x00, 0x00, 0x0C, 0x7E, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00}, // t + {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // u + {0x00, 0x00, 0x00, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // v + {0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // w + {0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x00, 0x00}, // x + {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // y + {0x00, 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00, 0x00}, // z + {0x00, 0x78, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x78, 0x00, 0x00}, // { + {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // | + {0x00, 0x1E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x1E, 0x00, 0x00}, // } + {0x00, 0x00, 0x00, 0x6E, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ + {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © +}; + +/* 8x8 wide font by nILS, given to the public domain */ + +static const uint16_t FONT_WIDE_BITMAP[96][10] = { + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // + {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000, 0x030, 0x000}, // ! + {0x000, 0x0CC, 0x0CC, 0x0CC, 0x048, 0x000, 0x000, 0x000, 0x000, 0x000}, // " + {0x000, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x000}, // # + {0x000, 0x030, 0x0FC, 0x036, 0x0FC, 0x1B0, 0x1B0, 0x0FC, 0x030, 0x000}, // $ + {0x000, 0x000, 0x186, 0x0C6, 0x060, 0x030, 0x018, 0x18C, 0x186, 0x000}, // % + {0x000, 0x078, 0x0CC, 0x0CC, 0x078, 0x03C, 0x166, 0x0C6, 0x1BC, 0x000}, // & + {0x000, 0x180, 0x0C0, 0x060, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ' + {0x000, 0x0C0, 0x060, 0x030, 0x030, 0x030, 0x030, 0x060, 0x0C0, 0x000}, // ( + {0x000, 0x00C, 0x018, 0x030, 0x030, 0x030, 0x030, 0x018, 0x00C, 0x000}, // ) + {0x000, 0x000, 0x084, 0x0CC, 0x078, 0x1FE, 0x078, 0x0CC, 0x084, 0x000}, // * + {0x000, 0x000, 0x030, 0x030, 0x030, 0x1FE, 0x030, 0x030, 0x030, 0x000}, // + + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x018, 0x018, 0x00C, 0x000}, // , + {0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000, 0x000, 0x000, 0x000}, // - + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x018, 0x018, 0x000}, // . + {0x000, 0x100, 0x180, 0x0C0, 0x060, 0x030, 0x018, 0x00C, 0x006, 0x000}, // / + {0x000, 0x0FC, 0x186, 0x1C6, 0x1A6, 0x196, 0x18E, 0x186, 0x0FC, 0x000}, // 0 + {0x000, 0x070, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x000}, // 1 + {0x000, 0x0FE, 0x180, 0x180, 0x0FC, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // 2 + {0x000, 0x0FE, 0x180, 0x180, 0x0F8, 0x180, 0x180, 0x180, 0x0FE, 0x000}, // 3 + {0x000, 0x186, 0x186, 0x186, 0x1FE, 0x180, 0x180, 0x180, 0x180, 0x000}, // 4 + {0x000, 0x1FE, 0x006, 0x006, 0x0FE, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // 5 + {0x000, 0x0FC, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // 6 + {0x000, 0x1FE, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x000}, // 7 + {0x000, 0x0FC, 0x186, 0x186, 0x0FC, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // 8 + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180, 0x0FC, 0x000}, // 9 + {0x000, 0x000, 0x000, 0x018, 0x018, 0x000, 0x018, 0x018, 0x000, 0x000}, // : + {0x000, 0x000, 0x000, 0x018, 0x018, 0x000, 0x018, 0x018, 0x00C, 0x000}, // ; + {0x000, 0x060, 0x030, 0x018, 0x00C, 0x00C, 0x018, 0x030, 0x060, 0x000}, // < + {0x000, 0x000, 0x000, 0x1FC, 0x000, 0x000, 0x1FC, 0x000, 0x000, 0x000}, // = + {0x000, 0x018, 0x030, 0x060, 0x0C0, 0x0C0, 0x060, 0x030, 0x018, 0x000}, // > + {0x000, 0x0FC, 0x186, 0x180, 0x0C0, 0x060, 0x060, 0x000, 0x060, 0x000}, // ? + {0x000, 0x0FC, 0x186, 0x1B6, 0x196, 0x196, 0x1F6, 0x006, 0x0FC, 0x000}, // @ + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FE, 0x186, 0x186, 0x186, 0x000}, // A + {0x000, 0x0FE, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // B + {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // C + {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // D + {0x000, 0x1FE, 0x006, 0x006, 0x07E, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // E + {0x000, 0x1FE, 0x006, 0x006, 0x07E, 0x006, 0x006, 0x006, 0x006, 0x000}, // F + {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x1E6, 0x186, 0x186, 0x0FC, 0x000}, // G + {0x000, 0x186, 0x186, 0x186, 0x1FE, 0x186, 0x186, 0x186, 0x186, 0x000}, // H + {0x000, 0x1FE, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x1FE, 0x000}, // I + {0x000, 0x1E0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x0E6, 0x07C, 0x000}, // J + {0x000, 0x186, 0x0C6, 0x066, 0x03E, 0x03E, 0x066, 0x0C6, 0x186, 0x000}, // K + {0x000, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // L + {0x000, 0x186, 0x1CE, 0x1FE, 0x1B6, 0x186, 0x186, 0x186, 0x186, 0x000}, // M + {0x000, 0x186, 0x18E, 0x19E, 0x1BE, 0x1F6, 0x1E6, 0x1C6, 0x186, 0x000}, // N + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // O + {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006, 0x006, 0x000}, // P + {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x136, 0x066, 0x0DC, 0x000}, // Q + {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x000}, // R + {0x000, 0x0FC, 0x186, 0x006, 0x0FC, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // S + {0x000, 0x1FE, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000}, // T + {0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // U + {0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // V + {0x000, 0x186, 0x186, 0x186, 0x186, 0x1B6, 0x1FE, 0x1CE, 0x186, 0x000}, // W + {0x000, 0x186, 0x186, 0x0CC, 0x078, 0x0CC, 0x186, 0x186, 0x186, 0x000}, // X + {0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x030, 0x030, 0x000}, // Y + {0x000, 0x1FE, 0x180, 0x0C0, 0x070, 0x018, 0x00C, 0x006, 0x1FE, 0x000}, // Z + {0x000, 0x0F0, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x0F0, 0x000}, // [ + {0x000, 0x002, 0x006, 0x00C, 0x018, 0x030, 0x060, 0x0C0, 0x180, + 0x000}, /* \*/ + {0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x03C, 0x000}, // ] + {0x000, 0x030, 0x078, 0x0CC, 0x186, 0x102, 0x000, 0x000, 0x000, 0x000}, // ^ + {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000}, // _ + {0x000, 0x006, 0x00C, 0x018, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ` + {0x000, 0x000, 0x000, 0x0F8, 0x180, 0x1FC, 0x186, 0x186, 0x1FC, 0x000}, // a + {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // b + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // c + {0x000, 0x180, 0x180, 0x1FC, 0x186, 0x186, 0x186, 0x186, 0x1FC, 0x000}, // d + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x1FE, 0x006, 0x186, 0x0FC, 0x000}, // e + {0x000, 0x0F0, 0x018, 0x018, 0x018, 0x018, 0x018, 0x07E, 0x018, 0x018}, // f + {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FC}, // g + {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // h + {0x000, 0x030, 0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // i + {0x000, 0x0C0, 0x000, 0x0F0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x07E, 0x000}, // j + {0x000, 0x006, 0x006, 0x186, 0x0C6, 0x07E, 0x0C6, 0x186, 0x186, 0x000}, // k + {0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // l + {0x000, 0x000, 0x000, 0x0FE, 0x1B6, 0x1B6, 0x186, 0x186, 0x186, 0x000}, // m + {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // n + {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // o + {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006}, // p + {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180}, // q + {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x006, 0x006, 0x006, 0x006, 0x000}, // r + {0x000, 0x000, 0x000, 0x0FC, 0x006, 0x0FC, 0x180, 0x180, 0x0FE, 0x000}, // s + {0x000, 0x00C, 0x00C, 0x03E, 0x00C, 0x00C, 0x00C, 0x18C, 0x0F8, 0x000}, // t + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // u + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // v + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1B6, 0x1B6, 0x0FC, 0x000}, // w + {0x000, 0x000, 0x000, 0x186, 0x0CC, 0x078, 0x078, 0x0CC, 0x186, 0x000}, // x + {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FE, 0x000}, // y + {0x000, 0x000, 0x000, 0x1FC, 0x180, 0x0FC, 0x006, 0x006, 0x1FE, 0x000}, // z + {0x000, 0x0C0, 0x060, 0x060, 0x038, 0x038, 0x060, 0x060, 0x0C0, 0x000}, // { + {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000}, // | + {0x000, 0x00C, 0x018, 0x018, 0x070, 0x070, 0x018, 0x018, 0x00C, 0x000}, // } + {0x000, 0x000, 0x000, 0x018, 0x1BC, 0x0F6, 0x060, 0x000, 0x000, 0x000}, // ~ + {0x000, 0x078, 0x084, 0x132, 0x10A, 0x10A, 0x132, 0x084, 0x078, 0x000}, //  +}; static const font_t *fonts[] = { &FONT_HOURGLASS_BITMAP, &FONT_YOU_SQUARED_BITMAP, &FONT_WIDE_BITMAP, -}; \ No newline at end of file +}; diff --git a/sources/Adapters/picoTracker/display/font_bold.h b/sources/Adapters/picoTracker/display/font_bold.h deleted file mode 100644 index eb093f6b1..000000000 --- a/sources/Adapters/picoTracker/display/font_bold.h +++ /dev/null @@ -1,117 +0,0 @@ -#ifndef _FONT_BOLD_H -#define _FONT_BOLD_H - -#include - -/* - * You Squared font by Damien Guard (https://damieng.com/zx-origins) - * Used in accordance with the informal permission in the project's README. - * Do not redistribute the font itself; this usage only embeds a converted - * bitmap. - * - * SPDX-License-Identifier: LicenseRef-DamienGuard-Custom - */ - -// You Squared font from https://damieng.com/zx-origins -// converted to left-to-right pixel format - -static const font_t FONT_YOU_SQUARED_BITMAP = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00}, // ! - {0x00, 0x66, 0x66, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " - {0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, 0x00}, // # - {0x00, 0x18, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x18, 0x00, 0x00}, // $ - {0x00, 0x66, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x66, 0x00, 0x00}, // % - {0x00, 0x3E, 0x06, 0x66, 0x7C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // & - {0x00, 0x18, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' - {0x00, 0x38, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x38, 0x00, 0x00}, // ( - {0x00, 0x1C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1C, 0x00, 0x00}, // ) - {0x00, 0x00, 0x14, 0x1C, 0x3E, 0x1C, 0x14, 0x00, 0x00, 0x00}, // * - {0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00}, // + - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1C, 0x00}, // , - {0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00}, // . - {0x00, 0x60, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x06, 0x00, 0x00}, // / - {0x00, 0x7E, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x7E, 0x00, 0x00}, // 0 - {0x00, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // 1 - {0x00, 0x7E, 0x66, 0x60, 0x7E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // 2 - {0x00, 0x7E, 0x66, 0x60, 0x38, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 3 - {0x00, 0x3E, 0x36, 0x36, 0x36, 0x7E, 0x30, 0x30, 0x00, 0x00}, // 4 - {0x00, 0x7E, 0x06, 0x7E, 0x60, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 5 - {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 6 - {0x00, 0x7E, 0x66, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, 0x00}, // 7 - {0x00, 0x7E, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x7E, 0x00, 0x00}, // 8 - {0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // 9 - {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, // : - {0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x1C, 0x00}, // ; - {0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00}, // < - {0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00}, // = - {0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00}, // > - {0x00, 0x7E, 0x66, 0x60, 0x78, 0x18, 0x00, 0x18, 0x00, 0x00}, // ? - {0x00, 0x7E, 0x66, 0x76, 0x76, 0x76, 0x06, 0x7E, 0x00, 0x00}, // @ - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00, 0x00}, // A - {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x7E, 0x00, 0x00}, // B - {0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x66, 0x7E, 0x00, 0x00}, // C - {0x00, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x00}, // D - {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // E - {0x00, 0x7E, 0x06, 0x06, 0x3E, 0x06, 0x06, 0x06, 0x00, 0x00}, // F - {0x00, 0x7E, 0x66, 0x06, 0x76, 0x66, 0x66, 0x7E, 0x00, 0x00}, // G - {0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, 0x00}, // H - {0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00}, // I - {0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x7E, 0x00, 0x00}, // J - {0x00, 0x66, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // K - {0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x7E, 0x00, 0x00}, // L - {0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x63, 0x63, 0x00, 0x00}, // M - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // N - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // O - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00, 0x00}, // P - {0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x70, 0x00}, // Q - {0x00, 0x7E, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x66, 0x00, 0x00}, // R - {0x00, 0x7E, 0x66, 0x06, 0x7E, 0x60, 0x66, 0x7E, 0x00, 0x00}, // S - {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // T - {0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // U - {0x00, 0x66, 0x66, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // V - {0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // W - {0x00, 0x66, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x66, 0x00, 0x00}, // X - {0x00, 0x66, 0x66, 0x66, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00}, // Y - {0x00, 0x7E, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x7E, 0x00, 0x00}, // Z - {0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00}, // [ - {0x00, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x60, 0x00, 0x00}, /* \*/ - {0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00}, // ] - {0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C, 0x00, 0x00}, // ^ - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ - {0x00, 0x7E, 0x66, 0x06, 0x1E, 0x06, 0x06, 0x7E, 0x00, 0x00}, // £ - {0x00, 0x00, 0x00, 0x7E, 0x60, 0x7E, 0x66, 0x7E, 0x00, 0x00}, // a - {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // b - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x66, 0x7E, 0x00, 0x00}, // c - {0x00, 0x60, 0x60, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // d - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x7E, 0x06, 0x7E, 0x00, 0x00}, // e - {0x00, 0x00, 0x7C, 0x0C, 0x0C, 0x3E, 0x0C, 0x0C, 0x0C, 0x00}, // f - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // g - {0x00, 0x06, 0x06, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // h - {0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // i - {0x00, 0x60, 0x00, 0x60, 0x60, 0x60, 0x60, 0x66, 0x7E, 0x00}, // j - {0x00, 0x06, 0x06, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x00, 0x00}, // k - {0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0x00, 0x00}, // l - {0x00, 0x00, 0x00, 0x7F, 0x6B, 0x6B, 0x6B, 0x63, 0x00, 0x00}, // m - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00}, // n - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // o - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x06, 0x06, 0x00}, // p - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x66, 0x7E, 0x60, 0x60, 0x00}, // q - {0x00, 0x00, 0x00, 0x7E, 0x66, 0x06, 0x06, 0x06, 0x00, 0x00}, // r - {0x00, 0x00, 0x00, 0x7E, 0x06, 0x7E, 0x60, 0x7E, 0x00, 0x00}, // s - {0x00, 0x00, 0x0C, 0x7E, 0x0C, 0x0C, 0x0C, 0x7C, 0x00, 0x00}, // t - {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00, 0x00}, // u - {0x00, 0x00, 0x00, 0x66, 0x66, 0x36, 0x1E, 0x0E, 0x00, 0x00}, // v - {0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x00, 0x00}, // w - {0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x00, 0x00}, // x - {0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x7E, 0x60, 0x7E, 0x00}, // y - {0x00, 0x00, 0x00, 0x7E, 0x30, 0x18, 0x0C, 0x7E, 0x00, 0x00}, // z - {0x00, 0x78, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x78, 0x00, 0x00}, // { - {0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00}, // | - {0x00, 0x1E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x1E, 0x00, 0x00}, // } - {0x00, 0x00, 0x00, 0x6E, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ - {0x00, 0x3C, 0x42, 0xBD, 0x8D, 0x8D, 0xBD, 0x42, 0x3C, 0x00} // © -}; - -#endif //_FONT_BOLD_H diff --git a/sources/Adapters/picoTracker/display/font_hourglass.h b/sources/Adapters/picoTracker/display/font_hourglass.h deleted file mode 100644 index cdf54d785..000000000 --- a/sources/Adapters/picoTracker/display/font_hourglass.h +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef _FONT_HOURGLASS_H -#define _FONT_HOURGLASS_H - -#include - -/* - * Hourglass font by Damien Guard (https://damieng.com/zx-origins) - * Used in accordance with the informal permission in the project's README. - * Do not redistribute the font itself; this usage only embeds a converted - * bitmap. - * - * SPDX-License-Identifier: LicenseRef-DamienGuard-Custom - */ - -// Hourglass font from https://damieng.com/zx-origins -// used with permission the acknowledgement is included in credits -// converted to left-to-right pixel format - -static const font_t FONT_HOURGLASS_BITMAP = { - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // - {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, 0x00}, // ! - {0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // " - {0x00, 0x14, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x14, 0x00, 0x00}, // # - {0x00, 0x08, 0x3C, 0x0A, 0x1C, 0x28, 0x1E, 0x08, 0x00, 0x00}, // $ - {0x00, 0x26, 0x16, 0x10, 0x08, 0x04, 0x34, 0x32, 0x00, 0x00}, // % - {0x00, 0x1C, 0x02, 0x02, 0x3C, 0x12, 0x12, 0x3C, 0x00, 0x00}, // & - {0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ' - {0x00, 0x10, 0x08, 0x04, 0x04, 0x04, 0x08, 0x10, 0x00, 0x00}, // ( - {0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x08, 0x04, 0x00, 0x00}, // ) - {0x00, 0x00, 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x00, 0x00, 0x00}, // * - {0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x00}, // + - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x02, 0x00}, // , - {0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00}, // - - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00}, // . - {0x00, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00}, // / - {0x00, 0x1C, 0x22, 0x32, 0x2A, 0x26, 0x22, 0x1C, 0x00, 0x00}, // 0 - {0x00, 0x08, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // 1 - {0x00, 0x1C, 0x22, 0x20, 0x10, 0x08, 0x04, 0x3E, 0x00, 0x00}, // 2 - {0x00, 0x3E, 0x20, 0x10, 0x18, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 3 - {0x00, 0x30, 0x28, 0x24, 0x22, 0x3E, 0x20, 0x20, 0x00, 0x00}, // 4 - {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x20, 0x20, 0x1E, 0x00, 0x00}, // 5 - {0x00, 0x18, 0x04, 0x02, 0x1E, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 6 - {0x00, 0x3E, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x00, 0x00}, // 7 - {0x00, 0x1C, 0x22, 0x22, 0x1C, 0x22, 0x22, 0x1C, 0x00, 0x00}, // 8 - {0x00, 0x1C, 0x22, 0x22, 0x3C, 0x20, 0x10, 0x0C, 0x00, 0x00}, // 9 - {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00}, // : - {0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x08, 0x04, 0x00}, // ; - {0x00, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00}, // < - {0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00}, // = - {0x00, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, 0x00}, // > - {0x00, 0x1C, 0x20, 0x20, 0x10, 0x08, 0x00, 0x08, 0x00, 0x00}, // ? - {0x00, 0x38, 0x44, 0x72, 0x4A, 0x4A, 0x72, 0x04, 0x78, 0x00}, // @ - {0x00, 0x08, 0x08, 0x14, 0x14, 0x3E, 0x22, 0x22, 0x00, 0x00}, // A - {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x22, 0x22, 0x1E, 0x00, 0x00}, // B - {0x00, 0x1C, 0x22, 0x02, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // C - {0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // D - {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x3E, 0x00, 0x00}, // E - {0x00, 0x3E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // F - {0x00, 0x3C, 0x02, 0x02, 0x32, 0x22, 0x22, 0x3C, 0x00, 0x00}, // G - {0x00, 0x22, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x22, 0x00, 0x00}, // H - {0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00}, // I - {0x00, 0x20, 0x20, 0x20, 0x20, 0x22, 0x22, 0x1C, 0x00, 0x00}, // J - {0x00, 0x22, 0x12, 0x0A, 0x06, 0x0A, 0x12, 0x22, 0x00, 0x00}, // K - {0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3E, 0x00, 0x00}, // L - {0x00, 0x41, 0x63, 0x55, 0x49, 0x49, 0x41, 0x41, 0x00, 0x00}, // M - {0x00, 0x22, 0x26, 0x2A, 0x32, 0x22, 0x22, 0x22, 0x00, 0x00}, // N - {0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // O - {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00}, // P - {0x00, 0x1C, 0x22, 0x22, 0x22, 0x2A, 0x12, 0x2C, 0x20, 0x00}, // Q - {0x00, 0x1E, 0x22, 0x22, 0x1E, 0x0A, 0x12, 0x22, 0x00, 0x00}, // R - {0x00, 0x3C, 0x02, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // S - {0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // T - {0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // U - {0x00, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // V - {0x00, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 0x22, 0x00, 0x00}, // W - {0x00, 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, 0x00}, // X - {0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x08, 0x00, 0x00}, // Y - {0x00, 0x3E, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x00, 0x00}, // Z - {0x00, 0x3C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x3C, 0x00, 0x00}, // [ - {0x00, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x00, 0x00}, /* \ */ - {0x00, 0x3C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, 0x00}, // ] - {0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00}, // ^ - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, // _ - {0x00, 0x38, 0x04, 0x04, 0x1E, 0x04, 0x04, 0x3E, 0x00, 0x00}, // £ - {0x00, 0x00, 0x1C, 0x20, 0x3C, 0x22, 0x22, 0x3C, 0x00, 0x00}, // a - {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x1E, 0x00, 0x00}, // b - {0x00, 0x00, 0x1C, 0x22, 0x02, 0x02, 0x22, 0x1C, 0x00, 0x00}, // c - {0x00, 0x20, 0x2C, 0x32, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // d - {0x00, 0x00, 0x1C, 0x22, 0x3E, 0x02, 0x22, 0x1C, 0x00, 0x00}, // e - {0x00, 0x30, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00}, // f - {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x3C, 0x20, 0x1C, 0x00}, // g - {0x00, 0x02, 0x1A, 0x26, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // h - {0x00, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // i - {0x00, 0x00, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x00}, // j - {0x00, 0x04, 0x24, 0x14, 0x0C, 0x14, 0x24, 0x44, 0x00, 0x00}, // k - {0x00, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // l - {0x00, 0x00, 0x3F, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, 0x00}, // m - {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x00, 0x00}, // n - {0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x1C, 0x00, 0x00}, // o - {0x00, 0x00, 0x1E, 0x22, 0x22, 0x22, 0x26, 0x1A, 0x02, 0x00}, // p - {0x00, 0x00, 0x3C, 0x22, 0x22, 0x22, 0x32, 0x2C, 0x20, 0x00}, // q - {0x00, 0x00, 0x34, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00}, // r - {0x00, 0x00, 0x3C, 0x02, 0x1C, 0x20, 0x20, 0x1E, 0x00, 0x00}, // s - {0x00, 0x08, 0x3C, 0x08, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00}, // t - {0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, 0x3C, 0x00, 0x00}, // u - {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00}, // v - {0x00, 0x00, 0x89, 0x89, 0x52, 0x5A, 0x24, 0x24, 0x00, 0x00}, // w - {0x00, 0x00, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x00, 0x00}, // x - {0x00, 0x00, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x06, 0x00}, // y - {0x00, 0x00, 0x3C, 0x20, 0x10, 0x08, 0x04, 0x3C, 0x00, 0x00}, // z - {0x00, 0x38, 0x08, 0x08, 0x06, 0x08, 0x08, 0x38, 0x00, 0x00}, // { - {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // | - {0x00, 0x0E, 0x08, 0x08, 0x30, 0x08, 0x08, 0x0E, 0x00, 0x00}, // } - {0x00, 0x2C, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~ - {0x00, 0x3C, 0x42, 0x99, 0xA5, 0x85, 0xB9, 0x42, 0x3C, 0x00} // © -}; - -#endif // _FONT_HOURGLASS_H \ No newline at end of file diff --git a/sources/Adapters/picoTracker/display/font_wide.h b/sources/Adapters/picoTracker/display/font_wide.h deleted file mode 100644 index 22ca45967..000000000 --- a/sources/Adapters/picoTracker/display/font_wide.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef _FONT_WIDE_H -#define _FONT_WIDE_H - -#include - -/* 8x8 wide font by nILS, given to the public domain */ - -static const uint16_t FONT_WIDE_BITMAP[96][10] = { - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // - {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000, 0x030, 0x000}, // ! - {0x000, 0x0CC, 0x0CC, 0x0CC, 0x048, 0x000, 0x000, 0x000, 0x000, 0x000}, // " - {0x000, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x1FE, 0x0CC, 0x0CC, 0x000}, // # - {0x000, 0x030, 0x0FC, 0x036, 0x0FC, 0x1B0, 0x1B0, 0x0FC, 0x030, 0x000}, // $ - {0x000, 0x000, 0x186, 0x0C6, 0x060, 0x030, 0x018, 0x18C, 0x186, 0x000}, // % - {0x000, 0x078, 0x0CC, 0x0CC, 0x078, 0x03C, 0x166, 0x0C6, 0x1BC, 0x000}, // & - {0x000, 0x180, 0x0C0, 0x060, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ' - {0x000, 0x180, 0x0C0, 0x060, 0x060, 0x060, 0x060, 0x0C0, 0x180, 0x000}, // ( - {0x000, 0x006, 0x00C, 0x018, 0x018, 0x018, 0x018, 0x00C, 0x006, 0x000}, // ) - {0x000, 0x000, 0x084, 0x0CC, 0x078, 0x1FE, 0x078, 0x0CC, 0x084, 0x000}, // * - {0x000, 0x000, 0x030, 0x030, 0x030, 0x1FE, 0x030, 0x030, 0x030, 0x000}, // + - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x030, 0x030, 0x018, 0x000}, // , - {0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000, 0x000, 0x000, 0x000}, // - - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x018, 0x018, 0x000}, // . - {0x000, 0x100, 0x180, 0x0C0, 0x060, 0x030, 0x018, 0x00C, 0x006, 0x000}, // / - {0x000, 0x0FC, 0x186, 0x1C6, 0x1A6, 0x196, 0x18E, 0x186, 0x0FC, 0x000}, // 0 - {0x000, 0x070, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x000}, // 1 - {0x000, 0x0FE, 0x180, 0x180, 0x0FC, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // 2 - {0x000, 0x0FE, 0x180, 0x180, 0x0F8, 0x180, 0x180, 0x180, 0x0FE, 0x000}, // 3 - {0x000, 0x186, 0x186, 0x186, 0x1FE, 0x180, 0x180, 0x180, 0x180, 0x000}, // 4 - {0x000, 0x1FE, 0x006, 0x006, 0x0FE, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // 5 - {0x000, 0x0FC, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // 6 - {0x000, 0x1FE, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x180, 0x000}, // 7 - {0x000, 0x0FC, 0x186, 0x186, 0x0FC, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // 8 - {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180, 0x0FC, 0x000}, // 9 - {0x000, 0x000, 0x000, 0x018, 0x018, 0x000, 0x018, 0x018, 0x000, 0x000}, // : - {0x000, 0x000, 0x000, 0x018, 0x018, 0x000, 0x018, 0x018, 0x00C, 0x000}, // ; - {0x000, 0x180, 0x0C0, 0x060, 0x030, 0x030, 0x060, 0x0C0, 0x180, 0x000}, // < - {0x000, 0x000, 0x000, 0x1FC, 0x000, 0x000, 0x1FC, 0x000, 0x000, 0x000}, // = - {0x000, 0x006, 0x00C, 0x018, 0x030, 0x030, 0x018, 0x00C, 0x006, 0x000}, // > - {0x000, 0x0FC, 0x186, 0x180, 0x0C0, 0x060, 0x060, 0x000, 0x060, 0x000}, // ? - {0x000, 0x0FC, 0x186, 0x1B6, 0x196, 0x196, 0x1F6, 0x006, 0x0FC, 0x000}, // @ - {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x1FE, 0x186, 0x186, 0x186, 0x000}, // A - {0x000, 0x0FE, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // B - {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // C - {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // D - {0x000, 0x1FE, 0x006, 0x006, 0x07E, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // E - {0x000, 0x1FE, 0x006, 0x006, 0x07E, 0x006, 0x006, 0x006, 0x006, 0x000}, // F - {0x000, 0x0FC, 0x186, 0x006, 0x006, 0x1E6, 0x186, 0x186, 0x0FC, 0x000}, // G - {0x000, 0x186, 0x186, 0x186, 0x1FE, 0x186, 0x186, 0x186, 0x186, 0x000}, // H - {0x000, 0x1FE, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x1FE, 0x000}, // I - {0x000, 0x1E0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x0E6, 0x07C, 0x000}, // J - {0x000, 0x186, 0x0C6, 0x066, 0x03E, 0x03E, 0x066, 0x0C6, 0x186, 0x000}, // K - {0x000, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x006, 0x1FE, 0x000}, // L - {0x000, 0x186, 0x1CE, 0x1FE, 0x1B6, 0x186, 0x186, 0x186, 0x186, 0x000}, // M - {0x000, 0x186, 0x18E, 0x19E, 0x1BE, 0x1F6, 0x1E6, 0x1C6, 0x186, 0x000}, // N - {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // O - {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006, 0x006, 0x000}, // P - {0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x136, 0x066, 0x0DC, 0x000}, // Q - {0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x186, 0x186, 0x186, 0x000}, // R - {0x000, 0x0FC, 0x186, 0x006, 0x0FC, 0x180, 0x180, 0x186, 0x0FC, 0x000}, // S - {0x000, 0x1FE, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000}, // T - {0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // U - {0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // V - {0x000, 0x186, 0x186, 0x186, 0x186, 0x1B6, 0x1FE, 0x1CE, 0x186, 0x000}, // W - {0x000, 0x186, 0x186, 0x0CC, 0x078, 0x0CC, 0x186, 0x186, 0x186, 0x000}, // X - {0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x030, 0x030, 0x000}, // Y - {0x000, 0x1FE, 0x180, 0x0C0, 0x070, 0x018, 0x00C, 0x006, 0x1FE, 0x000}, // Z - {0x000, 0x078, 0x018, 0x018, 0x018, 0x018, 0x018, 0x018, 0x078, 0x000}, // [ - {0x000, 0x002, 0x006, 0x00C, 0x018, 0x030, 0x060, 0x0C0, 0x180, - 0x000}, /* \ */ - {0x000, 0x078, 0x060, 0x060, 0x060, 0x060, 0x060, 0x060, 0x078, 0x000}, // ] - {0x000, 0x030, 0x078, 0x0CC, 0x186, 0x102, 0x000, 0x000, 0x000, 0x000}, // ^ - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x1FE, 0x000}, // _ - {0x000, 0x006, 0x00C, 0x018, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, // ` - {0x000, 0x000, 0x000, 0x0F8, 0x180, 0x1FC, 0x186, 0x186, 0x1FC, 0x000}, // a - {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x0FE, 0x000}, // b - {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // c - {0x000, 0x180, 0x180, 0x1FC, 0x186, 0x186, 0x186, 0x186, 0x1FC, 0x000}, // d - {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x1FE, 0x006, 0x186, 0x0FC, 0x000}, // e - {0x000, 0x0F0, 0x018, 0x018, 0x018, 0x018, 0x018, 0x07E, 0x018, 0x018}, // f - {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FC}, // g - {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // h - {0x000, 0x030, 0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // i - {0x000, 0x0C0, 0x000, 0x0F0, 0x0C0, 0x0C0, 0x0C0, 0x0C0, 0x07E, 0x000}, // j - {0x000, 0x006, 0x006, 0x186, 0x0C6, 0x07E, 0x0C6, 0x186, 0x186, 0x000}, // k - {0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // l - {0x000, 0x000, 0x000, 0x0FE, 0x1B6, 0x1B6, 0x186, 0x186, 0x186, 0x000}, // m - {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // n - {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // o - {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x186, 0x186, 0x0FE, 0x006, 0x006}, // p - {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x180}, // q - {0x000, 0x000, 0x000, 0x0FE, 0x186, 0x006, 0x006, 0x006, 0x006, 0x000}, // r - {0x000, 0x000, 0x000, 0x0FC, 0x006, 0x0FC, 0x180, 0x180, 0x0FE, 0x000}, // s - {0x000, 0x00C, 0x00C, 0x03E, 0x00C, 0x00C, 0x00C, 0x18C, 0x0F8, 0x000}, // t - {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x186, 0x186, 0x0FC, 0x000}, // u - {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x0CC, 0x078, 0x030, 0x000}, // v - {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1B6, 0x1B6, 0x0FC, 0x000}, // w - {0x000, 0x000, 0x000, 0x186, 0x0CC, 0x078, 0x078, 0x0CC, 0x186, 0x000}, // x - {0x000, 0x000, 0x000, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FE, 0x000}, // y - {0x000, 0x000, 0x000, 0x1FC, 0x180, 0x0FC, 0x006, 0x006, 0x1FE, 0x000}, // z - {0x000, 0x0C0, 0x060, 0x060, 0x038, 0x038, 0x060, 0x060, 0x0C0, 0x000}, // { - {0x000, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x030, 0x000}, // | - {0x000, 0x00C, 0x018, 0x018, 0x070, 0x070, 0x018, 0x018, 0x00C, 0x000}, // } - {0x000, 0x000, 0x000, 0x018, 0x1BC, 0x0F6, 0x060, 0x000, 0x000, 0x000}, // ~ - {0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000}, //  -}; - -#endif // FONT_WIDE_H From 02c58e5bbbf20935f007a9d090aca8b46c33b890 Mon Sep 17 00:00:00 2001 From: nILS Date: Thu, 6 Nov 2025 09:34:56 +0100 Subject: [PATCH 10/10] improves lower case f --- sources/Adapters/picoTracker/display/font.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/Adapters/picoTracker/display/font.h b/sources/Adapters/picoTracker/display/font.h index 495aadac5..b99309bea 100644 --- a/sources/Adapters/picoTracker/display/font.h +++ b/sources/Adapters/picoTracker/display/font.h @@ -305,7 +305,7 @@ static const uint16_t FONT_WIDE_BITMAP[96][10] = { {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x006, 0x006, 0x186, 0x0FC, 0x000}, // c {0x000, 0x180, 0x180, 0x1FC, 0x186, 0x186, 0x186, 0x186, 0x1FC, 0x000}, // d {0x000, 0x000, 0x000, 0x0FC, 0x186, 0x1FE, 0x006, 0x186, 0x0FC, 0x000}, // e - {0x000, 0x0F0, 0x018, 0x018, 0x018, 0x018, 0x018, 0x07E, 0x018, 0x018}, // f + {0x000, 0x0F0, 0x198, 0x018, 0x018, 0x07C, 0x018, 0x018, 0x018, 0x000}, // f {0x000, 0x000, 0x000, 0x1FC, 0x186, 0x186, 0x186, 0x1FC, 0x180, 0x0FC}, // g {0x000, 0x006, 0x006, 0x0FE, 0x186, 0x186, 0x186, 0x186, 0x186, 0x000}, // h {0x000, 0x030, 0x000, 0x03C, 0x030, 0x030, 0x030, 0x030, 0x0FC, 0x000}, // i