From 1d491e772b1d19020461c30b0a16bb2a8114f5b1 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 13 Jan 2022 15:01:36 +0100 Subject: [PATCH] Expand maximum language count (#3345) * Expand maximum language count --- Firmware/Marlin_main.cpp | 6 +++--- Firmware/config.h | 2 +- Firmware/language.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 01e62f2a..9778e565 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -919,8 +919,8 @@ void update_sec_lang_from_external_flash() { if ((boot_app_magic == BOOT_APP_MAGIC) && (boot_app_flags & BOOT_APP_FLG_USER0)) { - uint8_t lang = boot_reserved >> 4; - uint8_t state = boot_reserved & 0xf; + uint8_t lang = boot_reserved >> 3; + uint8_t state = boot_reserved & 0x07; lang_table_header_t header; uint32_t src_addr; if (lang_get_header(lang, &header, &src_addr)) @@ -928,7 +928,7 @@ void update_sec_lang_from_external_flash() lcd_puts_at_P(1,3,PSTR("Language update.")); for (uint8_t i = 0; i < state; i++) fputc('.', lcdout); _delay(100); - boot_reserved = (state + 1) | (lang << 4); + boot_reserved = (boot_reserved & 0xF8) | ((state + 1) & 0x07); if ((state * LANGBOOT_BLOCKSIZE) < header.size) { cli(); diff --git a/Firmware/config.h b/Firmware/config.h index 1a9724d7..957e27a2 100644 --- a/Firmware/config.h +++ b/Firmware/config.h @@ -58,7 +58,7 @@ //#define LANG_MODE 0 // primary language only #define LANG_MODE 1 // sec. language support -#define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes) +#define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes). Maximum 32768 bytes //Community language support #define COMMUNITY_LANG_GROUP 1 diff --git a/Firmware/language.c b/Firmware/language.c index 4af0e5ce..77db2d75 100644 --- a/Firmware/language.c +++ b/Firmware/language.c @@ -300,5 +300,5 @@ void lang_boot_update_start(uint8_t lang) { uint8_t cnt = lang_get_count(); if ((lang < 2) || (lang > cnt)) return; //only languages from xflash can be selected - bootapp_reboot_user0(lang << 4); + bootapp_reboot_user0(lang << 3); }