Click here to go to the forum index Click here for the home page
 
Author Message

<  TAP and patch development  ~  Toppy Character Set

Page 1 of 10
Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
EMJB
Posted: Fri Sep 07, 2007 1:41 pm Reply with quote
Frequent contributor Joined: 08 Jul 2005 Posts: 3470 Location: Maldon Essex
I was recently rather disappointed to find that the Toppy would not display the up & down arrow characters, and on further investigation it appears that none of the characters in the ranges 0x00 to 0x1F and 0x80 to 0x9F produce a useful character (didn't check whether it nothing or a space). Does anyone know how to recover these characters?

I have uploaded the actual character map @ http://myweb.tiscali.co.uk/emjbtaps/Toppycharmap.JPG in case anyone else is going through the same process. The first column represents the first hex digit, and the top line the second hex digit.
View user's profile Send private message
R2-D2
Posted: Fri Sep 07, 2007 2:00 pm Reply with quote
Frequent contributor Joined: 18 Dec 2006 Posts: 12149
It's been discussed before and the Toppy character set is ISO-Latin-5 (see here for a character map). Consensus of opinion is that they did this for compatibility with more (lucrative) markets.
View user's profile Send private message Visit poster's website
simonc
Posted: Fri Sep 07, 2007 2:45 pm Reply with quote
Frequent contributor Joined: 12 Apr 2005 Posts: 5618 Location: Cheltenham
80-9f are probably ignored because they're used as control characters in the DVB spec. See Annex A, page 70.
View user's profile Send private message Visit poster's website
R2-D2
Posted: Fri Sep 07, 2007 2:57 pm Reply with quote
Frequent contributor Joined: 18 Dec 2006 Posts: 12149
simonc wrote:
80-9f are probably ignored because they're used as control characters in the DVB spec. See Annex A, page 70.
Most likely it's the other way around.
View user's profile Send private message Visit poster's website
R2-D2
Posted: Fri Sep 07, 2007 3:37 pm Reply with quote
Frequent contributor Joined: 18 Dec 2006 Posts: 12149
Oh yes, and bdb's noticed some strange chars in the past, which is probably the beginnings of uncovering what the Toppy does with them. 0x86 and 0x87 are used to delimit emphasised text, and the Toppy seems to think that service names might be wrapped like this.

Fancy trying to uncover them all, EMJB? I think random sequences will crash the Toppy, so it's not a simple task -- I'll see if I can uncover anything useful in the firmware. (If you're running 5.13.40 then calling the routine at 0x80114928 brings up a nice charset OSD test -- it came to my attention because of it's huge stack, but I've not investigated it much further.)
View user's profile Send private message Visit poster's website
EMJB
Posted: Fri Sep 07, 2007 5:49 pm Reply with quote
Frequent contributor Joined: 08 Jul 2005 Posts: 3470 Location: Maldon Essex
R2-D2 wrote:
It's been discussed before and the Toppy character set is ISO-Latin-5

Embarassed Missed the significance of that statement!

R2-D2 wrote:
Oh yes, and bdb's noticed some strange chars in the past, which is probably the beginnings of uncovering what the Toppy does with them. 0x86 and 0x87 are used to delimit emphasised text, and the Toppy seems to think that service names might be wrapped like this.

Fancy trying to uncover them all, EMJB?


in a word, NO!

EMJB
View user's profile Send private message
bdb
Posted: Fri Sep 07, 2007 6:16 pm Reply with quote
Frequent contributor Joined: 18 Oct 2005 Posts: 499
I had meant to post a bit more about this.

This is the extended character set:



Code:
//----------------------------------------------------------------------------
#define ESC1                "\x90"      //"�"
#define ESC2                "\x91"      //"‘"

#define OSD_RIGHT0          "\x90[0]"
#define OSD_LEFT_RIGHT      "\x90[1]"
#define OSD_UP_DOWN         "\x90[2]"
#define OSD_OK              "\x90[3]"
#define OSD_EXIT            "\x90[4]"
#define OSD_MENU            "\x90[5]"
#define OSD_LEFT1           "\x90[6]"
#define OSD_RIGHT1          "\x90[7]"
#define OSD_UP1             "\x90[8]"
#define OSD_DOWN1           "\x90[9]"

#define OSD_LEFT2           "\x90[10]"
#define OSD_RIGHT2          "\x90[11]"
#define OSD_UP2             "\x90[12]"
#define OSD_DOWN2           "\x90[13]"
#define OSD_TV              "\x90[14]"
#define OSD_MUTE1           "\x90[15]"
#define OSD_MUTE2           "\x90[16]"
#define OSD_MUTE3           "\x90[17]"
#define OSD_ENCRYPTED       "\x90[18]"
#define OSD_RADIO           "\x90[19]"

#define OSD_TICK            "\x90[20]"
#define OSD_HALF            "\x90[21]"
#define OSD_FULL            "\x90[22]"
#define OSD_RED_SQUARE      "\x90[23]"
#define OSD_DOLLAR          "\x90[24]"
#define OSD_RED             "\x90[25]"
#define OSD_GREEN           "\x90[26]"
#define OSD_YELLOW          "\x90[27]"
#define OSD_BLUE            "\x90[28]"
#define OSD_WHITE           "\x90[29]"

#define OSD_INFO            "\x90[30]"
#define OSD_REWIND          "\x90[31]"
#define OSD_PLAY            "\x90[32]"
#define OSD_PAUSE           "\x90[33]"
#define OSD_FORWARD         "\x90[34]"
#define OSD_SLOW            "\x90[35]"
#define OSD_STOP            "\x90[36]"
#define OSD_RECORD          "\x90[37]"
#define OSD_CENTRE          "\x90[38]"
#define OSD_DOLBY           "\x90[39]"

#define OSD_MULTI           "\x90[40]"
#define OSD_DECRYPTED       "\x90[41]"
#define OSD_EURO            "\x90[42]"
#define OSD_OPT             "\x90[43]"
#define OSD_SAT             "\x90[44]"
#define OSD_W               "\x90[45]"
#define OSD_ST              "\x90[46]"
//any more crash

e.g.
Code:
   TAP_Osd_PutString(rgn, 50, 350, 750,
        "a "OSD_RED" button",
        COLOR_White, RGB(3,5,10), 0, FNT_Size_1622, 0);


\x90[nn] where nn are decimal 0-46 gives an extended character
\x91[nn] where nn are ??? does some strange thngs, like transparent background

bdb
View user's profile Send private message
nwhitfield
Posted: Fri Sep 07, 2007 7:11 pm Reply with quote
Site Admin Joined: 20 Mar 2005 Posts: 9521 Location: London
Interesting to see a Euro symbol in there; I wonder if we could get that into the channel list, in place of the dollar Wink

_________________
Support this site - make a donation to our running costs
View user's profile Send private message Visit poster's website
glenmcfar
Posted: Fri Sep 07, 2007 7:25 pm Reply with quote
Frequent contributor Joined: 07 Dec 2006 Posts: 4519 Location: Dundonald, Ayrshire, Scotland
I'd rather have a pound sign, and seeing as that's not available I think we should stick with a dollar sign - the exchange rate is better. Laughing

Glen.

PS: Stay on topic please. Wink

_________________
H/W: TF5800 | URC-7555 | Asus | Best Firmware Ever!
A/S: SecCacheUK, EitSub, EPG2MEI, Display, Extend, QuickJump, FontManager, TapLauncher, MyStuff
T/L: TapCommander, Surfer, MeiSearch, MediaManager | HDFW, CutAds, Sudoku
View user's profile Send private message
R2-D2
Posted: Fri Sep 07, 2007 7:37 pm Reply with quote
Frequent contributor Joined: 18 Dec 2006 Posts: 12149
Wanna patch? Laughing

Good work, bdb! I suspect a lot of people will find those useful. No more faffing with including graphics in your TAP for simple things that the Toppy already has.
View user's profile Send private message Visit poster's website
simonc
Posted: Fri Sep 07, 2007 7:45 pm Reply with quote
Frequent contributor Joined: 12 Apr 2005 Posts: 5618 Location: Cheltenham
Yes, this is going to be extremely handy for help text. I thought there must've been some capability for it in the firmware.
View user's profile Send private message Visit poster's website
R2-D2
Posted: Fri Sep 07, 2007 9:08 pm Reply with quote
Frequent contributor Joined: 18 Dec 2006 Posts: 12149
Ooh, this is fun! I think the mysterious "fntType" parameter to TAP_Osd_PutS() (and others) actually controls the character set used. You can also override this choice via the (DVB standard) initial byte of the string you supply. Values of 1, 2, 3, 5, 9, 10 and 11 are significant (for either).
View user's profile Send private message Visit poster's website
R2-D2
Posted: Fri Sep 07, 2007 10:35 pm Reply with quote
Frequent contributor Joined: 18 Dec 2006 Posts: 12149
...which has lead to finding the fonts. TFD compressed, and they appear to be almost in PBM format (I'm not great on graphics formats...).
View user's profile Send private message Visit poster's website
EMJB
Posted: Sat Sep 08, 2007 6:56 am Reply with quote
Frequent contributor Joined: 08 Jul 2005 Posts: 3470 Location: Maldon Essex
The thing I love about this forum is that if you ask a silly question not only do you get a polite answer, but you often provoke a really useful discussion!

EMJB
View user's profile Send private message
R2-D2
Posted: Sat Sep 08, 2007 7:17 am Reply with quote
Frequent contributor Joined: 18 Dec 2006 Posts: 12149
A couple of extracts for people who might know more about these things than me: font1_0.pbm and font2_1.pbm. This is the uncompressed data with a PBM header stuck on the front. Each font is in two halves: 0x0-0x7f, 0x80-0xff. There's a table with things like the pixel width (this is rounded up to the nearest byte in the actual data) and the list of row offsets of each character. I'm assuming there's also a list of the actual char widths, too. Sound like any known format to anyone?
View user's profile Send private message Visit poster's website

Display posts from previous:  

All times are GMT
Page 1 of 10
Goto page 1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum