diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugins/lib/xlcd_scroll.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/apps/plugins/lib/xlcd_scroll.c b/apps/plugins/lib/xlcd_scroll.c index f8eac1d4b9..0d06545c84 100644 --- a/apps/plugins/lib/xlcd_scroll.c +++ b/apps/plugins/lib/xlcd_scroll.c | |||
@@ -171,7 +171,7 @@ void xlcd_scroll_left(int count) | |||
171 | int bx, y; | 171 | int bx, y; |
172 | unsigned char *addr = rb->lcd_framebuffer + blocklen; | 172 | unsigned char *addr = rb->lcd_framebuffer + blocklen; |
173 | #if LCD_DEPTH == 2 | 173 | #if LCD_DEPTH == 2 |
174 | unsigned fill = 0x55 * (~rb->lcd_get_background() & 3); | 174 | unsigned fill = (0x55 * (~rb->lcd_get_background() & 3)) << bitcount; |
175 | #endif | 175 | #endif |
176 | 176 | ||
177 | for (y = 0; y < LCD_HEIGHT; y++) | 177 | for (y = 0; y < LCD_HEIGHT; y++) |
@@ -479,12 +479,9 @@ void xlcd_scroll_up(int count) | |||
479 | ".su_iloop: \n" /* repeat for all rows */ | 479 | ".su_iloop: \n" /* repeat for all rows */ |
480 | "sub.l %[wide],%%a1\n" /* address -= width */ | 480 | "sub.l %[wide],%%a1\n" /* address -= width */ |
481 | 481 | ||
482 | "clr.l %%d0 \n" | ||
483 | "move.b (%%a1),%%d0 \n" /* get data byte */ | ||
484 | "lsl.l #8,%%d1 \n" /* old data to 2nd byte */ | 482 | "lsl.l #8,%%d1 \n" /* old data to 2nd byte */ |
485 | "or.l %%d1,%%d0 \n" /* combine old data */ | 483 | "move.b (%%a1),%%d1 \n" /* combine with new data byte */ |
486 | "clr.l %%d1 \n" | 484 | "move.l %%d1,%%d0 \n" /* keep data for next round */ |
487 | "move.b %%d0,%%d1 \n" /* keep data for next round */ | ||
488 | "lsr.l %[cnt],%%d0 \n" /* shift right */ | 485 | "lsr.l %[cnt],%%d0 \n" /* shift right */ |
489 | "move.b %%d0,(%%a1) \n" /* store data */ | 486 | "move.b %%d0,(%%a1) \n" /* store data */ |
490 | 487 | ||