Hi,
I updated the XBMC recently and from a distance (3.5m) I thought there was an display (Xecuter3, blue display) error so I stood up and walked towards it and only then noticed the new feature.
Somewhere in 1996 during my highly-creative period I wrote code for a DCF77 clock, using a 16x4 or a 20x4 HD44780 display, driven by a 8051 controller. It shows the date in text and a rotating half-circle (125ms update). The half circle is the re-programmed 8-character CGRAM.
It also shows a big-time, which spans all 4 lines (yours spans 2 lines) and 16 characters wide. To do this, the half-rotating circle CGRAM is re-programmed.
One big-number-digit spans 4 lines and is 3 characters wide. I think between the 2 digits of the hour and the two of the minutes I displayed 2 small digits of the seconds.
It has been quite a while since I wrote the code and looking back it looks quite n00bish (no pointers), but hey it worked.
When I get home, I'll see if I can make some pictures of what it looks like.
Anyway, the data below should be helpful, at least for doing some experiments.
const char cgram_char[7][64] =
{{0x00, 0x0E, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, /* 0 rotating half */
0x00, 0x0E, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, /* circle */
0x00, 0x06, 0x07, 0x07, 0x07, 0x06, 0x00, 0x00,
0x00, 0x00, 0x03, 0x07, 0x0F, 0x0E, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1F, 0x1F, 0x0E, 0x00, 0x00,
0x00, 0x00, 0x18, 0x1C, 0x1E, 0x0E, 0x00, 0x00,
0x00, 0x0C, 0x1C, 0x1C, 0x1C, 0x0C, 0x00, 0x00,
0x00, 0x0E, 0x1E, 0x1C, 0x18, 0x00, 0x00, 0x00},
{0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, /* 1 all thick */
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, /* rounded corners */
0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x00,
0x1C, 0x1E, 0x1F, 0x1F, 0x0F, 0x0F, 0x0F, 0x00,
0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1E, 0x1C, 0x00,
0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x0F, 0x07, 0x00,
0x07, 0x0F, 0x1F, 0x1F, 0x1E, 0x1E, 0x1E, 0x00},
{0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, /* 2 all thick */
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x00,
0x1F, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, 0x0F, 0x00,
0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x1F, 0x1F, 0x1F, 0x1F, 0x1E, 0x1E, 0x1E, 0x00},
{0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, /* 3 thin corners */
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x00,
0x1F, 0x1F, 0x1F, 0x07, 0x07, 0x07, 0x07, 0x00,
0x07, 0x07, 0x07, 0x07, 0x1F, 0x1F, 0x1F, 0x00,
0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x00,
0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x00},
{0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, /* 4 thin rounded */
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, /* corners */
0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F,
0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
0x1C, 0x1E, 0x1F, 0x07, 0x07, 0x07, 0x07, 0x07,
0x07, 0x07, 0x07, 0x07, 0x07, 0x1F, 0x1E, 0x1C,
0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x0F, 0x07,
0x07, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C},
{0x1E, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, 0x1E, /* init characters, D */
0x0E, 0x01, 0x00, 0x10, 0x10, 0x10, 0x11, 0x0E, /* 5 C */
0x1F, 0x00, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, /* F */
0x1F, 0x00, 0x00, 0x02, 0x02, 0x04, 0x04, 0x04, /* 7 */
0x00, 0x0E, 0x15, 0x17, 0x11, 0x0E, 0x00, 0x00, /* clock */
0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1E, 0x1C, 0x00, /* */
0x1E, 0x1E, 0x1E, 0x1F, 0x1F, 0x0F, 0x07, 0x00, /* */
0x07, 0x0F, 0x1F, 0x1F, 0x1E, 0x1E, 0x1E, 0x00}, /* */
{0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, /* 6 inverted */
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, /* */
0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x07, 0x03, 0x03,
0x03, 0x03, 0x07, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
0x18, 0x18, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x18, 0x18}};
/*----------------------------------------------------------------------*/
const char bignumber[2][11][12]=
{{{0x07, 0x00, 0x04, 0x03, 0x20, 0x01, 0x03, 0x20, 0x01, 0x06, 0x02, 0x05},
{0x20, 0x04, 0x20, 0x20, 0x01, 0x20, 0x20, 0x01, 0x20, 0x20, 0x01, 0x20},
{0x00, 0x00, 0x04, 0x02, 0x02, 0x05, 0x03, 0x20, 0x20, 0x06, 0x02, 0x02},
{0x00, 0x00, 0x04, 0x20, 0x02, 0x05, 0x20, 0x20, 0x01, 0x02, 0x02, 0x05},
{0x03, 0x20, 0x01, 0x06, 0x02, 0x05, 0x20, 0x20, 0x01, 0x20, 0x20, 0x01},
{0x07, 0x00, 0x00, 0x06, 0x02, 0x02, 0x20, 0x20, 0x01, 0x02, 0x02, 0x05},
{0x07, 0x00, 0x00, 0x06, 0x02, 0x02, 0x03, 0x20, 0x01, 0x06, 0x02, 0x05},
{0x00, 0x00, 0x04, 0x20, 0x20, 0x01, 0x20, 0x20, 0x01, 0x20, 0x20, 0x01},
{0x07, 0x00, 0x04, 0x06, 0x02, 0x05, 0x03, 0x20, 0x01, 0x06, 0x02, 0x05},
{0x07, 0x00, 0x04, 0x06, 0x02, 0x05, 0x20, 0x20, 0x01, 0x02, 0x02, 0x05},
{0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}},
{{0x07, 0x00, 0x04, 0x03, 0xFF, 0x01, 0x03, 0xFF, 0x01, 0x06, 0x02, 0x05},
{0xFF, 0x07, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x06, 0xFF},
{0x07, 0x00, 0x04, 0x07, 0x00, 0x01, 0x03, 0xFF, 0xFF, 0x06, 0x02, 0x05},
{0x07, 0x00, 0x04, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0x01, 0x06, 0x02, 0x05},
{0x07, 0xFF, 0x04, 0x03, 0x00, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x05},
{0x07, 0x00, 0x04, 0x03, 0x00, 0x04, 0xFF, 0xFF, 0x01, 0x06, 0x02, 0x05},
{0x07, 0x00, 0x04, 0x03, 0x00, 0x04, 0x03, 0xFF, 0x01, 0x06, 0x02, 0x05},
{0x07, 0x00, 0x04, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x05},
{0x07, 0x00, 0x04, 0x03, 0x00, 0x01, 0x03, 0xFF, 0x01, 0x06, 0x02, 0x05},
{0x07, 0x00, 0x04, 0x03, 0x00, 0x01, 0xFF, 0xFF, 0x01, 0x06, 0x02, 0x05},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}}};
/*----------------------------------------------------------------------*/
const char bigcharposition[12]={0,1,2,20,21,22,40,41,42,60,61,62};
/* based on a 20x4 display */
//