summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/lcd.c28
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