diff --git a/Marlin/utf_mapper.h b/Marlin/utf_mapper.h index d54be6ceb..f04f1f87c 100644 --- a/Marlin/utf_mapper.h +++ b/Marlin/utf_mapper.h @@ -9,14 +9,14 @@ #define HARDWAERE_CHAR_OUT lcd.write #endif -#ifndef SIMULATE_ROMFONT - #if defined( DISPLAY_CHARSET_ISO10646_1 ) && defined( DOGLCD ) +#if !(defined( SIMULATE_ROMFONT )) && defined( DOGLCD ) + #if defined( DISPLAY_CHARSET_ISO10646_1 ) #define MAPPER_ONE_TO_ONE - #elif defined( DISPLAY_CHARSET_ISO10646_5 ) && defined( DOGLCD ) + #elif defined( DISPLAY_CHARSET_ISO10646_5 ) #define MAPPER_ONE_TO_ONE - #elif defined( DISPLAY_CHARSET_ISO10646_KANA ) && defined( DOGLCD ) + #elif defined( DISPLAY_CHARSET_ISO10646_KANA ) #define MAPPER_ONE_TO_ONE - #elif defined( DISPLAY_CHARSET_KANJI ) && defined( DOGLCD ) + #elif defined( DISPLAY_CHARSET_KANJI ) #define MAPPER_NON #endif #else // SIMULATE_ROMFONT @@ -59,6 +59,7 @@ #elif defined( DISPLAY_CHARSET_HD44780_WESTERN ) #if defined( MAPPER_C2C3 ) + : const PROGMEM uint8_t utf_recode[] = { // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is relative complete. 0x20,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0x22,0xa9,0xaa,0xab,0x3f,0x3f,0xae,0x3f, // c2a ¡¢£¤¥¦§¨©ª«¬­®¯ @@ -119,6 +120,8 @@ #elif defined( MAPPER_E382E383 ) #error( "Katakana on a cyrillic display makes no sense. There are no matching symbols." ); #endif + #else + #error("Something went wrong in the selection of DISPLAY_CHARSET_HD44780's"); #endif // DISPLAY_CHARSET_HD44780_CYRILIC #endif // SIMULATE_ROMFONT @@ -141,7 +144,7 @@ else if (seen_c2){ d &= 0x3f; #ifndef MAPPER_ONE_TO_ONE - HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20) ); + HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) ); #else HARDWAERE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d) ) ; #endif @@ -175,7 +178,7 @@ } else if ((utf_hi_char == 1) && (d == 0x11)) { HARDWAERE_CHAR_OUT((char) 0xb5 ); // ё } else { - HARDWAERE_CHAR_OUT((char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x10 )); + HARDWAERE_CHAR_OUT((char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x10 ) ); } } else { @@ -200,9 +203,9 @@ } else if (seen_d5) { d &= 0x3fu; #ifndef MAPPER_ONE_TO_ONE - HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20) ); + HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) ); #else - HARDWAERE_CHAR_OUT( (char) (0xa0u + ( utf_hi_char << 6 ) + d) ) ; + HARDWAERE_CHAR_OUT( (char) (0xa0u + ( utf_hi_char << 6 ) + d ) ) ; #endif } else { HARDWAERE_CHAR_OUT('?'); @@ -230,9 +233,9 @@ } else if ((seen_e3 == true) && (seen_82_83 == true)){ d &= 0x3f; #ifndef MAPPER_ONE_TO_ONE - HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20) ); + HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) ); #else - HARDWAERE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d) ) ; + HARDWAERE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d ) ) ; #endif } else { HARDWAERE_CHAR_OUT((char) '?' );