summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/lcd-h100-remote.c8
-rw-r--r--firmware/drivers/lcd-recorder.c8
2 files changed, 6 insertions, 10 deletions
diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c
index fe1c82dd3d..3edb27c155 100644
--- a/firmware/drivers/lcd-h100-remote.c
+++ b/firmware/drivers/lcd-h100-remote.c
@@ -421,14 +421,12 @@ void lcd_remote_update_rect(int x, int y, int width, int height)
421 if(ymax >= LCD_REMOTE_HEIGHT/8) 421 if(ymax >= LCD_REMOTE_HEIGHT/8)
422 ymax = LCD_REMOTE_HEIGHT/8-1; 422 ymax = LCD_REMOTE_HEIGHT/8-1;
423 423
424 x += xoffset;
425
426 /* Copy specified rectange bitmap to hardware */ 424 /* Copy specified rectange bitmap to hardware */
427 for (; y <= ymax; y++) 425 for (; y <= ymax; y++)
428 { 426 {
429 lcd_remote_write_command(LCD_REMOTE_CNTL_SET_PAGE_ADDRESS | y); 427 lcd_remote_write_command(LCD_REMOTE_CNTL_SET_PAGE_ADDRESS | y);
430 lcd_remote_write_command(LCD_REMOTE_CNTL_HIGHCOL | ((x >> 4) & 0xf)); 428 lcd_remote_write_command(LCD_REMOTE_CNTL_HIGHCOL | (((x+xoffset) >> 4) & 0xf));
431 lcd_remote_write_command(LCD_REMOTE_CNTL_LOWCOL | (x & 0xf)); 429 lcd_remote_write_command(LCD_REMOTE_CNTL_LOWCOL | ((x+xoffset) & 0xf));
432 lcd_remote_write_data(&lcd_remote_framebuffer[y][x], width); 430 lcd_remote_write_data(&lcd_remote_framebuffer[y][x], width);
433 } 431 }
434} 432}
diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c
index 65866ec83f..bec441c689 100644
--- a/firmware/drivers/lcd-recorder.c
+++ b/firmware/drivers/lcd-recorder.c
@@ -293,7 +293,7 @@ void lcd_update(void)
293 for (y = 0; y < LCD_HEIGHT/8; y++) 293 for (y = 0; y < LCD_HEIGHT/8; y++)
294 { 294 {
295 lcd_write_command (LCD_CNTL_PAGE | (y & 0xf)); 295 lcd_write_command (LCD_CNTL_PAGE | (y & 0xf));
296 lcd_write_command (LCD_CNTL_HIGHCOL | ((xoffset>>4) & 0xf)); 296 lcd_write_command (LCD_CNTL_HIGHCOL | ((xoffset >> 4) & 0xf));
297 lcd_write_command (LCD_CNTL_LOWCOL | (xoffset & 0xf)); 297 lcd_write_command (LCD_CNTL_LOWCOL | (xoffset & 0xf));
298 298
299 lcd_write_data (lcd_framebuffer[y], LCD_WIDTH); 299 lcd_write_data (lcd_framebuffer[y], LCD_WIDTH);
@@ -316,15 +316,13 @@ void lcd_update_rect(int x, int y, int width, int height)
316 return; /* nothing left to do, 0 is harmful to lcd_write_data() */ 316 return; /* nothing left to do, 0 is harmful to lcd_write_data() */
317 if(ymax >= LCD_HEIGHT/8) 317 if(ymax >= LCD_HEIGHT/8)
318 ymax = LCD_HEIGHT/8-1; 318 ymax = LCD_HEIGHT/8-1;
319
320 x += xoffset;
321 319
322 /* Copy specified rectange bitmap to hardware */ 320 /* Copy specified rectange bitmap to hardware */
323 for (; y <= ymax; y++) 321 for (; y <= ymax; y++)
324 { 322 {
325 lcd_write_command (LCD_CNTL_PAGE | (y & 0xf)); 323 lcd_write_command (LCD_CNTL_PAGE | (y & 0xf));
326 lcd_write_command (LCD_CNTL_HIGHCOL | ((x >> 4) & 0xf)); 324 lcd_write_command (LCD_CNTL_HIGHCOL | (((x+xoffset) >> 4) & 0xf));
327 lcd_write_command (LCD_CNTL_LOWCOL | (x & 0xf)); 325 lcd_write_command (LCD_CNTL_LOWCOL | ((x+xoffset) & 0xf));
328 326
329 lcd_write_data (&lcd_framebuffer[y][x], width); 327 lcd_write_data (&lcd_framebuffer[y][x], width);
330 } 328 }