|
@@ -9,14 +9,14 @@
|
9
|
9
|
#define HARDWAERE_CHAR_OUT lcd.write
|
10
|
10
|
#endif
|
11
|
11
|
|
12
|
|
-#ifndef SIMULATE_ROMFONT
|
13
|
|
- #if defined( DISPLAY_CHARSET_ISO10646_1 ) && defined( DOGLCD )
|
|
12
|
+#if !(defined( SIMULATE_ROMFONT )) && defined( DOGLCD )
|
|
13
|
+ #if defined( DISPLAY_CHARSET_ISO10646_1 )
|
14
|
14
|
#define MAPPER_ONE_TO_ONE
|
15
|
|
- #elif defined( DISPLAY_CHARSET_ISO10646_5 ) && defined( DOGLCD )
|
|
15
|
+ #elif defined( DISPLAY_CHARSET_ISO10646_5 )
|
16
|
16
|
#define MAPPER_ONE_TO_ONE
|
17
|
|
- #elif defined( DISPLAY_CHARSET_ISO10646_KANA ) && defined( DOGLCD )
|
|
17
|
+ #elif defined( DISPLAY_CHARSET_ISO10646_KANA )
|
18
|
18
|
#define MAPPER_ONE_TO_ONE
|
19
|
|
- #elif defined( DISPLAY_CHARSET_KANJI ) && defined( DOGLCD )
|
|
19
|
+ #elif defined( DISPLAY_CHARSET_KANJI )
|
20
|
20
|
#define MAPPER_NON
|
21
|
21
|
#endif
|
22
|
22
|
#else // SIMULATE_ROMFONT
|
|
@@ -59,6 +59,7 @@
|
59
|
59
|
|
60
|
60
|
#elif defined( DISPLAY_CHARSET_HD44780_WESTERN )
|
61
|
61
|
#if defined( MAPPER_C2C3 )
|
|
62
|
+ :
|
62
|
63
|
const PROGMEM uint8_t utf_recode[] =
|
63
|
64
|
{ // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is relative complete.
|
64
|
65
|
0x20,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0x22,0xa9,0xaa,0xab,0x3f,0x3f,0xae,0x3f, // c2a ¡¢£¤¥¦§¨©ª«¬®¯
|
|
@@ -119,6 +120,8 @@
|
119
|
120
|
#elif defined( MAPPER_E382E383 )
|
120
|
121
|
#error( "Katakana on a cyrillic display makes no sense. There are no matching symbols." );
|
121
|
122
|
#endif
|
|
123
|
+ #else
|
|
124
|
+ #error("Something went wrong in the selection of DISPLAY_CHARSET_HD44780's");
|
122
|
125
|
#endif // DISPLAY_CHARSET_HD44780_CYRILIC
|
123
|
126
|
#endif // SIMULATE_ROMFONT
|
124
|
127
|
|
|
@@ -141,7 +144,7 @@
|
141
|
144
|
else if (seen_c2){
|
142
|
145
|
d &= 0x3f;
|
143
|
146
|
#ifndef MAPPER_ONE_TO_ONE
|
144
|
|
- HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20) );
|
|
147
|
+ HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) );
|
145
|
148
|
#else
|
146
|
149
|
HARDWAERE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d) ) ;
|
147
|
150
|
#endif
|
|
@@ -175,7 +178,7 @@
|
175
|
178
|
} else if ((utf_hi_char == 1) && (d == 0x11)) {
|
176
|
179
|
HARDWAERE_CHAR_OUT((char) 0xb5 ); // ё
|
177
|
180
|
} else {
|
178
|
|
- HARDWAERE_CHAR_OUT((char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x10 ));
|
|
181
|
+ HARDWAERE_CHAR_OUT((char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x10 ) );
|
179
|
182
|
}
|
180
|
183
|
}
|
181
|
184
|
else {
|
|
@@ -200,9 +203,9 @@
|
200
|
203
|
} else if (seen_d5) {
|
201
|
204
|
d &= 0x3fu;
|
202
|
205
|
#ifndef MAPPER_ONE_TO_ONE
|
203
|
|
- HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20) );
|
|
206
|
+ HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) );
|
204
|
207
|
#else
|
205
|
|
- HARDWAERE_CHAR_OUT( (char) (0xa0u + ( utf_hi_char << 6 ) + d) ) ;
|
|
208
|
+ HARDWAERE_CHAR_OUT( (char) (0xa0u + ( utf_hi_char << 6 ) + d ) ) ;
|
206
|
209
|
#endif
|
207
|
210
|
} else {
|
208
|
211
|
HARDWAERE_CHAR_OUT('?');
|
|
@@ -230,9 +233,9 @@
|
230
|
233
|
} else if ((seen_e3 == true) && (seen_82_83 == true)){
|
231
|
234
|
d &= 0x3f;
|
232
|
235
|
#ifndef MAPPER_ONE_TO_ONE
|
233
|
|
- HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20) );
|
|
236
|
+ HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20 ) );
|
234
|
237
|
#else
|
235
|
|
- HARDWAERE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d) ) ;
|
|
238
|
+ HARDWAERE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d ) ) ;
|
236
|
239
|
#endif
|
237
|
240
|
} else {
|
238
|
241
|
HARDWAERE_CHAR_OUT((char) '?' );
|