Linux Framebuffer Layer development
 help / color / mirror / Atom feed
* Re: [PATCH] fbdev/pxafb: Fix multiple clamped values in pxafb_adjust_timing
From: Helge Deller @ 2025-12-02 19:36 UTC (permalink / raw)
  To: Thorsten Blum
  Cc: Chelsy Ratnawat, Thomas Zimmermann, Andy Shevchenko, Raag Jadav,
	linux-fbdev, dri-devel, linux-kernel
In-Reply-To: <C3FDBCE7-14D9-4999-B463-C2E3E384E7DB@linux.dev>

On 12/2/25 19:36, Thorsten Blum wrote:
> On 2. Dec 2025, at 19:28, Helge Deller wrote:
>> On 12/2/25 19:15, Thorsten Blum wrote:
>>> The variables were never clamped because the return value of clamp_val()
>>> was not used. Fix this by assigning the clamped values, and use clamp()
>>> instead of clamp_val().
>>> Cc: stable@vger.kernel.org
>>> Fixes: 3f16ff608a75 ("[ARM] pxafb: cleanup of the timing checking code")
>>> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
>>> ---
>>>   drivers/video/fbdev/pxafb.c | 12 ++++++------
>>>   1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> Thanks for the patch!
>> It looks good, so I'll include it in the fbdev tree.
>> Out of curiosity:
>> How did you notice? Do you actually have the hardware and tested it?
> 
> I only compile-tested it.
> 
> I stumbled upon another driver with the same bug and then used grep to
> search for other instances and found about 6 or 7, including this one.

Ok. But this then means, maybe the clamping isn't needed (since nobody complained),
or that nobody noticed because nobody uses the driver any longer.
Anyway, I believe the patch is correct, so I leave it in.

Thank you!
Helge

^ permalink raw reply

* Re: [PATCH] fbdev: i810: use appopriate log interface dev_info
From: Helge Deller @ 2025-12-02 19:24 UTC (permalink / raw)
  To: Shi Hao, linux-fbdev; +Cc: dri-devel, linux-kernel, adaplas
In-Reply-To: <20251031080942.14112-1-i.shihao.999@gmail.com>

On 10/31/25 09:09, Shi Hao wrote:
> There were many printk log interfaces which do no had
> any KERN_INFO with them and they can be replaced with
> dev_info which will allow better log level handling
> making messages clear and manageable.
> 
> No functional changes to the driver behavior are introduced.
> Only the logging method has been replaced as per modern
> kernel coding guidelines.
> 
> Signed-off-by: Shi Hao <i.shihao.999@gmail.com>
> ---
>   drivers/video/fbdev/i810/i810_main.c | 46 ++++++++++++++--------------
>   1 file changed, 23 insertions(+), 23 deletions(-)

applied.
I tweaked the patch a little more to drop the driver name as well
(which will be printed by the dev_*() functions).

Thanks!
Helge

^ permalink raw reply

* [PATCH] fbdev: ssd1307fb: fix potential page leak in ssd1307fb_probe()
From: Abdun Nihaal @ 2025-12-02 19:12 UTC (permalink / raw)
  To: deller
  Cc: Abdun Nihaal, niederp, maxime.ripard, tomi.valkeinen, linux-fbdev,
	dri-devel, linux-kernel

The page allocated for vmem using __get_free_pages() is not freed on the
error paths after it. Fix that by adding a corresponding __free_pages()
call to the error path.

Fixes: facd94bc458a ("fbdev: ssd1307fb: Allocate page aligned video memory.")
Signed-off-by: Abdun Nihaal <nihaal@cse.iitm.ac.in>
---
Compile tested only. Not tested on hardware.

 drivers/video/fbdev/ssd1307fb.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c
index aa6cc0a8151a..66da8a1a0941 100644
--- a/drivers/video/fbdev/ssd1307fb.c
+++ b/drivers/video/fbdev/ssd1307fb.c
@@ -680,7 +680,7 @@ static int ssd1307fb_probe(struct i2c_client *client)
 	if (!ssd1307fb_defio) {
 		dev_err(dev, "Couldn't allocate deferred io.\n");
 		ret = -ENOMEM;
-		goto fb_alloc_error;
+		goto fb_defio_error;
 	}
 
 	ssd1307fb_defio->delay = HZ / refreshrate;
@@ -757,6 +757,8 @@ static int ssd1307fb_probe(struct i2c_client *client)
 		regulator_disable(par->vbat_reg);
 reset_oled_error:
 	fb_deferred_io_cleanup(info);
+fb_defio_error:
+	__free_pages(__va(info->fix.smem_start), get_order(info->fix.smem_len));
 fb_alloc_error:
 	framebuffer_release(info);
 	return ret;
-- 
2.43.0


^ permalink raw reply related

* Re: [PATCH] fbdev/tridentfb: replace printk() with dev_*() in probe
From: Helge Deller @ 2025-12-02 19:09 UTC (permalink / raw)
  To: Javier Garcia; +Cc: linux-fbdev, dri-devel, linux-kernel, shuah
In-Reply-To: <20251115125701.3228804-1-rampxxxx@gmail.com>

On 11/15/25 13:57, Javier Garcia wrote:
> - Replace in `trident_pc_probe()` printk by dev_* fn's
> - Delete the prefix `tridentfb:` from msg strings, not needed now.
> 
> Signed-off-by: Javier Garcia <rampxxxx@gmail.com>
> ---
>   drivers/video/fbdev/tridentfb.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)

applied.

Thanks!
Helge

^ permalink raw reply

* Re: [PATCH] fonts: Add Terminus 10x18 console font
From: Helge Deller @ 2025-12-02 19:05 UTC (permalink / raw)
  To: Thomas Zimmermann, Neilay Kharwadkar; +Cc: linux-fbdev, linux-kernel
In-Reply-To: <04b704f3-9f89-497b-821a-5622c1e1b3a6@suse.de>

On 11/17/25 11:04, Thomas Zimmermann wrote:
> Am 16.11.25 um 20:20 schrieb Neilay Kharwadkar:
>> Add a compile-in option for Terminus 10x18 bitmap console font
>> to improve readability on modern laptop displays.
>>
>> On modern 13-16 inch laptop displays with high pixel density,
>> common scaled resolutions like 1280x800 and 1440x900 are widely
>> used.
>>
>> At these resolutions, VGA 8x16 is too small and difficult to
>> read for extended periods, while Terminus 16x32 is too large,
>> providing only 25-28 rows. The existing 10x18 font has poor
>> readability.
>>
>> Terminus 10x18 provides improved readability with its clean,
>> fixed-width design while maintaining practical row counts
>> (44-50 rows).
>>
>> A comfortable and readable built-in font for early boot messages,
>> kernel panics or whenever userspace is unavailable.
>>
>> The font was converted from standard Terminus ter-i18b.psf using
>> psftools and formatted to match kernel font conventions.
>>
>> This patch is non-intrusive, no options are enabled by default
>> so most users won't notice a thing.
> 
> What is the font's license and who owns the copyright?

Copyright seeems fine. According to [1] the font license is
SIL OFL 1.1, which is FSF approved. And we already have the
Terminus 16x32 font included in the linux kernel (CONFIG_FONT_TER16x32).

I've applied this patch to the fbdev git tree.
Thomas, let me know if you have additional concerns.

Thanks!
Helge

[1] https://terminus-font.sourceforge.net/



>> Signed-off-by: Neilay Kharwadkar <neilaykharwadkar@gmail.com>
>> ---
>>   include/linux/font.h      |    4 +-
>>   lib/fonts/Kconfig         |   12 +
>>   lib/fonts/Makefile        |    1 +
>>   lib/fonts/font_ter10x18.c | 5143 +++++++++++++++++++++++++++++++++++++
>>   lib/fonts/fonts.c         |    3 +
>>   5 files changed, 5162 insertions(+), 1 deletion(-)
>>   create mode 100644 lib/fonts/font_ter10x18.c
>>
>> diff --git a/include/linux/font.h b/include/linux/font.h
>> index 81caffd51bb4..fd8625cd76b2 100644
>> --- a/include/linux/font.h
>> +++ b/include/linux/font.h
>> @@ -35,6 +35,7 @@ struct font_desc {
>>   #define FONT6x10_IDX    10
>>   #define TER16x32_IDX    11
>>   #define FONT6x8_IDX    12
>> +#define TER10x18_IDX    13
>>   extern const struct font_desc    font_vga_8x8,
>>               font_vga_8x16,
>> @@ -48,7 +49,8 @@ extern const struct font_desc    font_vga_8x8,
>>               font_mini_4x6,
>>               font_6x10,
>>               font_ter_16x32,
>> -            font_6x8;
>> +            font_6x8,
>> +            font_ter_10x18;
>>   /* Find a font with a specific name */
>> diff --git a/lib/fonts/Kconfig b/lib/fonts/Kconfig
>> index ae59b5b4e225..7d03823e46dc 100644
>> --- a/lib/fonts/Kconfig
>> +++ b/lib/fonts/Kconfig
>> @@ -112,6 +112,17 @@ config FONT_SUN12x22
>>         big letters (like the letters used in the SPARC PROM). If the
>>         standard font is unreadable for you, say Y, otherwise say N.
>> +config FONT_TER10x18
>> +    bool "Terminus 10x18 font (not supported by all drivers)"
>> +    depends on FRAMEBUFFER_CONSOLE || DRM_PANIC
>> +    depends on !SPARC && FONTS || SPARC
>> +    help
>> +      Terminus Font is a clean, fixed width bitmap font, designed
>> +      for long (8 and more hours per day) work with computers.
>> +      This is the high resolution version made for use with 13-16" laptops.
>> +      It fits between the normal 8x16 font and Terminus 16x32.
>> +      If other fonts are unreadable for you, say Y, otherwise say N.
>> +
>>   config FONT_TER16x32
>>       bool "Terminus 16x32 font (not supported by all drivers)"
>>       depends on FRAMEBUFFER_CONSOLE || DRM_PANIC
>> @@ -140,6 +151,7 @@ config FONT_AUTOSELECT
>>       depends on !FONT_SUN8x16
>>       depends on !FONT_SUN12x22
>>       depends on !FONT_10x18
>> +    depends on !FONT_TER10x18
>>       depends on !FONT_TER16x32
>>       depends on !FONT_6x8
>>       select FONT_8x16
>> diff --git a/lib/fonts/Makefile b/lib/fonts/Makefile
>> index e16f68492174..30a85a4292fa 100644
>> --- a/lib/fonts/Makefile
>> +++ b/lib/fonts/Makefile
>> @@ -14,6 +14,7 @@ font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
>>   font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
>>   font-objs-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
>>   font-objs-$(CONFIG_FONT_6x10)      += font_6x10.o
>> +font-objs-$(CONFIG_FONT_TER10x18)  += font_ter10x18.o
>>   font-objs-$(CONFIG_FONT_TER16x32)  += font_ter16x32.o
>>   font-objs-$(CONFIG_FONT_6x8)       += font_6x8.o
>> diff --git a/lib/fonts/font_ter10x18.c b/lib/fonts/font_ter10x18.c
>> new file mode 100644
>> index 000000000000..80356e9d56c7
>> --- /dev/null
>> +++ b/lib/fonts/font_ter10x18.c
>> @@ -0,0 +1,5143 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +#include <linux/font.h>
>> +#include <linux/module.h>
>> +
>> +#define FONTDATAMAX 9216
>> +
>> +static const struct font_data fontdata_ter10x18 = {
>> +    { 0, 0, FONTDATAMAX, 0 }, {
>> +    /* 0 0x00 '^@' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 1 0x01 '^A' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x80, 0x40, /* #--------# */
>> +    0x80, 0x40, /* #--------# */
>> +    0xb3, 0x40, /* #-##--##-# */
>> +    0xb3, 0x40, /* #-##--##-# */
>> +    0x80, 0x40, /* #--------# */
>> +    0x80, 0x40, /* #--------# */
>> +    0xbf, 0x40, /* #-######-# */
>> +    0x9e, 0x40, /* #--####--# */
>> +    0x80, 0x40, /* #--------# */
>> +    0x80, 0x40, /* #--------# */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 2 0x02 '^B' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xcc, 0xc0, /* ##--##--## */
>> +    0xcc, 0xc0, /* ##--##--## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xc0, 0xc0, /* ##------## */
>> +    0xe1, 0xc0, /* ###----### */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 3 0x03 '^C' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x73, 0x80, /* -###--###- */
>> +    0xf3, 0xc0, /* ####--#### */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x7f, 0x80, /* -########- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 4 0x04 '^D' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x7f, 0x80, /* -########- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x7f, 0x80, /* -########- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 5 0x05 '^E' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 6 0x06 '^F' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x7f, 0x80, /* -########- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 7 0x07 '^G' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 8 0x08 '^H' */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xf3, 0xc0, /* ####--#### */
>> +    0xe1, 0xc0, /* ###----### */
>> +    0xe1, 0xc0, /* ###----### */
>> +    0xf3, 0xc0, /* ####--#### */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +
>> +    /* 9 0x09 '^I' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x21, 0x00, /* --#----#-- */
>> +    0x21, 0x00, /* --#----#-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 10 0x0a '^J' */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xe1, 0xc0, /* ###----### */
>> +    0xcc, 0xc0, /* ##--##--## */
>> +    0xde, 0xc0, /* ##-####-## */
>> +    0xde, 0xc0, /* ##-####-## */
>> +    0xcc, 0xc0, /* ##--##--## */
>> +    0xe1, 0xc0, /* ###----### */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +
>> +    /* 11 0x0b '^K' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0f, 0x80, /* ----#####- */
>> +    0x03, 0x80, /* ------###- */
>> +    0x06, 0x80, /* -----##-#- */
>> +    0x0c, 0x80, /* ----##--#- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 12 0x0c '^L' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 13 0x0d '^M' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x31, 0x80, /* --##---##- */
>> +    0x31, 0x80, /* --##---##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0xf0, 0x00, /* ####------ */
>> +    0xe0, 0x00, /* ###------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 14 0x0e '^N' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x63, 0x80, /* -##---###- */
>> +    0xe3, 0x00, /* ###---##-- */
>> +    0xc0, 0x00, /* ##-------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 15 0x0f '^O' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xcc, 0xc0, /* ##--##--## */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0xf3, 0xc0, /* ####--#### */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0xcc, 0xc0, /* ##--##--## */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 16 0x10 '^P' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xc0, 0x00, /* ##-------- */
>> +    0xf0, 0x00, /* ####------ */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xff, 0x00, /* ########-- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0x00, /* ########-- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xf0, 0x00, /* ####------ */
>> +    0xc0, 0x00, /* ##-------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 17 0x11 '^Q' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0xc0, /* --------## */
>> +    0x03, 0xc0, /* ------#### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x3f, 0xc0, /* --######## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x03, 0xc0, /* ------#### */
>> +    0x00, 0xc0, /* --------## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 18 0x12 '^R' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 19 0x13 '^S' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 20 0x14 '^T' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3d, 0x80, /* --####-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 21 0x15 '^U' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1b, 0x00, /* ---##-##-- */
>> +    0x0e, 0x00, /* ----###--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 22 0x16 '^V' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0x80, /* #########- */
>> +    0xff, 0x80, /* #########- */
>> +    0xff, 0x80, /* #########- */
>> +    0xff, 0x80, /* #########- */
>> +    0xff, 0x80, /* #########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 23 0x17 '^W' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 24 0x18 '^X' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 25 0x19 '^Y' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 26 0x1a '^Z' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x04, 0x00, /* -----#---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0xff, 0x80, /* #########- */
>> +    0xff, 0x80, /* #########- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x04, 0x00, /* -----#---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 27 0x1b '^[' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x10, 0x00, /* ---#------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0xff, 0x80, /* #########- */
>> +    0xff, 0x80, /* #########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x10, 0x00, /* ---#------ */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 28 0x1c '^\' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 29 0x1d '^]' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x12, 0x00, /* ---#--#--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x12, 0x00, /* ---#--#--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 30 0x1e '^^' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x7f, 0x80, /* -########- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 31 0x1f '^_' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x7f, 0x80, /* -########- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 32 0x20 ' ' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 33 0x21 '!' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 34 0x22 '"' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 35 0x23 '#' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 36 0x24 '$' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 37 0x25 '%' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x73, 0x00, /* -###--##-- */
>> +    0x53, 0x00, /* -#-#--##-- */
>> +    0x76, 0x00, /* -###-##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x37, 0x00, /* --##-###-- */
>> +    0x65, 0x00, /* -##--#-#-- */
>> +    0x67, 0x00, /* -##--###-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 38 0x26 '&' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3c, 0x00, /* --####---- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x3c, 0x00, /* --####---- */
>> +    0x39, 0x80, /* --###--##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0xc7, 0x00, /* ##---###-- */
>> +    0xc3, 0x00, /* ##----##-- */
>> +    0xc3, 0x00, /* ##----##-- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0x3d, 0x80, /* --####-##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 39 0x27 ''' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 40 0x28 '(' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 41 0x29 ')' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 42 0x2a '*' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0xff, 0x80, /* #########- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 43 0x2b '+' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 44 0x2c ',' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 45 0x2d '-' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 46 0x2e '.' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 47 0x2f '/' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 48 0x30 '0' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x63, 0x80, /* -##---###- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x79, 0x80, /* -####--##- */
>> +    0x71, 0x80, /* -###---##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 49 0x31 '1' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x3c, 0x00, /* --####---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 50 0x32 '2' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 51 0x33 '3' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x1f, 0x00, /* ---#####-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 52 0x34 '4' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x80, /* ------###- */
>> +    0x07, 0x80, /* -----####- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x19, 0x80, /* ---##--##- */
>> +    0x31, 0x80, /* --##---##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 53 0x35 '5' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 54 0x36 '6' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1f, 0x00, /* ---#####-- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 55 0x37 '7' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 56 0x38 '8' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 57 0x39 '9' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 58 0x3a ':' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 59 0x3b ';' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 60 0x3c '<' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 61 0x3d '=' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 62 0x3e '>' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 63 0x3f '?' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 64 0x40 '@' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xcf, 0x80, /* ##--#####- */
>> +    0xd9, 0x80, /* ##-##--##- */
>> +    0xd9, 0x80, /* ##-##--##- */
>> +    0xd9, 0x80, /* ##-##--##- */
>> +    0xd9, 0x80, /* ##-##--##- */
>> +    0xcf, 0x80, /* ##--#####- */
>> +    0xc0, 0x00, /* ##-------- */
>> +    0xc0, 0x00, /* ##-------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 65 0x41 'A' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 66 0x42 'B' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 67 0x43 'C' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 68 0x44 'D' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7e, 0x00, /* -######--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x7e, 0x00, /* -######--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 69 0x45 'E' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7e, 0x00, /* -######--- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 70 0x46 'F' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7e, 0x00, /* -######--- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 71 0x47 'G' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 72 0x48 'H' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 73 0x49 'I' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 74 0x4a 'J' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x07, 0x80, /* -----####- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 75 0x4b 'K' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x78, 0x00, /* -####----- */
>> +    0x78, 0x00, /* -####----- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 76 0x4c 'L' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 77 0x4d 'M' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x80, 0x80, /* #-------#- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xe3, 0x80, /* ###---###- */
>> +    0xf7, 0x80, /* ####-####- */
>> +    0xdd, 0x80, /* ##-###-##- */
>> +    0xc9, 0x80, /* ##--#--##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 78 0x4e 'N' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x71, 0x80, /* -###---##- */
>> +    0x79, 0x80, /* -####--##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0x63, 0x80, /* -##---###- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 79 0x4f 'O' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 80 0x50 'P' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 81 0x51 'Q' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 82 0x52 'R' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x78, 0x00, /* -####----- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 83 0x53 'S' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 84 0x54 'T' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 85 0x55 'U' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 86 0x56 'V' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 87 0x57 'W' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc9, 0x80, /* ##--#--##- */
>> +    0xdd, 0x80, /* ##-###-##- */
>> +    0xf7, 0x80, /* ####-####- */
>> +    0xe3, 0x80, /* ###---###- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0x80, 0x80, /* #-------#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 88 0x58 'X' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 89 0x59 'Y' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 90 0x5a 'Z' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 91 0x5b '[' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 92 0x5c '\' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 93 0x5d ']' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 94 0x5e '^' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 95 0x5f '_' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 96 0x60 '`' */
>> +    0x30, 0x00, /* --##------ */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 97 0x61 'a' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 98 0x62 'b' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 99 0x63 'c' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 100 0x64 'd' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 101 0x65 'e' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 102 0x66 'f' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x07, 0x80, /* -----####- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 103 0x67 'g' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x00, /* --######-- */
>> +
>> +    /* 104 0x68 'h' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 105 0x69 'i' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 106 0x6a 'j' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +
>> +    /* 107 0x6b 'k' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x78, 0x00, /* -####----- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 108 0x6c 'l' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 109 0x6d 'm' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 110 0x6e 'n' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 111 0x6f 'o' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 112 0x70 'p' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +
>> +    /* 113 0x71 'q' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +
>> +    /* 114 0x72 'r' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x6f, 0x80, /* -##-#####- */
>> +    0x78, 0x00, /* -####----- */
>> +    0x70, 0x00, /* -###------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 115 0x73 's' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 116 0x74 't' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x7e, 0x00, /* -######--- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0f, 0x00, /* ----####-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 117 0x75 'u' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 118 0x76 'v' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 119 0x77 'w' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 120 0x78 'x' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 121 0x79 'y' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x00, /* --######-- */
>> +
>> +    /* 122 0x7a 'z' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 123 0x7b '{' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x38, 0x00, /* --###----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 124 0x7c '|' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 125 0x7d '}' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x38, 0x00, /* --###----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x38, 0x00, /* --###----- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 126 0x7e '~' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x39, 0x80, /* --###--##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x67, 0x00, /* -##--###-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 127 0x7f '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x08, 0x00, /* ----#----- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0xff, 0x80, /* #########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 128 0x80 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +
>> +    /* 129 0x81 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 130 0x82 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 131 0x83 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 132 0x84 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 133 0x85 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 134 0x86 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 135 0x87 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +
>> +    /* 136 0x88 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 137 0x89 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 138 0x8a '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 139 0x8b '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 140 0x8c '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 141 0x8d '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 142 0x8e '' */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 143 0x8f '' */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 144 0x90 '' */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7e, 0x00, /* -######--- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 145 0x91 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7b, 0x80, /* -####-###- */
>> +    0x0c, 0xc0, /* ----##--## */
>> +    0x0c, 0xc0, /* ----##--## */
>> +    0x7c, 0xc0, /* -#####--## */
>> +    0xcf, 0xc0, /* ##--###### */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0xcc, 0xc0, /* ##--##--## */
>> +    0x77, 0x80, /* -###-####- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 146 0x92 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0xc0, /* -######### */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc7, 0xc0, /* ##---##### */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 147 0x93 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 148 0x94 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 149 0x95 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 150 0x96 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 151 0x97 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 152 0x98 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x00, /* --######-- */
>> +
>> +    /* 153 0x99 '' */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 154 0x9a '' */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 155 0x9b '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 156 0x9c '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x7e, 0x00, /* -######--- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x31, 0x80, /* --##---##- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 157 0x9d '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 158 0x9e '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0xfb, 0x00, /* #####-##-- */
>> +    0xc3, 0x00, /* ##----##-- */
>> +    0xc7, 0x80, /* ##---####- */
>> +    0xc3, 0x00, /* ##----##-- */
>> +    0xc3, 0x00, /* ##----##-- */
>> +    0xc3, 0x00, /* ##----##-- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 159 0x9f '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x38, 0x00, /* --###----- */
>> +
>> +    /* 160 0xa0 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 161 0xa1 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 162 0xa2 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 163 0xa3 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x80, /* --#######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 164 0xa4 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3b, 0x80, /* --###-###- */
>> +    0x6e, 0x00, /* -##-###--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 165 0xa5 '' */
>> +    0x3b, 0x80, /* --###-###- */
>> +    0x6e, 0x00, /* -##-###--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x71, 0x80, /* -###---##- */
>> +    0x79, 0x80, /* -####--##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0x63, 0x80, /* -##---###- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 166 0xa6 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 167 0xa7 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 168 0xa8 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 169 0xa9 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 170 0xaa '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 171 0xab '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x70, 0x00, /* -###------ */
>> +    0x30, 0x80, /* --##----#- */
>> +    0x31, 0x80, /* --##---##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x37, 0x00, /* --##-###-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0xc1, 0x80, /* ##-----##- */
>> +    0x83, 0x00, /* #-----##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0f, 0x80, /* ----#####- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 172 0xac '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x70, 0x00, /* -###------ */
>> +    0x30, 0x80, /* --##----#- */
>> +    0x31, 0x80, /* --##---##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x19, 0x80, /* ---##--##- */
>> +    0x33, 0x80, /* --##--###- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0xcd, 0x80, /* ##--##-##- */
>> +    0x8f, 0x80, /* #---#####- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 173 0xad '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 174 0xae '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0xc0, /* ----##--## */
>> +    0x19, 0x80, /* ---##--##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x19, 0x80, /* ---##--##- */
>> +    0x0c, 0xc0, /* ----##--## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 175 0xaf '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x19, 0x80, /* ---##--##- */
>> +    0x0c, 0xc0, /* ----##--## */
>> +    0x19, 0x80, /* ---##--##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x66, 0x00, /* -##--##--- */
>> +    0xcc, 0x00, /* ##--##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 176 0xb0 '' */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 177 0xb1 '' */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0x55, 0x40, /* -#-#-#-#-# */
>> +
>> +    /* 178 0xb2 '' */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xaa, 0x80, /* #-#-#-#-#- */
>> +
>> +    /* 179 0xb3 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 180 0xb4 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 181 0xb5 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 182 0xb6 '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 183 0xb7 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 184 0xb8 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 185 0xb9 '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 186 0xba '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 187 0xbb '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 188 0xbc '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0xf6, 0x00, /* ####-##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 189 0xbd '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0xfe, 0x00, /* #######--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 190 0xbe '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 191 0xbf '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 192 0xc0 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 193 0xc1 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 194 0xc2 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 195 0xc3 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 196 0xc4 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 197 0xc5 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 198 0xc6 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 199 0xc7 '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 200 0xc8 '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x30, 0x00, /* --##------ */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 201 0xc9 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x30, 0x00, /* --##------ */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 202 0xca '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 203 0xcb '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 204 0xcc '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x30, 0x00, /* --##------ */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x37, 0xc0, /* --##-##### */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 205 0xcd '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 206 0xce '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0x00, 0x00, /* ---------- */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0xf7, 0xc0, /* ####-##### */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 207 0xcf '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 208 0xd0 '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 209 0xd1 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 210 0xd2 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 211 0xd3 '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 212 0xd4 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 213 0xd5 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 214 0xd6 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x3f, 0xc0, /* --######## */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 215 0xd7 '' */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +    0x36, 0x00, /* --##-##--- */
>> +
>> +    /* 216 0xd8 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 217 0xd9 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0xfc, 0x00, /* ######---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 218 0xda '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0f, 0xc0, /* ----###### */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 219 0xdb '' */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +
>> +    /* 220 0xdc '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +
>> +    /* 221 0xdd '' */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +    0xf8, 0x00, /* #####----- */
>> +
>> +    /* 222 0xde '' */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +    0x07, 0xc0, /* -----##### */
>> +
>> +    /* 223 0xdf '' */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0xff, 0xc0, /* ########## */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 224 0xe0 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7d, 0x80, /* -#####-##- */
>> +    0xc7, 0x00, /* ##---###-- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc6, 0x00, /* ##---##--- */
>> +    0xc7, 0x00, /* ##---###-- */
>> +    0x7d, 0x80, /* -#####-##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 225 0xe1 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x62, 0x00, /* -##---#--- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x7f, 0x00, /* -#######-- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +
>> +    /* 226 0xe2 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 227 0xe3 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 228 0xe4 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 229 0xe5 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1f, 0xc0, /* ---####### */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 230 0xe6 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x63, 0x80, /* -##---###- */
>> +    0x7d, 0x80, /* -#####-##- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +
>> +    /* 231 0xe7 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 232 0xe8 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 233 0xe9 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 234 0xea '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x73, 0x80, /* -###--###- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 235 0xeb '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 236 0xec '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 237 0xed '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x01, 0x80, /* -------##- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x67, 0x80, /* -##--####- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x79, 0x80, /* -####--##- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 238 0xee '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1f, 0x80, /* ---######- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x60, 0x00, /* -##------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x1f, 0x80, /* ---######- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 239 0xef '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x61, 0x80, /* -##----##- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 240 0xf0 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 241 0xf1 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 242 0xf2 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 243 0xf3 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x30, 0x00, /* --##------ */
>> +    0x30, 0x00, /* --##------ */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 244 0xf4 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0d, 0x80, /* ----##-##- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +
>> +    /* 245 0xf5 '' */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x6c, 0x00, /* -##-##---- */
>> +    0x38, 0x00, /* --###----- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 246 0xf6 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x7f, 0x80, /* -########- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 247 0xf7 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x39, 0x80, /* --###--##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x67, 0x00, /* -##--###-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x39, 0x80, /* --###--##- */
>> +    0x6d, 0x80, /* -##-##-##- */
>> +    0x67, 0x00, /* -##--###-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 248 0xf8 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 249 0xf9 '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x1c, 0x00, /* ---###---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 250 0xfa '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 251 0xfb '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x03, 0x80, /* ------###- */
>> +    0x03, 0x80, /* ------###- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x03, 0x00, /* ------##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x63, 0x00, /* -##---##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x1b, 0x00, /* ---##-##-- */
>> +    0x0f, 0x00, /* ----####-- */
>> +    0x07, 0x00, /* -----###-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 252 0xfc '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3e, 0x00, /* --#####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 253 0xfd '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x1e, 0x00, /* ---####--- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x33, 0x00, /* --##--##-- */
>> +    0x06, 0x00, /* -----##--- */
>> +    0x0c, 0x00, /* ----##---- */
>> +    0x18, 0x00, /* ---##----- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 254 0xfe '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x3f, 0x00, /* --######-- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +
>> +    /* 255 0xff '' */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +    0x00, 0x00, /* ---------- */
>> +} };
>> +
>> +
>> +const struct font_desc font_ter_10x18 = {
>> +    .idx    = TER10x18_IDX,
>> +    .name    = "TER10x18",
>> +    .width    = 10,
>> +    .height = 18,
>> +    .charcount = 256,
>> +    .data    = fontdata_ter10x18.data,
>> +#ifdef __sparc__
>> +    .pref    = 5,
>> +#else
>> +    .pref    = -1,
>> +#endif
>> +};
>> diff --git a/lib/fonts/fonts.c b/lib/fonts/fonts.c
>> index 47e34950b665..a7f118b30171 100644
>> --- a/lib/fonts/fonts.c
>> +++ b/lib/fonts/fonts.c
>> @@ -54,6 +54,9 @@ static const struct font_desc *fonts[] = {
>>   #ifdef CONFIG_FONT_6x10
>>       &font_6x10,
>>   #endif
>> +#ifdef CONFIG_FONT_TER10x18
>> +    &font_ter_10x18,
>> +#endif
>>   #ifdef CONFIG_FONT_TER16x32
>>       &font_ter_16x32,
>>   #endif
> 


^ permalink raw reply

* Re: [PATCH] fbdev/tcx.c fix mem_map to correct smem_start offset
From: René Rebe @ 2025-12-02 18:50 UTC (permalink / raw)
  To: deller; +Cc: linux-fbdev
In-Reply-To: <dade2cdb-be65-4a69-a24c-ef99fd37306b@gmx.de>

Hallo Helge,

On Tue, 2 Dec 2025 19:43:34 +0100, Helge Deller <deller@gmx.de> wrote:

> On 11/20/25 14:24, René Rebe wrote:
> > 403ae52ac047 ("sparc: fix drivers/video/tcx.c warning") changed the
> > physbase initializing breaking the user-space mmap, e.g. for Xorg
> > entirely.
> > Fix fbdev mmap table so the sbus mmap helper work correctly, and
> > not try to map vastly (physbase) offset memory.
> > Fixes: 403ae52ac047 ("sparc: fix drivers/video/tcx.c warning")
> > Signed-off-by: René Rebe <rene@exactco.de>
> 
> Applied to fbdev.
> 
> Rene, shouldn't it be backported to all old Linux kernels?
> Should I add a stable tag ?

Yes, please and sorry! I only learned about the Cc: stable tag an hour
ago, I assumed Fixes: would work automatically.

I'll make sure to do at it for all future patches!

Thank you,

      René

> Helge
> 
>  ---
> >   drivers/video/fbdev/tcx.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
> > index f9a0085ad72b..ca9e84e8d860 100644
> > --- a/drivers/video/fbdev/tcx.c
> > +++ b/drivers/video/fbdev/tcx.c
> > @@ -428,7 +428,7 @@ static int tcx_probe(struct platform_device *op)
> >   			j = i;
> >   			break;
> >   		}
> > -		par->mmap_map[i].poff = op->resource[j].start;
> > + par->mmap_map[i].poff = op->resource[j].start -
> > info->fix.smem_start;
> >   	}
> >     	info->fbops = &tcx_ops;
> 

-- 
René Rebe, ExactCODE GmbH, Berlin, Germany
https://exactco.dehttps://t2linux.comhttps://patreon.com/renerebe

^ permalink raw reply

* Re: [PATCH] fbdev/tcx.c fix mem_map to correct smem_start offset
From: Helge Deller @ 2025-12-02 18:43 UTC (permalink / raw)
  To: René Rebe, linux-fbdev
In-Reply-To: <20251120.142400.712755331607709755.rene@exactco.de>

On 11/20/25 14:24, René Rebe wrote:
> 403ae52ac047 ("sparc: fix drivers/video/tcx.c warning") changed the
> physbase initializing breaking the user-space mmap, e.g. for Xorg
> entirely.
> 
> Fix fbdev mmap table so the sbus mmap helper work correctly, and
> not try to map vastly (physbase) offset memory.
> 
> Fixes: 403ae52ac047 ("sparc: fix drivers/video/tcx.c warning")
> Signed-off-by: René Rebe <rene@exactco.de>

Applied to fbdev.

Rene, shouldn't it be backported to all old Linux kernels?
Should I add a stable tag ?

Helge

  ---
>   drivers/video/fbdev/tcx.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
> index f9a0085ad72b..ca9e84e8d860 100644
> --- a/drivers/video/fbdev/tcx.c
> +++ b/drivers/video/fbdev/tcx.c
> @@ -428,7 +428,7 @@ static int tcx_probe(struct platform_device *op)
>   			j = i;
>   			break;
>   		}
> -		par->mmap_map[i].poff = op->resource[j].start;
> +		par->mmap_map[i].poff = op->resource[j].start - info->fix.smem_start;
>   	}
>   
>   	info->fbops = &tcx_ops;


^ permalink raw reply

* Re: [PATCH] fbdev/pxafb: Fix multiple clamped values in pxafb_adjust_timing
From: Thorsten Blum @ 2025-12-02 18:36 UTC (permalink / raw)
  To: Helge Deller
  Cc: Chelsy Ratnawat, Thomas Zimmermann, Andy Shevchenko, Raag Jadav,
	linux-fbdev, dri-devel, linux-kernel
In-Reply-To: <a7213b69-f6ae-4975-8c8b-2783dbe9f9b3@gmx.de>

On 2. Dec 2025, at 19:28, Helge Deller wrote:
> On 12/2/25 19:15, Thorsten Blum wrote:
>> The variables were never clamped because the return value of clamp_val()
>> was not used. Fix this by assigning the clamped values, and use clamp()
>> instead of clamp_val().
>> Cc: stable@vger.kernel.org
>> Fixes: 3f16ff608a75 ("[ARM] pxafb: cleanup of the timing checking code")
>> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
>> ---
>>  drivers/video/fbdev/pxafb.c | 12 ++++++------
>>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> Thanks for the patch!
> It looks good, so I'll include it in the fbdev tree.
> Out of curiosity:
> How did you notice? Do you actually have the hardware and tested it?

I only compile-tested it.

I stumbled upon another driver with the same bug and then used grep to
search for other instances and found about 6 or 7, including this one.

Thanks,
Thorsten


^ permalink raw reply

* Re: [PATCH] fbdev/pxafb: Fix multiple clamped values in pxafb_adjust_timing
From: Helge Deller @ 2025-12-02 18:28 UTC (permalink / raw)
  To: Thorsten Blum, Chelsy Ratnawat, Thomas Zimmermann,
	Andy Shevchenko, Raag Jadav
  Cc: linux-fbdev, dri-devel, linux-kernel
In-Reply-To: <20251202181600.511166-2-thorsten.blum@linux.dev>

On 12/2/25 19:15, Thorsten Blum wrote:
> The variables were never clamped because the return value of clamp_val()
> was not used. Fix this by assigning the clamped values, and use clamp()
> instead of clamp_val().
> 
> Cc: stable@vger.kernel.org
> Fixes: 3f16ff608a75 ("[ARM] pxafb: cleanup of the timing checking code")
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>   drivers/video/fbdev/pxafb.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)

Thanks for the patch!
It looks good, so I'll include it in the fbdev tree.
Out of curiosity:
How did you notice? Do you actually have the hardware and tested it?

Helge 
> diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
> index b96a8a96bce8..e418eee825fb 100644
> --- a/drivers/video/fbdev/pxafb.c
> +++ b/drivers/video/fbdev/pxafb.c
> @@ -419,12 +419,12 @@ static int pxafb_adjust_timing(struct pxafb_info *fbi,
>   	var->yres = max_t(int, var->yres, MIN_YRES);
>   
>   	if (!(fbi->lccr0 & LCCR0_LCDT)) {
> -		clamp_val(var->hsync_len, 1, 64);
> -		clamp_val(var->vsync_len, 1, 64);
> -		clamp_val(var->left_margin,  1, 255);
> -		clamp_val(var->right_margin, 1, 255);
> -		clamp_val(var->upper_margin, 1, 255);
> -		clamp_val(var->lower_margin, 1, 255);
> +		var->hsync_len = clamp(var->hsync_len, 1, 64);
> +		var->vsync_len = clamp(var->vsync_len, 1, 64);
> +		var->left_margin  = clamp(var->left_margin,  1, 255);
> +		var->right_margin = clamp(var->right_margin, 1, 255);
> +		var->upper_margin = clamp(var->upper_margin, 1, 255);
> +		var->lower_margin = clamp(var->lower_margin, 1, 255);
>   	}
>   
>   	/* make sure each line is aligned on word boundary */


^ permalink raw reply

* [PATCH] fbdev/pxafb: Fix multiple clamped values in pxafb_adjust_timing
From: Thorsten Blum @ 2025-12-02 18:15 UTC (permalink / raw)
  To: Helge Deller, Chelsy Ratnawat, Thomas Zimmermann, Andy Shevchenko,
	Raag Jadav
  Cc: Thorsten Blum, stable, linux-fbdev, dri-devel, linux-kernel

The variables were never clamped because the return value of clamp_val()
was not used. Fix this by assigning the clamped values, and use clamp()
instead of clamp_val().

Cc: stable@vger.kernel.org
Fixes: 3f16ff608a75 ("[ARM] pxafb: cleanup of the timing checking code")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 drivers/video/fbdev/pxafb.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
index b96a8a96bce8..e418eee825fb 100644
--- a/drivers/video/fbdev/pxafb.c
+++ b/drivers/video/fbdev/pxafb.c
@@ -419,12 +419,12 @@ static int pxafb_adjust_timing(struct pxafb_info *fbi,
 	var->yres = max_t(int, var->yres, MIN_YRES);
 
 	if (!(fbi->lccr0 & LCCR0_LCDT)) {
-		clamp_val(var->hsync_len, 1, 64);
-		clamp_val(var->vsync_len, 1, 64);
-		clamp_val(var->left_margin,  1, 255);
-		clamp_val(var->right_margin, 1, 255);
-		clamp_val(var->upper_margin, 1, 255);
-		clamp_val(var->lower_margin, 1, 255);
+		var->hsync_len = clamp(var->hsync_len, 1, 64);
+		var->vsync_len = clamp(var->vsync_len, 1, 64);
+		var->left_margin  = clamp(var->left_margin,  1, 255);
+		var->right_margin = clamp(var->right_margin, 1, 255);
+		var->upper_margin = clamp(var->upper_margin, 1, 255);
+		var->lower_margin = clamp(var->lower_margin, 1, 255);
 	}
 
 	/* make sure each line is aligned on word boundary */
-- 
Thorsten Blum <thorsten.blum@linux.dev>
GPG: 1D60 735E 8AEF 3BE4 73B6  9D84 7336 78FD 8DFE EAD4


^ permalink raw reply related

* Re: [PATCH 6.6.y] drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
From: Greg KH @ 2025-12-02 15:53 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: Sasha Levin, stable, Javier Martinez Canillas, Alex Deucher,
	dri-devel, nouveau, amd-gfx, linux-fbdev
In-Reply-To: <250b44b3-e75b-4f8d-af44-d3a985ea554c@suse.de>

On Tue, Dec 02, 2025 at 08:42:52AM +0100, Thomas Zimmermann wrote:
> Hi,
> 
> thanks for backporting.
> 
> You also have to remove the calls to vga_switcheroo_client_fb_set() from
> these files
> 
> https://elixir.bootlin.com/linux/v6.6/source/drivers/gpu/drm/i915/display/intel_fbdev.c
> 
> https://elixir.bootlin.com/linux/v6.6/source/drivers/gpu/drm/radeon/radeon_fbdev.c

Also, a fixed backport would be appreciated here.

thanks

greg k-h

^ permalink raw reply

* Re: [PATCH 6.12.y] drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
From: Greg KH @ 2025-12-02 15:52 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: Sasha Levin, stable, Javier Martinez Canillas, Alex Deucher,
	dri-devel, nouveau, amd-gfx, linux-fbdev
In-Reply-To: <4dd8e529-4777-4cfc-a536-dbe0d0a90419@suse.de>

On Tue, Dec 02, 2025 at 08:40:43AM +0100, Thomas Zimmermann wrote:
> Hi,
> 
> thanks for backporting.
> 
> You also have to remove the calls to vga_switcheroo_client_fb_set() from
> these files
> 
> https://elixir.bootlin.com/linux/v6.12/source/drivers/gpu/drm/i915/display/intel_fbdev.c
> https://elixir.bootlin.com/linux/v6.12/source/drivers/gpu/drm/radeon/radeon_fbdev.c

Can you send a fixed up patch instead?

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH v6 1/4] dt-bindings: backlight: Add max25014 support
From: Frank Li @ 2025-12-02 14:53 UTC (permalink / raw)
  To: Maud Spierings
  Cc: Lee Jones, Daniel Thompson, Jingoo Han, Pavel Machek, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Helge Deller, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Liam Girdwood, Mark Brown, dri-devel, linux-leds, devicetree,
	linux-kernel, linux-fbdev, imx, linux-arm-kernel
In-Reply-To: <b9fe6df7-fdc6-4a32-919b-8f3b44eace7d@gocontroll.com>

On Tue, Dec 02, 2025 at 08:46:21AM +0100, Maud Spierings wrote:
> On 12/1/25 17:52, Frank Li wrote:
> > On Mon, Dec 01, 2025 at 12:53:20PM +0100, Maud Spierings via B4 Relay wrote:
> > > From: Maud Spierings <maudspierings@gocontroll.com>
> > >
> > > The Maxim MAX25014 is a 4-channel automotive grade backlight driver IC
> > > with integrated boost controller.
> > >
> > > Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
> > >
> > > ---
> > >
> > > In the current implementation the control registers for channel 1,
> > > control all channels. So only one led subnode with led-sources is
> > > supported right now. If at some point the driver functionality is
> > > expanded the bindings can be easily extended with it.
> > > ---
> > >   .../bindings/leds/backlight/maxim,max25014.yaml    | 107 +++++++++++++++++++++
> > >   MAINTAINERS                                        |   5 +
> > >   2 files changed, 112 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
> > > new file mode 100644
> > > index 000000000000..e83723224b07
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
> > > @@ -0,0 +1,107 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/leds/backlight/maxim,max25014.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Maxim max25014 backlight controller
> > > +
> > > +maintainers:
> > > +  - Maud Spierings <maudspierings@gocontroll.com>
> > > +
> > > +properties:
> > > +  compatible:
> > > +    enum:
> > > +      - maxim,max25014
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  "#address-cells":
> > > +    const: 1
> > > +
> > > +  "#size-cells":
> > > +    const: 0
> > > +
> > > +  enable-gpios:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> > > +  power-supply:
> > > +    description: Regulator which controls the boost converter input rail.
> > > +
> > > +  pwms:
> > > +    maxItems: 1
> > > +
> > > +  maxim,iset:
> > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > +    maximum: 15
> > > +    default: 11
> > > +    description:
> > > +      Value of the ISET field in the ISET register. This controls the current
> > > +      scale of the outputs, a higher number means more current.
> > > +
> > > +  led@0:
> >
> > define whole binding, allow 0-3. binding is not related with driver's
> > implement.
> >
> > it'd better put unders leds.
> >
>
> so like:
>
> backlight: backlight@6f {
> 	compatible = "maxim,max25014";
> 	reg = <0x6f>;
> 	enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
> 	pinctrl-names = "default";
> 	pinctrl-0 = <&pinctrl_backlight>;
> 	maxim,iset = <7>;
>
> 	leds {
> 		#address-cells = <1>;
> 		#size-cells = <0>;
>
> 		led@0 {
> 			reg = <0>;
> 			led-sources = <0 1 2>;
> 			default-brightness = <50>;
> 		};
>
> 		optional led@#....
> 	};
> };
>
> right?

yes.

>
> Kind regards,
> Maud
>
> >
> > > +    type: object
> > > +    description: Properties for a string of connected LEDs.
> > > +    $ref: common.yaml#
> > > +
> > > +    properties:
> > > +      reg:
> > > +        const: 0
> > > +
> > > +      led-sources:
> > > +        allOf:
> > > +          - minItems: 1
> > > +            maxItems: 4
> > > +            items:
> > > +              minimum: 0
> > > +              maximum: 3
> > > +            default: [0, 1, 2, 3]
> > > +
> > > +      default-brightness:
> > > +        minimum: 0
> > > +        maximum: 100
> > > +        default: 50
> > > +
> > > +    required:
> > > +      - reg
> > > +
> > > +    additionalProperties: false
> >
> > unevaluatedProperties: false because ref to common.yaml
> >
> > Frank
> >
>
>

^ permalink raw reply

* Re: [PATCH v6 1/4] dt-bindings: backlight: Add max25014 support
From: Maud Spierings @ 2025-12-02  7:46 UTC (permalink / raw)
  To: Frank Li
  Cc: Lee Jones, Daniel Thompson, Jingoo Han, Pavel Machek, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Helge Deller, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Liam Girdwood, Mark Brown, dri-devel, linux-leds, devicetree,
	linux-kernel, linux-fbdev, imx, linux-arm-kernel
In-Reply-To: <aS3H1qzSMKHamqpP@lizhi-Precision-Tower-5810>

On 12/1/25 17:52, Frank Li wrote:
> On Mon, Dec 01, 2025 at 12:53:20PM +0100, Maud Spierings via B4 Relay wrote:
>> From: Maud Spierings <maudspierings@gocontroll.com>
>>
>> The Maxim MAX25014 is a 4-channel automotive grade backlight driver IC
>> with integrated boost controller.
>>
>> Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
>>
>> ---
>>
>> In the current implementation the control registers for channel 1,
>> control all channels. So only one led subnode with led-sources is
>> supported right now. If at some point the driver functionality is
>> expanded the bindings can be easily extended with it.
>> ---
>>   .../bindings/leds/backlight/maxim,max25014.yaml    | 107 +++++++++++++++++++++
>>   MAINTAINERS                                        |   5 +
>>   2 files changed, 112 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
>> new file mode 100644
>> index 000000000000..e83723224b07
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
>> @@ -0,0 +1,107 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/leds/backlight/maxim,max25014.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Maxim max25014 backlight controller
>> +
>> +maintainers:
>> +  - Maud Spierings <maudspierings@gocontroll.com>
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - maxim,max25014
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  "#address-cells":
>> +    const: 1
>> +
>> +  "#size-cells":
>> +    const: 0
>> +
>> +  enable-gpios:
>> +    maxItems: 1
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  power-supply:
>> +    description: Regulator which controls the boost converter input rail.
>> +
>> +  pwms:
>> +    maxItems: 1
>> +
>> +  maxim,iset:
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    maximum: 15
>> +    default: 11
>> +    description:
>> +      Value of the ISET field in the ISET register. This controls the current
>> +      scale of the outputs, a higher number means more current.
>> +
>> +  led@0:
> 
> define whole binding, allow 0-3. binding is not related with driver's
> implement.
> 
> it'd better put unders leds.
>

so like:

backlight: backlight@6f {
	compatible = "maxim,max25014";
	reg = <0x6f>;
	enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_backlight>;
	maxim,iset = <7>;

	leds {
		#address-cells = <1>;
		#size-cells = <0>;

		led@0 {
			reg = <0>;
			led-sources = <0 1 2>;
			default-brightness = <50>;
		};

		optional led@#....
	};
};

right?

Kind regards,
Maud

> 
>> +    type: object
>> +    description: Properties for a string of connected LEDs.
>> +    $ref: common.yaml#
>> +
>> +    properties:
>> +      reg:
>> +        const: 0
>> +
>> +      led-sources:
>> +        allOf:
>> +          - minItems: 1
>> +            maxItems: 4
>> +            items:
>> +              minimum: 0
>> +              maximum: 3
>> +            default: [0, 1, 2, 3]
>> +
>> +      default-brightness:
>> +        minimum: 0
>> +        maximum: 100
>> +        default: 50
>> +
>> +    required:
>> +      - reg
>> +
>> +    additionalProperties: false
> 
> unevaluatedProperties: false because ref to common.yaml
> 
> Frank
> 



^ permalink raw reply

* Re: [PATCH 6.6.y] drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
From: Thomas Zimmermann @ 2025-12-02  7:42 UTC (permalink / raw)
  To: Sasha Levin, stable
  Cc: Javier Martinez Canillas, Alex Deucher, dri-devel, nouveau,
	amd-gfx, linux-fbdev
In-Reply-To: <20251201225123.1298682-1-sashal@kernel.org>

Hi,

thanks for backporting.

You also have to remove the calls to vga_switcheroo_client_fb_set() from 
these files

https://elixir.bootlin.com/linux/v6.6/source/drivers/gpu/drm/i915/display/intel_fbdev.c 

https://elixir.bootlin.com/linux/v6.6/source/drivers/gpu/drm/radeon/radeon_fbdev.c 


Best regards
Thomas

Am 01.12.25 um 23:51 schrieb Sasha Levin:
> From: Thomas Zimmermann <tzimmermann@suse.de>
>
> [ Upstream commit eb76d0f5553575599561010f24c277cc5b31d003 ]
>
> Protect vga_switcheroo_client_fb_set() with console lock. Avoids OOB
> access in fbcon_remap_all(). Without holding the console lock the call
> races with switching outputs.
>
> VGA switcheroo calls fbcon_remap_all() when switching clients. The fbcon
> function uses struct fb_info.node, which is set by register_framebuffer().
> As the fb-helper code currently sets up VGA switcheroo before registering
> the framebuffer, the value of node is -1 and therefore not a legal value.
> For example, fbcon uses the value within set_con2fb_map() [1] as an index
> into an array.
>
> Moving vga_switcheroo_client_fb_set() after register_framebuffer() can
> result in VGA switching that does not switch fbcon correctly.
>
> Therefore move vga_switcheroo_client_fb_set() under fbcon_fb_registered(),
> which already holds the console lock. Fbdev calls fbcon_fb_registered()
> from within register_framebuffer(). Serializes the helper with VGA
> switcheroo's call to fbcon_remap_all().
>
> Although vga_switcheroo_client_fb_set() takes an instance of struct fb_info
> as parameter, it really only needs the contained fbcon state. Moving the
> call to fbcon initialization is therefore cleaner than before. Only amdgpu,
> i915, nouveau and radeon support vga_switcheroo. For all other drivers,
> this change does nothing.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Link: https://elixir.bootlin.com/linux/v6.17/source/drivers/video/fbdev/core/fbcon.c#L2942 # [1]
> Fixes: 6a9ee8af344e ("vga_switcheroo: initial implementation (v15)")
> Acked-by: Javier Martinez Canillas <javierm@redhat.com>
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: <stable@vger.kernel.org> # v2.6.34+
> Link: https://patch.msgid.link/20251105161549.98836-1-tzimmermann@suse.de
> [ drm_fb_helper_unregister_info() lacks vga_switcheroo code ]
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
>   drivers/gpu/drm/drm_fb_helper.c  | 7 -------
>   drivers/video/fbdev/core/fbcon.c | 9 +++++++++
>   2 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index b507c1c008a3e..3891837a78414 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -30,9 +30,7 @@
>   #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>   
>   #include <linux/console.h>
> -#include <linux/pci.h>
>   #include <linux/sysrq.h>
> -#include <linux/vga_switcheroo.h>
>   
>   #include <drm/drm_atomic.h>
>   #include <drm/drm_drv.h>
> @@ -1668,7 +1666,6 @@ static int drm_fb_helper_find_sizes(struct drm_fb_helper *fb_helper,
>   static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper)
>   {
>   	struct drm_client_dev *client = &fb_helper->client;
> -	struct drm_device *dev = fb_helper->dev;
>   	struct drm_fb_helper_surface_size sizes;
>   	int ret;
>   
> @@ -1687,10 +1684,6 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper)
>   
>   	strcpy(fb_helper->fb->comm, "[fbcon]");
>   
> -	/* Set the fb info for vgaswitcheroo clients. Does nothing otherwise. */
> -	if (dev_is_pci(dev->dev))
> -		vga_switcheroo_client_fb_set(to_pci_dev(dev->dev), fb_helper->info);
> -
>   	return 0;
>   }
>   
> diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
> index 78a5b22c8d150..8b2c3065c0c26 100644
> --- a/drivers/video/fbdev/core/fbcon.c
> +++ b/drivers/video/fbdev/core/fbcon.c
> @@ -64,6 +64,7 @@
>   #include <linux/console.h>
>   #include <linux/string.h>
>   #include <linux/kd.h>
> +#include <linux/pci.h>
>   #include <linux/slab.h>
>   #include <linux/fb.h>
>   #include <linux/fbcon.h>
> @@ -75,6 +76,7 @@
>   #include <linux/interrupt.h>
>   #include <linux/crc32.h> /* For counting font checksums */
>   #include <linux/uaccess.h>
> +#include <linux/vga_switcheroo.h>
>   #include <asm/irq.h>
>   
>   #include "fbcon.h"
> @@ -2913,6 +2915,9 @@ void fbcon_fb_unregistered(struct fb_info *info)
>   
>   	console_lock();
>   
> +	if (info->device && dev_is_pci(info->device))
> +		vga_switcheroo_client_fb_set(to_pci_dev(info->device), NULL);
> +
>   	fbcon_registered_fb[info->node] = NULL;
>   	fbcon_num_registered_fb--;
>   
> @@ -3046,6 +3051,10 @@ static int do_fb_registered(struct fb_info *info)
>   		}
>   	}
>   
> +	/* Set the fb info for vga_switcheroo clients. Does nothing otherwise. */
> +	if (info->device && dev_is_pci(info->device))
> +		vga_switcheroo_client_fb_set(to_pci_dev(info->device), info);
> +
>   	return ret;
>   }
>   

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)



^ permalink raw reply

* Re: [PATCH 6.12.y] drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
From: Thomas Zimmermann @ 2025-12-02  7:40 UTC (permalink / raw)
  To: Sasha Levin, stable
  Cc: Javier Martinez Canillas, Alex Deucher, dri-devel, nouveau,
	amd-gfx, linux-fbdev
In-Reply-To: <20251201221055.1281985-1-sashal@kernel.org>

Hi,

thanks for backporting.

You also have to remove the calls to vga_switcheroo_client_fb_set() from 
these files

https://elixir.bootlin.com/linux/v6.12/source/drivers/gpu/drm/i915/display/intel_fbdev.c
https://elixir.bootlin.com/linux/v6.12/source/drivers/gpu/drm/radeon/radeon_fbdev.c

Best regards
Thomas

Am 01.12.25 um 23:10 schrieb Sasha Levin:
> From: Thomas Zimmermann <tzimmermann@suse.de>
>
> [ Upstream commit eb76d0f5553575599561010f24c277cc5b31d003 ]
>
> Protect vga_switcheroo_client_fb_set() with console lock. Avoids OOB
> access in fbcon_remap_all(). Without holding the console lock the call
> races with switching outputs.
>
> VGA switcheroo calls fbcon_remap_all() when switching clients. The fbcon
> function uses struct fb_info.node, which is set by register_framebuffer().
> As the fb-helper code currently sets up VGA switcheroo before registering
> the framebuffer, the value of node is -1 and therefore not a legal value.
> For example, fbcon uses the value within set_con2fb_map() [1] as an index
> into an array.
>
> Moving vga_switcheroo_client_fb_set() after register_framebuffer() can
> result in VGA switching that does not switch fbcon correctly.
>
> Therefore move vga_switcheroo_client_fb_set() under fbcon_fb_registered(),
> which already holds the console lock. Fbdev calls fbcon_fb_registered()
> from within register_framebuffer(). Serializes the helper with VGA
> switcheroo's call to fbcon_remap_all().
>
> Although vga_switcheroo_client_fb_set() takes an instance of struct fb_info
> as parameter, it really only needs the contained fbcon state. Moving the
> call to fbcon initialization is therefore cleaner than before. Only amdgpu,
> i915, nouveau and radeon support vga_switcheroo. For all other drivers,
> this change does nothing.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Link: https://elixir.bootlin.com/linux/v6.17/source/drivers/video/fbdev/core/fbcon.c#L2942 # [1]
> Fixes: 6a9ee8af344e ("vga_switcheroo: initial implementation (v15)")
> Acked-by: Javier Martinez Canillas <javierm@redhat.com>
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: nouveau@lists.freedesktop.org
> Cc: amd-gfx@lists.freedesktop.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: <stable@vger.kernel.org> # v2.6.34+
> Link: https://patch.msgid.link/20251105161549.98836-1-tzimmermann@suse.de
> [ adapted dev->dev variable access ]
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
>   drivers/gpu/drm/drm_fb_helper.c  | 6 ------
>   drivers/video/fbdev/core/fbcon.c | 9 +++++++++
>   2 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index b15ddbd65e7b5..a8971c4eb9f05 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -30,9 +30,7 @@
>   #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>   
>   #include <linux/console.h>
> -#include <linux/pci.h>
>   #include <linux/sysrq.h>
> -#include <linux/vga_switcheroo.h>
>   
>   #include <drm/drm_atomic.h>
>   #include <drm/drm_drv.h>
> @@ -1637,10 +1635,6 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper)
>   
>   	strcpy(fb_helper->fb->comm, "[fbcon]");
>   
> -	/* Set the fb info for vgaswitcheroo clients. Does nothing otherwise. */
> -	if (dev_is_pci(dev->dev))
> -		vga_switcheroo_client_fb_set(to_pci_dev(dev->dev), fb_helper->info);
> -
>   	return 0;
>   }
>   
> diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
> index 1fc1e47ae2b49..e681066736dea 100644
> --- a/drivers/video/fbdev/core/fbcon.c
> +++ b/drivers/video/fbdev/core/fbcon.c
> @@ -65,6 +65,7 @@
>   #include <linux/string.h>
>   #include <linux/kd.h>
>   #include <linux/panic.h>
> +#include <linux/pci.h>
>   #include <linux/printk.h>
>   #include <linux/slab.h>
>   #include <linux/fb.h>
> @@ -77,6 +78,7 @@
>   #include <linux/interrupt.h>
>   #include <linux/crc32.h> /* For counting font checksums */
>   #include <linux/uaccess.h>
> +#include <linux/vga_switcheroo.h>
>   #include <asm/irq.h>
>   
>   #include "fbcon.h"
> @@ -2894,6 +2896,9 @@ void fbcon_fb_unregistered(struct fb_info *info)
>   
>   	console_lock();
>   
> +	if (info->device && dev_is_pci(info->device))
> +		vga_switcheroo_client_fb_set(to_pci_dev(info->device), NULL);
> +
>   	fbcon_registered_fb[info->node] = NULL;
>   	fbcon_num_registered_fb--;
>   
> @@ -3027,6 +3032,10 @@ static int do_fb_registered(struct fb_info *info)
>   		}
>   	}
>   
> +	/* Set the fb info for vga_switcheroo clients. Does nothing otherwise. */
> +	if (info->device && dev_is_pci(info->device))
> +		vga_switcheroo_client_fb_set(to_pci_dev(info->device), info);
> +
>   	return ret;
>   }
>   

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)



^ permalink raw reply

* [PATCH 6.6.y] drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
From: Sasha Levin @ 2025-12-01 22:51 UTC (permalink / raw)
  To: stable
  Cc: Thomas Zimmermann, Javier Martinez Canillas, Alex Deucher,
	dri-devel, nouveau, amd-gfx, linux-fbdev, Sasha Levin
In-Reply-To: <2025120119-quake-universal-d896@gregkh>

From: Thomas Zimmermann <tzimmermann@suse.de>

[ Upstream commit eb76d0f5553575599561010f24c277cc5b31d003 ]

Protect vga_switcheroo_client_fb_set() with console lock. Avoids OOB
access in fbcon_remap_all(). Without holding the console lock the call
races with switching outputs.

VGA switcheroo calls fbcon_remap_all() when switching clients. The fbcon
function uses struct fb_info.node, which is set by register_framebuffer().
As the fb-helper code currently sets up VGA switcheroo before registering
the framebuffer, the value of node is -1 and therefore not a legal value.
For example, fbcon uses the value within set_con2fb_map() [1] as an index
into an array.

Moving vga_switcheroo_client_fb_set() after register_framebuffer() can
result in VGA switching that does not switch fbcon correctly.

Therefore move vga_switcheroo_client_fb_set() under fbcon_fb_registered(),
which already holds the console lock. Fbdev calls fbcon_fb_registered()
from within register_framebuffer(). Serializes the helper with VGA
switcheroo's call to fbcon_remap_all().

Although vga_switcheroo_client_fb_set() takes an instance of struct fb_info
as parameter, it really only needs the contained fbcon state. Moving the
call to fbcon initialization is therefore cleaner than before. Only amdgpu,
i915, nouveau and radeon support vga_switcheroo. For all other drivers,
this change does nothing.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://elixir.bootlin.com/linux/v6.17/source/drivers/video/fbdev/core/fbcon.c#L2942 # [1]
Fixes: 6a9ee8af344e ("vga_switcheroo: initial implementation (v15)")
Acked-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Cc: dri-devel@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Cc: <stable@vger.kernel.org> # v2.6.34+
Link: https://patch.msgid.link/20251105161549.98836-1-tzimmermann@suse.de
[ drm_fb_helper_unregister_info() lacks vga_switcheroo code ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpu/drm/drm_fb_helper.c  | 7 -------
 drivers/video/fbdev/core/fbcon.c | 9 +++++++++
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index b507c1c008a3e..3891837a78414 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -30,9 +30,7 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/console.h>
-#include <linux/pci.h>
 #include <linux/sysrq.h>
-#include <linux/vga_switcheroo.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_drv.h>
@@ -1668,7 +1666,6 @@ static int drm_fb_helper_find_sizes(struct drm_fb_helper *fb_helper,
 static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper)
 {
 	struct drm_client_dev *client = &fb_helper->client;
-	struct drm_device *dev = fb_helper->dev;
 	struct drm_fb_helper_surface_size sizes;
 	int ret;
 
@@ -1687,10 +1684,6 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper)
 
 	strcpy(fb_helper->fb->comm, "[fbcon]");
 
-	/* Set the fb info for vgaswitcheroo clients. Does nothing otherwise. */
-	if (dev_is_pci(dev->dev))
-		vga_switcheroo_client_fb_set(to_pci_dev(dev->dev), fb_helper->info);
-
 	return 0;
 }
 
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 78a5b22c8d150..8b2c3065c0c26 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -64,6 +64,7 @@
 #include <linux/console.h>
 #include <linux/string.h>
 #include <linux/kd.h>
+#include <linux/pci.h>
 #include <linux/slab.h>
 #include <linux/fb.h>
 #include <linux/fbcon.h>
@@ -75,6 +76,7 @@
 #include <linux/interrupt.h>
 #include <linux/crc32.h> /* For counting font checksums */
 #include <linux/uaccess.h>
+#include <linux/vga_switcheroo.h>
 #include <asm/irq.h>
 
 #include "fbcon.h"
@@ -2913,6 +2915,9 @@ void fbcon_fb_unregistered(struct fb_info *info)
 
 	console_lock();
 
+	if (info->device && dev_is_pci(info->device))
+		vga_switcheroo_client_fb_set(to_pci_dev(info->device), NULL);
+
 	fbcon_registered_fb[info->node] = NULL;
 	fbcon_num_registered_fb--;
 
@@ -3046,6 +3051,10 @@ static int do_fb_registered(struct fb_info *info)
 		}
 	}
 
+	/* Set the fb info for vga_switcheroo clients. Does nothing otherwise. */
+	if (info->device && dev_is_pci(info->device))
+		vga_switcheroo_client_fb_set(to_pci_dev(info->device), info);
+
 	return ret;
 }
 
-- 
2.51.0


^ permalink raw reply related

* [PATCH 6.12.y] drm, fbcon, vga_switcheroo: Avoid race condition in fbcon setup
From: Sasha Levin @ 2025-12-01 22:10 UTC (permalink / raw)
  To: stable
  Cc: Thomas Zimmermann, Javier Martinez Canillas, Alex Deucher,
	dri-devel, nouveau, amd-gfx, linux-fbdev, Sasha Levin
In-Reply-To: <2025120119-edgy-recycled-bcfe@gregkh>

From: Thomas Zimmermann <tzimmermann@suse.de>

[ Upstream commit eb76d0f5553575599561010f24c277cc5b31d003 ]

Protect vga_switcheroo_client_fb_set() with console lock. Avoids OOB
access in fbcon_remap_all(). Without holding the console lock the call
races with switching outputs.

VGA switcheroo calls fbcon_remap_all() when switching clients. The fbcon
function uses struct fb_info.node, which is set by register_framebuffer().
As the fb-helper code currently sets up VGA switcheroo before registering
the framebuffer, the value of node is -1 and therefore not a legal value.
For example, fbcon uses the value within set_con2fb_map() [1] as an index
into an array.

Moving vga_switcheroo_client_fb_set() after register_framebuffer() can
result in VGA switching that does not switch fbcon correctly.

Therefore move vga_switcheroo_client_fb_set() under fbcon_fb_registered(),
which already holds the console lock. Fbdev calls fbcon_fb_registered()
from within register_framebuffer(). Serializes the helper with VGA
switcheroo's call to fbcon_remap_all().

Although vga_switcheroo_client_fb_set() takes an instance of struct fb_info
as parameter, it really only needs the contained fbcon state. Moving the
call to fbcon initialization is therefore cleaner than before. Only amdgpu,
i915, nouveau and radeon support vga_switcheroo. For all other drivers,
this change does nothing.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://elixir.bootlin.com/linux/v6.17/source/drivers/video/fbdev/core/fbcon.c#L2942 # [1]
Fixes: 6a9ee8af344e ("vga_switcheroo: initial implementation (v15)")
Acked-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Cc: dri-devel@lists.freedesktop.org
Cc: nouveau@lists.freedesktop.org
Cc: amd-gfx@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Cc: <stable@vger.kernel.org> # v2.6.34+
Link: https://patch.msgid.link/20251105161549.98836-1-tzimmermann@suse.de
[ adapted dev->dev variable access ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpu/drm/drm_fb_helper.c  | 6 ------
 drivers/video/fbdev/core/fbcon.c | 9 +++++++++
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index b15ddbd65e7b5..a8971c4eb9f05 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -30,9 +30,7 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/console.h>
-#include <linux/pci.h>
 #include <linux/sysrq.h>
-#include <linux/vga_switcheroo.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_drv.h>
@@ -1637,10 +1635,6 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper)
 
 	strcpy(fb_helper->fb->comm, "[fbcon]");
 
-	/* Set the fb info for vgaswitcheroo clients. Does nothing otherwise. */
-	if (dev_is_pci(dev->dev))
-		vga_switcheroo_client_fb_set(to_pci_dev(dev->dev), fb_helper->info);
-
 	return 0;
 }
 
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 1fc1e47ae2b49..e681066736dea 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -65,6 +65,7 @@
 #include <linux/string.h>
 #include <linux/kd.h>
 #include <linux/panic.h>
+#include <linux/pci.h>
 #include <linux/printk.h>
 #include <linux/slab.h>
 #include <linux/fb.h>
@@ -77,6 +78,7 @@
 #include <linux/interrupt.h>
 #include <linux/crc32.h> /* For counting font checksums */
 #include <linux/uaccess.h>
+#include <linux/vga_switcheroo.h>
 #include <asm/irq.h>
 
 #include "fbcon.h"
@@ -2894,6 +2896,9 @@ void fbcon_fb_unregistered(struct fb_info *info)
 
 	console_lock();
 
+	if (info->device && dev_is_pci(info->device))
+		vga_switcheroo_client_fb_set(to_pci_dev(info->device), NULL);
+
 	fbcon_registered_fb[info->node] = NULL;
 	fbcon_num_registered_fb--;
 
@@ -3027,6 +3032,10 @@ static int do_fb_registered(struct fb_info *info)
 		}
 	}
 
+	/* Set the fb info for vga_switcheroo clients. Does nothing otherwise. */
+	if (info->device && dev_is_pci(info->device))
+		vga_switcheroo_client_fb_set(to_pci_dev(info->device), info);
+
 	return ret;
 }
 
-- 
2.51.0


^ permalink raw reply related

* Re: [PATCH v6 1/4] dt-bindings: backlight: Add max25014 support
From: Frank Li @ 2025-12-01 16:52 UTC (permalink / raw)
  To: maudspierings
  Cc: Lee Jones, Daniel Thompson, Jingoo Han, Pavel Machek, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Helge Deller, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Liam Girdwood, Mark Brown, dri-devel, linux-leds, devicetree,
	linux-kernel, linux-fbdev, imx, linux-arm-kernel
In-Reply-To: <20251201-max25014-v6-1-88e3ac8112ff@gocontroll.com>

On Mon, Dec 01, 2025 at 12:53:20PM +0100, Maud Spierings via B4 Relay wrote:
> From: Maud Spierings <maudspierings@gocontroll.com>
>
> The Maxim MAX25014 is a 4-channel automotive grade backlight driver IC
> with integrated boost controller.
>
> Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
>
> ---
>
> In the current implementation the control registers for channel 1,
> control all channels. So only one led subnode with led-sources is
> supported right now. If at some point the driver functionality is
> expanded the bindings can be easily extended with it.
> ---
>  .../bindings/leds/backlight/maxim,max25014.yaml    | 107 +++++++++++++++++++++
>  MAINTAINERS                                        |   5 +
>  2 files changed, 112 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
> new file mode 100644
> index 000000000000..e83723224b07
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
> @@ -0,0 +1,107 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/backlight/maxim,max25014.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Maxim max25014 backlight controller
> +
> +maintainers:
> +  - Maud Spierings <maudspierings@gocontroll.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - maxim,max25014
> +
> +  reg:
> +    maxItems: 1
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0
> +
> +  enable-gpios:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  power-supply:
> +    description: Regulator which controls the boost converter input rail.
> +
> +  pwms:
> +    maxItems: 1
> +
> +  maxim,iset:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    maximum: 15
> +    default: 11
> +    description:
> +      Value of the ISET field in the ISET register. This controls the current
> +      scale of the outputs, a higher number means more current.
> +
> +  led@0:

define whole binding, allow 0-3. binding is not related with driver's
implement.

it'd better put unders leds.


> +    type: object
> +    description: Properties for a string of connected LEDs.
> +    $ref: common.yaml#
> +
> +    properties:
> +      reg:
> +        const: 0
> +
> +      led-sources:
> +        allOf:
> +          - minItems: 1
> +            maxItems: 4
> +            items:
> +              minimum: 0
> +              maximum: 3
> +            default: [0, 1, 2, 3]
> +
> +      default-brightness:
> +        minimum: 0
> +        maximum: 100
> +        default: 50
> +
> +    required:
> +      - reg
> +
> +    additionalProperties: false

unevaluatedProperties: false because ref to common.yaml

Frank

> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        backlight@6f {
> +            compatible = "maxim,max25014";
> +            reg = <0x6f>;
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
> +            interrupt-parent = <&gpio1>;
> +            interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
> +            power-supply = <&reg_backlight>;
> +            pwms = <&pwm1>;
> +            maxim,iset = <7>;
> +
> +            led@0 {
> +                reg = <0>;
> +                led-sources = <0 1 2 3>;
> +                default-brightness = <50>;
> +            };
> +        };
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 58c7e3f678d8..606ce086f758 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -15261,6 +15261,11 @@ F:	Documentation/userspace-api/media/drivers/max2175.rst
>  F:	drivers/media/i2c/max2175*
>  F:	include/uapi/linux/max2175.h
>
> +MAX25014 BACKLIGHT DRIVER
> +M:	Maud Spierings <maudspierings@gocontroll.com>
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
> +
>  MAX31335 RTC DRIVER
>  M:	Antoniu Miclaus <antoniu.miclaus@analog.com>
>  L:	linux-rtc@vger.kernel.org
>
> --
> 2.52.0
>
>

^ permalink raw reply

* Re: [PATCH 0/5] drm: Remove remaining support for kdb
From: Thomas Zimmermann @ 2025-12-01 16:41 UTC (permalink / raw)
  To: simona, airlied, alexander.deucher, christian.koenig, lyude, dakr,
	deller, mripard, maarten.lankhorst, jason.wessel, danielt,
	dianders
  Cc: dri-devel, amd-gfx, nouveau, linux-fbdev, linux-doc, linux-kernel
In-Reply-To: <20251125130634.1080966-1-tzimmermann@suse.de>

Series has been acked by Sima via IRC. Patches 4 and 5 have been r-b'ed.

https://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&highlight_names=&date=2025-12-01&show_html=true


Am 25.11.25 um 13:52 schrieb Thomas Zimmermann:
> Remove the rest of the kbd support from DRM. Driver support has been
> broken for years without anyone complaining.
>
> Kdb cannot use regular DRM mode setting, so DRM drivers have to
> implement an additional hook to make it work (in theory). As outlined
> by Sima in commit 9c79e0b1d096 ("drm/fb-helper: Give up on kgdb for
> atomic drivers") from 2017, kdb is not compatible with DRM atomic mode
> setting. Non-atomic mode setting meanwhile has become rare.
>
> Only 3 DRM drivers implement the hooks for kdb support. Amdgpu and
> nouveau use non-atomic mode setting on older devices. But both drivers
> have switched to generic fbdev emulation, which isn't compatible with
> kdb. Radeon still runs kdb, but it doesn't work in practice. See the
> commits in this series for details
>
> Therefore remove the remaining support for kdb from the DRM drivers
> and from DRM fbdev emulation. Also remove the hooks from fbdev, as
> there are no fbdev drivers with kdb support.
>
> If we ever want to address kdb support within DRM drivers, a place to
> start would be the scanout buffers used by DRM's panic screen. These
> use the current display mode. They can be written and flushed without
> mode setting involved.
>
> Note: kdb over serial lines is not affected by this series and continues
> to work as before.
>
> Thomas Zimmermann (5):
>    drm/amdgpu: Do not implement mode_set_base_atomic callback
>    drm/nouveau: Do not implement mode_set_base_atomic callback
>    drm/radeon: Do not implement mode_set_base_atomic callback
>    drm/fbdev-helper: Remove drm_fb_helper_debug_enter/_leave()
>    fbcon: Remove fb_debug_enter/_leave from struct fb_ops
>
>   Documentation/process/debugging/kgdb.rst    |  28 -----
>   drivers/gpu/drm/amd/amdgpu/dce_v10_0.c      |  35 ++-----
>   drivers/gpu/drm/amd/amdgpu/dce_v6_0.c       |  35 ++-----
>   drivers/gpu/drm/amd/amdgpu/dce_v8_0.c       |  35 ++-----
>   drivers/gpu/drm/drm_fb_helper.c             | 108 --------------------
>   drivers/gpu/drm/nouveau/dispnv04/crtc.c     |  24 +----
>   drivers/gpu/drm/radeon/atombios_crtc.c      |  74 ++++----------
>   drivers/gpu/drm/radeon/radeon_legacy_crtc.c |  23 ++---
>   drivers/gpu/drm/radeon/radeon_mode.h        |  10 +-
>   drivers/video/fbdev/core/fbcon.c            |  24 -----
>   drivers/video/fbdev/core/fbcon.h            |   1 -
>   include/drm/drm_fb_helper.h                 |  21 ----
>   include/drm/drm_modeset_helper_vtables.h    |  23 -----
>   include/linux/fb.h                          |   4 -
>   14 files changed, 63 insertions(+), 382 deletions(-)
>
>
> base-commit: 0a21e96e0b6840d2a4e0b45a957679eeddeb4362

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)



^ permalink raw reply

* Re: [PATCH v4 1/2] backlight: Add Congatec Board Controller (CGBC) backlight support
From: Thomas Richard @ 2025-12-01 13:13 UTC (permalink / raw)
  To: petri.karhula, Lee Jones, Daniel Thompson, Jingoo Han,
	Helge Deller
  Cc: linux-kernel, dri-devel, linux-fbdev
In-Reply-To: <20251127-cgbc-backlight-v4-1-626523b7173d@novatron.fi>

On 11/27/25 4:21 PM, Petri Karhula via B4 Relay wrote:
> From: Petri Karhula <petri.karhula@novatron.fi>
> 
> This driver provides backlight brightness control through the Linux
> backlight subsystem. It communicates with the board controller to
> adjust LCD backlight using PWM signals. Communication is done
> through Congatec Board Controller core driver.
Tested on a conga-SA7 module with conga-SEVAL carrier board.

Tested-by: Thomas Richard <thomas.richard@bootlin.com>

Best Regards,
Thomas

^ permalink raw reply

* [PATCH v6 4/4] arm64: dts: freescale: moduline-display-av123z7m-n17: add backlight
From: Maud Spierings via B4 Relay @ 2025-12-01 11:53 UTC (permalink / raw)
  To: Lee Jones, Daniel Thompson, Jingoo Han, Pavel Machek, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Helge Deller, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Liam Girdwood, Mark Brown
  Cc: dri-devel, linux-leds, devicetree, linux-kernel, linux-fbdev, imx,
	linux-arm-kernel, Maud Spierings
In-Reply-To: <20251201-max25014-v6-0-88e3ac8112ff@gocontroll.com>

From: Maud Spierings <maudspierings@gocontroll.com>

Add the missing backlight.

Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
---
 ...x8p-ml81-moduline-display-106-av123z7m-n17.dtso | 25 +++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av123z7m-n17.dtso b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av123z7m-n17.dtso
index 3eb665ce9d5d..786a04ef40c8 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av123z7m-n17.dtso
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av123z7m-n17.dtso
@@ -16,6 +16,7 @@
 
 	panel {
 		compatible = "boe,av123z7m-n17";
+		backlight = <&backlight>;
 		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 		pinctrl-0 = <&pinctrl_panel>;
 		pinctrl-names = "default";
@@ -91,10 +92,32 @@ lvds1_out: endpoint {
 		};
 	};
 
-	/* max25014 @ 0x6f */
+	backlight: backlight@6f {
+		compatible = "maxim,max25014";
+		reg = <0x6f>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_backlight>;
+		maxim,iset = <7>;
+
+		led@0 {
+			reg = <0>;
+			led-sources = <0 1 2 3>;
+			default-brightness = <50>;
+		};
+	};
 };
 
 &iomuxc {
+	pinctrl_backlight: backlightgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04
+				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
+		>;
+	};
+
 	pinctrl_lvds_bridge: lvdsbridgegrp {
 		fsl,pins = <
 			MX8MP_IOMUXC_SAI1_TXD2__GPIO4_IO14

-- 
2.52.0



^ permalink raw reply related

* [PATCH v6 2/4] backlight: add max25014atg backlight
From: Maud Spierings via B4 Relay @ 2025-12-01 11:53 UTC (permalink / raw)
  To: Lee Jones, Daniel Thompson, Jingoo Han, Pavel Machek, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Helge Deller, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Liam Girdwood, Mark Brown
  Cc: dri-devel, linux-leds, devicetree, linux-kernel, linux-fbdev, imx,
	linux-arm-kernel, Maud Spierings
In-Reply-To: <20251201-max25014-v6-0-88e3ac8112ff@gocontroll.com>

From: Maud Spierings <maudspierings@gocontroll.com>

The Maxim MAX25014 is a 4-channel automotive grade backlight driver IC
with integrated boost controller.

Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
---
 MAINTAINERS                        |   1 +
 drivers/video/backlight/Kconfig    |   7 +
 drivers/video/backlight/Makefile   |   1 +
 drivers/video/backlight/max25014.c | 419 +++++++++++++++++++++++++++++++++++++
 4 files changed, 428 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 606ce086f758..d082d3f8cfae 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15265,6 +15265,7 @@ MAX25014 BACKLIGHT DRIVER
 M:	Maud Spierings <maudspierings@gocontroll.com>
 S:	Maintained
 F:	Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
+F:	drivers/video/backlight/max25014.c
 
 MAX31335 RTC DRIVER
 M:	Antoniu Miclaus <antoniu.miclaus@analog.com>
diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index d9374d208cee..d3bb6ccd4185 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -262,6 +262,13 @@ config BACKLIGHT_DA9052
 	help
 	  Enable the Backlight Driver for DA9052-BC and DA9053-AA/Bx PMICs.
 
+config BACKLIGHT_MAX25014
+	tristate "Backlight driver for the Maxim MAX25014 chip"
+	depends on I2C
+	select REGMAP_I2C
+	help
+	  If you are using a MAX25014 chip as a backlight driver say Y to enable it.
+
 config BACKLIGHT_MAX8925
 	tristate "Backlight driver for MAX8925"
 	depends on MFD_MAX8925
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index dfbb169bf6ea..1170d9ec40b8 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -45,6 +45,7 @@ obj-$(CONFIG_BACKLIGHT_LOCOMO)		+= locomolcd.o
 obj-$(CONFIG_BACKLIGHT_LP855X)		+= lp855x_bl.o
 obj-$(CONFIG_BACKLIGHT_LP8788)		+= lp8788_bl.o
 obj-$(CONFIG_BACKLIGHT_LV5207LP)	+= lv5207lp.o
+obj-$(CONFIG_BACKLIGHT_MAX25014)	+= max25014.o
 obj-$(CONFIG_BACKLIGHT_MAX8925)		+= max8925_bl.o
 obj-$(CONFIG_BACKLIGHT_MP3309C)		+= mp3309c.o
 obj-$(CONFIG_BACKLIGHT_MT6370)		+= mt6370-backlight.o
diff --git a/drivers/video/backlight/max25014.c b/drivers/video/backlight/max25014.c
new file mode 100644
index 000000000000..7000225752c3
--- /dev/null
+++ b/drivers/video/backlight/max25014.c
@@ -0,0 +1,419 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Backlight driver for Maxim MAX25014
+ *
+ * Copyright (C) 2025 GOcontroll B.V.
+ * Author: Maud Spierings <maudspierings@gocontroll.com>
+ */
+
+#include <linux/backlight.h>
+#include <linux/gpio/consumer.h>
+#include <linux/i2c.h>
+#include <linux/regmap.h>
+#include <linux/slab.h>
+
+#define MAX25014_ISET_DEFAULT_100 11
+#define MAX_BRIGHTNESS            100
+#define MIN_BRIGHTNESS            0
+#define TON_MAX                   130720 /* @153Hz */
+#define TON_STEP                  1307 /* @153Hz */
+#define TON_MIN                   0
+
+#define MAX25014_DEV_ID           0x00
+#define MAX25014_REV_ID           0x01
+#define MAX25014_ISET             0x02
+#define MAX25014_IMODE            0x03
+#define MAX25014_TON1H            0x04
+#define MAX25014_TON1L            0x05
+#define MAX25014_TON2H            0x06
+#define MAX25014_TON2L            0x07
+#define MAX25014_TON3H            0x08
+#define MAX25014_TON3L            0x09
+#define MAX25014_TON4H            0x0A
+#define MAX25014_TON4L            0x0B
+#define MAX25014_TON_1_4_LSB      0x0C
+#define MAX25014_SETTING          0x12
+#define MAX25014_DISABLE          0x13
+#define MAX25014_BSTMON           0x14
+#define MAX25014_IOUT1            0x15
+#define MAX25014_IOUT2            0x16
+#define MAX25014_IOUT3            0x17
+#define MAX25014_IOUT4            0x18
+#define MAX25014_OPEN             0x1B
+#define MAX25014_SHORT_GND        0x1C
+#define MAX25014_SHORT_LED        0x1D
+#define MAX25014_MASK             0x1E
+#define MAX25014_DIAG             0x1F
+
+#define MAX25014_ISET_ENA         BIT(5)
+#define MAX25014_ISET_PSEN        BIT(4)
+#define MAX25014_IMODE_HDIM       BIT(2)
+#define MAX25014_SETTING_FPWM     GENMASK(6, 4)
+#define MAX25014_DISABLE_DIS_MASK GENMASK(3, 0)
+#define MAX25014_DIAG_OT          BIT(0)
+#define MAX25014_DIAG_OTW         BIT(1)
+#define MAX25014_DIAG_HW_RST      BIT(2)
+#define MAX25014_DIAG_BSTOV       BIT(3)
+#define MAX25014_DIAG_BSTUV       BIT(4)
+#define MAX25014_DIAG_IREFOOR     BIT(5)
+
+struct max25014 {
+	struct i2c_client *client;
+	struct backlight_device *bl;
+	struct regmap *regmap;
+	struct gpio_desc *enable;
+	struct regulator *vin; /* regulator for boost converter Vin rail */
+	uint32_t iset;
+	uint8_t strings_mask;
+};
+
+static const struct regmap_config max25014_regmap_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+	.max_register = MAX25014_DIAG,
+};
+
+static int max25014_initial_power_state(struct max25014 *maxim)
+{
+	uint32_t val;
+	int ret;
+
+	ret = regmap_read(maxim->regmap, MAX25014_ISET, &val);
+	if (ret)
+		return ret;
+
+	return val & MAX25014_ISET_ENA ? BACKLIGHT_POWER_ON : BACKLIGHT_POWER_OFF;
+}
+
+static int max25014_check_errors(struct max25014 *maxim)
+{
+	uint32_t val;
+	uint8_t i;
+	int ret;
+
+	ret = regmap_read(maxim->regmap, MAX25014_OPEN, &val);
+	if (ret)
+		return ret;
+	if (val) {
+		dev_err(&maxim->client->dev, "Open led strings detected on:\n");
+		for (i = 0; i < 4; i++) {
+			if (val & 1 << i)
+				dev_err(&maxim->client->dev, "string %d\n", i + 1);
+		}
+		return -EIO;
+	}
+
+	ret = regmap_read(maxim->regmap, MAX25014_SHORT_GND, &val);
+	if (ret)
+		return ret;
+	if (val) {
+		dev_err(&maxim->client->dev, "Short to ground detected on:\n");
+		for (i = 0; i < 4; i++) {
+			if (val & 1 << i)
+				dev_err(&maxim->client->dev, "string %d\n", i + 1);
+		}
+		return -EIO;
+	}
+
+	ret = regmap_read(maxim->regmap, MAX25014_SHORT_GND, &val);
+	if (ret)
+		return ret;
+	if (val) {
+		dev_err(&maxim->client->dev, "Shorted led detected on:\n");
+		for (i = 0; i < 4; i++) {
+			if (val & 1 << i)
+				dev_err(&maxim->client->dev, "string %d\n", i + 1);
+		}
+		return -EIO;
+	}
+
+	ret = regmap_read(maxim->regmap, MAX25014_DIAG, &val);
+	if (ret)
+		return ret;
+	/*
+	 * The HW_RST bit always starts at 1 after power up.
+	 * It is reset on first read, does not indicate an error.
+	 */
+	if (val && val != MAX25014_DIAG_HW_RST) {
+		if (val & MAX25014_DIAG_OT)
+			dev_err(&maxim->client->dev,
+				"Overtemperature shutdown\n");
+		if (val & MAX25014_DIAG_OTW)
+			dev_err(&maxim->client->dev,
+				 "Chip is getting too hot (>125C)\n");
+		if (val & MAX25014_DIAG_BSTOV)
+			dev_err(&maxim->client->dev,
+				"Boost converter overvoltage\n");
+		if (val & MAX25014_DIAG_BSTUV)
+			dev_err(&maxim->client->dev,
+				"Boost converter undervoltage\n");
+		if (val & MAX25014_DIAG_IREFOOR)
+			dev_err(&maxim->client->dev, "IREF out of range\n");
+		return -EIO;
+	}
+	return 0;
+}
+
+/*
+ * 1. disable unused strings
+ * 2. set dim mode
+ * 3. set setting register
+ * 4. enable the backlight
+ */
+static int max25014_configure(struct max25014 *maxim, int initial_state)
+{
+	uint32_t val;
+	int ret;
+
+	/*
+	 * Strings can only be disabled when MAX25014_ISET_ENA == 0, check if
+	 * it needs to be changed at all to prevent the backlight flashing when
+	 * it is configured correctly by the bootloader
+	 */
+	ret = regmap_read(maxim->regmap, MAX25014_DISABLE, &val);
+	if (ret)
+		return ret;
+
+	if (!((val & MAX25014_DISABLE_DIS_MASK) == maxim->strings_mask)) {
+		if (initial_state == BACKLIGHT_POWER_ON) {
+			ret = regmap_write(maxim->regmap, MAX25014_ISET, 0);
+			if (ret)
+				return ret;
+		}
+		ret = regmap_write(maxim->regmap, MAX25014_DISABLE, maxim->strings_mask);
+		if (ret)
+			return ret;
+	}
+
+	ret = regmap_write(maxim->regmap, MAX25014_IMODE, MAX25014_IMODE_HDIM);
+	if (ret)
+		return ret;
+
+	ret = regmap_read(maxim->regmap, MAX25014_SETTING, &val);
+	if (ret)
+		return ret;
+
+	ret = regmap_write(maxim->regmap, MAX25014_SETTING,
+			   val & ~MAX25014_SETTING_FPWM);
+	if (ret)
+		return ret;
+
+	ret = regmap_write(maxim->regmap, MAX25014_ISET,
+			   maxim->iset | MAX25014_ISET_ENA |
+			   MAX25014_ISET_PSEN);
+	return ret;
+}
+
+static int max25014_update_status(struct backlight_device *bl_dev)
+{
+	struct max25014 *maxim = bl_get_data(bl_dev);
+	uint32_t reg;
+	int ret;
+
+	if (backlight_is_blank(maxim->bl))
+		bl_dev->props.brightness = 0;
+
+	reg  = TON_STEP * bl_dev->props.brightness;
+
+	/*
+	 * 18 bit number lowest, 2 bits in first register,
+	 * next lowest 8 in the L register, next 8 in the H register
+	 * Seemingly setting the strength of only one string controls all of
+	 * them, individual settings don't affect the outcome.
+	 */
+
+	ret = regmap_write(maxim->regmap, MAX25014_TON_1_4_LSB, reg & 0b00000011);
+	if (ret != 0)
+		return ret;
+	ret = regmap_write(maxim->regmap, MAX25014_TON1L, (reg >> 2) & 0b11111111);
+	if (ret != 0)
+		return ret;
+	return regmap_write(maxim->regmap, MAX25014_TON1H, (reg >> 10) & 0b11111111);
+}
+
+static const struct backlight_ops max25014_bl_ops = {
+	.options = BL_CORE_SUSPENDRESUME,
+	.update_status = max25014_update_status,
+};
+
+static int max25014_parse_dt(struct max25014 *maxim,
+			     uint32_t *initial_brightness)
+{
+	struct device *dev = &maxim->client->dev;
+	struct device_node *node = dev->of_node;
+	struct fwnode_handle *child;
+	uint32_t strings[4];
+	int res, i;
+
+	if (!node)
+		return dev_err_probe(dev, -EINVAL, "no platform data\n");
+
+	child = device_get_next_child_node(dev, NULL);
+	if (child) {
+		res = fwnode_property_count_u32(child, "led-sources");
+		if (res > 0) {
+			fwnode_property_read_u32_array(child, "led-sources",
+						       strings, res);
+
+			/* set all strings as disabled, then enable those in led-sources*/
+			maxim->strings_mask = 0xf;
+			for (i = 0; i < res; i++) {
+				if (strings[i] <= 4)
+					maxim->strings_mask &= ~BIT(strings[i]);
+			}
+		}
+
+		fwnode_property_read_u32(child, "default-brightness",
+					 initial_brightness);
+
+		fwnode_handle_put(child);
+	}
+
+	maxim->iset = MAX25014_ISET_DEFAULT_100;
+	of_property_read_u32(node, "maxim,iset", &maxim->iset);
+
+	if (maxim->iset > 15)
+		return dev_err_probe(dev, -EINVAL,
+				     "Invalid iset, should be a value from 0-15, entered was %d\n",
+				     maxim->iset);
+
+	if (*initial_brightness > 100)
+		return dev_err_probe(dev, -EINVAL,
+				     "Invalid initial brightness, should be a value from 0-100, entered was %d\n",
+				     *initial_brightness);
+
+	return 0;
+}
+
+static int max25014_probe(struct i2c_client *cl)
+{
+	const struct i2c_device_id *id = i2c_client_get_device_id(cl);
+	struct backlight_properties props;
+	uint32_t initial_brightness = 50;
+	struct backlight_device *bl;
+	struct max25014 *maxim;
+	int ret;
+
+	maxim = devm_kzalloc(&cl->dev, sizeof(struct max25014), GFP_KERNEL);
+	if (!maxim)
+		return -ENOMEM;
+
+	maxim->client = cl;
+
+	ret = max25014_parse_dt(maxim, &initial_brightness);
+	if (ret)
+		return ret;
+
+	maxim->vin = devm_regulator_get(&maxim->client->dev, "power");
+	if (IS_ERR(maxim->vin)) {
+		return dev_err_probe(&maxim->client->dev, PTR_ERR(maxim->vin),
+				     "failed to get power-supply");
+	}
+
+	ret = regulator_enable(maxim->vin);
+	if (ret)
+		return dev_err_probe(&maxim->client->dev, ret,
+			"failed to enable power-supply\n");
+
+	maxim->enable = devm_gpiod_get_optional(&maxim->client->dev, "enable",
+						GPIOD_OUT_HIGH);
+	if (IS_ERR(maxim->enable)) {
+		ret = dev_err_probe(&maxim->client->dev, PTR_ERR(maxim->enable),
+				    "failed to get enable gpio\n");
+		goto disable_vin;
+	}
+
+	/* Datasheet Electrical Characteristics tSTARTUP 2ms */
+	fsleep(2000);
+
+	maxim->regmap = devm_regmap_init_i2c(cl, &max25014_regmap_config);
+	if (IS_ERR(maxim->regmap)) {
+		ret = dev_err_probe(&maxim->client->dev, PTR_ERR(maxim->regmap),
+			"failed to initialize the i2c regmap\n");
+		goto disable_full;
+	}
+
+	i2c_set_clientdata(cl, maxim);
+
+	ret = max25014_check_errors(maxim);
+	if (ret) { /* error is already reported in the above function */
+		goto disable_full;
+	}
+
+	ret = max25014_initial_power_state(maxim);
+	if (ret < 0) {
+		dev_err_probe(&maxim->client->dev, ret, "Could not get enabled state\n");
+		goto disable_full;
+	}
+
+	memset(&props, 0, sizeof(struct backlight_properties));
+	props.type = BACKLIGHT_PLATFORM;
+	props.max_brightness = MAX_BRIGHTNESS;
+	props.brightness = initial_brightness;
+	props.scale = BACKLIGHT_SCALE_LINEAR;
+	props.power = ret;
+
+	ret = max25014_configure(maxim, ret);
+	if (ret) {
+		dev_err_probe(&maxim->client->dev, ret, "device config error");
+		goto disable_full;
+	}
+
+	bl = devm_backlight_device_register(&maxim->client->dev, id->name,
+					    &maxim->client->dev, maxim,
+					    &max25014_bl_ops, &props);
+	if (IS_ERR(bl)) {
+		ret = dev_err_probe(&maxim->client->dev, PTR_ERR(bl),
+				    "failed to register backlight\n");
+		goto disable_full;
+	}
+
+	maxim->bl = bl;
+
+	backlight_update_status(maxim->bl);
+
+	return 0;
+
+disable_full:
+	gpiod_set_value_cansleep(maxim->enable, 0);
+disable_vin:
+	regulator_disable(maxim->vin);
+	return ret;
+}
+
+static void max25014_remove(struct i2c_client *cl)
+{
+	struct max25014 *maxim = i2c_get_clientdata(cl);
+
+	maxim->bl->props.brightness = 0;
+	max25014_update_status(maxim->bl);
+	gpiod_set_value_cansleep(maxim->enable, 0);
+	regulator_disable(maxim->vin);
+}
+
+static const struct of_device_id max25014_dt_ids[] = {
+	{ .compatible = "maxim,max25014", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, max25014_dt_ids);
+
+static const struct i2c_device_id max25014_ids[] = {
+	{ "max25014" },
+	{ }
+};
+MODULE_DEVICE_TABLE(i2c, max25014_ids);
+
+static struct i2c_driver max25014_driver = {
+	.driver = {
+		.name = KBUILD_MODNAME,
+		.of_match_table = of_match_ptr(max25014_dt_ids),
+	},
+	.probe = max25014_probe,
+	.remove = max25014_remove,
+	.id_table = max25014_ids,
+};
+module_i2c_driver(max25014_driver);
+
+MODULE_DESCRIPTION("Maxim MAX25014 backlight driver");
+MODULE_AUTHOR("Maud Spierings <maudspierings@gocontroll.com>");
+MODULE_LICENSE("GPL");

-- 
2.52.0



^ permalink raw reply related

* [PATCH v6 3/4] arm64: dts: freescale: moduline-display-av101hdt-a10: add backlight
From: Maud Spierings via B4 Relay @ 2025-12-01 11:53 UTC (permalink / raw)
  To: Lee Jones, Daniel Thompson, Jingoo Han, Pavel Machek, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Helge Deller, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Liam Girdwood, Mark Brown
  Cc: dri-devel, linux-leds, devicetree, linux-kernel, linux-fbdev, imx,
	linux-arm-kernel, Maud Spierings
In-Reply-To: <20251201-max25014-v6-0-88e3ac8112ff@gocontroll.com>

From: Maud Spierings <maudspierings@gocontroll.com>

Add the missing backlight driver.

Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
---
 ...x8p-ml81-moduline-display-106-av101hdt-a10.dtso | 30 ++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso
index e3965caca6be..0e2914861154 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso
@@ -17,6 +17,7 @@
 
 	panel {
 		compatible = "boe,av101hdt-a10";
+		backlight = <&backlight>;
 		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 		pinctrl-0 = <&pinctrl_panel>;
 		pinctrl-names = "default";
@@ -40,7 +41,36 @@ reg_vbus: regulator-vbus {
 	};
 };
 
+&i2c4 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	backlight: backlight@6f {
+		compatible = "maxim,max25014";
+		reg = <0x6f>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_backlight>;
+		maxim,iset = <7>;
+
+		led@0 {
+			reg = <0>;
+			led-sources = <0 1 2>;
+			default-brightness = <50>;
+		};
+	};
+};
+
 &iomuxc {
+	pinctrl_backlight: backlightgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04
+				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
+		>;
+	};
+
 	pinctrl_panel: panelgrp {
 		fsl,pins = <
 			MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07

-- 
2.52.0



^ permalink raw reply related

* [PATCH v6 1/4] dt-bindings: backlight: Add max25014 support
From: Maud Spierings via B4 Relay @ 2025-12-01 11:53 UTC (permalink / raw)
  To: Lee Jones, Daniel Thompson, Jingoo Han, Pavel Machek, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Helge Deller, Shawn Guo,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Liam Girdwood, Mark Brown
  Cc: dri-devel, linux-leds, devicetree, linux-kernel, linux-fbdev, imx,
	linux-arm-kernel, Maud Spierings
In-Reply-To: <20251201-max25014-v6-0-88e3ac8112ff@gocontroll.com>

From: Maud Spierings <maudspierings@gocontroll.com>

The Maxim MAX25014 is a 4-channel automotive grade backlight driver IC
with integrated boost controller.

Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>

---

In the current implementation the control registers for channel 1,
control all channels. So only one led subnode with led-sources is
supported right now. If at some point the driver functionality is
expanded the bindings can be easily extended with it.
---
 .../bindings/leds/backlight/maxim,max25014.yaml    | 107 +++++++++++++++++++++
 MAINTAINERS                                        |   5 +
 2 files changed, 112 insertions(+)

diff --git a/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
new file mode 100644
index 000000000000..e83723224b07
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
@@ -0,0 +1,107 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/backlight/maxim,max25014.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim max25014 backlight controller
+
+maintainers:
+  - Maud Spierings <maudspierings@gocontroll.com>
+
+properties:
+  compatible:
+    enum:
+      - maxim,max25014
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  enable-gpios:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  power-supply:
+    description: Regulator which controls the boost converter input rail.
+
+  pwms:
+    maxItems: 1
+
+  maxim,iset:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maximum: 15
+    default: 11
+    description:
+      Value of the ISET field in the ISET register. This controls the current
+      scale of the outputs, a higher number means more current.
+
+  led@0:
+    type: object
+    description: Properties for a string of connected LEDs.
+    $ref: common.yaml#
+
+    properties:
+      reg:
+        const: 0
+
+      led-sources:
+        allOf:
+          - minItems: 1
+            maxItems: 4
+            items:
+              minimum: 0
+              maximum: 3
+            default: [0, 1, 2, 3]
+
+      default-brightness:
+        minimum: 0
+        maximum: 100
+        default: 50
+
+    required:
+      - reg
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        backlight@6f {
+            compatible = "maxim,max25014";
+            reg = <0x6f>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+            enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+            power-supply = <&reg_backlight>;
+            pwms = <&pwm1>;
+            maxim,iset = <7>;
+
+            led@0 {
+                reg = <0>;
+                led-sources = <0 1 2 3>;
+                default-brightness = <50>;
+            };
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 58c7e3f678d8..606ce086f758 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15261,6 +15261,11 @@ F:	Documentation/userspace-api/media/drivers/max2175.rst
 F:	drivers/media/i2c/max2175*
 F:	include/uapi/linux/max2175.h
 
+MAX25014 BACKLIGHT DRIVER
+M:	Maud Spierings <maudspierings@gocontroll.com>
+S:	Maintained
+F:	Documentation/devicetree/bindings/leds/backlight/maxim,max25014.yaml
+
 MAX31335 RTC DRIVER
 M:	Antoniu Miclaus <antoniu.miclaus@analog.com>
 L:	linux-rtc@vger.kernel.org

-- 
2.52.0



^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox