| Author |
Message |
|
|
Page 1 of 10
|
| EMJB |
Posted: Fri Sep 07, 2007 1:41 pm |
|
|
|
Frequent contributor
Joined: 08 Jul 2005
Posts: 3262
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. |
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Sep 07, 2007 2:00 pm |
|
|
|
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. |
|
|
| Back to top |
|
| simonc |
Posted: Fri Sep 07, 2007 2:45 pm |
|
|
|
Frequent contributor
Joined: 12 Apr 2005
Posts: 5616
Location: Cheltenham
|
| 80-9f are probably ignored because they're used as control characters in the DVB spec. See Annex A, page 70. |
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Sep 07, 2007 2:57 pm |
|
|
|
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. |
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Sep 07, 2007 3:37 pm |
|
|
|
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.) |
|
|
| Back to top |
|
| EMJB |
Posted: Fri Sep 07, 2007 5:49 pm |
|
|
|
Frequent contributor
Joined: 08 Jul 2005
Posts: 3262
Location: Maldon Essex
|
R2-D2 wrote: It's been discussed before and the Toppy character set is ISO-Latin-5
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 |
|
|
| Back to top |
|
| bdb |
Posted: Fri Sep 07, 2007 6:16 pm |
|
|
|
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 |
|
|
| Back to top |
|
| nwhitfield |
Posted: Fri Sep 07, 2007 7:11 pm |
|
|
|
Site Admin
Joined: 20 Mar 2005
Posts: 9473
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  |
_________________ Support this site - make a donation to our running costs |
|
| Back to top |
|
| glenmcfar |
Posted: Fri Sep 07, 2007 7:25 pm |
|
|
|
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.
Glen.
PS: Stay on topic please.  |
_________________ 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 |
|
| Back to top |
|
| R2-D2 |
Posted: Fri Sep 07, 2007 7:37 pm |
|
|
|
Frequent contributor
Joined: 18 Dec 2006
Posts: 12149
|
Wanna patch?
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. |
|
|
| Back to top |
|
| simonc |
Posted: Fri Sep 07, 2007 7:45 pm |
|
|
|
Frequent contributor
Joined: 12 Apr 2005
Posts: 5616
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. |
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Sep 07, 2007 9:08 pm |
|
|
|
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). |
|
|
| Back to top |
|
| R2-D2 |
Posted: Fri Sep 07, 2007 10:35 pm |
|
|
|
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...). |
|
|
| Back to top |
|
| EMJB |
Posted: Sat Sep 08, 2007 6:56 am |
|
|
|
Frequent contributor
Joined: 08 Jul 2005
Posts: 3262
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 |
|
|
| Back to top |
|
| R2-D2 |
Posted: Sat Sep 08, 2007 7:17 am |
|
|
|
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? |
|
|
| Back to top |
|
|
|
|