From d3000206d6d780a6cd0d2d21750ae1c169a7dc8d Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Fri, 20 Oct 2023 14:09:12 +0100 Subject: [PATCH] Added fagci's teeny teeny font --- Makefile | 6 +- app/aircopy.c | 11 +- app/main.c | 156 +++++++------- bitmaps.c | 20 -- bitmaps.h | 4 - firmware.bin | Bin 60712 -> 0 bytes firmware.packed.bin | Bin 60730 -> 0 bytes font.c | 429 +++++++++++++++++++++++--------------- font.h | 2 + settings.h | 72 +++---- ui/helper.c | 141 ++++++++----- ui/helper.h | 6 +- ui/main.c | 21 +- utils/main.cpp | 138 ++++++++++-- utils/misc.exe | Bin 18944 -> 20992 bytes utils/uv-k5_small_4x5.bin | Bin 0 -> 570 bytes 16 files changed, 631 insertions(+), 375 deletions(-) delete mode 100644 firmware.bin delete mode 100644 firmware.packed.bin create mode 100644 utils/uv-k5_small_4x5.bin diff --git a/Makefile b/Makefile index da0438c..9225c0a 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ ENABLE_SWD := 0 ENABLE_OVERLAY := 0 ENABLE_LTO := 1 ENABLE_UART := 1 -ENABLE_UART_DEBUG := 1 +ENABLE_UART_DEBUG := 0 ENABLE_AIRCOPY := 1 ENABLE_AIRCOPY_REMEMBER_FREQ := 1 ENABLE_AIRCOPY_RX_REBOOT := 0 @@ -23,7 +23,7 @@ ENABLE_TX1750 := 0 ENABLE_PWRON_PASSWORD := 0 ENABLE_RESET_AES_KEY := 1 ENABLE_BIG_FREQ := 0 -ENABLE_SMALL_BOLD := 1 +ENABLE_SMALL_BOLD := 0 ENABLE_KEEP_MEM_NAME := 1 ENABLE_WIDE_RX := 1 ENABLE_TX_WHEN_AM := 0 @@ -39,7 +39,7 @@ ENABLE_FREQ_SEARCH_TIMEOUT := 0 ENABLE_CODE_SEARCH_TIMEOUT := 0 ENABLE_KILL_REVIVE := 0 ENABLE_AM_FIX := 1 -ENABLE_AM_FIX_SHOW_DATA := 1 +ENABLE_AM_FIX_SHOW_DATA := 0 ENABLE_SQUELCH_MORE_SENSITIVE := 1 ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS := 1 ENABLE_FASTER_CHANNEL_SCAN := 1 diff --git a/app/aircopy.c b/app/aircopy.c index 933461a..32e4619 100644 --- a/app/aircopy.c +++ b/app/aircopy.c @@ -36,6 +36,11 @@ // ********************** +// aircopy packet format is very simple .. +// +// payloads ................ 0xABCD + 2 byte eeprom address + 64 byte payload + 2 byte CRC + 0xDCBA +// 1of11 req/ack additon ... 0xBCDA + 2 byte eeprom address + 2 byte CRC + 0xCDBA + #define AIRCOPY_MAGIC_START_REQ 0xBCDA // used to request a block resend #define AIRCOPY_MAGIC_END_REQ 0xCDBA // used to request a block resend @@ -44,11 +49,11 @@ #define AIRCOPY_LAST_EEPROM_ADDR 0x1E00 // size of eeprom transferred -// FSK Data Length .. 0xABCD + 2 byte eeprom address + 64 byte payload + 2 byte CRC + 0xDCBA +// FSK payload data length #define AIRCOPY_DATA_PACKET_SIZE (2 + 2 + 64 + 2 + 2) -// FSK Data Length .. 0xBCDA + 2 byte eeprom address + 2 byte CRC + 0xCDBA -#define AIRCOPY_REQ_PACKET_SIZE (2 + 2 + 64 + 2 + 2) +// FSK req/ack data length .. 0xBCDA + 2 byte eeprom address + 2 byte CRC + 0xCDBA +#define AIRCOPY_REQ_PACKET_SIZE (2 + 2 + 2 + 2) // ********************** diff --git a/app/main.c b/app/main.c index c15f2b6..d2a68f0 100644 --- a/app/main.c +++ b/app/main.c @@ -88,6 +88,86 @@ void toggle_chan_scanlist(void) g_flag_reset_vfos = true; } +#ifdef ENABLE_COPY_CHAN_TO_VFO_TO_CHAN + void MAIN_copy_mem_vfo_mem(void) + { + //const unsigned int vfo = get_RX_VFO(); + const unsigned int vfo = g_eeprom.tx_vfo; + + if (g_scan_state_dir != SCAN_STATE_DIR_OFF || + g_css_scan_mode != CSS_SCAN_MODE_OFF || + g_eeprom.dual_watch != DUAL_WATCH_OFF || + !g_eeprom.vfo_open) + { // scanning + g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; + return; + } + + if (IS_USER_CHANNEL(g_eeprom.screen_channel[vfo])) + { // copy channel to VFO, then swap to the VFO + + const unsigned int channel = FREQ_CHANNEL_FIRST + g_eeprom.vfo_info[vfo].band; + + g_eeprom.screen_channel[vfo] = channel; + g_eeprom.vfo_info[vfo].channel_save = channel; + g_eeprom.tx_vfo = vfo; + + RADIO_select_vfos(); + RADIO_ApplyOffset(g_tx_vfo); + RADIO_ConfigureSquelchAndOutputPower(g_tx_vfo); + RADIO_setup_registers(true); + + // find the first channel that contains this frequency + g_tx_vfo->frequency_channel = BOARD_find_channel(g_tx_vfo->freq_config_tx.frequency); + + g_request_save_vfo = true; + + g_beep_to_play = BEEP_880HZ_60MS_TRIPLE_BEEP; + //g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + + g_update_status = true; + g_update_display = true; + } + else + if (IS_NOT_NOAA_CHANNEL(g_eeprom.screen_channel[vfo])) + { // copy VFO to a channel + + // search the channels to see if the frequency is already present + unsigned int chan = BOARD_find_channel(g_eeprom.vfo_info[vfo].p_tx->frequency); + if (chan > USER_CHANNEL_LAST) + { // find next next free channel + //for (chan = g_eeprom.screen_channel[vfo]; chan <= USER_CHANNEL_LAST; chan++) + for (chan = 0; chan <= USER_CHANNEL_LAST; chan++) + if (!RADIO_CheckValidChannel(chan, false, vfo)) + break; + } + + g_screen_to_display = DISPLAY_INVALID; + GUI_SelectNextDisplay(DISPLAY_MENU); + g_menu_cursor = MENU_MEM_SAVE; + g_is_in_sub_menu = true; + if (chan <= USER_CHANNEL_LAST) + { + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("vfo to mem %u\r\n", chan); + #endif + + g_sub_menu_selection = chan; + g_flag_refresh_menu = false; + g_screen_to_display = DISPLAY_MENU; + g_update_display = false; + UI_DisplayMenu(); + } + + #ifdef ENABLE_VOICE + g_another_voice_id = VOICE_ID_MENU; + #endif + + g_beep_to_play = BEEP_880HZ_60MS_TRIPLE_BEEP; + } + } +#endif + void processFKeyFunction(const key_code_t Key) { uint8_t Band; @@ -625,81 +705,7 @@ void MAIN_Key_MENU(const bool key_pressed, const bool key_held) g_update_status = true; #ifdef ENABLE_COPY_CHAN_TO_VFO_TO_CHAN - - if (g_scan_state_dir == SCAN_STATE_DIR_OFF && - g_css_scan_mode == CSS_SCAN_MODE_OFF && - g_eeprom.dual_watch == DUAL_WATCH_OFF && - g_eeprom.vfo_open) - { // not scanning - - //const unsigned int vfo = get_RX_VFO(); - const unsigned int vfo = g_eeprom.tx_vfo; - - if (IS_USER_CHANNEL(g_eeprom.screen_channel[vfo])) - { // copy channel to VFO, then swap to the VFO - - const unsigned int channel = FREQ_CHANNEL_FIRST + g_eeprom.vfo_info[vfo].band; - - g_eeprom.screen_channel[vfo] = channel; - g_eeprom.vfo_info[vfo].channel_save = channel; - g_eeprom.tx_vfo = vfo; - - RADIO_select_vfos(); - RADIO_ApplyOffset(g_rx_vfo); - RADIO_ConfigureSquelchAndOutputPower(g_rx_vfo); - RADIO_setup_registers(true); - - g_request_save_vfo = true; - - g_beep_to_play = BEEP_880HZ_60MS_TRIPLE_BEEP; - //g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; - - g_update_status = true; - g_update_display = true; - } - else - if (IS_NOT_NOAA_CHANNEL(g_eeprom.screen_channel[vfo])) - { // copy VFO to a channel - - // search the channels to see if the frequency is already present - unsigned int chan = BOARD_find_channel(g_eeprom.vfo_info[vfo].p_tx->frequency); - if (chan > USER_CHANNEL_LAST) - { // find next next free channel - //for (chan = g_eeprom.screen_channel[vfo]; chan <= USER_CHANNEL_LAST; chan++) - for (chan = 0; chan <= USER_CHANNEL_LAST; chan++) - if (!RADIO_CheckValidChannel(chan, false, vfo)) - break; - } - - g_screen_to_display = DISPLAY_INVALID; - GUI_SelectNextDisplay(DISPLAY_MENU); - g_menu_cursor = MENU_MEM_SAVE; - g_is_in_sub_menu = true; - if (chan <= USER_CHANNEL_LAST) - { - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) - UART_printf("vfo to mem %u\r\n", chan); - #endif - - g_sub_menu_selection = chan; - g_flag_refresh_menu = false; - g_screen_to_display = DISPLAY_MENU; - g_update_display = false; - UI_DisplayMenu(); - } - - #ifdef ENABLE_VOICE - g_another_voice_id = VOICE_ID_MENU; - #endif - - g_beep_to_play = BEEP_880HZ_60MS_TRIPLE_BEEP; - } - } - else - { - g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; - } - + MAIN_copy_mem_vfo_mem(); #endif } } diff --git a/bitmaps.c b/bitmaps.c index ee64868..6bbd47f 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -390,23 +390,3 @@ const uint8_t BITMAP_SCANLIST2[6] = __extension__ 0b01111110, __extension__ 0b01000010 }; - -const uint8_t BITMAP_COMPAND[6] = -{ - __extension__ 0b00000000, - __extension__ 0b00111100, - __extension__ 0b01000010, - __extension__ 0b01000010, - __extension__ 0b01000010, - __extension__ 0b00100100 -}; - -const uint8_t BITMAP_FREQ_CHAN[6] = -{ - __extension__ 0b00000000, - __extension__ 0b01111110, - __extension__ 0b00010010, - __extension__ 0b00010010, - __extension__ 0b00000010, - __extension__ 0b00000010 -}; diff --git a/bitmaps.h b/bitmaps.h index c2a8def..e3bfec4 100644 --- a/bitmaps.h +++ b/bitmaps.h @@ -59,9 +59,5 @@ extern const uint8_t BITMAP_VFO_NOT_DEFAULT[8]; extern const uint8_t BITMAP_SCANLIST1[6]; extern const uint8_t BITMAP_SCANLIST2[6]; -extern const uint8_t BITMAP_COMPAND[6]; - -extern const uint8_t BITMAP_FREQ_CHAN[6]; - #endif diff --git a/firmware.bin b/firmware.bin deleted file mode 100644 index cd977a127b4c18840597d402b049edabf63115e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60712 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

=z2Z%i~JO^!grbKCR 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 TjaUbvwNLXd+x^&=lIXtyj?>yT diff --git a/firmware.packed.bin b/firmware.packed.bin deleted file mode 100644 index f941f93c6195eb12a21b632f927c28ad8df4cf7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60730 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 a3iKae0RKIFD79yNJk=Ipb31RK_' + {0x00, 0x00, 0x16, 0x00}, // '?' + {0x20, 0x00, 0x00, 0x10}, // '@' + {0x00, 0x20, 0x00, 0x08}, // 'A' + {0x22, 0x01, 0x20, 0x10}, // 'B' + {0x0A, 0x0A, 0x00, 0x00}, // 'C' + {0x00, 0x01, 0x22, 0x14}, // 'D' + {0x10, 0x02, 0x11, 0x05}, // 'E' + {0x20, 0x00, 0x0E, 0x15}, // 'F' + {0x0E, 0x30, 0x00, 0x1E}, // 'G' + {0x05, 0x1E, 0x48, 0x00}, // 'H' + {0x15, 0x15, 0x0E, 0x70}, // 'I' + {0x1F, 0x11, 0x11, 0x11}, // 'J' + {0x00, 0x1F, 0x11, 0x11}, // 'K' + {0x70, 0x00, 0x1F, 0x15}, // 'L' + {0x11, 0x78, 0x00, 0x1F}, // 'M' + {0x05, 0x01, 0x40, 0x00}, // 'N' + {0x11, 0x15, 0x1D, 0x78}, // 'O' + {0x1F, 0x04, 0x04, 0x1F}, // 'P' + {0x00, 0x11, 0x1F, 0x11}, // 'Q' + {0x70, 0x00, 0x08, 0x11}, // 'R' + {0x1F, 0x38, 0x00, 0x1F}, // 'S' + {0x0A, 0x11, 0x48, 0x00}, // 'T' + {0x10, 0x10, 0x10, 0x78}, // 'U' + {0x1F, 0x02, 0x02, 0x1F}, // 'V' + {0x00, 0x1F, 0x02, 0x04}, // 'W' + {0x48, 0x00, 0x0E, 0x11}, // 'X' + {0x0E, 0x30, 0x00, 0x1F}, // 'Y' + {0x05, 0x02, 0x40, 0x00}, // 'Z' + {0x11, 0x19, 0x1E, 0x38}, // '[' + {0x1F, 0x05, 0x05, 0x1A}, // '\' + {0x00, 0x12, 0x15, 0x15}, // ']' + {0x70, 0x00, 0x01, 0x1F}, // '^' + {0x00, 0x20, 0x00, 0x1F}, // '_' + {0x10, 0x1F, 0x78, 0x00}, // '`' + {0x10, 0x10, 0x0F, 0x30}, // 'a' + {0x1F, 0x08, 0x08, 0x1F}, // 'b' + {0x00, 0x1B, 0x04, 0x04}, // 'c' + {0x48, 0x00, 0x07, 0x1C}, // 'd' + {0x00, 0x20, 0x00, 0x19}, // 'e' + {0x15, 0x13, 0x78, 0x00}, // 'f' + {0x11, 0x00, 0x00, 0x60}, // 'g' + {0x01, 0x02, 0x04, 0x08}, // 'h' + {0x00, 0x00, 0x11, 0x1F}, // 'i' + {0x30, 0x00, 0x02, 0x01}, // 'j' + {0x00, 0x00, 0x00, 0x10}, // 'k' + {0x10, 0x10, 0x78, 0x00}, // 'l' + {0x03, 0x07, 0x06, 0x00}, // 'm' + {0x1D, 0x15, 0x15, 0x1E}, // 'n' + {0x00, 0x1F, 0x14, 0x14}, // 'o' + {0x70, 0x00, 0x0C, 0x12}, // 'p' + {0x12, 0x38, 0x00, 0x08}, // 'q' + {0x14, 0x1F, 0x38, 0x00}, // 'r' + {0x15, 0x15, 0x16, 0x38}, // 's' + {0x1E, 0x05, 0x05, 0x00}, // 't' + {0x00, 0x02, 0x15, 0x15}, // 'u' + {0x38, 0x00, 0x1F, 0x04}, // 'v' + {0x18, 0x48, 0x00, 0x00}, // 'w' + {0x00, 0x00, 0x20, 0x00}, // 'x' + {0x10, 0x1D, 0x00, 0x30}, // 'y' + {0x1F, 0x04, 0x0A, 0x10}, // 'z' + {0x00, 0x00, 0x1F, 0x00}, // '{' + {0x20, 0x00, 0x1E, 0x04}, // '|' + {0x1E, 0x48, 0x00, 0x1E}, // '}' + {0x02, 0x1C, 0x48, 0x00}, // '~' +}; +*/ +const uint8_t g_font3x5[160][3] = +{ + {0x00, 0x00, 0x00}, // 32 - space + {0x00, 0x17, 0x00}, // 33 - exclam + {0x03, 0x00, 0x03}, // 34 - quotedbl + {0x1f, 0x0a, 0x1f}, // 35 - numbersign + {0x0a, 0x1f, 0x05}, // 36 - dollar + {0x09, 0x04, 0x12}, // 37 - percent + {0x0f, 0x17, 0x1c}, // 38 - ampersand + {0x00, 0x03, 0x00}, // 39 - quotesingle + {0x00, 0x0e, 0x11}, // 40 - parenleft + {0x11, 0x0e, 0x00}, // 41 - parenright + {0x05, 0x02, 0x05}, // 42 - asterisk + {0x04, 0x0e, 0x04}, // 43 - plus + {0x10, 0x08, 0x00}, // 44 - comma + {0x04, 0x04, 0x04}, // 45 - hyphen + {0x00, 0x10, 0x00}, // 46 - period + {0x18, 0x04, 0x03}, // 47 - slash + {0x1e, 0x11, 0x0f}, // 48 - zero + {0x02, 0x1f, 0x00}, // 49 - one + {0x19, 0x15, 0x12}, // 50 - two + {0x11, 0x15, 0x0a}, // 51 - three + {0x07, 0x04, 0x1f}, // 52 - four + {0x17, 0x15, 0x09}, // 53 - five + {0x1e, 0x15, 0x1d}, // 54 - six + {0x19, 0x05, 0x03}, // 55 - seven + {0x1f, 0x15, 0x1f}, // 56 - eight + {0x17, 0x15, 0x0f}, // 57 - nine + {0x00, 0x0a, 0x00}, // 58 - colon + {0x10, 0x0a, 0x00}, // 59 - semicolon + {0x04, 0x0a, 0x11}, // 60 - less + {0x0a, 0x0a, 0x0a}, // 61 - equal + {0x11, 0x0a, 0x04}, // 62 - greater + {0x01, 0x15, 0x03}, // 63 - question + {0x0e, 0x15, 0x16}, // 64 - at + {0x1e, 0x05, 0x1e}, // 65 - A + {0x1f, 0x15, 0x0a}, // 66 - B + {0x0e, 0x11, 0x11}, // 67 - C + {0x1f, 0x11, 0x0e}, // 68 - D + {0x1f, 0x15, 0x15}, // 69 - E + {0x1f, 0x05, 0x05}, // 70 - F + {0x0e, 0x15, 0x1d}, // 71 - G + {0x1f, 0x04, 0x1f}, // 72 - H + {0x11, 0x1f, 0x11}, // 73 - I + {0x08, 0x10, 0x0f}, // 74 - J + {0x1f, 0x04, 0x1b}, // 75 - K + {0x1f, 0x10, 0x10}, // 76 - L + {0x1f, 0x06, 0x1f}, // 77 - M + {0x1f, 0x0e, 0x1f}, // 78 - N + {0x0e, 0x11, 0x0e}, // 79 - O + {0x1f, 0x05, 0x02}, // 80 - P + {0x0e, 0x19, 0x1e}, // 81 - Q + {0x1f, 0x0d, 0x16}, // 82 - R + {0x12, 0x15, 0x09}, // 83 - S + {0x01, 0x1f, 0x01}, // 84 - T + {0x0f, 0x10, 0x1f}, // 85 - U + {0x07, 0x18, 0x07}, // 86 - V + {0x1f, 0x0c, 0x1f}, // 87 - W + {0x1b, 0x04, 0x1b}, // 88 - X + {0x03, 0x1c, 0x03}, // 89 - Y + {0x19, 0x15, 0x13}, // 90 - Z + {0x1f, 0x11, 0x11}, // 91 - bracketleft + {0x02, 0x04, 0x08}, // 92 - backslash + {0x11, 0x11, 0x1f}, // 93 - bracketright + {0x02, 0x01, 0x02}, // 94 - asciicircum + {0x10, 0x10, 0x10}, // 95 - underscore + {0x01, 0x02, 0x00}, // 96 - grave + {0x1a, 0x16, 0x1c}, // 97 - a + {0x1f, 0x12, 0x0c}, // 98 - b + {0x0c, 0x12, 0x12}, // 99 - c + {0x0c, 0x12, 0x1f}, // 100 - d + {0x0c, 0x1a, 0x16}, // 101 - e + {0x04, 0x1e, 0x05}, // 102 - f + {0x0c, 0x2a, 0x1e}, // 103 - g + {0x1f, 0x02, 0x1c}, // 104 - h + {0x00, 0x1d, 0x00}, // 105 - i + {0x10, 0x20, 0x1d}, // 106 - j + {0x1f, 0x0c, 0x12}, // 107 - k + {0x11, 0x1f, 0x10}, // 108 - l + {0x1e, 0x0e, 0x1e}, // 109 - m + {0x1e, 0x02, 0x1c}, // 110 - n + {0x0c, 0x12, 0x0c}, // 111 - o + {0x3e, 0x12, 0x0c}, // 112 - p + {0x0c, 0x12, 0x3e}, // 113 - q + {0x1c, 0x02, 0x02}, // 114 - r + {0x14, 0x1e, 0x0a}, // 115 - s + {0x02, 0x1f, 0x12}, // 116 - t + {0x0e, 0x10, 0x1e}, // 117 - u + {0x0e, 0x18, 0x0e}, // 118 - v + {0x1e, 0x1c, 0x1e}, // 119 - w + {0x12, 0x0c, 0x12}, // 120 - x + {0x06, 0x28, 0x1e}, // 121 - y + {0x1a, 0x1e, 0x16}, // 122 - z + {0x04, 0x1b, 0x11}, // 123 - braceleft + {0x00, 0x1b, 0x00}, // 124 - bar + {0x11, 0x1b, 0x04}, // 125 - braceright + {0x02, 0x03, 0x01}, // 126 - asciitilde + {0x00, 0x00, 0x00}, // 127 - empty + {0x00, 0x00, 0x00}, // 128 - empty + {0x00, 0x00, 0x00}, // 129 - empty + {0x00, 0x00, 0x00}, // 130 - empty + {0x00, 0x00, 0x00}, // 131 - empty + {0x00, 0x00, 0x00}, // 132 - empty + {0x00, 0x00, 0x00}, // 133 - empty + {0x00, 0x00, 0x00}, // 134 - empty + {0x00, 0x00, 0x00}, // 135 - empty + {0x00, 0x00, 0x00}, // 136 - empty + {0x00, 0x00, 0x00}, // 137 - empty + {0x00, 0x00, 0x00}, // 138 - empty + {0x00, 0x00, 0x00}, // 139 - empty + {0x00, 0x00, 0x00}, // 140 - empty + {0x00, 0x00, 0x00}, // 141 - empty + {0x00, 0x00, 0x00}, // 142 - empty + {0x00, 0x00, 0x00}, // 143 - empty + {0x00, 0x00, 0x00}, // 144 - empty + {0x00, 0x00, 0x00}, // 145 - empty + {0x00, 0x00, 0x00}, // 146 - empty + {0x00, 0x00, 0x00}, // 147 - empty + {0x00, 0x00, 0x00}, // 148 - empty + {0x00, 0x00, 0x00}, // 149 - empty + {0x00, 0x00, 0x00}, // 150 - empty + {0x00, 0x00, 0x00}, // 151 - empty + {0x00, 0x00, 0x00}, // 152 - empty + {0x00, 0x00, 0x00}, // 153 - empty + {0x00, 0x00, 0x00}, // 154 - empty + {0x00, 0x00, 0x00}, // 155 - empty + {0x00, 0x00, 0x00}, // 156 - empty + {0x00, 0x00, 0x00}, // 157 - empty + {0x00, 0x00, 0x00}, // 158 - empty + {0x00, 0x00, 0x00}, // 159 - empty + {0x00, 0x00, 0x00}, // 160 - empty + {0x00, 0x1d, 0x00}, // 161 - exclamdown + {0x0e, 0x1b, 0x0a}, // 162 - cent + {0x14, 0x1f, 0x15}, // 163 - sterling + {0x15, 0x0e, 0x15}, // 164 - currency + {0x0b, 0x1c, 0x0b}, // 165 - yen + {0x00, 0x1b, 0x00}, // 166 - brokenbar + {0x14, 0x1b, 0x05}, // 167 - section + {0x01, 0x00, 0x01}, // 168 - dieresis + {0x02, 0x05, 0x05}, // 169 - copyright + {0x16, 0x15, 0x17}, // 170 - ordfeminine + {0x02, 0x05, 0x00}, // 171 - guillemotleft + {0x02, 0x02, 0x06}, // 172 - logicalnot + {0x04, 0x04, 0x00}, // 173 - softhyphen + {0x07, 0x03, 0x04}, // 174 - registered + {0x01, 0x01, 0x01}, // 175 - macron + {0x02, 0x05, 0x02}, // 176 - degree + {0x12, 0x17, 0x12}, // 177 - plusminus + {0x01, 0x07, 0x04}, // 178 - twosuperior + {0x05, 0x07, 0x07}, // 179 - threesuperior + {0x00, 0x02, 0x01}, // 180 - acute + {0x1f, 0x08, 0x07}, // 181 - mu + {0x02, 0x1d, 0x1f}, // 182 - paragraph + {0x0e, 0x0e, 0x0e}, // 183 - periodcentered + {0x10, 0x14, 0x08}, // 184 - cedilla + {0x00, 0x07, 0x00}, // 185 - onesuperior + {0x12, 0x15, 0x12}, // 186 - ordmasculine + {0x00, 0x05, 0x02}, // 187 - guillemotright + {0x03, 0x08, 0x18}, // 188 - onequarter + {0x0b, 0x18, 0x10}, // 189 - onehalf + {0x03, 0x0b, 0x18}, // 190 - threequarters + {0x18, 0x15, 0x10}, // 191 - questiondown +}; diff --git a/font.h b/font.h index b3dbe4a..0e6a0c6 100644 --- a/font.h +++ b/font.h @@ -26,6 +26,8 @@ extern const uint8_t g_font_small[95][6]; #ifdef ENABLE_SMALL_BOLD extern const uint8_t g_font_small_bold[95][6]; #endif +//extern const uint8_t g_font_small_4x5[95][4]; +extern const uint8_t g_font3x5[160][3]; #endif diff --git a/settings.h b/settings.h index 81e1840..f446014 100644 --- a/settings.h +++ b/settings.h @@ -135,52 +135,59 @@ typedef enum mdf_display_mode_e mdf_display_mode_t; // 16 bytes typedef struct { // [0] - uint32_t frequency; // + uint32_t frequency; // // [4] - uint32_t offset; // + uint32_t offset; // // [8] - uint8_t rx_ctcss_cdcss_code; // + uint8_t rx_ctcss_cdcss_code; // // [9] - uint8_t tx_ctcss_cdcss_code; // + uint8_t tx_ctcss_cdcss_code; // // [10] - uint8_t rx_ctcss_cdcss_type:2; // - uint8_t unused1:2; // - uint8_t tx_ctcss_cdcss_type:2; // - uint8_t unused2:2; // + uint8_t rx_ctcss_cdcss_type:2; // + uint8_t unused1:2; // + uint8_t tx_ctcss_cdcss_type:2; // + uint8_t unused2:2; // // [11] - uint8_t tx_offset_dir:2; // - uint8_t unused3:2; // - uint8_t am_mode:1; // - uint8_t unused4:3; // + uint8_t tx_offset_dir:2; // + uint8_t unused3:2; // + uint8_t am_mode:1; // + uint8_t unused4:3; // // [12] - uint8_t frequency_reverse:1; // reverse repeater - uint8_t channel_bandwidth:1; // wide/narrow - uint8_t tx_power:2; // 0, 1 or 2 .. L, M or H - uint8_t busy_channel_lock:1; // + uint8_t frequency_reverse:1; // reverse repeater + uint8_t channel_bandwidth:1; // wide/narrow + uint8_t tx_power:2; // 0, 1 or 2 .. L, M or H + uint8_t busy_channel_lock:1; // #if 0 // QS - uint8_t unused5:3; // + uint8_t unused5:3; // #else // 1of11 - uint8_t unused5:1; // - uint8_t compand:2; // 0 = off, 1 = TX, 2 = RX, 3 = TX/RX + uint8_t unused5:1; // + uint8_t compand:2; // 0 = off, 1 = TX, 2 = RX, 3 = TX/RX #endif // [13] - uint8_t dtmf_decoding_enable:1; // - uint8_t dtmf_ptt_id_tx_mode:3; // - uint8_t unused6:4; // + uint8_t dtmf_decoding_enable:1; // + uint8_t dtmf_ptt_id_tx_mode:3; // + uint8_t unused6:4; // // [14] - uint8_t step_setting; // + uint8_t step_setting; // // [15] - uint8_t scrambler:4; // + uint8_t scrambler:4; // #if 0 // QS - uint8_t unused7:4; // + uint8_t unused7:4; // #else // 1of11 - uint8_t squelch_level:4; // 0 ~ 9 per channel squelch, 0 = use main squelch level + uint8_t squelch_level:4; // 0 ~ 9 per channel squelch, 0 = use main squelch level #endif -} __attribute__((packed)) t_channel; // +} __attribute__((packed)) t_channel; // + +typedef struct { + uint8_t band:4; // why do QS have these bits ? band can/is computed from the frequency + uint8_t unused:2; // + uint8_t scanlist2:1; // set if in scan list 2 + uint8_t scanlist1:1; // set if in scan list 1 +} __attribute__((packed)) t_channel_attr; // // 512 bytes typedef struct { @@ -270,12 +277,7 @@ typedef struct { } __attribute__((packed)); // // 0x0D60 - struct { // these channel attribute settings could have been in the t_channel structure ! - uint8_t band:4; // why do QS have these bits ? band can/is computed from the frequency - uint8_t unused:2; // - uint8_t scanlist2:1; // set if in scan list 2 - uint8_t scanlist1:1; // set if in scan list 1 - } __attribute__((packed)) channel_attr[200]; // + t_channel_attr channel_attr[200]; // uint8_t unused1[8]; // 0xff's @@ -412,10 +414,10 @@ typedef struct { uint8_t dtmf_live_decoder:1; // 1 = enable on-screen live DTMF decoder uint8_t battery_text:2; // 0 = no battery text, 1 = voltage, 2 = percent .. on the status bar uint8_t mic_bar:1; // 1 = on-screen TX audio level - uint8_t am_fix:1; // 1 = RX AM fix + uint8_t am_fix:1; // 1 = enable RX AM fix uint8_t backlight_on_tx_rx:2; // 0 = no backlight when TX/RX, 1 = when TX, 2 = when RX, 3 = both RX/TX - uint8_t scan_hold_time; // ticks we stay paused on a signal when scanning + uint8_t scan_hold_time; // ticks we stay paused for on an RX'ed signal when scanning uint8_t unused12[7]; // 0xff's #endif diff --git a/ui/helper.c b/ui/helper.c index e439db3..ff652e9 100644 --- a/ui/helper.c +++ b/ui/helper.c @@ -32,7 +32,7 @@ void UI_GenerateChannelString(char *pString, const uint8_t Channel, const char s if (pString == NULL) return; - + if (g_input_box_index == 0) { sprintf(pString, "CH%c%02u", separating_char, Channel + 1); @@ -50,7 +50,7 @@ void UI_GenerateChannelStringEx(char *pString, const char *prefix, const uint8_t { if (pString == NULL) return; - + if (g_input_box_index > 0) { unsigned int i; @@ -60,10 +60,10 @@ void UI_GenerateChannelStringEx(char *pString, const char *prefix, const uint8_t } pString[0] = 0; - + if (prefix) strcpy(pString, prefix); - + if (ChannelNumber == 0xFF) strcpy(pString, "NULL"); else @@ -90,65 +90,110 @@ void UI_PrintString(const char *pString, uint8_t Start, uint8_t End, uint8_t Lin } } -void UI_PrintStringSmall(const char *pString, uint8_t Start, uint8_t End, uint8_t Line) +void UI_print_string( + const char *str, + unsigned int start, + const unsigned int end, + const unsigned int line, + const uint8_t *font, + const unsigned int font_size, + const unsigned int char_width) { - const size_t Length = strlen(pString); - size_t i; - - if (End > Start) - Start += (((End - Start) - (Length * 7)) + 1) / 2; - - const unsigned int char_width = ARRAY_SIZE(g_font_small[0]); const unsigned int char_spacing = char_width + 1; - uint8_t *pFb = g_frame_buffer[Line] + Start; - for (i = 0; i < Length; i++) + const size_t length = strlen(str); + unsigned int i; + uint8_t *f_buf; + + if (end > start) + start += (((end - start) - (length * (char_width - 1))) + 1) / 2; + + f_buf = g_frame_buffer[line] + start; + for (i = 0; i < length; i++) { - if (pString[i] >= 32) - { - const unsigned int index = (unsigned int)pString[i] - 32; - if (index < ARRAY_SIZE(g_font_small)) - memmove(pFb + (i * char_spacing) + 1, &g_font_small[index], char_width); - } + const int c = (int)str[i] - ' '; + if (c >= 0 && c < (int)font_size) + memmove(f_buf + (char_spacing * i) + 1, font + (char_width * c), char_width); } } +void UI_PrintStringSmall(const char *str, const unsigned int start, const unsigned int end, const unsigned int line) +{ + UI_print_string(str, start, end, line, (const uint8_t *)g_font_small, ARRAY_SIZE(g_font_small), ARRAY_SIZE(g_font_small[0])); +} + #ifdef ENABLE_SMALL_BOLD - void UI_PrintStringSmallBold(const char *pString, uint8_t Start, uint8_t End, uint8_t Line) + void UI_PrintStringSmallBold(const char *str, const unsigned int start, const unsigned int end, const unsigned int line) { - const size_t Length = strlen(pString); - size_t i; - - if (End > Start) - Start += (((End - Start) - (Length * 7)) + 1) / 2; - - const unsigned int char_width = ARRAY_SIZE(g_font_small_bold[0]); - const unsigned int char_spacing = char_width + 1; - uint8_t *pFb = g_frame_buffer[Line] + Start; - for (i = 0; i < Length; i++) - { - if (pString[i] >= 32) - { - const unsigned int index = (unsigned int)pString[i] - 32; - if (index < ARRAY_SIZE(g_font_small_bold)) - memmove(pFb + (i * char_spacing) + 1, &g_font_small_bold[index], char_width); - } - } + UI_print_string(str, start, end, line, (const uint8_t *)g_font_small_bold, ARRAY_SIZE(g_font_small_bold), ARRAY_SIZE(g_font_small_bold[0])); } #endif +/* +void UI_PrintStringSmall4x5(const char *str, const unsigned int start, const unsigned int end, const unsigned int line) +{ + UI_print_string(str, start, end, line, (const uint8_t *)g_font_small_4x5, ARRAY_SIZE(g_font_small_4x5), ARRAY_SIZE(g_font_small_4x5[0])); +} +*/ + +void PutPixel(const unsigned int x, const unsigned int y, const bool fill) +{ + if (fill) + g_frame_buffer[y >> 3][x] |= 1u << (y & 7u); + else + g_frame_buffer[y >> 3][x] &= ~(1u << (y & 7u)); +} + +void PutPixelStatus(const unsigned int x, const unsigned int y, bool fill) +{ + if (fill) + g_status_line[x] |= 1u << y; + else + g_status_line[x] &= ~(1u << y); +} + +void UI_PrintStringSmallest(const void *pString, unsigned int x, const unsigned int y, const bool statusbar, const bool fill) +{ + const unsigned int char_width = ARRAY_SIZE(g_font3x5[0]); + const unsigned int char_height = 5; +// const uint8_t pixel_mask = (1u << char_height) - 1; + const uint8_t *p = (const uint8_t *)pString; + int c; + + while ((c = *p++) != 0) + { + c -= ' '; + if (c >= 0 && c < (int)ARRAY_SIZE(g_font3x5)) + { + for (unsigned int xx = 0; xx < char_width; xx++) + { + uint8_t pixels = g_font3x5[c][xx]; + if (statusbar) + { + for (unsigned int yy = 0; yy <= char_height; yy++, pixels >>= 1) + if (pixels & 1u) + PutPixelStatus(x + xx, y + yy, fill); + } + else + { + for (unsigned int yy = 0; yy <= char_height; yy++, pixels >>= 1) + if (pixels & 1u) + PutPixel(x + xx, y + yy, fill); + } + } + } + x += char_width + 1; + } +} void UI_PrintStringSmallBuffer(const char *pString, uint8_t *buffer) { - size_t i; const unsigned int char_width = ARRAY_SIZE(g_font_small[0]); const unsigned int char_spacing = char_width + 1; + unsigned int i; for (i = 0; i < strlen(pString); i++) { - if (pString[i] >= 32) - { - const unsigned int index = (unsigned int)pString[i] - 32; - if (index < ARRAY_SIZE(g_font_small)) - memmove(buffer + (i * char_spacing) + 1, &g_font_small[index], char_width); - } + const int c = (int)pString[i] - ' '; + if (c >= 0 && c < (int)ARRAY_SIZE(g_font_small)) + memmove(buffer + (i * char_spacing) + 1, &g_font_small[c], char_width); } } @@ -159,7 +204,7 @@ void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDispla uint8_t *pFb1 = pFb0 + 128; bool bCanDisplay = false; unsigned int i = 0; - + // MHz while (i < 3) { @@ -184,7 +229,7 @@ void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDispla *pFb1 = 0x60; pFb0++; pFb1++; *pFb1 = 0x60; pFb0++; pFb1++; *pFb1 = 0x60; pFb0++; pFb1++; - + // kHz while (i < 6) { diff --git a/ui/helper.h b/ui/helper.h index 6a4d115..536e26d 100644 --- a/ui/helper.h +++ b/ui/helper.h @@ -23,10 +23,12 @@ void UI_GenerateChannelString(char *pString, const uint8_t Channel, const char separating_char); void UI_GenerateChannelStringEx(char *pString, const char *prefix, const uint8_t ChannelNumber); void UI_PrintString(const char *pString, uint8_t Start, uint8_t End, uint8_t Line, uint8_t Width); -void UI_PrintStringSmall(const char *pString, uint8_t Start, uint8_t End, uint8_t Line); +void UI_PrintStringSmall(const char *str, const unsigned int start, const unsigned int end, const unsigned int line); #ifdef ENABLE_SMALL_BOLD - void UI_PrintStringSmallBold(const char *pString, uint8_t Start, uint8_t End, uint8_t Line); + void UI_PrintStringSmallBold(const char *str, const unsigned int start, const unsigned int end, const unsigned int line); #endif +//void UI_PrintStringSmall4x5(const char *str, const unsigned int start, const unsigned int end, const unsigned int line); +void UI_PrintStringSmallest(const void *pString, unsigned int x, const unsigned int y, const bool statusbar, const bool fill); void UI_PrintStringSmallBuffer(const char *pString, uint8_t *buffer); void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDisplayLeadingZero, bool flag); void UI_DisplayFrequencySmall(const char *pDigits, uint8_t X, uint8_t Y, bool bDisplayLeadingZero); diff --git a/ui/main.c b/ui/main.c index 9e0c757..8eb88a7 100644 --- a/ui/main.c +++ b/ui/main.c @@ -31,6 +31,7 @@ #include "driver/bk4819.h" #include "driver/st7565.h" #include "external/printf/printf.h" +#include "font.h" #include "functions.h" #include "helper/battery.h" #include "misc.h" @@ -395,6 +396,7 @@ void UI_update_rssi(const int16_t rssi, const int vfo) void UI_DisplayMain(void) { + const unsigned int smallest_char_spacing = ARRAY_SIZE(g_font3x5[0]) + 1; const unsigned int line0 = 0; // text screen line const unsigned int line1 = 4; char String[17]; @@ -746,19 +748,22 @@ void UI_DisplayMain(void) #else { - unsigned int x = LCD_WIDTH + LCD_WIDTH - 1 - sizeof(BITMAP_FREQ_CHAN) - sizeof(BITMAP_COMPAND); - - if (g_eeprom.vfo_info[vfo_num].compand) - memmove(p_line0 + x, BITMAP_COMPAND, sizeof(BITMAP_COMPAND)); - x += sizeof(BITMAP_COMPAND); + unsigned int x = LCD_WIDTH + LCD_WIDTH - 1 - (smallest_char_spacing * 1) - (smallest_char_spacing * 4); if (IS_FREQ_CHANNEL(g_eeprom.screen_channel[vfo_num])) { //g_eeprom.vfo_info[vfo_num].frequency_channel = BOARD_find_channel(frequency); if (g_eeprom.vfo_info[vfo_num].frequency_channel <= USER_CHANNEL_LAST) - memmove(p_line0 + x, BITMAP_FREQ_CHAN, sizeof(BITMAP_FREQ_CHAN)); - //x += sizeof(BITMAP_FREQ_CHAN); + { // the channel number that contains this VFO frequency + sprintf(String, "%03u", g_eeprom.vfo_info[vfo_num].frequency_channel); + UI_PrintStringSmallest(String, x, (line + 0) * 8, false, true); + } } + x += smallest_char_spacing * 4; + + if (g_eeprom.vfo_info[vfo_num].compand) + UI_PrintStringSmallest("C", x, (line + 0) * 8, false, true); + //x += smallest_char_spacing * 1; } #endif } @@ -846,6 +851,8 @@ void UI_DisplayMain(void) #else if (g_eeprom.vfo_info[vfo_num].dtmf_decoding_enable) UI_PrintStringSmall("DTMF", LCD_WIDTH + 78, 0, line + 1); + //UI_PrintStringSmall4x5("DTMF", LCD_WIDTH + 78, 0, line + 1); // font table is currently wrong + //UI_PrintStringSmallest("DTMF", LCD_WIDTH + 78, (line + 1) * 8, false, true); #endif // show the audio scramble symbol diff --git a/utils/main.cpp b/utils/main.cpp index ec5d917..aecd428 100644 --- a/utils/main.cpp +++ b/utils/main.cpp @@ -20,6 +20,10 @@ #include #include +#ifndef ARRAY_SIZE + #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) +#endif + // ************************************************************************ // create a front end gain table for the firmware @@ -346,7 +350,7 @@ void create_gain_table(const char *filename) fclose(file); } - // ************************************************************************ +// ************************************************************************ // "rotate_font()" has nothing to do with this program at all, I just needed // to write a bit of code to rotate some fonts I've drawn @@ -397,19 +401,19 @@ void rotate_font(const char *filename1, const char *filename2) { uint8_t c1[8]; uint8_t c2[8]; - memcpy(c1, &data[i], 8); - memset(c2, 0, 8); - for (unsigned int k = 0; k < 8; k++) + memcpy(c1, &data[i], ARRAY_SIZE(c1)); + memset(c2, 0, ARRAY_SIZE(c2)); + for (unsigned int k = 0; k < ARRAY_SIZE(c1); k++) { uint8_t b = c1[k]; - for (unsigned int m = 0; m < 8; m++) + for (unsigned int m = 0; m < ARRAY_SIZE(c2); m++) { if (b & 0x80) c2[m] |= 1u << k; b <<= 1; } } - memcpy(&data[i], c2, 8); + memcpy(&data[i], c2, ARRAY_SIZE(c2)); } // *************************** @@ -422,7 +426,7 @@ void rotate_font(const char *filename1, const char *filename2) fprintf(file, "const uint8_t gFontSmall[95][7] =\n"); fprintf(file, "{\n"); - for (unsigned int i = 0; i < data.size(); ) + for (unsigned int i = 0, c = ' '; i < data.size() && c < (' ' + 95); i++, c++) { char s[1024]; memset(s, 0, sizeof(s)); @@ -445,13 +449,122 @@ void rotate_font(const char *filename1, const char *filename2) else { strcat(s, s2); - strcat(s, "},\n"); + strcat(s, "},"); } } - i++; + fprintf(file, "%s // '%c'\n", s, c); + } - fprintf(file, "%s", s); + fprintf(file, "};\n"); + + fclose(file); + + // *************************** +} + +// ************************************************************************ +// "rotate_font()" has nothing to do with this program at all, I just needed +// to write a bit of code to rotate some fonts I've drawn + +void rotate_font_4x5(const char *filename1, const char *filename2) +{ + std::vector data; + + if (filename1 == NULL || filename2 == NULL) + return; + + // **************************** + // load the file + + FILE *file = fopen(filename1, "rb"); + if (file == NULL) + return; + + if (fseek(file, 0, SEEK_END) != 0) + { + fclose(file); + return; + } + const size_t file_size = ftell(file); + if (file_size <= 0) + { + fclose(file); + return; + } + if (fseek(file, 0, SEEK_SET) != 0) + { + fclose(file); + return; + } + + data.resize(file_size); + + const size_t bytes_loaded = fread(&data[0], 1, file_size, file); + + fclose(file); + + if (bytes_loaded != file_size) + return; + + // *************************** + // rotate the font 90-deg clockwise + + for (unsigned int i = 0; i <= (data.size() - 6); i += 6) + { + uint8_t c1[6]; + uint8_t c2[4]; + memcpy(c1, &data[i], 6); + memset(c2, 0, 4); + for (unsigned int k = 0; k < ARRAY_SIZE(c1); k++) + { + uint8_t b = c1[k]; + for (unsigned int m = 0; m < ARRAY_SIZE(c2); m++) + { + if (b & 0x40) + c2[m] |= 1u << k; + b <<= 1; + } + } + memcpy(&data[i], c2, 4); + } + + // *************************** + // save the file + + file = fopen(filename2, "wt"); + if (file == NULL) + return; + + fprintf(file, "const uint8_t g_font_small_4x5[95][4] =\n"); + fprintf(file, "{\n"); + + for (unsigned int i = 0, c = ' '; i < data.size() && c < (' ' + 95); i++, c++) + { + char s[1024]; + memset(s, 0, sizeof(s)); + + for (unsigned int k = 0; k < 4 && i < data.size(); k++) + { + char s2[16]; + sprintf(s2, "0x%02X", data[i++]); + + if (k == 0) + strcat(s, "\t{"); + + if (k < 3) + { + strcat(s, s2); + strcat(s, ", "); + } + else + { + strcat(s, s2); + strcat(s, "},"); + } + } + + fprintf(file, "%s // '%c'\n", s, c); } fprintf(file, "};\n"); @@ -466,8 +579,9 @@ int main(int argc, char* argv[]) { create_gain_table("gain_table.c"); - rotate_font("uv-k5_small.bin", "uv-k5_small.c"); - rotate_font("uv-k5_small_bold.bin", "uv-k5_small_bold.c"); + rotate_font("uv-k5_small.bin", "uv-k5_small.c"); + rotate_font("uv-k5_small_bold.bin", "uv-k5_small_bold.c"); + rotate_font_4x5("uv-k5_small_4x5.bin", "uv-k5_small_4x5.c"); return 0; } diff --git a/utils/misc.exe b/utils/misc.exe index e81385aa55170a455c890c6f20736f04bf77a931..507a27e0bbe8977d13c703f0c7b3992d33f52472 100644 GIT binary patch delta 4402 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 LD#tguWP38& zODwpoqq$nsXj_f8wG+lrmuX2#<63Cd4r54k9HQ8eRx=M}D$_=*(YihNy%lycdCa@- zobR0TopaCqSvpQI9S4{`j#Yi~gCsJC{TX|M*`KzMoMo$+MI=(Sl*uMGRVE{l1{iH* zH;nn@6pW?h3XBf&SY_0(2%#$9BK0_v(8oIvQuzfsPS6p}AH5q+=7$*zerrO=Gb(L1 zBD7w*3W~G=#3m$l!e^aJa5$*q2E%b8%afTI2u+?glIE~7t`KmiRA?d}h3S)D1SNny z;3YMHxM}EvBams%g=W2EGm)>tG7Aj=&+#|wolTr{0r;KL$1nzC?twTo&v~OR%XUaW1K2Ti_B_#p)>^X6Yg9;#klP+;2Gr<(TjT$EwkQZXo z%9A7H9Pa1utD3-#lS~S5Pt-Ea5fpfuQhUVlt;eBj$a5321d|+~Jgo~zX~qIF6_dg? zMG&pd$hJffi*9{FeI#Ypb&HQYHC$l3I?(b+isHyIotqsulSQ#ROJ8{y2n-}ql3&f2 zD;8cu1Is@XEw?lG)Q(nA%w7Mq@ytJpj>gIl|! zXnm7@6+*7aGTLQM+M_2abM@_a0Rsk4J$S{-Ub_KlV(E+rq%C@C)xPO(UP9GkP}jMi zA5%jnntmV{EDkCim|Ot>b+k~&Zn59p){k~(QG^Kzt(R)0HYKz@q`YXF82+gHZJ4!^ zSdJbB^+{q;a!QV1;@PS{VQJ=mxvW!)6?gz?Vw#Yb#srIXO5HLybiXgql06{(kaBzK z`-OsAx;MIE%Ik{6o|vDM(F;ZF38r&>2O{b2SS&|rPm78FF6BWmTTk;vsXuz0?bmof#ut;4pad=z4PR&V>Dr2!a+GyE7w7<7kYTV z(2xfS<&2q>B$l&v^vWn@#>m-3TZwBWG(dXoP9U((^&E(<4OBn;AP}If-%F8KDblSV zygy`mCh~UD`)pkWc`A7gJARkEo7@%CMXNceqlb%=UcKilNLk6Sy%nU}u!=$CGs9+f zyn>XZu44TU$llZ}b!VCbkxhvPaxGQMwtY<|Q+c-PYm$*glaIWMrxaavfw-Rvr06Mr-(G5sK;Ipf&02 z{9Iqdq8^sr^=~q@c!b@`lMk0PFr7r7WoJ`)vOen_b})n7%c=!WvSO)~J)cfqU%HYV z$R!t-E@wxrzS!)&3@eG`SWW`_mz(5+oU8@YG{HE6#iKjH5U9DY-2AJj$p3P(jc-@V zKdsrY<(v{7kB8sB* zGH+R{izlGTyRifHz)PQA@Ee5J4{tMIFTmRY?=E=z07Ga1#$kB-D}7zoKQZb^l(B>S zMp#QSus!EQnFDbMwi!JAAS0kxgDk<}gAbx>O7#hQp_rITn|N?7r% z*a%{^QARsKT$>?_Cuc;>2#EQ_Vl!x_L5d^W^9`|au-TpzLKDkqOa-7%o}DJg{xm(= zn8!u9WLS-c$=oY)N@v<~^J5DHtg@Qz#YwvFJvT!+z90VMk_!dVpsdBUEf|HIJIrmO9HJ zOD6vu|2uw&zrcUWU*U_|g(_i-a9H@Oa9Ox0ToY~y)51OBk-*|etiuU738&-5co`OO zA$H(OT#ak-THJuQ;wHQezl>Y)8@LPa#Ru>^_$dB0?!~9^0R9LM5kGC!^4WYoU(9dh8~F~t zlRv?qx4K#5GsVN!ZzW6a6}jsMuaISSqFtWuoE{!K}VnvKNN5S58C|X IzpHZo4|?AnsQ>@~ diff --git a/utils/uv-k5_small_4x5.bin b/utils/uv-k5_small_4x5.bin new file mode 100644 index 0000000000000000000000000000000000000000..0ec28eb469e42c8c22f8fb03789fa793a63c097e GIT binary patch literal 570 zcmXYvA(I6$2!kV$l`D}ak(Eef<&!H^yIgB^{&U!xE1s>g z;iafuN6+(gWoA-4#&D@3imOe^>KpCOST3VC>8%Ql7-MQ%~~7&1U`(7?MfIv#q_UpUD-6ZO0=$gdF3K-e%setmA2 zj$*c}+uDIl7z9C1+?!})F7mkgIorH7#oWz~F)Nf;f6KwEJKY@~vUa{jXXofA_AKb9 h3rx7K{*F{${r}$-E^f|n6#DCY!Mn)(