diff options
author | Kjell Ericson <kjell@haxx.se> | 2003-01-10 11:07:14 +0000 |
---|---|---|
committer | Kjell Ericson <kjell@haxx.se> | 2003-01-10 11:07:14 +0000 |
commit | 602c049b39ce7f881e5c13b76d5419b106c50c86 (patch) | |
tree | e8f60dad737e7e2a674f47a5c3c618bbe0df1cb3 /www/docs | |
parent | 3639325a2b04c4b2a4fe25b0ce2fc4a099d0c389 (diff) | |
download | rockbox-602c049b39ce7f881e5c13b76d5419b106c50c86.tar.gz rockbox-602c049b39ce7f881e5c13b76d5419b106c50c86.zip |
Description of how Rocklatin works and looks like.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3060 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'www/docs')
-rw-r--r-- | www/docs/index.t | 1 | ||||
-rw-r--r-- | www/docs/lcd_new.gif | bin | 0 -> 43437 bytes | |||
-rw-r--r-- | www/docs/lcd_new_hw.gif | bin | 0 -> 41878 bytes | |||
-rw-r--r-- | www/docs/lcd_new_subst.gif | bin | 0 -> 43437 bytes | |||
-rw-r--r-- | www/docs/lcd_old.gif | bin | 0 -> 43437 bytes | |||
-rw-r--r-- | www/docs/lcd_old_hw.gif | bin | 0 -> 41878 bytes | |||
-rw-r--r-- | www/docs/lcd_old_subst.gif | bin | 0 -> 43437 bytes | |||
-rw-r--r-- | www/docs/rocklatin.t | 97 |
8 files changed, 98 insertions, 0 deletions
diff --git a/www/docs/index.t b/www/docs/index.t index e2a7d96628..8205142514 100644 --- a/www/docs/index.t +++ b/www/docs/index.t | |||
@@ -20,6 +20,7 @@ | |||
20 | <li><a href="/sh-win/">Setting up the cross compiler for Windows</a> | 20 | <li><a href="/sh-win/">Setting up the cross compiler for Windows</a> |
21 | <li><a href="how_to_compile.html">How to compile Rockbox</a> (README from cvs) | 21 | <li><a href="how_to_compile.html">How to compile Rockbox</a> (README from cvs) |
22 | <li><a href="mpeghdr.html">MPEG frame header info</a> | 22 | <li><a href="mpeghdr.html">MPEG frame header info</a> |
23 | <li><a href="rocklatin.htm">Rocklatin charset in Player</a> | ||
23 | </ul> | 24 | </ul> |
24 | 25 | ||
25 | #include "foot.t" | 26 | #include "foot.t" |
diff --git a/www/docs/lcd_new.gif b/www/docs/lcd_new.gif new file mode 100644 index 0000000000..e305a33498 --- /dev/null +++ b/www/docs/lcd_new.gif | |||
Binary files differ | |||
diff --git a/www/docs/lcd_new_hw.gif b/www/docs/lcd_new_hw.gif new file mode 100644 index 0000000000..87930d3d65 --- /dev/null +++ b/www/docs/lcd_new_hw.gif | |||
Binary files differ | |||
diff --git a/www/docs/lcd_new_subst.gif b/www/docs/lcd_new_subst.gif new file mode 100644 index 0000000000..f5e8297ce6 --- /dev/null +++ b/www/docs/lcd_new_subst.gif | |||
Binary files differ | |||
diff --git a/www/docs/lcd_old.gif b/www/docs/lcd_old.gif new file mode 100644 index 0000000000..558b290066 --- /dev/null +++ b/www/docs/lcd_old.gif | |||
Binary files differ | |||
diff --git a/www/docs/lcd_old_hw.gif b/www/docs/lcd_old_hw.gif new file mode 100644 index 0000000000..19f35f6711 --- /dev/null +++ b/www/docs/lcd_old_hw.gif | |||
Binary files differ | |||
diff --git a/www/docs/lcd_old_subst.gif b/www/docs/lcd_old_subst.gif new file mode 100644 index 0000000000..45eb5a6206 --- /dev/null +++ b/www/docs/lcd_old_subst.gif | |||
Binary files differ | |||
diff --git a/www/docs/rocklatin.t b/www/docs/rocklatin.t new file mode 100644 index 0000000000..e44d154ff9 --- /dev/null +++ b/www/docs/rocklatin.t | |||
@@ -0,0 +1,97 @@ | |||
1 | #define _PAGE_ Rocklatin | ||
2 | #include "head.t" | ||
3 | |||
4 | <h1>Rocklatin1</h1> | ||
5 | |||
6 | Only for developers... | ||
7 | |||
8 | <h2>Background</h2> | ||
9 | The Archos player comes in two models. One with old LCD and one with new LCD. | ||
10 | (Differences can be seen below). You can't find any difference more than the | ||
11 | LCD, therefor we run the same code on both models. The original software | ||
12 | contains two different mappings from ASCII-character to hardware-LCD. Because | ||
13 | some characters doesn't exist in both hardwares all national characters | ||
14 | are left out in both hardware. | ||
15 | <p>The old LCD can have 4 software defined characters, and the new LCD can | ||
16 | have 8 software defined characters. | ||
17 | <table border=1><tr> | ||
18 | <td>HW layout of old LCD:<br><img width=272 height=272 src="lcd_old_hw.gif"></td> | ||
19 | <td>HW layout of new LCD:<br><img width=272 height=272 src="lcd_new_hw.gif"></td> | ||
20 | </tr></table> | ||
21 | |||
22 | <h2>What is Rocklatin1</h2> | ||
23 | Rocklatin1 is based on Winlatin1 (which is identical to Latin1 but some | ||
24 | extra characters). All characters presented in any HW-LCD (i.e. old LCD) | ||
25 | is mapped in Rocklatin1 and some extra characters we find good to use. | ||
26 | |||
27 | <table border=1><tr> | ||
28 | <td>Rocklatin1 of old LCD:<br><img width=272 height=272 src="lcd_old.gif"></td> | ||
29 | <td>Rocklatin1 of new LCD:<br><img width=272 height=272 src="lcd_new.gif"></td> | ||
30 | </tr></table> | ||
31 | The red characters are characters not defined in the HW-LCD. These characters | ||
32 | are mapped by the software to a software defined character (0-4/8) whenever | ||
33 | they are used. | ||
34 | |||
35 | <h2>But what if...</h2> | ||
36 | ...all software defined characters are taken?<br> | ||
37 | Well, then a substitute character will be used for that character. | ||
38 | |||
39 | <table border=1><tr> | ||
40 | <td>Substitute of old LCD:<br><img width=272 height=272 src="lcd_old_subst.gif"></td> | ||
41 | <td>Substitute of new LCD:<br><img width=272 height=272 src="lcd_new_subst.gif"></td> | ||
42 | </tr></table> | ||
43 | The red characters shows where a substitution is made. | ||
44 | |||
45 | <p> | ||
46 | All Rocklatin1 characters between 0x00 and 0x1f are hardcoded to be prioritized. | ||
47 | That means that if a national character is displayed at LCD and an icon | ||
48 | (0x18-0x1f) is to be shown, the character with highest Rocklatin1 value will | ||
49 | be switched to a substitute character. | ||
50 | |||
51 | <h2>Accessing hardware</h2> | ||
52 | The Rockbox software can access a HW-LCD-character by doing a lcd_putc(0x100-0x1ff). That would of course make it 100% hardware depended (=not good). | ||
53 | <p> | ||
54 | The Rockbox software can also define 23 own patterns, even though hardware only | ||
55 | allows 4 or 8. The software should of course not try to display more than 4 | ||
56 | or 8 of such characters. This code example shows how to define a pattern: | ||
57 | <pre> | ||
58 | { | ||
59 | unsigned char pattern[]={ 0x0a, 0x00, 0x00, 0x0c, | ||
60 | 0x04, 0x04, 0x0e}; | ||
61 | unsigned char handle; | ||
62 | |||
63 | handle=lcd_get_locked_pattern(); | ||
64 | lcd_define_pattern(handle, pattern); | ||
65 | |||
66 | lcd_putc(x, y, handle); | ||
67 | |||
68 | ... | ||
69 | |||
70 | lcd_unlock_pattern(handle); | ||
71 | } | ||
72 | </pre> | ||
73 | The handle is very likely to be between 0x01 to 0x17, which in software will | ||
74 | be handled as a prioritized character (even higher than the icons). | ||
75 | |||
76 | <h2>Some notes</h2> | ||
77 | <ul> | ||
78 | <li>Displaying the same rocklatin-mapped-character many times at the LCD | ||
79 | only occupies one HW-LCD-mapped character. | ||
80 | <li>If a substitute character is used, the "should-be" character will never | ||
81 | be shown (no flickering screen) until the character is moved or scrolled. | ||
82 | <li>Characters already displayed are only substituted if a prioritized | ||
83 | character is to be displayed. | ||
84 | <li>The software maps the characters circular in order to minimize the | ||
85 | likelyhood to remap the same character very often. | ||
86 | <li>The gifs above is generated with the tool "generate_rocklatin". | ||
87 | <li>Rocklatin character 0x92 is defined as the "cursor" character. | ||
88 | <li>Rocklatin character 0x93-0x95 is only used for substitution (a substitute | ||
89 | character must be a Rocklatin character). | ||
90 | <li>Implementation and design by Kjell Ericson and Mats Lidell (for questions). | ||
91 | <li>Rocklatin1 is based on Winlatin1 because the old LCD happened to have 7 | ||
92 | of the Winlatin1-extra characters (no need to remap/remove those). | ||
93 | <li>If you find any characters identical in old and new HW-LCD that aren't | ||
94 | mapped (and really are useful) you can tell us. | ||
95 | </ul> | ||
96 | |||
97 | #include "foot.t" | ||