diff --git a/src/font.lbm b/src/font.lbm index 74193796b..e45199fb6 100644 --- a/src/font.lbm +++ b/src/font.lbm @@ -1,5 +1,5 @@ prog_uchar APM font[] = { -80,8,80, +80,8, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6f,0x00,0x00,0x07,0x00,0x07,0x00,0x14,0x7f,0x14,0x7f,0x14,0x24,0x2a,0x7f,0x2a,0x12,0x23,0x13,0x08,0x64,0x62,0x36,0x49,0x55,0x22,0x50,0x00,0x05,0x03,0x00,0x00,0x00,0x1c,0x22,0x41,0x00,0x00,0x41,0x22,0x1c,0x00,0x14,0x08,0x3e,0x08,0x14,0x08,0x08,0x3e,0x08,0x08,0x00,0x50,0x30,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x60,0x60,0x00,0x00,0x20,0x10,0x08,0x04,0x02, 0x00,0x3e,0x41,0x41,0x3e,0x00,0x00,0x42,0x7f,0x40,0x00,0x62,0x51,0x49,0x46,0x00,0x41,0x49,0x49,0x36,0x00,0x18,0x14,0x12,0x7f,0x00,0x27,0x45,0x45,0x39,0x00,0x3e,0x49,0x49,0x32,0x00,0x01,0x79,0x05,0x03,0x00,0x36,0x49,0x49,0x36,0x00,0x06,0x49,0x29,0x1e,0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x56,0x36,0x00,0x00,0x08,0x14,0x22,0x41,0x14,0x14,0x14,0x14,0x14,0x41,0x22,0x14,0x08,0x00,0x02,0x01,0x51,0x09,0x06, 0x06,0x09,0x09,0x06,0x00,0x7e,0x09,0x09,0x09,0x7e,0x7f,0x49,0x49,0x49,0x36,0x3e,0x41,0x41,0x41,0x22,0x7f,0x41,0x41,0x22,0x1c,0x7f,0x49,0x49,0x49,0x41,0x7f,0x09,0x09,0x09,0x01,0x3e,0x41,0x49,0x49,0x7a,0x7f,0x08,0x08,0x08,0x7f,0x00,0x41,0x7f,0x41,0x00,0x20,0x40,0x41,0x3f,0x01,0x7f,0x08,0x14,0x22,0x41,0x7f,0x40,0x40,0x40,0x40,0x7f,0x02,0x0c,0x02,0x7f,0x7f,0x04,0x08,0x10,0x7f,0x3e,0x41,0x41,0x41,0x3e, diff --git a/src/font_dblsize.lbm b/src/font_dblsize.lbm index 1f34d1275..f498c2ded 100644 --- a/src/font_dblsize.lbm +++ b/src/font_dblsize.lbm @@ -1,5 +1,5 @@ prog_uchar APM font_dblsize[] = { -160,96,1920, +160,96, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x7e,0x00,0x00,0x7e,0x3e,0x00,0x00,0x60,0x60,0xfe,0xfe,0x60,0x60,0xfe,0xfe,0x60,0x60,0x60,0xf0,0x98,0x98,0xfe,0xfe,0x98,0x98,0x18,0x18,0x0c,0x1e,0x1e,0x0c,0x80,0xc0,0xe0,0x70,0x38,0x18,0x78,0xfc,0x8e,0xc6,0xe6,0x76,0x3c,0x18,0x00,0x00,0x00,0x00,0x66,0x76,0x3e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xf0,0x38,0x1c,0x0e,0x06,0x00,0x00,0x00,0x00,0x06,0x0e,0x1c,0x38,0xf0,0xe0,0x00,0x00,0x60,0x60,0xc0,0x80,0xf8,0xf8,0x80,0xc0,0x60,0x60,0x80,0x80,0x80,0x80,0xf8,0xf8,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0x70,0x38,0x18, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x7f,0x7f,0x06,0x06,0x7f,0x7f,0x06,0x06,0x18,0x18,0x19,0x19,0x7f,0x7f,0x19,0x19,0x0f,0x06,0x18,0x1c,0x0e,0x07,0x03,0x01,0x30,0x78,0x78,0x30,0x1e,0x3f,0x71,0x63,0x67,0x66,0x3c,0x3c,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0f,0x1c,0x38,0x70,0x60,0x00,0x00,0x00,0x00,0x60,0x70,0x38,0x1c,0x0f,0x07,0x00,0x00,0x06,0x06,0x03,0x01,0x1f,0x1f,0x01,0x03,0x06,0x06,0x01,0x01,0x01,0x01,0x1f,0x1f,0x01,0x01,0x01,0x01,0x00,0x00,0x66,0x76,0x3e,0x1e,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x30,0x78,0x78,0x30,0x00,0x00,0x00,0x00,0x18,0x1c,0x0e,0x07,0x03,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0xf8,0xfc,0x0e,0x06,0x06,0x0e,0xfc,0xf8,0x00,0x00,0x18,0x1c,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x1c,0x0e,0x06,0x86,0xce,0xfc,0x78,0x00,0x00,0x06,0x06,0x86,0x86,0x86,0xce,0xfc,0x78,0x00,0x00,0x80,0xc0,0xe0,0x70,0x38,0x1c,0xfe,0xfe,0x00,0x00,0x7e,0x7e,0x66,0x66,0x66,0xe6,0xc6,0x86,0x00,0x00,0xf8,0xfc,0x8e,0x86,0x86,0x8e,0x1c,0x18,0x00,0x00,0x06,0x06,0x86,0xc6,0xe6,0x76,0x3e,0x1e,0x00,0x00,0x78,0xfc,0xce,0x86,0x86,0xce,0xfc,0x78,0x00,0x00,0x78,0xfc,0xce,0x86,0x86,0xce,0xfc,0xf8,0x00,0x00,0x30,0x78,0x78,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x78,0x78,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0x70,0x38,0x1c,0x0e,0x06,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x06,0x0e,0x1c,0x38,0x70,0xe0,0xc0,0x80,0x00,0x00,0x18,0x1c,0x0e,0x06,0x06,0x06,0x86,0xce,0xfc,0x78, diff --git a/src/lcd.cpp b/src/lcd.cpp index 9bae322f8..0bcf9a9d7 100644 --- a/src/lcd.cpp +++ b/src/lcd.cpp @@ -20,14 +20,14 @@ */ #include "lcd.h" +#include "font.lbm" +#include "font_dblsize.lbm" + +#define font_5x8_x20_x7f (font+2) +#define font_10x16_x20_x7f (font_dblsize+2) uint8_t displayBuf[DISPLAY_W*DISPLAY_H/8]; #define DISPLAY_END (displayBuf+sizeof(displayBuf)) -#include "font.lbm" -#define font_5x8_x20_x7f (font+3) - -#include "font_dblsize.lbm" -#define font_10x16_x20_x7f (font_dblsize+3) #ifdef SIMU bool lcd_refresh = true; @@ -39,17 +39,16 @@ void lcd_clear() memset(displayBuf, 0, sizeof(displayBuf)); } -void lcd_img(uint8_t i_x,uint8_t i_y,const prog_uchar * imgdat,uint8_t idx,uint8_t mode) +void lcd_img(uint8_t x, uint8_t y, const prog_uchar * img, uint8_t idx, uint8_t mode) { - const prog_uchar *q = imgdat; + const prog_uchar *q = img; uint8_t w = pgm_read_byte(q++); uint8_t hb = (pgm_read_byte(q++)+7)/8; - uint8_t sze1 = pgm_read_byte(q++); - q += idx*sze1; bool inv = (mode & INVERS) ? true : (mode & BLINK ? BLINK_ON_PHASE : false); - for(uint8_t yb = 0; yb < hb; yb++){ - uint8_t *p = &displayBuf[ (i_y / 8 + yb) * DISPLAY_W + i_x ]; - for(uint8_t x=0; x < w; x++){ + q += idx*w*hb; + for (uint8_t yb = 0; yb < hb; yb++) { + uint8_t *p = &displayBuf[ (y / 8 + yb) * DISPLAY_W + x ]; + for (uint8_t i=0; i