summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtto Wyss <otto.wyss@orpatec.ch>2004-11-03 21:25:36 +0000
committerOtto Wyss <otto.wyss@orpatec.ch>2004-11-03 21:25:36 +0000
commitb6c21f25b6b19dd464a151dbbeabcfb99a4e1118 (patch)
tree3a6ef7fc38e3df046f84d78b3f8f56d5e48ba6c2
downloadfbtest-b6c21f25b6b19dd464a151dbbeabcfb99a4e1118.tar.gz
Moved up from base
-rw-r--r--COPYING341
-rw-r--r--Makefile12
-rw-r--r--Rules.make60
-rw-r--r--clut.c173
-rw-r--r--color.c895
-rw-r--r--colormap.c85
-rw-r--r--console.c226
-rw-r--r--drawops/Makefile7
-rw-r--r--drawops/bitstream.c564
-rw-r--r--drawops/cfb.c198
-rw-r--r--drawops/cfb16.c50
-rw-r--r--drawops/cfb2.c54
-rw-r--r--drawops/cfb24.c58
-rw-r--r--drawops/cfb32.c50
-rw-r--r--drawops/cfb4.c56
-rw-r--r--drawops/cfb8.c50
-rw-r--r--drawops/generic.c536
-rw-r--r--drawops/init.c76
-rw-r--r--drawops/iplan2.c70
-rw-r--r--drawops/planar.c264
-rw-r--r--fb.c498
-rw-r--r--fonts/Makefile7
-rw-r--r--fonts/pearl8x8.c2585
-rw-r--r--fonts/sun12x22.c6214
-rw-r--r--fonts/vga8x16.c4628
-rw-r--r--images/Makefile24
-rw-r--r--images/penguin.ppmbin0 -> 19591 bytes
-rw-r--r--include/bitstream.h38
-rw-r--r--include/clut.h21
-rw-r--r--include/color.h783
-rw-r--r--include/colormap.h19
-rw-r--r--include/console.h18
-rw-r--r--include/drawops.h123
-rw-r--r--include/fb.h45
-rw-r--r--include/font.h30
-rw-r--r--include/image.h34
-rw-r--r--include/pixmap.h25
-rw-r--r--include/test.h73
-rw-r--r--include/types.h76
-rw-r--r--include/util.h97
-rw-r--r--include/visops.h63
-rw-r--r--include/visual.h100
-rw-r--r--main.c147
-rw-r--r--pixmap.c150
-rw-r--r--pnmtohex/Makefile9
-rw-r--r--pnmtohex/pnmtohex.c286
-rw-r--r--tests.c122
-rw-r--r--tests/Makefile7
-rw-r--r--tests/test001.c48
-rw-r--r--tests/test002.c56
-rw-r--r--tests/test003.c48
-rw-r--r--tests/test004.c57
-rw-r--r--tests/test005.c52
-rw-r--r--tests/test006.c49
-rw-r--r--tests/test007.c88
-rw-r--r--tests/test008.c57
-rw-r--r--tests/test009.c63
-rw-r--r--tests/test010.c50
-rw-r--r--util.c142
-rw-r--r--visops/Makefile7
-rw-r--r--visops/directcolor.c168
-rw-r--r--visops/grayscale.c103
-rw-r--r--visops/ham.c56
-rw-r--r--visops/init.c57
-rw-r--r--visops/mono.c110
-rw-r--r--visops/pseudocolor.c240
-rw-r--r--visops/truecolor.c139
-rw-r--r--visual.c106
68 files changed, 21743 insertions, 0 deletions
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..a52b16e
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,341 @@
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b628bd8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,12 @@
+
+TOPDIR = .
+
+TARGET = $(CROSS_COMPILE)fbtest
+
+OBJS += drawops/drawops.o fonts/fonts.o images/images.o visops/visops.o \
+ tests/tests.o
+
+SUBDIRS = drawops pnmtohex fonts images visops tests
+
+include $(TOPDIR)/Rules.make
+
diff --git a/Rules.make b/Rules.make
new file mode 100644
index 0000000..d8ed6a0
--- /dev/null
+++ b/Rules.make
@@ -0,0 +1,60 @@
+
+CC = $(CROSS_COMPILE)gcc
+LD = $(CROSS_COMPILE)ld
+HOSTCC = gcc
+
+IFLAGS = -I$(TOPDIR)/include
+#DFLAGS = -g
+OFLAGS = -O3 -fomit-frame-pointer
+CFLAGS = -Wall -Werror $(IFLAGS) $(DFLAGS) $(OFLAGS)
+
+SRCS += $(wildcard *.c)
+OBJS += $(subst .c,.o,$(SRCS))
+HDRS += $(wildcard *.h)
+HDRS += $(wildcard $(TOPDIR)/include/*.h)
+
+.PHONY: all all_rec clean clean_rec
+
+
+all: .depend all_rec $(TARGET) $(O_TARGET) $(HOST_TARGET)
+
+all_rec:
+ifdef SUBDIRS
+ for i in $(SUBDIRS); do make -C $$i all; done
+endif
+
+$(TARGET): $(OBJS)
+ $(CC) -o $(TARGET) $(filter $(OBJS), $^) $(LIBS)
+
+$(O_TARGET): $(OBJS)
+ $(LD) -r -o $(O_TARGET) $(filter $(OBJS), $^)
+
+$(HOST_TARGET): $(SRCS)
+ $(HOSTCC) -o $(HOST_TARGET) $(CFLAGS) $(SRCS) $(LIBS)
+
+
+clean:: clean_rec
+ $(RM) $(TARGET) $(HOST_TARGET) $(OBJS) .depend
+
+clean_rec:
+ifdef SUBDIRS
+ for i in $(SUBDIRS); do make -C $$i clean; done
+endif
+
+
+%.o: %.c
+ $(CC) -c $(CFLAGS) -o $@ $<
+
+
+ifeq ($(HOST_TARGET),)
+.depend: $(SRCS) $(HDRS)
+ $(CC) -M $(CFLAGS) $(SRCS) > .depend
+else
+.depend: $(SRCS) $(HDRS)
+ $(HOSTCC) -M $(CFLAGS) $(SRCS) > .depend
+endif
+
+ifneq ($(wildcard .depend),)
+include .depend
+endif
+
diff --git a/clut.c b/clut.c
new file mode 100644
index 0000000..ae1d7f4
--- /dev/null
+++ b/clut.c
@@ -0,0 +1,173 @@
+
+/*
+ * CLUT manipulation
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <string.h>
+
+#include "types.h"
+#include "visual.h"
+#include "util.h"
+
+
+ /*
+ * Monochrome
+ */
+
+const rgba_t clut_mono[2] = {
+ { 0x0000, 0x0000, 0x0000, 0xffff },
+ { 0xffff, 0xffff, 0xffff, 0xffff }
+};
+
+
+ /*
+ * Linux console palette
+ */
+
+const rgba_t clut_console[16] = {
+ { 0x0000, 0x0000, 0x0000, 0xffff },
+ { 0x0000, 0x0000, 0xaaaa, 0xffff },
+ { 0x0000, 0xaaaa, 0x0000, 0xffff },
+ { 0x0000, 0xaaaa, 0xaaaa, 0xffff },
+ { 0xaaaa, 0x0000, 0x0000, 0xffff },
+ { 0xaaaa, 0x0000, 0xaaaa, 0xffff },
+ { 0xaaaa, 0x5555, 0x0000, 0xffff },
+ { 0xaaaa, 0xaaaa, 0xaaaa, 0xffff },
+ { 0x5555, 0x5555, 0x5555, 0xffff },
+ { 0x5555, 0x5555, 0xffff, 0xffff },
+ { 0x5555, 0xffff, 0x5555, 0xffff },
+ { 0x5555, 0xffff, 0xffff, 0xffff },
+ { 0xffff, 0x5555, 0x5555, 0xffff },
+ { 0xffff, 0x5555, 0xffff, 0xffff },
+ { 0xffff, 0xffff, 0x5555, 0xffff },
+ { 0xffff, 0xffff, 0xffff, 0xffff }
+};
+
+
+ /*
+ * VGA palette
+ */
+
+const rgba_t clut_vga[16] = {
+ { 0x0000, 0x0000, 0x0000, 0xffff },
+ { 0x8080, 0x0000, 0x0000, 0xffff },
+ { 0x0000, 0x8080, 0x0000, 0xffff },
+ { 0x8080, 0x8080, 0x0000, 0xffff },
+ { 0x0000, 0x0000, 0x8080, 0xffff },
+ { 0x8080, 0x0000, 0x8080, 0xffff },
+ { 0x0000, 0x8080, 0x8080, 0xffff },
+ { 0xc0c0, 0xc0c0, 0xc0c0, 0xffff },
+ { 0x8080, 0x8080, 0x8080, 0xffff },
+ { 0xffff, 0x0000, 0x0000, 0xffff },
+ { 0x0000, 0xffff, 0x0000, 0xffff },
+ { 0xffff, 0xffff, 0x0000, 0xffff },
+ { 0x0000, 0x0000, 0xffff, 0xffff },
+ { 0xffff, 0x0000, 0xffff, 0xffff },
+ { 0x0000, 0xffff, 0xffff, 0xffff },
+ { 0xffff, 0xffff, 0xffff, 0xffff },
+};
+
+
+ /*
+ * 4 Extra Windows colors
+ */
+
+const rgba_t clut_windows[4] = {
+ { 0xc0c0, 0xdcdc, 0xc0c0, 0xffff },
+ { 0xa6a6, 0xcaca, 0xf0f0, 0xffff },
+ { 0xffff, 0xfbfb, 0xf0f0, 0xffff },
+ { 0xa0a0, 0xa0a0, 0xa4a4, 0xffff },
+};
+
+
+ /*
+ * Create a color cube
+ */
+
+void clut_create_rgbcube(rgba_t *clut, u32 rlen, u32 glen, u32 blen)
+{
+ u32 r, g, b;
+ u16 red, green, blue;
+
+ Debug("clut_create_rgbcube(): RGB %dx%dx%d\n", rlen, glen, blen);
+ for (r = 0; r < rlen; r++) {
+ red = EXPAND_TO_16BIT(r, rlen-1);
+ for (g = 0; g < glen; g++) {
+ green = EXPAND_TO_16BIT(g, glen-1);
+ for (b = 0; b < blen; b++) {
+ blue = EXPAND_TO_16BIT(b, blen-1);
+ clut->r = red;
+ clut->g = green;
+ clut->b = blue;
+ clut->a = 0xffff;
+ clut++;
+ }
+ }
+ }
+}
+
+
+ /*
+ * Create a linear ramp
+ */
+
+void clut_create_linear(rgba_t *clut, u32 len)
+{
+ u32 i;
+ u16 gray;
+
+ Debug("clut_create_linear(): GRAY %d\n", len);
+ for (i = 0; i < len; i++) {
+ gray = EXPAND_TO_16BIT(i, len-1);
+ clut->r = gray;
+ clut->g = gray;
+ clut->b = gray;
+ clut->a = 0xffff;
+ clut++;
+ }
+}
+
+
+ /*
+ * Create a `useful' palette
+ */
+
+void clut_init_nice(void)
+{
+ if (idx_len >= 512) {
+ clut_create_rgbcube(clut, 8, 8, 8);
+ } else if (idx_len >= 256) {
+ memcpy(clut, clut_console, sizeof(clut_console));
+ /* FIXME: skip colors that are already present */
+ clut_create_rgbcube(clut+16, 6, 6, 6);
+ /* FIXME: skip colors that are already present */
+ clut_create_linear(clut+232, 24);
+ } else if (idx_len >= 128) {
+ memcpy(clut, clut_console, sizeof(clut_console));
+ /* FIXME: skip colors that are already present */
+ clut_create_rgbcube(clut+16, 4, 4, 4);
+ /* FIXME: skip colors that are already present */
+ clut_create_linear(clut+80, 48);
+ } else if (idx_len >= 64) {
+ clut_create_rgbcube(clut, 4, 4, 4);
+ } else if (idx_len >= 32) {
+ clut_create_rgbcube(clut, 3, 3, 3);
+ /* FIXME: still 3 entries left */
+ } else if (idx_len >= 16) {
+ memcpy(clut, clut_console, sizeof(clut_console));
+ } else if (idx_len >= 8) {
+ memcpy(clut, clut_console, 8*sizeof(rgba_t));
+ } else if (idx_len >= 4) {
+ clut_create_linear(clut, 4);
+ } else if (idx_len >= 2) {
+ memcpy(clut, clut_mono, sizeof(clut_mono));
+ }
+
+ clut_update();
+}
diff --git a/color.c b/color.c
new file mode 100644
index 0000000..a9ed3b3
--- /dev/null
+++ b/color.c
@@ -0,0 +1,895 @@
+
+/*
+ * Color manipulation
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdlib.h>
+
+#include "types.h"
+#include "color.h"
+
+
+ /*
+ * Relative weight RGB versus alpha
+ */
+
+#define RGB_WEIGHT 4
+
+
+ /*
+ * X11 colors from rgb.txt
+ */
+
+const rgba_t c_snow = { 0xffff, 0xfafa, 0xfafa, 0xffff };
+const rgba_t c_ghost_white = { 0xf8f8, 0xf8f8, 0xffff, 0xffff };
+const rgba_t c_GhostWhite = { 0xf8f8, 0xf8f8, 0xffff, 0xffff };
+const rgba_t c_white_smoke = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
+const rgba_t c_WhiteSmoke = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
+const rgba_t c_gainsboro = { 0xdcdc, 0xdcdc, 0xdcdc, 0xffff };
+const rgba_t c_floral_white = { 0xffff, 0xfafa, 0xf0f0, 0xffff };
+const rgba_t c_FloralWhite = { 0xffff, 0xfafa, 0xf0f0, 0xffff };
+const rgba_t c_old_lace = { 0xfdfd, 0xf5f5, 0xe6e6, 0xffff };
+const rgba_t c_OldLace = { 0xfdfd, 0xf5f5, 0xe6e6, 0xffff };
+const rgba_t c_linen = { 0xfafa, 0xf0f0, 0xe6e6, 0xffff };
+const rgba_t c_antique_white = { 0xfafa, 0xebeb, 0xd7d7, 0xffff };
+const rgba_t c_AntiqueWhite = { 0xfafa, 0xebeb, 0xd7d7, 0xffff };
+const rgba_t c_papaya_whip = { 0xffff, 0xefef, 0xd5d5, 0xffff };
+const rgba_t c_PapayaWhip = { 0xffff, 0xefef, 0xd5d5, 0xffff };
+const rgba_t c_blanched_almond = { 0xffff, 0xebeb, 0xcdcd, 0xffff };
+const rgba_t c_BlanchedAlmond = { 0xffff, 0xebeb, 0xcdcd, 0xffff };
+const rgba_t c_bisque = { 0xffff, 0xe4e4, 0xc4c4, 0xffff };
+const rgba_t c_peach_puff = { 0xffff, 0xdada, 0xb9b9, 0xffff };
+const rgba_t c_PeachPuff = { 0xffff, 0xdada, 0xb9b9, 0xffff };
+const rgba_t c_navajo_white = { 0xffff, 0xdede, 0xadad, 0xffff };
+const rgba_t c_NavajoWhite = { 0xffff, 0xdede, 0xadad, 0xffff };
+const rgba_t c_moccasin = { 0xffff, 0xe4e4, 0xb5b5, 0xffff };
+const rgba_t c_cornsilk = { 0xffff, 0xf8f8, 0xdcdc, 0xffff };
+const rgba_t c_ivory = { 0xffff, 0xffff, 0xf0f0, 0xffff };
+const rgba_t c_lemon_chiffon = { 0xffff, 0xfafa, 0xcdcd, 0xffff };
+const rgba_t c_LemonChiffon = { 0xffff, 0xfafa, 0xcdcd, 0xffff };
+const rgba_t c_seashell = { 0xffff, 0xf5f5, 0xeeee, 0xffff };
+const rgba_t c_honeydew = { 0xf0f0, 0xffff, 0xf0f0, 0xffff };
+const rgba_t c_mint_cream = { 0xf5f5, 0xffff, 0xfafa, 0xffff };
+const rgba_t c_MintCream = { 0xf5f5, 0xffff, 0xfafa, 0xffff };
+const rgba_t c_azure = { 0xf0f0, 0xffff, 0xffff, 0xffff };
+const rgba_t c_alice_blue = { 0xf0f0, 0xf8f8, 0xffff, 0xffff };
+const rgba_t c_AliceBlue = { 0xf0f0, 0xf8f8, 0xffff, 0xffff };
+const rgba_t c_lavender = { 0xe6e6, 0xe6e6, 0xfafa, 0xffff };
+const rgba_t c_lavender_blush = { 0xffff, 0xf0f0, 0xf5f5, 0xffff };
+const rgba_t c_LavenderBlush = { 0xffff, 0xf0f0, 0xf5f5, 0xffff };
+const rgba_t c_misty_rose = { 0xffff, 0xe4e4, 0xe1e1, 0xffff };
+const rgba_t c_MistyRose = { 0xffff, 0xe4e4, 0xe1e1, 0xffff };
+const rgba_t c_white = { 0xffff, 0xffff, 0xffff, 0xffff };
+const rgba_t c_black = { 0x0000, 0x0000, 0x0000, 0xffff };
+const rgba_t c_dark_slate_gray = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
+const rgba_t c_DarkSlateGray = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
+const rgba_t c_dark_slate_grey = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
+const rgba_t c_DarkSlateGrey = { 0x2f2f, 0x4f4f, 0x4f4f, 0xffff };
+const rgba_t c_dim_gray = { 0x6969, 0x6969, 0x6969, 0xffff };
+const rgba_t c_DimGray = { 0x6969, 0x6969, 0x6969, 0xffff };
+const rgba_t c_dim_grey = { 0x6969, 0x6969, 0x6969, 0xffff };
+const rgba_t c_DimGrey = { 0x6969, 0x6969, 0x6969, 0xffff };
+const rgba_t c_slate_gray = { 0x7070, 0x8080, 0x9090, 0xffff };
+const rgba_t c_SlateGray = { 0x7070, 0x8080, 0x9090, 0xffff };
+const rgba_t c_slate_grey = { 0x7070, 0x8080, 0x9090, 0xffff };
+const rgba_t c_SlateGrey = { 0x7070, 0x8080, 0x9090, 0xffff };
+const rgba_t c_light_slate_gray = { 0x7777, 0x8888, 0x9999, 0xffff };
+const rgba_t c_LightSlateGray = { 0x7777, 0x8888, 0x9999, 0xffff };
+const rgba_t c_light_slate_grey = { 0x7777, 0x8888, 0x9999, 0xffff };
+const rgba_t c_LightSlateGrey = { 0x7777, 0x8888, 0x9999, 0xffff };
+const rgba_t c_gray = { 0xbebe, 0xbebe, 0xbebe, 0xffff };
+const rgba_t c_grey = { 0xbebe, 0xbebe, 0xbebe, 0xffff };
+const rgba_t c_light_grey = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
+const rgba_t c_LightGrey = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
+const rgba_t c_light_gray = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
+const rgba_t c_LightGray = { 0xd3d3, 0xd3d3, 0xd3d3, 0xffff };
+const rgba_t c_midnight_blue = { 0x1919, 0x1919, 0x7070, 0xffff };
+const rgba_t c_MidnightBlue = { 0x1919, 0x1919, 0x7070, 0xffff };
+const rgba_t c_navy = { 0x0000, 0x0000, 0x8080, 0xffff };
+const rgba_t c_navy_blue = { 0x0000, 0x0000, 0x8080, 0xffff };
+const rgba_t c_NavyBlue = { 0x0000, 0x0000, 0x8080, 0xffff };
+const rgba_t c_cornflower_blue = { 0x6464, 0x9595, 0xeded, 0xffff };
+const rgba_t c_CornflowerBlue = { 0x6464, 0x9595, 0xeded, 0xffff };
+const rgba_t c_dark_slate_blue = { 0x4848, 0x3d3d, 0x8b8b, 0xffff };
+const rgba_t c_DarkSlateBlue = { 0x4848, 0x3d3d, 0x8b8b, 0xffff };
+const rgba_t c_slate_blue = { 0x6a6a, 0x5a5a, 0xcdcd, 0xffff };
+const rgba_t c_SlateBlue = { 0x6a6a, 0x5a5a, 0xcdcd, 0xffff };
+const rgba_t c_medium_slate_blue = { 0x7b7b, 0x6868, 0xeeee, 0xffff };
+const rgba_t c_MediumSlateBlue = { 0x7b7b, 0x6868, 0xeeee, 0xffff };
+const rgba_t c_light_slate_blue = { 0x8484, 0x7070, 0xffff, 0xffff };
+const rgba_t c_LightSlateBlue = { 0x8484, 0x7070, 0xffff, 0xffff };
+const rgba_t c_medium_blue = { 0x0000, 0x0000, 0xcdcd, 0xffff };
+const rgba_t c_MediumBlue = { 0x0000, 0x0000, 0xcdcd, 0xffff };
+const rgba_t c_royal_blue = { 0x4141, 0x6969, 0xe1e1, 0xffff };
+const rgba_t c_RoyalBlue = { 0x4141, 0x6969, 0xe1e1, 0xffff };
+const rgba_t c_blue = { 0x0000, 0x0000, 0xffff, 0xffff };
+const rgba_t c_dodger_blue = { 0x1e1e, 0x9090, 0xffff, 0xffff };
+const rgba_t c_DodgerBlue = { 0x1e1e, 0x9090, 0xffff, 0xffff };
+const rgba_t c_deep_sky_blue = { 0x0000, 0xbfbf, 0xffff, 0xffff };
+const rgba_t c_DeepSkyBlue = { 0x0000, 0xbfbf, 0xffff, 0xffff };
+const rgba_t c_sky_blue = { 0x8787, 0xcece, 0xebeb, 0xffff };
+const rgba_t c_SkyBlue = { 0x8787, 0xcece, 0xebeb, 0xffff };
+const rgba_t c_light_sky_blue = { 0x8787, 0xcece, 0xfafa, 0xffff };
+const rgba_t c_LightSkyBlue = { 0x8787, 0xcece, 0xfafa, 0xffff };
+const rgba_t c_steel_blue = { 0x4646, 0x8282, 0xb4b4, 0xffff };
+const rgba_t c_SteelBlue = { 0x4646, 0x8282, 0xb4b4, 0xffff };
+const rgba_t c_light_steel_blue = { 0xb0b0, 0xc4c4, 0xdede, 0xffff };
+const rgba_t c_LightSteelBlue = { 0xb0b0, 0xc4c4, 0xdede, 0xffff };
+const rgba_t c_light_blue = { 0xadad, 0xd8d8, 0xe6e6, 0xffff };
+const rgba_t c_LightBlue = { 0xadad, 0xd8d8, 0xe6e6, 0xffff };
+const rgba_t c_powder_blue = { 0xb0b0, 0xe0e0, 0xe6e6, 0xffff };
+const rgba_t c_PowderBlue = { 0xb0b0, 0xe0e0, 0xe6e6, 0xffff };
+const rgba_t c_pale_turquoise = { 0xafaf, 0xeeee, 0xeeee, 0xffff };
+const rgba_t c_PaleTurquoise = { 0xafaf, 0xeeee, 0xeeee, 0xffff };
+const rgba_t c_dark_turquoise = { 0x0000, 0xcece, 0xd1d1, 0xffff };
+const rgba_t c_DarkTurquoise = { 0x0000, 0xcece, 0xd1d1, 0xffff };
+const rgba_t c_medium_turquoise = { 0x4848, 0xd1d1, 0xcccc, 0xffff };
+const rgba_t c_MediumTurquoise = { 0x4848, 0xd1d1, 0xcccc, 0xffff };
+const rgba_t c_turquoise = { 0x4040, 0xe0e0, 0xd0d0, 0xffff };
+const rgba_t c_cyan = { 0x0000, 0xffff, 0xffff, 0xffff };
+const rgba_t c_light_cyan = { 0xe0e0, 0xffff, 0xffff, 0xffff };
+const rgba_t c_LightCyan = { 0xe0e0, 0xffff, 0xffff, 0xffff };
+const rgba_t c_cadet_blue = { 0x5f5f, 0x9e9e, 0xa0a0, 0xffff };
+const rgba_t c_CadetBlue = { 0x5f5f, 0x9e9e, 0xa0a0, 0xffff };
+const rgba_t c_medium_aquamarine = { 0x6666, 0xcdcd, 0xaaaa, 0xffff };
+const rgba_t c_MediumAquamarine = { 0x6666, 0xcdcd, 0xaaaa, 0xffff };
+const rgba_t c_aquamarine = { 0x7f7f, 0xffff, 0xd4d4, 0xffff };
+const rgba_t c_dark_green = { 0x0000, 0x6464, 0x0000, 0xffff };
+const rgba_t c_DarkGreen = { 0x0000, 0x6464, 0x0000, 0xffff };
+const rgba_t c_dark_olive_green = { 0x5555, 0x6b6b, 0x2f2f, 0xffff };
+const rgba_t c_DarkOliveGreen = { 0x5555, 0x6b6b, 0x2f2f, 0xffff };
+const rgba_t c_dark_sea_green = { 0x8f8f, 0xbcbc, 0x8f8f, 0xffff };
+const rgba_t c_DarkSeaGreen = { 0x8f8f, 0xbcbc, 0x8f8f, 0xffff };
+const rgba_t c_sea_green = { 0x2e2e, 0x8b8b, 0x5757, 0xffff };
+const rgba_t c_SeaGreen = { 0x2e2e, 0x8b8b, 0x5757, 0xffff };
+const rgba_t c_medium_sea_green = { 0x3c3c, 0xb3b3, 0x7171, 0xffff };
+const rgba_t c_MediumSeaGreen = { 0x3c3c, 0xb3b3, 0x7171, 0xffff };
+const rgba_t c_light_sea_green = { 0x2020, 0xb2b2, 0xaaaa, 0xffff };
+const rgba_t c_LightSeaGreen = { 0x2020, 0xb2b2, 0xaaaa, 0xffff };
+const rgba_t c_pale_green = { 0x9898, 0xfbfb, 0x9898, 0xffff };
+const rgba_t c_PaleGreen = { 0x9898, 0xfbfb, 0x9898, 0xffff };
+const rgba_t c_spring_green = { 0x0000, 0xffff, 0x7f7f, 0xffff };
+const rgba_t c_SpringGreen = { 0x0000, 0xffff, 0x7f7f, 0xffff };
+const rgba_t c_lawn_green = { 0x7c7c, 0xfcfc, 0x0000, 0xffff };
+const rgba_t c_LawnGreen = { 0x7c7c, 0xfcfc, 0x0000, 0xffff };
+const rgba_t c_green = { 0x0000, 0xffff, 0x0000, 0xffff };
+const rgba_t c_chartreuse = { 0x7f7f, 0xffff, 0x0000, 0xffff };
+const rgba_t c_medium_spring_green = { 0x0000, 0xfafa, 0x9a9a, 0xffff };
+const rgba_t c_MediumSpringGreen = { 0x0000, 0xfafa, 0x9a9a, 0xffff };
+const rgba_t c_green_yellow = { 0xadad, 0xffff, 0x2f2f, 0xffff };
+const rgba_t c_GreenYellow = { 0xadad, 0xffff, 0x2f2f, 0xffff };
+const rgba_t c_lime_green = { 0x3232, 0xcdcd, 0x3232, 0xffff };
+const rgba_t c_LimeGreen = { 0x3232, 0xcdcd, 0x3232, 0xffff };
+const rgba_t c_yellow_green = { 0x9a9a, 0xcdcd, 0x3232, 0xffff };
+const rgba_t c_YellowGreen = { 0x9a9a, 0xcdcd, 0x3232, 0xffff };
+const rgba_t c_forest_green = { 0x2222, 0x8b8b, 0x2222, 0xffff };
+const rgba_t c_ForestGreen = { 0x2222, 0x8b8b, 0x2222, 0xffff };
+const rgba_t c_olive_drab = { 0x6b6b, 0x8e8e, 0x2323, 0xffff };
+const rgba_t c_OliveDrab = { 0x6b6b, 0x8e8e, 0x2323, 0xffff };
+const rgba_t c_dark_khaki = { 0xbdbd, 0xb7b7, 0x6b6b, 0xffff };
+const rgba_t c_DarkKhaki = { 0xbdbd, 0xb7b7, 0x6b6b, 0xffff };
+const rgba_t c_khaki = { 0xf0f0, 0xe6e6, 0x8c8c, 0xffff };
+const rgba_t c_pale_goldenrod = { 0xeeee, 0xe8e8, 0xaaaa, 0xffff };
+const rgba_t c_PaleGoldenrod = { 0xeeee, 0xe8e8, 0xaaaa, 0xffff };
+const rgba_t c_light_goldenrod_yellow = { 0xfafa, 0xfafa, 0xd2d2, 0xffff };
+const rgba_t c_LightGoldenrodYellow = { 0xfafa, 0xfafa, 0xd2d2, 0xffff };
+const rgba_t c_light_yellow = { 0xffff, 0xffff, 0xe0e0, 0xffff };
+const rgba_t c_LightYellow = { 0xffff, 0xffff, 0xe0e0, 0xffff };
+const rgba_t c_yellow = { 0xffff, 0xffff, 0x0000, 0xffff };
+const rgba_t c_gold = { 0xffff, 0xd7d7, 0x0000, 0xffff };
+const rgba_t c_light_goldenrod = { 0xeeee, 0xdddd, 0x8282, 0xffff };
+const rgba_t c_LightGoldenrod = { 0xeeee, 0xdddd, 0x8282, 0xffff };
+const rgba_t c_goldenrod = { 0xdada, 0xa5a5, 0x2020, 0xffff };
+const rgba_t c_dark_goldenrod = { 0xb8b8, 0x8686, 0x0b0b, 0xffff };
+const rgba_t c_DarkGoldenrod = { 0xb8b8, 0x8686, 0x0b0b, 0xffff };
+const rgba_t c_rosy_brown = { 0xbcbc, 0x8f8f, 0x8f8f, 0xffff };
+const rgba_t c_RosyBrown = { 0xbcbc, 0x8f8f, 0x8f8f, 0xffff };
+const rgba_t c_indian_red = { 0xcdcd, 0x5c5c, 0x5c5c, 0xffff };
+const rgba_t c_IndianRed = { 0xcdcd, 0x5c5c, 0x5c5c, 0xffff };
+const rgba_t c_saddle_brown = { 0x8b8b, 0x4545, 0x1313, 0xffff };
+const rgba_t c_SaddleBrown = { 0x8b8b, 0x4545, 0x1313, 0xffff };
+const rgba_t c_sienna = { 0xa0a0, 0x5252, 0x2d2d, 0xffff };
+const rgba_t c_peru = { 0xcdcd, 0x8585, 0x3f3f, 0xffff };
+const rgba_t c_burlywood = { 0xdede, 0xb8b8, 0x8787, 0xffff };
+const rgba_t c_beige = { 0xf5f5, 0xf5f5, 0xdcdc, 0xffff };
+const rgba_t c_wheat = { 0xf5f5, 0xdede, 0xb3b3, 0xffff };
+const rgba_t c_sandy_brown = { 0xf4f4, 0xa4a4, 0x6060, 0xffff };
+const rgba_t c_SandyBrown = { 0xf4f4, 0xa4a4, 0x6060, 0xffff };
+const rgba_t c_tan = { 0xd2d2, 0xb4b4, 0x8c8c, 0xffff };
+const rgba_t c_chocolate = { 0xd2d2, 0x6969, 0x1e1e, 0xffff };
+const rgba_t c_firebrick = { 0xb2b2, 0x2222, 0x2222, 0xffff };
+const rgba_t c_brown = { 0xa5a5, 0x2a2a, 0x2a2a, 0xffff };
+const rgba_t c_dark_salmon = { 0xe9e9, 0x9696, 0x7a7a, 0xffff };
+const rgba_t c_DarkSalmon = { 0xe9e9, 0x9696, 0x7a7a, 0xffff };
+const rgba_t c_salmon = { 0xfafa, 0x8080, 0x7272, 0xffff };
+const rgba_t c_light_salmon = { 0xffff, 0xa0a0, 0x7a7a, 0xffff };
+const rgba_t c_LightSalmon = { 0xffff, 0xa0a0, 0x7a7a, 0xffff };
+const rgba_t c_orange = { 0xffff, 0xa5a5, 0x0000, 0xffff };
+const rgba_t c_dark_orange = { 0xffff, 0x8c8c, 0x0000, 0xffff };
+const rgba_t c_DarkOrange = { 0xffff, 0x8c8c, 0x0000, 0xffff };
+const rgba_t c_coral = { 0xffff, 0x7f7f, 0x5050, 0xffff };
+const rgba_t c_light_coral = { 0xf0f0, 0x8080, 0x8080, 0xffff };
+const rgba_t c_LightCoral = { 0xf0f0, 0x8080, 0x8080, 0xffff };
+const rgba_t c_tomato = { 0xffff, 0x6363, 0x4747, 0xffff };
+const rgba_t c_orange_red = { 0xffff, 0x4545, 0x0000, 0xffff };
+const rgba_t c_OrangeRed = { 0xffff, 0x4545, 0x0000, 0xffff };
+const rgba_t c_red = { 0xffff, 0x0000, 0x0000, 0xffff };
+const rgba_t c_hot_pink = { 0xffff, 0x6969, 0xb4b4, 0xffff };
+const rgba_t c_HotPink = { 0xffff, 0x6969, 0xb4b4, 0xffff };
+const rgba_t c_deep_pink = { 0xffff, 0x1414, 0x9393, 0xffff };
+const rgba_t c_DeepPink = { 0xffff, 0x1414, 0x9393, 0xffff };
+const rgba_t c_pink = { 0xffff, 0xc0c0, 0xcbcb, 0xffff };
+const rgba_t c_light_pink = { 0xffff, 0xb6b6, 0xc1c1, 0xffff };
+const rgba_t c_LightPink = { 0xffff, 0xb6b6, 0xc1c1, 0xffff };
+const rgba_t c_pale_violet_red = { 0xdbdb, 0x7070, 0x9393, 0xffff };
+const rgba_t c_PaleVioletRed = { 0xdbdb, 0x7070, 0x9393, 0xffff };
+const rgba_t c_maroon = { 0xb0b0, 0x3030, 0x6060, 0xffff };
+const rgba_t c_medium_violet_red = { 0xc7c7, 0x1515, 0x8585, 0xffff };
+const rgba_t c_MediumVioletRed = { 0xc7c7, 0x1515, 0x8585, 0xffff };
+const rgba_t c_violet_red = { 0xd0d0, 0x2020, 0x9090, 0xffff };
+const rgba_t c_VioletRed = { 0xd0d0, 0x2020, 0x9090, 0xffff };
+const rgba_t c_magenta = { 0xffff, 0x0000, 0xffff, 0xffff };
+const rgba_t c_violet = { 0xeeee, 0x8282, 0xeeee, 0xffff };
+const rgba_t c_plum = { 0xdddd, 0xa0a0, 0xdddd, 0xffff };
+const rgba_t c_orchid = { 0xdada, 0x7070, 0xd6d6, 0xffff };
+const rgba_t c_medium_orchid = { 0xbaba, 0x5555, 0xd3d3, 0xffff };
+const rgba_t c_MediumOrchid = { 0xbaba, 0x5555, 0xd3d3, 0xffff };
+const rgba_t c_dark_orchid = { 0x9999, 0x3232, 0xcccc, 0xffff };
+const rgba_t c_DarkOrchid = { 0x9999, 0x3232, 0xcccc, 0xffff };
+const rgba_t c_dark_violet = { 0x9494, 0x0000, 0xd3d3, 0xffff };
+const rgba_t c_DarkViolet = { 0x9494, 0x0000, 0xd3d3, 0xffff };
+const rgba_t c_blue_violet = { 0x8a8a, 0x2b2b, 0xe2e2, 0xffff };
+const rgba_t c_BlueViolet = { 0x8a8a, 0x2b2b, 0xe2e2, 0xffff };
+const rgba_t c_purple = { 0xa0a0, 0x2020, 0xf0f0, 0xffff };
+const rgba_t c_medium_purple = { 0x9393, 0x7070, 0xdbdb, 0xffff };
+const rgba_t c_MediumPurple = { 0x9393, 0x7070, 0xdbdb, 0xffff };
+const rgba_t c_thistle = { 0xd8d8, 0xbfbf, 0xd8d8, 0xffff };
+const rgba_t c_snow1 = { 0xffff, 0xfafa, 0xfafa, 0xffff };
+const rgba_t c_snow2 = { 0xeeee, 0xe9e9, 0xe9e9, 0xffff };
+const rgba_t c_snow3 = { 0xcdcd, 0xc9c9, 0xc9c9, 0xffff };
+const rgba_t c_snow4 = { 0x8b8b, 0x8989, 0x8989, 0xffff };
+const rgba_t c_seashell1 = { 0xffff, 0xf5f5, 0xeeee, 0xffff };
+const rgba_t c_seashell2 = { 0xeeee, 0xe5e5, 0xdede, 0xffff };
+const rgba_t c_seashell3 = { 0xcdcd, 0xc5c5, 0xbfbf, 0xffff };
+const rgba_t c_seashell4 = { 0x8b8b, 0x8686, 0x8282, 0xffff };
+const rgba_t c_AntiqueWhite1 = { 0xffff, 0xefef, 0xdbdb, 0xffff };
+const rgba_t c_AntiqueWhite2 = { 0xeeee, 0xdfdf, 0xcccc, 0xffff };
+const rgba_t c_AntiqueWhite3 = { 0xcdcd, 0xc0c0, 0xb0b0, 0xffff };
+const rgba_t c_AntiqueWhite4 = { 0x8b8b, 0x8383, 0x7878, 0xffff };
+const rgba_t c_bisque1 = { 0xffff, 0xe4e4, 0xc4c4, 0xffff };
+const rgba_t c_bisque2 = { 0xeeee, 0xd5d5, 0xb7b7, 0xffff };
+const rgba_t c_bisque3 = { 0xcdcd, 0xb7b7, 0x9e9e, 0xffff };
+const rgba_t c_bisque4 = { 0x8b8b, 0x7d7d, 0x6b6b, 0xffff };
+const rgba_t c_PeachPuff1 = { 0xffff, 0xdada, 0xb9b9, 0xffff };
+const rgba_t c_PeachPuff2 = { 0xeeee, 0xcbcb, 0xadad, 0xffff };
+const rgba_t c_PeachPuff3 = { 0xcdcd, 0xafaf, 0x9595, 0xffff };
+const rgba_t c_PeachPuff4 = { 0x8b8b, 0x7777, 0x6565, 0xffff };
+const rgba_t c_NavajoWhite1 = { 0xffff, 0xdede, 0xadad, 0xffff };
+const rgba_t c_NavajoWhite2 = { 0xeeee, 0xcfcf, 0xa1a1, 0xffff };
+const rgba_t c_NavajoWhite3 = { 0xcdcd, 0xb3b3, 0x8b8b, 0xffff };
+const rgba_t c_NavajoWhite4 = { 0x8b8b, 0x7979, 0x5e5e, 0xffff };
+const rgba_t c_LemonChiffon1 = { 0xffff, 0xfafa, 0xcdcd, 0xffff };
+const rgba_t c_LemonChiffon2 = { 0xeeee, 0xe9e9, 0xbfbf, 0xffff };
+const rgba_t c_LemonChiffon3 = { 0xcdcd, 0xc9c9, 0xa5a5, 0xffff };
+const rgba_t c_LemonChiffon4 = { 0x8b8b, 0x8989, 0x7070, 0xffff };
+const rgba_t c_cornsilk1 = { 0xffff, 0xf8f8, 0xdcdc, 0xffff };
+const rgba_t c_cornsilk2 = { 0xeeee, 0xe8e8, 0xcdcd, 0xffff };
+const rgba_t c_cornsilk3 = { 0xcdcd, 0xc8c8, 0xb1b1, 0xffff };
+const rgba_t c_cornsilk4 = { 0x8b8b, 0x8888, 0x7878, 0xffff };
+const rgba_t c_ivory1 = { 0xffff, 0xffff, 0xf0f0, 0xffff };
+const rgba_t c_ivory2 = { 0xeeee, 0xeeee, 0xe0e0, 0xffff };
+const rgba_t c_ivory3 = { 0xcdcd, 0xcdcd, 0xc1c1, 0xffff };
+const rgba_t c_ivory4 = { 0x8b8b, 0x8b8b, 0x8383, 0xffff };
+const rgba_t c_honeydew1 = { 0xf0f0, 0xffff, 0xf0f0, 0xffff };
+const rgba_t c_honeydew2 = { 0xe0e0, 0xeeee, 0xe0e0, 0xffff };
+const rgba_t c_honeydew3 = { 0xc1c1, 0xcdcd, 0xc1c1, 0xffff };
+const rgba_t c_honeydew4 = { 0x8383, 0x8b8b, 0x8383, 0xffff };
+const rgba_t c_LavenderBlush1 = { 0xffff, 0xf0f0, 0xf5f5, 0xffff };
+const rgba_t c_LavenderBlush2 = { 0xeeee, 0xe0e0, 0xe5e5, 0xffff };
+const rgba_t c_LavenderBlush3 = { 0xcdcd, 0xc1c1, 0xc5c5, 0xffff };
+const rgba_t c_LavenderBlush4 = { 0x8b8b, 0x8383, 0x8686, 0xffff };
+const rgba_t c_MistyRose1 = { 0xffff, 0xe4e4, 0xe1e1, 0xffff };
+const rgba_t c_MistyRose2 = { 0xeeee, 0xd5d5, 0xd2d2, 0xffff };
+const rgba_t c_MistyRose3 = { 0xcdcd, 0xb7b7, 0xb5b5, 0xffff };
+const rgba_t c_MistyRose4 = { 0x8b8b, 0x7d7d, 0x7b7b, 0xffff };
+const rgba_t c_azure1 = { 0xf0f0, 0xffff, 0xffff, 0xffff };
+const rgba_t c_azure2 = { 0xe0e0, 0xeeee, 0xeeee, 0xffff };
+const rgba_t c_azure3 = { 0xc1c1, 0xcdcd, 0xcdcd, 0xffff };
+const rgba_t c_azure4 = { 0x8383, 0x8b8b, 0x8b8b, 0xffff };
+const rgba_t c_SlateBlue1 = { 0x8383, 0x6f6f, 0xffff, 0xffff };
+const rgba_t c_SlateBlue2 = { 0x7a7a, 0x6767, 0xeeee, 0xffff };
+const rgba_t c_SlateBlue3 = { 0x6969, 0x5959, 0xcdcd, 0xffff };
+const rgba_t c_SlateBlue4 = { 0x4747, 0x3c3c, 0x8b8b, 0xffff };
+const rgba_t c_RoyalBlue1 = { 0x4848, 0x7676, 0xffff, 0xffff };
+const rgba_t c_RoyalBlue2 = { 0x4343, 0x6e6e, 0xeeee, 0xffff };
+const rgba_t c_RoyalBlue3 = { 0x3a3a, 0x5f5f, 0xcdcd, 0xffff };
+const rgba_t c_RoyalBlue4 = { 0x2727, 0x4040, 0x8b8b, 0xffff };
+const rgba_t c_blue1 = { 0x0000, 0x0000, 0xffff, 0xffff };
+const rgba_t c_blue2 = { 0x0000, 0x0000, 0xeeee, 0xffff };
+const rgba_t c_blue3 = { 0x0000, 0x0000, 0xcdcd, 0xffff };
+const rgba_t c_blue4 = { 0x0000, 0x0000, 0x8b8b, 0xffff };
+const rgba_t c_DodgerBlue1 = { 0x1e1e, 0x9090, 0xffff, 0xffff };
+const rgba_t c_DodgerBlue2 = { 0x1c1c, 0x8686, 0xeeee, 0xffff };
+const rgba_t c_DodgerBlue3 = { 0x1818, 0x7474, 0xcdcd, 0xffff };
+const rgba_t c_DodgerBlue4 = { 0x1010, 0x4e4e, 0x8b8b, 0xffff };
+const rgba_t c_SteelBlue1 = { 0x6363, 0xb8b8, 0xffff, 0xffff };
+const rgba_t c_SteelBlue2 = { 0x5c5c, 0xacac, 0xeeee, 0xffff };
+const rgba_t c_SteelBlue3 = { 0x4f4f, 0x9494, 0xcdcd, 0xffff };
+const rgba_t c_SteelBlue4 = { 0x3636, 0x6464, 0x8b8b, 0xffff };
+const rgba_t c_DeepSkyBlue1 = { 0x0000, 0xbfbf, 0xffff, 0xffff };
+const rgba_t c_DeepSkyBlue2 = { 0x0000, 0xb2b2, 0xeeee, 0xffff };
+const rgba_t c_DeepSkyBlue3 = { 0x0000, 0x9a9a, 0xcdcd, 0xffff };
+const rgba_t c_DeepSkyBlue4 = { 0x0000, 0x6868, 0x8b8b, 0xffff };
+const rgba_t c_SkyBlue1 = { 0x8787, 0xcece, 0xffff, 0xffff };
+const rgba_t c_SkyBlue2 = { 0x7e7e, 0xc0c0, 0xeeee, 0xffff };
+const rgba_t c_SkyBlue3 = { 0x6c6c, 0xa6a6, 0xcdcd, 0xffff };
+const rgba_t c_SkyBlue4 = { 0x4a4a, 0x7070, 0x8b8b, 0xffff };
+const rgba_t c_LightSkyBlue1 = { 0xb0b0, 0xe2e2, 0xffff, 0xffff };
+const rgba_t c_LightSkyBlue2 = { 0xa4a4, 0xd3d3, 0xeeee, 0xffff };
+const rgba_t c_LightSkyBlue3 = { 0x8d8d, 0xb6b6, 0xcdcd, 0xffff };
+const rgba_t c_LightSkyBlue4 = { 0x6060, 0x7b7b, 0x8b8b, 0xffff };
+const rgba_t c_SlateGray1 = { 0xc6c6, 0xe2e2, 0xffff, 0xffff };
+const rgba_t c_SlateGray2 = { 0xb9b9, 0xd3d3, 0xeeee, 0xffff };
+const rgba_t c_SlateGray3 = { 0x9f9f, 0xb6b6, 0xcdcd, 0xffff };
+const rgba_t c_SlateGray4 = { 0x6c6c, 0x7b7b, 0x8b8b, 0xffff };
+const rgba_t c_LightSteelBlue1 = { 0xcaca, 0xe1e1, 0xffff, 0xffff };
+const rgba_t c_LightSteelBlue2 = { 0xbcbc, 0xd2d2, 0xeeee, 0xffff };
+const rgba_t c_LightSteelBlue3 = { 0xa2a2, 0xb5b5, 0xcdcd, 0xffff };
+const rgba_t c_LightSteelBlue4 = { 0x6e6e, 0x7b7b, 0x8b8b, 0xffff };
+const rgba_t c_LightBlue1 = { 0xbfbf, 0xefef, 0xffff, 0xffff };
+const rgba_t c_LightBlue2 = { 0xb2b2, 0xdfdf, 0xeeee, 0xffff };
+const rgba_t c_LightBlue3 = { 0x9a9a, 0xc0c0, 0xcdcd, 0xffff };
+const rgba_t c_LightBlue4 = { 0x6868, 0x8383, 0x8b8b, 0xffff };
+const rgba_t c_LightCyan1 = { 0xe0e0, 0xffff, 0xffff, 0xffff };
+const rgba_t c_LightCyan2 = { 0xd1d1, 0xeeee, 0xeeee, 0xffff };
+const rgba_t c_LightCyan3 = { 0xb4b4, 0xcdcd, 0xcdcd, 0xffff };
+const rgba_t c_LightCyan4 = { 0x7a7a, 0x8b8b, 0x8b8b, 0xffff };
+const rgba_t c_PaleTurquoise1 = { 0xbbbb, 0xffff, 0xffff, 0xffff };
+const rgba_t c_PaleTurquoise2 = { 0xaeae, 0xeeee, 0xeeee, 0xffff };
+const rgba_t c_PaleTurquoise3 = { 0x9696, 0xcdcd, 0xcdcd, 0xffff };
+const rgba_t c_PaleTurquoise4 = { 0x6666, 0x8b8b, 0x8b8b, 0xffff };
+const rgba_t c_CadetBlue1 = { 0x9898, 0xf5f5, 0xffff, 0xffff };
+const rgba_t c_CadetBlue2 = { 0x8e8e, 0xe5e5, 0xeeee, 0xffff };
+const rgba_t c_CadetBlue3 = { 0x7a7a, 0xc5c5, 0xcdcd, 0xffff };
+const rgba_t c_CadetBlue4 = { 0x5353, 0x8686, 0x8b8b, 0xffff };
+const rgba_t c_turquoise1 = { 0x0000, 0xf5f5, 0xffff, 0xffff };
+const rgba_t c_turquoise2 = { 0x0000, 0xe5e5, 0xeeee, 0xffff };
+const rgba_t c_turquoise3 = { 0x0000, 0xc5c5, 0xcdcd, 0xffff };
+const rgba_t c_turquoise4 = { 0x0000, 0x8686, 0x8b8b, 0xffff };
+const rgba_t c_cyan1 = { 0x0000, 0xffff, 0xffff, 0xffff };
+const rgba_t c_cyan2 = { 0x0000, 0xeeee, 0xeeee, 0xffff };
+const rgba_t c_cyan3 = { 0x0000, 0xcdcd, 0xcdcd, 0xffff };
+const rgba_t c_cyan4 = { 0x0000, 0x8b8b, 0x8b8b, 0xffff };
+const rgba_t c_DarkSlateGray1 = { 0x9797, 0xffff, 0xffff, 0xffff };
+const rgba_t c_DarkSlateGray2 = { 0x8d8d, 0xeeee, 0xeeee, 0xffff };
+const rgba_t c_DarkSlateGray3 = { 0x7979, 0xcdcd, 0xcdcd, 0xffff };
+const rgba_t c_DarkSlateGray4 = { 0x5252, 0x8b8b, 0x8b8b, 0xffff };
+const rgba_t c_aquamarine1 = { 0x7f7f, 0xffff, 0xd4d4, 0xffff };
+const rgba_t c_aquamarine2 = { 0x7676, 0xeeee, 0xc6c6, 0xffff };
+const rgba_t c_aquamarine3 = { 0x6666, 0xcdcd, 0xaaaa, 0xffff };
+const rgba_t c_aquamarine4 = { 0x4545, 0x8b8b, 0x7474, 0xffff };
+const rgba_t c_DarkSeaGreen1 = { 0xc1c1, 0xffff, 0xc1c1, 0xffff };
+const rgba_t c_DarkSeaGreen2 = { 0xb4b4, 0xeeee, 0xb4b4, 0xffff };
+const rgba_t c_DarkSeaGreen3 = { 0x9b9b, 0xcdcd, 0x9b9b, 0xffff };
+const rgba_t c_DarkSeaGreen4 = { 0x6969, 0x8b8b, 0x6969, 0xffff };
+const rgba_t c_SeaGreen1 = { 0x5454, 0xffff, 0x9f9f, 0xffff };
+const rgba_t c_SeaGreen2 = { 0x4e4e, 0xeeee, 0x9494, 0xffff };
+const rgba_t c_SeaGreen3 = { 0x4343, 0xcdcd, 0x8080, 0xffff };
+const rgba_t c_SeaGreen4 = { 0x2e2e, 0x8b8b, 0x5757, 0xffff };
+const rgba_t c_PaleGreen1 = { 0x9a9a, 0xffff, 0x9a9a, 0xffff };
+const rgba_t c_PaleGreen2 = { 0x9090, 0xeeee, 0x9090, 0xffff };
+const rgba_t c_PaleGreen3 = { 0x7c7c, 0xcdcd, 0x7c7c, 0xffff };
+const rgba_t c_PaleGreen4 = { 0x5454, 0x8b8b, 0x5454, 0xffff };
+const rgba_t c_SpringGreen1 = { 0x0000, 0xffff, 0x7f7f, 0xffff };
+const rgba_t c_SpringGreen2 = { 0x0000, 0xeeee, 0x7676, 0xffff };
+const rgba_t c_SpringGreen3 = { 0x0000, 0xcdcd, 0x6666, 0xffff };
+const rgba_t c_SpringGreen4 = { 0x0000, 0x8b8b, 0x4545, 0xffff };
+const rgba_t c_green1 = { 0x0000, 0xffff, 0x0000, 0xffff };
+const rgba_t c_green2 = { 0x0000, 0xeeee, 0x0000, 0xffff };
+const rgba_t c_green3 = { 0x0000, 0xcdcd, 0x0000, 0xffff };
+const rgba_t c_green4 = { 0x0000, 0x8b8b, 0x0000, 0xffff };
+const rgba_t c_chartreuse1 = { 0x7f7f, 0xffff, 0x0000, 0xffff };
+const rgba_t c_chartreuse2 = { 0x7676, 0xeeee, 0x0000, 0xffff };
+const rgba_t c_chartreuse3 = { 0x6666, 0xcdcd, 0x0000, 0xffff };
+const rgba_t c_chartreuse4 = { 0x4545, 0x8b8b, 0x0000, 0xffff };
+const rgba_t c_OliveDrab1 = { 0xc0c0, 0xffff, 0x3e3e, 0xffff };
+const rgba_t c_OliveDrab2 = { 0xb3b3, 0xeeee, 0x3a3a, 0xffff };
+const rgba_t c_OliveDrab3 = { 0x9a9a, 0xcdcd, 0x3232, 0xffff };
+const rgba_t c_OliveDrab4 = { 0x6969, 0x8b8b, 0x2222, 0xffff };
+const rgba_t c_DarkOliveGreen1 = { 0xcaca, 0xffff, 0x7070, 0xffff };
+const rgba_t c_DarkOliveGreen2 = { 0xbcbc, 0xeeee, 0x6868, 0xffff };
+const rgba_t c_DarkOliveGreen3 = { 0xa2a2, 0xcdcd, 0x5a5a, 0xffff };
+const rgba_t c_DarkOliveGreen4 = { 0x6e6e, 0x8b8b, 0x3d3d, 0xffff };
+const rgba_t c_khaki1 = { 0xffff, 0xf6f6, 0x8f8f, 0xffff };
+const rgba_t c_khaki2 = { 0xeeee, 0xe6e6, 0x8585, 0xffff };
+const rgba_t c_khaki3 = { 0xcdcd, 0xc6c6, 0x7373, 0xffff };
+const rgba_t c_khaki4 = { 0x8b8b, 0x8686, 0x4e4e, 0xffff };
+const rgba_t c_LightGoldenrod1 = { 0xffff, 0xecec, 0x8b8b, 0xffff };
+const rgba_t c_LightGoldenrod2 = { 0xeeee, 0xdcdc, 0x8282, 0xffff };
+const rgba_t c_LightGoldenrod3 = { 0xcdcd, 0xbebe, 0x7070, 0xffff };
+const rgba_t c_LightGoldenrod4 = { 0x8b8b, 0x8181, 0x4c4c, 0xffff };
+const rgba_t c_LightYellow1 = { 0xffff, 0xffff, 0xe0e0, 0xffff };
+const rgba_t c_LightYellow2 = { 0xeeee, 0xeeee, 0xd1d1, 0xffff };
+const rgba_t c_LightYellow3 = { 0xcdcd, 0xcdcd, 0xb4b4, 0xffff };
+const rgba_t c_LightYellow4 = { 0x8b8b, 0x8b8b, 0x7a7a, 0xffff };
+const rgba_t c_yellow1 = { 0xffff, 0xffff, 0x0000, 0xffff };
+const rgba_t c_yellow2 = { 0xeeee, 0xeeee, 0x0000, 0xffff };
+const rgba_t c_yellow3 = { 0xcdcd, 0xcdcd, 0x0000, 0xffff };
+const rgba_t c_yellow4 = { 0x8b8b, 0x8b8b, 0x0000, 0xffff };
+const rgba_t c_gold1 = { 0xffff, 0xd7d7, 0x0000, 0xffff };
+const rgba_t c_gold2 = { 0xeeee, 0xc9c9, 0x0000, 0xffff };
+const rgba_t c_gold3 = { 0xcdcd, 0xadad, 0x0000, 0xffff };
+const rgba_t c_gold4 = { 0x8b8b, 0x7575, 0x0000, 0xffff };
+const rgba_t c_goldenrod1 = { 0xffff, 0xc1c1, 0x2525, 0xffff };
+const rgba_t c_goldenrod2 = { 0xeeee, 0xb4b4, 0x2222, 0xffff };
+const rgba_t c_goldenrod3 = { 0xcdcd, 0x9b9b, 0x1d1d, 0xffff };
+const rgba_t c_goldenrod4 = { 0x8b8b, 0x6969, 0x1414, 0xffff };
+const rgba_t c_DarkGoldenrod1 = { 0xffff, 0xb9b9, 0x0f0f, 0xffff };
+const rgba_t c_DarkGoldenrod2 = { 0xeeee, 0xadad, 0x0e0e, 0xffff };
+const rgba_t c_DarkGoldenrod3 = { 0xcdcd, 0x9595, 0x0c0c, 0xffff };
+const rgba_t c_DarkGoldenrod4 = { 0x8b8b, 0x6565, 0x0808, 0xffff };
+const rgba_t c_RosyBrown1 = { 0xffff, 0xc1c1, 0xc1c1, 0xffff };
+const rgba_t c_RosyBrown2 = { 0xeeee, 0xb4b4, 0xb4b4, 0xffff };
+const rgba_t c_RosyBrown3 = { 0xcdcd, 0x9b9b, 0x9b9b, 0xffff };
+const rgba_t c_RosyBrown4 = { 0x8b8b, 0x6969, 0x6969, 0xffff };
+const rgba_t c_IndianRed1 = { 0xffff, 0x6a6a, 0x6a6a, 0xffff };
+const rgba_t c_IndianRed2 = { 0xeeee, 0x6363, 0x6363, 0xffff };
+const rgba_t c_IndianRed3 = { 0xcdcd, 0x5555, 0x5555, 0xffff };
+const rgba_t c_IndianRed4 = { 0x8b8b, 0x3a3a, 0x3a3a, 0xffff };
+const rgba_t c_sienna1 = { 0xffff, 0x8282, 0x4747, 0xffff };
+const rgba_t c_sienna2 = { 0xeeee, 0x7979, 0x4242, 0xffff };
+const rgba_t c_sienna3 = { 0xcdcd, 0x6868, 0x3939, 0xffff };
+const rgba_t c_sienna4 = { 0x8b8b, 0x4747, 0x2626, 0xffff };
+const rgba_t c_burlywood1 = { 0xffff, 0xd3d3, 0x9b9b, 0xffff };
+const rgba_t c_burlywood2 = { 0xeeee, 0xc5c5, 0x9191, 0xffff };
+const rgba_t c_burlywood3 = { 0xcdcd, 0xaaaa, 0x7d7d, 0xffff };
+const rgba_t c_burlywood4 = { 0x8b8b, 0x7373, 0x5555, 0xffff };
+const rgba_t c_wheat1 = { 0xffff, 0xe7e7, 0xbaba, 0xffff };
+const rgba_t c_wheat2 = { 0xeeee, 0xd8d8, 0xaeae, 0xffff };
+const rgba_t c_wheat3 = { 0xcdcd, 0xbaba, 0x9696, 0xffff };
+const rgba_t c_wheat4 = { 0x8b8b, 0x7e7e, 0x6666, 0xffff };
+const rgba_t c_tan1 = { 0xffff, 0xa5a5, 0x4f4f, 0xffff };
+const rgba_t c_tan2 = { 0xeeee, 0x9a9a, 0x4949, 0xffff };
+const rgba_t c_tan3 = { 0xcdcd, 0x8585, 0x3f3f, 0xffff };
+const rgba_t c_tan4 = { 0x8b8b, 0x5a5a, 0x2b2b, 0xffff };
+const rgba_t c_chocolate1 = { 0xffff, 0x7f7f, 0x2424, 0xffff };
+const rgba_t c_chocolate2 = { 0xeeee, 0x7676, 0x2121, 0xffff };
+const rgba_t c_chocolate3 = { 0xcdcd, 0x6666, 0x1d1d, 0xffff };
+const rgba_t c_chocolate4 = { 0x8b8b, 0x4545, 0x1313, 0xffff };
+const rgba_t c_firebrick1 = { 0xffff, 0x3030, 0x3030, 0xffff };
+const rgba_t c_firebrick2 = { 0xeeee, 0x2c2c, 0x2c2c, 0xffff };
+const rgba_t c_firebrick3 = { 0xcdcd, 0x2626, 0x2626, 0xffff };
+const rgba_t c_firebrick4 = { 0x8b8b, 0x1a1a, 0x1a1a, 0xffff };
+const rgba_t c_brown1 = { 0xffff, 0x4040, 0x4040, 0xffff };
+const rgba_t c_brown2 = { 0xeeee, 0x3b3b, 0x3b3b, 0xffff };
+const rgba_t c_brown3 = { 0xcdcd, 0x3333, 0x3333, 0xffff };
+const rgba_t c_brown4 = { 0x8b8b, 0x2323, 0x2323, 0xffff };
+const rgba_t c_salmon1 = { 0xffff, 0x8c8c, 0x6969, 0xffff };
+const rgba_t c_salmon2 = { 0xeeee, 0x8282, 0x6262, 0xffff };
+const rgba_t c_salmon3 = { 0xcdcd, 0x7070, 0x5454, 0xffff };
+const rgba_t c_salmon4 = { 0x8b8b, 0x4c4c, 0x3939, 0xffff };
+const rgba_t c_LightSalmon1 = { 0xffff, 0xa0a0, 0x7a7a, 0xffff };
+const rgba_t c_LightSalmon2 = { 0xeeee, 0x9595, 0x7272, 0xffff };
+const rgba_t c_LightSalmon3 = { 0xcdcd, 0x8181, 0x6262, 0xffff };
+const rgba_t c_LightSalmon4 = { 0x8b8b, 0x5757, 0x4242, 0xffff };
+const rgba_t c_orange1 = { 0xffff, 0xa5a5, 0x0000, 0xffff };
+const rgba_t c_orange2 = { 0xeeee, 0x9a9a, 0x0000, 0xffff };
+const rgba_t c_orange3 = { 0xcdcd, 0x8585, 0x0000, 0xffff };
+const rgba_t c_orange4 = { 0x8b8b, 0x5a5a, 0x0000, 0xffff };
+const rgba_t c_DarkOrange1 = { 0xffff, 0x7f7f, 0x0000, 0xffff };
+const rgba_t c_DarkOrange2 = { 0xeeee, 0x7676, 0x0000, 0xffff };
+const rgba_t c_DarkOrange3 = { 0xcdcd, 0x6666, 0x0000, 0xffff };
+const rgba_t c_DarkOrange4 = { 0x8b8b, 0x4545, 0x0000, 0xffff };
+const rgba_t c_coral1 = { 0xffff, 0x7272, 0x5656, 0xffff };
+const rgba_t c_coral2 = { 0xeeee, 0x6a6a, 0x5050, 0xffff };
+const rgba_t c_coral3 = { 0xcdcd, 0x5b5b, 0x4545, 0xffff };
+const rgba_t c_coral4 = { 0x8b8b, 0x3e3e, 0x2f2f, 0xffff };
+const rgba_t c_tomato1 = { 0xffff, 0x6363, 0x4747, 0xffff };
+const rgba_t c_tomato2 = { 0xeeee, 0x5c5c, 0x4242, 0xffff };
+const rgba_t c_tomato3 = { 0xcdcd, 0x4f4f, 0x3939, 0xffff };
+const rgba_t c_tomato4 = { 0x8b8b, 0x3636, 0x2626, 0xffff };
+const rgba_t c_OrangeRed1 = { 0xffff, 0x4545, 0x0000, 0xffff };
+const rgba_t c_OrangeRed2 = { 0xeeee, 0x4040, 0x0000, 0xffff };
+const rgba_t c_OrangeRed3 = { 0xcdcd, 0x3737, 0x0000, 0xffff };
+const rgba_t c_OrangeRed4 = { 0x8b8b, 0x2525, 0x0000, 0xffff };
+const rgba_t c_red1 = { 0xffff, 0x0000, 0x0000, 0xffff };
+const rgba_t c_red2 = { 0xeeee, 0x0000, 0x0000, 0xffff };
+const rgba_t c_red3 = { 0xcdcd, 0x0000, 0x0000, 0xffff };
+const rgba_t c_red4 = { 0x8b8b, 0x0000, 0x0000, 0xffff };
+const rgba_t c_DeepPink1 = { 0xffff, 0x1414, 0x9393, 0xffff };
+const rgba_t c_DeepPink2 = { 0xeeee, 0x1212, 0x8989, 0xffff };
+const rgba_t c_DeepPink3 = { 0xcdcd, 0x1010, 0x7676, 0xffff };
+const rgba_t c_DeepPink4 = { 0x8b8b, 0x0a0a, 0x5050, 0xffff };
+const rgba_t c_HotPink1 = { 0xffff, 0x6e6e, 0xb4b4, 0xffff };
+const rgba_t c_HotPink2 = { 0xeeee, 0x6a6a, 0xa7a7, 0xffff };
+const rgba_t c_HotPink3 = { 0xcdcd, 0x6060, 0x9090, 0xffff };
+const rgba_t c_HotPink4 = { 0x8b8b, 0x3a3a, 0x6262, 0xffff };
+const rgba_t c_pink1 = { 0xffff, 0xb5b5, 0xc5c5, 0xffff };
+const rgba_t c_pink2 = { 0xeeee, 0xa9a9, 0xb8b8, 0xffff };
+const rgba_t c_pink3 = { 0xcdcd, 0x9191, 0x9e9e, 0xffff };
+const rgba_t c_pink4 = { 0x8b8b, 0x6363, 0x6c6c, 0xffff };
+const rgba_t c_LightPink1 = { 0xffff, 0xaeae, 0xb9b9, 0xffff };
+const rgba_t c_LightPink2 = { 0xeeee, 0xa2a2, 0xadad, 0xffff };
+const rgba_t c_LightPink3 = { 0xcdcd, 0x8c8c, 0x9595, 0xffff };
+const rgba_t c_LightPink4 = { 0x8b8b, 0x5f5f, 0x6565, 0xffff };
+const rgba_t c_PaleVioletRed1 = { 0xffff, 0x8282, 0xabab, 0xffff };
+const rgba_t c_PaleVioletRed2 = { 0xeeee, 0x7979, 0x9f9f, 0xffff };
+const rgba_t c_PaleVioletRed3 = { 0xcdcd, 0x6868, 0x8989, 0xffff };
+const rgba_t c_PaleVioletRed4 = { 0x8b8b, 0x4747, 0x5d5d, 0xffff };
+const rgba_t c_maroon1 = { 0xffff, 0x3434, 0xb3b3, 0xffff };
+const rgba_t c_maroon2 = { 0xeeee, 0x3030, 0xa7a7, 0xffff };
+const rgba_t c_maroon3 = { 0xcdcd, 0x2929, 0x9090, 0xffff };
+const rgba_t c_maroon4 = { 0x8b8b, 0x1c1c, 0x6262, 0xffff };
+const rgba_t c_VioletRed1 = { 0xffff, 0x3e3e, 0x9696, 0xffff };
+const rgba_t c_VioletRed2 = { 0xeeee, 0x3a3a, 0x8c8c, 0xffff };
+const rgba_t c_VioletRed3 = { 0xcdcd, 0x3232, 0x7878, 0xffff };
+const rgba_t c_VioletRed4 = { 0x8b8b, 0x2222, 0x5252, 0xffff };
+const rgba_t c_magenta1 = { 0xffff, 0x0000, 0xffff, 0xffff };
+const rgba_t c_magenta2 = { 0xeeee, 0x0000, 0xeeee, 0xffff };
+const rgba_t c_magenta3 = { 0xcdcd, 0x0000, 0xcdcd, 0xffff };
+const rgba_t c_magenta4 = { 0x8b8b, 0x0000, 0x8b8b, 0xffff };
+const rgba_t c_orchid1 = { 0xffff, 0x8383, 0xfafa, 0xffff };
+const rgba_t c_orchid2 = { 0xeeee, 0x7a7a, 0xe9e9, 0xffff };
+const rgba_t c_orchid3 = { 0xcdcd, 0x6969, 0xc9c9, 0xffff };
+const rgba_t c_orchid4 = { 0x8b8b, 0x4747, 0x8989, 0xffff };
+const rgba_t c_plum1 = { 0xffff, 0xbbbb, 0xffff, 0xffff };
+const rgba_t c_plum2 = { 0xeeee, 0xaeae, 0xeeee, 0xffff };
+const rgba_t c_plum3 = { 0xcdcd, 0x9696, 0xcdcd, 0xffff };
+const rgba_t c_plum4 = { 0x8b8b, 0x6666, 0x8b8b, 0xffff };
+const rgba_t c_MediumOrchid1 = { 0xe0e0, 0x6666, 0xffff, 0xffff };
+const rgba_t c_MediumOrchid2 = { 0xd1d1, 0x5f5f, 0xeeee, 0xffff };
+const rgba_t c_MediumOrchid3 = { 0xb4b4, 0x5252, 0xcdcd, 0xffff };
+const rgba_t c_MediumOrchid4 = { 0x7a7a, 0x3737, 0x8b8b, 0xffff };
+const rgba_t c_DarkOrchid1 = { 0xbfbf, 0x3e3e, 0xffff, 0xffff };
+const rgba_t c_DarkOrchid2 = { 0xb2b2, 0x3a3a, 0xeeee, 0xffff };
+const rgba_t c_DarkOrchid3 = { 0x9a9a, 0x3232, 0xcdcd, 0xffff };
+const rgba_t c_DarkOrchid4 = { 0x6868, 0x2222, 0x8b8b, 0xffff };
+const rgba_t c_purple1 = { 0x9b9b, 0x3030, 0xffff, 0xffff };
+const rgba_t c_purple2 = { 0x9191, 0x2c2c, 0xeeee, 0xffff };
+const rgba_t c_purple3 = { 0x7d7d, 0x2626, 0xcdcd, 0xffff };
+const rgba_t c_purple4 = { 0x5555, 0x1a1a, 0x8b8b, 0xffff };
+const rgba_t c_MediumPurple1 = { 0xabab, 0x8282, 0xffff, 0xffff };
+const rgba_t c_MediumPurple2 = { 0x9f9f, 0x7979, 0xeeee, 0xffff };
+const rgba_t c_MediumPurple3 = { 0x8989, 0x6868, 0xcdcd, 0xffff };
+const rgba_t c_MediumPurple4 = { 0x5d5d, 0x4747, 0x8b8b, 0xffff };
+const rgba_t c_thistle1 = { 0xffff, 0xe1e1, 0xffff, 0xffff };
+const rgba_t c_thistle2 = { 0xeeee, 0xd2d2, 0xeeee, 0xffff };
+const rgba_t c_thistle3 = { 0xcdcd, 0xb5b5, 0xcdcd, 0xffff };
+const rgba_t c_thistle4 = { 0x8b8b, 0x7b7b, 0x8b8b, 0xffff };
+const rgba_t c_gray0 = { 0x0000, 0x0000, 0x0000, 0xffff };
+const rgba_t c_grey0 = { 0x0000, 0x0000, 0x0000, 0xffff };
+const rgba_t c_gray1 = { 0x0303, 0x0303, 0x0303, 0xffff };
+const rgba_t c_grey1 = { 0x0303, 0x0303, 0x0303, 0xffff };
+const rgba_t c_gray2 = { 0x0505, 0x0505, 0x0505, 0xffff };
+const rgba_t c_grey2 = { 0x0505, 0x0505, 0x0505, 0xffff };
+const rgba_t c_gray3 = { 0x0808, 0x0808, 0x0808, 0xffff };
+const rgba_t c_grey3 = { 0x0808, 0x0808, 0x0808, 0xffff };
+const rgba_t c_gray4 = { 0x0a0a, 0x0a0a, 0x0a0a, 0xffff };
+const rgba_t c_grey4 = { 0x0a0a, 0x0a0a, 0x0a0a, 0xffff };
+const rgba_t c_gray5 = { 0x0d0d, 0x0d0d, 0x0d0d, 0xffff };
+const rgba_t c_grey5 = { 0x0d0d, 0x0d0d, 0x0d0d, 0xffff };
+const rgba_t c_gray6 = { 0x0f0f, 0x0f0f, 0x0f0f, 0xffff };
+const rgba_t c_grey6 = { 0x0f0f, 0x0f0f, 0x0f0f, 0xffff };
+const rgba_t c_gray7 = { 0x1212, 0x1212, 0x1212, 0xffff };
+const rgba_t c_grey7 = { 0x1212, 0x1212, 0x1212, 0xffff };
+const rgba_t c_gray8 = { 0x1414, 0x1414, 0x1414, 0xffff };
+const rgba_t c_grey8 = { 0x1414, 0x1414, 0x1414, 0xffff };
+const rgba_t c_gray9 = { 0x1717, 0x1717, 0x1717, 0xffff };
+const rgba_t c_grey9 = { 0x1717, 0x1717, 0x1717, 0xffff };
+const rgba_t c_gray10 = { 0x1a1a, 0x1a1a, 0x1a1a, 0xffff };
+const rgba_t c_grey10 = { 0x1a1a, 0x1a1a, 0x1a1a, 0xffff };
+const rgba_t c_gray11 = { 0x1c1c, 0x1c1c, 0x1c1c, 0xffff };
+const rgba_t c_grey11 = { 0x1c1c, 0x1c1c, 0x1c1c, 0xffff };
+const rgba_t c_gray12 = { 0x1f1f, 0x1f1f, 0x1f1f, 0xffff };
+const rgba_t c_grey12 = { 0x1f1f, 0x1f1f, 0x1f1f, 0xffff };
+const rgba_t c_gray13 = { 0x2121, 0x2121, 0x2121, 0xffff };
+const rgba_t c_grey13 = { 0x2121, 0x2121, 0x2121, 0xffff };
+const rgba_t c_gray14 = { 0x2424, 0x2424, 0x2424, 0xffff };
+const rgba_t c_grey14 = { 0x2424, 0x2424, 0x2424, 0xffff };
+const rgba_t c_gray15 = { 0x2626, 0x2626, 0x2626, 0xffff };
+const rgba_t c_grey15 = { 0x2626, 0x2626, 0x2626, 0xffff };
+const rgba_t c_gray16 = { 0x2929, 0x2929, 0x2929, 0xffff };
+const rgba_t c_grey16 = { 0x2929, 0x2929, 0x2929, 0xffff };
+const rgba_t c_gray17 = { 0x2b2b, 0x2b2b, 0x2b2b, 0xffff };
+const rgba_t c_grey17 = { 0x2b2b, 0x2b2b, 0x2b2b, 0xffff };
+const rgba_t c_gray18 = { 0x2e2e, 0x2e2e, 0x2e2e, 0xffff };
+const rgba_t c_grey18 = { 0x2e2e, 0x2e2e, 0x2e2e, 0xffff };
+const rgba_t c_gray19 = { 0x3030, 0x3030, 0x3030, 0xffff };
+const rgba_t c_grey19 = { 0x3030, 0x3030, 0x3030, 0xffff };
+const rgba_t c_gray20 = { 0x3333, 0x3333, 0x3333, 0xffff };
+const rgba_t c_grey20 = { 0x3333, 0x3333, 0x3333, 0xffff };
+const rgba_t c_gray21 = { 0x3636, 0x3636, 0x3636, 0xffff };
+const rgba_t c_grey21 = { 0x3636, 0x3636, 0x3636, 0xffff };
+const rgba_t c_gray22 = { 0x3838, 0x3838, 0x3838, 0xffff };
+const rgba_t c_grey22 = { 0x3838, 0x3838, 0x3838, 0xffff };
+const rgba_t c_gray23 = { 0x3b3b, 0x3b3b, 0x3b3b, 0xffff };
+const rgba_t c_grey23 = { 0x3b3b, 0x3b3b, 0x3b3b, 0xffff };
+const rgba_t c_gray24 = { 0x3d3d, 0x3d3d, 0x3d3d, 0xffff };
+const rgba_t c_grey24 = { 0x3d3d, 0x3d3d, 0x3d3d, 0xffff };
+const rgba_t c_gray25 = { 0x4040, 0x4040, 0x4040, 0xffff };
+const rgba_t c_grey25 = { 0x4040, 0x4040, 0x4040, 0xffff };
+const rgba_t c_gray26 = { 0x4242, 0x4242, 0x4242, 0xffff };
+const rgba_t c_grey26 = { 0x4242, 0x4242, 0x4242, 0xffff };
+const rgba_t c_gray27 = { 0x4545, 0x4545, 0x4545, 0xffff };
+const rgba_t c_grey27 = { 0x4545, 0x4545, 0x4545, 0xffff };
+const rgba_t c_gray28 = { 0x4747, 0x4747, 0x4747, 0xffff };
+const rgba_t c_grey28 = { 0x4747, 0x4747, 0x4747, 0xffff };
+const rgba_t c_gray29 = { 0x4a4a, 0x4a4a, 0x4a4a, 0xffff };
+const rgba_t c_grey29 = { 0x4a4a, 0x4a4a, 0x4a4a, 0xffff };
+const rgba_t c_gray30 = { 0x4d4d, 0x4d4d, 0x4d4d, 0xffff };
+const rgba_t c_grey30 = { 0x4d4d, 0x4d4d, 0x4d4d, 0xffff };
+const rgba_t c_gray31 = { 0x4f4f, 0x4f4f, 0x4f4f, 0xffff };
+const rgba_t c_grey31 = { 0x4f4f, 0x4f4f, 0x4f4f, 0xffff };
+const rgba_t c_gray32 = { 0x5252, 0x5252, 0x5252, 0xffff };
+const rgba_t c_grey32 = { 0x5252, 0x5252, 0x5252, 0xffff };
+const rgba_t c_gray33 = { 0x5454, 0x5454, 0x5454, 0xffff };
+const rgba_t c_grey33 = { 0x5454, 0x5454, 0x5454, 0xffff };
+const rgba_t c_gray34 = { 0x5757, 0x5757, 0x5757, 0xffff };
+const rgba_t c_grey34 = { 0x5757, 0x5757, 0x5757, 0xffff };
+const rgba_t c_gray35 = { 0x5959, 0x5959, 0x5959, 0xffff };
+const rgba_t c_grey35 = { 0x5959, 0x5959, 0x5959, 0xffff };
+const rgba_t c_gray36 = { 0x5c5c, 0x5c5c, 0x5c5c, 0xffff };
+const rgba_t c_grey36 = { 0x5c5c, 0x5c5c, 0x5c5c, 0xffff };
+const rgba_t c_gray37 = { 0x5e5e, 0x5e5e, 0x5e5e, 0xffff };
+const rgba_t c_grey37 = { 0x5e5e, 0x5e5e, 0x5e5e, 0xffff };
+const rgba_t c_gray38 = { 0x6161, 0x6161, 0x6161, 0xffff };
+const rgba_t c_grey38 = { 0x6161, 0x6161, 0x6161, 0xffff };
+const rgba_t c_gray39 = { 0x6363, 0x6363, 0x6363, 0xffff };
+const rgba_t c_grey39 = { 0x6363, 0x6363, 0x6363, 0xffff };
+const rgba_t c_gray40 = { 0x6666, 0x6666, 0x6666, 0xffff };
+const rgba_t c_grey40 = { 0x6666, 0x6666, 0x6666, 0xffff };
+const rgba_t c_gray41 = { 0x6969, 0x6969, 0x6969, 0xffff };
+const rgba_t c_grey41 = { 0x6969, 0x6969, 0x6969, 0xffff };
+const rgba_t c_gray42 = { 0x6b6b, 0x6b6b, 0x6b6b, 0xffff };
+const rgba_t c_grey42 = { 0x6b6b, 0x6b6b, 0x6b6b, 0xffff };
+const rgba_t c_gray43 = { 0x6e6e, 0x6e6e, 0x6e6e, 0xffff };
+const rgba_t c_grey43 = { 0x6e6e, 0x6e6e, 0x6e6e, 0xffff };
+const rgba_t c_gray44 = { 0x7070, 0x7070, 0x7070, 0xffff };
+const rgba_t c_grey44 = { 0x7070, 0x7070, 0x7070, 0xffff };
+const rgba_t c_gray45 = { 0x7373, 0x7373, 0x7373, 0xffff };
+const rgba_t c_grey45 = { 0x7373, 0x7373, 0x7373, 0xffff };
+const rgba_t c_gray46 = { 0x7575, 0x7575, 0x7575, 0xffff };
+const rgba_t c_grey46 = { 0x7575, 0x7575, 0x7575, 0xffff };
+const rgba_t c_gray47 = { 0x7878, 0x7878, 0x7878, 0xffff };
+const rgba_t c_grey47 = { 0x7878, 0x7878, 0x7878, 0xffff };
+const rgba_t c_gray48 = { 0x7a7a, 0x7a7a, 0x7a7a, 0xffff };
+const rgba_t c_grey48 = { 0x7a7a, 0x7a7a, 0x7a7a, 0xffff };
+const rgba_t c_gray49 = { 0x7d7d, 0x7d7d, 0x7d7d, 0xffff };
+const rgba_t c_grey49 = { 0x7d7d, 0x7d7d, 0x7d7d, 0xffff };
+const rgba_t c_gray50 = { 0x7f7f, 0x7f7f, 0x7f7f, 0xffff };
+const rgba_t c_grey50 = { 0x7f7f, 0x7f7f, 0x7f7f, 0xffff };
+const rgba_t c_gray51 = { 0x8282, 0x8282, 0x8282, 0xffff };
+const rgba_t c_grey51 = { 0x8282, 0x8282, 0x8282, 0xffff };
+const rgba_t c_gray52 = { 0x8585, 0x8585, 0x8585, 0xffff };
+const rgba_t c_grey52 = { 0x8585, 0x8585, 0x8585, 0xffff };
+const rgba_t c_gray53 = { 0x8787, 0x8787, 0x8787, 0xffff };
+const rgba_t c_grey53 = { 0x8787, 0x8787, 0x8787, 0xffff };
+const rgba_t c_gray54 = { 0x8a8a, 0x8a8a, 0x8a8a, 0xffff };
+const rgba_t c_grey54 = { 0x8a8a, 0x8a8a, 0x8a8a, 0xffff };
+const rgba_t c_gray55 = { 0x8c8c, 0x8c8c, 0x8c8c, 0xffff };
+const rgba_t c_grey55 = { 0x8c8c, 0x8c8c, 0x8c8c, 0xffff };
+const rgba_t c_gray56 = { 0x8f8f, 0x8f8f, 0x8f8f, 0xffff };
+const rgba_t c_grey56 = { 0x8f8f, 0x8f8f, 0x8f8f, 0xffff };
+const rgba_t c_gray57 = { 0x9191, 0x9191, 0x9191, 0xffff };
+const rgba_t c_grey57 = { 0x9191, 0x9191, 0x9191, 0xffff };
+const rgba_t c_gray58 = { 0x9494, 0x9494, 0x9494, 0xffff };
+const rgba_t c_grey58 = { 0x9494, 0x9494, 0x9494, 0xffff };
+const rgba_t c_gray59 = { 0x9696, 0x9696, 0x9696, 0xffff };
+const rgba_t c_grey59 = { 0x9696, 0x9696, 0x9696, 0xffff };
+const rgba_t c_gray60 = { 0x9999, 0x9999, 0x9999, 0xffff };
+const rgba_t c_grey60 = { 0x9999, 0x9999, 0x9999, 0xffff };
+const rgba_t c_gray61 = { 0x9c9c, 0x9c9c, 0x9c9c, 0xffff };
+const rgba_t c_grey61 = { 0x9c9c, 0x9c9c, 0x9c9c, 0xffff };
+const rgba_t c_gray62 = { 0x9e9e, 0x9e9e, 0x9e9e, 0xffff };
+const rgba_t c_grey62 = { 0x9e9e, 0x9e9e, 0x9e9e, 0xffff };
+const rgba_t c_gray63 = { 0xa1a1, 0xa1a1, 0xa1a1, 0xffff };
+const rgba_t c_grey63 = { 0xa1a1, 0xa1a1, 0xa1a1, 0xffff };
+const rgba_t c_gray64 = { 0xa3a3, 0xa3a3, 0xa3a3, 0xffff };
+const rgba_t c_grey64 = { 0xa3a3, 0xa3a3, 0xa3a3, 0xffff };
+const rgba_t c_gray65 = { 0xa6a6, 0xa6a6, 0xa6a6, 0xffff };
+const rgba_t c_grey65 = { 0xa6a6, 0xa6a6, 0xa6a6, 0xffff };
+const rgba_t c_gray66 = { 0xa8a8, 0xa8a8, 0xa8a8, 0xffff };
+const rgba_t c_grey66 = { 0xa8a8, 0xa8a8, 0xa8a8, 0xffff };
+const rgba_t c_gray67 = { 0xabab, 0xabab, 0xabab, 0xffff };
+const rgba_t c_grey67 = { 0xabab, 0xabab, 0xabab, 0xffff };
+const rgba_t c_gray68 = { 0xadad, 0xadad, 0xadad, 0xffff };
+const rgba_t c_grey68 = { 0xadad, 0xadad, 0xadad, 0xffff };
+const rgba_t c_gray69 = { 0xb0b0, 0xb0b0, 0xb0b0, 0xffff };
+const rgba_t c_grey69 = { 0xb0b0, 0xb0b0, 0xb0b0, 0xffff };
+const rgba_t c_gray70 = { 0xb3b3, 0xb3b3, 0xb3b3, 0xffff };
+const rgba_t c_grey70 = { 0xb3b3, 0xb3b3, 0xb3b3, 0xffff };
+const rgba_t c_gray71 = { 0xb5b5, 0xb5b5, 0xb5b5, 0xffff };
+const rgba_t c_grey71 = { 0xb5b5, 0xb5b5, 0xb5b5, 0xffff };
+const rgba_t c_gray72 = { 0xb8b8, 0xb8b8, 0xb8b8, 0xffff };
+const rgba_t c_grey72 = { 0xb8b8, 0xb8b8, 0xb8b8, 0xffff };
+const rgba_t c_gray73 = { 0xbaba, 0xbaba, 0xbaba, 0xffff };
+const rgba_t c_grey73 = { 0xbaba, 0xbaba, 0xbaba, 0xffff };
+const rgba_t c_gray74 = { 0xbdbd, 0xbdbd, 0xbdbd, 0xffff };
+const rgba_t c_grey74 = { 0xbdbd, 0xbdbd, 0xbdbd, 0xffff };
+const rgba_t c_gray75 = { 0xbfbf, 0xbfbf, 0xbfbf, 0xffff };
+const rgba_t c_grey75 = { 0xbfbf, 0xbfbf, 0xbfbf, 0xffff };
+const rgba_t c_gray76 = { 0xc2c2, 0xc2c2, 0xc2c2, 0xffff };
+const rgba_t c_grey76 = { 0xc2c2, 0xc2c2, 0xc2c2, 0xffff };
+const rgba_t c_gray77 = { 0xc4c4, 0xc4c4, 0xc4c4, 0xffff };
+const rgba_t c_grey77 = { 0xc4c4, 0xc4c4, 0xc4c4, 0xffff };
+const rgba_t c_gray78 = { 0xc7c7, 0xc7c7, 0xc7c7, 0xffff };
+const rgba_t c_grey78 = { 0xc7c7, 0xc7c7, 0xc7c7, 0xffff };
+const rgba_t c_gray79 = { 0xc9c9, 0xc9c9, 0xc9c9, 0xffff };
+const rgba_t c_grey79 = { 0xc9c9, 0xc9c9, 0xc9c9, 0xffff };
+const rgba_t c_gray80 = { 0xcccc, 0xcccc, 0xcccc, 0xffff };
+const rgba_t c_grey80 = { 0xcccc, 0xcccc, 0xcccc, 0xffff };
+const rgba_t c_gray81 = { 0xcfcf, 0xcfcf, 0xcfcf, 0xffff };
+const rgba_t c_grey81 = { 0xcfcf, 0xcfcf, 0xcfcf, 0xffff };
+const rgba_t c_gray82 = { 0xd1d1, 0xd1d1, 0xd1d1, 0xffff };
+const rgba_t c_grey82 = { 0xd1d1, 0xd1d1, 0xd1d1, 0xffff };
+const rgba_t c_gray83 = { 0xd4d4, 0xd4d4, 0xd4d4, 0xffff };
+const rgba_t c_grey83 = { 0xd4d4, 0xd4d4, 0xd4d4, 0xffff };
+const rgba_t c_gray84 = { 0xd6d6, 0xd6d6, 0xd6d6, 0xffff };
+const rgba_t c_grey84 = { 0xd6d6, 0xd6d6, 0xd6d6, 0xffff };
+const rgba_t c_gray85 = { 0xd9d9, 0xd9d9, 0xd9d9, 0xffff };
+const rgba_t c_grey85 = { 0xd9d9, 0xd9d9, 0xd9d9, 0xffff };
+const rgba_t c_gray86 = { 0xdbdb, 0xdbdb, 0xdbdb, 0xffff };
+const rgba_t c_grey86 = { 0xdbdb, 0xdbdb, 0xdbdb, 0xffff };
+const rgba_t c_gray87 = { 0xdede, 0xdede, 0xdede, 0xffff };
+const rgba_t c_grey87 = { 0xdede, 0xdede, 0xdede, 0xffff };
+const rgba_t c_gray88 = { 0xe0e0, 0xe0e0, 0xe0e0, 0xffff };
+const rgba_t c_grey88 = { 0xe0e0, 0xe0e0, 0xe0e0, 0xffff };
+const rgba_t c_gray89 = { 0xe3e3, 0xe3e3, 0xe3e3, 0xffff };
+const rgba_t c_grey89 = { 0xe3e3, 0xe3e3, 0xe3e3, 0xffff };
+const rgba_t c_gray90 = { 0xe5e5, 0xe5e5, 0xe5e5, 0xffff };
+const rgba_t c_grey90 = { 0xe5e5, 0xe5e5, 0xe5e5, 0xffff };
+const rgba_t c_gray91 = { 0xe8e8, 0xe8e8, 0xe8e8, 0xffff };
+const rgba_t c_grey91 = { 0xe8e8, 0xe8e8, 0xe8e8, 0xffff };
+const rgba_t c_gray92 = { 0xebeb, 0xebeb, 0xebeb, 0xffff };
+const rgba_t c_grey92 = { 0xebeb, 0xebeb, 0xebeb, 0xffff };
+const rgba_t c_gray93 = { 0xeded, 0xeded, 0xeded, 0xffff };
+const rgba_t c_grey93 = { 0xeded, 0xeded, 0xeded, 0xffff };
+const rgba_t c_gray94 = { 0xf0f0, 0xf0f0, 0xf0f0, 0xffff };
+const rgba_t c_grey94 = { 0xf0f0, 0xf0f0, 0xf0f0, 0xffff };
+const rgba_t c_gray95 = { 0xf2f2, 0xf2f2, 0xf2f2, 0xffff };
+const rgba_t c_grey95 = { 0xf2f2, 0xf2f2, 0xf2f2, 0xffff };
+const rgba_t c_gray96 = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
+const rgba_t c_grey96 = { 0xf5f5, 0xf5f5, 0xf5f5, 0xffff };
+const rgba_t c_gray97 = { 0xf7f7, 0xf7f7, 0xf7f7, 0xffff };
+const rgba_t c_grey97 = { 0xf7f7, 0xf7f7, 0xf7f7, 0xffff };
+const rgba_t c_gray98 = { 0xfafa, 0xfafa, 0xfafa, 0xffff };
+const rgba_t c_grey98 = { 0xfafa, 0xfafa, 0xfafa, 0xffff };
+const rgba_t c_gray99 = { 0xfcfc, 0xfcfc, 0xfcfc, 0xffff };
+const rgba_t c_grey99 = { 0xfcfc, 0xfcfc, 0xfcfc, 0xffff };
+const rgba_t c_gray100 = { 0xffff, 0xffff, 0xffff, 0xffff };
+const rgba_t c_grey100 = { 0xffff, 0xffff, 0xffff, 0xffff };
+const rgba_t c_dark_grey = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
+const rgba_t c_DarkGrey = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
+const rgba_t c_dark_gray = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
+const rgba_t c_DarkGray = { 0xa9a9, 0xa9a9, 0xa9a9, 0xffff };
+const rgba_t c_dark_blue = { 0x0000, 0x0000, 0x8b8b, 0xffff };
+const rgba_t c_DarkBlue = { 0x0000, 0x0000, 0x8b8b, 0xffff };
+const rgba_t c_dark_cyan = { 0x0000, 0x8b8b, 0x8b8b, 0xffff };
+const rgba_t c_DarkCyan = { 0x0000, 0x8b8b, 0x8b8b, 0xffff };
+const rgba_t c_dark_magenta = { 0x8b8b, 0x0000, 0x8b8b, 0xffff };
+const rgba_t c_DarkMagenta = { 0x8b8b, 0x0000, 0x8b8b, 0xffff };
+const rgba_t c_dark_red = { 0x8b8b, 0x0000, 0x0000, 0xffff };
+const rgba_t c_DarkRed = { 0x8b8b, 0x0000, 0x0000, 0xffff };
+const rgba_t c_light_green = { 0x9090, 0xeeee, 0x9090, 0xffff };
+const rgba_t c_LightGreen = { 0x9090, 0xeeee, 0x9090, 0xffff };
+
+
+ /*
+ * Calculate a weighted difference between two colors
+ */
+
+u32 color_error(const rgba_t *a, const rgba_t *b)
+{
+ u32 error = abs(a->r-b->r)+abs(a->g-b->g)+abs(a->b-b->b);
+ return RGB_WEIGHT*error+abs(a->a-b->a);
+}
+
+
+ /*
+ * Add two colors: a = b+c
+ */
+
+void color_add(rgba_t *a, const rgba_t *b, const rgba_t *c)
+{
+ a->r = b->r+c->r;
+ a->g = b->g+c->g;
+ a->b = b->b+c->b;
+ a->a = b->a+c->a;
+}
+
+
+ /*
+ * Subtract two colors: a = b-c
+ */
+
+void color_sub(rgba_t *a, const rgba_t *b, const rgba_t *c)
+{
+ a->r = b->r-c->r;
+ a->g = b->g-c->g;
+ a->b = b->b-c->b;
+ a->a = b->a-c->a;
+}
+
+
+ /*
+ * Find the index of the closest color in a CLUT
+ */
+
+u32 color_find(const rgba_t *color, const rgba_t *clut, u32 clut_size)
+{
+ u32 idx, best_idx, error, best_error;
+
+ best_idx = 0;
+ best_error = color_error(&clut[0], color);
+ for (idx = 1; idx < clut_size; idx++) {
+ error = color_error(&clut[idx], color);
+ if (error < best_error) {
+ best_idx = idx;
+ best_error = error;
+ }
+ }
+ return best_idx;
+}
+
+
+ /*
+ * RGB/YUV conversions
+ */
+
+/* Fast saturation from Imlib2 */
+#define SATURATE_BOTH(out, in) \
+ do { \
+ unsigned int tmp = (in); \
+ out = (tmp | (-(tmp >> 8))) & (~(tmp >> 9)); \
+ } while (0)
+
+void yuva_to_rgba(const yuva_t *yuva, rgba_t *rgba)
+{
+ u8 y, u, v, r, g, b;
+
+ /* The actual conversion is done in 8 bit */
+ y = yuva->y >> 8;
+ u = yuva->u >> 8;
+ v = yuva->v >> 8;
+
+ /* YUV to RGB */
+ SATURATE_BOTH(r, (298*(y-16)+409*(v-128))/256);
+ SATURATE_BOTH(g, (298*(y-16)-100*(u-128)-208*(v-128))/256);
+ SATURATE_BOTH(b, (298*(y-16)+516*(u-128))/256);
+
+ /* Expand to 16 bit */
+ rgba->r = (r << 8) | r;
+ rgba->g = (g << 8) | g;
+ rgba->b = (b << 8) | b;
+
+ rgba->a = yuva->a;
+}
+
+void rgba_to_yuva(const rgba_t *rgba, yuva_t *yuva)
+{
+ int r, g, b, y, u, v;
+
+ /* The actual conversion is done in 8 bit */
+ r = rgba->r >> 8;
+ g = rgba->g >> 8;
+ b = rgba->b >> 8;
+
+ /* RGB to YUV */
+ SATURATE_BOTH(y, ((66*r+129*g+25*b)/256)+16);
+ SATURATE_BOTH(u, (128*256-38*r-74*g+112*b)/256);
+ SATURATE_BOTH(v, (128*256+112*r-94*g-18*b)/256);
+
+ /* Expand to 16 bit */
+ yuva->y = (y << 8) | y;
+ yuva->u = (u << 8) | u;
+ yuva->v = (v << 8) | v;
+
+ yuva->a = rgba->a;
+}
+
diff --git a/colormap.c b/colormap.c
new file mode 100644
index 0000000..2bc4404
--- /dev/null
+++ b/colormap.c
@@ -0,0 +1,85 @@
+
+/*
+ * Colormap manipulation
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "types.h"
+#include "color.h"
+#include "colormap.h"
+#include "fb.h"
+
+
+ /*
+ * Clear the colormap
+ */
+
+#define CLEAR_COMPONENT(name) \
+ do { \
+ memset(fb_cmap.name, 0, fb_cmap.len*sizeof(u16)); \
+ } while (0)
+
+void cmap_clear(void)
+{
+ CLEAR_COMPONENT(red);
+ CLEAR_COMPONENT(green);
+ CLEAR_COMPONENT(blue);
+ if (fb_cmap.transp)
+ CLEAR_COMPONENT(transp);
+}
+
+#undef CLEAR_COMPONENT
+
+
+ /*
+ * Initialization
+ */
+
+#define ALLOC_COMPONENT(name, len) \
+ do { \
+ fb_cmap.name = malloc(len*sizeof(u16)); \
+ } while (0)
+
+void cmap_init(u32 len)
+{
+ ALLOC_COMPONENT(red, len);
+ ALLOC_COMPONENT(green, len);
+ ALLOC_COMPONENT(blue, len);
+ ALLOC_COMPONENT(transp, len);
+ fb_cmap.start = 0;
+ fb_cmap.len = len;
+}
+
+#undef ALLOC_COMPONENT
+
+
+ /*
+ * Clean up
+ */
+
+#define FREE_COMPONENT(name) \
+ do { \
+ free(fb_cmap.name); \
+ fb_cmap.name = NULL; \
+ } while (0)
+
+void cmap_cleanup(void)
+{
+ FREE_COMPONENT(red);
+ FREE_COMPONENT(green);
+ FREE_COMPONENT(blue);
+ FREE_COMPONENT(transp);
+ fb_cmap.start = 0;
+ fb_cmap.len = 0;
+}
+
+#undef FREE_COMPONENT
+
diff --git a/console.c b/console.c
new file mode 100644
index 0000000..0ed858e
--- /dev/null
+++ b/console.c
@@ -0,0 +1,226 @@
+
+/*
+ * Simple text console
+ *
+ * (C) Copyright 2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "types.h"
+#include "font.h"
+#include "console.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "clut.h"
+#include "util.h"
+
+
+#define PRINTF_BUFFER_SIZE 1024
+#define BITMAP_SIZE 1024
+
+static char printf_buffer[PRINTF_BUFFER_SIZE];
+
+static const struct font *con_font;
+static unsigned int con_pitch, con_charsize;
+static unsigned int con_cols, con_rows;
+static unsigned int con_x, con_y;
+static pixel_t con_fgcolor, con_bgcolor;
+
+static unsigned char bitmap[BITMAP_SIZE];
+static unsigned int bitmap_width, bitmap_pitch, bitmap_max_width;
+static unsigned int bitmap_x;
+
+static void con_flush(void)
+{
+ if (bitmap_width) {
+ expand_bitmap(bitmap_x*con_font->width, con_y*con_font->height,
+ bitmap_width, con_font->height, (const u8 *)bitmap,
+ bitmap_pitch, con_bgcolor, con_fgcolor);
+ bitmap_width = 0;
+ }
+}
+
+static void con_clear(void)
+{
+ con_flush();
+ fill_rect(0, 0, con_cols*con_font->width, con_rows*con_font->height,
+ con_bgcolor);
+}
+
+static void con_reset(void)
+{
+ con_flush();
+
+ con_x = 0;
+ con_y = 0;
+ con_fgcolor = idx_pixel[7];
+ con_bgcolor = idx_pixel[0];
+
+ con_clear();
+}
+
+
+static void con_scrollup(void)
+{
+ con_flush();
+ copy_rect(0, 0, con_cols*con_font->width, (con_rows-1)*con_font->height,
+ 0, con_font->height);
+ fill_rect(0, (con_rows-1)*con_font->height, con_cols*con_font->width,
+ con_font->height, con_bgcolor);
+}
+
+
+void con_init(const struct font *font)
+{
+ int i;
+
+ fill_rect(0, 0, fb_var.xres, fb_var.yres, 0);
+
+ con_font = font;
+ con_pitch = (font->width+7)/8;
+ con_charsize = con_pitch*font->height;
+
+ con_cols = fb_var.xres/font->width;
+ con_rows = fb_var.yres/font->height;
+
+ for (i = 0; i < 16; i++)
+ clut[i] = clut_console[i];
+ clut_update();
+
+ bitmap_pitch = (sizeof(bitmap)/(font->height*sizeof(unsigned long)))*
+ sizeof(unsigned long);
+ bitmap_max_width = bitmap_pitch*8;
+ bitmap_width = 0;
+ bitmap_x = 0;
+
+ con_reset();
+}
+
+static void con_newline(void)
+{
+ con_flush();
+ con_x = 0;
+ con_y++;
+ if (con_y == con_rows) {
+ con_y--;
+ con_scrollup();
+ }
+}
+
+static void con_store_char(unsigned char c)
+{
+ const unsigned char *src;
+ unsigned char *dst;
+ int y;
+
+ if (bitmap_width+con_font->width > bitmap_max_width)
+ con_flush();
+ if (!bitmap_width)
+ bitmap_x = con_x;
+ src = con_font->data+c*con_charsize;
+ switch (con_font->width) {
+ case 4:
+ dst = bitmap+bitmap_width/8;
+ if (bitmap_width & 4) {
+ for (y = 0; y < con_font->height; y++) {
+ *dst |= *src++ & 0x0f;
+ dst += bitmap_pitch;
+ }
+ } else {
+ for (y = 0; y < con_font->height; y++) {
+ *dst = *src++ & 0xf0;
+ dst += bitmap_pitch;
+ }
+ }
+ break;
+
+ case 8:
+ dst = bitmap+bitmap_width/8;
+ for (y = 0; y < con_font->height; y++) {
+ *dst = *src++;
+ dst += bitmap_pitch;
+ }
+ break;
+
+ case 12:
+ dst = bitmap+bitmap_width/8;
+ if (bitmap_width & 4) {
+ for (y = 0; y < con_font->height; y++) {
+ unsigned char d = *src++;
+ dst[0] |= d >> 4;
+ dst[1] = d << 4 | *src++ >> 4;
+ dst += bitmap_pitch;
+ }
+ } else {
+ for (y = 0; y < con_font->height; y++) {
+ dst[0] = *src++;
+ dst[1] = *src++ & 0xf0;
+ dst += bitmap_pitch;
+ }
+ }
+ break;
+
+ case 16:
+ dst = bitmap+bitmap_width/8;
+ for (y = 0; y < con_font->height; y++) {
+ dst[0] = *src++;
+ dst[1] = *src++;
+ dst += bitmap_pitch;
+ }
+ break;
+
+ default:
+ Fatal("Fontwidth %d is not yet supported\n", con_font->width);
+ }
+ bitmap_width += con_font->width;
+}
+
+static void con_do_putc(unsigned char c)
+{
+ switch (c) {
+ case '\n':
+ con_newline();
+ break;
+
+ default:
+ con_store_char(c);
+ con_x++;
+ if (con_x == con_cols)
+ con_newline();
+ break;
+ }
+}
+
+void con_putc(char c)
+{
+ con_do_putc(c);
+ con_flush();
+}
+
+void con_puts(const char *s)
+{
+ unsigned char c;
+
+ while ((c = *s++))
+ con_do_putc(c);
+ con_flush();
+}
+
+
+void con_printf(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ vsnprintf(printf_buffer, sizeof(printf_buffer), fmt, ap);
+ va_end(ap);
+ con_puts(printf_buffer);
+}
+
diff --git a/drawops/Makefile b/drawops/Makefile
new file mode 100644
index 0000000..dc9ec21
--- /dev/null
+++ b/drawops/Makefile
@@ -0,0 +1,7 @@
+
+TOPDIR = ..
+
+O_TARGET = drawops.o
+
+include $(TOPDIR)/Rules.make
+
diff --git a/drawops/bitstream.c b/drawops/bitstream.c
new file mode 100644
index 0000000..b3e0933
--- /dev/null
+++ b/drawops/bitstream.c
@@ -0,0 +1,564 @@
+
+/*
+ * Bitstream operations
+ *
+ * (C) Copyright 2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "bitstream.h"
+#include "fb.h"
+
+
+ /*
+ * Compose two values, using a bitmask as decision value
+ * This is equivalent to (a & mask) | (b & ~mask)
+ */
+
+static inline unsigned long comp(unsigned long a, unsigned long b,
+ unsigned long mask)
+{
+ return ((a ^ b) & mask) ^ b;
+}
+
+
+ /*
+ * Unaligned forward bit copy using 32-bit or 64-bit memory accesses
+ */
+
+void bitcpy(unsigned long *dst, int dst_idx, const unsigned long *src,
+ int src_idx, u32 n)
+{
+ unsigned long first, last;
+ int shift = dst_idx-src_idx, left, right;
+ unsigned long d0, d1;
+ int m;
+
+ if (!n)
+ return;
+
+ shift = dst_idx-src_idx;
+ first = ~0UL >> dst_idx;
+ last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG));
+
+ if (!shift) {
+ // Same alignment for source and dest
+
+ if (dst_idx+n <= BITS_PER_LONG) {
+ // Single word
+ if (last)
+ first &= last;
+ *dst = comp(*src, *dst, first);
+ } else {
+ // Multiple destination words
+ // Leading bits
+ if (first) {
+ *dst = comp(*src, *dst, first);
+ dst++;
+ src++;
+ n -= BITS_PER_LONG-dst_idx;
+ }
+
+ // Main chunk
+ n /= BITS_PER_LONG;
+ while (n >= 8) {
+ *dst++ = *src++;
+ *dst++ = *src++;
+ *dst++ = *src++;
+ *dst++ = *src++;
+ *dst++ = *src++;
+ *dst++ = *src++;
+ *dst++ = *src++;
+ *dst++ = *src++;
+ n -= 8;
+ }
+ while (n--)
+ *dst++ = *src++;
+
+ // Trailing bits
+ if (last)
+ *dst = comp(*src, *dst, last);
+ }
+ } else {
+ // Different alignment for source and dest
+
+ right = shift & (BITS_PER_LONG-1);
+ left = -shift & (BITS_PER_LONG-1);
+
+ if (dst_idx+n <= BITS_PER_LONG) {
+ // Single destination word
+ if (last)
+ first &= last;
+ if (shift > 0) {
+ // Single source word
+ *dst = comp(*src >> right, *dst, first);
+ } else if (src_idx+n <= BITS_PER_LONG) {
+ // Single source word
+ *dst = comp(*src << left, *dst, first);
+ } else {
+ // 2 source words
+ d0 = *src++;
+ d1 = *src;
+ *dst = comp(d0 << left | d1 >> right, *dst, first);
+ }
+ } else {
+ // Multiple destination words
+ d0 = *src++;
+ // Leading bits
+ if (shift > 0) {
+ // Single source word
+ *dst = comp(d0 >> right, *dst, first);
+ dst++;
+ n -= BITS_PER_LONG-dst_idx;
+ } else {
+ // 2 source words
+ d1 = *src++;
+ *dst = comp(d0 << left | d1 >> right, *dst, first);
+ d0 = d1;
+ dst++;
+ n -= BITS_PER_LONG-dst_idx;
+ }
+
+ // Main chunk
+ m = n % BITS_PER_LONG;
+ n /= BITS_PER_LONG;
+ while (n >= 4) {
+ d1 = *src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ d1 = *src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ d1 = *src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ d1 = *src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ n -= 4;
+ }
+ while (n--) {
+ d1 = *src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ }
+
+ // Trailing bits
+ if (last) {
+ if (m <= right) {
+ // Single source word
+ *dst = comp(d0 << left, *dst, last);
+ } else {
+ // 2 source words
+ d1 = *src;
+ *dst = comp(d0 << left | d1 >> right, *dst, last);
+ }
+ }
+ }
+ }
+}
+
+
+ /*
+ * Unaligned reverse bit copy using 32-bit or 64-bit memory accesses
+ */
+
+void bitcpy_rev(unsigned long *dst, int dst_idx, const unsigned long *src,
+ int src_idx, u32 n)
+{
+ unsigned long first, last;
+ int shift = dst_idx-src_idx, left, right;
+ unsigned long d0, d1;
+ int m;
+
+ if (!n)
+ return;
+
+ dst += (n-1)/BITS_PER_LONG;
+ src += (n-1)/BITS_PER_LONG;
+ if ((n-1) % BITS_PER_LONG) {
+ dst_idx += (n-1) % BITS_PER_LONG;
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= BITS_PER_LONG-1;
+ src_idx += (n-1) % BITS_PER_LONG;
+ src += src_idx >> SHIFT_PER_LONG;
+ src_idx &= BITS_PER_LONG-1;
+ }
+
+ shift = dst_idx-src_idx;
+ first = ~0UL << (BITS_PER_LONG-1-dst_idx);
+ last = ~(~0UL << (BITS_PER_LONG-1-((dst_idx-n) % BITS_PER_LONG)));
+
+ if (!shift) {
+ // Same alignment for source and dest
+
+ if ((unsigned long)dst_idx+1 >= n) {
+ // Single word
+ if (last)
+ first &= last;
+ *dst = comp(*src, *dst, first);
+ } else {
+ // Multiple destination words
+ // Leading bits
+ if (first) {
+ *dst = comp(*src, *dst, first);
+ dst--;
+ src--;
+ n -= dst_idx+1;
+ }
+
+ // Main chunk
+ n /= BITS_PER_LONG;
+ while (n >= 8) {
+ *dst-- = *src--;
+ *dst-- = *src--;
+ *dst-- = *src--;
+ *dst-- = *src--;
+ *dst-- = *src--;
+ *dst-- = *src--;
+ *dst-- = *src--;
+ *dst-- = *src--;
+ n -= 8;
+ }
+ while (n--)
+ *dst-- = *src--;
+
+ // Trailing bits
+ if (last)
+ *dst = comp(*src, *dst, last);
+ }
+ } else {
+ // Different alignment for source and dest
+
+ right = shift & (BITS_PER_LONG-1);
+ left = -shift & (BITS_PER_LONG-1);
+
+ if ((unsigned long)dst_idx+1 >= n) {
+ // Single destination word
+ if (last)
+ first &= last;
+ if (shift < 0) {
+ // Single source word
+ *dst = comp(*src << left, *dst, first);
+ } else if (1+(unsigned long)src_idx >= n) {
+ // Single source word
+ *dst = comp(*src >> right, *dst, first);
+ } else {
+ // 2 source words
+ d0 = *src--;
+ d1 = *src;
+ *dst = comp(d0 >> right | d1 << left, *dst, first);
+ }
+ } else {
+ // Multiple destination words
+ d0 = *src--;
+ // Leading bits
+ if (shift < 0) {
+ // Single source word
+ *dst = comp(d0 << left, *dst, first);
+ dst--;
+ n -= dst_idx+1;
+ } else {
+ // 2 source words
+ d1 = *src--;
+ *dst = comp(d0 >> right | d1 << left, *dst, first);
+ d0 = d1;
+ dst--;
+ n -= dst_idx+1;
+ }
+
+ // Main chunk
+ m = n % BITS_PER_LONG;
+ n /= BITS_PER_LONG;
+ while (n >= 4) {
+ d1 = *src--;
+ *dst-- = d0 >> right | d1 << left;
+ d0 = d1;
+ d1 = *src--;
+ *dst-- = d0 >> right | d1 << left;
+ d0 = d1;
+ d1 = *src--;
+ *dst-- = d0 >> right | d1 << left;
+ d0 = d1;
+ d1 = *src--;
+ *dst-- = d0 >> right | d1 << left;
+ d0 = d1;
+ n -= 4;
+ }
+ while (n--) {
+ d1 = *src--;
+ *dst-- = d0 >> right | d1 << left;
+ d0 = d1;
+ }
+
+ // Trailing bits
+ if (last) {
+ if (m <= left) {
+ // Single source word
+ *dst = comp(d0 >> right, *dst, last);
+ } else {
+ // 2 source words
+ d1 = *src;
+ *dst = comp(d0 >> right | d1 << left, *dst, last);
+ }
+ }
+ }
+ }
+}
+
+
+ /*
+ * Unaligned forward inverting bit copy using 32-bit or 64-bit memory
+ * accesses
+ */
+
+void bitcpy_not(unsigned long *dst, int dst_idx, const unsigned long *src,
+ int src_idx, u32 n)
+{
+ unsigned long first, last;
+ int shift = dst_idx-src_idx, left, right;
+ unsigned long d0, d1;
+ int m;
+
+ if (!n)
+ return;
+
+ shift = dst_idx-src_idx;
+ first = ~0UL >> dst_idx;
+ last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG));
+
+ if (!shift) {
+ // Same alignment for source and dest
+
+ if (dst_idx+n <= BITS_PER_LONG) {
+ // Single word
+ if (last)
+ first &= last;
+ *dst = comp(~*src, *dst, first);
+ } else {
+ // Multiple destination words
+ // Leading bits
+ if (first) {
+ *dst = comp(~*src, *dst, first);
+ dst++;
+ src++;
+ n -= BITS_PER_LONG-dst_idx;
+ }
+
+ // Main chunk
+ n /= BITS_PER_LONG;
+ while (n >= 8) {
+ *dst++ = ~*src++;
+ *dst++ = ~*src++;
+ *dst++ = ~*src++;
+ *dst++ = ~*src++;
+ *dst++ = ~*src++;
+ *dst++ = ~*src++;
+ *dst++ = ~*src++;
+ *dst++ = ~*src++;
+ n -= 8;
+ }
+ while (n--)
+ *dst++ = ~*src++;
+
+ // Trailing bits
+ if (last)
+ *dst = comp(~*src, *dst, last);
+ }
+ } else {
+ // Different alignment for source and dest
+
+ right = shift & (BITS_PER_LONG-1);
+ left = -shift & (BITS_PER_LONG-1);
+
+ if (dst_idx+n <= BITS_PER_LONG) {
+ // Single destination word
+ if (last)
+ first &= last;
+ if (shift > 0) {
+ // Single source word
+ *dst = comp(~*src >> right, *dst, first);
+ } else if (src_idx+n <= BITS_PER_LONG) {
+ // Single source word
+ *dst = comp(~*src << left, *dst, first);
+ } else {
+ // 2 source words
+ d0 = ~*src++;
+ d1 = ~*src;
+ *dst = comp(d0 << left | d1 >> right, *dst, first);
+ }
+ } else {
+ // Multiple destination words
+ d0 = ~*src++;
+ // Leading bits
+ if (shift > 0) {
+ // Single source word
+ *dst = comp(d0 >> right, *dst, first);
+ dst++;
+ n -= BITS_PER_LONG-dst_idx;
+ } else {
+ // 2 source words
+ d1 = ~*src++;
+ *dst = comp(d0 << left | d1 >> right, *dst, first);
+ d0 = d1;
+ dst++;
+ n -= BITS_PER_LONG-dst_idx;
+ }
+
+ // Main chunk
+ m = n % BITS_PER_LONG;
+ n /= BITS_PER_LONG;
+ while (n >= 4) {
+ d1 = ~*src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ d1 = ~*src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ d1 = ~*src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ d1 = ~*src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ n -= 4;
+ }
+ while (n--) {
+ d1 = ~*src++;
+ *dst++ = d0 << left | d1 >> right;
+ d0 = d1;
+ }
+
+ // Trailing bits
+ if (last) {
+ if (m <= right) {
+ // Single source word
+ *dst = comp(d0 << left, *dst, last);
+ } else {
+ // 2 source words
+ d1 = ~*src;
+ *dst = comp(d0 << left | d1 >> right, *dst, last);
+ }
+ }
+ }
+ }
+}
+
+
+ /*
+ * Unaligned 32-bit pattern fill using 32/64-bit memory accesses
+ */
+
+void bitfill32(unsigned long *dst, int dst_idx, u32 pat, u32 n)
+{
+ unsigned long val = pat;
+ unsigned long first, last;
+
+ if (!n)
+ return;
+
+#if BITS_PER_LONG == 64
+ val |= val << 32;
+#endif
+
+ first = ~0UL >> dst_idx;
+ last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG));
+
+ if (dst_idx+n <= BITS_PER_LONG) {
+ // Single word
+ if (last)
+ first &= last;
+ *dst = comp(val, *dst, first);
+ } else {
+ // Multiple destination words
+ // Leading bits
+ if (first) {
+ *dst = comp(val, *dst, first);
+ dst++;
+ n -= BITS_PER_LONG-dst_idx;
+ }
+
+ // Main chunk
+ n /= BITS_PER_LONG;
+ while (n >= 8) {
+ *dst++ = val;
+ *dst++ = val;
+ *dst++ = val;
+ *dst++ = val;
+ *dst++ = val;
+ *dst++ = val;
+ *dst++ = val;
+ *dst++ = val;
+ n -= 8;
+ }
+ while (n--)
+ *dst++ = val;
+
+ // Trailing bits
+ if (last)
+ *dst = comp(val, *dst, last);
+ }
+}
+
+
+ /*
+ * Unaligned generic pattern fill using 32/64-bit memory accesses
+ * The pattern must have been expanded to a full 32/64-bit value
+ * Left/right are the appropriate shifts to convert to the pattern to be
+ * used for the next 32/64-bit word
+ */
+
+void bitfill(unsigned long *dst, int dst_idx, unsigned long pat, int left,
+ int right, u32 n)
+{
+ unsigned long first, last;
+
+ if (!n)
+ return;
+
+ first = ~0UL >> dst_idx;
+ last = ~(~0UL >> ((dst_idx+n) % BITS_PER_LONG));
+
+ if (dst_idx+n <= BITS_PER_LONG) {
+ // Single word
+ if (last)
+ first &= last;
+ *dst = comp(pat, *dst, first);
+ } else {
+ // Multiple destination words
+ // Leading bits
+ if (first) {
+ *dst = comp(pat, *dst, first);
+ dst++;
+ pat = pat << left | pat >> right;
+ n -= BITS_PER_LONG-dst_idx;
+ }
+
+ // Main chunk
+ n /= BITS_PER_LONG;
+ while (n >= 4) {
+ *dst++ = pat;
+ pat = pat << left | pat >> right;
+ *dst++ = pat;
+ pat = pat << left | pat >> right;
+ *dst++ = pat;
+ pat = pat << left | pat >> right;
+ *dst++ = pat;
+ pat = pat << left | pat >> right;
+ n -= 4;
+ }
+ while (n--) {
+ *dst++ = pat;
+ pat = pat << left | pat >> right;
+ }
+
+ // Trailing bits
+ if (last)
+ *dst = comp(pat, *dst, last);
+ }
+}
+
diff --git a/drawops/cfb.c b/drawops/cfb.c
new file mode 100644
index 0000000..ab13e0c
--- /dev/null
+++ b/drawops/cfb.c
@@ -0,0 +1,198 @@
+/*
+ * Generic low-level drawing operations for a cfb frame buffer
+ *
+ * (C) Copyright 2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "bitstream.h"
+#include "fb.h"
+
+
+#define EXP1(x) 0xffffffffU*x
+#define EXP2(x) 0x55555555U*x
+#define EXP4(x) 0x11111111U*0x ## x
+
+static const u32 bpp1tab[2] = {
+ EXP1(0), EXP1(1)
+};
+
+static const u32 bpp2tab[4] = {
+ EXP2(0), EXP2(1), EXP2(2), EXP2(3)
+};
+
+static const u32 bpp4tab[16] = {
+ EXP4(0), EXP4(1), EXP4(2), EXP4(3), EXP4(4), EXP4(5), EXP4(6), EXP4(7),
+ EXP4(8), EXP4(9), EXP4(a), EXP4(b), EXP4(c), EXP4(d), EXP4(e), EXP4(f)
+};
+
+
+static u32 next_line;
+
+int cfb_init(void)
+{
+ if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel > 32)
+ return 0;
+
+ next_line =
+ fb_fix.line_length ? fb_fix.line_length
+ : fb_var.xres_virtual*8/fb_var.bits_per_pixel;
+ return 1;
+}
+
+
+ /*
+ * Expand a pixel value to a 32-bit pattern
+ */
+
+static inline u32 pixel_to_pat32(pixel_t pixel)
+{
+ u32 pat = pixel;
+
+ switch (fb_var.bits_per_pixel) {
+ case 1:
+ pat = bpp1tab[pat];
+ break;
+
+ case 2:
+ pat = bpp2tab[pat];
+ break;
+
+ case 4:
+ pat = bpp4tab[pat];
+ break;
+
+ case 8:
+ pat |= pat << 8;
+ // Fall through
+ case 16:
+ pat |= pat << 16;
+ // Fall through
+ case 32:
+ break;
+ }
+ return pat;
+}
+
+
+ /*
+ * Expand a pixel value to a generic 32/64-bit pattern and rotate it to
+ * the correct start position
+ */
+
+static inline unsigned long pixel_to_pat(pixel_t pixel, int left)
+{
+ unsigned long pat = pixel;
+ u32 bpp = fb_var.bits_per_pixel;
+ int i;
+
+ /* expand pixel value */
+ for (i = bpp; i < BITS_PER_LONG; i *= 2)
+ pat |= pat << i;
+
+ /* rotate pattern to correct start position */
+ pat = pat << left | pat >> (bpp-left);
+ return pat;
+}
+
+
+void cfb_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel)
+{
+ unsigned long *dst;
+ int dst_idx, left;
+ u32 bpp = fb_var.bits_per_pixel;
+
+ dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1));
+ dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8;
+ dst_idx += y*next_line*8+x*bpp;
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ /* FIXME For now we support 1-32 bpp only */
+ left = BITS_PER_LONG % bpp;
+ if (!left) {
+ u32 pat = pixel_to_pat32(pixel);
+ bitfill32(dst, dst_idx, pat, length*bpp);
+ } else {
+ unsigned long pat = pixel_to_pat(pixel, (left-dst_idx) % bpp);
+ bitfill(dst, dst_idx, pat, left, bpp-left, length*bpp);
+ }
+}
+
+void cfb_fill_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel)
+{
+ unsigned long *dst;
+ int dst_idx, left;
+ u32 bpp = fb_var.bits_per_pixel;
+
+ dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1));
+ dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8;
+ dst_idx += y*next_line*8+x*bpp;
+ /* FIXME For now we support 1-32 bpp only */
+ left = BITS_PER_LONG % bpp;
+ if (!left) {
+ u32 pat = pixel_to_pat32(pixel);
+ while (height--) {
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ bitfill32(dst, dst_idx, pat, width*bpp);
+ dst_idx += next_line*8;
+ }
+ } else {
+ unsigned long pat = pixel_to_pat(pixel, (left-dst_idx) % bpp);
+ int right = bpp-left;
+ int r;
+ while (height--) {
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ bitfill(dst, dst_idx, pat, left, right, width*bpp);
+ r = (next_line*8) % bpp;
+ pat = pat << (bpp-r) | pat >> r;
+ dst_idx += next_line*8;
+ }
+ }
+}
+
+void cfb_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx, u32 sy)
+{
+ unsigned long *dst, *src;
+ int dst_idx, src_idx;
+ u32 bpp = fb_var.bits_per_pixel;
+ int rev_copy = 0;
+
+ if (dy > sy || (dy == sy && dx > sx)) {
+ dy += height;
+ sy += height;
+ rev_copy = 1;
+ }
+ dst = src = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1));
+ dst_idx = src_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8;
+ dst_idx += dy*next_line*8+dx*bpp;
+ src_idx += sy*next_line*8+sx*bpp;
+ if (rev_copy) {
+ while (height--) {
+ dst_idx -= next_line*8;
+ src_idx -= next_line*8;
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ src += src_idx >> SHIFT_PER_LONG;
+ src_idx &= (BITS_PER_LONG-1);
+ bitcpy_rev(dst, dst_idx, src, src_idx, width*bpp);
+ }
+ } else {
+ while (height--) {
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ src += src_idx >> SHIFT_PER_LONG;
+ src_idx &= (BITS_PER_LONG-1);
+ bitcpy(dst, dst_idx, src, src_idx, width*bpp);
+ dst_idx += next_line*8;
+ src_idx += next_line*8;
+ }
+ }
+}
+
diff --git a/drawops/cfb16.c b/drawops/cfb16.c
new file mode 100644
index 0000000..fde1854
--- /dev/null
+++ b/drawops/cfb16.c
@@ -0,0 +1,50 @@
+
+/*
+ * Low-level drawing operations for a cfb16 frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+
+
+static u16 *screen;
+static u32 screen_width;
+
+static int cfb16_init(void)
+{
+ if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 16)
+ return 0;
+
+ screen = (u16 *)fb;
+ screen_width = fb_fix.line_length ? fb_fix.line_length/2
+ : fb_var.xres_virtual;
+ return cfb_init();
+}
+
+static void cfb16_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ screen[y*screen_width+x] = pixel;
+}
+
+static pixel_t cfb16_getpixel(u32 x, u32 y)
+{
+ return screen[y*screen_width+x];
+}
+
+const struct drawops cfb16_drawops = {
+ .name = "cfb16 (16 bpp packed pixels)",
+ .init = cfb16_init,
+ .set_pixel = cfb16_setpixel,
+ .get_pixel = cfb16_getpixel,
+ .draw_hline = cfb_draw_hline,
+ .fill_rect = cfb_fill_rect,
+ .copy_rect = cfb_copy_rect,
+};
+
diff --git a/drawops/cfb2.c b/drawops/cfb2.c
new file mode 100644
index 0000000..e3c92f7
--- /dev/null
+++ b/drawops/cfb2.c
@@ -0,0 +1,54 @@
+
+/*
+ * Low-level drawing operations for a cfb2 frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+#include "util.h"
+
+
+static u8 *screen;
+static u32 screen_width;
+
+static int cfb2_init(void)
+{
+ if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 2)
+ return 0;
+
+ screen = fb;
+ screen_width = fb_fix.line_length ? fb_fix.line_length
+ : fb_var.xres_virtual/4;
+ return cfb_init();
+}
+
+static void cfb2_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ int shift = 2*(3- (x & 3));
+ u8 *p = &screen[y*screen_width+x/4];
+ u8 mask = 3 << shift;
+ *p = pixel << shift | (*p & ~mask);
+}
+
+static pixel_t cfb2_getpixel(u32 x, u32 y)
+{
+ return (screen[y*screen_width+x/4] >> (2*(3- (x & 3)))) & 15;
+}
+
+const struct drawops cfb2_drawops = {
+ .name = "cfb2 (2 bpp packed pixels)",
+ .init = cfb2_init,
+ .set_pixel = cfb2_setpixel,
+ .get_pixel = cfb2_getpixel,
+ .draw_hline = cfb_draw_hline,
+ .fill_rect = cfb_fill_rect,
+ .copy_rect = cfb_copy_rect,
+};
+
diff --git a/drawops/cfb24.c b/drawops/cfb24.c
new file mode 100644
index 0000000..161456b
--- /dev/null
+++ b/drawops/cfb24.c
@@ -0,0 +1,58 @@
+
+/*
+ * Low-level drawing operations for a cfb24 frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+
+
+static u8 *screen;
+static u32 screen_width;
+
+static int cfb24_init(void)
+{
+ if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 24)
+ return 0;
+
+ screen = fb;
+ screen_width = fb_fix.line_length ? fb_fix.line_length
+ : fb_var.xres_virtual*3;
+ return cfb_init();
+}
+
+static void cfb24_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ u8 *dst;
+
+ dst = &screen[y*screen_width+x*3];
+ dst[0] = (pixel >> 16) & 0xff;
+ dst[1] = (pixel >> 8) & 0xff;
+ dst[2] = pixel & 0xff;
+}
+
+static pixel_t cfb24_getpixel(u32 x, u32 y)
+{
+ const u8 *src;
+
+ src = &screen[y*screen_width+x*3];
+ return (src[0] << 16) | (src[1] << 8) | src[2];
+}
+
+const struct drawops cfb24_drawops = {
+ .name = "cfb24 (24 bpp packed pixels)",
+ .init = cfb24_init,
+ .set_pixel = cfb24_setpixel,
+ .get_pixel = cfb24_getpixel,
+ .draw_hline = cfb_draw_hline,
+ .fill_rect = cfb_fill_rect,
+ .copy_rect = cfb_copy_rect,
+};
+
diff --git a/drawops/cfb32.c b/drawops/cfb32.c
new file mode 100644
index 0000000..75ceeea
--- /dev/null
+++ b/drawops/cfb32.c
@@ -0,0 +1,50 @@
+
+/*
+ * Low-level drawing operations for a cfb32 frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+
+
+static u32 *screen;
+static u32 screen_width;
+
+static int cfb32_init(void)
+{
+ if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 32)
+ return 0;
+
+ screen = (u32 *)fb;
+ screen_width = fb_fix.line_length ? fb_fix.line_length/4
+ : fb_var.xres_virtual;
+ return cfb_init();
+}
+
+static void cfb32_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ screen[y*screen_width+x] = pixel;
+}
+
+static pixel_t cfb32_getpixel(u32 x, u32 y)
+{
+ return screen[y*screen_width+x];
+}
+
+const struct drawops cfb32_drawops = {
+ .name = "cfb32 (32 bpp packed pixels)",
+ .init = cfb32_init,
+ .set_pixel = cfb32_setpixel,
+ .get_pixel = cfb32_getpixel,
+ .draw_hline = cfb_draw_hline,
+ .fill_rect = cfb_fill_rect,
+ .copy_rect = cfb_copy_rect,
+};
+
diff --git a/drawops/cfb4.c b/drawops/cfb4.c
new file mode 100644
index 0000000..42db2ba
--- /dev/null
+++ b/drawops/cfb4.c
@@ -0,0 +1,56 @@
+
+/*
+ * Low-level drawing operations for a cfb4 frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+#include "util.h"
+
+
+static u8 *screen;
+static u32 screen_width;
+
+static int cfb4_init(void)
+{
+ if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 4)
+ return 0;
+
+ screen = fb;
+ screen_width = fb_fix.line_length ? fb_fix.line_length
+ : fb_var.xres_virtual/2;
+ return cfb_init();
+}
+
+static void cfb4_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ u8 *p = &screen[y*screen_width+x/2];
+ if (x & 1)
+ *p = pixel | (*p & 0xf0);
+ else
+ *p = (pixel << 4) | (*p & 0x0f);
+}
+
+static pixel_t cfb4_getpixel(u32 x, u32 y)
+{
+ u8 d = screen[y*screen_width+x/2];
+ return (x & 1) ? (d & 0x0f) : (d >> 4);
+}
+
+const struct drawops cfb4_drawops = {
+ .name = "cfb4 (4 bpp packed pixels)",
+ .init = cfb4_init,
+ .set_pixel = cfb4_setpixel,
+ .get_pixel = cfb4_getpixel,
+ .draw_hline = cfb_draw_hline,
+ .fill_rect = cfb_fill_rect,
+ .copy_rect = cfb_copy_rect,
+};
+
diff --git a/drawops/cfb8.c b/drawops/cfb8.c
new file mode 100644
index 0000000..98faad5
--- /dev/null
+++ b/drawops/cfb8.c
@@ -0,0 +1,50 @@
+
+/*
+ * Low-level drawing operations for a cfb8 frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+
+
+static u8 *screen;
+static u32 screen_width;
+
+static int cfb8_init(void)
+{
+ if (fb_fix.type != FB_TYPE_PACKED_PIXELS || fb_var.bits_per_pixel != 8)
+ return 0;
+
+ screen = fb;
+ screen_width = fb_fix.line_length ? fb_fix.line_length
+ : fb_var.xres_virtual;
+ return cfb_init();
+}
+
+static void cfb8_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ screen[y*screen_width+x] = pixel;
+}
+
+static pixel_t cfb8_getpixel(u32 x, u32 y)
+{
+ return screen[y*screen_width+x];
+}
+
+const struct drawops cfb8_drawops = {
+ .name = "cfb8 (8 bpp packed pixels)",
+ .init = cfb8_init,
+ .set_pixel = cfb8_setpixel,
+ .get_pixel = cfb8_getpixel,
+ .draw_hline = cfb_draw_hline,
+ .fill_rect = cfb_fill_rect,
+ .copy_rect = cfb_copy_rect,
+};
+
diff --git a/drawops/generic.c b/drawops/generic.c
new file mode 100644
index 0000000..b2543b8
--- /dev/null
+++ b/drawops/generic.c
@@ -0,0 +1,536 @@
+/*
+ * Generic drawing operations
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+#include "util.h"
+
+
+ /*
+ * Draw a horizontal line
+ */
+
+void generic_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel)
+{
+ while (length--)
+ set_pixel(x++, y, pixel);
+}
+
+
+ /*
+ * Draw a vertical line
+ */
+
+void generic_draw_vline(u32 x, u32 y, u32 length, pixel_t pixel)
+{
+ while (length--)
+ set_pixel(x, y++, pixel);
+}
+
+
+ /*
+ * Draw a rectangle
+ */
+
+void generic_draw_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel)
+{
+ draw_hline(x, y, width, pixel);
+ if (height >= 1) {
+ if (height >= 2) {
+ draw_vline(x, y+1, height-2, pixel);
+ if (width >= 1)
+ draw_vline(x+width-1, y+1, height-2, pixel);
+ }
+ draw_hline(x, y+height-1, width, pixel);
+ }
+}
+
+
+ /*
+ * Draw a filled rectangle
+ */
+
+void generic_fill_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel)
+{
+ while (height--)
+ draw_hline(x, y++, width, pixel);
+}
+
+
+ /*
+ * Draw a line using the Bresenham algorithm for lines
+ */
+
+void generic_draw_line(u32 x1, u32 y1, u32 x2, u32 y2, pixel_t pixel)
+{
+ int dx, dy, sx, sy, e;
+
+ dx = x2-x1;
+ dy = y2-y1;
+ if (dy == 0) {
+ if (dx < 0) {
+ dx = -dx;
+ x1 = x2;
+ }
+ draw_hline(x1, y1, dx+1, pixel);
+ } else if (dx == 0) {
+ if (dy < 0) {
+ dy = -dy;
+ y1 = y2;
+ }
+ draw_vline(x1, y1, dy+1, pixel);
+ } else {
+ if (dy < 0) {
+ dy = -dy;
+ sy = -1;
+ } else {
+ sy = 1;
+ }
+ if (dx < 0) {
+ dx = -dx;
+ sx = -1;
+ } else {
+ sx = 1;
+ }
+ if (dx > dy) {
+ e = -dx/2;
+ set_pixel(x1, y1, pixel);
+ while (x1 != x2) {
+ e += dy;
+ if (e >= 0) {
+ y1 += sy;
+ e -= dx;
+ }
+ x1 += sx;
+ set_pixel(x1, y1, pixel);
+ }
+ } else {
+ e = -dy/2;
+ set_pixel(x1, y1, pixel);
+ while (y1 != y2) {
+ e += dx;
+ if (e >= 0) {
+ x1 += sx;
+ e -= dy;
+ }
+ y1 += sy;
+ set_pixel(x1, y1, pixel);
+ }
+ }
+ }
+}
+
+
+ /*
+ * Monochrome bitmap expansion
+ */
+
+void generic_expand_bitmap(u32 x, u32 y, u32 width, u32 height, const u8 *data,
+ u32 pitch, pixel_t pixel0, pixel_t pixel1)
+{
+ u32 w, x0;
+ const u8 *data0;
+ int i;
+ u8 bits;
+
+ while (height--) {
+ w = width;
+ x0 = x;
+ data0 = data;
+ while (w > 7) {
+ bits = *data0++;
+ for (i = 0; i < 8; i++, bits <<= 1)
+ set_pixel(x0++, y, bits & 0x80 ? pixel1 : pixel0);
+ w -= 8;
+ }
+ if (w > 0) {
+ bits = *data0++;
+ while (w-- > 0) {
+ set_pixel(x0++, y, bits & 0x80 ? pixel1 : pixel0);
+ bits <<= 1;
+ }
+ }
+ y++;
+ data += pitch;
+ }
+}
+
+
+ /*
+ * Draw a pixmap
+ */
+
+void generic_draw_pixmap(u32 x, u32 y, u32 width, u32 height,
+ const pixel_t *pixmap)
+{
+ u32 w, x0;
+
+ while (height--) {
+ for (w = width, x0 = x; w > 0; w--)
+ set_pixel(x0++, y, *pixmap++);
+ y++;
+ }
+}
+
+
+ /*
+ * Draw a circle using the differential version of the midpoint algorithm
+ *
+ * Cfr. Computer Graphics: Principles and Practices, Second Edition in C,
+ * Foley et al., 1997, p. 87
+ */
+
+static void draw_circle_points(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel)
+{
+ if (x == 0) {
+ set_pixel(cx, cy-y, pixel);
+ set_pixel(cx-y, cy, pixel);
+ set_pixel(cx+y, cy, pixel);
+ set_pixel(cx, cy+y, pixel);
+ } else {
+ set_pixel(cx-x, cy-y, pixel);
+ set_pixel(cx+x, cy-y, pixel);
+ set_pixel(cx-x, cy+y, pixel);
+ set_pixel(cx+x, cy+y, pixel);
+ if (x < y) {
+ set_pixel(cx-y, cy-x, pixel);
+ set_pixel(cx+y, cy-x, pixel);
+ set_pixel(cx-y, cy+x, pixel);
+ set_pixel(cx+y, cy+x, pixel);
+ }
+ }
+}
+
+void generic_draw_circle(u32 x, u32 y, u32 r, pixel_t pixel)
+{
+ u32 x1 = 0;
+ u32 y1 = r;
+ int d = 1-r;
+ int de = 3;
+ int dse = -2*r+5;
+
+ do {
+ draw_circle_points(x, y, x1, y1, pixel);
+ if (d < 0) { // Select E
+ d += de;
+ de += 2;
+ dse += 2;
+ } else { // Select SE
+ d += dse;
+ de += 2;
+ dse += 4;
+ y1--;
+ }
+ x1++;
+ } while (x1 <= y1);
+}
+
+
+ /*
+ * Draw a filled circle
+ */
+
+static void fill_circle_points_x(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel)
+{
+ if (x == 0) {
+ set_pixel(cx, cy-y, pixel);
+ set_pixel(cx, cy+y, pixel);
+ } else {
+ draw_hline(cx-x, cy-y, 2*x+1, pixel);
+ draw_hline(cx-x, cy+y, 2*x+1, pixel);
+ }
+}
+
+static void fill_circle_points_y(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel)
+{
+ if (x == 0)
+ draw_hline(cx-y, cy, 2*y+1, pixel);
+ else {
+ draw_hline(cx-y, cy-x, 2*y+1, pixel);
+ draw_hline(cx-y, cy+x, 2*y+1, pixel);
+ }
+}
+
+void generic_fill_circle(u32 x, u32 y, u32 r, pixel_t pixel)
+{
+ u32 x1 = 0;
+ u32 y1 = r;
+ int d = 1-r;
+ int de = 3;
+ int dse = -2*r+5;
+
+ do {
+ fill_circle_points_y(x, y, x1, y1, pixel);
+ if (d < 0) { // Select E
+ d += de;
+ de += 2;
+ dse += 2;
+ } else { // Select SE
+ d += dse;
+ de += 2;
+ dse += 4;
+ if (x1 != y1)
+ fill_circle_points_x(x, y, x1, y1, pixel);
+ y1--;
+ }
+ x1++;
+ } while (x1 <= y1);
+}
+
+
+ /*
+ * Draw an ellipse using a differential version of the Bresenham algorithm
+ * for ellipses
+ */
+
+static void draw_ellipse_points(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel)
+{
+ if (x == 0) {
+ set_pixel(cx, cy-y, pixel);
+ set_pixel(cx, cy+y, pixel);
+ } else if (0 == y) {
+ set_pixel(cx-x, cy, pixel);
+ set_pixel(cx+x, cy, pixel);
+ } else {
+ set_pixel(cx-x, cy-y, pixel);
+ set_pixel(cx+x, cy-y, pixel);
+ set_pixel(cx-x, cy+y, pixel);
+ set_pixel(cx+x, cy+y, pixel);
+ }
+}
+
+void generic_draw_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel)
+{
+ if (a == b)
+ draw_circle(x, y, a, pixel);
+ else {
+ u32 a2 = a*a;
+ u32 b2 = b*b;
+ if (a <= b) {
+ u32 x1 = 0;
+ u32 y1 = b;
+ int S = a2*(1-2*b)+2*b2;
+ int T = b2-2*a2*(2*b-1);
+ int dT1 = 4*b2;
+ int dS1 = dT1+2*b2;
+ int dS2 = -4*a2*(b-1);
+ int dT2 = dS2+2*a2;
+
+ draw_ellipse_points(x, y, x1, y1, pixel);
+ do {
+ if (S < 0) {
+ S += dS1;
+ T += dT1;
+ dS1 += 4*b2;
+ dT1 += 4*b2;
+ x1++;
+ } else if (T < 0) {
+ S += dS1+dS2;
+ T += dT1+dT2;
+ dS1 += 4*b2;
+ dT1 += 4*b2;
+ dS2 += 4*a2;
+ dT2 += 4*a2;
+ x1++;
+ y1--;
+ } else {
+ S += dS2;
+ T += dT2;
+ dS2 += 4*a2;
+ dT2 += 4*a2;
+ y1--;
+ }
+ draw_ellipse_points(x, y, x1, y1, pixel);
+ } while (y1 > 0);
+ } else {
+ u32 x1 = a;
+ u32 y1 = 0;
+ int S = b2*(1-2*a)+2*a2;
+ int T = a2-2*b2*(2*a-1);
+ int dT1 = 4*a2;
+ int dS1 = dT1+2*a2;
+ int dS2 = -4*b2*(a-1);
+ int dT2 = dS2+2*b2;
+
+ draw_ellipse_points(x, y, x1, y1, pixel);
+ do {
+ if (S < 0) {
+ S += dS1;
+ T += dT1;
+ dS1 += 4*a2;
+ dT1 += 4*a2;
+ y1++;
+ } else if (T < 0) {
+ S += dS1+dS2;
+ T += dT1+dT2;
+ dS1 += 4*a2;
+ dT1 += 4*a2;
+ dS2 += 4*b2;
+ dT2 += 4*b2;
+ x1--;
+ y1++;
+ } else {
+ S += dS2;
+ T += dT2;
+ dS2 += 4*b2;
+ dT2 += 4*b2;
+ x1--;
+ }
+ draw_ellipse_points(x, y, x1, y1, pixel);
+ } while (x1 > 0);
+ }
+ }
+}
+
+
+ /*
+ * Draw a filled ellipse
+ */
+
+static void fill_ellipse_points(u32 cx, u32 cy, u32 x, u32 y, pixel_t pixel)
+{
+ if (x == 0) {
+ set_pixel(cx, cy-y, pixel);
+ set_pixel(cx, cy+y, pixel);
+ } else if (y == 0) {
+ draw_hline(cx-x, cy, 2*x+1, pixel);
+ } else {
+ draw_hline(cx-x, cy-y, 2*x+1, pixel);
+ draw_hline(cx-x, cy+y, 2*x+1, pixel);
+ }
+}
+
+void generic_fill_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel)
+{
+ if (a == b)
+ fill_circle(x, y, a, pixel);
+ else {
+ u32 a2 = a*a;
+ u32 b2 = b*b;
+ if (a <= b) {
+ u32 x1 = 0;
+ u32 y1 = b;
+ int S = a2*(1-2*b)+2*b2;
+ int T = b2-2*a2*(2*b-1);
+ int dT1 = 4*b2;
+ int dS1 = dT1+2*b2;
+ int dS2 = -4*a2*(b-1);
+ int dT2 = dS2+2*a2;
+
+ while (1) {
+ if (S < 0) {
+ S += dS1;
+ T += dT1;
+ dS1 += 4*b2;
+ dT1 += 4*b2;
+ x1++;
+ } else if (T < 0) {
+ fill_ellipse_points(x, y, x1, y1, pixel);
+ if (y1 == 0)
+ break;
+ S += dS1+dS2;
+ T += dT1+dT2;
+ dS1 += 4*b2;
+ dT1 += 4*b2;
+ dS2 += 4*a2;
+ dT2 += 4*a2;
+ x1++;
+ y1--;
+ } else {
+ fill_ellipse_points(x, y, x1, y1, pixel);
+ if (y1 == 0)
+ break;
+ S += dS2;
+ T += dT2;
+ dS2 += 4*a2;
+ dT2 += 4*a2;
+ y1--;
+ }
+ }
+ } else {
+ u32 x1 = a;
+ u32 y1 = 0;
+ int S = b2*(1-2*a)+2*a2;
+ int T = a2-2*b2*(2*a-1);
+ int dT1 = 4*a2;
+ int dS1 = dT1+2*a2;
+ int dS2 = -4*b2*(a-1);
+ int dT2 = dS2+2*b2;
+
+ fill_ellipse_points(x, y, x1, y1, pixel);
+ do {
+ if (S < 0) {
+ S += dS1;
+ T += dT1;
+ dS1 += 4*a2;
+ dT1 += 4*a2;
+ y1++;
+ fill_ellipse_points(x, y, x1, y1, pixel);
+ } else if (T < 0) {
+ S += dS1+dS2;
+ T += dT1+dT2;
+ dS1 += 4*a2;
+ dT1 += 4*a2;
+ dS2 += 4*b2;
+ dT2 += 4*b2;
+ x1--;
+ if (x1 < 0)
+ break;
+ y1++;
+ fill_ellipse_points(x, y, x1, y1, pixel);
+ } else {
+ S += dS2;
+ T += dT2;
+ dS2 += 4*b2;
+ dT2 += 4*b2;
+ x1--;
+ }
+ } while (x1 > 0);
+ }
+ }
+}
+
+
+ /*
+ * Copy a rectangular area
+ */
+
+void generic_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx, u32 sy)
+{
+ u32 w, dx0, sx0;
+
+ if (dy > sy || (dy == sy && dx > sx)) {
+ dx += width;
+ dy += height;
+ sx += width;
+ sy += height;
+ while (height--) {
+ dy--;
+ sy--;
+ for (w = width, dx0 = dx, sx0 = sx; w > 0; w--) {
+ dx0--;
+ sx0--;
+ set_pixel(dx0, dy, get_pixel(sx0, sy));
+ }
+ }
+ } else {
+ while (height--) {
+ for (w = width, dx0 = dx, sx0 = sx; w > 0; w--) {
+ set_pixel(dx0, dy, get_pixel(sx0, sy));
+ dx0++;
+ sx0++;
+ }
+ dy++;
+ sy++;
+ }
+ }
+}
+
diff --git a/drawops/init.c b/drawops/init.c
new file mode 100644
index 0000000..09f5627
--- /dev/null
+++ b/drawops/init.c
@@ -0,0 +1,76 @@
+
+/*
+ * Low-level drawing operations initialization
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "util.h"
+
+
+ /*
+ * Supported frame buffer formats
+ */
+
+static const struct drawops *all_drawops[] = {
+ &cfb2_drawops,
+ &cfb4_drawops,
+ &cfb8_drawops,
+ &cfb16_drawops,
+ &cfb24_drawops,
+ &cfb32_drawops,
+ &planar_drawops,
+ &iplan2_drawops,
+ NULL
+};
+
+
+ /*
+ * Current drawing operations
+ */
+
+struct drawops drawops;
+
+
+ /*
+ * Initialization
+ */
+
+#define PRESENT_OR_SET_GENERIC(op) \
+ if (!drawops.op) \
+ drawops.op = generic_ ## op;
+
+void drawops_init(void)
+{
+ int i;
+
+ for (i = 0; all_drawops[i]; i++)
+ if (all_drawops[i]->init()) {
+ drawops = *all_drawops[i];
+ PRESENT_OR_SET_GENERIC(draw_hline);
+ PRESENT_OR_SET_GENERIC(draw_vline);
+ PRESENT_OR_SET_GENERIC(draw_rect);
+ PRESENT_OR_SET_GENERIC(fill_rect);
+ PRESENT_OR_SET_GENERIC(draw_line);
+ PRESENT_OR_SET_GENERIC(expand_bitmap);
+ PRESENT_OR_SET_GENERIC(draw_pixmap);
+ PRESENT_OR_SET_GENERIC(draw_circle);
+ PRESENT_OR_SET_GENERIC(fill_circle);
+ PRESENT_OR_SET_GENERIC(draw_ellipse);
+ PRESENT_OR_SET_GENERIC(fill_ellipse);
+ PRESENT_OR_SET_GENERIC(copy_rect);
+ Message("Using drawops %s\n", drawops.name);
+ return;
+ }
+
+ Fatal("No drawing operations available for this frame buffer mode\n");
+}
+
+#undef PRESENT_OR_SET_GENERIC
+
diff --git a/drawops/iplan2.c b/drawops/iplan2.c
new file mode 100644
index 0000000..e02006e
--- /dev/null
+++ b/drawops/iplan2.c
@@ -0,0 +1,70 @@
+
+/*
+ * Low-level drawing operations for an iplan2 frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "fb.h"
+#include "util.h"
+
+
+static u8 *screen;
+static u32 next_line;
+
+static int iplan2_init(void)
+{
+ if (fb_fix.type != FB_TYPE_INTERLEAVED_PLANES || fb_fix.type_aux != 2)
+ return 0;
+
+ screen = fb;
+ next_line = fb_fix.line_length
+ ? fb_fix.line_length
+ : fb_var.bits_per_pixel*fb_var.xres_virtual/8;
+ return 1;
+}
+
+static void iplan2_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ u16 *p = (u16 *)(screen+y*next_line+fb_var.bits_per_pixel*(x & -16));
+ u16 mask = 0x8000 >> (x & 15);
+ int i = fb_var.bits_per_pixel;
+ while (1) {
+ if (pixel & 1)
+ *p++ |= mask;
+ else
+ *p++ &= ~mask;
+ if (!--i)
+ break;
+ pixel >>= 1;
+ }
+}
+
+static pixel_t iplan2_getpixel(u32 x, u32 y)
+{
+ pixel_t pixel = 0, bit = 1;
+ u16 *p = (u16 *)(screen+y*next_line+fb_var.bits_per_pixel*(x & -16));
+ u16 mask = 0x8000 >> (x & 15);
+ int i = fb_var.bits_per_pixel;
+ while (1) {
+ if (*p++ & mask)
+ pixel |= bit;
+ if (!--i)
+ return pixel;
+ bit <<= 1;
+ }
+}
+
+const struct drawops iplan2_drawops = {
+ .name = "iplan2 (Atari interleaved bitplanes)",
+ .init = iplan2_init,
+ .set_pixel = iplan2_setpixel,
+ .get_pixel = iplan2_getpixel,
+};
+
diff --git a/drawops/planar.c b/drawops/planar.c
new file mode 100644
index 0000000..0a10b2c
--- /dev/null
+++ b/drawops/planar.c
@@ -0,0 +1,264 @@
+
+/*
+ * Low-level drawing operations for a planar frame buffer
+ *
+ * This driver supports 3 pixel formats:
+ * - monochrome packed pixels (mfb)
+ * - normal bitplanes (afb)
+ * - interleaved bitplanes (ilbm)
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "drawops.h"
+#include "bitstream.h"
+#include "fb.h"
+
+
+static u8 *screen;
+static u32 next_line;
+static u32 next_plane;
+
+static int planar_init(void)
+{
+ u32 len;
+
+ len = fb_fix.line_length ? fb_fix.line_length : fb_var.xres_virtual/8;
+ switch (fb_fix.type) {
+ case FB_TYPE_PACKED_PIXELS:
+ if (fb_var.bits_per_pixel != 1)
+ return 0;
+ /* mfb */
+ next_line = len;
+ break;
+
+ case FB_TYPE_PLANES:
+ /* afb */
+ next_line = len;
+ next_plane = len*fb_var.yres_virtual;
+ break;
+
+ case FB_TYPE_INTERLEAVED_PLANES:
+ if (fb_fix.type_aux != len)
+ return 0;
+ /* ilbm */
+ next_line = len*fb_var.yres_virtual;
+ next_plane = len;
+ break;
+
+ default:
+ return 0;
+ break;
+ }
+ screen = fb;
+ return 1;
+}
+
+static void planar_setpixel(u32 x, u32 y, pixel_t pixel)
+{
+ u8 *p, mask;
+ int i;
+
+ p = screen+y*next_line+(x/8);
+ mask = 0x80 >> (x & 7);
+ i = fb_var.bits_per_pixel;
+ while (1) {
+ if (pixel & 1)
+ *p |= mask;
+ else
+ *p &= ~mask;
+ if (!--i)
+ break;
+ pixel >>= 1;
+ p += next_plane;
+ }
+}
+
+static pixel_t planar_getpixel(u32 x, u32 y)
+{
+ pixel_t pixel = 0, bit = 1;
+ u8 *p, mask;
+ int i;
+
+ p = screen+y*next_line+(x/8);
+ mask = 0x80 >> (x & 7);
+ i = fb_var.bits_per_pixel;
+ while (1) {
+ if (*p & mask)
+ pixel |= bit;
+ if (!--i)
+ return pixel;
+ bit <<= 1;
+ p += next_plane;
+ }
+}
+
+static inline void fill_one_line(unsigned long *dst, int dst_idx, u32 n,
+ pixel_t pixel)
+{
+ int i = fb_var.bits_per_pixel;
+ while (1) {
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ bitfill32(dst, dst_idx, pixel & 1 ? ~0 : 0, n);
+ if (!--i)
+ break;
+ pixel >>= 1;
+ dst_idx += next_plane*8;
+ }
+}
+
+static void planar_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel)
+{
+ unsigned long *dst;
+ int dst_idx;
+
+ dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1));
+ dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8;
+ dst_idx += y*next_line*8+x;
+ fill_one_line(dst, dst_idx, length, pixel);
+}
+
+static void planar_fill_rect(u32 x, u32 y, u32 width, u32 height,
+ pixel_t pixel)
+{
+ unsigned long *dst;
+ int dst_idx;
+
+ dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1));
+ dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8;
+ dst_idx += y*next_line*8+x;
+ while (height--) {
+ fill_one_line(dst, dst_idx, width, pixel);
+ dst_idx += next_line*8;
+ }
+}
+
+static inline void expand_one_line(unsigned long *dst, int dst_idx, u32 n,
+ const u8 *data, pixel_t pixel0,
+ pixel_t pixel1)
+{
+ const unsigned long *src;
+ int src_idx, i;
+
+ i = fb_var.bits_per_pixel;
+ while (1) {
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ if ((pixel0 ^ pixel1) & 1) {
+ src = (unsigned long *)((unsigned long)data & ~(BYTES_PER_LONG-1));
+ src_idx = ((unsigned long)data & (BYTES_PER_LONG-1))*8;
+ if (pixel1 & 1)
+ bitcpy(dst, dst_idx, src, src_idx, n);
+ else
+ bitcpy_not(dst, dst_idx, src, src_idx, n);
+ /* set or clear */
+ } else
+ bitfill32(dst, dst_idx, pixel1 & 1 ? ~0 : 0, n);
+ if (!--i)
+ break;
+ pixel0 >>= 1;
+ pixel1 >>= 1;
+ dst_idx += next_plane*8;
+ }
+}
+
+static void planar_expand_bitmap(u32 x, u32 y, u32 width, u32 height,
+ const u8 *data, u32 pitch, pixel_t pixel0,
+ pixel_t pixel1)
+{
+ unsigned long *dst;
+ int dst_idx;
+
+ dst = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1));
+ dst_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8;
+ dst_idx += y*next_line*8+x;
+ while (height--) {
+ expand_one_line(dst, dst_idx, width, data, pixel0, pixel1);
+ dst_idx += next_line*8;
+ data += pitch;
+ }
+}
+
+
+static inline void copy_one_line(unsigned long *dst, int dst_idx,
+ unsigned long *src, int src_idx, u32 n)
+{
+ int i = fb_var.bits_per_pixel;
+ while (1) {
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ src += src_idx >> SHIFT_PER_LONG;
+ src_idx &= (BITS_PER_LONG-1);
+ bitcpy(dst, dst_idx, src, src_idx, n);
+ if (!--i)
+ break;
+ dst_idx += next_plane*8;
+ src_idx += next_plane*8;
+ }
+}
+
+static inline void copy_one_line_rev(unsigned long *dst, int dst_idx,
+ unsigned long *src, int src_idx, u32 n)
+{
+ int i = fb_var.bits_per_pixel;
+ while (1) {
+ dst += dst_idx >> SHIFT_PER_LONG;
+ dst_idx &= (BITS_PER_LONG-1);
+ src += src_idx >> SHIFT_PER_LONG;
+ src_idx &= (BITS_PER_LONG-1);
+ bitcpy_rev(dst, dst_idx, src, src_idx, n);
+ if (!--i)
+ break;
+ dst_idx += next_plane*8;
+ src_idx += next_plane*8;
+ }
+}
+
+static void planar_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx,
+ u32 sy)
+{
+ unsigned long *dst, *src;
+ int dst_idx, src_idx;
+ int rev_copy = 0;
+
+ if (dy > sy || (dy == sy && dx > sx)) {
+ dy += height;
+ sy += height;
+ rev_copy = 1;
+ }
+ dst = src = (unsigned long *)((unsigned long)fb & ~(BYTES_PER_LONG-1));
+ dst_idx = src_idx = ((unsigned long)fb & (BYTES_PER_LONG-1))*8;
+ dst_idx += dy*next_line*8+dx;
+ src_idx += sy*next_line*8+sx;
+ if (rev_copy) {
+ while (height--) {
+ dst_idx -= next_line*8;
+ src_idx -= next_line*8;
+ copy_one_line_rev(dst, dst_idx, src, src_idx, width);
+ }
+ } else {
+ while (height--) {
+ copy_one_line(dst, dst_idx, src, src_idx, width);
+ dst_idx += next_line*8;
+ src_idx += next_line*8;
+ }
+ }
+}
+
+const struct drawops planar_drawops = {
+ .name = "planar (monochrome and (interleaved) bitplanes)",
+ .init = planar_init,
+ .set_pixel = planar_setpixel,
+ .get_pixel = planar_getpixel,
+ .draw_hline = planar_draw_hline,
+ .fill_rect = planar_fill_rect,
+ .expand_bitmap = planar_expand_bitmap,
+ .copy_rect = planar_copy_rect,
+};
+
diff --git a/fb.c b/fb.c
new file mode 100644
index 0000000..f0bef27
--- /dev/null
+++ b/fb.c
@@ -0,0 +1,498 @@
+
+/*
+ * Frame buffer control
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include <asm/page.h>
+
+#include "types.h"
+#include "fb.h"
+#include "util.h"
+#include "colormap.h"
+
+
+static int fb_fd = -1;
+
+struct fb_fix_screeninfo fb_fix;
+struct fb_var_screeninfo fb_var;
+struct fb_cmap fb_cmap;
+
+static unsigned long fb_start;
+static u32 fb_len, fb_offset;
+u8 *fb;
+
+
+ /*
+ * Saved frame buffer device state
+ */
+
+static struct fb_var_screeninfo saved_var;
+static struct fb_fix_screeninfo saved_fix;
+static struct fb_cmap saved_cmap;
+static u16 *saved_red, *saved_green, *saved_blue, *saved_transp;
+static u8 *saved_fb;
+
+
+static void fix_validate(void);
+static void var_validate(void);
+static void var_validate_change(const struct fb_var_screeninfo *old,
+ int error);
+static void cmap_validate(void);
+static void cmap_validate_change(const struct fb_cmap *old, int error);
+static void fb_dump_cmap(void);
+
+
+ /*
+ * Open the frame buffer device
+ */
+
+void fb_open(void)
+{
+ Debug("fb_open()\n");
+ if ((fb_fd = open(Opt_Fbdev, O_RDWR)) == -1) {
+ Fatal("open %s: %s\n", Opt_Fbdev, strerror(errno));
+ }
+}
+
+
+ /*
+ * Close the frame buffer device
+ */
+
+void fb_close(void)
+{
+ Debug("fb_close()\n");
+ if (fb_fd != -1) {
+ close(fb_fd);
+ fb_fd = -1;
+ }
+}
+
+
+ /*
+ * Get the fixed information about a frame buffer
+ */
+
+int fb_get_fix(void)
+{
+ Debug("fb_get_fix()\n");
+ if (ioctl(fb_fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) {
+ Fatal("ioctl FBIOGET_FSCREENINFO: %s\n", strerror(errno));
+ }
+ fix_validate();
+ return 1;
+}
+
+
+ /*
+ * Get the variable information about a frame buffer
+ */
+
+int fb_get_var(void)
+{
+ Debug("fb_get_var()\n");
+ if (ioctl(fb_fd, FBIOGET_VSCREENINFO, &fb_var) == -1) {
+ Fatal("ioctl FBIOGET_VSCREENINFO: %s\n", strerror(errno));
+ }
+ var_validate();
+ return 1;
+}
+
+
+ /*
+ * Set the variable information about a frame buffer
+ */
+
+int fb_set_var(void)
+{
+ struct fb_var_screeninfo var = fb_var;
+ int error;
+
+ Debug("fb_set_var()\n");
+ error = ioctl(fb_fd, FBIOPUT_VSCREENINFO, &fb_var);
+ var_validate_change(&var, error);
+ if (error == -1) {
+ Fatal("ioctl FBIOPUT_VSCREENINFO: %s\n", strerror(errno));
+ }
+ return 1;
+}
+
+
+ /*
+ * Get the colormap
+ */
+
+int fb_get_cmap(void)
+{
+ Debug("fb_get_cmap()\n");
+ if (ioctl(fb_fd, FBIOGETCMAP, &fb_cmap) == -1) {
+ Fatal("ioctl FBIOGETCMAP: %s\n", strerror(errno));
+ }
+ cmap_validate();
+ if (Opt_Debug)
+ fb_dump_cmap();
+ return 1;
+}
+
+
+ /*
+ * Set the colormap
+ */
+
+int fb_set_cmap(void)
+{
+ struct fb_cmap cmap = fb_cmap;
+ int error;
+
+ Debug("fb_set_cmap()\n");
+ if (Opt_Debug)
+ fb_dump_cmap();
+ error = ioctl(fb_fd, FBIOPUTCMAP, &fb_cmap);
+ cmap_validate_change(&cmap, error);
+ if (error == -1) {
+ Fatal("ioctl FBIOPUTCMAP: %s\n", strerror(errno));
+ }
+ return 1;
+}
+
+
+ /*
+ * Map the frame buffer
+ */
+
+void fb_map(void)
+{
+ caddr_t addr;
+
+ Debug("fb_map()\n");
+ fb_start = (unsigned long)fb_fix.smem_start & PAGE_MASK;
+ fb_offset = (unsigned long)fb_fix.smem_start & ~PAGE_MASK;
+ fb_len = (fb_offset+fb_fix.smem_len+~PAGE_MASK) & PAGE_MASK;
+ Debug("fb_start = %lx, fb_offset = %x, fb_len = %x\n", fb_start, fb_offset,
+ fb_len);
+ addr = mmap(NULL, fb_len, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0);
+ if (addr == (caddr_t)-1)
+ Fatal("mmap smem: %s\n", strerror(errno));
+ fb = addr+fb_offset;
+}
+
+
+ /*
+ * Unmap the frame buffer
+ */
+
+void fb_unmap(void)
+{
+ Debug("fb_unmap()\n");
+ if (munmap((caddr_t)((unsigned long)fb & PAGE_MASK), fb_len) == -1)
+ Fatal("munmap smem: %s\n", strerror(errno));
+}
+
+
+ /*
+ * Save the frame buffer contents
+ */
+
+void fb_save(void)
+{
+ Debug("fb_save()\n");
+ if (!(saved_fb = malloc(fb_fix.smem_len)))
+ Fatal("malloc %d: %s\n", fb_fix.smem_len, strerror(errno));
+ memcpy(saved_fb, fb, fb_fix.smem_len);
+}
+
+
+ /*
+ * Restore the frame buffer contents
+ */
+
+void fb_restore(void)
+{
+ Debug("fb_restore()\n");
+ memcpy(fb, saved_fb, fb_fix.smem_len);
+ free(saved_fb);
+}
+
+
+ /*
+ * Clear the frame buffer
+ *
+ * We can't use memset(), because on PPC it uses dcbz, which is not
+ * allowed on non-cacheable memory :-(
+ */
+
+void fb_clear(void)
+{
+ int size = fb_fix.smem_len/sizeof(u32);
+ u32 *p = (u32 *)fb;
+
+ Debug("fb_clear()\n");
+ while (size--)
+ *p++ = 0;
+}
+
+
+ /*
+ * Validate the fixed information about a frame buffer
+ */
+
+static void fix_validate(void)
+{
+ /* FIXME: check for impossible values */
+}
+
+
+ /*
+ * Validate the variable information about a frame buffer
+ */
+
+static void var_validate(void)
+{
+ /* FIXME: check for impossible values */
+}
+
+
+ /*
+ * Validate a change of the variable information about a frame buffer
+ */
+
+#define CHECK_CHANGE(x) \
+ do { \
+ if (fb_var.x != old->x) { \
+ if (error == -1) \
+ Error(#x "changed from %u to %u\n", old->x, fb_var.x); \
+ else \
+ Warning(#x "changed from %u to %u\n", old->x, fb_var.x);\
+ } \
+ } while (0)
+
+#define CHECK_ROUNDING(x) \
+ do { \
+ if (fb_var.x < old->x) \
+ Error(#x " was rounded down\n"); \
+ } while (0)
+
+#define CHECK_CHANGE_AND_ROUNDING(x) \
+ do { \
+ CHECK_CHANGE(x); \
+ if (error != -1) \
+ CHECK_ROUNDING(x); \
+ } while (0)
+
+static void var_validate_change(const struct fb_var_screeninfo *old, int error)
+{
+ CHECK_CHANGE_AND_ROUNDING(xres);
+ CHECK_CHANGE_AND_ROUNDING(yres);
+ CHECK_CHANGE_AND_ROUNDING(xres_virtual);
+ CHECK_CHANGE_AND_ROUNDING(yres_virtual);
+ CHECK_CHANGE_AND_ROUNDING(xoffset);
+ CHECK_CHANGE_AND_ROUNDING(yoffset);
+ CHECK_CHANGE_AND_ROUNDING(bits_per_pixel);
+ CHECK_CHANGE(grayscale);
+ CHECK_CHANGE_AND_ROUNDING(red.offset);
+ CHECK_CHANGE_AND_ROUNDING(red.length);
+ CHECK_CHANGE(red.msb_right);
+ CHECK_CHANGE_AND_ROUNDING(green.offset);
+ CHECK_CHANGE_AND_ROUNDING(green.length);
+ CHECK_CHANGE_AND_ROUNDING(green.length);
+ CHECK_CHANGE(green.msb_right);
+ CHECK_CHANGE_AND_ROUNDING(blue.offset);
+ CHECK_CHANGE_AND_ROUNDING(blue.length);
+ CHECK_CHANGE_AND_ROUNDING(blue.length);
+ CHECK_CHANGE(blue.msb_right);
+ CHECK_CHANGE_AND_ROUNDING(transp.offset);
+ CHECK_CHANGE_AND_ROUNDING(transp.length);
+ CHECK_CHANGE_AND_ROUNDING(transp.length);
+ CHECK_CHANGE(transp.msb_right);
+ CHECK_CHANGE(nonstd);
+ CHECK_CHANGE(activate);
+ CHECK_CHANGE_AND_ROUNDING(height);
+ CHECK_CHANGE_AND_ROUNDING(width);
+ CHECK_CHANGE(accel_flags);
+ CHECK_CHANGE_AND_ROUNDING(pixclock);
+ CHECK_CHANGE_AND_ROUNDING(left_margin);
+ CHECK_CHANGE_AND_ROUNDING(right_margin);
+ CHECK_CHANGE_AND_ROUNDING(upper_margin);
+ CHECK_CHANGE_AND_ROUNDING(lower_margin);
+ CHECK_CHANGE_AND_ROUNDING(hsync_len);
+ CHECK_CHANGE_AND_ROUNDING(vsync_len);
+ CHECK_CHANGE(sync);
+ CHECK_CHANGE(vmode);
+ CHECK_CHANGE(reserved[0]);
+ CHECK_CHANGE(reserved[1]);
+ CHECK_CHANGE(reserved[2]);
+ CHECK_CHANGE(reserved[3]);
+ CHECK_CHANGE(reserved[4]);
+ CHECK_CHANGE(reserved[5]);
+
+ var_validate();
+}
+
+#undef CHECK_CHANGE
+#undef CHECK_ROUNDING
+#undef CHECK_CHANGE_AND_ROUNDING
+
+
+ /*
+ * Validate the colormap
+ */
+
+static void cmap_validate(void)
+{
+ /* FIXME */
+}
+
+
+ /*
+ * Validate a change of the colormap
+ */
+
+static void cmap_validate_change(const struct fb_cmap *old, int error)
+{
+ /* FIXME */
+
+ cmap_validate();
+}
+
+
+ /*
+ * Validate the variable and fixed information about a frame buffer
+ */
+
+static void var_fix_validate(void)
+{
+ /* FIXME: check for impossible combinations */
+}
+
+
+ /*
+ * Initialization
+ */
+
+#define ALLOC_AND_SAVE_COMPONENT(name) \
+ do { \
+ if (!(saved_ ## name = malloc(fb_cmap.len*sizeof(u16)))) \
+ Fatal("malloc %d: %s\n", fb_cmap.len*sizeof(u16), \
+ strerror(errno)); \
+ memcpy(saved_ ## name, fb_cmap.name, fb_cmap.len*sizeof(u16)); \
+ } while (0)
+
+void fb_init(void)
+{
+ Debug("fb_init()\n");
+ fb_open();
+ fb_get_var();
+ saved_var = fb_var;
+ if (fb_var.xoffset || fb_var.yoffset || fb_var.accel_flags) {
+ fb_var.xoffset = 0;
+ fb_var.yoffset = 0;
+ fb_var.accel_flags = 0;
+ fb_set_var();
+ }
+ fb_get_fix();
+ var_fix_validate();
+ saved_fix = fb_fix;
+ switch (fb_fix.visual) {
+ case FB_VISUAL_MONO01:
+ case FB_VISUAL_MONO10:
+ case FB_VISUAL_TRUECOLOR:
+ /* no colormap */
+ break;
+
+ case FB_VISUAL_PSEUDOCOLOR:
+ case FB_VISUAL_STATIC_PSEUDOCOLOR:
+ cmap_init(1<<fb_var.bits_per_pixel);
+ break;
+
+ case FB_VISUAL_DIRECTCOLOR:
+ cmap_init(1<<(max(max(fb_var.red.length, fb_var.green.length),
+ max(fb_var.blue.length, fb_var.transp.length))));
+ break;
+ }
+ if (fb_cmap.len) {
+ fb_get_cmap();
+ saved_cmap = fb_cmap;
+ ALLOC_AND_SAVE_COMPONENT(red);
+ ALLOC_AND_SAVE_COMPONENT(green);
+ ALLOC_AND_SAVE_COMPONENT(blue);
+ if (fb_cmap.transp)
+ ALLOC_AND_SAVE_COMPONENT(transp);
+ }
+ fb_map();
+ fb_save();
+ fb_clear();
+}
+
+#undef ALLOC_AND_SAVE_COMPONENT
+
+
+ /*
+ * Clean up
+ */
+
+#define RESTORE_AND_FREE_COMPONENT(name) \
+ do { \
+ memcpy(fb_cmap.name, saved_ ## name, fb_cmap.len*sizeof(u16)); \
+ free(saved_ ## name); \
+ } while (0)
+
+void fb_cleanup(void)
+{
+ Debug("fb_cleanup()\n");
+ if (saved_fb)
+ fb_restore();
+ if (fb)
+ fb_unmap();
+ if (fb_fd != -1) {
+ if (saved_cmap.len) {
+ fb_cmap = saved_cmap;
+ RESTORE_AND_FREE_COMPONENT(red);
+ RESTORE_AND_FREE_COMPONENT(green);
+ RESTORE_AND_FREE_COMPONENT(blue);
+ if (fb_cmap.transp)
+ RESTORE_AND_FREE_COMPONENT(transp);
+ fb_set_cmap();
+ }
+ fb_var = saved_var;
+ fb_set_var();
+ fb_get_var();
+ /* FIXME: compare fb_var with saved_var */
+ fb_get_fix();
+ /* FIXME: compare fb_fix with saved_fix */
+ fb_close();
+ }
+}
+
+#undef RESTORE_AND_FREE_COMPONENT
+
+
+ /*
+ * Dump the colormap
+ */
+
+static void fb_dump_cmap(void)
+{
+ int i;
+
+ Debug("Colormap start = %d len = %d\n", fb_cmap.start, fb_cmap.len);
+ for (i = 0; i < fb_cmap.len; i++)
+ Debug("%4d: R %04x G %04x B %04x A %04x\n", i, fb_cmap.red[i],
+ fb_cmap.green[i], fb_cmap.blue[i], fb_cmap.transp[i]);
+}
+
diff --git a/fonts/Makefile b/fonts/Makefile
new file mode 100644
index 0000000..738a9f5
--- /dev/null
+++ b/fonts/Makefile
@@ -0,0 +1,7 @@
+
+TOPDIR = ..
+
+O_TARGET = fonts.o
+
+include $(TOPDIR)/Rules.make
+
diff --git a/fonts/pearl8x8.c b/fonts/pearl8x8.c
new file mode 100644
index 0000000..e3ecfb2
--- /dev/null
+++ b/fonts/pearl8x8.c
@@ -0,0 +1,2585 @@
+/**********************************************/
+/* */
+/* Font file generated by cpi2fnt */
+/* ------------------------------ */
+/* Combined with the alpha-numeric */
+/* portion of Greg Harp's old PEARL */
+/* font (from earlier versions of */
+/* linux-m86k) by John Shifflett */
+/* */
+/**********************************************/
+
+#include "font.h"
+
+static const unsigned char fontdata_pearl8x8[];
+
+const struct font pearl8x8 = {
+ width: 8,
+ height: 8,
+ data: fontdata_pearl8x8
+};
+
+static const unsigned char fontdata_pearl8x8[2048] = {
+
+ /* 0 0x00 '^@' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 1 0x01 '^A' */
+ 0x7e, /* 01111110 */
+ 0x81, /* 10000001 */
+ 0xa5, /* 10100101 */
+ 0x81, /* 10000001 */
+ 0xbd, /* 10111101 */
+ 0x99, /* 10011001 */
+ 0x81, /* 10000001 */
+ 0x7e, /* 01111110 */
+
+ /* 2 0x02 '^B' */
+ 0x7e, /* 01111110 */
+ 0xff, /* 11111111 */
+ 0xdb, /* 11011011 */
+ 0xff, /* 11111111 */
+ 0xc3, /* 11000011 */
+ 0xe7, /* 11100111 */
+ 0xff, /* 11111111 */
+ 0x7e, /* 01111110 */
+
+ /* 3 0x03 '^C' */
+ 0x6c, /* 01101100 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0x7c, /* 01111100 */
+ 0x38, /* 00111000 */
+ 0x10, /* 00010000 */
+ 0x00, /* 00000000 */
+
+ /* 4 0x04 '^D' */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x7c, /* 01111100 */
+ 0xfe, /* 11111110 */
+ 0x7c, /* 01111100 */
+ 0x38, /* 00111000 */
+ 0x10, /* 00010000 */
+ 0x00, /* 00000000 */
+
+ /* 5 0x05 '^E' */
+ 0x38, /* 00111000 */
+ 0x7c, /* 01111100 */
+ 0x38, /* 00111000 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0xd6, /* 11010110 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+
+ /* 6 0x06 '^F' */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x7c, /* 01111100 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0x7c, /* 01111100 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+
+ /* 7 0x07 '^G' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 8 0x08 '^H' */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xe7, /* 11100111 */
+ 0xc3, /* 11000011 */
+ 0xc3, /* 11000011 */
+ 0xe7, /* 11100111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+
+ /* 9 0x09 '^I' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x42, /* 01000010 */
+ 0x42, /* 01000010 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 10 0x0a '^J' */
+ 0xff, /* 11111111 */
+ 0xc3, /* 11000011 */
+ 0x99, /* 10011001 */
+ 0xbd, /* 10111101 */
+ 0xbd, /* 10111101 */
+ 0x99, /* 10011001 */
+ 0xc3, /* 11000011 */
+ 0xff, /* 11111111 */
+
+ /* 11 0x0b '^K' */
+ 0x0f, /* 00001111 */
+ 0x07, /* 00000111 */
+ 0x0f, /* 00001111 */
+ 0x7d, /* 01111101 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x78, /* 01111000 */
+
+ /* 12 0x0c '^L' */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+
+ /* 13 0x0d '^M' */
+ 0x3f, /* 00111111 */
+ 0x33, /* 00110011 */
+ 0x3f, /* 00111111 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x70, /* 01110000 */
+ 0xf0, /* 11110000 */
+ 0xe0, /* 11100000 */
+
+ /* 14 0x0e '^N' */
+ 0x7f, /* 01111111 */
+ 0x63, /* 01100011 */
+ 0x7f, /* 01111111 */
+ 0x63, /* 01100011 */
+ 0x63, /* 01100011 */
+ 0x67, /* 01100111 */
+ 0xe6, /* 11100110 */
+ 0xc0, /* 11000000 */
+
+ /* 15 0x0f '^O' */
+ 0x18, /* 00011000 */
+ 0xdb, /* 11011011 */
+ 0x3c, /* 00111100 */
+ 0xe7, /* 11100111 */
+ 0xe7, /* 11100111 */
+ 0x3c, /* 00111100 */
+ 0xdb, /* 11011011 */
+ 0x18, /* 00011000 */
+
+ /* 16 0x10 '^P' */
+ 0x80, /* 10000000 */
+ 0xe0, /* 11100000 */
+ 0xf8, /* 11111000 */
+ 0xfe, /* 11111110 */
+ 0xf8, /* 11111000 */
+ 0xe0, /* 11100000 */
+ 0x80, /* 10000000 */
+ 0x00, /* 00000000 */
+
+ /* 17 0x11 '^Q' */
+ 0x02, /* 00000010 */
+ 0x0e, /* 00001110 */
+ 0x3e, /* 00111110 */
+ 0xfe, /* 11111110 */
+ 0x3e, /* 00111110 */
+ 0x0e, /* 00001110 */
+ 0x02, /* 00000010 */
+ 0x00, /* 00000000 */
+
+ /* 18 0x12 '^R' */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+
+ /* 19 0x13 '^S' */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+
+ /* 20 0x14 '^T' */
+ 0x7f, /* 01111111 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0x7b, /* 01111011 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x00, /* 00000000 */
+
+ /* 21 0x15 '^U' */
+ 0x3e, /* 00111110 */
+ 0x61, /* 01100001 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x86, /* 10000110 */
+ 0x7c, /* 01111100 */
+
+ /* 22 0x16 '^V' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 23 0x17 '^W' */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+
+ /* 24 0x18 '^X' */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 25 0x19 '^Y' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 26 0x1a '^Z' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0xfe, /* 11111110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 27 0x1b '^[' */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xfe, /* 11111110 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 28 0x1c '^\' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 29 0x1d '^]' */
+ 0x00, /* 00000000 */
+ 0x24, /* 00100100 */
+ 0x66, /* 01100110 */
+ 0xff, /* 11111111 */
+ 0x66, /* 01100110 */
+ 0x24, /* 00100100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 30 0x1e '^^' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 31 0x1f '^_' */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0x7e, /* 01111110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 32 0x20 ' ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 33 0x21 '!' */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 34 0x22 '"' */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 35 0x23 '#' */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+
+ /* 36 0x24 '$' */
+ 0x18, /* 00011000 */
+ 0x3e, /* 00111110 */
+ 0x60, /* 01100000 */
+ 0x3c, /* 00111100 */
+ 0x06, /* 00000110 */
+ 0x7c, /* 01111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 37 0x25 '%' */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xcc, /* 11001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x66, /* 01100110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 38 0x26 '&' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x68, /* 01101000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 39 0x27 ''' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 40 0x28 '(' */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+
+ /* 41 0x29 ')' */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+
+ /* 42 0x2a '*' */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0xff, /* 11111111 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 43 0x2b '+' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 44 0x2c ',' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+
+ /* 45 0x2d '-' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 46 0x2e '.' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 47 0x2f '/' */
+ 0x03, /* 00000011 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+
+ /* 48 0x30 '0' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xde, /* 11011110 */
+ 0xfe, /* 11111110 */
+ 0xf6, /* 11110110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 49 0x31 '1' */
+ 0x18, /* 00011000 */
+ 0x78, /* 01111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 50 0x32 '2' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 51 0x33 '3' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0x06, /* 00000110 */
+ 0x1c, /* 00011100 */
+ 0x06, /* 00000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 52 0x34 '4' */
+ 0x1c, /* 00011100 */
+ 0x3c, /* 00111100 */
+ 0x6c, /* 01101100 */
+ 0xcc, /* 11001100 */
+ 0xfe, /* 11111110 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+
+ /* 53 0x35 '5' */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xfc, /* 11111100 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 54 0x36 '6' */
+ 0x38, /* 00111000 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 55 0x37 '7' */
+ 0xfe, /* 11111110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x00, /* 00000000 */
+
+ /* 56 0x38 '8' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 57 0x39 '9' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+
+ /* 58 0x3a ':' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 59 0x3b ';' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+
+ /* 60 0x3c '<' */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+
+ /* 61 0x3d '=' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 62 0x3e '>' */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+
+ /* 63 0x3f '?' */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 64 0x40 '@' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xde, /* 11011110 */
+ 0xde, /* 11011110 */
+ 0xde, /* 11011110 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 65 0x41 'A' */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 66 0x42 'B' */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfc, /* 11111100 */
+ 0x00, /* 00000000 */
+
+ /* 67 0x43 'C' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 68 0x44 'D' */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfc, /* 11111100 */
+ 0x00, /* 00000000 */
+
+ /* 69 0x45 'E' */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xf8, /* 11111000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 70 0x46 'F' */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xf8, /* 11111000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+
+ /* 71 0x47 'G' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xce, /* 11001110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 72 0x48 'H' */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 73 0x49 'I' */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 74 0x4a 'J' */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 75 0x4b 'K' */
+ 0xc6, /* 11000110 */
+ 0xcc, /* 11001100 */
+ 0xd8, /* 11011000 */
+ 0xf0, /* 11110000 */
+ 0xd8, /* 11011000 */
+ 0xcc, /* 11001100 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 76 0x4c 'L' */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 77 0x4d 'M' */
+ 0x82, /* 10000010 */
+ 0xc6, /* 11000110 */
+ 0xee, /* 11101110 */
+ 0xfe, /* 11111110 */
+ 0xd6, /* 11010110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 78 0x4e 'N' */
+ 0xc6, /* 11000110 */
+ 0xe6, /* 11100110 */
+ 0xf6, /* 11110110 */
+ 0xde, /* 11011110 */
+ 0xce, /* 11001110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 79 0x4f 'O' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 80 0x50 'P' */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfc, /* 11111100 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+
+ /* 81 0x51 'Q' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xf6, /* 11110110 */
+ 0xde, /* 11011110 */
+ 0x7c, /* 01111100 */
+ 0x06, /* 00000110 */
+
+ /* 82 0x52 'R' */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfc, /* 11111100 */
+ 0xd8, /* 11011000 */
+ 0xcc, /* 11001100 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 83 0x53 'S' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0x60, /* 01100000 */
+ 0x38, /* 00111000 */
+ 0x0c, /* 00001100 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 84 0x54 'T' */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 85 0x55 'U' */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 86 0x56 'V' */
+ 0xc3, /* 11000011 */
+ 0xc3, /* 11000011 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 87 0x57 'W' */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xd6, /* 11010110 */
+ 0xfe, /* 11111110 */
+ 0xee, /* 11101110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 88 0x58 'X' */
+ 0xc3, /* 11000011 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0xc3, /* 11000011 */
+ 0x00, /* 00000000 */
+
+ /* 89 0x59 'Y' */
+ 0xc3, /* 11000011 */
+ 0xc3, /* 11000011 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 90 0x5a 'Z' */
+ 0xfe, /* 11111110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 91 0x5b '[' */
+ 0x3c, /* 00111100 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 92 0x5c '\' */
+ 0xc0, /* 11000000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x06, /* 00000110 */
+ 0x03, /* 00000011 */
+ 0x00, /* 00000000 */
+
+ /* 93 0x5d ']' */
+ 0x3c, /* 00111100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 94 0x5e '^' */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 95 0x5f '_' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+
+ /* 96 0x60 '`' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 97 0x61 'a' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0x06, /* 00000110 */
+ 0x7e, /* 01111110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 98 0x62 'b' */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfc, /* 11111100 */
+ 0x00, /* 00000000 */
+
+ /* 99 0x63 'c' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 100 0x64 'd' */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x7e, /* 01111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 101 0x65 'e' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 102 0x66 'f' */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x60, /* 01100000 */
+ 0xf0, /* 11110000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x00, /* 00000000 */
+
+ /* 103 0x67 'g' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x06, /* 00000110 */
+ 0x7c, /* 01111100 */
+
+ /* 104 0x68 'h' */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 105 0x69 'i' */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 106 0x6a 'j' */
+ 0x06, /* 00000110 */
+ 0x00, /* 00000000 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+
+ /* 107 0x6b 'k' */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xcc, /* 11001100 */
+ 0xd8, /* 11011000 */
+ 0xf0, /* 11110000 */
+ 0xd8, /* 11011000 */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+
+ /* 108 0x6c 'l' */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 109 0x6d 'm' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xec, /* 11101100 */
+ 0xfe, /* 11111110 */
+ 0xd6, /* 11010110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 110 0x6e 'n' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 111 0x6f 'o' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 112 0x70 'p' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfc, /* 11111100 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+
+ /* 113 0x71 'q' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+
+ /* 114 0x72 'r' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xdc, /* 11011100 */
+ 0xe6, /* 11100110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+
+ /* 115 0x73 's' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x06, /* 00000110 */
+ 0xfc, /* 11111100 */
+ 0x00, /* 00000000 */
+
+ /* 116 0x74 't' */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x7c, /* 01111100 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x36, /* 00110110 */
+ 0x1c, /* 00011100 */
+ 0x00, /* 00000000 */
+
+ /* 117 0x75 'u' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 118 0x76 'v' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+
+ /* 119 0x77 'w' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xd6, /* 11010110 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+
+ /* 120 0x78 'x' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 121 0x79 'y' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc3, /* 11000011 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+
+ /* 122 0x7a 'z' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x0c, /* 00001100 */
+ 0x38, /* 00111000 */
+ 0x60, /* 01100000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 123 0x7b '{' */
+ 0x0e, /* 00001110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x70, /* 01110000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x0e, /* 00001110 */
+ 0x00, /* 00000000 */
+
+ /* 124 0x7c '|' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 125 0x7d '}' */
+ 0x70, /* 01110000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x0e, /* 00001110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+
+ /* 126 0x7e '~' */
+ 0x72, /* 01110010 */
+ 0x9c, /* 10011100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 127 0x7f '' */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 128 0x80 '€' */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x0c, /* 00001100 */
+ 0x78, /* 01111000 */
+
+ /* 129 0x81 '' */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 130 0x82 '‚' */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 131 0x83 'ƒ' */
+ 0x7c, /* 01111100 */
+ 0x82, /* 10000010 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 132 0x84 '„' */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 133 0x85 '…' */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 134 0x86 '†' */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 135 0x87 '‡' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x7e, /* 01111110 */
+ 0x0c, /* 00001100 */
+ 0x38, /* 00111000 */
+
+ /* 136 0x88 'ˆ' */
+ 0x7c, /* 01111100 */
+ 0x82, /* 10000010 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 137 0x89 '‰' */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 138 0x8a 'Š' */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 139 0x8b '‹' */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 140 0x8c 'Œ' */
+ 0x7c, /* 01111100 */
+ 0x82, /* 10000010 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 141 0x8d '' */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 142 0x8e 'Ž' */
+ 0xc6, /* 11000110 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 143 0x8f '' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 144 0x90 '' */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xf8, /* 11111000 */
+ 0xc0, /* 11000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 145 0x91 '‘' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0xd8, /* 11011000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 146 0x92 '’' */
+ 0x3e, /* 00111110 */
+ 0x6c, /* 01101100 */
+ 0xcc, /* 11001100 */
+ 0xfe, /* 11111110 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xce, /* 11001110 */
+ 0x00, /* 00000000 */
+
+ /* 147 0x93 '“' */
+ 0x7c, /* 01111100 */
+ 0x82, /* 10000010 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 148 0x94 '”' */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 149 0x95 '•' */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 150 0x96 '–' */
+ 0x78, /* 01111000 */
+ 0x84, /* 10000100 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 151 0x97 '—' */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 152 0x98 '˜' */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x06, /* 00000110 */
+ 0xfc, /* 11111100 */
+
+ /* 153 0x99 '™' */
+ 0xc6, /* 11000110 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+
+ /* 154 0x9a 'š' */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 155 0x9b '›' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 156 0x9c 'œ' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x64, /* 01100100 */
+ 0xf0, /* 11110000 */
+ 0x60, /* 01100000 */
+ 0x66, /* 01100110 */
+ 0xfc, /* 11111100 */
+ 0x00, /* 00000000 */
+
+ /* 157 0x9d '' */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 158 0x9e 'ž' */
+ 0xf8, /* 11111000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xfa, /* 11111010 */
+ 0xc6, /* 11000110 */
+ 0xcf, /* 11001111 */
+ 0xc6, /* 11000110 */
+ 0xc7, /* 11000111 */
+
+ /* 159 0x9f 'Ÿ' */
+ 0x0e, /* 00001110 */
+ 0x1b, /* 00011011 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0xd8, /* 11011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+
+ /* 160 0xa0 ' ' */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 161 0xa1 '¡' */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 162 0xa2 '¢' */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+
+ /* 163 0xa3 '£' */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 164 0xa4 '¤' */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0xdc, /* 11011100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+
+ /* 165 0xa5 '¥' */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0xe6, /* 11100110 */
+ 0xf6, /* 11110110 */
+ 0xde, /* 11011110 */
+ 0xce, /* 11001110 */
+ 0x00, /* 00000000 */
+
+ /* 166 0xa6 '¦' */
+ 0x3c, /* 00111100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x3e, /* 00111110 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 167 0xa7 '§' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 168 0xa8 '¨' */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x63, /* 01100011 */
+ 0x3e, /* 00111110 */
+ 0x00, /* 00000000 */
+
+ /* 169 0xa9 '©' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 170 0xaa 'ª' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 171 0xab '«' */
+ 0x63, /* 01100011 */
+ 0xe6, /* 11100110 */
+ 0x6c, /* 01101100 */
+ 0x7e, /* 01111110 */
+ 0x33, /* 00110011 */
+ 0x66, /* 01100110 */
+ 0xcc, /* 11001100 */
+ 0x0f, /* 00001111 */
+
+ /* 172 0xac '¬' */
+ 0x63, /* 01100011 */
+ 0xe6, /* 11100110 */
+ 0x6c, /* 01101100 */
+ 0x7a, /* 01111010 */
+ 0x36, /* 00110110 */
+ 0x6a, /* 01101010 */
+ 0xdf, /* 11011111 */
+ 0x06, /* 00000110 */
+
+ /* 173 0xad '­' */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 174 0xae '®' */
+ 0x00, /* 00000000 */
+ 0x33, /* 00110011 */
+ 0x66, /* 01100110 */
+ 0xcc, /* 11001100 */
+ 0x66, /* 01100110 */
+ 0x33, /* 00110011 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 175 0xaf '¯' */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0x66, /* 01100110 */
+ 0x33, /* 00110011 */
+ 0x66, /* 01100110 */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 176 0xb0 '°' */
+ 0x22, /* 00100010 */
+ 0x88, /* 10001000 */
+ 0x22, /* 00100010 */
+ 0x88, /* 10001000 */
+ 0x22, /* 00100010 */
+ 0x88, /* 10001000 */
+ 0x22, /* 00100010 */
+ 0x88, /* 10001000 */
+
+ /* 177 0xb1 '±' */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+
+ /* 178 0xb2 '²' */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+
+ /* 179 0xb3 '³' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 180 0xb4 '´' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 181 0xb5 'µ' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 182 0xb6 '¶' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf6, /* 11110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 183 0xb7 '·' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 184 0xb8 '¸' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 185 0xb9 '¹' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf6, /* 11110110 */
+ 0x06, /* 00000110 */
+ 0xf6, /* 11110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 186 0xba 'º' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 187 0xbb '»' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x06, /* 00000110 */
+ 0xf6, /* 11110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 188 0xbc '¼' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf6, /* 11110110 */
+ 0x06, /* 00000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 189 0xbd '½' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 190 0xbe '¾' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 191 0xbf '¿' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 192 0xc0 'À' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 193 0xc1 'Á' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 194 0xc2 'Â' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 195 0xc3 'Ã' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 196 0xc4 'Ä' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 197 0xc5 'Å' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 198 0xc6 'Æ' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 199 0xc7 'Ç' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x37, /* 00110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 200 0xc8 'È' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x37, /* 00110111 */
+ 0x30, /* 00110000 */
+ 0x3f, /* 00111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 201 0xc9 'É' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3f, /* 00111111 */
+ 0x30, /* 00110000 */
+ 0x37, /* 00110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 202 0xca 'Ê' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf7, /* 11110111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 203 0xcb 'Ë' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xf7, /* 11110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 204 0xcc 'Ì' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x37, /* 00110111 */
+ 0x30, /* 00110000 */
+ 0x37, /* 00110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 205 0xcd 'Í' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 206 0xce 'Î' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf7, /* 11110111 */
+ 0x00, /* 00000000 */
+ 0xf7, /* 11110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 207 0xcf 'Ï' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 208 0xd0 'Ð' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 209 0xd1 'Ñ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 210 0xd2 'Ò' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 211 0xd3 'Ó' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x3f, /* 00111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 212 0xd4 'Ô' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 213 0xd5 'Õ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 214 0xd6 'Ö' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3f, /* 00111111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 215 0xd7 '×' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xff, /* 11111111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 216 0xd8 'Ø' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 217 0xd9 'Ù' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 218 0xda 'Ú' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 219 0xdb 'Û' */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+
+ /* 220 0xdc 'Ü' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+
+ /* 221 0xdd 'Ý' */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+
+ /* 222 0xde 'Þ' */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+
+ /* 223 0xdf 'ß' */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 224 0xe0 'à' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0xc8, /* 11001000 */
+ 0xdc, /* 11011100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+
+ /* 225 0xe1 'á' */
+ 0x78, /* 01111000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xd8, /* 11011000 */
+ 0xcc, /* 11001100 */
+ 0xc6, /* 11000110 */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+
+ /* 226 0xe2 'â' */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+
+ /* 227 0xe3 'ã' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+
+ /* 228 0xe4 'ä' */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+
+ /* 229 0xe5 'å' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+
+ /* 230 0xe6 'æ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x7c, /* 01111100 */
+ 0xc0, /* 11000000 */
+
+ /* 231 0xe7 'ç' */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+
+ /* 232 0xe8 'è' */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+
+ /* 233 0xe9 'é' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+
+ /* 234 0xea 'ê' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0xee, /* 11101110 */
+ 0x00, /* 00000000 */
+
+ /* 235 0xeb 'ë' */
+ 0x0e, /* 00001110 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x3e, /* 00111110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 236 0xec 'ì' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 237 0xed 'í' */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x7e, /* 01111110 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0x7e, /* 01111110 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+
+ /* 238 0xee 'î' */
+ 0x1e, /* 00011110 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x7e, /* 01111110 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x1e, /* 00011110 */
+ 0x00, /* 00000000 */
+
+ /* 239 0xef 'ï' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+
+ /* 240 0xf0 'ð' */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 241 0xf1 'ñ' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 242 0xf2 'ò' */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 243 0xf3 'ó' */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+
+ /* 244 0xf4 'ô' */
+ 0x0e, /* 00001110 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 245 0xf5 'õ' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0x70, /* 01110000 */
+
+ /* 246 0xf6 'ö' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 247 0xf7 '÷' */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 248 0xf8 'ø' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 249 0xf9 'ù' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 250 0xfa 'ú' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 251 0xfb 'û' */
+ 0x0f, /* 00001111 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0xec, /* 11101100 */
+ 0x6c, /* 01101100 */
+ 0x3c, /* 00111100 */
+ 0x1c, /* 00011100 */
+
+ /* 252 0xfc 'ü' */
+ 0x6c, /* 01101100 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 253 0xfd 'ý' */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 254 0xfe 'þ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 255 0xff 'ÿ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+};
+
diff --git a/fonts/sun12x22.c b/fonts/sun12x22.c
new file mode 100644
index 0000000..b282287
--- /dev/null
+++ b/fonts/sun12x22.c
@@ -0,0 +1,6214 @@
+
+#include "font.h"
+
+static const unsigned char fontdata_sun12x22[];
+
+const struct font sun12x22 = {
+ width: 12,
+ height: 22,
+ data: fontdata_sun12x22
+};
+
+static const unsigned char fontdata_sun12x22[11264] = {
+
+ /* 0 0x00 '^@' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 1 0x01 '^A' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 2 0x02 '^B' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 3 0x03 '^C' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 4 0x04 '^D' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 5 0x05 '^E' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 6 0x06 '^F' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 7 0x07 '^G' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 8 0x08 '^H' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 9 0x09 '^I' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 10 0x0a '^J' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 11 0x0b '^K' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 12 0x0c '^L' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 13 0x0d '^M' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 14 0x0e '^N' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 15 0x0f '^O' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 16 0x10 '^P' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 17 0x11 '^Q' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 18 0x12 '^R' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 19 0x13 '^S' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 20 0x14 '^T' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0xf0, /* 000111111111 */
+ 0x3c, 0xc0, /* 001111001100 */
+ 0x7c, 0xc0, /* 011111001100 */
+ 0x7c, 0xc0, /* 011111001100 */
+ 0x7c, 0xc0, /* 011111001100 */
+ 0x3c, 0xc0, /* 001111001100 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x1c, 0xe0, /* 000111001110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 21 0x15 '^U' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 22 0x16 '^V' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 23 0x17 '^W' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 24 0x18 '^X' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 25 0x19 '^Y' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 26 0x1a '^Z' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 27 0x1b '^[' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 28 0x1c '^\' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 29 0x1d '^]' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 30 0x1e '^^' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 31 0x1f '^_' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 32 0x20 ' ' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 33 0x21 '!' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 34 0x22 '"' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 35 0x23 '#' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0x30, /* 000000110011 */
+ 0x03, 0x30, /* 000000110011 */
+ 0x03, 0x30, /* 000000110011 */
+ 0x06, 0x60, /* 000001100110 */
+ 0x1f, 0xf0, /* 000111111111 */
+ 0x1f, 0xf0, /* 000111111111 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x33, 0x00, /* 001100110000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 36 0x24 '$' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x66, 0xe0, /* 011001101110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x3e, 0x00, /* 001111100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x07, 0xc0, /* 000001111100 */
+ 0x06, 0x60, /* 000001100110 */
+ 0x06, 0x60, /* 000001100110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 37 0x25 '%' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x38, 0xc0, /* 001110001100 */
+ 0x4c, 0xc0, /* 010011001100 */
+ 0x45, 0x80, /* 010001011000 */
+ 0x65, 0x80, /* 011001011000 */
+ 0x3b, 0x00, /* 001110110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0d, 0xc0, /* 000011011100 */
+ 0x1a, 0x60, /* 000110100110 */
+ 0x1a, 0x20, /* 000110100010 */
+ 0x33, 0x20, /* 001100110010 */
+ 0x31, 0xc0, /* 001100011100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 38 0x26 '&' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x3e, 0x00, /* 001111100000 */
+ 0x77, 0x00, /* 011101110000 */
+ 0x63, 0x60, /* 011000110110 */
+ 0x61, 0xe0, /* 011000011110 */
+ 0x61, 0xc0, /* 011000011100 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x3f, 0xe0, /* 001111111110 */
+ 0x1e, 0x60, /* 000111100110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 39 0x27 ''' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 40 0x28 '(' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 41 0x29 ')' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 42 0x2a '*' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x76, 0xe0, /* 011101101110 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x76, 0xe0, /* 011101101110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 43 0x2b '+' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 44 0x2c ',' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 45 0x2d '-' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 46 0x2e '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 47 0x2f '/' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 48 0x30 '0' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 49 0x31 '1' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x36, 0x00, /* 001101100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 50 0x32 '2' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x61, 0xc0, /* 011000011100 */
+ 0x40, 0xc0, /* 010000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 51 0x33 '3' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x1f, 0xc0, /* 000111111100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0xe0, /* 000000001110 */
+ 0x07, 0xc0, /* 000001111100 */
+ 0x0f, 0xc0, /* 000011111100 */
+ 0x00, 0xe0, /* 000000001110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0x60, 0x40, /* 011000000100 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 52 0x34 '4' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x05, 0x80, /* 000001011000 */
+ 0x05, 0x80, /* 000001011000 */
+ 0x09, 0x80, /* 000010011000 */
+ 0x09, 0x80, /* 000010011000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x21, 0x80, /* 001000011000 */
+ 0x3f, 0xe0, /* 001111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 53 0x35 '5' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0xc0, /* 000011111100 */
+ 0x0f, 0xc0, /* 000011111100 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x20, 0x00, /* 001000000000 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x31, 0xc0, /* 001100011100 */
+ 0x00, 0xe0, /* 000000001110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 54 0x36 '6' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x67, 0x80, /* 011001111000 */
+ 0x6f, 0xc0, /* 011011111100 */
+ 0x70, 0xe0, /* 011100001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 55 0x37 '7' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0xe0, /* 000111111110 */
+ 0x3f, 0xe0, /* 001111111110 */
+ 0x60, 0x40, /* 011000000100 */
+ 0x00, 0x40, /* 000000000100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0x80, /* 000000001000 */
+ 0x00, 0x80, /* 000000001000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x01, 0x00, /* 000000010000 */
+ 0x01, 0x00, /* 000000010000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 56 0x38 '8' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 57 0x39 '9' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0xe0, /* 011100001110 */
+ 0x3f, 0x60, /* 001111110110 */
+ 0x1e, 0x60, /* 000111100110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x3c, 0x00, /* 001111000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 58 0x3a ':' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 59 0x3b ';' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 60 0x3c '<' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x01, 0xc0, /* 000000011100 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x1c, 0x00, /* 000111000000 */
+ 0x70, 0x00, /* 011100000000 */
+ 0x70, 0x00, /* 011100000000 */
+ 0x1c, 0x00, /* 000111000000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x01, 0xc0, /* 000000011100 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 61 0x3d '=' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 62 0x3e '>' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x38, 0x00, /* 001110000000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x00, 0xe0, /* 000000001110 */
+ 0x00, 0xe0, /* 000000001110 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x38, 0x00, /* 001110000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 63 0x3f '?' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 64 0x40 '@' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x30, 0x60, /* 001100000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x67, 0x20, /* 011001110010 */
+ 0x6f, 0xa0, /* 011011111010 */
+ 0x6c, 0xa0, /* 011011001010 */
+ 0x6c, 0xa0, /* 011011001010 */
+ 0x67, 0xe0, /* 011001111110 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x3f, 0xe0, /* 001111111110 */
+ 0x0f, 0xe0, /* 000011111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 65 0x41 'A' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x09, 0x00, /* 000010010000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x10, 0x80, /* 000100001000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x20, 0x40, /* 001000000100 */
+ 0x40, 0x60, /* 010000000110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0xe0, 0xf0, /* 111000001111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 66 0x42 'B' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0x00, /* 111111110000 */
+ 0x60, 0x80, /* 011000001000 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x7f, 0x80, /* 011111111000 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0xff, 0x80, /* 111111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 67 0x43 'C' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0xc0, /* 000011111100 */
+ 0x10, 0x60, /* 000100000110 */
+ 0x20, 0x20, /* 001000000010 */
+ 0x20, 0x00, /* 001000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x20, 0x00, /* 001000000000 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x18, 0x40, /* 000110000100 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 68 0x44 'D' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0x00, /* 111111110000 */
+ 0x61, 0xc0, /* 011000011100 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x40, /* 011000000100 */
+ 0x61, 0x80, /* 011000011000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 69 0x45 'E' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 70 0x46 'F' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 71 0x47 'G' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0xc0, /* 000011111100 */
+ 0x10, 0x60, /* 000100000110 */
+ 0x20, 0x20, /* 001000000010 */
+ 0x20, 0x00, /* 001000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x61, 0xf0, /* 011000011111 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x20, 0x60, /* 001000000110 */
+ 0x30, 0x60, /* 001100000110 */
+ 0x18, 0x60, /* 000110000110 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 72 0x48 'H' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0xf0, /* 111100001111 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0xf0, 0xf0, /* 111100001111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 73 0x49 'I' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 74 0x4a 'J' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x38, 0x00, /* 001110000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 75 0x4b 'K' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0xe0, /* 111100001110 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x63, 0x00, /* 011000110000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x6c, 0x00, /* 011011000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x7c, 0x00, /* 011111000000 */
+ 0x6e, 0x00, /* 011011100000 */
+ 0x67, 0x00, /* 011001110000 */
+ 0x63, 0x80, /* 011000111000 */
+ 0x61, 0xc0, /* 011000011100 */
+ 0x60, 0xe0, /* 011000001110 */
+ 0xf0, 0x70, /* 111100000111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 76 0x4c 'L' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 77 0x4d 'M' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xe0, 0x70, /* 111000000111 */
+ 0x60, 0xe0, /* 011000001110 */
+ 0x70, 0xe0, /* 011100001110 */
+ 0x70, 0xe0, /* 011100001110 */
+ 0x70, 0xe0, /* 011100001110 */
+ 0x59, 0x60, /* 010110010110 */
+ 0x59, 0x60, /* 010110010110 */
+ 0x59, 0x60, /* 010110010110 */
+ 0x4d, 0x60, /* 010011010110 */
+ 0x4e, 0x60, /* 010011100110 */
+ 0x4e, 0x60, /* 010011100110 */
+ 0x44, 0x60, /* 010001000110 */
+ 0x44, 0x60, /* 010001000110 */
+ 0xe4, 0xf0, /* 111001001111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 78 0x4e 'N' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xc0, 0x70, /* 110000000111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x70, 0x20, /* 011100000010 */
+ 0x78, 0x20, /* 011110000010 */
+ 0x58, 0x20, /* 010110000010 */
+ 0x4c, 0x20, /* 010011000010 */
+ 0x46, 0x20, /* 010001100010 */
+ 0x47, 0x20, /* 010001110010 */
+ 0x43, 0x20, /* 010000110010 */
+ 0x41, 0xa0, /* 010000011010 */
+ 0x40, 0xe0, /* 010000001110 */
+ 0x40, 0xe0, /* 010000001110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0xe0, 0x30, /* 111000000011 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 79 0x4f 'O' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x20, 0x60, /* 001000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x20, 0x40, /* 001000000100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 80 0x50 'P' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0x80, /* 011111111000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0x60, /* 001100000110 */
+ 0x30, 0x60, /* 001100000110 */
+ 0x30, 0x60, /* 001100000110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x37, 0x80, /* 001101111000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 81 0x51 'Q' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x20, 0x60, /* 001000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x38, 0x40, /* 001110000100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x23, 0x90, /* 001000111001 */
+ 0x01, 0xe0, /* 000000011110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 82 0x52 'R' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0x00, /* 111111110000 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0x80, /* 011000001000 */
+ 0x7f, 0x00, /* 011111110000 */
+ 0x7c, 0x00, /* 011111000000 */
+ 0x6e, 0x00, /* 011011100000 */
+ 0x67, 0x00, /* 011001110000 */
+ 0x63, 0x80, /* 011000111000 */
+ 0x61, 0xc0, /* 011000011100 */
+ 0x60, 0xe0, /* 011000001110 */
+ 0xf0, 0x70, /* 111100000111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 83 0x53 'S' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0xe0, /* 000111111110 */
+ 0x30, 0x60, /* 001100000110 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x70, 0x00, /* 011100000000 */
+ 0x3c, 0x00, /* 001111000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x07, 0x80, /* 000001111000 */
+ 0x01, 0xc0, /* 000000011100 */
+ 0x00, 0xe0, /* 000000001110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x7f, 0x80, /* 011111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 84 0x54 'T' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x46, 0x20, /* 010001100010 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 85 0x55 'U' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0x70, /* 111100000111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 86 0x56 'V' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xe0, 0xe0, /* 111000001110 */
+ 0x60, 0x40, /* 011000000100 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x19, 0x00, /* 000110010000 */
+ 0x19, 0x00, /* 000110010000 */
+ 0x19, 0x00, /* 000110010000 */
+ 0x0a, 0x00, /* 000010100000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 87 0x57 'W' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xfe, 0xf0, /* 111111101111 */
+ 0x66, 0x20, /* 011001100010 */
+ 0x66, 0x20, /* 011001100010 */
+ 0x66, 0x20, /* 011001100010 */
+ 0x76, 0x20, /* 011101100010 */
+ 0x77, 0x40, /* 011101110100 */
+ 0x33, 0x40, /* 001100110100 */
+ 0x37, 0x40, /* 001101110100 */
+ 0x3b, 0xc0, /* 001110111100 */
+ 0x3b, 0x80, /* 001110111000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 88 0x58 'X' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0x70, /* 111100000111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x40, 0x60, /* 010000000110 */
+ 0xe0, 0xf0, /* 111000001111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 89 0x59 'Y' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0x70, /* 111100000111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 90 0x5a 'Z' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xe0, /* 001111111110 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x20, /* 000110000010 */
+ 0x3f, 0xe0, /* 001111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 91 0x5b '[' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 92 0x5c '\' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 93 0x5d ']' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 94 0x5e '^' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x1b, 0x00, /* 000110110000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 95 0x5f '_' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 96 0x60 '`' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x00, /* 000000010000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0x80, /* 000001111000 */
+ 0x07, 0x80, /* 000001111000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 97 0x61 'a' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x03, 0xc0, /* 000000111100 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0xe0, /* 000111101110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 98 0x62 'b' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x20, 0x00, /* 001000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0xe0, 0x00, /* 111000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x67, 0x80, /* 011001111000 */
+ 0x6f, 0xc0, /* 011011111100 */
+ 0x70, 0xe0, /* 011100001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x60, /* 011100000110 */
+ 0x78, 0xc0, /* 011110001100 */
+ 0x4f, 0x80, /* 010011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 99 0x63 'c' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x31, 0xc0, /* 001100011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 100 0x64 'd' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0xe0, /* 000000001110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x0f, 0x60, /* 000011110110 */
+ 0x31, 0xe0, /* 001100011110 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0xe0, /* 011100001110 */
+ 0x39, 0x60, /* 001110010110 */
+ 0x1e, 0x70, /* 000111100111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 101 0x65 'e' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x18, 0x60, /* 000110000110 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 102 0x66 'f' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x04, 0xc0, /* 000001001100 */
+ 0x04, 0xc0, /* 000001001100 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 103 0x67 'g' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x20, /* 000111110010 */
+ 0x31, 0xe0, /* 001100011110 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x60, 0xc0, /* 011000001100 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x3f, 0x00, /* 001111110000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x3f, 0xe0, /* 001111111110 */
+ 0x20, 0x60, /* 001000000110 */
+ 0x40, 0x20, /* 010000000010 */
+ 0x40, 0x20, /* 010000000010 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 104 0x68 'h' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x70, 0x00, /* 011100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x37, 0x80, /* 001101111000 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 105 0x69 'i' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 106 0x6a 'j' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0xc0, /* 000000111100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 107 0x6b 'k' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0xe0, 0x00, /* 111000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x61, 0xc0, /* 011000011100 */
+ 0x63, 0x00, /* 011000110000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x7c, 0x00, /* 011111000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x7c, 0x00, /* 011111000000 */
+ 0x6e, 0x00, /* 011011100000 */
+ 0x67, 0x00, /* 011001110000 */
+ 0x63, 0x80, /* 011000111000 */
+ 0xf1, 0xe0, /* 111100011110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 108 0x6c 'l' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 109 0x6d 'm' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xdd, 0xc0, /* 110111011100 */
+ 0x6e, 0xe0, /* 011011101110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0x66, 0x60, /* 011001100110 */
+ 0xef, 0x70, /* 111011110111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 110 0x6e 'n' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x27, 0x80, /* 001001111000 */
+ 0x79, 0xc0, /* 011110011100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 111 0x6f 'o' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 112 0x70 'p' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xef, 0x80, /* 111011111000 */
+ 0x71, 0xc0, /* 011100011100 */
+ 0x60, 0xe0, /* 011000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x40, /* 011000000100 */
+ 0x70, 0x80, /* 011100001000 */
+ 0x7f, 0x00, /* 011111110000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0xf0, 0x00, /* 111100000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 113 0x71 'q' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x20, /* 000011110010 */
+ 0x11, 0xe0, /* 000100011110 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x60, /* 011100000110 */
+ 0x38, 0xe0, /* 001110001110 */
+ 0x1f, 0xe0, /* 000111111110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0x60, /* 000000000110 */
+ 0x00, 0xf0, /* 000000001111 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 114 0x72 'r' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x73, 0x80, /* 011100111000 */
+ 0x34, 0xc0, /* 001101001100 */
+ 0x38, 0xc0, /* 001110001100 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 115 0x73 's' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0xc0, /* 000111111100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x38, 0x00, /* 001110000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x07, 0x80, /* 000001111000 */
+ 0x01, 0xc0, /* 000000011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 116 0x74 't' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x7f, 0xc0, /* 011111111100 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0c, 0x20, /* 000011000010 */
+ 0x0e, 0x40, /* 000011100100 */
+ 0x07, 0x80, /* 000001111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 117 0x75 'u' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0x60, /* 000111100110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 118 0x76 'v' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0x70, /* 111100000111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 119 0x77 'w' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0x70, /* 111111110111 */
+ 0x66, 0x20, /* 011001100010 */
+ 0x66, 0x20, /* 011001100010 */
+ 0x66, 0x20, /* 011001100010 */
+ 0x37, 0x40, /* 001101110100 */
+ 0x3b, 0x40, /* 001110110100 */
+ 0x3b, 0x40, /* 001110110100 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 120 0x78 'x' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf8, 0xf0, /* 111110001111 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x1d, 0x00, /* 000111010000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0b, 0x80, /* 000010111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0xf1, 0xf0, /* 111100011111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 121 0x79 'y' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0xf0, /* 111100001111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x08, 0x00, /* 000010000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x70, 0x00, /* 011100000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 122 0x7a 'z' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x60, 0xe0, /* 011000001110 */
+ 0x41, 0xc0, /* 010000011100 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x1c, 0x00, /* 000111000000 */
+ 0x38, 0x20, /* 001110000010 */
+ 0x70, 0x60, /* 011100000110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 123 0x7b '{' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x38, 0x00, /* 001110000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x80, /* 000000111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 124 0x7c '|' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 125 0x7d '}' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1c, 0x00, /* 000111000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x01, 0xc0, /* 000000011100 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1c, 0x00, /* 000111000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 126 0x7e '~' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1c, 0x20, /* 000111000010 */
+ 0x3e, 0x60, /* 001111100110 */
+ 0x67, 0xc0, /* 011001111100 */
+ 0x43, 0x80, /* 010000111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 127 0x7f '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 128 0x80 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0xc0, /* 000011111100 */
+ 0x10, 0x60, /* 000100000110 */
+ 0x20, 0x20, /* 001000000010 */
+ 0x20, 0x00, /* 001000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x20, 0x00, /* 001000000000 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x18, 0x40, /* 000110000100 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 129 0x81 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0x60, /* 000111100110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 130 0x82 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x18, 0x60, /* 000110000110 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 131 0x83 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x03, 0xc0, /* 000000111100 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0xe0, /* 000111101110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 132 0x84 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x03, 0xc0, /* 000000111100 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0xe0, /* 000111101110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 133 0x85 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x03, 0xc0, /* 000000111100 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0xe0, /* 000111101110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 134 0x86 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x03, 0xc0, /* 000000111100 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0xe0, /* 000111101110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 135 0x87 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x31, 0xc0, /* 001100011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 136 0x88 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x18, 0x60, /* 000110000110 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 137 0x89 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x18, 0x60, /* 000110000110 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 138 0x8a '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x18, 0x60, /* 000110000110 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 139 0x8b '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 140 0x8c '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x1b, 0x00, /* 000110110000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 141 0x8d '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 142 0x8e '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0xe0, 0xf0, /* 111000001111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 143 0x8f '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x11, 0x80, /* 000100011000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0xe0, 0xf0, /* 111000001111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 144 0x90 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x08, 0x00, /* 000010000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x3f, 0x80, /* 001111111000 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x30, 0x20, /* 001100000010 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 145 0x91 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3d, 0xe0, /* 001111011110 */
+ 0x66, 0x30, /* 011001100011 */
+ 0x46, 0x30, /* 010001100011 */
+ 0x06, 0x30, /* 000001100011 */
+ 0x3f, 0xf0, /* 001111111111 */
+ 0x66, 0x00, /* 011001100000 */
+ 0xc6, 0x00, /* 110001100000 */
+ 0xc6, 0x00, /* 110001100000 */
+ 0xe7, 0x30, /* 111001110011 */
+ 0x7d, 0xe0, /* 011111011110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 146 0x92 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x07, 0x10, /* 000001110001 */
+ 0x07, 0x10, /* 000001110001 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x0b, 0x00, /* 000010110000 */
+ 0x0b, 0x20, /* 000010110010 */
+ 0x13, 0xe0, /* 000100111110 */
+ 0x13, 0x20, /* 000100110010 */
+ 0x3f, 0x00, /* 001111110000 */
+ 0x23, 0x00, /* 001000110000 */
+ 0x23, 0x00, /* 001000110000 */
+ 0x43, 0x10, /* 010000110001 */
+ 0x43, 0x10, /* 010000110001 */
+ 0xe7, 0xf0, /* 111001111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 147 0x93 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 148 0x94 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 149 0x95 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 150 0x96 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0x60, /* 000111100110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 151 0x97 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0x60, /* 000111100110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 152 0x98 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xf0, 0xf0, /* 111100001111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x0d, 0x00, /* 000011010000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x04, 0x00, /* 000001000000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x08, 0x00, /* 000010000000 */
+ 0x78, 0x00, /* 011110000000 */
+ 0x70, 0x00, /* 011100000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 153 0x99 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x20, 0x60, /* 001000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x20, 0x40, /* 001000000100 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x18, 0x80, /* 000110001000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 154 0x9a '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0xe0, 0x30, /* 111000000011 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 155 0x9b '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x36, 0xc0, /* 001101101100 */
+ 0x26, 0xc0, /* 001001101100 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x76, 0x40, /* 011101100100 */
+ 0x36, 0xc0, /* 001101101100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 156 0x9c '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x7e, 0x00, /* 011111100000 */
+ 0x7e, 0x00, /* 011111100000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x3e, 0x20, /* 001111100010 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x61, 0xc0, /* 011000011100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 157 0x9d '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 158 0x9e '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 159 0x9f '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 160 0xa0 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x18, 0xc0, /* 000110001100 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x03, 0xc0, /* 000000111100 */
+ 0x1c, 0xc0, /* 000111001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0xe0, /* 000111101110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 161 0xa1 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1e, 0x00, /* 000111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 162 0xa2 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x80, /* 000011111000 */
+ 0x11, 0xc0, /* 000100011100 */
+ 0x20, 0xe0, /* 001000001110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x60, 0x60, /* 011000000110 */
+ 0x70, 0x40, /* 011100000100 */
+ 0x38, 0x80, /* 001110001000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 163 0xa3 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1e, 0x60, /* 000111100110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 164 0xa4 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1c, 0x40, /* 000111000100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x23, 0x80, /* 001000111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x27, 0x80, /* 001001111000 */
+ 0x79, 0xc0, /* 011110011100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x79, 0xe0, /* 011110011110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 165 0xa5 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1c, 0x40, /* 000111000100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x23, 0x80, /* 001000111000 */
+ 0xc0, 0x70, /* 110000000111 */
+ 0x60, 0x20, /* 011000000010 */
+ 0x70, 0x20, /* 011100000010 */
+ 0x78, 0x20, /* 011110000010 */
+ 0x5c, 0x20, /* 010111000010 */
+ 0x4e, 0x20, /* 010011100010 */
+ 0x47, 0x20, /* 010001110010 */
+ 0x43, 0xa0, /* 010000111010 */
+ 0x41, 0xe0, /* 010000011110 */
+ 0x40, 0xe0, /* 010000001110 */
+ 0x40, 0x60, /* 010000000110 */
+ 0xe0, 0x30, /* 111000000011 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 166 0xa6 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x1f, 0x00, /* 000111110000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0x07, 0x80, /* 000001111000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x33, 0x80, /* 001100111000 */
+ 0x1d, 0xc0, /* 000111011100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 167 0xa7 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x07, 0x00, /* 000001110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x10, 0xc0, /* 000100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0x80, /* 001100001000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x0e, 0x00, /* 000011100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 168 0xa8 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x00, /* 000110000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x40, /* 001100000100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 169 0xa9 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 170 0xaa '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0xc0, /* 000000001100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 171 0xab '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x10, 0x40, /* 000100000100 */
+ 0x10, 0x80, /* 000100001000 */
+ 0x11, 0x00, /* 000100010000 */
+ 0x3a, 0x00, /* 001110100000 */
+ 0x05, 0xc0, /* 000001011100 */
+ 0x0a, 0x20, /* 000010100010 */
+ 0x10, 0x20, /* 000100000010 */
+ 0x20, 0xc0, /* 001000001100 */
+ 0x41, 0x00, /* 010000010000 */
+ 0x02, 0x00, /* 000000100000 */
+ 0x03, 0xe0, /* 000000111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 172 0xac '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x10, 0x00, /* 000100000000 */
+ 0x10, 0x40, /* 000100000100 */
+ 0x10, 0x80, /* 000100001000 */
+ 0x11, 0x00, /* 000100010000 */
+ 0x3a, 0x40, /* 001110100100 */
+ 0x04, 0xc0, /* 000001001100 */
+ 0x09, 0x40, /* 000010010100 */
+ 0x12, 0x40, /* 000100100100 */
+ 0x24, 0x40, /* 001001000100 */
+ 0x47, 0xe0, /* 010001111110 */
+ 0x00, 0x40, /* 000000000100 */
+ 0x00, 0x40, /* 000000000100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 173 0xad '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 174 0xae '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x60, /* 000001100110 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x33, 0x00, /* 001100110000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x33, 0x00, /* 001100110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x06, 0x60, /* 000001100110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 175 0xaf '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x33, 0x00, /* 001100110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x06, 0x60, /* 000001100110 */
+ 0x0c, 0xc0, /* 000011001100 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x33, 0x00, /* 001100110000 */
+ 0x66, 0x00, /* 011001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 176 0xb0 '.' */
+ 0x0c, 0x30, /* 000011000011 */
+ 0x08, 0x20, /* 000010000010 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x20, 0x80, /* 001000001000 */
+ 0x0c, 0x30, /* 000011000011 */
+ 0x08, 0x20, /* 000010000010 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x20, 0x80, /* 001000001000 */
+ 0x0c, 0x30, /* 000011000011 */
+ 0x08, 0x20, /* 000010000010 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x20, 0x80, /* 001000001000 */
+ 0x0c, 0x30, /* 000011000011 */
+ 0x08, 0x20, /* 000010000010 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x20, 0x80, /* 001000001000 */
+ 0x0c, 0x30, /* 000011000011 */
+ 0x08, 0x20, /* 000010000010 */
+ 0x61, 0x80, /* 011000011000 */
+ 0x20, 0x80, /* 001000001000 */
+ 0x0c, 0x30, /* 000011000011 */
+ 0x08, 0x20, /* 000010000010 */
+
+ /* 177 0xb1 '.' */
+ 0x77, 0x70, /* 011101110111 */
+ 0x22, 0x20, /* 001000100010 */
+ 0x88, 0x80, /* 100010001000 */
+ 0xdd, 0xd0, /* 110111011101 */
+ 0x88, 0x80, /* 100010001000 */
+ 0x22, 0x20, /* 001000100010 */
+ 0x77, 0x70, /* 011101110111 */
+ 0x22, 0x20, /* 001000100010 */
+ 0x88, 0x80, /* 100010001000 */
+ 0xdd, 0xd0, /* 110111011101 */
+ 0x88, 0x80, /* 100010001000 */
+ 0x22, 0x20, /* 001000100010 */
+ 0x77, 0x70, /* 011101110111 */
+ 0x22, 0x20, /* 001000100010 */
+ 0x88, 0x80, /* 100010001000 */
+ 0xdd, 0xd0, /* 110111011101 */
+ 0x88, 0x80, /* 100010001000 */
+ 0x22, 0x20, /* 001000100010 */
+ 0x77, 0x70, /* 011101110111 */
+ 0x22, 0x20, /* 001000100010 */
+ 0x88, 0x80, /* 100010001000 */
+ 0xdd, 0xd0, /* 110111011101 */
+
+ /* 178 0xb2 '.' */
+ 0xf3, 0xc0, /* 111100111100 */
+ 0xf7, 0xd0, /* 111101111101 */
+ 0x9e, 0x70, /* 100111100111 */
+ 0xdf, 0x70, /* 110111110111 */
+ 0xf3, 0xc0, /* 111100111100 */
+ 0xf7, 0xd0, /* 111101111101 */
+ 0x9e, 0x70, /* 100111100111 */
+ 0xdf, 0x70, /* 110111110111 */
+ 0xf3, 0xc0, /* 111100111100 */
+ 0xf7, 0xd0, /* 111101111101 */
+ 0x9e, 0x70, /* 100111100111 */
+ 0xdf, 0x70, /* 110111110111 */
+ 0xf3, 0xc0, /* 111100111100 */
+ 0xf7, 0xd0, /* 111101111101 */
+ 0x9e, 0x70, /* 100111100111 */
+ 0xdf, 0x70, /* 110111110111 */
+ 0xf3, 0xc0, /* 111100111100 */
+ 0xf7, 0xd0, /* 111101111101 */
+ 0x9e, 0x70, /* 100111100111 */
+ 0xdf, 0x70, /* 110111110111 */
+ 0xf3, 0xc0, /* 111100111100 */
+ 0xf7, 0xd0, /* 111101111101 */
+
+ /* 179 0xb3 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 180 0xb4 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 181 0xb5 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 182 0xb6 '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 183 0xb7 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 184 0xb8 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 185 0xb9 '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 186 0xba '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 187 0xbb '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 188 0xbc '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0xfd, 0x80, /* 111111011000 */
+ 0x01, 0x80, /* 000000011000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 189 0xbd '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0xff, 0x80, /* 111111111000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 190 0xbe '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 191 0xbf '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 192 0xc0 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 193 0xc1 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 194 0xc2 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 195 0xc3 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 196 0xc4 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 197 0xc5 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 198 0xc6 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 199 0xc7 '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 200 0xc8 '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 201 0xc9 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 202 0xca '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 203 0xcb '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 204 0xcc '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0xf0, /* 000011011111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 205 0xcd '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 206 0xce '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0xfd, 0xf0, /* 111111011111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 207 0xcf '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 208 0xd0 '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 209 0xd1 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 210 0xd2 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 211 0xd3 '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 212 0xd4 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 213 0xd5 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 214 0xd6 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x0f, 0xf0, /* 000011111111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 215 0xd7 '.' */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+ 0x0d, 0x80, /* 000011011000 */
+
+ /* 216 0xd8 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 217 0xd9 '.' */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0xfe, 0x00, /* 111111100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 218 0xda '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x07, 0xf0, /* 000001111111 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+
+ /* 219 0xdb '.' */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+
+ /* 220 0xdc '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+
+ /* 221 0xdd '.' */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+ 0xfc, 0x00, /* 111111000000 */
+
+ /* 222 0xde '.' */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+ 0x03, 0xf0, /* 000000111111 */
+
+ /* 223 0xdf '.' */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0xff, 0xf0, /* 111111111111 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 224 0xe0 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 225 0xe1 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x37, 0x80, /* 001101111000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x77, 0x00, /* 011101110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 226 0xe2 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 227 0xe3 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 228 0xe4 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 229 0xe5 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 230 0xe6 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x30, 0xc0, /* 001100001100 */
+ 0x39, 0xc0, /* 001110011100 */
+ 0x36, 0xe0, /* 001101101110 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x30, 0x00, /* 001100000000 */
+ 0x60, 0x00, /* 011000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 231 0xe7 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 232 0xe8 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 233 0xe9 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 234 0xea '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 235 0xeb '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 236 0xec '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 237 0xed '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 238 0xee '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 239 0xef '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 240 0xf0 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 241 0xf1 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 242 0xf2 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 243 0xf3 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 244 0xf4 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 245 0xf5 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 246 0xf6 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x7f, 0xe0, /* 011111111110 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 247 0xf7 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 248 0xf8 '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x19, 0x80, /* 000110011000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 249 0xf9 '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 250 0xfa '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 251 0xfb '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 252 0xfc '.' */
+ /* FIXME */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 253 0xfd '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x0f, 0x00, /* 000011110000 */
+ 0x1f, 0x80, /* 000111111000 */
+ 0x31, 0x80, /* 001100011000 */
+ 0x21, 0x80, /* 001000011000 */
+ 0x03, 0x00, /* 000000110000 */
+ 0x06, 0x00, /* 000001100000 */
+ 0x0c, 0x00, /* 000011000000 */
+ 0x18, 0x40, /* 000110000100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 254 0xfe '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x3f, 0xc0, /* 001111111100 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+ /* 255 0xff '.' */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+ 0x00, 0x00, /* 000000000000 */
+
+};
+
diff --git a/fonts/vga8x16.c b/fonts/vga8x16.c
new file mode 100644
index 0000000..5257552
--- /dev/null
+++ b/fonts/vga8x16.c
@@ -0,0 +1,4628 @@
+/**********************************************/
+/* */
+/* Font file generated by cpi2fnt */
+/* */
+/**********************************************/
+
+#include "font.h"
+
+static const unsigned char fontdata_vga8x16[];
+
+const struct font vga8x16 = {
+ width: 8,
+ height: 16,
+ data: fontdata_vga8x16
+};
+
+static const unsigned char fontdata_vga8x16[4096] = {
+
+ /* 0 0x00 '^@' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 1 0x01 '^A' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x81, /* 10000001 */
+ 0xa5, /* 10100101 */
+ 0x81, /* 10000001 */
+ 0x81, /* 10000001 */
+ 0xbd, /* 10111101 */
+ 0x99, /* 10011001 */
+ 0x81, /* 10000001 */
+ 0x81, /* 10000001 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 2 0x02 '^B' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xff, /* 11111111 */
+ 0xdb, /* 11011011 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xc3, /* 11000011 */
+ 0xe7, /* 11100111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 3 0x03 '^C' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x6c, /* 01101100 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0x7c, /* 01111100 */
+ 0x38, /* 00111000 */
+ 0x10, /* 00010000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 4 0x04 '^D' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x7c, /* 01111100 */
+ 0xfe, /* 11111110 */
+ 0x7c, /* 01111100 */
+ 0x38, /* 00111000 */
+ 0x10, /* 00010000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 5 0x05 '^E' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0xe7, /* 11100111 */
+ 0xe7, /* 11100111 */
+ 0xe7, /* 11100111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 6 0x06 '^F' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 7 0x07 '^G' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 8 0x08 '^H' */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xe7, /* 11100111 */
+ 0xc3, /* 11000011 */
+ 0xc3, /* 11000011 */
+ 0xe7, /* 11100111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+
+ /* 9 0x09 '^I' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x42, /* 01000010 */
+ 0x42, /* 01000010 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 10 0x0a '^J' */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xc3, /* 11000011 */
+ 0x99, /* 10011001 */
+ 0xbd, /* 10111101 */
+ 0xbd, /* 10111101 */
+ 0x99, /* 10011001 */
+ 0xc3, /* 11000011 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+
+ /* 11 0x0b '^K' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1e, /* 00011110 */
+ 0x0e, /* 00001110 */
+ 0x1a, /* 00011010 */
+ 0x32, /* 00110010 */
+ 0x78, /* 01111000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x78, /* 01111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 12 0x0c '^L' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 13 0x0d '^M' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3f, /* 00111111 */
+ 0x33, /* 00110011 */
+ 0x3f, /* 00111111 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x70, /* 01110000 */
+ 0xf0, /* 11110000 */
+ 0xe0, /* 11100000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 14 0x0e '^N' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7f, /* 01111111 */
+ 0x63, /* 01100011 */
+ 0x7f, /* 01111111 */
+ 0x63, /* 01100011 */
+ 0x63, /* 01100011 */
+ 0x63, /* 01100011 */
+ 0x63, /* 01100011 */
+ 0x67, /* 01100111 */
+ 0xe7, /* 11100111 */
+ 0xe6, /* 11100110 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 15 0x0f '^O' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xdb, /* 11011011 */
+ 0x3c, /* 00111100 */
+ 0xe7, /* 11100111 */
+ 0x3c, /* 00111100 */
+ 0xdb, /* 11011011 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 16 0x10 '^P' */
+ 0x00, /* 00000000 */
+ 0x80, /* 10000000 */
+ 0xc0, /* 11000000 */
+ 0xe0, /* 11100000 */
+ 0xf0, /* 11110000 */
+ 0xf8, /* 11111000 */
+ 0xfe, /* 11111110 */
+ 0xf8, /* 11111000 */
+ 0xf0, /* 11110000 */
+ 0xe0, /* 11100000 */
+ 0xc0, /* 11000000 */
+ 0x80, /* 10000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 17 0x11 '^Q' */
+ 0x00, /* 00000000 */
+ 0x02, /* 00000010 */
+ 0x06, /* 00000110 */
+ 0x0e, /* 00001110 */
+ 0x1e, /* 00011110 */
+ 0x3e, /* 00111110 */
+ 0xfe, /* 11111110 */
+ 0x3e, /* 00111110 */
+ 0x1e, /* 00011110 */
+ 0x0e, /* 00001110 */
+ 0x06, /* 00000110 */
+ 0x02, /* 00000010 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 18 0x12 '^R' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 19 0x13 '^S' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 20 0x14 '^T' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7f, /* 01111111 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0x7b, /* 01111011 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 21 0x15 '^U' */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0x60, /* 01100000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x0c, /* 00001100 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 22 0x16 '^V' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 23 0x17 '^W' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 24 0x18 '^X' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 25 0x19 '^Y' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 26 0x1a '^Z' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0xfe, /* 11111110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 27 0x1b '^[' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xfe, /* 11111110 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 28 0x1c '^\' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 29 0x1d '^]' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x28, /* 00101000 */
+ 0x6c, /* 01101100 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x28, /* 00101000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 30 0x1e '^^' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x38, /* 00111000 */
+ 0x7c, /* 01111100 */
+ 0x7c, /* 01111100 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 31 0x1f '^_' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0x7c, /* 01111100 */
+ 0x7c, /* 01111100 */
+ 0x38, /* 00111000 */
+ 0x38, /* 00111000 */
+ 0x10, /* 00010000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 32 0x20 ' ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 33 0x21 '!' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 34 0x22 '"' */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x24, /* 00100100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 35 0x23 '#' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 36 0x24 '$' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc2, /* 11000010 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x86, /* 10000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 37 0x25 '%' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc2, /* 11000010 */
+ 0xc6, /* 11000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc6, /* 11000110 */
+ 0x86, /* 10000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 38 0x26 '&' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 39 0x27 ''' */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 40 0x28 '(' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 41 0x29 ')' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 42 0x2a '*' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0xff, /* 11111111 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 43 0x2b '+' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 44 0x2c ',' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 45 0x2d '-' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 46 0x2e '.' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 47 0x2f '/' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x02, /* 00000010 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0x80, /* 10000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 48 0x30 '0' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 49 0x31 '1' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x38, /* 00111000 */
+ 0x78, /* 01111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 50 0x32 '2' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 51 0x33 '3' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x3c, /* 00111100 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 52 0x34 '4' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x0c, /* 00001100 */
+ 0x1c, /* 00011100 */
+ 0x3c, /* 00111100 */
+ 0x6c, /* 01101100 */
+ 0xcc, /* 11001100 */
+ 0xfe, /* 11111110 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x1e, /* 00011110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 53 0x35 '5' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfc, /* 11111100 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 54 0x36 '6' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xfc, /* 11111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 55 0x37 '7' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 56 0x38 '8' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 57 0x39 '9' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x78, /* 01111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 58 0x3a ':' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 59 0x3b ';' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 60 0x3c '<' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x06, /* 00000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 61 0x3d '=' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 62 0x3e '>' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 63 0x3f '?' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 64 0x40 '@' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xde, /* 11011110 */
+ 0xde, /* 11011110 */
+ 0xde, /* 11011110 */
+ 0xdc, /* 11011100 */
+ 0xc0, /* 11000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 65 0x41 'A' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 66 0x42 'B' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfc, /* 11111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x7c, /* 01111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0xfc, /* 11111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 67 0x43 'C' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0xc2, /* 11000010 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc2, /* 11000010 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 68 0x44 'D' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xf8, /* 11111000 */
+ 0x6c, /* 01101100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x6c, /* 01101100 */
+ 0xf8, /* 11111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 69 0x45 'E' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x66, /* 01100110 */
+ 0x62, /* 01100010 */
+ 0x68, /* 01101000 */
+ 0x78, /* 01111000 */
+ 0x68, /* 01101000 */
+ 0x60, /* 01100000 */
+ 0x62, /* 01100010 */
+ 0x66, /* 01100110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 70 0x46 'F' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x66, /* 01100110 */
+ 0x62, /* 01100010 */
+ 0x68, /* 01101000 */
+ 0x78, /* 01111000 */
+ 0x68, /* 01101000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0xf0, /* 11110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 71 0x47 'G' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0xc2, /* 11000010 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xde, /* 11011110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x66, /* 01100110 */
+ 0x3a, /* 00111010 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 72 0x48 'H' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 73 0x49 'I' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 74 0x4a 'J' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1e, /* 00011110 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x78, /* 01111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 75 0x4b 'K' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xe6, /* 11100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x6c, /* 01101100 */
+ 0x78, /* 01111000 */
+ 0x78, /* 01111000 */
+ 0x6c, /* 01101100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0xe6, /* 11100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 76 0x4c 'L' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xf0, /* 11110000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x62, /* 01100010 */
+ 0x66, /* 01100110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 77 0x4d 'M' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xee, /* 11101110 */
+ 0xfe, /* 11111110 */
+ 0xfe, /* 11111110 */
+ 0xd6, /* 11010110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 78 0x4e 'N' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xe6, /* 11100110 */
+ 0xf6, /* 11110110 */
+ 0xfe, /* 11111110 */
+ 0xde, /* 11011110 */
+ 0xce, /* 11001110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 79 0x4f 'O' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 80 0x50 'P' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfc, /* 11111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x7c, /* 01111100 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0xf0, /* 11110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 81 0x51 'Q' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xd6, /* 11010110 */
+ 0xde, /* 11011110 */
+ 0x7c, /* 01111100 */
+ 0x0c, /* 00001100 */
+ 0x0e, /* 00001110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 82 0x52 'R' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfc, /* 11111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x7c, /* 01111100 */
+ 0x6c, /* 01101100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0xe6, /* 11100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 83 0x53 'S' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x60, /* 01100000 */
+ 0x38, /* 00111000 */
+ 0x0c, /* 00001100 */
+ 0x06, /* 00000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 84 0x54 'T' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x5a, /* 01011010 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 85 0x55 'U' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 86 0x56 'V' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x10, /* 00010000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 87 0x57 'W' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xfe, /* 11111110 */
+ 0xee, /* 11101110 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 88 0x58 'X' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x7c, /* 01111100 */
+ 0x38, /* 00111000 */
+ 0x38, /* 00111000 */
+ 0x7c, /* 01111100 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 89 0x59 'Y' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 90 0x5a 'Z' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0x86, /* 10000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc2, /* 11000010 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 91 0x5b '[' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 92 0x5c '\' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x80, /* 10000000 */
+ 0xc0, /* 11000000 */
+ 0xe0, /* 11100000 */
+ 0x70, /* 01110000 */
+ 0x38, /* 00111000 */
+ 0x1c, /* 00011100 */
+ 0x0e, /* 00001110 */
+ 0x06, /* 00000110 */
+ 0x02, /* 00000010 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 93 0x5d ']' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 94 0x5e '^' */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 95 0x5f '_' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 96 0x60 '`' */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 97 0x61 'a' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 98 0x62 'b' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xe0, /* 11100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x78, /* 01111000 */
+ 0x6c, /* 01101100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 99 0x63 'c' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 100 0x64 'd' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1c, /* 00011100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x3c, /* 00111100 */
+ 0x6c, /* 01101100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 101 0x65 'e' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 102 0x66 'f' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1c, /* 00011100 */
+ 0x36, /* 00110110 */
+ 0x32, /* 00110010 */
+ 0x30, /* 00110000 */
+ 0x78, /* 01111000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x78, /* 01111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 103 0x67 'g' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x7c, /* 01111100 */
+ 0x0c, /* 00001100 */
+ 0xcc, /* 11001100 */
+ 0x78, /* 01111000 */
+ 0x00, /* 00000000 */
+
+ /* 104 0x68 'h' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xe0, /* 11100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x6c, /* 01101100 */
+ 0x76, /* 01110110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0xe6, /* 11100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 105 0x69 'i' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 106 0x6a 'j' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x00, /* 00000000 */
+ 0x0e, /* 00001110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+
+ /* 107 0x6b 'k' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xe0, /* 11100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x66, /* 01100110 */
+ 0x6c, /* 01101100 */
+ 0x78, /* 01111000 */
+ 0x78, /* 01111000 */
+ 0x6c, /* 01101100 */
+ 0x66, /* 01100110 */
+ 0xe6, /* 11100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 108 0x6c 'l' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 109 0x6d 'm' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xec, /* 11101100 */
+ 0xfe, /* 11111110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 110 0x6e 'n' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xdc, /* 11011100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 111 0x6f 'o' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 112 0x70 'p' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xdc, /* 11011100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x7c, /* 01111100 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0xf0, /* 11110000 */
+ 0x00, /* 00000000 */
+
+ /* 113 0x71 'q' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x7c, /* 01111100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x1e, /* 00011110 */
+ 0x00, /* 00000000 */
+
+ /* 114 0x72 'r' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xdc, /* 11011100 */
+ 0x76, /* 01110110 */
+ 0x66, /* 01100110 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0xf0, /* 11110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 115 0x73 's' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0x60, /* 01100000 */
+ 0x38, /* 00111000 */
+ 0x0c, /* 00001100 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 116 0x74 't' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0xfc, /* 11111100 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x36, /* 00110110 */
+ 0x1c, /* 00011100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 117 0x75 'u' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 118 0x76 'v' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 119 0x77 'w' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xd6, /* 11010110 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 120 0x78 'x' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x38, /* 00111000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 121 0x79 'y' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0xf8, /* 11111000 */
+ 0x00, /* 00000000 */
+
+ /* 122 0x7a 'z' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xcc, /* 11001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 123 0x7b '{' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x0e, /* 00001110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x70, /* 01110000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x0e, /* 00001110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 124 0x7c '|' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 125 0x7d '}' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x70, /* 01110000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x0e, /* 00001110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 126 0x7e '~' */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 127 0x7f '' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 128 0x80 '€' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0xc2, /* 11000010 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc2, /* 11000010 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 129 0x81 '' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 130 0x82 '‚' */
+ 0x00, /* 00000000 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 131 0x83 'ƒ' */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 132 0x84 '„' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 133 0x85 '…' */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 134 0x86 '†' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 135 0x87 '‡' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x18, /* 00011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 136 0x88 'ˆ' */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 137 0x89 '‰' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 138 0x8a 'Š' */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 139 0x8b '‹' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 140 0x8c 'Œ' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 141 0x8d '' */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 142 0x8e 'Ž' */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 143 0x8f '' */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 144 0x90 '' */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x66, /* 01100110 */
+ 0x62, /* 01100010 */
+ 0x68, /* 01101000 */
+ 0x78, /* 01111000 */
+ 0x68, /* 01101000 */
+ 0x62, /* 01100010 */
+ 0x66, /* 01100110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 145 0x91 '‘' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xec, /* 11101100 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x7e, /* 01111110 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0x6e, /* 01101110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 146 0x92 '’' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3e, /* 00111110 */
+ 0x6c, /* 01101100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xfe, /* 11111110 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xce, /* 11001110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 147 0x93 '“' */
+ 0x00, /* 00000000 */
+ 0x10, /* 00010000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 148 0x94 '”' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 149 0x95 '•' */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 150 0x96 '–' */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x78, /* 01111000 */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 151 0x97 '—' */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 152 0x98 '˜' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7e, /* 01111110 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x78, /* 01111000 */
+ 0x00, /* 00000000 */
+
+ /* 153 0x99 '™' */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 154 0x9a 'š' */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 155 0x9b '›' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 156 0x9c 'œ' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x64, /* 01100100 */
+ 0x60, /* 01100000 */
+ 0xf0, /* 11110000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0xe6, /* 11100110 */
+ 0xfc, /* 11111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 157 0x9d '' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 158 0x9e 'ž' */
+ 0x00, /* 00000000 */
+ 0xf8, /* 11111000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xf8, /* 11111000 */
+ 0xc4, /* 11000100 */
+ 0xcc, /* 11001100 */
+ 0xde, /* 11011110 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 159 0x9f 'Ÿ' */
+ 0x00, /* 00000000 */
+ 0x0e, /* 00001110 */
+ 0x1b, /* 00011011 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xd8, /* 11011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 160 0xa0 ' ' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0x0c, /* 00001100 */
+ 0x7c, /* 01111100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 161 0xa1 '¡' */
+ 0x00, /* 00000000 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 162 0xa2 '¢' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 163 0xa3 '£' */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x00, /* 00000000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 164 0xa4 '¤' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0xdc, /* 11011100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 165 0xa5 '¥' */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0xc6, /* 11000110 */
+ 0xe6, /* 11100110 */
+ 0xf6, /* 11110110 */
+ 0xfe, /* 11111110 */
+ 0xde, /* 11011110 */
+ 0xce, /* 11001110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 166 0xa6 '¦' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x3e, /* 00111110 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 167 0xa7 '§' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 168 0xa8 '¨' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x7c, /* 01111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 169 0xa9 '©' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 170 0xaa 'ª' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 171 0xab '«' */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0xe0, /* 11100000 */
+ 0x62, /* 01100010 */
+ 0x66, /* 01100110 */
+ 0x6c, /* 01101100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xdc, /* 11011100 */
+ 0x86, /* 10000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x3e, /* 00111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 172 0xac '¬' */
+ 0x00, /* 00000000 */
+ 0x60, /* 01100000 */
+ 0xe0, /* 11100000 */
+ 0x62, /* 01100010 */
+ 0x66, /* 01100110 */
+ 0x6c, /* 01101100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x66, /* 01100110 */
+ 0xce, /* 11001110 */
+ 0x9a, /* 10011010 */
+ 0x3f, /* 00111111 */
+ 0x06, /* 00000110 */
+ 0x06, /* 00000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 173 0xad '­' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 174 0xae '®' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x36, /* 00110110 */
+ 0x6c, /* 01101100 */
+ 0xd8, /* 11011000 */
+ 0x6c, /* 01101100 */
+ 0x36, /* 00110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 175 0xaf '¯' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xd8, /* 11011000 */
+ 0x6c, /* 01101100 */
+ 0x36, /* 00110110 */
+ 0x6c, /* 01101100 */
+ 0xd8, /* 11011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 176 0xb0 '°' */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+ 0x11, /* 00010001 */
+ 0x44, /* 01000100 */
+
+ /* 177 0xb1 '±' */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+ 0x55, /* 01010101 */
+ 0xaa, /* 10101010 */
+
+ /* 178 0xb2 '²' */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+ 0xdd, /* 11011101 */
+ 0x77, /* 01110111 */
+
+ /* 179 0xb3 '³' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 180 0xb4 '´' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 181 0xb5 'µ' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 182 0xb6 '¶' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf6, /* 11110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 183 0xb7 '·' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 184 0xb8 '¸' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 185 0xb9 '¹' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf6, /* 11110110 */
+ 0x06, /* 00000110 */
+ 0xf6, /* 11110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 186 0xba 'º' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 187 0xbb '»' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x06, /* 00000110 */
+ 0xf6, /* 11110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 188 0xbc '¼' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf6, /* 11110110 */
+ 0x06, /* 00000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 189 0xbd '½' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 190 0xbe '¾' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 191 0xbf '¿' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xf8, /* 11111000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 192 0xc0 'À' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 193 0xc1 'Á' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 194 0xc2 'Â' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 195 0xc3 'Ã' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 196 0xc4 'Ä' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 197 0xc5 'Å' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 198 0xc6 'Æ' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 199 0xc7 'Ç' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x37, /* 00110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 200 0xc8 'È' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x37, /* 00110111 */
+ 0x30, /* 00110000 */
+ 0x3f, /* 00111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 201 0xc9 'É' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3f, /* 00111111 */
+ 0x30, /* 00110000 */
+ 0x37, /* 00110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 202 0xca 'Ê' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf7, /* 11110111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 203 0xcb 'Ë' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xf7, /* 11110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 204 0xcc 'Ì' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x37, /* 00110111 */
+ 0x30, /* 00110000 */
+ 0x37, /* 00110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 205 0xcd 'Í' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 206 0xce 'Î' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xf7, /* 11110111 */
+ 0x00, /* 00000000 */
+ 0xf7, /* 11110111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 207 0xcf 'Ï' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 208 0xd0 'Ð' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 209 0xd1 'Ñ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 210 0xd2 'Ò' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 211 0xd3 'Ó' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x3f, /* 00111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 212 0xd4 'Ô' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 213 0xd5 'Õ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 214 0xd6 'Ö' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x3f, /* 00111111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 215 0xd7 '×' */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0xff, /* 11111111 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+
+ /* 216 0xd8 'Ø' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0xff, /* 11111111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 217 0xd9 'Ù' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xf8, /* 11111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 218 0xda 'Ú' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1f, /* 00011111 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 219 0xdb 'Û' */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+
+ /* 220 0xdc 'Ü' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+
+ /* 221 0xdd 'Ý' */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+ 0xf0, /* 11110000 */
+
+ /* 222 0xde 'Þ' */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+ 0x0f, /* 00001111 */
+
+ /* 223 0xdf 'ß' */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0xff, /* 11111111 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 224 0xe0 'à' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0xdc, /* 11011100 */
+ 0x76, /* 01110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 225 0xe1 'á' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x78, /* 01111000 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xcc, /* 11001100 */
+ 0xd8, /* 11011000 */
+ 0xcc, /* 11001100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xcc, /* 11001100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 226 0xe2 'â' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 227 0xe3 'ã' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 228 0xe4 'ä' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 229 0xe5 'å' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 230 0xe6 'æ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x7c, /* 01111100 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+
+ /* 231 0xe7 'ç' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 232 0xe8 'è' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 233 0xe9 'é' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xfe, /* 11111110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 234 0xea 'ê' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0xee, /* 11101110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 235 0xeb 'ë' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1e, /* 00011110 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x3e, /* 00111110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x66, /* 01100110 */
+ 0x3c, /* 00111100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 236 0xec 'ì' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 237 0xed 'í' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x03, /* 00000011 */
+ 0x06, /* 00000110 */
+ 0x7e, /* 01111110 */
+ 0xdb, /* 11011011 */
+ 0xdb, /* 11011011 */
+ 0xf3, /* 11110011 */
+ 0x7e, /* 01111110 */
+ 0x60, /* 01100000 */
+ 0xc0, /* 11000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 238 0xee 'î' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x1c, /* 00011100 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x7c, /* 01111100 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x1c, /* 00011100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 239 0xef 'ï' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7c, /* 01111100 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0xc6, /* 11000110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 240 0xf0 'ð' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0xfe, /* 11111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 241 0xf1 'ñ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x7e, /* 01111110 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 242 0xf2 'ò' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x06, /* 00000110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 243 0xf3 'ó' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x30, /* 00110000 */
+ 0x60, /* 01100000 */
+ 0x30, /* 00110000 */
+ 0x18, /* 00011000 */
+ 0x0c, /* 00001100 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 244 0xf4 'ô' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x0e, /* 00001110 */
+ 0x1b, /* 00011011 */
+ 0x1b, /* 00011011 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+
+ /* 245 0xf5 'õ' */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0xd8, /* 11011000 */
+ 0x70, /* 01110000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 246 0xf6 'ö' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 247 0xf7 '÷' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0x76, /* 01110110 */
+ 0xdc, /* 11011100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 248 0xf8 'ø' */
+ 0x00, /* 00000000 */
+ 0x38, /* 00111000 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x38, /* 00111000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 249 0xf9 'ù' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 250 0xfa 'ú' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x18, /* 00011000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 251 0xfb 'û' */
+ 0x00, /* 00000000 */
+ 0x0f, /* 00001111 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0x0c, /* 00001100 */
+ 0xec, /* 11101100 */
+ 0x6c, /* 01101100 */
+ 0x6c, /* 01101100 */
+ 0x3c, /* 00111100 */
+ 0x1c, /* 00011100 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 252 0xfc 'ü' */
+ 0x00, /* 00000000 */
+ 0x6c, /* 01101100 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x36, /* 00110110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 253 0xfd 'ý' */
+ 0x00, /* 00000000 */
+ 0x3c, /* 00111100 */
+ 0x66, /* 01100110 */
+ 0x0c, /* 00001100 */
+ 0x18, /* 00011000 */
+ 0x32, /* 00110010 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 254 0xfe 'þ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x7e, /* 01111110 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+ /* 255 0xff 'ÿ' */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+ 0x00, /* 00000000 */
+
+};
+
diff --git a/images/Makefile b/images/Makefile
new file mode 100644
index 0000000..0883c46
--- /dev/null
+++ b/images/Makefile
@@ -0,0 +1,24 @@
+
+TOPDIR = ..
+
+O_TARGET = images.o
+
+SRCS += penguin.c
+
+include $(TOPDIR)/Rules.make
+
+%.c: %.pbm
+ ../pnmtohex/pnmtohex $< $* > $@
+
+%.c: %.pgm
+ ../pnmtohex/pnmtohex $< $* > $@
+
+%.c: %.ppm
+ ../pnmtohex/pnmtohex $< $* > $@
+
+%.c: %.pnm
+ ../pnmtohex/pnmtohex $< $* > $@
+
+clean::
+ $(RM) $(SRCS)
+
diff --git a/images/penguin.ppm b/images/penguin.ppm
new file mode 100644
index 0000000..6b7b577
--- /dev/null
+++ b/images/penguin.ppm
Binary files differ
diff --git a/include/bitstream.h b/include/bitstream.h
new file mode 100644
index 0000000..c717b2e
--- /dev/null
+++ b/include/bitstream.h
@@ -0,0 +1,38 @@
+
+/*
+ * Bitstream operations
+ *
+ * (C) Copyright 2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Forward and reverse copy
+ */
+
+extern void bitcpy(unsigned long *dst, int dst_idx, const unsigned long *src,
+ int src_idx, u32 n);
+extern void bitcpy_rev(unsigned long *dst, int dst_idx,
+ const unsigned long *src, int src_idx, u32 n);
+
+
+ /*
+ * Forward inverting copy
+ */
+
+extern void bitcpy_not(unsigned long *dst, int dst_idx,
+ const unsigned long *src, int src_idx, u32 n);
+
+
+ /*
+ * Pattern fill
+ */
+
+extern void bitfill32(unsigned long *dst, int dst_idx, u32 pat, u32 n);
+extern void bitfill(unsigned long *dst, int dst_idx, unsigned long pat,
+ int left, int right, u32 n);
+
diff --git a/include/clut.h b/include/clut.h
new file mode 100644
index 0000000..7b55497
--- /dev/null
+++ b/include/clut.h
@@ -0,0 +1,21 @@
+
+/*
+ * CLUT manipulation
+ *
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+extern const rgba_t clut_mono[2];
+extern const rgba_t clut_console[16];
+extern const rgba_t clut_vga[16];
+extern const rgba_t clut_windows[4];
+
+extern void clut_create_rgbcube(rgba_t *clut, u32 rlen, u32 glen, u32 blen);
+extern void clut_create_linear(rgba_t *clut, u32 len);
+extern void clut_init_nice(void);
+
diff --git a/include/color.h b/include/color.h
new file mode 100644
index 0000000..a438de7
--- /dev/null
+++ b/include/color.h
@@ -0,0 +1,783 @@
+
+/*
+ * Color manipulation
+ *
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+extern u32 color_error(const rgba_t *a, const rgba_t *b);
+extern void color_add(rgba_t *a, const rgba_t *b, const rgba_t *c);
+extern void color_sub(rgba_t *a, const rgba_t *b, const rgba_t *c);
+extern u32 color_find(const rgba_t *color, const rgba_t *clut, u32 clutsize);
+
+
+ /*
+ * RGB/YUV conversions
+ */
+
+extern void yuva_to_rgba(const yuva_t *yuva, rgba_t *rgba);
+extern void rgba_to_yuva(const rgba_t *rgba, yuva_t *yuva);
+
+
+ /*
+ * X11 colors from rgb.txt
+ */
+
+extern const rgba_t c_snow;
+extern const rgba_t c_ghost_white;
+extern const rgba_t c_GhostWhite;
+extern const rgba_t c_white_smoke;
+extern const rgba_t c_WhiteSmoke;
+extern const rgba_t c_gainsboro;
+extern const rgba_t c_floral_white;
+extern const rgba_t c_FloralWhite;
+extern const rgba_t c_old_lace;
+extern const rgba_t c_OldLace;
+extern const rgba_t c_linen;
+extern const rgba_t c_antique_white;
+extern const rgba_t c_AntiqueWhite;
+extern const rgba_t c_papaya_whip;
+extern const rgba_t c_PapayaWhip;
+extern const rgba_t c_blanched_almond;
+extern const rgba_t c_BlanchedAlmond;
+extern const rgba_t c_bisque;
+extern const rgba_t c_peach_puff;
+extern const rgba_t c_PeachPuff;
+extern const rgba_t c_navajo_white;
+extern const rgba_t c_NavajoWhite;
+extern const rgba_t c_moccasin;
+extern const rgba_t c_cornsilk;
+extern const rgba_t c_ivory;
+extern const rgba_t c_lemon_chiffon;
+extern const rgba_t c_LemonChiffon;
+extern const rgba_t c_seashell;
+extern const rgba_t c_honeydew;
+extern const rgba_t c_mint_cream;
+extern const rgba_t c_MintCream;
+extern const rgba_t c_azure;
+extern const rgba_t c_alice_blue;
+extern const rgba_t c_AliceBlue;
+extern const rgba_t c_lavender;
+extern const rgba_t c_lavender_blush;
+extern const rgba_t c_LavenderBlush;
+extern const rgba_t c_misty_rose;
+extern const rgba_t c_MistyRose;
+extern const rgba_t c_white;
+extern const rgba_t c_black;
+extern const rgba_t c_dark_slate_gray;
+extern const rgba_t c_DarkSlateGray;
+extern const rgba_t c_dark_slate_grey;
+extern const rgba_t c_DarkSlateGrey;
+extern const rgba_t c_dim_gray;
+extern const rgba_t c_DimGray;
+extern const rgba_t c_dim_grey;
+extern const rgba_t c_DimGrey;
+extern const rgba_t c_slate_gray;
+extern const rgba_t c_SlateGray;
+extern const rgba_t c_slate_grey;
+extern const rgba_t c_SlateGrey;
+extern const rgba_t c_light_slate_gray;
+extern const rgba_t c_LightSlateGray;
+extern const rgba_t c_light_slate_grey;
+extern const rgba_t c_LightSlateGrey;
+extern const rgba_t c_gray;
+extern const rgba_t c_grey;
+extern const rgba_t c_light_grey;
+extern const rgba_t c_LightGrey;
+extern const rgba_t c_light_gray;
+extern const rgba_t c_LightGray;
+extern const rgba_t c_midnight_blue;
+extern const rgba_t c_MidnightBlue;
+extern const rgba_t c_navy;
+extern const rgba_t c_navy_blue;
+extern const rgba_t c_NavyBlue;
+extern const rgba_t c_cornflower_blue;
+extern const rgba_t c_CornflowerBlue;
+extern const rgba_t c_dark_slate_blue;
+extern const rgba_t c_DarkSlateBlue;
+extern const rgba_t c_slate_blue;
+extern const rgba_t c_SlateBlue;
+extern const rgba_t c_medium_slate_blue;
+extern const rgba_t c_MediumSlateBlue;
+extern const rgba_t c_light_slate_blue;
+extern const rgba_t c_LightSlateBlue;
+extern const rgba_t c_medium_blue;
+extern const rgba_t c_MediumBlue;
+extern const rgba_t c_royal_blue;
+extern const rgba_t c_RoyalBlue;
+extern const rgba_t c_blue;
+extern const rgba_t c_dodger_blue;
+extern const rgba_t c_DodgerBlue;
+extern const rgba_t c_deep_sky_blue;
+extern const rgba_t c_DeepSkyBlue;
+extern const rgba_t c_sky_blue;
+extern const rgba_t c_SkyBlue;
+extern const rgba_t c_light_sky_blue;
+extern const rgba_t c_LightSkyBlue;
+extern const rgba_t c_steel_blue;
+extern const rgba_t c_SteelBlue;
+extern const rgba_t c_light_steel_blue;
+extern const rgba_t c_LightSteelBlue;
+extern const rgba_t c_light_blue;
+extern const rgba_t c_LightBlue;
+extern const rgba_t c_powder_blue;
+extern const rgba_t c_PowderBlue;
+extern const rgba_t c_pale_turquoise;
+extern const rgba_t c_PaleTurquoise;
+extern const rgba_t c_dark_turquoise;
+extern const rgba_t c_DarkTurquoise;
+extern const rgba_t c_medium_turquoise;
+extern const rgba_t c_MediumTurquoise;
+extern const rgba_t c_turquoise;
+extern const rgba_t c_cyan;
+extern const rgba_t c_light_cyan;
+extern const rgba_t c_LightCyan;
+extern const rgba_t c_cadet_blue;
+extern const rgba_t c_CadetBlue;
+extern const rgba_t c_medium_aquamarine;
+extern const rgba_t c_MediumAquamarine;
+extern const rgba_t c_aquamarine;
+extern const rgba_t c_dark_green;
+extern const rgba_t c_DarkGreen;
+extern const rgba_t c_dark_olive_green;
+extern const rgba_t c_DarkOliveGreen;
+extern const rgba_t c_dark_sea_green;
+extern const rgba_t c_DarkSeaGreen;
+extern const rgba_t c_sea_green;
+extern const rgba_t c_SeaGreen;
+extern const rgba_t c_medium_sea_green;
+extern const rgba_t c_MediumSeaGreen;
+extern const rgba_t c_light_sea_green;
+extern const rgba_t c_LightSeaGreen;
+extern const rgba_t c_pale_green;
+extern const rgba_t c_PaleGreen;
+extern const rgba_t c_spring_green;
+extern const rgba_t c_SpringGreen;
+extern const rgba_t c_lawn_green;
+extern const rgba_t c_LawnGreen;
+extern const rgba_t c_green;
+extern const rgba_t c_chartreuse;
+extern const rgba_t c_medium_spring_green;
+extern const rgba_t c_MediumSpringGreen;
+extern const rgba_t c_green_yellow;
+extern const rgba_t c_GreenYellow;
+extern const rgba_t c_lime_green;
+extern const rgba_t c_LimeGreen;
+extern const rgba_t c_yellow_green;
+extern const rgba_t c_YellowGreen;
+extern const rgba_t c_forest_green;
+extern const rgba_t c_ForestGreen;
+extern const rgba_t c_olive_drab;
+extern const rgba_t c_OliveDrab;
+extern const rgba_t c_dark_khaki;
+extern const rgba_t c_DarkKhaki;
+extern const rgba_t c_khaki;
+extern const rgba_t c_pale_goldenrod;
+extern const rgba_t c_PaleGoldenrod;
+extern const rgba_t c_light_goldenrod_yellow;
+extern const rgba_t c_LightGoldenrodYellow;
+extern const rgba_t c_light_yellow;
+extern const rgba_t c_LightYellow;
+extern const rgba_t c_yellow;
+extern const rgba_t c_gold;
+extern const rgba_t c_light_goldenrod;
+extern const rgba_t c_LightGoldenrod;
+extern const rgba_t c_goldenrod;
+extern const rgba_t c_dark_goldenrod;
+extern const rgba_t c_DarkGoldenrod;
+extern const rgba_t c_rosy_brown;
+extern const rgba_t c_RosyBrown;
+extern const rgba_t c_indian_red;
+extern const rgba_t c_IndianRed;
+extern const rgba_t c_saddle_brown;
+extern const rgba_t c_SaddleBrown;
+extern const rgba_t c_sienna;
+extern const rgba_t c_peru;
+extern const rgba_t c_burlywood;
+extern const rgba_t c_beige;
+extern const rgba_t c_wheat;
+extern const rgba_t c_sandy_brown;
+extern const rgba_t c_SandyBrown;
+extern const rgba_t c_tan;
+extern const rgba_t c_chocolate;
+extern const rgba_t c_firebrick;
+extern const rgba_t c_brown;
+extern const rgba_t c_dark_salmon;
+extern const rgba_t c_DarkSalmon;
+extern const rgba_t c_salmon;
+extern const rgba_t c_light_salmon;
+extern const rgba_t c_LightSalmon;
+extern const rgba_t c_orange;
+extern const rgba_t c_dark_orange;
+extern const rgba_t c_DarkOrange;
+extern const rgba_t c_coral;
+extern const rgba_t c_light_coral;
+extern const rgba_t c_LightCoral;
+extern const rgba_t c_tomato;
+extern const rgba_t c_orange_red;
+extern const rgba_t c_OrangeRed;
+extern const rgba_t c_red;
+extern const rgba_t c_hot_pink;
+extern const rgba_t c_HotPink;
+extern const rgba_t c_deep_pink;
+extern const rgba_t c_DeepPink;
+extern const rgba_t c_pink;
+extern const rgba_t c_light_pink;
+extern const rgba_t c_LightPink;
+extern const rgba_t c_pale_violet_red;
+extern const rgba_t c_PaleVioletRed;
+extern const rgba_t c_maroon;
+extern const rgba_t c_medium_violet_red;
+extern const rgba_t c_MediumVioletRed;
+extern const rgba_t c_violet_red;
+extern const rgba_t c_VioletRed;
+extern const rgba_t c_magenta;
+extern const rgba_t c_violet;
+extern const rgba_t c_plum;
+extern const rgba_t c_orchid;
+extern const rgba_t c_medium_orchid;
+extern const rgba_t c_MediumOrchid;
+extern const rgba_t c_dark_orchid;
+extern const rgba_t c_DarkOrchid;
+extern const rgba_t c_dark_violet;
+extern const rgba_t c_DarkViolet;
+extern const rgba_t c_blue_violet;
+extern const rgba_t c_BlueViolet;
+extern const rgba_t c_purple;
+extern const rgba_t c_medium_purple;
+extern const rgba_t c_MediumPurple;
+extern const rgba_t c_thistle;
+extern const rgba_t c_snow1;
+extern const rgba_t c_snow2;
+extern const rgba_t c_snow3;
+extern const rgba_t c_snow4;
+extern const rgba_t c_seashell1;
+extern const rgba_t c_seashell2;
+extern const rgba_t c_seashell3;
+extern const rgba_t c_seashell4;
+extern const rgba_t c_AntiqueWhite1;
+extern const rgba_t c_AntiqueWhite2;
+extern const rgba_t c_AntiqueWhite3;
+extern const rgba_t c_AntiqueWhite4;
+extern const rgba_t c_bisque1;
+extern const rgba_t c_bisque2;
+extern const rgba_t c_bisque3;
+extern const rgba_t c_bisque4;
+extern const rgba_t c_PeachPuff1;
+extern const rgba_t c_PeachPuff2;
+extern const rgba_t c_PeachPuff3;
+extern const rgba_t c_PeachPuff4;
+extern const rgba_t c_NavajoWhite1;
+extern const rgba_t c_NavajoWhite2;
+extern const rgba_t c_NavajoWhite3;
+extern const rgba_t c_NavajoWhite4;
+extern const rgba_t c_LemonChiffon1;
+extern const rgba_t c_LemonChiffon2;
+extern const rgba_t c_LemonChiffon3;
+extern const rgba_t c_LemonChiffon4;
+extern const rgba_t c_cornsilk1;
+extern const rgba_t c_cornsilk2;
+extern const rgba_t c_cornsilk3;
+extern const rgba_t c_cornsilk4;
+extern const rgba_t c_ivory1;
+extern const rgba_t c_ivory2;
+extern const rgba_t c_ivory3;
+extern const rgba_t c_ivory4;
+extern const rgba_t c_honeydew1;
+extern const rgba_t c_honeydew2;
+extern const rgba_t c_honeydew3;
+extern const rgba_t c_honeydew4;
+extern const rgba_t c_LavenderBlush1;
+extern const rgba_t c_LavenderBlush2;
+extern const rgba_t c_LavenderBlush3;
+extern const rgba_t c_LavenderBlush4;
+extern const rgba_t c_MistyRose1;
+extern const rgba_t c_MistyRose2;
+extern const rgba_t c_MistyRose3;
+extern const rgba_t c_MistyRose4;
+extern const rgba_t c_azure1;
+extern const rgba_t c_azure2;
+extern const rgba_t c_azure3;
+extern const rgba_t c_azure4;
+extern const rgba_t c_SlateBlue1;
+extern const rgba_t c_SlateBlue2;
+extern const rgba_t c_SlateBlue3;
+extern const rgba_t c_SlateBlue4;
+extern const rgba_t c_RoyalBlue1;
+extern const rgba_t c_RoyalBlue2;
+extern const rgba_t c_RoyalBlue3;
+extern const rgba_t c_RoyalBlue4;
+extern const rgba_t c_blue1;
+extern const rgba_t c_blue2;
+extern const rgba_t c_blue3;
+extern const rgba_t c_blue4;
+extern const rgba_t c_DodgerBlue1;
+extern const rgba_t c_DodgerBlue2;
+extern const rgba_t c_DodgerBlue3;
+extern const rgba_t c_DodgerBlue4;
+extern const rgba_t c_SteelBlue1;
+extern const rgba_t c_SteelBlue2;
+extern const rgba_t c_SteelBlue3;
+extern const rgba_t c_SteelBlue4;
+extern const rgba_t c_DeepSkyBlue1;
+extern const rgba_t c_DeepSkyBlue2;
+extern const rgba_t c_DeepSkyBlue3;
+extern const rgba_t c_DeepSkyBlue4;
+extern const rgba_t c_SkyBlue1;
+extern const rgba_t c_SkyBlue2;
+extern const rgba_t c_SkyBlue3;
+extern const rgba_t c_SkyBlue4;
+extern const rgba_t c_LightSkyBlue1;
+extern const rgba_t c_LightSkyBlue2;
+extern const rgba_t c_LightSkyBlue3;
+extern const rgba_t c_LightSkyBlue4;
+extern const rgba_t c_SlateGray1;
+extern const rgba_t c_SlateGray2;
+extern const rgba_t c_SlateGray3;
+extern const rgba_t c_SlateGray4;
+extern const rgba_t c_LightSteelBlue1;
+extern const rgba_t c_LightSteelBlue2;
+extern const rgba_t c_LightSteelBlue3;
+extern const rgba_t c_LightSteelBlue4;
+extern const rgba_t c_LightBlue1;
+extern const rgba_t c_LightBlue2;
+extern const rgba_t c_LightBlue3;
+extern const rgba_t c_LightBlue4;
+extern const rgba_t c_LightCyan1;
+extern const rgba_t c_LightCyan2;
+extern const rgba_t c_LightCyan3;
+extern const rgba_t c_LightCyan4;
+extern const rgba_t c_PaleTurquoise1;
+extern const rgba_t c_PaleTurquoise2;
+extern const rgba_t c_PaleTurquoise3;
+extern const rgba_t c_PaleTurquoise4;
+extern const rgba_t c_CadetBlue1;
+extern const rgba_t c_CadetBlue2;
+extern const rgba_t c_CadetBlue3;
+extern const rgba_t c_CadetBlue4;
+extern const rgba_t c_turquoise1;
+extern const rgba_t c_turquoise2;
+extern const rgba_t c_turquoise3;
+extern const rgba_t c_turquoise4;
+extern const rgba_t c_cyan1;
+extern const rgba_t c_cyan2;
+extern const rgba_t c_cyan3;
+extern const rgba_t c_cyan4;
+extern const rgba_t c_DarkSlateGray1;
+extern const rgba_t c_DarkSlateGray2;
+extern const rgba_t c_DarkSlateGray3;
+extern const rgba_t c_DarkSlateGray4;
+extern const rgba_t c_aquamarine1;
+extern const rgba_t c_aquamarine2;
+extern const rgba_t c_aquamarine3;
+extern const rgba_t c_aquamarine4;
+extern const rgba_t c_DarkSeaGreen1;
+extern const rgba_t c_DarkSeaGreen2;
+extern const rgba_t c_DarkSeaGreen3;
+extern const rgba_t c_DarkSeaGreen4;
+extern const rgba_t c_SeaGreen1;
+extern const rgba_t c_SeaGreen2;
+extern const rgba_t c_SeaGreen3;
+extern const rgba_t c_SeaGreen4;
+extern const rgba_t c_PaleGreen1;
+extern const rgba_t c_PaleGreen2;
+extern const rgba_t c_PaleGreen3;
+extern const rgba_t c_PaleGreen4;
+extern const rgba_t c_SpringGreen1;
+extern const rgba_t c_SpringGreen2;
+extern const rgba_t c_SpringGreen3;
+extern const rgba_t c_SpringGreen4;
+extern const rgba_t c_green1;
+extern const rgba_t c_green2;
+extern const rgba_t c_green3;
+extern const rgba_t c_green4;
+extern const rgba_t c_chartreuse1;
+extern const rgba_t c_chartreuse2;
+extern const rgba_t c_chartreuse3;
+extern const rgba_t c_chartreuse4;
+extern const rgba_t c_OliveDrab1;
+extern const rgba_t c_OliveDrab2;
+extern const rgba_t c_OliveDrab3;
+extern const rgba_t c_OliveDrab4;
+extern const rgba_t c_DarkOliveGreen1;
+extern const rgba_t c_DarkOliveGreen2;
+extern const rgba_t c_DarkOliveGreen3;
+extern const rgba_t c_DarkOliveGreen4;
+extern const rgba_t c_khaki1;
+extern const rgba_t c_khaki2;
+extern const rgba_t c_khaki3;
+extern const rgba_t c_khaki4;
+extern const rgba_t c_LightGoldenrod1;
+extern const rgba_t c_LightGoldenrod2;
+extern const rgba_t c_LightGoldenrod3;
+extern const rgba_t c_LightGoldenrod4;
+extern const rgba_t c_LightYellow1;
+extern const rgba_t c_LightYellow2;
+extern const rgba_t c_LightYellow3;
+extern const rgba_t c_LightYellow4;
+extern const rgba_t c_yellow1;
+extern const rgba_t c_yellow2;
+extern const rgba_t c_yellow3;
+extern const rgba_t c_yellow4;
+extern const rgba_t c_gold1;
+extern const rgba_t c_gold2;
+extern const rgba_t c_gold3;
+extern const rgba_t c_gold4;
+extern const rgba_t c_goldenrod1;
+extern const rgba_t c_goldenrod2;
+extern const rgba_t c_goldenrod3;
+extern const rgba_t c_goldenrod4;
+extern const rgba_t c_DarkGoldenrod1;
+extern const rgba_t c_DarkGoldenrod2;
+extern const rgba_t c_DarkGoldenrod3;
+extern const rgba_t c_DarkGoldenrod4;
+extern const rgba_t c_RosyBrown1;
+extern const rgba_t c_RosyBrown2;
+extern const rgba_t c_RosyBrown3;
+extern const rgba_t c_RosyBrown4;
+extern const rgba_t c_IndianRed1;
+extern const rgba_t c_IndianRed2;
+extern const rgba_t c_IndianRed3;
+extern const rgba_t c_IndianRed4;
+extern const rgba_t c_sienna1;
+extern const rgba_t c_sienna2;
+extern const rgba_t c_sienna3;
+extern const rgba_t c_sienna4;
+extern const rgba_t c_burlywood1;
+extern const rgba_t c_burlywood2;
+extern const rgba_t c_burlywood3;
+extern const rgba_t c_burlywood4;
+extern const rgba_t c_wheat1;
+extern const rgba_t c_wheat2;
+extern const rgba_t c_wheat3;
+extern const rgba_t c_wheat4;
+extern const rgba_t c_tan1;
+extern const rgba_t c_tan2;
+extern const rgba_t c_tan3;
+extern const rgba_t c_tan4;
+extern const rgba_t c_chocolate1;
+extern const rgba_t c_chocolate2;
+extern const rgba_t c_chocolate3;
+extern const rgba_t c_chocolate4;
+extern const rgba_t c_firebrick1;
+extern const rgba_t c_firebrick2;
+extern const rgba_t c_firebrick3;
+extern const rgba_t c_firebrick4;
+extern const rgba_t c_brown1;
+extern const rgba_t c_brown2;
+extern const rgba_t c_brown3;
+extern const rgba_t c_brown4;
+extern const rgba_t c_salmon1;
+extern const rgba_t c_salmon2;
+extern const rgba_t c_salmon3;
+extern const rgba_t c_salmon4;
+extern const rgba_t c_LightSalmon1;
+extern const rgba_t c_LightSalmon2;
+extern const rgba_t c_LightSalmon3;
+extern const rgba_t c_LightSalmon4;
+extern const rgba_t c_orange1;
+extern const rgba_t c_orange2;
+extern const rgba_t c_orange3;
+extern const rgba_t c_orange4;
+extern const rgba_t c_DarkOrange1;
+extern const rgba_t c_DarkOrange2;
+extern const rgba_t c_DarkOrange3;
+extern const rgba_t c_DarkOrange4;
+extern const rgba_t c_coral1;
+extern const rgba_t c_coral2;
+extern const rgba_t c_coral3;
+extern const rgba_t c_coral4;
+extern const rgba_t c_tomato1;
+extern const rgba_t c_tomato2;
+extern const rgba_t c_tomato3;
+extern const rgba_t c_tomato4;
+extern const rgba_t c_OrangeRed1;
+extern const rgba_t c_OrangeRed2;
+extern const rgba_t c_OrangeRed3;
+extern const rgba_t c_OrangeRed4;
+extern const rgba_t c_red1;
+extern const rgba_t c_red2;
+extern const rgba_t c_red3;
+extern const rgba_t c_red4;
+extern const rgba_t c_DeepPink1;
+extern const rgba_t c_DeepPink2;
+extern const rgba_t c_DeepPink3;
+extern const rgba_t c_DeepPink4;
+extern const rgba_t c_HotPink1;
+extern const rgba_t c_HotPink2;
+extern const rgba_t c_HotPink3;
+extern const rgba_t c_HotPink4;
+extern const rgba_t c_pink1;
+extern const rgba_t c_pink2;
+extern const rgba_t c_pink3;
+extern const rgba_t c_pink4;
+extern const rgba_t c_LightPink1;
+extern const rgba_t c_LightPink2;
+extern const rgba_t c_LightPink3;
+extern const rgba_t c_LightPink4;
+extern const rgba_t c_PaleVioletRed1;
+extern const rgba_t c_PaleVioletRed2;
+extern const rgba_t c_PaleVioletRed3;
+extern const rgba_t c_PaleVioletRed4;
+extern const rgba_t c_maroon1;
+extern const rgba_t c_maroon2;
+extern const rgba_t c_maroon3;
+extern const rgba_t c_maroon4;
+extern const rgba_t c_VioletRed1;
+extern const rgba_t c_VioletRed2;
+extern const rgba_t c_VioletRed3;
+extern const rgba_t c_VioletRed4;
+extern const rgba_t c_magenta1;
+extern const rgba_t c_magenta2;
+extern const rgba_t c_magenta3;
+extern const rgba_t c_magenta4;
+extern const rgba_t c_orchid1;
+extern const rgba_t c_orchid2;
+extern const rgba_t c_orchid3;
+extern const rgba_t c_orchid4;
+extern const rgba_t c_plum1;
+extern const rgba_t c_plum2;
+extern const rgba_t c_plum3;
+extern const rgba_t c_plum4;
+extern const rgba_t c_MediumOrchid1;
+extern const rgba_t c_MediumOrchid2;
+extern const rgba_t c_MediumOrchid3;
+extern const rgba_t c_MediumOrchid4;
+extern const rgba_t c_DarkOrchid1;
+extern const rgba_t c_DarkOrchid2;
+extern const rgba_t c_DarkOrchid3;
+extern const rgba_t c_DarkOrchid4;
+extern const rgba_t c_purple1;
+extern const rgba_t c_purple2;
+extern const rgba_t c_purple3;
+extern const rgba_t c_purple4;
+extern const rgba_t c_MediumPurple1;
+extern const rgba_t c_MediumPurple2;
+extern const rgba_t c_MediumPurple3;
+extern const rgba_t c_MediumPurple4;
+extern const rgba_t c_thistle1;
+extern const rgba_t c_thistle2;
+extern const rgba_t c_thistle3;
+extern const rgba_t c_thistle4;
+extern const rgba_t c_gray0;
+extern const rgba_t c_grey0;
+extern const rgba_t c_gray1;
+extern const rgba_t c_grey1;
+extern const rgba_t c_gray2;
+extern const rgba_t c_grey2;
+extern const rgba_t c_gray3;
+extern const rgba_t c_grey3;
+extern const rgba_t c_gray4;
+extern const rgba_t c_grey4;
+extern const rgba_t c_gray5;
+extern const rgba_t c_grey5;
+extern const rgba_t c_gray6;
+extern const rgba_t c_grey6;
+extern const rgba_t c_gray7;
+extern const rgba_t c_grey7;
+extern const rgba_t c_gray8;
+extern const rgba_t c_grey8;
+extern const rgba_t c_gray9;
+extern const rgba_t c_grey9;
+extern const rgba_t c_gray10;
+extern const rgba_t c_grey10;
+extern const rgba_t c_gray11;
+extern const rgba_t c_grey11;
+extern const rgba_t c_gray12;
+extern const rgba_t c_grey12;
+extern const rgba_t c_gray13;
+extern const rgba_t c_grey13;
+extern const rgba_t c_gray14;
+extern const rgba_t c_grey14;
+extern const rgba_t c_gray15;
+extern const rgba_t c_grey15;
+extern const rgba_t c_gray16;
+extern const rgba_t c_grey16;
+extern const rgba_t c_gray17;
+extern const rgba_t c_grey17;
+extern const rgba_t c_gray18;
+extern const rgba_t c_grey18;
+extern const rgba_t c_gray19;
+extern const rgba_t c_grey19;
+extern const rgba_t c_gray20;
+extern const rgba_t c_grey20;
+extern const rgba_t c_gray21;
+extern const rgba_t c_grey21;
+extern const rgba_t c_gray22;
+extern const rgba_t c_grey22;
+extern const rgba_t c_gray23;
+extern const rgba_t c_grey23;
+extern const rgba_t c_gray24;
+extern const rgba_t c_grey24;
+extern const rgba_t c_gray25;
+extern const rgba_t c_grey25;
+extern const rgba_t c_gray26;
+extern const rgba_t c_grey26;
+extern const rgba_t c_gray27;
+extern const rgba_t c_grey27;
+extern const rgba_t c_gray28;
+extern const rgba_t c_grey28;
+extern const rgba_t c_gray29;
+extern const rgba_t c_grey29;
+extern const rgba_t c_gray30;
+extern const rgba_t c_grey30;
+extern const rgba_t c_gray31;
+extern const rgba_t c_grey31;
+extern const rgba_t c_gray32;
+extern const rgba_t c_grey32;
+extern const rgba_t c_gray33;
+extern const rgba_t c_grey33;
+extern const rgba_t c_gray34;
+extern const rgba_t c_grey34;
+extern const rgba_t c_gray35;
+extern const rgba_t c_grey35;
+extern const rgba_t c_gray36;
+extern const rgba_t c_grey36;
+extern const rgba_t c_gray37;
+extern const rgba_t c_grey37;
+extern const rgba_t c_gray38;
+extern const rgba_t c_grey38;
+extern const rgba_t c_gray39;
+extern const rgba_t c_grey39;
+extern const rgba_t c_gray40;
+extern const rgba_t c_grey40;
+extern const rgba_t c_gray41;
+extern const rgba_t c_grey41;
+extern const rgba_t c_gray42;
+extern const rgba_t c_grey42;
+extern const rgba_t c_gray43;
+extern const rgba_t c_grey43;
+extern const rgba_t c_gray44;
+extern const rgba_t c_grey44;
+extern const rgba_t c_gray45;
+extern const rgba_t c_grey45;
+extern const rgba_t c_gray46;
+extern const rgba_t c_grey46;
+extern const rgba_t c_gray47;
+extern const rgba_t c_grey47;
+extern const rgba_t c_gray48;
+extern const rgba_t c_grey48;
+extern const rgba_t c_gray49;
+extern const rgba_t c_grey49;
+extern const rgba_t c_gray50;
+extern const rgba_t c_grey50;
+extern const rgba_t c_gray51;
+extern const rgba_t c_grey51;
+extern const rgba_t c_gray52;
+extern const rgba_t c_grey52;
+extern const rgba_t c_gray53;
+extern const rgba_t c_grey53;
+extern const rgba_t c_gray54;
+extern const rgba_t c_grey54;
+extern const rgba_t c_gray55;
+extern const rgba_t c_grey55;
+extern const rgba_t c_gray56;
+extern const rgba_t c_grey56;
+extern const rgba_t c_gray57;
+extern const rgba_t c_grey57;
+extern const rgba_t c_gray58;
+extern const rgba_t c_grey58;
+extern const rgba_t c_gray59;
+extern const rgba_t c_grey59;
+extern const rgba_t c_gray60;
+extern const rgba_t c_grey60;
+extern const rgba_t c_gray61;
+extern const rgba_t c_grey61;
+extern const rgba_t c_gray62;
+extern const rgba_t c_grey62;
+extern const rgba_t c_gray63;
+extern const rgba_t c_grey63;
+extern const rgba_t c_gray64;
+extern const rgba_t c_grey64;
+extern const rgba_t c_gray65;
+extern const rgba_t c_grey65;
+extern const rgba_t c_gray66;
+extern const rgba_t c_grey66;
+extern const rgba_t c_gray67;
+extern const rgba_t c_grey67;
+extern const rgba_t c_gray68;
+extern const rgba_t c_grey68;
+extern const rgba_t c_gray69;
+extern const rgba_t c_grey69;
+extern const rgba_t c_gray70;
+extern const rgba_t c_grey70;
+extern const rgba_t c_gray71;
+extern const rgba_t c_grey71;
+extern const rgba_t c_gray72;
+extern const rgba_t c_grey72;
+extern const rgba_t c_gray73;
+extern const rgba_t c_grey73;
+extern const rgba_t c_gray74;
+extern const rgba_t c_grey74;
+extern const rgba_t c_gray75;
+extern const rgba_t c_grey75;
+extern const rgba_t c_gray76;
+extern const rgba_t c_grey76;
+extern const rgba_t c_gray77;
+extern const rgba_t c_grey77;
+extern const rgba_t c_gray78;
+extern const rgba_t c_grey78;
+extern const rgba_t c_gray79;
+extern const rgba_t c_grey79;
+extern const rgba_t c_gray80;
+extern const rgba_t c_grey80;
+extern const rgba_t c_gray81;
+extern const rgba_t c_grey81;
+extern const rgba_t c_gray82;
+extern const rgba_t c_grey82;
+extern const rgba_t c_gray83;
+extern const rgba_t c_grey83;
+extern const rgba_t c_gray84;
+extern const rgba_t c_grey84;
+extern const rgba_t c_gray85;
+extern const rgba_t c_grey85;
+extern const rgba_t c_gray86;
+extern const rgba_t c_grey86;
+extern const rgba_t c_gray87;
+extern const rgba_t c_grey87;
+extern const rgba_t c_gray88;
+extern const rgba_t c_grey88;
+extern const rgba_t c_gray89;
+extern const rgba_t c_grey89;
+extern const rgba_t c_gray90;
+extern const rgba_t c_grey90;
+extern const rgba_t c_gray91;
+extern const rgba_t c_grey91;
+extern const rgba_t c_gray92;
+extern const rgba_t c_grey92;
+extern const rgba_t c_gray93;
+extern const rgba_t c_grey93;
+extern const rgba_t c_gray94;
+extern const rgba_t c_grey94;
+extern const rgba_t c_gray95;
+extern const rgba_t c_grey95;
+extern const rgba_t c_gray96;
+extern const rgba_t c_grey96;
+extern const rgba_t c_gray97;
+extern const rgba_t c_grey97;
+extern const rgba_t c_gray98;
+extern const rgba_t c_grey98;
+extern const rgba_t c_gray99;
+extern const rgba_t c_grey99;
+extern const rgba_t c_gray100;
+extern const rgba_t c_grey100;
+extern const rgba_t c_dark_grey;
+extern const rgba_t c_DarkGrey;
+extern const rgba_t c_dark_gray;
+extern const rgba_t c_DarkGray;
+extern const rgba_t c_dark_blue;
+extern const rgba_t c_DarkBlue;
+extern const rgba_t c_dark_cyan;
+extern const rgba_t c_DarkCyan;
+extern const rgba_t c_dark_magenta;
+extern const rgba_t c_DarkMagenta;
+extern const rgba_t c_dark_red;
+extern const rgba_t c_DarkRed;
+extern const rgba_t c_light_green;
+extern const rgba_t c_LightGreen;
+
diff --git a/include/colormap.h b/include/colormap.h
new file mode 100644
index 0000000..d86b767
--- /dev/null
+++ b/include/colormap.h
@@ -0,0 +1,19 @@
+
+/*
+ * Colormap manipulation
+ *
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Initialization and clean up
+ */
+
+extern void cmap_init(u32 len);
+extern void cmap_cleanup(void);
+
diff --git a/include/console.h b/include/console.h
new file mode 100644
index 0000000..12fc2e4
--- /dev/null
+++ b/include/console.h
@@ -0,0 +1,18 @@
+
+/*
+ * Simple text console
+ *
+ * (C) Copyright 2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+extern void con_init(const struct font *font);
+extern void con_putc(char c);
+extern void con_puts(const char *s);
+extern void con_printf(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+
diff --git a/include/drawops.h b/include/drawops.h
new file mode 100644
index 0000000..42d74bb
--- /dev/null
+++ b/include/drawops.h
@@ -0,0 +1,123 @@
+
+/*
+ * Low-level drawing operations
+ *
+ * These operations control the drawing of pixel values to the frame buffer
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+struct drawops {
+ const char *name;
+ int (*init)(void);
+ void (*set_pixel)(u32 x, u32 y, pixel_t pixel);
+ pixel_t (*get_pixel)(u32 x, u32 y);
+ void (*draw_hline)(u32 x, u32 y, u32 length, pixel_t pixel);
+ void (*draw_vline)(u32 x, u32 y, u32 length, pixel_t pixel);
+ void (*draw_rect)(u32 x, u32 y, u32 width, u32 height, pixel_t pixel);
+ void (*fill_rect)(u32 x, u32 y, u32 width, u32 height, pixel_t pixel);
+ void (*draw_line)(u32 x1, u32 y1, u32 x2, u32 y2, pixel_t pixel);
+ void (*expand_bitmap)(u32 x, u32 y, u32 width, u32 height, const u8 *data,
+ u32 pitch, pixel_t pixel0, pixel_t pixel1);
+ void (*draw_pixmap)(u32 x, u32 y, u32 width, u32 height,
+ const pixel_t *pixmap);
+ void (*draw_circle)(u32 x, u32 y, u32 r, pixel_t pixel);
+ void (*fill_circle)(u32 x, u32 y, u32 r, pixel_t pixel);
+ void (*draw_ellipse)(u32 x, u32 y, u32 a, u32 b, pixel_t pixel);
+ void (*fill_ellipse)(u32 x, u32 y, u32 a, u32 b, pixel_t pixel);
+ void (*copy_rect)(u32 dx, u32 dy, u32 width, u32 height, u32 sx, u32 sy);
+ /* FIXME: text */
+};
+
+extern struct drawops drawops;
+
+
+#define set_pixel(x, y, pixel) drawops.set_pixel((x), (y), (pixel))
+#define get_pixel(x, y) drawops.get_pixel((x), (y))
+#define draw_hline(x, y, length, pixel) \
+ drawops.draw_hline((x), (y), (length), (pixel))
+#define draw_vline(x, y, length, pixel) \
+ drawops.draw_vline((x), (y), (length), (pixel))
+#define draw_rect(x, y, width, height, pixel) \
+ drawops.draw_rect((x), (y), (width), (height), (pixel))
+#define fill_rect(x, y, width, height, pixel) \
+ drawops.fill_rect((x), (y), (width), (height), (pixel))
+#define draw_line(x1, y1, x2, y2) \
+ drawops.draw_line((x), (y), (x2), (y2))
+#define expand_bitmap(x, y, width, height, data, pitch, pixel0, pixel1) \
+ drawops.expand_bitmap((x), (y), (width), (height), (data), (pitch), \
+ (pixel0), (pixel1))
+#define draw_pixmap(x, y, width, height, pixmap) \
+ drawops.draw_pixmap((x), (y), (width), (height), (pixmap))
+#define draw_circle(x, y, r, pixel) \
+ drawops.draw_circle((x), (y), (r), (pixel))
+#define fill_circle(x, y, r, pixel) \
+ drawops.fill_circle((x), (y), (r), (pixel))
+#define draw_ellipse(x, y, a, b, pixel) \
+ drawops.draw_ellipse((x), (y), (a), (b), (pixel))
+#define fill_ellipse(x, y, a, b, pixel) \
+ drawops.fill_ellipse((x), (y), (a), (b), (pixel))
+#define copy_rect(dx, dy, width, height, sx, sy) \
+ drawops.copy_rect((dx), (dy), (width), (height), (sx), (sy))
+
+
+ /*
+ * Frame buffer organization specific drawing operations
+ */
+
+extern const struct drawops cfb2_drawops;
+extern const struct drawops cfb4_drawops;
+extern const struct drawops cfb8_drawops;
+extern const struct drawops cfb16_drawops;
+extern const struct drawops cfb24_drawops;
+extern const struct drawops cfb32_drawops;
+extern const struct drawops planar_drawops;
+extern const struct drawops iplan2_drawops;
+
+
+ /*
+ * Generic drawing operations
+ */
+
+extern void generic_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel);
+extern void generic_draw_vline(u32 x, u32 y, u32 length, pixel_t pixel);
+extern void generic_draw_rect(u32 x, u32 y, u32 width, u32 height,
+ pixel_t pixel);
+extern void generic_fill_rect(u32 x, u32 y, u32 width, u32 height,
+ pixel_t pixel);
+extern void generic_draw_line(u32 x1, u32 y1, u32 x2, u32 y2, pixel_t pixel);
+extern void generic_expand_bitmap(u32 x, u32 y, u32 width, u32 height,
+ const u8 *data, u32 pitch, pixel_t pixel0,
+ pixel_t pixel1);
+extern void generic_draw_pixmap(u32 x, u32 y, u32 width, u32 height,
+ const pixel_t *data);
+extern void generic_draw_circle(u32 x, u32 y, u32 r, pixel_t pixel);
+extern void generic_fill_circle(u32 x, u32 y, u32 r, pixel_t pixel);
+extern void generic_draw_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel);
+extern void generic_fill_ellipse(u32 x, u32 y, u32 a, u32 b, pixel_t pixel);
+extern void generic_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx,
+ u32 sy);
+
+
+ /*
+ * Generic CFB drawing routines
+ */
+
+extern int cfb_init(void);
+extern void cfb_draw_hline(u32 x, u32 y, u32 length, pixel_t pixel);
+extern void cfb_fill_rect(u32 x, u32 y, u32 width, u32 height, pixel_t pixel);
+extern void cfb_copy_rect(u32 dx, u32 dy, u32 width, u32 height, u32 sx,
+ u32 sy);
+
+
+ /*
+ * Initialization
+ */
+
+extern void drawops_init(void);
+
diff --git a/include/fb.h b/include/fb.h
new file mode 100644
index 0000000..fcda308
--- /dev/null
+++ b/include/fb.h
@@ -0,0 +1,45 @@
+
+/*
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <linux/fb.h>
+
+
+ /*
+ * Frame buffer device kernel API
+ */
+
+extern struct fb_var_screeninfo fb_var;
+extern struct fb_fix_screeninfo fb_fix;
+extern struct fb_cmap fb_cmap;
+
+extern void fb_open(void);
+extern void fb_close(void);
+extern int fb_get_fix(void);
+extern int fb_get_var(void);
+extern int fb_set_var(void);
+extern int fb_get_cmap(void);
+extern int fb_set_cmap(void);
+extern void fb_map(void);
+extern void fb_unmap(void);
+
+
+ /*
+ * Initialization/Clean up
+ */
+
+extern void fb_init(void);
+extern void fb_cleanup(void);
+
+
+ /*
+ * Mapped frame buffer
+ */
+
+extern u8 *fb;
+
diff --git a/include/font.h b/include/font.h
new file mode 100644
index 0000000..95f5bed
--- /dev/null
+++ b/include/font.h
@@ -0,0 +1,30 @@
+
+/*
+ * Font manipulation
+ *
+ * (C) Copyright 2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Font
+ */
+
+struct font {
+ unsigned int width, height;
+ const unsigned char *data; /* font data stream */
+};
+
+
+ /*
+ * Builtin fonts
+ */
+
+extern const struct font pearl8x8;
+extern const struct font sun12x22;
+extern const struct font vga8x16;
+
diff --git a/include/image.h b/include/image.h
new file mode 100644
index 0000000..8fd7b3d
--- /dev/null
+++ b/include/image.h
@@ -0,0 +1,34 @@
+
+/*
+ * Image manipulation
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Image
+ */
+
+enum image_type { IMAGE_BW, IMAGE_GREY256, IMAGE_CLUT256, IMAGE_RGB888 };
+
+struct image {
+ unsigned int width, height;
+ enum image_type type;
+ const unsigned char *data; /* pixel data stream */
+ /* IMAGE_CLUT256 only */
+ unsigned int clut_len; /* number of CLUT elements (max. 256) */
+ const unsigned char *clut; /* CLUT RGB stream */
+};
+
+
+ /*
+ * Builtin images
+ */
+
+extern const struct image penguin;
+
diff --git a/include/pixmap.h b/include/pixmap.h
new file mode 100644
index 0000000..d25c4d4
--- /dev/null
+++ b/include/pixmap.h
@@ -0,0 +1,25 @@
+
+/*
+ * Pixmap manipulation
+ *
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Convert an image to a pixmap
+ */
+
+extern pixel_t *create_pixmap(const struct image *image);
+
+
+ /*
+ * Free a pixmap
+ */
+
+#define free_pixmap(pixmap) free(pixmap)
+
diff --git a/include/test.h b/include/test.h
new file mode 100644
index 0000000..aa4d390
--- /dev/null
+++ b/include/test.h
@@ -0,0 +1,73 @@
+
+/*
+ * Test routines
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+enum test_reqflags {
+ /* Bits per pixel */
+ REQF_bits_per_pixel = (1<<0),
+ /* Number of colors */
+ REQF_num_colors = (1<<1),
+ /* Color component sizes */
+ REQF_red_length = (1<<2),
+ REQF_green_length = (1<<3),
+ REQF_blue_length = (1<<4),
+ REQF_transp_length = (1<<5),
+ /* Screen dimensions */
+ REQF_xres = (1<<6),
+ REQF_yres = (1<<7),
+};
+
+enum test_res {
+ TEST_OK = 0, /* OK */
+ TEST_FAIL = 1, /* Failed */
+ TEST_NA = 2, /* N/A */
+};
+
+struct test {
+ const char *name;
+ const char *desc;
+ enum visual_id visual;
+ enum test_reqflags reqs; /* multiple requirements may be or'ed */
+ u32 bits_per_pixel; /* if (flags & REQF_bits_per_pixel) */
+ u32 num_colors; /* if (flags & REQF_num_colors) */
+ u32 red_length; /* if (flags & REQF_red_length) */
+ u32 green_length; /* if (flags & REQF_green_length) */
+ u32 blue_length; /* if (flags & REQF_blue_length) */
+ u32 transp_length; /* if (flags & REQF_transp_length) */
+ u32 xres; /* if (flags & REQF_xres) */
+ u32 yres; /* if (flags & REQF_yres) */
+ enum test_res (*func)(void);
+};
+
+
+ /*
+ * Tests
+ */
+
+extern const struct test test001;
+extern const struct test test002;
+extern const struct test test003;
+extern const struct test test004;
+extern const struct test test005;
+extern const struct test test006;
+extern const struct test test007;
+extern const struct test test008;
+extern const struct test test009;
+extern const struct test test010;
+
+
+ /*
+ * Test run
+ */
+
+extern void test_run(const char *name);
+extern void test_list(const char *name, int verbose);
+
diff --git a/include/types.h b/include/types.h
new file mode 100644
index 0000000..8b11ee1
--- /dev/null
+++ b/include/types.h
@@ -0,0 +1,76 @@
+
+/*
+ * Type declarations
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Fixed size quantities
+ */
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned int u32;
+typedef unsigned long long u64;
+
+#if defined(__LP64__) || defined(__alpha__) || defined(__ia64__) || \
+ defined(__mips64__) || defined(__powerpc64__) || defined(__s390x__) || \
+ defined(__sparc64__) || defined(__x86_64__)
+#define BITS_PER_LONG 64
+#define BYTES_PER_LONG 8
+#define SHIFT_PER_LONG 6
+#elif defined(__LP32__) || defined(__arm__) || defined(__cris__) || \
+ defined(__i386__) || defined(__mc68000__) || defined(__mips__) || \
+ defined(__parisc__) || defined(__powerpc__) || defined(__s390__) || \
+ defined(__sh__) || defined(__sparc__)
+#define BITS_PER_LONG 32
+#define BYTES_PER_LONG 4
+#define SHIFT_PER_LONG 5
+#else
+#error Please add your architecture
+#endif
+
+
+ /*
+ * Pixel value (dependent on the visual)
+ */
+
+typedef u32 pixel_t;
+
+
+ /*
+ * RGBA color quartet
+ */
+
+typedef struct {
+ int r;
+ int g;
+ int b;
+ int a;
+} rgba_t;
+
+
+ /*
+ * YUVA color quartet
+ */
+
+typedef struct {
+ int y;
+ int u;
+ int v;
+ int a;
+} yuva_t;
+
+
+ /*
+ * NULL pointer
+ */
+
+#define NULL ((void *)0)
+
diff --git a/include/util.h b/include/util.h
new file mode 100644
index 0000000..1c44128
--- /dev/null
+++ b/include/util.h
@@ -0,0 +1,97 @@
+
+/*
+ * Utility definitions and routines
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * ANSI text control
+ */
+
+#define TXT_BLACK "\e[30m"
+#define TXT_RED "\e[31m"
+#define TXT_GREEN "\e[32m"
+#define TXT_YELLOW "\e[33m"
+#define TXT_BLUE "\e[33m"
+#define TXT_PURPLE "\e[35m"
+#define TXT_CYAN "\e[36m"
+#define TXT_WHITE "\e[37m"
+
+#define TXT_NORMAL "\e[0m"
+#define TXT_BOLD "\e[1m"
+#define TXT_UNDERLINE "\e[4m"
+#define TXT_INVERSE "\e[7m"
+
+
+ /*
+ * Messages
+ */
+
+extern void Message(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+extern void Warning(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+extern void Error(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+extern void Fatal(const char *fmt, ...)
+ __attribute__ ((noreturn)) __attribute ((format (printf, 1, 2)));
+extern void Debug(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+
+
+ /*
+ * Minimum and maximum
+ */
+
+#undef min
+#define min(a, b) \
+ ( { \
+ typeof(a) _a = (a); \
+ typeof(a) _b = (b); \
+ _a < _b ? _a : _b; \
+ } )
+
+#undef max
+#define max(a, b) \
+ ( { \
+ typeof(a) _a = (a); \
+ typeof(a) _b = (b); \
+ _a > _b ? _a : _b; \
+ } )
+
+
+ /*
+ * Wait
+ */
+
+extern void wait_for_key(int timeout);
+extern void wait_ms(int ms);
+
+
+ /*
+ * Number range conversion
+ */
+
+#define CONVERT_RANGE(n, oldmaxval, newmaxval) \
+ (((n)*(newmaxval)+((oldmaxval)/2))/(oldmaxval))
+
+#define EXPAND_TO_16BIT(n, maxval) CONVERT_RANGE(n, maxval, 65535)
+#define COMPRESS_FROM_16BIT(n, maxval) CONVERT_RANGE(n, 65535, maxval)
+
+
+ /*
+ * Command line options
+ */
+
+extern const char *Opt_Fbdev;
+extern int Opt_Debug;
+extern int Opt_List;
+extern int Opt_Quiet;
+extern int Opt_Verbose;
+
diff --git a/include/visops.h b/include/visops.h
new file mode 100644
index 0000000..dbd860e
--- /dev/null
+++ b/include/visops.h
@@ -0,0 +1,63 @@
+
+/*
+ * Visual operations
+ *
+ * These operations control the interpretation of pixel values
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Visual operations
+ */
+
+struct visops {
+ const char *name;
+ int (*init)(void);
+ void (*cleanup)(void);
+ int (*set_visual)(enum visual_id id);
+ /* For PseudoColor and DirectColor */
+ void (*update_cmap)(void);
+ /* Generic mode */
+ pixel_t (*match_color)(const rgba_t *color, rgba_t *error);
+};
+
+extern struct visops visops;
+
+
+ /*
+ * Fbdev visuals
+ */
+
+extern const struct visops mono_visops;
+extern const struct visops grayscale_visops;
+extern const struct visops ham_visops;
+extern const struct visops pseudocolor_visops;
+extern const struct visops truecolor_visops;
+extern const struct visops directcolor_visops;
+
+
+ /*
+ * Initialization
+ */
+
+extern void visops_init(void);
+
+
+ /*
+ * Internal routines
+ */
+
+extern pixel_t *create_component_table(u32 size, u32 offset, int msb_right,
+ u32 bpp);
+extern void pseudocolor_create_tables(u32 bpp);
+extern pixel_t pseudocolor_match_color(const rgba_t *color, rgba_t *error);
+extern int pseudocolor_set_visual(enum visual_id id);
+extern void truecolor_create_tables(void);
+extern pixel_t truecolor_match_color(const rgba_t *color, rgba_t *error);
+
diff --git a/include/visual.h b/include/visual.h
new file mode 100644
index 0000000..eecc04d
--- /dev/null
+++ b/include/visual.h
@@ -0,0 +1,100 @@
+
+/*
+ * Visual control
+ *
+ * Available visuals
+ *
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+
+ /*
+ * Supported visuals
+ */
+
+enum visual_id {
+ VISUAL_NONE = 0,
+ VISUAL_GENERIC,
+ VISUAL_MONO,
+ VISUAL_PSEUDOCOLOR,
+ VISUAL_GRAYSCALE,
+ VISUAL_TRUECOLOR,
+ VISUAL_DIRECTCOLOR
+};
+
+
+ /*
+ * Set the visual
+ */
+
+extern int visual_set(enum visual_id id);
+
+
+ /*
+ * Generic mode
+ */
+
+#define match_color(color) \
+ visops.match_color((color), NULL)
+#define match_color_error(color, error) \
+ visops.match_color((color), (error)
+
+
+ /*
+ * Monochrome
+ */
+
+extern pixel_t black_pixel, white_pixel;
+
+
+ /*
+ * Grayscale
+ */
+
+extern u32 gray_len, gray_bits;
+extern const pixel_t *gray_pixel;
+
+
+ /*
+ * Pseudocolor CLUT
+ */
+
+extern u32 idx_len, idx_bits;
+extern const pixel_t *idx_pixel;
+extern rgba_t *clut;
+
+extern void clut_update(void);
+
+
+ /*
+ * RGB(A) for Truecolor
+ */
+
+extern u32 red_len, green_len, blue_len, alpha_len;
+extern u32 red_bits, green_bits, blue_bits, alpha_bits;
+extern const pixel_t *red_pixel, *green_pixel, *blue_pixel, *alpha_pixel;
+
+#define rgba_pixel(r, g, b, a) \
+ (red_pixel[(r)] | green_pixel[(g)] | blue_pixel[(b)] | \
+ (alpha_pixel ? alpha_pixel[(a)] : 0))
+#define rgb_pixel(r, g, b) \
+ rgba_pixel((r), (g), (b), alpha_len-1)
+
+
+ /*
+ * Directcolor
+ *
+ * This mode uses a mix from Truecolor and Pseudocolor
+ * - red_len, green_len, blue_len, alpha_len
+ * - red_bits, green_bits, blue_bits, alpha_bits
+ * - red_pixel, green_pixel, blue_pixel, alpha_pixel
+ * - rgb_pixel
+ * - rgba_pixel
+ * - clut
+ * - clut_update
+ */
+
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..a13c800
--- /dev/null
+++ b/main.c
@@ -0,0 +1,147 @@
+
+/*
+ * Frame buffer device test suite
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "types.h"
+#include "util.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "visops.h"
+#include "test.h"
+
+#define DEFAULT_FBDEV "/dev/fb0"
+
+
+const char *ProgramName;
+
+const char *Opt_Fbdev = DEFAULT_FBDEV;
+int Opt_Debug = 0;
+int Opt_List = 0;
+int Opt_Quiet = 0;
+int Opt_Verbose = 0;
+
+
+ /*
+ * Print the usage template
+ */
+
+static void Usage(void) __attribute__ ((noreturn));
+
+static void Usage(void)
+{
+ printf("%s: [options] [test ...]\n\n"
+ "Valid options are:\n"
+ " -h, --help Display this usage information\n"
+ " -f, --fbdev dev Specify frame buffer device (default: %s)\n"
+ " -d, --debug Enable debug mode\n"
+ " -l, --list List tests only, don't run them\n"
+ " -q, --quiet Suppress messages\n"
+ " -v, --verbose Enable verbose mode\n"
+ "\n",
+ ProgramName, DEFAULT_FBDEV);
+ exit(1);
+}
+
+
+ /*
+ * Signal handler
+ */
+
+static void SigHandler(int signo)
+{
+ signal(signo, SIG_IGN);
+ Fatal("Caught signal %d. Exiting\n", signo);
+}
+
+
+ /*
+ * Main routine
+ */
+
+int main(int argc, char *argv[])
+{
+ ProgramName = argv[0];
+
+ while (argc > 1 && argv[1][0] == '-') {
+ if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))
+ Usage();
+ else if (!strcmp(argv[1], "-f") || !strcmp(argv[1], "--fbdev")) {
+ if (argc <= 2)
+ Usage();
+ else {
+ Opt_Fbdev = argv[2];
+ argv += 2;
+ argc -= 2;
+ }
+ } else if (!strcmp(argv[1], "-d") || !strcmp(argv[1], "--debug")) {
+ Opt_Debug = 1;
+ argv++;
+ argc--;
+ } else if (!strcmp(argv[1], "-l") || !strcmp(argv[1], "--list")) {
+ Opt_List = 1;
+ argv++;
+ argc--;
+ } else if(!strcmp(argv[1], "-q") || !strcmp(argv[1], "--quiet")) {
+ Opt_Quiet = 1;
+ argv++;
+ argc--;
+ } else if (!strcmp(argv[1], "-v") || !strcmp(argv[1], "--verbose")) {
+ Opt_Verbose = 1;
+ argv++;
+ argc--;
+ } else
+ Usage();
+ }
+
+ /*
+ * Install signal handlers
+ */
+ signal(SIGINT, SigHandler);
+ signal(SIGQUIT, SigHandler);
+ signal(SIGILL, SigHandler);
+ signal(SIGFPE, SigHandler);
+ signal(SIGSEGV, SigHandler);
+ signal(SIGTERM, SigHandler);
+
+ if (Opt_List) {
+ if (argc < 2) {
+ Message("Listing all tests\n");
+ test_list(NULL, Opt_Verbose);
+ } else
+ while (argc > 1) {
+ test_list(argv[1], Opt_Verbose);
+ argc--;
+ argv++;
+ }
+ } else {
+ fb_init();
+ drawops_init();
+ visops_init();
+
+ if (argc < 2) {
+ Message("Running all tests\n");
+ test_run(NULL);
+ } else
+ while (argc > 1) {
+ test_run(argv[1]);
+ argc--;
+ argv++;
+ }
+ fb_cleanup();
+ }
+ exit(0);
+}
+
diff --git a/pixmap.c b/pixmap.c
new file mode 100644
index 0000000..8cd21a6
--- /dev/null
+++ b/pixmap.c
@@ -0,0 +1,150 @@
+
+/*
+ * Pixmap manipulation
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdlib.h>
+
+#include "types.h"
+#include "clut.h"
+#include "image.h"
+#include "pixmap.h"
+#include "visual.h"
+#include "visops.h"
+#include "util.h"
+
+
+static void image_bw_to_pixmap(const struct image *image, pixel_t *pixmap);
+static void image_lut256_to_pixmap(const struct image *image, pixel_t *pixmap);
+static void image_rgb888_to_pixmap(const struct image *image, pixel_t *pixmap);
+
+
+ /*
+ * Convert an image to a pixmap
+ */
+
+pixel_t *create_pixmap(const struct image *image)
+{
+ pixel_t *pixmap;
+
+ pixmap = malloc(image->width*image->height*sizeof(pixel_t));
+ if (!pixmap)
+ Fatal("Not enough memory\n");
+ switch (image->type) {
+ case IMAGE_BW:
+ image_bw_to_pixmap(image, pixmap);
+ break;
+
+ case IMAGE_GREY256:
+ case IMAGE_CLUT256:
+ image_lut256_to_pixmap(image, pixmap);
+ break;
+
+ case IMAGE_RGB888:
+ image_rgb888_to_pixmap(image, pixmap);
+ break;
+
+ default:
+ Fatal("Unknown image type %d\n", image->type);
+ break;
+ }
+ return pixmap;
+}
+
+
+ /*
+ * Convert a black-and-white image to a pixmap
+ */
+
+static const unsigned char bitmask[8] = {
+ 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01
+};
+
+static void image_bw_to_pixmap(const struct image *image, pixel_t *pixmap)
+{
+ pixel_t black, white;
+ const unsigned char *src;
+ pixel_t *dst;
+ int i, j, k;
+
+ black = match_color(&clut_mono[0]);
+ white = match_color(&clut_mono[1]);
+
+ src = image->data;
+ dst = pixmap;
+ for (i = 0; i < image->height; i++) {
+ for (j = 0, k = 0; j < image->width; j++, k = (k+1) & 7) {
+ *dst++ = (*src & bitmask[k]) ? white : black;
+ if (k == 7)
+ src++;
+ }
+ if (k)
+ src++;
+ }
+}
+
+
+ /*
+ * Convert a GREY256/CLUT256 image to a pixmap
+ */
+
+static pixel_t lut[256];
+
+static void image_lut256_to_pixmap(const struct image *image, pixel_t *pixmap)
+{
+ rgba_t color;
+ const unsigned char *src;
+ pixel_t *dst;
+ int i;
+
+ color.a = 65535;
+ if (image->type == IMAGE_GREY256) {
+ for (i = 0; i < 256; i++) {
+ color.r = color.g = color.b = EXPAND_TO_16BIT(i, 255);
+ lut[i] = match_color(&color);
+ }
+ } else {
+ src = image->clut;
+ for (i = 0; i < image->clut_len; i++) {
+ color.r = EXPAND_TO_16BIT(*src++, 255);
+ color.g = EXPAND_TO_16BIT(*src++, 255);
+ color.b = EXPAND_TO_16BIT(*src++, 255);
+ lut[i] = match_color(&color);
+ }
+ }
+
+ src = image->data;
+ dst = pixmap;
+ for (i = 0; i < image->width*image->height; i++)
+ *dst++ = lut[*src++];
+}
+
+
+ /*
+ * Convert an RGB888 image to a pixmap
+ */
+
+static void image_rgb888_to_pixmap(const struct image *image, pixel_t *pixmap)
+{
+ const unsigned char *src;
+ pixel_t *dst;
+ rgba_t color;
+ int i;
+
+ src = image->data;
+ dst = pixmap;
+ color.a = 65535;
+ for (i = 0; i < image->width*image->height; i++) {
+ color.r = EXPAND_TO_16BIT(*src++, 255);
+ color.g = EXPAND_TO_16BIT(*src++, 255);
+ color.b = EXPAND_TO_16BIT(*src++, 255);
+ *dst++ = match_color(&color);
+ }
+}
+
diff --git a/pnmtohex/Makefile b/pnmtohex/Makefile
new file mode 100644
index 0000000..c5e2878
--- /dev/null
+++ b/pnmtohex/Makefile
@@ -0,0 +1,9 @@
+
+TOPDIR = ..
+
+HOST_TARGET = pnmtohex
+
+LIBS += -lnetpnm -lnetpbm -lnetpgm -lnetppm
+
+include $(TOPDIR)/Rules.make
+
diff --git a/pnmtohex/pnmtohex.c b/pnmtohex/pnmtohex.c
new file mode 100644
index 0000000..8b2975d
--- /dev/null
+++ b/pnmtohex/pnmtohex.c
@@ -0,0 +1,286 @@
+
+/*
+ * Convert a PNM image to a hexadecimal stream suitable for inclusion in
+ * C-source
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <pnm.h>
+
+#include "image.h"
+
+
+static pixel clut[256];
+
+static void normalize_ppm(xel **pnm, int cols, int rows, int maxval)
+{
+ int i, j;
+
+ for (i = 0 ; i < rows; i++)
+ for (j = 0; j < cols; j++)
+ PPM_DEPTH(pnm[i][j], pnm[i][j], maxval, 255);
+}
+
+static int fill_clut(xel **pnm, int cols, int rows)
+{
+ int clut_len = 0;
+ int i, j, k;
+
+ for (i = 0 ; i < rows; i++)
+ for (j = 0; j < cols; j++) {
+ for (k = 0; k < clut_len; k++)
+ if (PPM_EQUAL(pnm[i][j], clut[k]))
+ break;
+ if (k == clut_len) {
+ if (clut_len == 256)
+ return 257;
+ PPM_ASSIGN(clut[clut_len], PPM_GETR(pnm[i][j]),
+ PPM_GETG(pnm[i][j]), PPM_GETB(pnm[i][j]));
+ clut_len++;
+ }
+ }
+ return clut_len;
+}
+
+static void print_clut256_data(xel **pnm, int cols, int rows, int clut_len)
+{
+ int i, j, k, l;
+
+ for (i = 0, k = 0; i < rows; i++)
+ for (j = 0; j < cols; j++, k = (k+1) % 12) {
+ if (k == 0)
+ printf(" ");
+ for (l = 0; l < clut_len; l++)
+ if (PPM_EQUAL(pnm[i][j], clut[l]))
+ break;
+ printf(" 0x%02x,", l);
+ if (k == 11)
+ putchar('\n');
+ }
+ if (k != 0)
+ putchar('\n');
+}
+
+static void print_rgb888_data(xel **pnm, int cols, int rows)
+{
+ int i, j, k;
+
+ for (i = 0, k = 0; i < rows; i++)
+ for (j = 0; j < cols; j++, k = (k+1) % 4) {
+ if (k == 0)
+ printf(" ");
+ printf(" 0x%02x, 0x%02x, 0x%02x,", PPM_GETR(pnm[i][j]),
+ PPM_GETG(pnm[i][j]), PPM_GETB(pnm[i][j]));
+ if (k == 3)
+ putchar('\n');
+ }
+ if (k != 0)
+ putchar('\n');
+}
+
+static void print_grey256_data(xel **pnm, int cols, int rows, int maxval)
+{
+ int i, j, k;
+
+ for (i = 0, k = 0; i < rows; i++)
+ for (j = 0; j < cols; j++, k = (k+1) % 12) {
+ if (k == 0)
+ printf(" ");
+ printf(" 0x%02x,", PNM_GET1(pnm[i][j])*(255+maxval/2)/maxval);
+ if (k == 11)
+ putchar('\n');
+ }
+ if (k != 0)
+ putchar('\n');
+}
+
+static const unsigned char bitmask[8] = {
+ 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01
+};
+
+static void print_bw_data(xel **pnm, int cols, int rows)
+{
+ int i, j, k, l;
+ unsigned char data;
+
+ for (i = 0, k = 0, l = 0, data = 0; i < rows; i++) {
+ for (j = 0; j < cols; j++, l = (l+1) % 8) {
+ if (PNM_GET1(pnm[i][j]))
+ data |= bitmask[l];
+ if (l == 7) {
+ if (k == 0)
+ printf(" ");
+ printf(" 0x%02x, ", data);
+ if (k == 11)
+ putchar('\n');
+ k = (k+1) % 12;
+ data = 0;
+ }
+ }
+ if (l != 0) {
+ if (k == 0)
+ printf(" ");
+ printf(" 0x%02x, ", data);
+ if (k == 11)
+ putchar('\n');
+ k = (k+1) % 12;
+ data = 0;
+ }
+ }
+ if (k != 0)
+ putchar('\n');
+}
+
+static void print_image_clut(int clut_len)
+{
+ int i, j;
+
+ for (i = 0, j = 0; i < clut_len; i++, j = (j+1) % 4) {
+ if (j == 0)
+ printf(" ");
+ printf(" 0x%02x, 0x%02x, 0x%02x,", PPM_GETR(clut[i]),
+ PPM_GETG(clut[i]), PPM_GETB(clut[i]));
+ if (j == 3)
+ putchar('\n');
+ }
+ if (j != 0)
+ putchar('\n');
+}
+
+static void convert_image(const char *filename, const char *name)
+{
+ FILE *fp;
+ xel **pnm;
+ xelval maxval;
+ int cols, rows, fmt, clut_len = 0, size;
+ const char *type;
+
+ // Load the image
+ if (!strcmp(filename, "-"))
+ fp = stdin;
+ else {
+ fp = fopen(filename, "r");
+ if (!fp) {
+ fprintf(stderr, "Cannot open file %s: %s\n", filename,
+ strerror(errno));
+ exit(1);
+ }
+ }
+ pnm = pnm_readpnm(fp, &cols, &rows, &maxval, &fmt);
+ if (!pnm) {
+ fprintf(stderr, "Error reading PNM file: %s\n", strerror(errno));
+ exit(1);
+ }
+
+ switch (PNM_FORMAT_TYPE(fmt)) {
+ case PPM_TYPE:
+ normalize_ppm(pnm, cols, rows, maxval);
+ clut_len = fill_clut(pnm, cols, rows);
+ if (clut_len > 0 && clut_len <= 256) {
+ type = "CLUT256";
+ size = cols*rows;
+ } else {
+ type = "RGB888";
+ size = cols*rows*3;
+ }
+ break;
+
+ case PGM_TYPE:
+ type = "GREY256";
+ size = cols*rows;
+ break;
+
+ case PBM_TYPE:
+ type = "BW";
+ size = (cols+7)/8*rows;
+ break;
+
+ default:
+ fprintf(stderr, "Unknown PNM format %d\n", PNM_FORMAT_TYPE(fmt));
+ exit(1);
+ }
+
+ // Print header
+ printf(" /*\n");
+ printf(" * Image %s\n", name);
+ printf(" */\n\n");
+ printf("#include \"image.h\"\n\n");
+
+ // Print forward declarations
+ printf("static const unsigned char %s_data[];\n", name);
+ if (clut_len > 0 && clut_len <= 256)
+ printf("static const unsigned char %s_clut[];\n", name);
+ printf("\n");
+
+ // Print image structure
+ printf("const struct image %s = {\n", name);
+ printf(" width:\t%d,\n", cols);
+ printf(" height:\t%d,\n", rows);
+ printf(" type:\tIMAGE_%s,\n", type);
+ printf(" data:\t%s_data,\n", name);
+ if (clut_len > 0 && clut_len <= 256) {
+ printf(" clut_len:\t%d,\n", clut_len);
+ printf(" clut:\t%s_clut\n", name);
+ }
+ printf("};\n\n");
+
+ // Print image data
+ printf("static const unsigned char %s_data[%d] = {\n", name, size);
+ switch (PNM_FORMAT_TYPE(fmt)) {
+ case PPM_TYPE:
+ if (clut_len > 0 && clut_len <= 256)
+ print_clut256_data(pnm, cols, rows, clut_len);
+ else
+ print_rgb888_data(pnm, cols, rows);
+ break;
+
+ case PGM_TYPE:
+ print_grey256_data(pnm, cols, rows, maxval);
+ break;
+
+ case PBM_TYPE:
+ print_bw_data(pnm, cols, rows);
+ break;
+ }
+ printf("};\n\n");
+
+ // Print image clut
+ if (clut_len > 0 && clut_len <= 256) {
+ printf("static const unsigned char %s_clut[%d] = {\n", name,
+ clut_len*3);
+ print_image_clut(clut_len);
+ printf("};\n\n");
+ }
+
+ // Free temporary data
+ ppm_freearray(pnm, rows);
+}
+
+
+int main(int argc, char *argv[])
+{
+ pnm_init(&argc, argv);
+
+ if (argc < 3 || !(argc % 2)) {
+ fprintf(stderr, "Usage: %s <filename> <name> ...\n", argv[0]);
+ exit(1);
+ }
+
+ while (argc >= 2) {
+ convert_image(argv[1], argv[2]);
+ argv += 2;
+ argc -= 2;
+ }
+
+ exit(0);
+}
+
diff --git a/tests.c b/tests.c
new file mode 100644
index 0000000..565c35f
--- /dev/null
+++ b/tests.c
@@ -0,0 +1,122 @@
+
+/*
+ * Run some tests
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include "types.h"
+#include "fb.h"
+#include "visual.h"
+#include "test.h"
+#include "util.h"
+
+
+static const struct test *all_tests[] = {
+ &test001,
+ &test002,
+ &test003,
+ &test004,
+ &test005,
+ &test006,
+ &test007,
+ &test008,
+ &test009,
+ &test010,
+ NULL
+};
+
+
+ /*
+ * Run one test
+ */
+
+#define TEST_REQ_MIN(reqname, varname) \
+ if (test->reqs & REQF_ ## reqname) { \
+ if (varname < test->reqname) { \
+ Debug("Requirement " #reqname " >= %d not met\n", \
+ test->reqname); \
+ return; \
+ } \
+ }
+
+static void run_one_test(const struct test *test)
+{
+ enum test_res res;
+
+ Debug("Running test %s\n", test->name);
+
+ if (test->visual != VISUAL_NONE && !visual_set(test->visual)) {
+ Debug("Visual %d not supported\n", test->visual);
+ return;
+ }
+
+ TEST_REQ_MIN(bits_per_pixel, fb_var.bits_per_pixel);
+ TEST_REQ_MIN(num_colors, idx_len);
+ TEST_REQ_MIN(red_length, fb_var.red.length);
+ TEST_REQ_MIN(green_length, fb_var.green.length);
+ TEST_REQ_MIN(blue_length, fb_var.blue.length);
+ TEST_REQ_MIN(transp_length, fb_var.transp.length);
+ TEST_REQ_MIN(xres, fb_var.xres);
+ TEST_REQ_MIN(yres, fb_var.yres);
+
+ res = test->func();
+ switch (res) {
+ case TEST_OK:
+ Message("%s: PASSED\n", test->name);
+ break;
+
+ case TEST_FAIL:
+ Error("%s: FAILED\n", test->name);
+ break;
+
+ case TEST_NA:
+ Debug("Not applicable\n");
+ break;
+
+ default:
+ Fatal("%s returned unknown code %d\n", test->name, res);
+ break;
+ }
+}
+
+#undef TEST_REQ_MIN
+
+
+ /*
+ * Test run
+ */
+
+void test_run(const char *name)
+{
+ int i;
+
+ for (i = 0; all_tests[i]; i++)
+ if (!name || !strcmp(all_tests[i]->name, name))
+ run_one_test(all_tests[i]);
+}
+
+
+ /*
+ * List all tests
+ */
+
+void test_list(const char *name, int verbose)
+{
+ int i;
+ const struct test *test;
+
+ for (i = 0; all_tests[i]; i++)
+ if (!name || !strcmp(all_tests[i]->name, name)) {
+ test = all_tests[i];
+ printf("%s: %s\n", test->name, test->desc);
+ }
+}
+
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 0000000..ede58bd
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,7 @@
+
+TOPDIR = ..
+
+O_TARGET = tests.o
+
+include $(TOPDIR)/Rules.make
+
diff --git a/tests/test001.c b/tests/test001.c
new file mode 100644
index 0000000..0f215f6
--- /dev/null
+++ b/tests/test001.c
@@ -0,0 +1,48 @@
+
+/*
+ * Test001
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "test.h"
+#include "util.h"
+
+#define X_BLOCKS 16
+#define Y_BLOCKS 12
+
+static enum test_res test001_func(void)
+{
+ int i, j;
+ pixel_t pixel;
+ u32 x0, y0, x1, y1;
+
+ for (i = 1, y0 = 0; i <= Y_BLOCKS; i++, y0 = y1) {
+ y1 = i*fb_var.yres/Y_BLOCKS;
+ for (j = 1, x0 = 0; j <= X_BLOCKS; j++, x0 = x1) {
+ pixel = (i+j) & 1 ? white_pixel : black_pixel;
+ x1 = j*fb_var.xres/X_BLOCKS;
+ fill_rect(x0, y0, x1-x0, y1-y0, pixel);
+ }
+ }
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test001 = {
+ .name = "test001",
+ .desc = "Draw a 16x12 checkerboard pattern",
+ .visual = VISUAL_MONO,
+ .func = test001_func,
+};
+
diff --git a/tests/test002.c b/tests/test002.c
new file mode 100644
index 0000000..8f7cab0
--- /dev/null
+++ b/tests/test002.c
@@ -0,0 +1,56 @@
+
+/*
+ * Test002
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "test.h"
+#include "util.h"
+
+#define X_BLOCKS 16
+#define Y_BLOCKS 12
+
+static enum test_res test002_func(void)
+{
+ int i;
+ u32 a, b, x1, x2, y1, y2;
+
+ fill_rect(0, 0, fb_var.xres, fb_var.yres, black_pixel);
+ for (i = 0; i <= Y_BLOCKS; i++)
+ draw_hline(0, i*(fb_var.yres-1)/Y_BLOCKS, fb_var.xres, white_pixel);
+ for (i = 0; i <= X_BLOCKS; i++)
+ draw_vline(i*(fb_var.xres-1)/X_BLOCKS, 0, fb_var.yres, white_pixel);
+ draw_ellipse(fb_var.xres/2, fb_var.yres/2, 3*fb_var.xres/8,
+ fb_var.yres/2-1, white_pixel);
+ a = (fb_var.xres-1)/X_BLOCKS;
+ b = (fb_var.yres-1)/Y_BLOCKS;
+ x1 = (fb_var.xres-1)/X_BLOCKS;
+ y1 = (fb_var.yres-1)/Y_BLOCKS;
+ x2 = (X_BLOCKS-1)*(fb_var.xres-1)/X_BLOCKS;
+ y2 = (Y_BLOCKS-1)*(fb_var.yres-1)/Y_BLOCKS;
+ draw_ellipse(x1, y1, a, b, white_pixel);
+ draw_ellipse(x2, y1, a, b, white_pixel);
+ draw_ellipse(x1, y2, a, b, white_pixel);
+ draw_ellipse(x2, y2, a, b, white_pixel);
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test002 = {
+ .name = "test002",
+ .desc = "Draw a grid and some circles",
+ .visual = VISUAL_MONO,
+ .func = test002_func,
+};
+
diff --git a/tests/test003.c b/tests/test003.c
new file mode 100644
index 0000000..66bfa3f
--- /dev/null
+++ b/tests/test003.c
@@ -0,0 +1,48 @@
+
+/*
+ * Test003
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "test.h"
+#include "clut.h"
+#include "util.h"
+
+static enum test_res test003_func(void)
+{
+ int i;
+ pixel_t pixel;
+ u32 x0, x1;
+
+ for (i = 0; i < 16; i++)
+ clut[i] = clut_console[i];
+ clut_update();
+ for (i = 1, x0 = 0; i <= 16; i++, x0 = x1) {
+ pixel = idx_pixel[i];
+ x1 = i*fb_var.xres/16;
+ fill_rect(x0, 0, x1-x0, fb_var.yres, pixel);
+ }
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test003 = {
+ .name = "test003",
+ .desc = "Draw the 16 Linux console colors",
+ .visual = VISUAL_PSEUDOCOLOR,
+ .reqs = REQF_num_colors,
+ .num_colors = 16,
+ .func = test003_func,
+};
+
diff --git a/tests/test004.c b/tests/test004.c
new file mode 100644
index 0000000..9b1e79e
--- /dev/null
+++ b/tests/test004.c
@@ -0,0 +1,57 @@
+
+/*
+ * Test004
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "color.h"
+#include "drawops.h"
+#include "image.h"
+#include "pixmap.h"
+#include "visual.h"
+#include "visops.h"
+#include "test.h"
+#include "util.h"
+
+
+static enum test_res test004_func(void)
+{
+ const struct image *image;
+ pixel_t *pixmap;
+ int x, y, width, height, i;
+
+ image = &penguin;
+ pixmap = create_pixmap(image);
+
+ fill_rect(0, 0, fb_var.xres, fb_var.yres, match_color(&c_black));
+ for (y = 0; y < fb_var.yres; y += image->height) {
+ height = min(image->height, fb_var.yres-y);
+ for (x = 0; x < fb_var.xres; x += image->width) {
+ width = min(image->width, fb_var.xres-x);
+ if (width == image->width)
+ draw_pixmap(x, y, image->width, height, pixmap);
+ else
+ for (i = 0; i < height; i++)
+ draw_pixmap(x, y+i, width, 1, pixmap+i*image->width);
+ }
+ }
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test004 = {
+ .name = "test004",
+ .desc = "Show the penguins",
+ .visual = VISUAL_GENERIC,
+ .func = test004_func,
+};
+
diff --git a/tests/test005.c b/tests/test005.c
new file mode 100644
index 0000000..f806208
--- /dev/null
+++ b/tests/test005.c
@@ -0,0 +1,52 @@
+
+/*
+ * Test005
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "test.h"
+#include "clut.h"
+#include "util.h"
+
+static enum test_res test005_func(void)
+{
+ int i, j;
+ pixel_t pixel;
+ u32 x0, y0, x1, y1;
+ int x_bits, y_bits, x_blocks, y_blocks;
+
+ clut_init_nice();
+ y_bits = idx_bits/2;
+ x_bits = idx_bits-y_bits;
+ x_blocks = 1<<x_bits;
+ y_blocks = 1<<y_bits;
+ for (i = 1, y0 = 0; i <= y_blocks; i++, y0 = y1) {
+ y1 = i*fb_var.yres/y_blocks;
+ for (j = 1, x0 = 0; j <= x_blocks; j++, x0 = x1) {
+ pixel = idx_pixel[(i-1)*x_blocks+(j-1)];
+ x1 = j*fb_var.xres/x_blocks;
+ fill_rect(x0, y0, x1-x0, y1-y0, pixel);
+ }
+ }
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test005 = {
+ .name = "test005",
+ .desc = "Draw the default color palette",
+ .visual = VISUAL_PSEUDOCOLOR,
+ .func = test005_func,
+};
+
diff --git a/tests/test006.c b/tests/test006.c
new file mode 100644
index 0000000..20ba909
--- /dev/null
+++ b/tests/test006.c
@@ -0,0 +1,49 @@
+
+/*
+ * Test006
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "test.h"
+#include "clut.h"
+#include "util.h"
+
+#define Y_BLOCKS 16
+
+static enum test_res test006_func(void)
+{
+ int i, j;
+ pixel_t pixels[2];
+ u32 x0, x1, y0, y1;
+
+ for (i = 1, x0 = 0; i <= gray_len; i++, x0 = x1) {
+ pixels[0] = gray_pixel[i-1];
+ pixels[1] = gray_pixel[gray_len-i];
+ x1 = i*fb_var.xres/gray_len;
+ for (j = 1, y0 = 0; j <= Y_BLOCKS; j++, y0 = y1) {
+ y1 = j*fb_var.yres/Y_BLOCKS;
+ fill_rect(x0, y0, x1-x0, y1-y0, pixels[j & 1]);
+ }
+ }
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test006 = {
+ .name = "test006",
+ .desc = "Draw grayscale bands",
+ .visual = VISUAL_GRAYSCALE,
+ .func = test006_func,
+};
+
diff --git a/tests/test007.c b/tests/test007.c
new file mode 100644
index 0000000..d6e7864
--- /dev/null
+++ b/tests/test007.c
@@ -0,0 +1,88 @@
+
+/*
+ * Test007
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "test.h"
+#include "util.h"
+
+static void draw_grid(int x_blocks, int y_blocks, const pixel_t *x_table,
+ const pixel_t *y_table)
+{
+ int i, j;
+ pixel_t pixel;
+ u32 x0, y0, x1, y1;
+
+ for (i = 1, y0 = 0; i <= y_blocks; i++, y0 = y1) {
+ y1 = i*fb_var.yres/y_blocks;
+ for (j = 1, x0 = 0; j <= x_blocks; j++, x0 = x1) {
+ pixel = x_table[j-1] | y_table[i-1];
+ x1 = j*fb_var.xres/x_blocks;
+ fill_rect(x0, y0, x1-x0, y1-y0, pixel);
+ }
+ }
+}
+
+static void increase_level(int *component)
+{
+ int i;
+
+ for (i = 0 ; i < 0x10100; i += 0x101) {
+ wait_ms(20);
+ *component = i;
+ clut_update();
+ }
+ wait_for_key(10);
+ *component = 0;
+ clut_update();
+}
+
+static enum test_res test007_func(void)
+{
+ int i;
+
+ fill_rect(0, 0, fb_var.xres, fb_var.yres, black_pixel);
+ for (i = 0; i < red_len; i++)
+ clut[i].r = EXPAND_TO_16BIT(i, red_len-1);
+ for (i = 0; i < green_len; i++)
+ clut[i].g = EXPAND_TO_16BIT(i, green_len-1);
+ for (i = 0; i < blue_len; i++)
+ clut[i].b = EXPAND_TO_16BIT(i, blue_len-1);
+ for (i = 0; i < alpha_len; i++)
+ clut[i].a = 65535;
+ clut_update();
+
+ Message("Red and green, increasing blue level\n");
+ draw_grid(red_len, green_len, red_pixel, green_pixel);
+ increase_level(&clut[0].b);
+
+ Message("Green and blue, increasing red level\n");
+ draw_grid(green_len, blue_len, green_pixel, blue_pixel);
+ increase_level(&clut[0].r);
+
+ Message("Blue and red, increasing green level\n");
+ draw_grid(blue_len, red_len, blue_pixel, red_pixel);
+ increase_level(&clut[0].g);
+
+ return TEST_OK;
+}
+
+const struct test test007 = {
+ .name = "test007",
+ .desc = "DirectColor test",
+ .visual = VISUAL_DIRECTCOLOR,
+ .func = test007_func,
+};
+
diff --git a/tests/test008.c b/tests/test008.c
new file mode 100644
index 0000000..cb1506c
--- /dev/null
+++ b/tests/test008.c
@@ -0,0 +1,57 @@
+
+/*
+ * Test008
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "drawops.h"
+#include "visual.h"
+#include "visops.h"
+#include "color.h"
+#include "test.h"
+#include "util.h"
+
+#define X_BLOCKS 256
+#define Y_BLOCKS 256
+
+static enum test_res test008_func(void)
+{
+ int i, j;
+ yuva_t yuva;
+ rgba_t rgba;
+ pixel_t pixel;
+ u32 x0, y0, x1, y1;
+
+ yuva.y = 0xa000;
+ yuva.a = 0xffff;
+ for (i = 1, y0 = 0; i <= Y_BLOCKS; i++, y0 = y1) {
+ y1 = i*fb_var.yres/Y_BLOCKS;
+ for (j = 1, x0 = 0; j <= X_BLOCKS; j++, x0 = x1) {
+ yuva.u = EXPAND_TO_16BIT((i-1), Y_BLOCKS-1);
+ yuva.v = EXPAND_TO_16BIT((j-1), X_BLOCKS-1);
+ yuva_to_rgba(&yuva, &rgba);
+ pixel = match_color(&rgba);
+ x1 = j*fb_var.xres/X_BLOCKS;
+ fill_rect(x0, y0, x1-x0, y1-y0, pixel);
+ }
+ }
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test008 = {
+ .name = "test008",
+ .desc = "Draw the UV color space",
+ .visual = VISUAL_TRUECOLOR,
+ .func = test008_func,
+};
+
diff --git a/tests/test009.c b/tests/test009.c
new file mode 100644
index 0000000..4f36950
--- /dev/null
+++ b/tests/test009.c
@@ -0,0 +1,63 @@
+
+/*
+ * Test009
+ *
+ * (C) Copyright 2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "color.h"
+#include "drawops.h"
+#include "image.h"
+#include "pixmap.h"
+#include "visual.h"
+#include "visops.h"
+#include "test.h"
+#include "util.h"
+
+
+static enum test_res test009_func(void)
+{
+ const struct image *image;
+ pixel_t *pixmap;
+ int x, y, width, height;
+
+ image = &penguin;
+ pixmap = create_pixmap(image);
+ width = image->width;
+ height = image->height;
+ if (width > fb_var.xres || height > fb_var.yres) {
+ Message("Screen size too small for this test\n");
+ return TEST_NA;
+ }
+
+ fill_rect(0, 0, fb_var.xres, fb_var.yres, match_color(&c_black));
+ draw_pixmap(0, 0, width, height, pixmap);
+ wait_ms(1000);
+ for (x = width; x < fb_var.xres; x += width) {
+ copy_rect(x, 0, min(width, fb_var.xres-x), height, 0, 0);
+ wait_ms(20);
+ }
+ wait_ms(1000);
+ for (y = height; y < fb_var.yres; y += height) {
+ copy_rect(0, y, fb_var.xres, min(height, fb_var.yres-y), 0, 0);
+ wait_ms(20);
+ }
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test009 = {
+ .name = "test009",
+ .desc = "Show the penguins using copy_rect",
+ .visual = VISUAL_GENERIC,
+ .func = test009_func,
+};
+
diff --git a/tests/test010.c b/tests/test010.c
new file mode 100644
index 0000000..c6e9ed9
--- /dev/null
+++ b/tests/test010.c
@@ -0,0 +1,50 @@
+
+/*
+ * Test010
+ *
+ * (C) Copyright 2002-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "font.h"
+#include "console.h"
+#include "visual.h"
+#include "test.h"
+#include "util.h"
+
+#define FONT sun12x22
+
+
+static enum test_res test010_func(void)
+{
+ int i, j;
+
+ con_init(&FONT);
+ con_puts("Hello, world!\n");
+ for (i = 0; i < fb_var.yres/FONT.height+10; i++) {
+ for (j = 0; j < i; j++)
+ con_putc(' ');
+ con_printf("The quick brown fox jumps over the lazy dog\n");
+ }
+ for (i = 32; i < 256; i++)
+ con_putc(i);
+ wait_for_key(10);
+ return TEST_OK;
+}
+
+const struct test test010 = {
+ .name = "test010",
+ .desc = "Hello world",
+ .visual = VISUAL_PSEUDOCOLOR,
+ .reqs = REQF_num_colors,
+ .num_colors = 16,
+ .func = test010_func,
+};
+
diff --git a/util.c b/util.c
new file mode 100644
index 0000000..2022874
--- /dev/null
+++ b/util.c
@@ -0,0 +1,142 @@
+
+/*
+ * Utility routines
+ *
+ * (C) Copyright 2001-2003 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <unistd.h>
+
+#include "types.h"
+#include "fb.h"
+#include "util.h"
+
+
+#define TXT_MESSAGE TXT_GREEN
+#define TXT_WARNING TXT_YELLOW
+#define TXT_ERROR TXT_RED
+#define TXT_DEBUG TXT_BLUE
+#define TXT_FATAL TXT_RED
+
+
+ /*
+ * Print a prefixed message
+ */
+
+static void PrintMessage(const char *prefix, const char *fmt, va_list ap)
+{
+ fflush(stdout);
+ fputs(prefix, stderr);
+ vfprintf(stderr, fmt, ap);
+ fputs(TXT_NORMAL, stderr);
+}
+
+
+ /*
+ * Print a message
+ */
+
+void Message(const char *fmt, ...)
+{
+ va_list ap;
+
+ if (!Opt_Quiet) {
+ va_start(ap, fmt);
+ PrintMessage(TXT_MESSAGE, fmt, ap);
+ va_end(ap);
+ }
+}
+
+
+ /*
+ * Print a warning message
+ */
+
+void Warning(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ PrintMessage(TXT_WARNING, fmt, ap);
+ va_end(ap);
+}
+
+
+ /*
+ * Print an error message
+ */
+
+void Error(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ PrintMessage(TXT_ERROR, fmt, ap);
+ va_end(ap);
+}
+
+
+ /*
+ * Print a debug message
+ */
+
+void Debug(const char *fmt, ...)
+{
+ va_list ap;
+
+ if (Opt_Debug) {
+ va_start(ap, fmt);
+ PrintMessage(TXT_DEBUG, fmt, ap);
+ va_end(ap);
+ }
+}
+
+
+ /*
+ * Print a fatal error message
+ */
+
+void Fatal(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ PrintMessage(TXT_FATAL, fmt, ap);
+ va_end(ap);
+ fb_cleanup();
+ exit(1);
+}
+
+
+ /*
+ * Wait for a keypress
+ */
+
+void wait_for_key(int timeout)
+{
+ /* FIXME: no keypress handling yet */
+ sleep(2);
+}
+
+
+ /*
+ * Wait some milliseconds
+ */
+
+void wait_ms(int ms)
+{
+ struct timespec req;
+
+ req.tv_sec = ms/1000;
+ req.tv_nsec = (ms % 1000)*1000000;
+ nanosleep(&req, NULL);
+}
+
diff --git a/visops/Makefile b/visops/Makefile
new file mode 100644
index 0000000..8099815
--- /dev/null
+++ b/visops/Makefile
@@ -0,0 +1,7 @@
+
+TOPDIR = ..
+
+O_TARGET = visops.o
+
+include $(TOPDIR)/Rules.make
+
diff --git a/visops/directcolor.c b/visops/directcolor.c
new file mode 100644
index 0000000..878befe
--- /dev/null
+++ b/visops/directcolor.c
@@ -0,0 +1,168 @@
+
+/*
+ * Visual operations for a directcolor fbdev visual
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdlib.h>
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "fb.h"
+#include "color.h"
+#include "clut.h"
+#include "util.h"
+
+
+static u32 cmap_len;
+
+static void directcolor_update_cmap(void);
+
+
+ /*
+ * Initialisation
+ */
+
+static int directcolor_init(void)
+{
+ u32 minbflen, maxbflen, i;
+ pixel_t *table;
+ pixel_t pixel;
+
+ if (fb_fix.visual != FB_VISUAL_DIRECTCOLOR || fb_var.grayscale)
+ return 0;
+
+ /* Truecolor */
+ truecolor_create_tables();
+
+ /* Pseudocolor */
+ minbflen = min(min(fb_var.red.length, fb_var.green.length),
+ fb_var.blue.length);
+ maxbflen = max(max(fb_var.red.length, fb_var.green.length),
+ max(fb_var.blue.length, fb_var.transp.length));
+ idx_bits = minbflen;
+ idx_len = 1<<idx_bits;
+ table = malloc(idx_len*sizeof(pixel_t));
+ for (i = 0; i < idx_len; i++) {
+ pixel = rgb_pixel(i, i, i);
+ table[i] = pixel;
+ }
+ idx_pixel = table;
+
+ /* Grayscale */
+ gray_bits = idx_bits;
+ gray_len = idx_len;
+ gray_pixel = table;
+
+ /* Monochrome */
+ black_pixel = idx_pixel[0];
+ white_pixel = idx_pixel[1];
+
+ /* Directcolor */
+ cmap_len = 1<<maxbflen;
+ clut = malloc(cmap_len*sizeof(rgba_t));
+
+ Message("Available visuals:\n");
+ Message(" Monochrome\n");
+ Message(" Grayscale %d\n", gray_len);
+ Message(" Pseudocolor %d\n", idx_len);
+ Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits,
+ alpha_bits);
+ Message(" Directcolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits,
+ alpha_bits);
+
+ return 1;
+}
+
+
+ /*
+ * Monochrome
+ */
+
+static void directcolor_set_mono(void)
+{
+ clut[0].r = clut[0].g = clut[0].b = 0x0000; clut[0].a = 0xffff;
+ clut[1].r = clut[1].g = clut[1].b = 0xffff; clut[1].a = 0xffff;
+ directcolor_update_cmap();
+}
+
+
+ /*
+ * Truecolor/Grayscale
+ */
+
+static void directcolor_set_linear(void)
+{
+ clut_create_linear(clut, idx_len);
+ directcolor_update_cmap();
+}
+
+
+ /*
+ * Generic
+ */
+
+static int directcolor_set_visual(enum visual_id id)
+{
+ switch (id) {
+ case VISUAL_MONO:
+ directcolor_set_mono();
+ break;
+
+ case VISUAL_PSEUDOCOLOR:
+ case VISUAL_DIRECTCOLOR:
+ break;
+
+ case VISUAL_GENERIC:
+ case VISUAL_GRAYSCALE:
+ case VISUAL_TRUECOLOR:
+ directcolor_set_linear();
+ break;
+
+ default:
+ return 0;
+ }
+ return 1;
+}
+
+
+ /*
+ * Set the colormap from the CLUT
+ */
+
+static void directcolor_update_cmap(void)
+{
+ u32 i;
+
+ for (i = 0; i < cmap_len; i++) {
+ if (i < red_len)
+ fb_cmap.red[i] = clut[i].r;
+ if (i < green_len)
+ fb_cmap.green[i] = clut[i].g;
+ if (i < blue_len)
+ fb_cmap.blue[i] = clut[i].b;
+ if (fb_cmap.transp && i < alpha_len)
+ fb_cmap.transp[i] = clut[i].a;
+ }
+ fb_set_cmap();
+}
+
+
+ /*
+ * Operations
+ */
+
+const struct visops directcolor_visops = {
+ .name = "directcolor",
+ .init = directcolor_init,
+ .set_visual = directcolor_set_visual,
+ .update_cmap = directcolor_update_cmap,
+ .match_color = truecolor_match_color,
+};
+
diff --git a/visops/grayscale.c b/visops/grayscale.c
new file mode 100644
index 0000000..6f13e36
--- /dev/null
+++ b/visops/grayscale.c
@@ -0,0 +1,103 @@
+
+/*
+ * Visual operations for a truecolor fbdev visual
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "fb.h"
+#include "color.h"
+#include "util.h"
+
+
+void grayscale_create_tables(void)
+{
+ gray_bits = fb_var.bits_per_pixel;
+ gray_len = 1<<fb_var.bits_per_pixel;
+ gray_pixel = create_component_table(gray_len, fb_var.red.offset,
+ fb_var.red.msb_right, gray_bits);
+}
+
+
+ /*
+ * Initialisation
+ */
+
+static int grayscale_init(void)
+{
+ if (fb_fix.visual != FB_VISUAL_TRUECOLOR || !fb_var.grayscale)
+ return 0;
+
+ /* Grayscale */
+ grayscale_create_tables();
+
+ /* Monochrome */
+ black_pixel = gray_pixel[0];
+ white_pixel = gray_pixel[gray_len-1];
+
+ Message("Available visuals:\n");
+ Message(" Monochrome\n");
+ Message(" Grayscale %d\n", gray_len);
+
+ return 1;
+}
+
+
+ /*
+ * Set visual
+ */
+
+static int grayscale_set_visual(enum visual_id id)
+{
+ switch (id) {
+ case VISUAL_GENERIC:
+ case VISUAL_MONO:
+ case VISUAL_GRAYSCALE:
+ break;
+
+ default:
+ return 0;
+ }
+ return 1;
+}
+
+
+ /*
+ * Generic mode
+ */
+
+pixel_t grayscale_match_color(const rgba_t *color, rgba_t *error)
+{
+ rgba_t approx;
+ u32 g;
+
+ g = CONVERT_RANGE(color->r+color->g+color->b, 3*65535, gray_len-1);
+ if (error) {
+ approx.r = EXPAND_TO_16BIT(g, gray_len-1);
+ approx.g = EXPAND_TO_16BIT(g, gray_len-1);
+ approx.b = EXPAND_TO_16BIT(g, gray_len-1);
+ approx.a = 0xffff;
+ color_sub(error, color, &approx);
+ }
+ return gray_pixel[g];
+}
+
+
+ /*
+ * Operations
+ */
+
+const struct visops grayscale_visops = {
+ .name = "grayscale",
+ .init = grayscale_init,
+ .set_visual = grayscale_set_visual,
+ .match_color = grayscale_match_color,
+};
+
diff --git a/visops/ham.c b/visops/ham.c
new file mode 100644
index 0000000..691e807
--- /dev/null
+++ b/visops/ham.c
@@ -0,0 +1,56 @@
+
+/*
+ * Visual operations for an Amiga HAM/HAM8 (Hold And Modify) fbdev visual
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "fb.h"
+#include "util.h"
+
+
+ /*
+ * Initialisation
+ */
+
+static int ham_init(void)
+{
+ if (fb_fix.visual != FB_VISUAL_PSEUDOCOLOR || fb_var.grayscale ||
+ (fb_var.bits_per_pixel != 6 && fb_var.bits_per_pixel != 8) ||
+ fb_var.nonstd != FB_NONSTD_HAM)
+ return 0;
+
+ /*
+ * FIXME: for now we don't use the HAM features and treat it just like
+ * pseudocolor
+ */
+ pseudocolor_create_tables(fb_var.bits_per_pixel-2);
+
+ Message("Available visuals:\n");
+ Message(" Monochrome\n");
+ Message(" Grayscale %d\n", gray_len);
+ Message(" Pseudocolor %d\n", idx_len);
+ if (idx_len >= 8) {
+ Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits,
+ alpha_bits);
+ Message(" Directcolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits,
+ alpha_bits);
+ }
+
+ return 0;
+}
+
+const struct visops ham_visops = {
+ .name = "Amiga HAM/HAM8",
+ .init = ham_init,
+ .set_visual = pseudocolor_set_visual,
+ .match_color = pseudocolor_match_color,
+};
+
diff --git a/visops/init.c b/visops/init.c
new file mode 100644
index 0000000..4c071b2
--- /dev/null
+++ b/visops/init.c
@@ -0,0 +1,57 @@
+
+/*
+ * Visual operations
+ *
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "util.h"
+
+
+ /*
+ * Supported fbdev visuals
+ */
+
+static const struct visops *all_visops[] = {
+ &mono_visops,
+ &grayscale_visops,
+ &ham_visops,
+ &pseudocolor_visops,
+ &truecolor_visops,
+ &directcolor_visops,
+ NULL
+};
+
+
+ /*
+ * Current fbdev visual
+ */
+
+struct visops visops;
+
+
+ /*
+ * Initialization
+ */
+
+void visops_init(void)
+{
+ int i;
+
+ for (i = 0; all_visops[i]; i++)
+ if (all_visops[i]->init()) {
+ visops = *all_visops[i];
+ Message("Using visops %s\n", visops.name);
+ return;
+ }
+
+ Fatal("No visual operations available for this frame buffer mode\n");
+}
+
diff --git a/visops/mono.c b/visops/mono.c
new file mode 100644
index 0000000..8eb487e
--- /dev/null
+++ b/visops/mono.c
@@ -0,0 +1,110 @@
+
+/*
+ * Visual operations for a monochrome fbdev visual
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "fb.h"
+#include "color.h"
+#include "clut.h"
+#include "util.h"
+
+
+static rgba_t mono_clut[2];
+
+static pixel_t mono_gray_pixel[2];
+
+
+ /*
+ * Initialisation
+ */
+
+static int mono_init(void)
+{
+ switch (fb_fix.visual) {
+ case FB_VISUAL_MONO01:
+ black_pixel = 1;
+ white_pixel = 0;
+ break;
+
+ case FB_VISUAL_MONO10:
+ black_pixel = 0;
+ white_pixel = 1;
+ break;
+
+ default:
+ return 0;
+ }
+
+ /* Monochrome */
+ mono_clut[black_pixel] = clut_mono[0];
+ mono_clut[white_pixel] = clut_mono[1];
+
+ /* Grayscale */
+ gray_len = 2;
+ gray_bits = 1;
+ mono_gray_pixel[0] = black_pixel;
+ mono_gray_pixel[1] = white_pixel;
+ gray_pixel = mono_gray_pixel;
+
+ Message("Available visuals:\n");
+ Message(" Monochrome\n");
+ Message(" Grayscale %d\n", gray_len);
+
+ return 1;
+}
+
+
+ /*
+ * Set the visual
+ */
+
+static int mono_set_visual(enum visual_id id)
+{
+ switch (id) {
+ case VISUAL_GENERIC:
+ case VISUAL_MONO:
+ case VISUAL_GRAYSCALE:
+ break;
+
+ default:
+ return 0;
+ }
+ return 1;
+}
+
+
+ /*
+ * Generic
+ */
+
+static pixel_t mono_match_color(const rgba_t *color, rgba_t *error)
+{
+ u32 idx;
+
+ idx = color_find(color, mono_clut, 2);
+ if (error)
+ color_sub(error, color, &mono_clut[idx]);
+ return idx;
+}
+
+
+ /*
+ * Operations
+ */
+
+const struct visops mono_visops = {
+ .name = "monochrome",
+ .init = mono_init,
+ .set_visual = mono_set_visual,
+ .match_color = mono_match_color,
+};
+
diff --git a/visops/pseudocolor.c b/visops/pseudocolor.c
new file mode 100644
index 0000000..2c3f4d9
--- /dev/null
+++ b/visops/pseudocolor.c
@@ -0,0 +1,240 @@
+
+/*
+ * Visual operations for a pseudocolor fbdev visual
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdlib.h>
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "fb.h"
+#include "color.h"
+#include "clut.h"
+#include "util.h"
+
+
+static int pseudocolor_cmap;
+
+static void pseudocolor_update_cmap(void);
+
+
+void pseudocolor_create_tables(u32 bpp)
+{
+ /* Pseudocolor */
+ idx_bits = bpp;
+ idx_len = 1<<bpp;
+ idx_pixel = create_component_table(idx_len, fb_var.red.offset,
+ fb_var.red.msb_right,
+ fb_var.bits_per_pixel);
+ clut = malloc(idx_len*sizeof(rgba_t));
+
+ /* Grayscale */
+ gray_bits = idx_bits;
+ gray_len = idx_len;
+ gray_pixel = idx_pixel;
+
+ /* Monochrome */
+ black_pixel = idx_pixel[0];
+ white_pixel = idx_pixel[1];
+
+ /* Truecolor/Directcolor emulation */
+ if (bpp >= 3) {
+ red_bits = green_bits = blue_bits = bpp/3;
+ switch (bpp % 3) {
+ case 2:
+ red_bits++;
+ case 1:
+ green_bits++;
+ }
+
+ red_len = 1<<red_bits;
+ green_len = 1<<green_bits;
+ blue_len = 1<<blue_bits;
+ red_pixel = create_component_table(red_len, green_bits+blue_bits,
+ fb_var.red.msb_right, bpp);
+ green_pixel = create_component_table(green_len, blue_bits,
+ fb_var.red.msb_right, bpp);
+ blue_pixel = create_component_table(blue_len, 0, fb_var.red.msb_right,
+ bpp);
+ }
+}
+
+
+ /*
+ * Initialisation
+ */
+
+static int pseudocolor_init(void)
+{
+ if (fb_fix.visual != FB_VISUAL_PSEUDOCOLOR || fb_var.grayscale)
+ return 0;
+
+ pseudocolor_create_tables(fb_var.bits_per_pixel);
+
+ Message("Available visuals:\n");
+ Message(" Monochrome\n");
+ Message(" Grayscale %d\n", gray_len);
+ Message(" Pseudocolor %d\n", idx_len);
+ if (idx_len >= 8) {
+ Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits,
+ alpha_bits);
+ Message(" Directcolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits,
+ alpha_bits);
+ }
+
+ return 1;
+}
+
+
+ /*
+ * Monochrome
+ */
+
+static void pseudocolor_set_mono(void)
+{
+ clut[0].r = clut[0].g = clut[0].b = 0x0000; clut[0].a = 0xffff;
+ clut[1].r = clut[1].g = clut[1].b = 0xffff; clut[1].a = 0xffff;
+ pseudocolor_cmap = 1;
+ pseudocolor_update_cmap();
+}
+
+
+ /*
+ * Grayscale
+ */
+
+static void pseudocolor_set_grayscale(void)
+{
+ clut_create_linear(clut, idx_len);
+ pseudocolor_cmap = 1;
+ pseudocolor_update_cmap();
+}
+
+
+ /*
+ * Truecolor
+ */
+
+static int pseudocolor_set_truecolor(void)
+{
+ if (idx_len < 8)
+ return 0;
+
+ clut_create_rgbcube(clut, red_len, green_len, blue_len);
+ pseudocolor_cmap = 1;
+ pseudocolor_update_cmap();
+ return 1;
+}
+
+
+ /*
+ * Directcolor
+ */
+
+static int pseudocolor_set_directcolor(void)
+{
+ if (idx_len < 8)
+ return 0;
+
+ pseudocolor_cmap = 0;
+ return 1;
+}
+
+
+int pseudocolor_set_visual(enum visual_id id)
+{
+ switch (id) {
+ case VISUAL_PSEUDOCOLOR:
+ pseudocolor_cmap = 1;
+ break;
+
+ case VISUAL_GENERIC:
+ pseudocolor_cmap = 1;
+ clut_init_nice();
+ break;
+
+ case VISUAL_MONO:
+ pseudocolor_set_mono();
+ break;
+
+ case VISUAL_GRAYSCALE:
+ pseudocolor_set_grayscale();
+ break;
+
+ case VISUAL_TRUECOLOR:
+ return pseudocolor_set_truecolor();
+
+ case VISUAL_DIRECTCOLOR:
+ return pseudocolor_set_directcolor();
+
+ default:
+ return 0;
+ }
+ return 1;
+}
+
+
+ /*
+ * Set the colormap from the CLUT
+ */
+
+static void pseudocolor_update_cmap(void)
+{
+ u32 i, r, g, b;
+
+ if (pseudocolor_cmap) {
+ for (i = 0; i < idx_len; i++) {
+ fb_cmap.red[i] = clut[i].r;
+ fb_cmap.green[i] = clut[i].g;
+ fb_cmap.blue[i] = clut[i].b;
+ if (fb_cmap.transp)
+ fb_cmap.transp[i] = clut[i].a;
+ }
+ } else {
+ i = 0;
+ for (r = 0; r < red_len; r++) {
+ for (g = 0; g < green_len; g++) {
+ for (b = 0; b < blue_len; b++) {
+ fb_cmap.red[i] = clut[r].r;
+ fb_cmap.green[i] = clut[g].g;
+ fb_cmap.blue[i] = clut[b].b;
+ if (fb_cmap.transp)
+ fb_cmap.transp[i] = 0xffff;
+ i++;
+ }
+ }
+ }
+ }
+ fb_set_cmap();
+}
+
+
+ /*
+ * Find a matching color in generic mode
+ */
+
+pixel_t pseudocolor_match_color(const rgba_t *color, rgba_t *error)
+{
+ u32 idx;
+
+ idx = color_find(color, clut, idx_len);
+ if (error)
+ color_sub(error, color, &clut[idx]);
+ return idx_pixel[idx];
+}
+
+const struct visops pseudocolor_visops = {
+ .name = "pseudocolor",
+ .init = pseudocolor_init,
+ .set_visual = pseudocolor_set_visual,
+ .update_cmap = pseudocolor_update_cmap,
+ .match_color = pseudocolor_match_color,
+};
+
diff --git a/visops/truecolor.c b/visops/truecolor.c
new file mode 100644
index 0000000..34d089b
--- /dev/null
+++ b/visops/truecolor.c
@@ -0,0 +1,139 @@
+
+/*
+ * Visual operations for a truecolor fbdev visual
+ *
+ * (C) Copyright 2001-2002 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdlib.h>
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "fb.h"
+#include "color.h"
+#include "util.h"
+
+
+#define CREATE_COMPONENT_TABLE(tn, cn) \
+ do { \
+ tn ## _bits = fb_var.cn.length; \
+ tn ## _len = 1<<tn ## _bits; \
+ tn ## _pixel = create_component_table(tn ## _len, \
+ fb_var.cn.offset, \
+ fb_var.cn.msb_right, \
+ fb_var.bits_per_pixel); \
+ } while (0);
+
+void truecolor_create_tables(void)
+{
+ pixel_t *table;
+ pixel_t pixel;
+ u32 i;
+
+ /* Truecolor */
+ CREATE_COMPONENT_TABLE(red, red);
+ CREATE_COMPONENT_TABLE(green, green);
+ CREATE_COMPONENT_TABLE(blue, blue);
+ CREATE_COMPONENT_TABLE(alpha, transp);
+
+ /* Grayscale */
+ gray_bits = min(min(red_bits, green_bits), blue_bits);
+ gray_len = 1<<gray_bits;
+ table = malloc(gray_len*sizeof(pixel_t));
+ for (i = 0; i < gray_len; i++) {
+ pixel = rgb_pixel(CONVERT_RANGE(i, gray_len-1, red_len-1),
+ CONVERT_RANGE(i, gray_len-1, green_len-1),
+ CONVERT_RANGE(i, gray_len-1, blue_len-1));
+ table[i] = pixel;
+ }
+ gray_pixel = table;
+
+ /* Monochrome */
+ black_pixel = rgb_pixel(0, 0, 0);
+ white_pixel = rgb_pixel(red_len-1, green_len-1, blue_len-1);
+}
+
+#undef CREATE_COMPONENT_TABLE
+
+
+ /*
+ * Initialisation
+ */
+
+static int truecolor_init(void)
+{
+ if (fb_fix.visual != FB_VISUAL_TRUECOLOR || fb_var.grayscale)
+ return 0;
+
+ truecolor_create_tables();
+
+ Message("Available visuals:\n");
+ Message(" Monochrome\n");
+ Message(" Grayscale %d\n", gray_len);
+ Message(" Truecolor %d:%d:%d:%d\n", red_bits, green_bits, blue_bits,
+ alpha_bits);
+
+ return 1;
+}
+
+
+ /*
+ * Set visual
+ */
+
+static int truecolor_set_visual(enum visual_id id)
+{
+ switch (id) {
+ case VISUAL_GENERIC:
+ case VISUAL_MONO:
+ case VISUAL_GRAYSCALE:
+ case VISUAL_TRUECOLOR:
+ break;
+
+ default:
+ return 0;
+ }
+ return 1;
+}
+
+
+ /*
+ * Generic mode
+ */
+
+pixel_t truecolor_match_color(const rgba_t *color, rgba_t *error)
+{
+ rgba_t approx;
+ u32 r, g, b, a;
+
+ r = COMPRESS_FROM_16BIT(color->r, red_len-1);
+ g = COMPRESS_FROM_16BIT(color->g, green_len-1);
+ b = COMPRESS_FROM_16BIT(color->b, blue_len-1);
+ a = COMPRESS_FROM_16BIT(color->a, alpha_len-1);
+ if (error) {
+ approx.r = EXPAND_TO_16BIT(r, red_len-1);
+ approx.g = EXPAND_TO_16BIT(g, green_len-1);
+ approx.b = EXPAND_TO_16BIT(b, blue_len-1);
+ approx.a = EXPAND_TO_16BIT(a, alpha_len-1);
+ color_sub(error, color, &approx);
+ }
+ return rgba_pixel(r, g, b, a);
+}
+
+
+ /*
+ * Operations
+ */
+
+const struct visops truecolor_visops = {
+ .name = "truecolor",
+ .init = truecolor_init,
+ .set_visual = truecolor_set_visual,
+ .match_color = truecolor_match_color,
+};
+
diff --git a/visual.c b/visual.c
new file mode 100644
index 0000000..e878295
--- /dev/null
+++ b/visual.c
@@ -0,0 +1,106 @@
+
+/*
+ * Visual control
+ *
+ * (C) Copyright 2001 Geert Uytterhoeven
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of this archive for
+ * more details.
+ */
+
+#include <stdlib.h>
+
+#include "types.h"
+#include "visual.h"
+#include "visops.h"
+#include "fb.h"
+#include "util.h"
+
+
+ /*
+ * Set the visual
+ */
+
+int visual_set(enum visual_id id)
+{
+ return visops.set_visual(id);
+}
+
+
+ /*
+ * Monochrome
+ */
+
+pixel_t black_pixel, white_pixel;
+
+
+ /*
+ * Grayscale
+ */
+
+u32 gray_len, gray_bits;
+const pixel_t *gray_pixel;
+
+
+ /*
+ * CLUT for Pseudocolor and Directcolor
+ */
+
+u32 idx_len, idx_bits;
+const pixel_t *idx_pixel;
+rgba_t *clut;
+
+
+void clut_update(void)
+{
+ if (visops.update_cmap)
+ visops.update_cmap();
+}
+
+
+ /*
+ * RGB(A) for Truecolor and DirectColor
+ */
+
+u32 red_len, green_len, blue_len, alpha_len;
+u32 red_bits, green_bits, blue_bits, alpha_bits;
+const pixel_t *red_pixel, *green_pixel, *blue_pixel, *alpha_pixel;
+
+
+ /*
+ * Reverse the bits in a 32-bit word
+ */
+
+static u32 reverse32(u32 x)
+{
+ x = ((x & 0xffff0000) >> 16) | ((x & 0x0000ffff) << 16);
+ x = ((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8);
+ x = ((x & 0xf0f0f0f0) >> 4) | ((x & 0x0f0f0f0f) << 4);
+ x = ((x & 0xcccccccc) >> 2) | ((x & 0x33333333) << 2);
+ x = ((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1);
+ return x;
+}
+
+
+ /*
+ * Create an indexed table for one color component, based on the color
+ * bitfield
+ */
+
+pixel_t *create_component_table(u32 size, u32 offset, int msb_right, u32 bpp)
+{
+ pixel_t *table, pixel;
+ int i;
+
+ if (!size)
+ return NULL;
+
+ table = malloc(size*sizeof(pixel_t));
+ for (i = 0; i < size; i++) {
+ pixel = i<<offset;
+ table[i] = msb_right ? reverse32(pixel)>>(32-bpp) : pixel;
+ }
+ return table;
+}
+