diff options
author | Jens Arnold <amiconn@rockbox.org> | 2004-05-14 22:55:05 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2004-05-14 22:55:05 +0000 |
commit | 2d446fef067a8fbf86343160df3799870d65aa6a (patch) | |
tree | 15edae3baf50a3f66f4e4b2407e61f4845d640fb | |
parent | c431e227367d18b6b487b7f72aab2653c529450f (diff) | |
download | rockbox-2d446fef067a8fbf86343160df3799870d65aa6a.tar.gz rockbox-2d446fef067a8fbf86343160df3799870d65aa6a.zip |
Fixed lcd_bitmap() to use the bitmap format generated by bmp2rb correctly. Now it works for height > 8. Adapted font transposing & changed some other places to take advantage of that. bounce.c was (apart from fonts) the only routine that used the old format correctly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4620 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/main_menu.c | 25 | ||||
-rw-r--r-- | apps/plugin.h | 2 | ||||
-rw-r--r-- | apps/plugins/bounce.c | 190 | ||||
-rw-r--r-- | apps/plugins/sliding_puzzle.c | 6 | ||||
-rw-r--r-- | apps/screens.c | 12 | ||||
-rw-r--r-- | firmware/drivers/lcd-recorder.c | 90 | ||||
-rw-r--r-- | firmware/font.c | 55 |
7 files changed, 179 insertions, 201 deletions
diff --git a/apps/main_menu.c b/apps/main_menu.c index 60c56b6545..cdf8c575e3 100644 --- a/apps/main_menu.c +++ b/apps/main_menu.c | |||
@@ -65,18 +65,11 @@ int show_logo( void ) | |||
65 | { | 65 | { |
66 | #ifdef HAVE_LCD_BITMAP | 66 | #ifdef HAVE_LCD_BITMAP |
67 | char version[32]; | 67 | char version[32]; |
68 | unsigned char *ptr=rockbox112x37; | 68 | int font_h, font_w; |
69 | int height, i, font_h, font_w; | ||
70 | 69 | ||
71 | lcd_clear_display(); | 70 | lcd_clear_display(); |
72 | 71 | ||
73 | for(i=0; i < 37; i+=8) { | 72 | lcd_bitmap(rockbox112x37, 0, 10, 112, 37, false); |
74 | /* the bitmap function doesn't work with full-height bitmaps | ||
75 | so we "stripe" the logo output */ | ||
76 | lcd_bitmap(ptr, 0, 10+i, 112, (37-i)>8?8:37-i, false); | ||
77 | ptr += 112; | ||
78 | } | ||
79 | height = 37; | ||
80 | 73 | ||
81 | #if 0 | 74 | #if 0 |
82 | /* | 75 | /* |
@@ -85,23 +78,15 @@ int show_logo( void ) | |||
85 | * providing logo. | 78 | * providing logo. |
86 | */ | 79 | */ |
87 | unsigned char buffer[112 * 8]; | 80 | unsigned char buffer[112 * 8]; |
88 | int width; | 81 | int width, height; |
89 | |||
90 | int i; | ||
91 | int eline; | ||
92 | 82 | ||
93 | int failure; | 83 | int failure; |
94 | failure = read_bmp_file("/rockbox112.bmp", &width, &height, buffer); | 84 | failure = read_bmp_file("/rockbox112.bmp", &width, &height, buffer); |
95 | 85 | ||
96 | debugf("read_bmp_file() returned %d, width %d height %d\n", | 86 | debugf("read_bmp_file() returned %d, width %d height %d\n", |
97 | failure, width, height); | 87 | failure, width, height); |
98 | 88 | ||
99 | for(i=0, eline=0; i < height; i+=8, eline++) { | 89 | lcd_bitmap(&buffer, 0, 10, width, height, false); |
100 | /* the bitmap function doesn't work with full-height bitmaps | ||
101 | so we "stripe" the logo output */ | ||
102 | lcd_bitmap(&buffer[eline*width], 0, 10+i, width, | ||
103 | (height-i)>8?8:height-i, false); | ||
104 | } | ||
105 | #endif | 90 | #endif |
106 | 91 | ||
107 | snprintf(version, sizeof(version), "Ver. %s", appsversion); | 92 | snprintf(version, sizeof(version), "Ver. %s", appsversion); |
diff --git a/apps/plugin.h b/apps/plugin.h index 845db14cef..e2345069ad 100644 --- a/apps/plugin.h +++ b/apps/plugin.h | |||
@@ -46,7 +46,7 @@ | |||
46 | #include "thread.h" | 46 | #include "thread.h" |
47 | 47 | ||
48 | /* increase this every time the api struct changes */ | 48 | /* increase this every time the api struct changes */ |
49 | #define PLUGIN_API_VERSION 12 | 49 | #define PLUGIN_API_VERSION 13 |
50 | 50 | ||
51 | /* update this to latest version if a change to the api struct breaks | 51 | /* update this to latest version if a change to the api struct breaks |
52 | backwards compatibility (and please take the opportunity to sort in any | 52 | backwards compatibility (and please take the opportunity to sort in any |
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c index 3d626ca868..6715b0b1fe 100644 --- a/apps/plugins/bounce.c +++ b/apps/plugins/bounce.c | |||
@@ -47,101 +47,101 @@ static signed char speed[]={ | |||
47 | const unsigned char char_gen_12x16[][22] = | 47 | const unsigned char char_gen_12x16[][22] = |
48 | { | 48 | { |
49 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 49 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
50 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x00,0xff,0x33,0xff,0x33,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 50 | { 0x00,0x00,0x00,0x7c,0xff,0xff,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00 }, |
51 | { 0x00,0x00,0x00,0x00,0x3c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 51 | { 0x00,0x00,0x3c,0x3c,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
52 | { 0x00,0x02,0x10,0x1e,0x90,0x1f,0xf0,0x03,0x7e,0x02,0x1e,0x1e,0x90,0x1f,0xf0,0x03,0x7e,0x02,0x1e,0x00,0x10,0x00 }, | 52 | { 0x00,0x10,0x90,0xf0,0x7e,0x1e,0x90,0xf0,0x7e,0x1e,0x10,0x02,0x1e,0x1f,0x03,0x02,0x1e,0x1f,0x03,0x02,0x00,0x00 }, |
53 | { 0x00,0x00,0x78,0x04,0xfc,0x0c,0xcc,0x0c,0xff,0x3f,0xff,0x3f,0xcc,0x0c,0xcc,0x0f,0x88,0x07,0x00,0x00,0x00,0x00 }, | 53 | { 0x00,0x78,0xfc,0xcc,0xff,0xff,0xcc,0xcc,0x88,0x00,0x00,0x00,0x04,0x0c,0x0c,0x3f,0x3f,0x0c,0x0f,0x07,0x00,0x00 }, |
54 | { 0x00,0x30,0x38,0x38,0x38,0x1c,0x38,0x0e,0x00,0x07,0x80,0x03,0xc0,0x01,0xe0,0x38,0x70,0x38,0x38,0x38,0x1c,0x00 }, | 54 | { 0x00,0x38,0x38,0x38,0x00,0x80,0xc0,0xe0,0x70,0x38,0x1c,0x30,0x38,0x1c,0x0e,0x07,0x03,0x01,0x38,0x38,0x38,0x00 }, |
55 | { 0x00,0x00,0x00,0x1f,0xb8,0x3f,0xfc,0x31,0xc6,0x21,0xe2,0x37,0x3e,0x1e,0x1c,0x1c,0x00,0x36,0x00,0x22,0x00,0x00 }, | 55 | { 0x00,0x00,0xb8,0xfc,0xc6,0xe2,0x3e,0x1c,0x00,0x00,0x00,0x00,0x1f,0x3f,0x31,0x21,0x37,0x1e,0x1c,0x36,0x22,0x00 }, |
56 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x00,0x3f,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 56 | { 0x00,0x00,0x00,0x27,0x3f,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
57 | { 0x00,0x00,0x00,0x00,0xf0,0x03,0xfc,0x0f,0xfe,0x1f,0x07,0x38,0x01,0x20,0x01,0x20,0x00,0x00,0x00,0x00,0x00,0x00 }, | 57 | { 0x00,0x00,0xf0,0xfc,0xfe,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x0f,0x1f,0x38,0x20,0x20,0x00,0x00,0x00 }, |
58 | { 0x00,0x00,0x00,0x00,0x01,0x20,0x01,0x20,0x07,0x38,0xfe,0x1f,0xfc,0x0f,0xf0,0x03,0x00,0x00,0x00,0x00,0x00,0x00 }, | 58 | { 0x00,0x00,0x01,0x01,0x07,0xfe,0xfc,0xf0,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x38,0x1f,0x0f,0x03,0x00,0x00,0x00 }, |
59 | { 0x00,0x00,0x98,0x0c,0xb8,0x0e,0xe0,0x03,0xf8,0x0f,0xf8,0x0f,0xe0,0x03,0xb8,0x0e,0x98,0x0c,0x00,0x00,0x00,0x00 }, | 59 | { 0x00,0x98,0xb8,0xe0,0xf8,0xf8,0xe0,0xb8,0x98,0x00,0x00,0x00,0x0c,0x0e,0x03,0x0f,0x0f,0x03,0x0e,0x0c,0x00,0x00 }, |
60 | { 0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0xf0,0x0f,0xf0,0x0f,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00 }, | 60 | { 0x00,0x80,0x80,0x80,0xf0,0xf0,0x80,0x80,0x80,0x00,0x00,0x00,0x01,0x01,0x01,0x0f,0x0f,0x01,0x01,0x01,0x00,0x00 }, |
61 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0x00,0xf8,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 61 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0xf8,0x78,0x00,0x00,0x00,0x00,0x00 }, |
62 | { 0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00 }, | 62 | { 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00 }, |
63 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 63 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x00 }, |
64 | { 0x00,0x18,0x00,0x1c,0x00,0x0e,0x00,0x07,0x80,0x03,0xc0,0x01,0xe0,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00 }, | 64 | { 0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0x70,0x38,0x1c,0x0e,0x18,0x1c,0x0e,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00 }, |
65 | { 0xf8,0x07,0xfe,0x1f,0x06,0x1e,0x03,0x33,0x83,0x31,0xc3,0x30,0x63,0x30,0x33,0x30,0x1e,0x18,0xfe,0x1f,0xf8,0x07 }, | 65 | { 0xf8,0xfe,0x06,0x03,0x83,0xc3,0x63,0x33,0x1e,0xfe,0xf8,0x07,0x1f,0x1e,0x33,0x31,0x30,0x30,0x30,0x18,0x1f,0x07 }, |
66 | { 0x00,0x00,0x00,0x00,0x0c,0x30,0x0c,0x30,0x0e,0x30,0xff,0x3f,0xff,0x3f,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x00 }, | 66 | { 0x00,0x00,0x0c,0x0c,0x0e,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x3f,0x3f,0x30,0x30,0x30,0x00 }, |
67 | { 0x1c,0x30,0x1e,0x38,0x07,0x3c,0x03,0x3e,0x03,0x37,0x83,0x33,0xc3,0x31,0xe3,0x30,0x77,0x30,0x3e,0x30,0x1c,0x30 }, | 67 | { 0x1c,0x1e,0x07,0x03,0x03,0x83,0xc3,0xe3,0x77,0x3e,0x1c,0x30,0x38,0x3c,0x3e,0x37,0x33,0x31,0x30,0x30,0x30,0x30 }, |
68 | { 0x0c,0x0c,0x0e,0x1c,0x07,0x38,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xe7,0x39,0x7e,0x1f,0x3c,0x0e }, | 68 | { 0x0c,0x0e,0x07,0xc3,0xc3,0xc3,0xc3,0xc3,0xe7,0x7e,0x3c,0x0c,0x1c,0x38,0x30,0x30,0x30,0x30,0x30,0x39,0x1f,0x0e }, |
69 | { 0xc0,0x03,0xe0,0x03,0x70,0x03,0x38,0x03,0x1c,0x03,0x0e,0x03,0x07,0x03,0xff,0x3f,0xff,0x3f,0x00,0x03,0x00,0x03 }, | 69 | { 0xc0,0xe0,0x70,0x38,0x1c,0x0e,0x07,0xff,0xff,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3f,0x3f,0x03,0x03 }, |
70 | { 0x3f,0x0c,0x7f,0x1c,0x63,0x38,0x63,0x30,0x63,0x30,0x63,0x30,0x63,0x30,0x63,0x30,0xe3,0x38,0xc3,0x1f,0x83,0x0f }, | 70 | { 0x3f,0x7f,0x63,0x63,0x63,0x63,0x63,0x63,0xe3,0xc3,0x83,0x0c,0x1c,0x38,0x30,0x30,0x30,0x30,0x30,0x38,0x1f,0x0f }, |
71 | { 0xc0,0x0f,0xf0,0x1f,0xf8,0x39,0xdc,0x30,0xce,0x30,0xc7,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x39,0x80,0x1f,0x00,0x0f }, | 71 | { 0xc0,0xf0,0xf8,0xdc,0xce,0xc7,0xc3,0xc3,0xc3,0x80,0x00,0x0f,0x1f,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x1f,0x0f }, |
72 | { 0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x30,0x03,0x3c,0x03,0x0f,0xc3,0x03,0xf3,0x00,0x3f,0x00,0x0f,0x00,0x03,0x00 }, | 72 | { 0x03,0x03,0x03,0x03,0x03,0x03,0xc3,0xf3,0x3f,0x0f,0x03,0x00,0x00,0x00,0x30,0x3c,0x0f,0x03,0x00,0x00,0x00,0x00 }, |
73 | { 0x00,0x0f,0xbc,0x1f,0xfe,0x39,0xe7,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xe7,0x30,0xfe,0x39,0xbc,0x1f,0x00,0x0f }, | 73 | { 0x00,0xbc,0xfe,0xe7,0xc3,0xc3,0xc3,0xe7,0xfe,0xbc,0x00,0x0f,0x1f,0x39,0x30,0x30,0x30,0x30,0x30,0x39,0x1f,0x0f }, |
74 | { 0x3c,0x00,0x7e,0x00,0xe7,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x38,0xc3,0x1c,0xc3,0x0e,0xe7,0x07,0xfe,0x03,0xfc,0x00 }, | 74 | { 0x3c,0x7e,0xe7,0xc3,0xc3,0xc3,0xc3,0xc3,0xe7,0xfe,0xfc,0x00,0x00,0x30,0x30,0x30,0x38,0x1c,0x0e,0x07,0x03,0x00 }, |
75 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x1c,0x70,0x1c,0x70,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 75 | { 0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00 }, |
76 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x9c,0x70,0xfc,0x70,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 76 | { 0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0xfc,0x7c,0x00,0x00,0x00,0x00,0x00 }, |
77 | { 0x00,0x00,0xc0,0x00,0xe0,0x01,0xf0,0x03,0x38,0x07,0x1c,0x0e,0x0e,0x1c,0x07,0x38,0x03,0x30,0x00,0x00,0x00,0x00 }, | 77 | { 0x00,0xc0,0xe0,0xf0,0x38,0x1c,0x0e,0x07,0x03,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0e,0x1c,0x38,0x30,0x00,0x00 }, |
78 | { 0x00,0x00,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x00,0x00 }, | 78 | { 0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00 }, |
79 | { 0x00,0x00,0x03,0x30,0x07,0x38,0x0e,0x1c,0x1c,0x0e,0x38,0x07,0xf0,0x03,0xe0,0x01,0xc0,0x00,0x00,0x00,0x00,0x00 }, | 79 | { 0x00,0x03,0x07,0x0e,0x1c,0x38,0xf0,0xe0,0xc0,0x00,0x00,0x00,0x30,0x38,0x1c,0x0e,0x07,0x03,0x01,0x00,0x00,0x00 }, |
80 | { 0x1c,0x00,0x1e,0x00,0x07,0x00,0x03,0x00,0x83,0x37,0xc3,0x37,0xe3,0x00,0x77,0x00,0x3e,0x00,0x1c,0x00,0x00,0x00 }, | 80 | { 0x1c,0x1e,0x07,0x03,0x83,0xc3,0xe3,0x77,0x3e,0x1c,0x00,0x00,0x00,0x00,0x00,0x37,0x37,0x00,0x00,0x00,0x00,0x00 }, |
81 | { 0xf8,0x0f,0xfe,0x1f,0x07,0x18,0xf3,0x33,0xfb,0x37,0x1b,0x36,0xfb,0x37,0xfb,0x37,0x07,0x36,0xfe,0x03,0xf8,0x01 }, | 81 | { 0xf8,0xfe,0x07,0xf3,0xfb,0x1b,0xfb,0xfb,0x07,0xfe,0xf8,0x0f,0x1f,0x18,0x33,0x37,0x36,0x37,0x37,0x36,0x03,0x01 }, |
82 | { 0x00,0x38,0x00,0x3f,0xe0,0x07,0xfc,0x06,0x1f,0x06,0x1f,0x06,0xfc,0x06,0xe0,0x07,0x00,0x3f,0x00,0x38,0x00,0x00 }, | 82 | { 0x00,0x00,0xe0,0xfc,0x1f,0x1f,0xfc,0xe0,0x00,0x00,0x00,0x38,0x3f,0x07,0x06,0x06,0x06,0x06,0x07,0x3f,0x38,0x00 }, |
83 | { 0xff,0x3f,0xff,0x3f,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xe7,0x30,0xfe,0x39,0xbc,0x1f,0x00,0x0f,0x00,0x00 }, | 83 | { 0xff,0xff,0xc3,0xc3,0xc3,0xc3,0xe7,0xfe,0xbc,0x00,0x00,0x3f,0x3f,0x30,0x30,0x30,0x30,0x30,0x39,0x1f,0x0f,0x00 }, |
84 | { 0xf0,0x03,0xfc,0x0f,0x0e,0x1c,0x07,0x38,0x03,0x30,0x03,0x30,0x03,0x30,0x07,0x38,0x0e,0x1c,0x0c,0x0c,0x00,0x00 }, | 84 | { 0xf0,0xfc,0x0e,0x07,0x03,0x03,0x03,0x07,0x0e,0x0c,0x00,0x03,0x0f,0x1c,0x38,0x30,0x30,0x30,0x38,0x1c,0x0c,0x00 }, |
85 | { 0xff,0x3f,0xff,0x3f,0x03,0x30,0x03,0x30,0x03,0x30,0x03,0x30,0x07,0x38,0x0e,0x1c,0xfc,0x0f,0xf0,0x03,0x00,0x00 }, | 85 | { 0xff,0xff,0x03,0x03,0x03,0x03,0x07,0x0e,0xfc,0xf0,0x00,0x3f,0x3f,0x30,0x30,0x30,0x30,0x38,0x1c,0x0f,0x03,0x00 }, |
86 | { 0xff,0x3f,0xff,0x3f,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0x03,0x30,0x03,0x30,0x00,0x00 }, | 86 | { 0xff,0xff,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x03,0x03,0x00,0x3f,0x3f,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00 }, |
87 | { 0xff,0x3f,0xff,0x3f,0xc3,0x00,0xc3,0x00,0xc3,0x00,0xc3,0x00,0xc3,0x00,0xc3,0x00,0x03,0x00,0x03,0x00,0x00,0x00 }, | 87 | { 0xff,0xff,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x03,0x03,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
88 | { 0xf0,0x03,0xfc,0x0f,0x0e,0x1c,0x07,0x38,0x03,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc7,0x3f,0xc6,0x3f,0x00,0x00 }, | 88 | { 0xf0,0xfc,0x0e,0x07,0x03,0xc3,0xc3,0xc3,0xc7,0xc6,0x00,0x03,0x0f,0x1c,0x38,0x30,0x30,0x30,0x30,0x3f,0x3f,0x00 }, |
89 | { 0xff,0x3f,0xff,0x3f,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xff,0x3f,0xff,0x3f,0x00,0x00 }, | 89 | { 0xff,0xff,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xff,0xff,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00 }, |
90 | { 0x00,0x00,0x00,0x00,0x03,0x30,0x03,0x30,0xff,0x3f,0xff,0x3f,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x00 }, | 90 | { 0x00,0x00,0x03,0x03,0xff,0xff,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3f,0x3f,0x30,0x30,0x00,0x00,0x00 }, |
91 | { 0x00,0x0e,0x00,0x1e,0x00,0x38,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x38,0xff,0x1f,0xff,0x07,0x00,0x00 }, | 91 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x0e,0x1e,0x38,0x30,0x30,0x30,0x30,0x38,0x1f,0x07,0x00 }, |
92 | { 0xff,0x3f,0xff,0x3f,0xc0,0x00,0xe0,0x01,0xf0,0x03,0x38,0x07,0x1c,0x0e,0x0e,0x1c,0x07,0x38,0x03,0x30,0x00,0x00 }, | 92 | { 0xff,0xff,0xc0,0xe0,0xf0,0x38,0x1c,0x0e,0x07,0x03,0x00,0x3f,0x3f,0x00,0x01,0x03,0x07,0x0e,0x1c,0x38,0x30,0x00 }, |
93 | { 0xff,0x3f,0xff,0x3f,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x00 }, | 93 | { 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00 }, |
94 | { 0xff,0x3f,0xff,0x3f,0x1e,0x00,0x78,0x00,0xe0,0x01,0xe0,0x01,0x78,0x00,0x1e,0x00,0xff,0x3f,0xff,0x3f,0x00,0x00 }, | 94 | { 0xff,0xff,0x1e,0x78,0xe0,0xe0,0x78,0x1e,0xff,0xff,0x00,0x3f,0x3f,0x00,0x00,0x01,0x01,0x00,0x00,0x3f,0x3f,0x00 }, |
95 | { 0xff,0x3f,0xff,0x3f,0x0e,0x00,0x38,0x00,0xf0,0x00,0xc0,0x03,0x00,0x07,0x00,0x1c,0xff,0x3f,0xff,0x3f,0x00,0x00 }, | 95 | { 0xff,0xff,0x0e,0x38,0xf0,0xc0,0x00,0x00,0xff,0xff,0x00,0x3f,0x3f,0x00,0x00,0x00,0x03,0x07,0x1c,0x3f,0x3f,0x00 }, |
96 | { 0xf0,0x03,0xfc,0x0f,0x0e,0x1c,0x07,0x38,0x03,0x30,0x03,0x30,0x07,0x38,0x0e,0x1c,0xfc,0x0f,0xf0,0x03,0x00,0x00 }, | 96 | { 0xf0,0xfc,0x0e,0x07,0x03,0x03,0x07,0x0e,0xfc,0xf0,0x00,0x03,0x0f,0x1c,0x38,0x30,0x30,0x38,0x1c,0x0f,0x03,0x00 }, |
97 | { 0xff,0x3f,0xff,0x3f,0x83,0x01,0x83,0x01,0x83,0x01,0x83,0x01,0x83,0x01,0xc7,0x01,0xfe,0x00,0x7c,0x00,0x00,0x00 }, | 97 | { 0xff,0xff,0x83,0x83,0x83,0x83,0x83,0xc7,0xfe,0x7c,0x00,0x3f,0x3f,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00 }, |
98 | { 0xf0,0x03,0xfc,0x0f,0x0e,0x1c,0x07,0x38,0x03,0x30,0x03,0x36,0x07,0x3e,0x0e,0x1c,0xfc,0x3f,0xf0,0x33,0x00,0x00 }, | 98 | { 0xf0,0xfc,0x0e,0x07,0x03,0x03,0x07,0x0e,0xfc,0xf0,0x00,0x03,0x0f,0x1c,0x38,0x30,0x36,0x3e,0x1c,0x3f,0x33,0x00 }, |
99 | { 0xff,0x3f,0xff,0x3f,0x83,0x01,0x83,0x01,0x83,0x03,0x83,0x07,0x83,0x0f,0xc7,0x1d,0xfe,0x38,0x7c,0x30,0x00,0x00 }, | 99 | { 0xff,0xff,0x83,0x83,0x83,0x83,0x83,0xc7,0xfe,0x7c,0x00,0x3f,0x3f,0x01,0x01,0x03,0x07,0x0f,0x1d,0x38,0x30,0x00 }, |
100 | { 0x3c,0x0c,0x7e,0x1c,0xe7,0x38,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc3,0x30,0xc7,0x39,0x8e,0x1f,0x0c,0x0f,0x00,0x00 }, | 100 | { 0x3c,0x7e,0xe7,0xc3,0xc3,0xc3,0xc3,0xc7,0x8e,0x0c,0x00,0x0c,0x1c,0x38,0x30,0x30,0x30,0x30,0x39,0x1f,0x0f,0x00 }, |
101 | { 0x00,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0xff,0x3f,0xff,0x3f,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00 }, | 101 | { 0x00,0x03,0x03,0x03,0xff,0xff,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00 }, |
102 | { 0xff,0x07,0xff,0x1f,0x00,0x38,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x38,0xff,0x1f,0xff,0x07,0x00,0x00 }, | 102 | { 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x07,0x1f,0x38,0x30,0x30,0x30,0x30,0x38,0x1f,0x07,0x00 }, |
103 | { 0x07,0x00,0x3f,0x00,0xf8,0x01,0xc0,0x0f,0x00,0x3e,0x00,0x3e,0xc0,0x0f,0xf8,0x01,0x3f,0x00,0x07,0x00,0x00,0x00 }, | 103 | { 0x07,0x3f,0xf8,0xc0,0x00,0x00,0xc0,0xf8,0x3f,0x07,0x00,0x00,0x00,0x01,0x0f,0x3e,0x3e,0x0f,0x01,0x00,0x00,0x00 }, |
104 | { 0xff,0x3f,0xff,0x3f,0x00,0x1c,0x00,0x06,0x80,0x03,0x80,0x03,0x00,0x06,0x00,0x1c,0xff,0x3f,0xff,0x3f,0x00,0x00 }, | 104 | { 0xff,0xff,0x00,0x00,0x80,0x80,0x00,0x00,0xff,0xff,0x00,0x3f,0x3f,0x1c,0x06,0x03,0x03,0x06,0x1c,0x3f,0x3f,0x00 }, |
105 | { 0x03,0x30,0x0f,0x3c,0x1c,0x0e,0x30,0x03,0xe0,0x01,0xe0,0x01,0x30,0x03,0x1c,0x0e,0x0f,0x3c,0x03,0x30,0x00,0x00 }, | 105 | { 0x03,0x0f,0x1c,0x30,0xe0,0xe0,0x30,0x1c,0x0f,0x03,0x00,0x30,0x3c,0x0e,0x03,0x01,0x01,0x03,0x0e,0x3c,0x30,0x00 }, |
106 | { 0x03,0x00,0x0f,0x00,0x3c,0x00,0xf0,0x00,0xc0,0x3f,0xc0,0x3f,0xf0,0x00,0x3c,0x00,0x0f,0x00,0x03,0x00,0x00,0x00 }, | 106 | { 0x03,0x0f,0x3c,0xf0,0xc0,0xc0,0xf0,0x3c,0x0f,0x03,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00 }, |
107 | { 0x03,0x30,0x03,0x3c,0x03,0x3e,0x03,0x33,0xc3,0x31,0xe3,0x30,0x33,0x30,0x1f,0x30,0x0f,0x30,0x03,0x30,0x00,0x00 }, | 107 | { 0x03,0x03,0x03,0x03,0xc3,0xe3,0x33,0x1f,0x0f,0x03,0x00,0x30,0x3c,0x3e,0x33,0x31,0x30,0x30,0x30,0x30,0x30,0x00 }, |
108 | { 0x00,0x00,0x00,0x00,0xff,0x3f,0xff,0x3f,0x03,0x30,0x03,0x30,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x00 }, | 108 | { 0x00,0x00,0xff,0xff,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x30,0x30,0x30,0x30,0x00,0x00,0x00 }, |
109 | { 0x0e,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0xe0,0x00,0xc0,0x01,0x80,0x03,0x00,0x07,0x00,0x0e,0x00,0x1c,0x00,0x18 }, | 109 | { 0x0e,0x1c,0x38,0x70,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0e,0x1c,0x18 }, |
110 | { 0x00,0x00,0x00,0x00,0x03,0x30,0x03,0x30,0x03,0x30,0x03,0x30,0xff,0x3f,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00 }, | 110 | { 0x00,0x00,0x03,0x03,0x03,0x03,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x3f,0x3f,0x00,0x00,0x00 }, |
111 | { 0x60,0x00,0x70,0x00,0x38,0x00,0x1c,0x00,0x0e,0x00,0x07,0x00,0x0e,0x00,0x1c,0x00,0x38,0x00,0x70,0x00,0x60,0x00 }, | 111 | { 0x60,0x70,0x38,0x1c,0x0e,0x07,0x0e,0x1c,0x38,0x70,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
112 | { 0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0,0x00,0xc0 }, | 112 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0 }, |
113 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x00,0x7e,0x00,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 113 | { 0x00,0x00,0x00,0x00,0x3e,0x7e,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
114 | { 0x00,0x1c,0x40,0x3e,0x60,0x33,0x60,0x33,0x60,0x33,0x60,0x33,0x60,0x33,0x60,0x33,0xe0,0x3f,0xc0,0x3f,0x00,0x00 }, | 114 | { 0x00,0x40,0x60,0x60,0x60,0x60,0x60,0x60,0xe0,0xc0,0x00,0x1c,0x3e,0x33,0x33,0x33,0x33,0x33,0x33,0x3f,0x3f,0x00 }, |
115 | { 0xff,0x3f,0xff,0x3f,0xc0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0xe0,0x38,0xc0,0x1f,0x80,0x0f,0x00,0x00 }, | 115 | { 0xff,0xff,0xc0,0x60,0x60,0x60,0x60,0xe0,0xc0,0x80,0x00,0x3f,0x3f,0x30,0x30,0x30,0x30,0x30,0x38,0x1f,0x0f,0x00 }, |
116 | { 0x80,0x0f,0xc0,0x1f,0xe0,0x38,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0xc0,0x18,0x80,0x08,0x00,0x00 }, | 116 | { 0x80,0xc0,0xe0,0x60,0x60,0x60,0x60,0x60,0xc0,0x80,0x00,0x0f,0x1f,0x38,0x30,0x30,0x30,0x30,0x30,0x18,0x08,0x00 }, |
117 | { 0x80,0x0f,0xc0,0x1f,0xe0,0x38,0x60,0x30,0x60,0x30,0x60,0x30,0xe0,0x30,0xc0,0x30,0xff,0x3f,0xff,0x3f,0x00,0x00 }, | 117 | { 0x80,0xc0,0xe0,0x60,0x60,0x60,0xe0,0xc0,0xff,0xff,0x00,0x0f,0x1f,0x38,0x30,0x30,0x30,0x30,0x30,0x3f,0x3f,0x00 }, |
118 | { 0x80,0x0f,0xc0,0x1f,0xe0,0x3b,0x60,0x33,0x60,0x33,0x60,0x33,0x60,0x33,0x60,0x33,0xc0,0x13,0x80,0x01,0x00,0x00 }, | 118 | { 0x80,0xc0,0xe0,0x60,0x60,0x60,0x60,0x60,0xc0,0x80,0x00,0x0f,0x1f,0x3b,0x33,0x33,0x33,0x33,0x33,0x13,0x01,0x00 }, |
119 | { 0xc0,0x00,0xc0,0x00,0xfc,0x3f,0xfe,0x3f,0xc7,0x00,0xc3,0x00,0xc3,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 119 | { 0xc0,0xc0,0xfc,0xfe,0xc7,0xc3,0xc3,0x03,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
120 | { 0x80,0x03,0xc0,0xc7,0xe0,0xce,0x60,0xcc,0x60,0xcc,0x60,0xcc,0x60,0xcc,0x60,0xe6,0xe0,0x7f,0xe0,0x3f,0x00,0x00 }, | 120 | { 0x80,0xc0,0xe0,0x60,0x60,0x60,0x60,0x60,0xe0,0xe0,0x00,0x03,0xc7,0xce,0xcc,0xcc,0xcc,0xcc,0xe6,0x7f,0x3f,0x00 }, |
121 | { 0xff,0x3f,0xff,0x3f,0xc0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x3f,0x80,0x3f,0x00,0x00,0x00,0x00 }, | 121 | { 0xff,0xff,0xc0,0x60,0x60,0x60,0xe0,0xc0,0x80,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00,0x00 }, |
122 | { 0x00,0x00,0x00,0x00,0x00,0x30,0x60,0x30,0xec,0x3f,0xec,0x3f,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00 }, | 122 | { 0x00,0x00,0x00,0x60,0xec,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3f,0x3f,0x30,0x30,0x00,0x00,0x00 }, |
123 | { 0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xe0,0x00,0xc0,0x60,0xc0,0xec,0xff,0xec,0x7f,0x00,0x00,0x00,0x00,0x00,0x00 }, | 123 | { 0x00,0x00,0x00,0x00,0x00,0x60,0xec,0xec,0x00,0x00,0x00,0x00,0x00,0x60,0xe0,0xc0,0xc0,0xff,0x7f,0x00,0x00,0x00 }, |
124 | { 0x00,0x00,0xff,0x3f,0xff,0x3f,0x00,0x03,0x80,0x07,0xc0,0x0f,0xe0,0x1c,0x60,0x38,0x00,0x30,0x00,0x00,0x00,0x00 }, | 124 | { 0x00,0xff,0xff,0x00,0x80,0xc0,0xe0,0x60,0x00,0x00,0x00,0x00,0x3f,0x3f,0x03,0x07,0x0f,0x1c,0x38,0x30,0x00,0x00 }, |
125 | { 0x00,0x00,0x00,0x00,0x00,0x30,0x03,0x30,0xff,0x3f,0xff,0x3f,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00 }, | 125 | { 0x00,0x00,0x00,0x03,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3f,0x3f,0x30,0x30,0x00,0x00,0x00 }, |
126 | { 0xe0,0x3f,0xc0,0x3f,0xe0,0x00,0xe0,0x00,0xc0,0x3f,0xc0,0x3f,0xe0,0x00,0xe0,0x00,0xc0,0x3f,0x80,0x3f,0x00,0x00 }, | 126 | { 0xe0,0xc0,0xe0,0xe0,0xc0,0xc0,0xe0,0xe0,0xc0,0x80,0x00,0x3f,0x3f,0x00,0x00,0x3f,0x3f,0x00,0x00,0x3f,0x3f,0x00 }, |
127 | { 0x00,0x00,0xe0,0x3f,0xe0,0x3f,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x3f,0x80,0x3f,0x00,0x00 }, | 127 | { 0x00,0xe0,0xe0,0x60,0x60,0x60,0x60,0xe0,0xc0,0x80,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00 }, |
128 | { 0x80,0x0f,0xc0,0x1f,0xe0,0x38,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0xe0,0x38,0xc0,0x1f,0x80,0x0f,0x00,0x00 }, | 128 | { 0x80,0xc0,0xe0,0x60,0x60,0x60,0x60,0xe0,0xc0,0x80,0x00,0x0f,0x1f,0x38,0x30,0x30,0x30,0x30,0x38,0x1f,0x0f,0x00 }, |
129 | { 0xe0,0xff,0xe0,0xff,0x60,0x0c,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0xe0,0x1c,0xc0,0x0f,0x80,0x07,0x00,0x00 }, | 129 | { 0xe0,0xe0,0x60,0x60,0x60,0x60,0x60,0xe0,0xc0,0x80,0x00,0xff,0xff,0x0c,0x18,0x18,0x18,0x18,0x1c,0x0f,0x07,0x00 }, |
130 | { 0x80,0x07,0xc0,0x0f,0xe0,0x1c,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x0c,0xe0,0xff,0xe0,0xff,0x00,0x00 }, | 130 | { 0x80,0xc0,0xe0,0x60,0x60,0x60,0x60,0x60,0xe0,0xe0,0x00,0x07,0x0f,0x1c,0x18,0x18,0x18,0x18,0x0c,0xff,0xff,0x00 }, |
131 | { 0x00,0x00,0xe0,0x3f,0xe0,0x3f,0xc0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xe0,0x00,0xc0,0x00,0x00,0x00 }, | 131 | { 0x00,0xe0,0xe0,0xc0,0x60,0x60,0x60,0x60,0xe0,0xc0,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
132 | { 0xc0,0x11,0xe0,0x33,0x60,0x33,0x60,0x33,0x60,0x33,0x60,0x33,0x60,0x3f,0x40,0x1e,0x00,0x00,0x00,0x00,0x00,0x00 }, | 132 | { 0xc0,0xe0,0x60,0x60,0x60,0x60,0x60,0x40,0x00,0x00,0x00,0x11,0x33,0x33,0x33,0x33,0x33,0x3f,0x1e,0x00,0x00,0x00 }, |
133 | { 0x60,0x00,0x60,0x00,0xfe,0x1f,0xfe,0x3f,0x60,0x30,0x60,0x30,0x60,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00 }, | 133 | { 0x60,0x60,0xfe,0xfe,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x3f,0x30,0x30,0x30,0x30,0x00,0x00,0x00 }, |
134 | { 0xe0,0x0f,0xe0,0x1f,0x00,0x38,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x18,0xe0,0x3f,0xe0,0x3f,0x00,0x00 }, | 134 | { 0xe0,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xe0,0x00,0x0f,0x1f,0x38,0x30,0x30,0x30,0x30,0x18,0x3f,0x3f,0x00 }, |
135 | { 0x60,0x00,0xe0,0x01,0x80,0x07,0x00,0x1e,0x00,0x38,0x00,0x38,0x00,0x1e,0x80,0x07,0xe0,0x01,0x60,0x00,0x00,0x00 }, | 135 | { 0x60,0xe0,0x80,0x00,0x00,0x00,0x00,0x80,0xe0,0x60,0x00,0x00,0x01,0x07,0x1e,0x38,0x38,0x1e,0x07,0x01,0x00,0x00 }, |
136 | { 0xe0,0x07,0xe0,0x1f,0x00,0x38,0x00,0x1c,0xe0,0x0f,0xe0,0x0f,0x00,0x1c,0x00,0x38,0xe0,0x1f,0xe0,0x07,0x00,0x00 }, | 136 | { 0xe0,0xe0,0x00,0x00,0xe0,0xe0,0x00,0x00,0xe0,0xe0,0x00,0x07,0x1f,0x38,0x1c,0x0f,0x0f,0x1c,0x38,0x1f,0x07,0x00 }, |
137 | { 0x60,0x30,0xe0,0x38,0xc0,0x1d,0x80,0x0f,0x00,0x07,0x80,0x0f,0xc0,0x1d,0xe0,0x38,0x60,0x30,0x00,0x00,0x00,0x00 }, | 137 | { 0x60,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0x60,0x00,0x00,0x30,0x38,0x1d,0x0f,0x07,0x0f,0x1d,0x38,0x30,0x00,0x00 }, |
138 | { 0x00,0x00,0x60,0x00,0xe0,0x81,0x80,0xe7,0x00,0x7e,0x00,0x1e,0x80,0x07,0xe0,0x01,0x60,0x00,0x00,0x00,0x00,0x00 }, | 138 | { 0x00,0x60,0xe0,0x80,0x00,0x00,0x80,0xe0,0x60,0x00,0x00,0x00,0x00,0x81,0xe7,0x7e,0x1e,0x07,0x01,0x00,0x00,0x00 }, |
139 | { 0x60,0x30,0x60,0x38,0x60,0x3c,0x60,0x36,0x60,0x33,0xe0,0x31,0xe0,0x30,0x60,0x30,0x20,0x30,0x00,0x00,0x00,0x00 }, | 139 | { 0x60,0x60,0x60,0x60,0x60,0xe0,0xe0,0x60,0x20,0x00,0x00,0x30,0x38,0x3c,0x36,0x33,0x31,0x30,0x30,0x30,0x00,0x00 }, |
140 | { 0x00,0x00,0x80,0x00,0xc0,0x01,0xfc,0x1f,0x7e,0x3f,0x07,0x70,0x03,0x60,0x03,0x60,0x03,0x60,0x00,0x00,0x00,0x00 }, | 140 | { 0x00,0x80,0xc0,0xfc,0x7e,0x07,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x01,0x1f,0x3f,0x70,0x60,0x60,0x60,0x00,0x00 }, |
141 | { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x3f,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, | 141 | { 0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x3f,0x00,0x00,0x00,0x00,0x00 }, |
142 | { 0x00,0x00,0x03,0x60,0x03,0x60,0x03,0x60,0x07,0x70,0x7e,0x3f,0xfc,0x1f,0xc0,0x01,0x80,0x00,0x00,0x00,0x00,0x00 }, | 142 | { 0x00,0x03,0x03,0x03,0x07,0x7e,0xfc,0xc0,0x80,0x00,0x00,0x00,0x60,0x60,0x60,0x70,0x3f,0x1f,0x01,0x00,0x00,0x00 }, |
143 | { 0x10,0x00,0x18,0x00,0x0c,0x00,0x04,0x00,0x0c,0x00,0x18,0x00,0x10,0x00,0x18,0x00,0x0c,0x00,0x04,0x00,0x00,0x00 }, | 143 | { 0x10,0x18,0x0c,0x04,0x0c,0x18,0x10,0x18,0x0c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, |
144 | { 0xff,0x3f,0xff,0x3f,0xff,0x3f,0xff,0x3f,0xff,0x3f,0xff,0x3f,0xff,0x3f,0xff,0x3f,0xff,0x3f,0xff,0x3f,0x00,0x00 } | 144 | { 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x00 } |
145 | }; | 145 | }; |
146 | 146 | ||
147 | #define XDIFF -4 | 147 | #define XDIFF -4 |
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index a1c87f49d7..12c7a9aafa 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c | |||
@@ -24,7 +24,6 @@ static int spots[20]; | |||
24 | static int hole = 19, moves; | 24 | static int hole = 19, moves; |
25 | static char s[5]; | 25 | static char s[5]; |
26 | static bool pic = true; | 26 | static bool pic = true; |
27 | static unsigned char *ptr; | ||
28 | static unsigned char picture[20][32] = { | 27 | static unsigned char picture[20][32] = { |
29 | { 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0xf8, 0xd9, | 28 | { 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0xf8, 0xd9, |
30 | 0x10, 0xb0, 0x60, 0xc0, 0x80, 0x00, 0x30, 0x78, | 29 | 0x10, 0xb0, 0x60, 0xc0, 0x80, 0x00, 0x30, 0x78, |
@@ -131,10 +130,7 @@ static unsigned char picture[20][32] = { | |||
131 | static void draw_spot(int p, int x, int y) | 130 | static void draw_spot(int p, int x, int y) |
132 | { | 131 | { |
133 | if (pic || p==20) { | 132 | if (pic || p==20) { |
134 | ptr = picture[p-1]; | 133 | rb->lcd_bitmap (picture[p-1], x, y, 16, 16, true); |
135 | rb->lcd_bitmap (ptr, x, y, 16, 8, true); | ||
136 | ptr += 16; | ||
137 | rb->lcd_bitmap (ptr, x, y+8, 16, 8, true); | ||
138 | } else { | 134 | } else { |
139 | rb->lcd_drawrect(x, y, 16, 16); | 135 | rb->lcd_drawrect(x, y, 16, 16); |
140 | rb->lcd_clearrect(x+1, y+1, 14, 14); | 136 | rb->lcd_clearrect(x+1, y+1, 14, 14); |
diff --git a/apps/screens.c b/apps/screens.c index b563155bde..a5b9f90796 100644 --- a/apps/screens.c +++ b/apps/screens.c | |||
@@ -84,15 +84,7 @@ void usb_display_info(void) | |||
84 | lcd_clear_display(); | 84 | lcd_clear_display(); |
85 | 85 | ||
86 | #ifdef HAVE_LCD_BITMAP | 86 | #ifdef HAVE_LCD_BITMAP |
87 | /* lcd_bitmap() only supports 16 pixels height! */ | 87 | lcd_bitmap(usb_logo, 6, 16, BMPWIDTH_usb_logo, BMPHEIGHT_usb_logo, false); |
88 | lcd_bitmap(usb_logo, 6, 16, | ||
89 | BMPWIDTH_usb_logo, 8, false); | ||
90 | lcd_bitmap(usb_logo+BMPWIDTH_usb_logo, 6, 24, | ||
91 | BMPWIDTH_usb_logo, 8, false); | ||
92 | lcd_bitmap(usb_logo+BMPWIDTH_usb_logo*2, 6, 32, | ||
93 | BMPWIDTH_usb_logo, 8, false); | ||
94 | lcd_bitmap(usb_logo+BMPWIDTH_usb_logo*3, 6, 40, | ||
95 | BMPWIDTH_usb_logo, 8, false); | ||
96 | status_draw(true); | 88 | status_draw(true); |
97 | lcd_update(); | 89 | lcd_update(); |
98 | #else | 90 | #else |
@@ -534,7 +526,7 @@ bool quick_screen(int context, int button) | |||
534 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); | 526 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); |
535 | lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], | 527 | lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], |
536 | LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); | 528 | LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); |
537 | lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], | 529 | lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], |
538 | LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); | 530 | LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); |
539 | 531 | ||
540 | lcd_update(); | 532 | lcd_update(); |
diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c index 8cf5f12b8b..c174430c83 100644 --- a/firmware/drivers/lcd-recorder.c +++ b/firmware/drivers/lcd-recorder.c | |||
@@ -436,15 +436,16 @@ void lcd_putsxy(int x, int y, unsigned char *str) | |||
436 | } | 436 | } |
437 | 437 | ||
438 | /* | 438 | /* |
439 | * All bitmaps have this format: | 439 | * About Rockbox' internal bitmap format: |
440 | * Bits within a byte are arranged veritcally, LSB at top. | ||
441 | * Bytes are stored in column-major format, with byte 0 at top left, | ||
442 | * byte 1 is 2nd from top, etc. Bytes following left-most column | ||
443 | * starts 2nd left column, etc. | ||
444 | * | 440 | * |
445 | * Note: The HW takes bitmap bytes in row-major order. | 441 | * A bitmap contains one bit for every pixel that defines if that pixel is |
442 | * black (1) or white (0). Bits within a byte are arranged vertically, LSB | ||
443 | * at top. | ||
444 | * The bytes are stored in row-major order, with byte 0 being top left, | ||
445 | * byte 1 2nd from left etc. The first row of bytes defines pixel rows | ||
446 | * 0..7, the second row defines pixel row 8..15 etc. | ||
446 | * | 447 | * |
447 | * Memory copy of display bitmap | 448 | * This is the same as the internal lcd hw format. |
448 | */ | 449 | */ |
449 | 450 | ||
450 | /* | 451 | /* |
@@ -456,77 +457,88 @@ void lcd_bitmap (unsigned char *src, int x, int y, int nx, int ny, | |||
456 | void lcd_bitmap (unsigned char *src, int x, int y, int nx, int ny, | 457 | void lcd_bitmap (unsigned char *src, int x, int y, int nx, int ny, |
457 | bool clear) | 458 | bool clear) |
458 | { | 459 | { |
459 | unsigned char *dst; | 460 | unsigned char *src_col, *dst, *dst_col; |
460 | unsigned char *dst2; | 461 | unsigned int data, mask1, mask2, mask3, mask4; |
461 | unsigned int data, mask, mask2, mask3, mask4; | 462 | int stride, shift; |
462 | int shift; | ||
463 | 463 | ||
464 | if (((unsigned)x >= LCD_WIDTH) || ((unsigned)y >= LCD_HEIGHT)) | 464 | if (((unsigned) x >= LCD_WIDTH) || ((unsigned) y >= LCD_HEIGHT)) |
465 | return; | 465 | return; |
466 | if (((unsigned)(x + nx)) >= LCD_WIDTH) | ||
467 | nx = LCD_WIDTH - x; | ||
468 | if (((unsigned)(y + ny)) >= LCD_HEIGHT) | ||
469 | ny = LCD_HEIGHT - y; | ||
470 | 466 | ||
471 | shift = y & 7; | 467 | stride = nx; /* otherwise right-clipping will destroy the image */ |
472 | dst2 = &lcd_framebuffer[y/8][x]; | ||
473 | 468 | ||
474 | /* short cut for byte aligned match (e.g. standard text) */ | 469 | if (((unsigned) (x + nx)) >= LCD_WIDTH) |
475 | if (!shift && clear && ny==8) | 470 | nx = LCD_WIDTH - x; |
471 | if (((unsigned) (y + ny)) >= LCD_HEIGHT) | ||
472 | ny = LCD_HEIGHT - y; | ||
473 | |||
474 | dst = &lcd_framebuffer[y >> 3][x]; | ||
475 | shift = y & 7; | ||
476 | |||
477 | if (!shift && clear) /* shortcut for byte aligned match with clear */ | ||
476 | { | 478 | { |
477 | memcpy(dst2, src, nx); | 479 | while (ny >= 8) /* all full rows */ |
478 | return; | 480 | { |
481 | memcpy(dst, src, nx); | ||
482 | src += stride; | ||
483 | dst += LCD_WIDTH; | ||
484 | ny -= 8; | ||
485 | } | ||
486 | if (ny == 0) /* nothing left to do? */ | ||
487 | return; | ||
488 | /* last partial row to do by default routine */ | ||
479 | } | 489 | } |
480 | 490 | ||
481 | ny += shift; | 491 | ny += shift; |
482 | 492 | ||
483 | /* Calculate bit masks */ | 493 | /* Calculate bit masks */ |
484 | mask4 = ~(0xfe << ((ny-1) & 7)); | 494 | mask4 = ~(0xfe << ((ny-1) & 7)); /* data mask for last partial row */ |
485 | if (clear) | 495 | if (clear) |
486 | { | 496 | { |
487 | mask = ~(0xff << shift); | 497 | mask1 = ~(0xff << shift); /* clearing of first partial row */ |
488 | mask2 = 0; | 498 | mask2 = 0; /* clearing of intermediate (full) rows */ |
489 | mask3 = ~mask4; | 499 | mask3 = ~mask4; /* clearing of last partial row */ |
490 | if (ny <= 8) | 500 | if (ny <= 8) |
491 | mask3 |= mask; | 501 | mask3 |= mask1; |
492 | } | 502 | } |
493 | else | 503 | else |
494 | mask = mask2 = mask3 = 0xff; | 504 | mask1 = mask2 = mask3 = 0xff; |
495 | 505 | ||
496 | /* Loop for each column */ | 506 | /* Loop for each column */ |
497 | for (x = 0; x < nx; x++) | 507 | for (x = 0; x < nx; x++) |
498 | { | 508 | { |
499 | dst = dst2; | 509 | src_col = src++; |
500 | dst2++; | 510 | dst_col = dst++; |
501 | data = 0; | 511 | data = 0; |
502 | y = 0; | 512 | y = 0; |
503 | 513 | ||
504 | if (ny > 8) | 514 | if (ny > 8) |
505 | { | 515 | { |
506 | /* First partial row */ | 516 | /* First partial row */ |
507 | data = *src++ << shift; | 517 | data = *src_col << shift; |
508 | *dst = (*dst & mask) | data; | 518 | *dst_col = (*dst_col & mask1) | data; |
519 | src_col += stride; | ||
520 | dst_col += LCD_WIDTH; | ||
509 | data >>= 8; | 521 | data >>= 8; |
510 | dst += LCD_WIDTH; | ||
511 | 522 | ||
512 | /* Intermediate rows */ | 523 | /* Intermediate rows */ |
513 | for (y = 8; y < ny-8; y += 8) | 524 | for (y = 8; y < ny-8; y += 8) |
514 | { | 525 | { |
515 | data |= *src++ << shift; | 526 | data |= *src_col << shift; |
516 | *dst = (*dst & mask2) | data; | 527 | *dst_col = (*dst_col & mask2) | data; |
528 | src_col += stride; | ||
529 | dst_col += LCD_WIDTH; | ||
517 | data >>= 8; | 530 | data >>= 8; |
518 | dst += LCD_WIDTH; | ||
519 | } | 531 | } |
520 | } | 532 | } |
521 | 533 | ||
522 | /* Last partial row */ | 534 | /* Last partial row */ |
523 | if (y + shift < ny) | 535 | if (y + shift < ny) |
524 | data |= *src++ << shift; | 536 | data |= *src_col << shift; |
525 | *dst = (*dst & mask3) | (data & mask4); | 537 | *dst_col = (*dst_col & mask3) | (data & mask4); |
526 | } | 538 | } |
527 | } | 539 | } |
528 | 540 | ||
529 | /* | 541 | /* |
530 | * Draw a rectangle with upper left corner at (x, y) | 542 | * Draw a rectangle with upper left corner at (x, y) |
531 | * and size (nx, ny) | 543 | * and size (nx, ny) |
532 | */ | 544 | */ |
diff --git a/firmware/font.c b/firmware/font.c index f1762ba698..7c83923904 100644 --- a/firmware/font.c +++ b/firmware/font.c | |||
@@ -300,6 +300,7 @@ static void rotate_font_bits(struct font* pf) | |||
300 | * Take an bitmap_t bitmap and convert to Rockbox format. | 300 | * Take an bitmap_t bitmap and convert to Rockbox format. |
301 | * Used for converting font glyphs for the time being. | 301 | * Used for converting font glyphs for the time being. |
302 | * Can use for standard X11 and Win32 images as well. | 302 | * Can use for standard X11 and Win32 images as well. |
303 | * See format description in lcd-recorder.c | ||
303 | * | 304 | * |
304 | * Doing it this way keeps fonts in standard formats, | 305 | * Doing it this way keeps fonts in standard formats, |
305 | * as well as keeping Rockbox hw bitmap format. | 306 | * as well as keeping Rockbox hw bitmap format. |
@@ -308,52 +309,44 @@ static void rotleft(unsigned char *dst, bitmap_t *src, unsigned int width, | |||
308 | unsigned int height) | 309 | unsigned int height) |
309 | { | 310 | { |
310 | unsigned int i,j; | 311 | unsigned int i,j; |
311 | unsigned int dst_col = 0; /* destination column*/ | ||
312 | unsigned int dst_shift = 0; /* destination shift amount*/ | ||
313 | unsigned int dst_linelen; /* # bytes per output row*/ | ||
314 | unsigned int src_words; /* # words of input image*/ | 312 | unsigned int src_words; /* # words of input image*/ |
315 | 313 | unsigned int dst_mask; /* bit mask for destination */ | |
316 | /* calc bytes per output row*/ | 314 | bitmap_t src_mask; /* bit mask for source */ |
317 | dst_linelen = (height-1)/8+1; | ||
318 | 315 | ||
319 | /* calc words of input image*/ | 316 | /* calc words of input image*/ |
320 | src_words = BITMAP_WORDS(width) * height; | 317 | src_words = BITMAP_WORDS(width) * height; |
321 | 318 | ||
322 | /* clear background*/ | 319 | /* clear background*/ |
323 | memset(dst, 0, dst_linelen*width); | 320 | memset(dst, 0, ((height + 7) / 8) * width); |
324 | 321 | ||
325 | for (i=0; i < src_words; i++) { | 322 | dst_mask = 1; |
326 | bitmap_t srcmap; /* current src input bit*/ | ||
327 | bitmap_t dstmap; /* current dst output bit*/ | ||
328 | |||
329 | /* calc src input bit*/ | ||
330 | srcmap = 1 << (sizeof(bitmap_t)*8-1); | ||
331 | 323 | ||
332 | /* calc dst output bit*/ | 324 | for (i=0; i < src_words; i++) { |
333 | if (i>0 && (i%8==0)) { | ||
334 | ++dst_col; | ||
335 | dst_shift = 0; | ||
336 | } | ||
337 | dstmap = 1 << dst_shift++; | ||
338 | 325 | ||
326 | /* calc src input bit*/ | ||
327 | src_mask = 1 << (sizeof (bitmap_t) * 8 - 1); | ||
328 | |||
339 | /* for each input column...*/ | 329 | /* for each input column...*/ |
340 | for(j=0; j < width; j++) { | 330 | for(j=0; j < width; j++) { |
341 | 331 | ||
342 | /* calc input bitmask*/ | 332 | /* if set in input, set in rotated output */ |
343 | bitmap_t bit = srcmap >> j; | 333 | if (src[i] & src_mask) |
344 | if (bit==0) { | 334 | dst[j] |= dst_mask; |
345 | srcmap = 1 << (sizeof(bitmap_t)*8-1); | ||
346 | bit = srcmap >> (j % 16); | ||
347 | } | ||
348 | 335 | ||
349 | /* if set in input, set in rotated output*/ | 336 | src_mask >>= 1; /* next input bit */ |
350 | if (bit & src[i]) { | 337 | if (src_mask == 0) /* input word done? */ |
351 | /* input column j becomes output row*/ | 338 | { |
352 | dst[j*dst_linelen + dst_col] |= dstmap; | 339 | src_mask = 1 << (sizeof (bitmap_t) * 8 - 1); |
340 | i++; /* next input word */ | ||
353 | } | 341 | } |
354 | /*debugf((bit & src[i])? "*": ".");*/ | ||
355 | } | 342 | } |
356 | /*debugf("\n");*/ | 343 | |
344 | dst_mask <<= 1; /* next output bit (row) */ | ||
345 | if (dst_mask > (1 << 7)) /* output bit > 7? */ | ||
346 | { | ||
347 | dst_mask = 1; | ||
348 | dst += width; /* next output byte row */ | ||
349 | } | ||
357 | } | 350 | } |
358 | } | 351 | } |
359 | #endif /* HAVE_LCD_BITMAP */ | 352 | #endif /* HAVE_LCD_BITMAP */ |