From 602c049b39ce7f881e5c13b76d5419b106c50c86 Mon Sep 17 00:00:00 2001 From: Kjell Ericson Date: Fri, 10 Jan 2003 11:07:14 +0000 Subject: Description of how Rocklatin works and looks like. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3060 a1c6a512-1295-4272-9138-f99709370657 --- www/docs/rocklatin.t | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 www/docs/rocklatin.t (limited to 'www/docs/rocklatin.t') 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 @@ +#define _PAGE_ Rocklatin +#include "head.t" + +

Rocklatin1

+ +Only for developers... + +

Background

+The Archos player comes in two models. One with old LCD and one with new LCD. +(Differences can be seen below). You can't find any difference more than the +LCD, therefor we run the same code on both models. The original software +contains two different mappings from ASCII-character to hardware-LCD. Because +some characters doesn't exist in both hardwares all national characters +are left out in both hardware. +

The old LCD can have 4 software defined characters, and the new LCD can +have 8 software defined characters. + + + +
HW layout of old LCD:
HW layout of new LCD:
+ +

What is Rocklatin1

+Rocklatin1 is based on Winlatin1 (which is identical to Latin1 but some +extra characters). All characters presented in any HW-LCD (i.e. old LCD) +is mapped in Rocklatin1 and some extra characters we find good to use. + + + + +
Rocklatin1 of old LCD:
Rocklatin1 of new LCD:
+The red characters are characters not defined in the HW-LCD. These characters +are mapped by the software to a software defined character (0-4/8) whenever +they are used. + +

But what if...

+...all software defined characters are taken?
+Well, then a substitute character will be used for that character. + + + + +
Substitute of old LCD:
Substitute of new LCD:
+The red characters shows where a substitution is made. + +

+All Rocklatin1 characters between 0x00 and 0x1f are hardcoded to be prioritized. +That means that if a national character is displayed at LCD and an icon +(0x18-0x1f) is to be shown, the character with highest Rocklatin1 value will +be switched to a substitute character. + +

Accessing hardware

+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). +

+The Rockbox software can also define 23 own patterns, even though hardware only +allows 4 or 8. The software should of course not try to display more than 4 +or 8 of such characters. This code example shows how to define a pattern: +

+{
+  unsigned char pattern[]={ 0x0a, 0x00, 0x00, 0x0c,
+                            0x04, 0x04, 0x0e};
+  unsigned char handle;
+
+  handle=lcd_get_locked_pattern();
+  lcd_define_pattern(handle, pattern);
+
+  lcd_putc(x, y, handle);
+
+  ...
+
+  lcd_unlock_pattern(handle);
+}
+
+The handle is very likely to be between 0x01 to 0x17, which in software will +be handled as a prioritized character (even higher than the icons). + +

Some notes

+ + +#include "foot.t" -- cgit v1.2.3