diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/lcd.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c index 7d53021206..21362918c8 100644 --- a/firmware/drivers/lcd.c +++ b/firmware/drivers/lcd.c | |||
@@ -501,20 +501,24 @@ void lcd_putsxy(int x, int y, char *str, int thisfont) | |||
501 | return; | 501 | return; |
502 | 502 | ||
503 | /* Limit to char generation table */ | 503 | /* Limit to char generation table */ |
504 | if (ch >= ASCII_MIN && ch <= ASCII_MAX) | 504 | if ((ch < ASCII_MIN) || (ch > ASCII_MAX)) |
505 | { | 505 | /* replace unsupported letters with question marks */ |
506 | if (nx == 12) | 506 | ch = '?' - ASCII_MIN; |
507 | src = char_gen_12x16[ch-ASCII_MIN][0]; | 507 | else |
508 | else if (nx == 8) | 508 | ch -= ASCII_MIN; |
509 | src = char_gen_8x12[ch-ASCII_MIN][0]; | 509 | |
510 | else | 510 | if (thisfont == 2) |
511 | src = char_gen_6x8[ch-ASCII_MIN][0]; | 511 | src = char_gen_12x16[ch][0]; |
512 | else if (thisfont == 1) | ||
513 | src = char_gen_8x12[ch][0]; | ||
514 | else | ||
515 | src = char_gen_6x8[ch][0]; | ||
516 | |||
517 | lcd_bitmap (src, lcd_x, lcd_y, nx-1, ny, true); | ||
518 | lcd_bitmap (zeros, lcd_x+nx-1, lcd_y, 1, ny, true); | ||
512 | 519 | ||
513 | lcd_bitmap (src, lcd_x, lcd_y, nx-1, ny, true); | 520 | lcd_x += nx; |
514 | lcd_bitmap (zeros, lcd_x+nx-1, lcd_y, 1, ny, true); | ||
515 | 521 | ||
516 | lcd_x += nx; | ||
517 | } | ||
518 | } | 522 | } |
519 | } | 523 | } |
520 | 524 | ||