diff options
Diffstat (limited to 'apps/plugins/lib')
-rw-r--r-- | apps/plugins/lib/SOURCES | 2 | ||||
-rw-r--r-- | apps/plugins/lib/grey_core.c | 30 | ||||
-rw-r--r-- | apps/plugins/lib/grey_draw.c | 3 | ||||
-rw-r--r-- | apps/plugins/lib/grey_sh.S | 137 | ||||
-rw-r--r-- | apps/plugins/lib/helper.c | 14 | ||||
-rw-r--r-- | apps/plugins/lib/pluginlib_actions.c | 39 | ||||
-rw-r--r-- | apps/plugins/lib/xlcd_scroll.c | 143 |
7 files changed, 4 insertions, 364 deletions
diff --git a/apps/plugins/lib/SOURCES b/apps/plugins/lib/SOURCES index 1149f35bac..82b9fba4a5 100644 --- a/apps/plugins/lib/SOURCES +++ b/apps/plugins/lib/SOURCES | |||
@@ -21,8 +21,6 @@ grey_scroll.c | |||
21 | 21 | ||
22 | #ifdef CPU_COLDFIRE | 22 | #ifdef CPU_COLDFIRE |
23 | grey_coldfire.S | 23 | grey_coldfire.S |
24 | #elif CONFIG_CPU == SH7034 | ||
25 | grey_sh.S | ||
26 | #endif | 24 | #endif |
27 | 25 | ||
28 | #endif /* HAVE_LCD_BITMAP && LCD_DEPTH < 4 */ | 26 | #endif /* HAVE_LCD_BITMAP && LCD_DEPTH < 4 */ |
diff --git a/apps/plugins/lib/grey_core.c b/apps/plugins/lib/grey_core.c index bb6823522d..55d0684103 100644 --- a/apps/plugins/lib/grey_core.c +++ b/apps/plugins/lib/grey_core.c | |||
@@ -36,35 +36,7 @@ | |||
36 | 36 | ||
37 | #ifndef SIMULATOR | 37 | #ifndef SIMULATOR |
38 | 38 | ||
39 | #if defined ARCHOS_RECORDER /* verified */ \ | 39 | #if defined IAUDIO_M3 /* verified */ |
40 | || defined ARCHOS_FMRECORDER /* should be identical */ \ | ||
41 | || defined ARCHOS_RECORDERV2 /* should be identical */ \ | ||
42 | || defined ARCHOS_ONDIOFM /* verified */ \ | ||
43 | || defined ARCHOS_ONDIOSP /* verified */ | ||
44 | /* Average measurements of a Recorder v1, an Ondio FM, a backlight-modded | ||
45 | * Ondio FM, and an Ondio SP. */ | ||
46 | static const unsigned char lcdlinear[256] = { | ||
47 | 5, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 29, 31, 33, 35, | ||
48 | 37, 39, 40, 42, 43, 45, 46, 48, 49, 50, 51, 53, 54, 55, 57, 58, | ||
49 | 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 71, 72, | ||
50 | 73, 74, 74, 75, 76, 77, 77, 78, 79, 79, 80, 80, 81, 81, 82, 82, | ||
51 | 83, 84, 84, 85, 86, 86, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, | ||
52 | 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 98, 98, 99, 100, 100, | ||
53 | 101, 101, 102, 103, 103, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, | ||
54 | 110, 110, 111, 112, 112, 113, 114, 114, 115, 115, 116, 117, 117, 118, 119, 119, | ||
55 | 120, 120, 121, 122, 123, 123, 124, 125, 126, 126, 127, 128, 129, 129, 130, 131, | ||
56 | 132, 132, 133, 134, 135, 135, 136, 137, 138, 138, 139, 140, 140, 141, 141, 142, | ||
57 | 143, 144, 145, 146, 147, 147, 148, 149, 150, 151, 152, 153, 154, 154, 155, 156, | ||
58 | 157, 158, 159, 160, 161, 161, 162, 163, 164, 165, 166, 167, 168, 168, 169, 170, | ||
59 | 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, | ||
60 | 188, 189, 191, 192, 194, 195, 197, 198, 199, 200, 202, 203, 204, 205, 207, 208, | ||
61 | 209, 210, 212, 213, 215, 216, 218, 219, 220, 221, 222, 223, 225, 226, 227, 228, | ||
62 | 229, 230, 232, 233, 234, 235, 237, 238, 239, 240, 242, 243, 244, 246, 247, 248 | ||
63 | }; | ||
64 | /* The actual LCD scanrate varies a lot with temperature on these targets */ | ||
65 | #define LCD_SCANRATE 67 /* Hz */ | ||
66 | |||
67 | #elif defined IAUDIO_M3 /* verified */ | ||
68 | /* Average measurements of 2 iAudio remotes connected to an M3. */ | 40 | /* Average measurements of 2 iAudio remotes connected to an M3. */ |
69 | static const unsigned char lcdlinear[256] = { | 41 | static const unsigned char lcdlinear[256] = { |
70 | 5, 9, 13, 17, 21, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 66, | 42 | 5, 9, 13, 17, 21, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 66, |
diff --git a/apps/plugins/lib/grey_draw.c b/apps/plugins/lib/grey_draw.c index 64dabc2fb3..298ffbe16e 100644 --- a/apps/plugins/lib/grey_draw.c +++ b/apps/plugins/lib/grey_draw.c | |||
@@ -758,8 +758,7 @@ void grey_ub_gray_bitmap_part(const unsigned char *src, int src_x, int src_y, | |||
758 | + (~yc & _GREY_BMASK); | 758 | + (~yc & _GREY_BMASK); |
759 | #endif /* LCD_PIXELFORMAT */ | 759 | #endif /* LCD_PIXELFORMAT */ |
760 | 760 | ||
761 | #if ((LCD_PIXELFORMAT == VERTICAL_PACKING) && (LCD_DEPTH == 1) && (CONFIG_CPU == SH7034)) \ | 761 | #if ((LCD_PIXELFORMAT == VERTICAL_PACKING) && (LCD_DEPTH == 2) && defined(CPU_COLDFIRE)) \ |
762 | || ((LCD_PIXELFORMAT == VERTICAL_PACKING) && (LCD_DEPTH == 2) && defined(CPU_COLDFIRE)) \ | ||
763 | || ((LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) && defined(CPU_COLDFIRE)) | 762 | || ((LCD_PIXELFORMAT == VERTICAL_INTERLEAVED) && defined(CPU_COLDFIRE)) |
764 | _grey_line1(width, dst + idx, src, _grey_info.gvalue); | 763 | _grey_line1(width, dst + idx, src, _grey_info.gvalue); |
765 | #else | 764 | #else |
diff --git a/apps/plugins/lib/grey_sh.S b/apps/plugins/lib/grey_sh.S deleted file mode 100644 index 5714f95f8c..0000000000 --- a/apps/plugins/lib/grey_sh.S +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * New greyscale framework | ||
11 | * SH1 assembler routines | ||
12 | * | ||
13 | * This is a generic framework to display 129 shades of grey on low-depth | ||
14 | * bitmap LCDs (Archos b&w, Iriver & Ipod 4-grey) within plugins. | ||
15 | * | ||
16 | * Copyright (C) 2008 Jens Arnold | ||
17 | * | ||
18 | * This program is free software; you can redistribute it and/or | ||
19 | * modify it under the terms of the GNU General Public License | ||
20 | * as published by the Free Software Foundation; either version 2 | ||
21 | * of the License, or (at your option) any later version. | ||
22 | * | ||
23 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
24 | * KIND, either express or implied. | ||
25 | * | ||
26 | ****************************************************************************/ | ||
27 | |||
28 | #include "config.h" | ||
29 | /* Plugins should not normally do this, but we need to check a macro, and | ||
30 | * plugin.h would confuse the assembler. */ | ||
31 | |||
32 | .text | ||
33 | .global __grey_line1 | ||
34 | .type __grey_line1, @function | ||
35 | |||
36 | #if (LCD_PIXELFORMAT == VERTICAL_PACKING) && (LCD_DEPTH == 1) | ||
37 | |||
38 | /**************************************************************************** | ||
39 | * void _grey_line1(int width, r4 | ||
40 | * unsigned char *dst, r5 | ||
41 | * const unsigned char *src, r6 | ||
42 | * const unsigned char *lut); r7 | ||
43 | */ | ||
44 | |||
45 | __grey_line1: | ||
46 | mov #1, r0 | ||
47 | tst r0, r6 | ||
48 | bt .p1_h_end | ||
49 | |||
50 | mov.b @r6+, r0 | ||
51 | extu.b r0, r0 | ||
52 | mov.b @(r0, r7), r0 | ||
53 | add #-1, r4 | ||
54 | mov.b r0, @r5 | ||
55 | add #8, r5 | ||
56 | .p1_h_end: | ||
57 | |||
58 | mov #2, r0 | ||
59 | cmp/hs r0, r4 | ||
60 | bf .p2_t_end | ||
61 | tst r0, r6 | ||
62 | bt .p2_h_end | ||
63 | |||
64 | mov.w @r6+, r1 | ||
65 | extu.b r1, r0 | ||
66 | mov.b @(r0, r7), r0 | ||
67 | shlr8 r1 | ||
68 | mov.b r0, @(8, r5) | ||
69 | extu.b r1, r0 | ||
70 | mov.b @(r0, r7), r0 | ||
71 | add #-2, r4 | ||
72 | mov.b r0, @r5 | ||
73 | add #16, r5 | ||
74 | .p2_h_end: | ||
75 | |||
76 | add #-4, r4 | ||
77 | cmp/pz r4 | ||
78 | bf .p4_end | ||
79 | |||
80 | add r6, r4 | ||
81 | |||
82 | .p4_loop: | ||
83 | mov.l @r6+, r1 | ||
84 | swap.w r1, r2 | ||
85 | extu.b r2, r0 | ||
86 | mov.b @(r0, r7), r0 | ||
87 | shlr8 r2 | ||
88 | mov.b r0, @(8, r5) | ||
89 | extu.b r2, r0 | ||
90 | mov.b @(r0, r7), r2 | ||
91 | extu.b r1, r0 | ||
92 | mov.b r2, @r5 | ||
93 | add #16, r5 | ||
94 | mov.b @(r0, r7), r0 | ||
95 | shlr8 r1 | ||
96 | mov.b r0, @(8, r5) | ||
97 | extu.b r1, r0 | ||
98 | mov.b @(r0, r7), r0 | ||
99 | cmp/hs r6, r4 | ||
100 | mov.b r0, @r5 | ||
101 | add #16, r5 | ||
102 | bt .p4_loop | ||
103 | |||
104 | /* No need to correct the count, we're only testing bits from now on. */ | ||
105 | |||
106 | .p4_end: | ||
107 | mov #2, r0 | ||
108 | tst r0, r4 | ||
109 | bt .p2_t_end | ||
110 | |||
111 | mov.w @r6+, r1 | ||
112 | extu.b r1, r0 | ||
113 | mov.b @(r0, r7), r0 | ||
114 | shlr8 r1 | ||
115 | mov.b r0, @(8, r5) | ||
116 | extu.b r1, r0 | ||
117 | mov.b @(r0, r7), r0 | ||
118 | mov.b r0, @r5 | ||
119 | add #16, r5 | ||
120 | .p2_t_end: | ||
121 | |||
122 | mov #1, r0 | ||
123 | tst r0, r4 | ||
124 | bt .p1_t_end | ||
125 | |||
126 | mov.b @r6+, r0 | ||
127 | extu.b r0, r0 | ||
128 | mov.b @(r0, r7), r0 | ||
129 | rts | ||
130 | mov.b r0, @r5 | ||
131 | .p1_t_end: | ||
132 | |||
133 | rts | ||
134 | nop | ||
135 | .size __grey_line1, . - __grey_line1 | ||
136 | |||
137 | #endif | ||
diff --git a/apps/plugins/lib/helper.c b/apps/plugins/lib/helper.c index 506903e808..6eb3498791 100644 --- a/apps/plugins/lib/helper.c +++ b/apps/plugins/lib/helper.c | |||
@@ -22,20 +22,6 @@ | |||
22 | #include "plugin.h" | 22 | #include "plugin.h" |
23 | #include "helper.h" | 23 | #include "helper.h" |
24 | 24 | ||
25 | #ifdef CPU_SH | ||
26 | /* Lookup table for using the BIT_N() macro in plugins */ | ||
27 | const unsigned bit_n_table[32] = { | ||
28 | 1LU<< 0, 1LU<< 1, 1LU<< 2, 1LU<< 3, | ||
29 | 1LU<< 4, 1LU<< 5, 1LU<< 6, 1LU<< 7, | ||
30 | 1LU<< 8, 1LU<< 9, 1LU<<10, 1LU<<11, | ||
31 | 1LU<<12, 1LU<<13, 1LU<<14, 1LU<<15, | ||
32 | 1LU<<16, 1LU<<17, 1LU<<18, 1LU<<19, | ||
33 | 1LU<<20, 1LU<<21, 1LU<<22, 1LU<<23, | ||
34 | 1LU<<24, 1LU<<25, 1LU<<26, 1LU<<27, | ||
35 | 1LU<<28, 1LU<<29, 1LU<<30, 1LU<<31 | ||
36 | }; | ||
37 | #endif | ||
38 | |||
39 | /* Force the backlight on */ | 25 | /* Force the backlight on */ |
40 | void backlight_force_on(void) | 26 | void backlight_force_on(void) |
41 | { | 27 | { |
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c index e5b48c2f6a..c580074d5e 100644 --- a/apps/plugins/lib/pluginlib_actions.c +++ b/apps/plugins/lib/pluginlib_actions.c | |||
@@ -51,16 +51,6 @@ const struct button_mapping pla_remote_ctx[] = | |||
51 | { PLA_DOWN_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE}, | 51 | { PLA_DOWN_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE}, |
52 | { PLA_LEFT_REPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, | 52 | { PLA_LEFT_REPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, |
53 | { PLA_RIGHT_REPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, | 53 | { PLA_RIGHT_REPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, |
54 | #elif (CONFIG_KEYPAD == PLAYER_PAD) || \ | ||
55 | (CONFIG_KEYPAD == RECORDER_PAD) | ||
56 | { PLA_UP, BUTTON_RC_VOL_UP, BUTTON_NONE}, | ||
57 | { PLA_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE}, | ||
58 | { PLA_LEFT, BUTTON_RC_LEFT, BUTTON_NONE}, | ||
59 | { PLA_RIGHT, BUTTON_RC_RIGHT, BUTTON_NONE}, | ||
60 | { PLA_UP_REPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, | ||
61 | { PLA_DOWN_REPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, | ||
62 | { PLA_LEFT_REPEAT, BUTTON_RC_LEFT|BUTTON_REPEAT, BUTTON_NONE}, | ||
63 | { PLA_RIGHT_REPEAT, BUTTON_RC_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, | ||
64 | #elif (CONFIG_REMOTE_KEYPAD == MROBE_REMOTE) | 54 | #elif (CONFIG_REMOTE_KEYPAD == MROBE_REMOTE) |
65 | { PLA_UP, BUTTON_RC_PLAY, BUTTON_NONE}, | 55 | { PLA_UP, BUTTON_RC_PLAY, BUTTON_NONE}, |
66 | { PLA_DOWN, BUTTON_RC_DOWN, BUTTON_NONE}, | 56 | { PLA_DOWN, BUTTON_RC_DOWN, BUTTON_NONE}, |
@@ -101,9 +91,7 @@ const struct button_mapping pla_main_ctx[] = | |||
101 | || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ | 91 | || (CONFIG_KEYPAD == IRIVER_H300_PAD) \ |
102 | || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \ | 92 | || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \ |
103 | || (CONFIG_KEYPAD == GIGABEAT_PAD) \ | 93 | || (CONFIG_KEYPAD == GIGABEAT_PAD) \ |
104 | || (CONFIG_KEYPAD == RECORDER_PAD) \ | ||
105 | || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \ | 94 | || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \ |
106 | || (CONFIG_KEYPAD == ONDIO_PAD) \ | ||
107 | || (CONFIG_KEYPAD == SANSA_C200_PAD) \ | 95 | || (CONFIG_KEYPAD == SANSA_C200_PAD) \ |
108 | || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ | 96 | || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \ |
109 | || (CONFIG_KEYPAD == MROBE100_PAD) \ | 97 | || (CONFIG_KEYPAD == MROBE100_PAD) \ |
@@ -145,15 +133,6 @@ const struct button_mapping pla_main_ctx[] = | |||
145 | { PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | 133 | { PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, |
146 | { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 134 | { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
147 | { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 135 | { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
148 | #elif (CONFIG_KEYPAD == PLAYER_PAD) | ||
149 | { PLA_UP, BUTTON_PLAY, BUTTON_NONE }, | ||
150 | { PLA_DOWN, BUTTON_STOP, BUTTON_NONE }, | ||
151 | { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
152 | { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
153 | { PLA_UP_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | ||
154 | { PLA_DOWN_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE }, | ||
155 | { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
156 | { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
157 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) | 136 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) |
158 | { PLA_UP, BUTTON_SCROLL_UP, BUTTON_NONE }, | 137 | { PLA_UP, BUTTON_SCROLL_UP, BUTTON_NONE }, |
159 | { PLA_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE }, | 138 | { PLA_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE }, |
@@ -339,24 +318,6 @@ const struct button_mapping pla_main_ctx[] = | |||
339 | {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE}, | 318 | {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE}, |
340 | {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, | 319 | {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, |
341 | {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, | 320 | {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, |
342 | #elif (CONFIG_KEYPAD == RECORDER_PAD) | ||
343 | {PLA_CANCEL, BUTTON_ON, BUTTON_NONE}, | ||
344 | {PLA_EXIT, BUTTON_OFF, BUTTON_NONE}, | ||
345 | {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, | ||
346 | {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, | ||
347 | {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, | ||
348 | #elif (CONFIG_KEYPAD == ONDIO_PAD) | ||
349 | {PLA_CANCEL, BUTTON_OFF|BUTTON_REL, BUTTON_OFF}, | ||
350 | {PLA_EXIT, BUTTON_OFF|BUTTON_REPEAT, BUTTON_NONE}, | ||
351 | {PLA_SELECT, BUTTON_MENU, BUTTON_NONE}, | ||
352 | {PLA_SELECT_REL, BUTTON_MENU|BUTTON_REL, BUTTON_MENU}, | ||
353 | {PLA_SELECT_REPEAT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE}, | ||
354 | #elif (CONFIG_KEYPAD == PLAYER_PAD) | ||
355 | {PLA_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_MENU}, | ||
356 | {PLA_EXIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE}, | ||
357 | {PLA_SELECT, BUTTON_ON, BUTTON_NONE}, | ||
358 | {PLA_SELECT_REL, BUTTON_ON|BUTTON_REL, BUTTON_ON}, | ||
359 | {PLA_SELECT_REPEAT, BUTTON_ON|BUTTON_REPEAT, BUTTON_NONE}, | ||
360 | #elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) | 321 | #elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) |
361 | {PLA_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME}, | 322 | {PLA_CANCEL, BUTTON_HOME|BUTTON_REL, BUTTON_HOME}, |
362 | {PLA_EXIT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE}, | 323 | {PLA_EXIT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE}, |
diff --git a/apps/plugins/lib/xlcd_scroll.c b/apps/plugins/lib/xlcd_scroll.c index f2fc71ea47..e0fead71be 100644 --- a/apps/plugins/lib/xlcd_scroll.c +++ b/apps/plugins/lib/xlcd_scroll.c | |||
@@ -396,77 +396,7 @@ void xlcd_scroll_up(int count) | |||
396 | { | 396 | { |
397 | #if LCD_PIXELFORMAT == VERTICAL_PACKING | 397 | #if LCD_PIXELFORMAT == VERTICAL_PACKING |
398 | 398 | ||
399 | #if (CONFIG_CPU == SH7034) && (LCD_DEPTH == 1) | 399 | #if defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) |
400 | asm ( | ||
401 | "mov #0,r4 \n" /* x = 0 */ | ||
402 | "mova .su_shifttbl,r0 \n" /* calculate jump destination for */ | ||
403 | "mov.b @(r0,%[cnt]),%[cnt] \n" /* shift amount from table */ | ||
404 | "bra .su_cloop \n" /* skip table */ | ||
405 | "add r0,%[cnt] \n" | ||
406 | |||
407 | ".align 2 \n" | ||
408 | ".su_shifttbl: \n" /* shift jump offset table */ | ||
409 | ".byte .su_shift0 - .su_shifttbl \n" | ||
410 | ".byte .su_shift1 - .su_shifttbl \n" | ||
411 | ".byte .su_shift2 - .su_shifttbl \n" | ||
412 | ".byte .su_shift3 - .su_shifttbl \n" | ||
413 | ".byte .su_shift4 - .su_shifttbl \n" | ||
414 | ".byte .su_shift5 - .su_shifttbl \n" | ||
415 | ".byte .su_shift6 - .su_shifttbl \n" | ||
416 | ".byte .su_shift7 - .su_shifttbl \n" | ||
417 | |||
418 | ".su_cloop: \n" /* repeat for every column */ | ||
419 | "mov %[addr],r2 \n" /* get start address */ | ||
420 | "mov #0,r3 \n" /* current_row = 0 */ | ||
421 | "mov #0,r1 \n" /* fill with zero */ | ||
422 | |||
423 | ".su_iloop: \n" /* repeat for all rows */ | ||
424 | "sub %[wide],r2 \n" /* address -= width */ | ||
425 | "mov.b @r2,r0 \n" /* get data byte */ | ||
426 | "shll8 r1 \n" /* old data to 2nd byte */ | ||
427 | "extu.b r0,r0 \n" /* extend unsigned */ | ||
428 | "or r1,r0 \n" /* combine old data */ | ||
429 | "jmp @%[cnt] \n" /* jump into shift "path" */ | ||
430 | "extu.b r0,r1 \n" /* store data for next round */ | ||
431 | |||
432 | ".su_shift6: \n" /* shift right by 0..7 bits */ | ||
433 | "shll2 r0 \n" | ||
434 | "bra .su_shift0 \n" | ||
435 | "shlr8 r0 \n" | ||
436 | ".su_shift4: \n" | ||
437 | "shlr2 r0 \n" | ||
438 | ".su_shift2: \n" | ||
439 | "bra .su_shift0 \n" | ||
440 | "shlr2 r0 \n" | ||
441 | ".su_shift7: \n" | ||
442 | "shlr2 r0 \n" | ||
443 | ".su_shift5: \n" | ||
444 | "shlr2 r0 \n" | ||
445 | ".su_shift3: \n" | ||
446 | "shlr2 r0 \n" | ||
447 | ".su_shift1: \n" | ||
448 | "shlr r0 \n" | ||
449 | ".su_shift0: \n" | ||
450 | |||
451 | "mov.b r0,@r2 \n" /* store data */ | ||
452 | "add #1,r3 \n" /* current_row++ */ | ||
453 | "cmp/hi r3,%[rows] \n" /* current_row < bheight - shift ? */ | ||
454 | "bt .su_iloop \n" | ||
455 | |||
456 | "add #1,%[addr] \n" /* start_address++ */ | ||
457 | "add #1,r4 \n" /* x++ */ | ||
458 | "cmp/hi r4,%[wide] \n" /* x < width ? */ | ||
459 | "bt .su_cloop \n" | ||
460 | : /* outputs */ | ||
461 | : /* inputs */ | ||
462 | [addr]"r"(rb->lcd_framebuffer + blocklen * LCD_FBWIDTH), | ||
463 | [wide]"r"(LCD_FBWIDTH), | ||
464 | [rows]"r"(blocklen), | ||
465 | [cnt] "r"(bitcount) | ||
466 | : /* clobbers */ | ||
467 | "r0", "r1", "r2", "r3", "r4" | ||
468 | ); | ||
469 | #elif defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) | ||
470 | asm ( | 400 | asm ( |
471 | "move.l %[wide],%%d3\n" /* columns = width */ | 401 | "move.l %[wide],%%d3\n" /* columns = width */ |
472 | 402 | ||
@@ -590,76 +520,7 @@ void xlcd_scroll_down(int count) | |||
590 | { | 520 | { |
591 | #if LCD_PIXELFORMAT == VERTICAL_PACKING | 521 | #if LCD_PIXELFORMAT == VERTICAL_PACKING |
592 | 522 | ||
593 | #if (CONFIG_CPU == SH7034) && (LCD_DEPTH == 1) | 523 | #if defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) |
594 | asm ( | ||
595 | "mov #0,r4 \n" /* x = 0 */ | ||
596 | "mova .sd_shifttbl,r0 \n" /* calculate jump destination for */ | ||
597 | "mov.b @(r0,%[cnt]),%[cnt] \n" /* shift amount from table */ | ||
598 | "bra .sd_cloop \n" /* skip table */ | ||
599 | "add r0,%[cnt] \n" | ||
600 | |||
601 | ".align 2 \n" | ||
602 | ".sd_shifttbl: \n" /* shift jump offset table */ | ||
603 | ".byte .sd_shift0 - .sd_shifttbl \n" | ||
604 | ".byte .sd_shift1 - .sd_shifttbl \n" | ||
605 | ".byte .sd_shift2 - .sd_shifttbl \n" | ||
606 | ".byte .sd_shift3 - .sd_shifttbl \n" | ||
607 | ".byte .sd_shift4 - .sd_shifttbl \n" | ||
608 | ".byte .sd_shift5 - .sd_shifttbl \n" | ||
609 | ".byte .sd_shift6 - .sd_shifttbl \n" | ||
610 | ".byte .sd_shift7 - .sd_shifttbl \n" | ||
611 | |||
612 | ".sd_cloop: \n" /* repeat for every column */ | ||
613 | "mov %[addr],r2 \n" /* get start address */ | ||
614 | "mov #0,r3 \n" /* current_row = 0 */ | ||
615 | "mov #0,r1 \n" /* fill with zero */ | ||
616 | |||
617 | ".sd_iloop: \n" /* repeat for all rows */ | ||
618 | "shlr8 r1 \n" /* shift right to get residue */ | ||
619 | "mov.b @r2,r0 \n" /* get data byte */ | ||
620 | "jmp @%[cnt] \n" /* jump into shift "path" */ | ||
621 | "extu.b r0,r0 \n" /* extend unsigned */ | ||
622 | |||
623 | ".sd_shift6: \n" /* shift left by 0..7 bits */ | ||
624 | "shll8 r0 \n" | ||
625 | "bra .sd_shift0 \n" | ||
626 | "shlr2 r0 \n" | ||
627 | ".sd_shift4: \n" | ||
628 | "shll2 r0 \n" | ||
629 | ".sd_shift2: \n" | ||
630 | "bra .sd_shift0 \n" | ||
631 | "shll2 r0 \n" | ||
632 | ".sd_shift7: \n" | ||
633 | "shll2 r0 \n" | ||
634 | ".sd_shift5: \n" | ||
635 | "shll2 r0 \n" | ||
636 | ".sd_shift3: \n" | ||
637 | "shll2 r0 \n" | ||
638 | ".sd_shift1: \n" | ||
639 | "shll r0 \n" | ||
640 | ".sd_shift0: \n" | ||
641 | |||
642 | "or r0,r1 \n" /* combine with last residue */ | ||
643 | "mov.b r1,@r2 \n" /* store data */ | ||
644 | "add %[wide],r2 \n" /* address += width */ | ||
645 | "add #1,r3 \n" /* current_row++ */ | ||
646 | "cmp/hi r3,%[rows] \n" /* current_row < bheight - shift ? */ | ||
647 | "bt .sd_iloop \n" | ||
648 | |||
649 | "add #1,%[addr] \n" /* start_address++ */ | ||
650 | "add #1,r4 \n" /* x++ */ | ||
651 | "cmp/hi r4,%[wide] \n" /* x < width ? */ | ||
652 | "bt .sd_cloop \n" | ||
653 | : /* outputs */ | ||
654 | : /* inputs */ | ||
655 | [addr]"r"(rb->lcd_framebuffer + blockcount * LCD_FBWIDTH), | ||
656 | [wide]"r"(LCD_WIDTH), | ||
657 | [rows]"r"(blocklen), | ||
658 | [cnt] "r"(bitcount) | ||
659 | : /* clobbers */ | ||
660 | "r0", "r1", "r2", "r3", "r4" | ||
661 | ); | ||
662 | #elif defined(CPU_COLDFIRE) && (LCD_DEPTH == 2) | ||
663 | asm ( | 524 | asm ( |
664 | "move.l %[wide],%%d3\n" /* columns = width */ | 525 | "move.l %[wide],%%d3\n" /* columns = width */ |
665 | 526 | ||