Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 2:2946f9eefcae, committed 2020-04-08
- Comitter:
- skydarc
- Date:
- Wed Apr 08 15:00:13 2020 +0000
- Parent:
- 1:121b61eeffe7
- Commit message:
- v2
Changed in this revision
--- a/ST7735.lib Wed Apr 08 14:52:09 2020 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://mbed.org/users/SomeRandomBloke/code/Adafruit_ST7735/#c964b41674fc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ST7735/GFX.cpp Wed Apr 08 15:00:13 2020 +0000
@@ -0,0 +1,727 @@
+/*
+This is the core graphics library for all our displays, providing a common
+set of graphics primitives (points, lines, circles, etc.). It needs to be
+paired with a hardware-specific library for each display device we carry
+(to handle the lower-level functions).
+
+Adafruit invests time and resources providing this open source code, please
+support Adafruit & open-source hardware by purchasing products from Adafruit!
+
+Copyright (c) 2013 Adafruit Industries. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.*/
+
+/*Modified for MBED usage and tested with STM32F411RE on a Nucleo board.
+Embedded Print methods from Arduino Print.Cpp/Print.h
+
+by James Kidd 2014
+ * */
+
+#include <stdint.h>
+#include "GFX.h"
+#include "font.c"
+#include <math.h>
+#include <stdlib.h>
+#include <stddef.h>
+ #define pgm_read_byte(addr) (*(const unsigned char *)(addr))
+
+
+GFX::GFX(int16_t w, int16_t h):
+ WIDTH(w), HEIGHT(h)
+{
+ _width = WIDTH;
+ _height = HEIGHT;
+ rotation = 0;
+ cursor_y = cursor_x = 0;
+ textsize = 1;
+ textcolor = textbgcolor = 0xFFFF;
+ wrap = true;
+}
+
+// Draw a circle outline
+void GFX::drawCircle(int16_t x0, int16_t y0, int16_t r,
+ uint16_t color) {
+ int16_t f = 1 - r;
+ int16_t ddF_x = 1;
+ int16_t ddF_y = -2 * r;
+ int16_t x = 0;
+ int16_t y = r;
+
+ drawPixel(x0 , y0+r, color);
+ drawPixel(x0 , y0-r, color);
+ drawPixel(x0+r, y0 , color);
+ drawPixel(x0-r, y0 , color);
+
+ while (x<y) {
+ if (f >= 0) {
+ y--;
+ ddF_y += 2;
+ f += ddF_y;
+ }
+ x++;
+ ddF_x += 2;
+ f += ddF_x;
+
+ drawPixel(x0 + x, y0 + y, color);
+ drawPixel(x0 - x, y0 + y, color);
+ drawPixel(x0 + x, y0 - y, color);
+ drawPixel(x0 - x, y0 - y, color);
+ drawPixel(x0 + y, y0 + x, color);
+ drawPixel(x0 - y, y0 + x, color);
+ drawPixel(x0 + y, y0 - x, color);
+ drawPixel(x0 - y, y0 - x, color);
+ }
+}
+
+void GFX::drawCircleHelper( int16_t x0, int16_t y0,
+ int16_t r, uint8_t cornername, uint16_t color) {
+ int16_t f = 1 - r;
+ int16_t ddF_x = 1;
+ int16_t ddF_y = -2 * r;
+ int16_t x = 0;
+ int16_t y = r;
+
+ while (x<y) {
+ if (f >= 0) {
+ y--;
+ ddF_y += 2;
+ f += ddF_y;
+ }
+ x++;
+ ddF_x += 2;
+ f += ddF_x;
+ if (cornername & 0x4) {
+ drawPixel(x0 + x, y0 + y, color);
+ drawPixel(x0 + y, y0 + x, color);
+ }
+ if (cornername & 0x2) {
+ drawPixel(x0 + x, y0 - y, color);
+ drawPixel(x0 + y, y0 - x, color);
+ }
+ if (cornername & 0x8) {
+ drawPixel(x0 - y, y0 + x, color);
+ drawPixel(x0 - x, y0 + y, color);
+ }
+ if (cornername & 0x1) {
+ drawPixel(x0 - y, y0 - x, color);
+ drawPixel(x0 - x, y0 - y, color);
+ }
+ }
+}
+
+void GFX::fillCircle(int16_t x0, int16_t y0, int16_t r,
+ uint16_t color) {
+ drawFastVLine(x0, y0-r, 2*r+1, color);
+ fillCircleHelper(x0, y0, r, 3, 0, color);
+}
+
+// Used to do circles and roundrects
+void GFX::fillCircleHelper(int16_t x0, int16_t y0, int16_t r,
+ uint8_t cornername, int16_t delta, uint16_t color) {
+
+ int16_t f = 1 - r;
+ int16_t ddF_x = 1;
+ int16_t ddF_y = -2 * r;
+ int16_t x = 0;
+ int16_t y = r;
+
+ while (x<y) {
+
+ if (f >= 0) {
+ y--;
+ ddF_y += 2;
+ f += ddF_y;
+ }
+ x++;
+ ddF_x += 2;
+ f += ddF_x;
+
+ if (cornername & 0x1) {
+ drawFastVLine(x0+x, y0-y, 2*y+1+delta, color);
+ drawFastVLine(x0+y, y0-x, 2*x+1+delta, color);
+ }
+ if (cornername & 0x2) {
+ drawFastVLine(x0-x, y0-y, 2*y+1+delta, color);
+ drawFastVLine(x0-y, y0-x, 2*x+1+delta, color);
+ }
+ }
+}
+
+// Bresenham's algorithm - thx wikpedia
+void GFX::drawLine(int16_t x0, int16_t y0,
+ int16_t x1, int16_t y1,
+ uint16_t color) {
+ int16_t steep = abs(y1 - y0) > abs(x1 - x0);
+ if (steep) {
+ swap(x0, y0);
+ swap(x1, y1);
+ }
+
+ if (x0 > x1) {
+ swap(x0, x1);
+ swap(y0, y1);
+ }
+
+ int16_t dx, dy;
+ dx = x1 - x0;
+ dy = abs(y1 - y0);
+
+ int16_t err = dx / 2;
+ int16_t ystep;
+
+ if (y0 < y1) {
+ ystep = 1;
+ } else {
+ ystep = -1;
+ }
+
+ for (; x0<=x1; x0++) {
+ if (steep) {
+ drawPixel(y0, x0, color);
+ } else {
+ drawPixel(x0, y0, color);
+ }
+ err -= dy;
+ if (err < 0) {
+ y0 += ystep;
+ err += dx;
+ }
+ }
+}
+
+// Draw a rectangle
+void GFX::drawRect(int16_t x, int16_t y,
+ int16_t w, int16_t h,
+ uint16_t color) {
+ drawFastHLine(x, y, w, color);
+ drawFastHLine(x, y+h-1, w, color);
+ drawFastVLine(x, y, h, color);
+ drawFastVLine(x+w-1, y, h, color);
+}
+
+void GFX::drawFastVLine(int16_t x, int16_t y,
+ int16_t h, uint16_t color) {
+ // Update in subclasses if desired!
+ drawLine(x, y, x, y+h-1, color);
+}
+
+void GFX::drawFastHLine(int16_t x, int16_t y,
+ int16_t w, uint16_t color) {
+ // Update in subclasses if desired!
+ drawLine(x, y, x+w-1, y, color);
+}
+
+void GFX::fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
+ uint16_t color) {
+ // Update in subclasses if desired!
+ for (int16_t i=x; i<x+w; i++) {
+ drawFastVLine(i, y, h, color);
+ }
+}
+
+void GFX::fillScreen(uint16_t color) {
+ fillRect(-10, -10, _width+20, _height+20, color);
+}
+
+// Draw a rounded rectangle
+void GFX::drawRoundRect(int16_t x, int16_t y, int16_t w,
+ int16_t h, int16_t r, uint16_t color) {
+ // smarter version
+ drawFastHLine(x+r , y , w-2*r, color); // Top
+ drawFastHLine(x+r , y+h-1, w-2*r, color); // Bottom
+ drawFastVLine(x , y+r , h-2*r, color); // Left
+ drawFastVLine(x+w-1, y+r , h-2*r, color); // Right
+ // draw four corners
+ drawCircleHelper(x+r , y+r , r, 1, color);
+ drawCircleHelper(x+w-r-1, y+r , r, 2, color);
+ drawCircleHelper(x+w-r-1, y+h-r-1, r, 4, color);
+ drawCircleHelper(x+r , y+h-r-1, r, 8, color);
+}
+
+// Fill a rounded rectangle
+void GFX::fillRoundRect(int16_t x, int16_t y, int16_t w,
+ int16_t h, int16_t r, uint16_t color) {
+ // smarter version
+ fillRect(x+r, y, w-2*r, h, color);
+
+ // draw four corners
+ fillCircleHelper(x+w-r-1, y+r, r, 1, h-2*r-1, color);
+ fillCircleHelper(x+r , y+r, r, 2, h-2*r-1, color);
+}
+
+// Draw a triangle
+void GFX::drawTriangle(int16_t x0, int16_t y0,
+ int16_t x1, int16_t y1,
+ int16_t x2, int16_t y2, uint16_t color) {
+ drawLine(x0, y0, x1, y1, color);
+ drawLine(x1, y1, x2, y2, color);
+ drawLine(x2, y2, x0, y0, color);
+}
+
+// Fill a triangle
+void GFX::fillTriangle ( int16_t x0, int16_t y0,
+ int16_t x1, int16_t y1,
+ int16_t x2, int16_t y2, uint16_t color) {
+
+ int16_t a, b, y, last;
+
+ // Sort coordinates by Y order (y2 >= y1 >= y0)
+ if (y0 > y1) {
+ swap(y0, y1); swap(x0, x1);
+ }
+ if (y1 > y2) {
+ swap(y2, y1); swap(x2, x1);
+ }
+ if (y0 > y1) {
+ swap(y0, y1); swap(x0, x1);
+ }
+
+ if(y0 == y2) { // Handle awkward all-on-same-line case as its own thing
+ a = b = x0;
+ if(x1 < a) a = x1;
+ else if(x1 > b) b = x1;
+ if(x2 < a) a = x2;
+ else if(x2 > b) b = x2;
+ drawFastHLine(a, y0, b-a+1, color);
+ return;
+ }
+
+ int16_t
+ dx01 = x1 - x0,
+ dy01 = y1 - y0,
+ dx02 = x2 - x0,
+ dy02 = y2 - y0,
+ dx12 = x2 - x1,
+ dy12 = y2 - y1;
+ int32_t
+ sa = 0,
+ sb = 0;
+
+ // For upper part of triangle, find scanline crossings for segments
+ // 0-1 and 0-2. If y1=y2 (flat-bottomed triangle), the scanline y1
+ // is included here (and second loop will be skipped, avoiding a /0
+ // error there), otherwise scanline y1 is skipped here and handled
+ // in the second loop...which also avoids a /0 error here if y0=y1
+ // (flat-topped triangle).
+ if(y1 == y2) last = y1; // Include y1 scanline
+ else last = y1-1; // Skip it
+
+ for(y=y0; y<=last; y++) {
+ a = x0 + sa / dy01;
+ b = x0 + sb / dy02;
+ sa += dx01;
+ sb += dx02;
+ /* longhand:
+ a = x0 + (x1 - x0) * (y - y0) / (y1 - y0);
+ b = x0 + (x2 - x0) * (y - y0) / (y2 - y0);
+ */
+ if(a > b) swap(a,b);
+ drawFastHLine(a, y, b-a+1, color);
+ }
+
+ // For lower part of triangle, find scanline crossings for segments
+ // 0-2 and 1-2. This loop is skipped if y1=y2.
+ sa = dx12 * (y - y1);
+ sb = dx02 * (y - y0);
+ for(; y<=y2; y++) {
+ a = x1 + sa / dy12;
+ b = x0 + sb / dy02;
+ sa += dx12;
+ sb += dx02;
+ /* longhand:
+ a = x1 + (x2 - x1) * (y - y1) / (y2 - y1);
+ b = x0 + (x2 - x0) * (y - y0) / (y2 - y0);
+ */
+ if(a > b) swap(a,b);
+ drawFastHLine(a, y, b-a+1, color);
+ }
+}
+
+void GFX::drawBitmap(int16_t x, int16_t y,
+ const uint8_t *bitmap, int16_t w, int16_t h,
+ uint16_t color) {
+
+ int16_t i, j, byteWidth = (w + 7) / 8;
+
+ for(j=0; j<h; j++) {
+ for(i=0; i<w; i++ ) {
+ if(pgm_read_byte(bitmap + j * byteWidth + i / 8) & (128 >> (i & 7))) {
+ drawPixel(x+i, y+j, color);
+ }
+ }
+ }
+}
+
+// Draw a 1-bit color bitmap at the specified x, y position from the
+// provided bitmap buffer (must be PROGMEM memory) using color as the
+// foreground color and bg as the background color.
+void GFX::drawBitmap(int16_t x, int16_t y,
+ const uint8_t *bitmap, int16_t w, int16_t h,
+ uint16_t color, uint16_t bg) {
+
+ int16_t i, j, byteWidth = (w + 7) / 8;
+
+ for(j=0; j<h; j++) {
+ for(i=0; i<w; i++ ) {
+ if(pgm_read_byte(bitmap + j * byteWidth + i / 8) & (128 >> (i & 7))) {
+ drawPixel(x+i, y+j, color);
+ }
+ else {
+ drawPixel(x+i, y+j, bg);
+ }
+ }
+ }
+}
+
+//Draw XBitMap Files (*.xbm), exported from GIMP,
+//Usage: Export from GIMP to *.xbm, rename *.xbm to *.c and open in editor.
+//C Array can be directly used with this function
+void GFX::drawXBitmap(int16_t x, int16_t y,
+ const uint8_t *bitmap, int16_t w, int16_t h,
+ uint16_t color) {
+
+ int16_t i, j, byteWidth = (w + 7) / 8;
+
+ for(j=0; j<h; j++) {
+ for(i=0; i<w; i++ ) {
+ if(pgm_read_byte(bitmap + j * byteWidth + i / 8) & (1 << (i % 8))) {
+ drawPixel(x+i, y+j, color);
+ }
+ }
+ }
+}
+
+
+uint8_t GFX::write(uint8_t c) {
+
+ if (c == '\n') {
+ cursor_y += textsize*8;
+ cursor_x = 0;
+ } else if (c == '\r') {
+ // skip em
+ } else {
+ drawChar(cursor_x, cursor_y, c, textcolor, textbgcolor, textsize);
+ cursor_x += textsize*6;
+ if (wrap && (cursor_x > (_width - textsize*6))) {
+ cursor_y += textsize*8;
+ cursor_x = 0;
+ }
+ }
+
+ return 1;
+
+}
+
+// Draw a character
+void GFX::drawChar(int16_t x, int16_t y, unsigned char c,
+ uint16_t color, uint16_t bg, uint8_t size) {
+
+ if((x >= _width) || // Clip right
+ (y >= _height) || // Clip bottom
+ ((x + 6 * size - 1) < 0) || // Clip left
+ ((y + 8 * size - 1) < 0)) // Clip top
+ return;
+
+ for (int8_t i=0; i<6; i++ ) {
+ uint8_t line;
+ if (i == 5)
+ line = 0x0;
+ else
+ line = pgm_read_byte(font+(c*5)+i);
+ for (int8_t j = 0; j<8; j++) {
+ if (line & 0x1) {
+ if (size == 1) // default size
+ drawPixel(x+i, y+j, color);
+ else { // big size
+ fillRect(x+(i*size), y+(j*size), size, size, color);
+ }
+ } else if (bg != color) {
+ if (size == 1) // default size
+ drawPixel(x+i, y+j, bg);
+ else { // big size
+ fillRect(x+i*size, y+j*size, size, size, bg);
+ }
+ }
+ line >>= 1;
+ }
+ }
+}
+
+void GFX::setCursor(int16_t x, int16_t y) {
+ cursor_x = x;
+ cursor_y = y;
+}
+
+void GFX::setTextSize(uint8_t s) {
+ textsize = (s > 0) ? s : 1;
+}
+
+void GFX::setTextColor(uint16_t c) {
+ // For 'transparent' background, we'll set the bg
+ // to the same as fg instead of using a flag
+ textcolor = textbgcolor = c;
+}
+
+void GFX::setTextColor(uint16_t c, uint16_t b) {
+ textcolor = c;
+ textbgcolor = b;
+}
+
+void GFX::setTextWrap(bool w) {
+ wrap = w;
+}
+
+uint8_t GFX::getRotation(void) const {
+ return rotation;
+}
+
+void GFX::setRotation(uint8_t x) {
+ rotation = (x & 3);
+ switch(rotation) {
+ case 0:
+ case 2:
+ _width = WIDTH;
+ _height = HEIGHT;
+ break;
+ case 1:
+ case 3:
+ _width = HEIGHT;
+ _height = WIDTH;
+ break;
+ }
+}
+
+// Return the size of the display (per current rotation)
+int16_t GFX::width(void) const {
+ return _width;
+}
+
+int16_t GFX::height(void) const {
+ return _height;
+}
+
+void GFX::invertDisplay(bool i) {
+ // Do nothing, must be subclassed if supported
+}
+
+
+//Methods from Print.cpp Arduino
+
+uint8_t GFX::write(const uint8_t *buffer, uint8_t size)
+{
+ uint8_t n = 0;
+ while (size--) {
+ n += write(*buffer++);
+ }
+ return n;
+}
+
+uint8_t GFX::print(const char str[])
+{
+ return write(str);
+}
+
+uint8_t GFX::print(char c)
+{
+ return write(c);
+}
+
+uint8_t GFX::print(unsigned char b, int base)
+{
+ return print((unsigned long) b, base);
+}
+
+uint8_t GFX::print(int n, int base)
+{
+ return print((long) n, base);
+}
+
+uint8_t GFX::print(unsigned int n, int base)
+{
+ return print((unsigned long) n, base);
+}
+
+uint8_t GFX::print(long n, int base)
+{
+ if (base == 0) {
+ return write(n);
+ } else if (base == 10) {
+ if (n < 0) {
+ int t = print('-');
+ n = -n;
+ return printNumber(n, 10) + t;
+ }
+ return printNumber(n, 10);
+ } else {
+ return printNumber(n, base);
+ }
+}
+
+uint8_t GFX::print(unsigned long n, int base)
+{
+ if (base == 0) return write(n);
+ else return printNumber(n, base);
+}
+
+uint8_t GFX::print(double n, int digits)
+{
+ return printFloat(n, digits);
+}
+
+
+
+
+
+uint8_t GFX::println(void)
+{
+ size_t n = print('\r');
+ n += print('\n');
+ return n;
+}
+
+
+
+uint8_t GFX::println(const char c[])
+{
+ size_t n = print(c);
+ n += println();
+ return n;
+}
+
+uint8_t GFX::println(char c)
+{
+ size_t n = print(c);
+ n += println();
+ return n;
+}
+
+uint8_t GFX::println(unsigned char b, int numBase)
+{
+ size_t n = print(b, numBase);
+ n += println();
+ return n;
+}
+
+uint8_t GFX::println(int num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+uint8_t GFX::println(unsigned int num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+uint8_t GFX::println(long num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+uint8_t GFX::println(unsigned long num, int base)
+{
+ size_t n = print(num, base);
+ n += println();
+ return n;
+}
+
+uint8_t GFX::println(double num, int digits)
+{
+ size_t n = print(num, digits);
+ n += println();
+ return n;
+}
+
+
+
+// Private Methods /////////////////////////////////////////////////////////////
+
+uint8_t GFX::printNumber(unsigned long n, uint8_t base) {
+ char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte.
+ char *str = &buf[sizeof(buf) - 1];
+
+ *str = '\0';
+
+ // prevent crash if called with base == 1
+ if (base < 2) base = 10;
+
+ do {
+ unsigned long m = n;
+ n /= base;
+ char c = m - base * n;
+ *--str = c < 10 ? c + '0' : c + 'A' - 10;
+ } while(n);
+
+ return write(str);
+}
+
+uint8_t GFX::printFloat(double number, uint8_t digits)
+{
+ uint8_t n = 0;
+
+ if (isnan(number)) return print("nan");
+ if (isinf(number)) return print("inf");
+ if (number > 4294967040.0) return print ("ovf"); // constant determined empirically
+ if (number <-4294967040.0) return print ("ovf"); // constant determined empirically
+
+ // Handle negative numbers
+ if (number < 0.0)
+ {
+ n += print('-');
+ number = -number;
+ }
+
+ // Round correctly so that print(1.999, 2) prints as "2.00"
+ double rounding = 0.5;
+ for (uint8_t i=0; i<digits; ++i)
+ rounding /= 10.0;
+
+ number += rounding;
+
+ // Extract the integer part of the number and print it
+ unsigned long int_part = (unsigned long)number;
+ double remainder = number - (double)int_part;
+ n += print(int_part);
+
+ // Print the decimal point, but only if there are digits beyond
+ if (digits > 0) {
+ n += print(".");
+ }
+
+ // Extract digits from the remainder one at a time
+ while (digits-- > 0)
+ {
+ remainder *= 10.0;
+ int toPrint = int(remainder);
+ n += print(toPrint);
+ remainder -= toPrint;
+ }
+
+ return n;
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ST7735/GFX.h Wed Apr 08 15:00:13 2020 +0000
@@ -0,0 +1,160 @@
+/*
+This is the core graphics library for all our displays, providing a common
+set of graphics primitives (points, lines, circles, etc.). It needs to be
+paired with a hardware-specific library for each display device we carry
+(to handle the lower-level functions).
+
+Adafruit invests time and resources providing this open source code, please
+support Adafruit & open-source hardware by purchasing products from Adafruit!
+
+Copyright (c) 2013 Adafruit Industries. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*Modified for MBED usage and tested with STM32F411RE on a Nucleo board.
+Embedded Print methods from Arduino Print.Cpp/Print.h
+
+by James Kidd 2014
+ * */
+#include <stdint.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <string.h>
+#include <stdlib.h>
+#ifndef _GFX_H
+#define _GFX_H
+
+#define DEC 10
+
+#define swap(a, b) { int16_t t = a; a = b; b = t; }
+
+class GFX {
+
+ public:
+
+ GFX(int16_t w, int16_t h); // Constructor
+
+ // This MUST be defined by the subclass:
+ virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
+
+ // These MAY be overridden by the subclass to provide device-specific
+ // optimized code. Otherwise 'generic' versions are used.
+ virtual void
+ drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color),
+ drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color),
+ drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color),
+ drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
+ fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
+ fillScreen(uint16_t color),
+ fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
+ invertDisplay(bool i);
+
+ // These exist only with GFX (no subclass overrides)
+ void
+ drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
+ drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
+ uint16_t color),
+
+ fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
+ int16_t delta, uint16_t color),
+ drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
+ int16_t x2, int16_t y2, uint16_t color),
+ fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
+ int16_t x2, int16_t y2, uint16_t color),
+ drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
+ int16_t radius, uint16_t color),
+ fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
+ int16_t radius, uint16_t color),
+ drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap,
+ int16_t w, int16_t h, uint16_t color),
+ drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap,
+ int16_t w, int16_t h, uint16_t color, uint16_t bg),
+ drawXBitmap(int16_t x, int16_t y, const uint8_t *bitmap,
+ int16_t w, int16_t h, uint16_t color),
+ drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
+ uint16_t bg, uint8_t size),
+ setCursor(int16_t x, int16_t y),
+ setTextColor(uint16_t c),
+ setTextColor(uint16_t c, uint16_t bg),
+ setTextSize(uint8_t s),
+ setTextWrap(bool w), //retour a la ligne
+ setRotation(uint8_t r);
+
+
+ int16_t height(void) const;
+ int16_t width(void) const;
+
+ uint8_t getRotation(void) const;
+
+ protected:
+ const int16_t
+ WIDTH, HEIGHT; // This is the 'raw' display w/h - never changes
+ int16_t
+ _width, _height, // Display w/h as modified by current rotation
+ cursor_x, cursor_y;
+ uint16_t
+ textcolor, textbgcolor;
+ uint8_t
+ textsize,
+ rotation;
+ bool
+ wrap; // If set, 'wrap' text at right edge of display
+
+
+ //Print Methods
+ private:
+ uint8_t printNumber(unsigned long, uint8_t);
+ uint8_t printFloat(double, uint8_t);
+public:
+ uint8_t write(uint8_t);
+ uint8_t write(const char *str) {
+ if (str == NULL) return 0;
+ return write((const uint8_t *)str, strlen(str));
+ }
+ uint8_t write(const uint8_t *buffer, uint8_t size);
+ uint8_t write(const char *buffer, uint8_t size) {
+ return write((const uint8_t *)buffer, size);
+ }
+
+ uint8_t print(const char[]);
+ uint8_t print(char);
+ uint8_t print(unsigned char, int = DEC);
+ uint8_t print(int, int = DEC);
+ uint8_t print(unsigned int, int = DEC);
+ uint8_t print(long, int = DEC);
+ uint8_t print(unsigned long, int = DEC);
+ uint8_t print(double, int = 2);
+
+ uint8_t println(const char[]);
+ uint8_t println(char);
+ uint8_t println(unsigned char, int = DEC);
+ uint8_t println(int, int = DEC);
+ uint8_t println(unsigned int, int = DEC);
+ uint8_t println(long, int = DEC);
+ uint8_t println(unsigned long, int = DEC);
+ uint8_t println(double, int = 2);
+
+ uint8_t println(void);
+};
+
+#endif // _GFX_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ST7735/ST7735.cpp Wed Apr 08 15:00:13 2020 +0000
@@ -0,0 +1,1134 @@
+/***************************************************
+ This is a library for the Adafruit 1.8" SPI display.
+ This library works with the Adafruit 1.8" TFT Breakout w/SD card
+ ----> http://www.adafruit.com/products/358
+ as well as Adafruit raw 1.8" TFT display
+ ----> http://www.adafruit.com/products/618
+
+ Check out the links above for our tutorials and wiring diagrams
+ These displays use SPI to communicate, 4 or 5 pins are required to
+ interface (RST is optional)
+ Adafruit invests time and resources providing this open source code,
+ please support Adafruit and open-source hardware by purchasing
+ products from Adafruit!
+
+ Written by Limor Fried/Ladyada for Adafruit Industries.
+ MIT license, all text above must be included in any redistribution
+ ****************************************************/
+
+#include "mbed.h"
+#include "ST7735.h"
+
+Serial output1(USBTX, USBRX);
+
+//uint16_t table[1028][18] __attribute__((section("AHBSRAM0")));
+
+inline uint16_t swapcolor(uint16_t x) {
+ return (x << 11) | (x & 0x07E0) | (x >> 11);
+}
+
+// Constructor
+ST7735::ST7735(PinName mosi, PinName miso, PinName sck, PinName cs, PinName rs, PinName rst)
+ : lcdPort(mosi, miso, sck), _cs(cs), _rs(rs), _rst(rst), GFX(ST7735_TFTWIDTH_128, ST7735_TFTHEIGHT_160)
+{ }
+
+
+void ST7735::writecommand(uint8_t c)
+{
+ _rs = 0;
+ _cs = 0;
+ lcdPort.write( c );
+ _cs = 1;
+}
+
+
+void ST7735::writedata(uint8_t c)
+{
+ _rs = 1;
+ _cs = 0;
+ lcdPort.write( c );
+
+ _cs = 1;
+}
+
+
+// Rather than a bazillion writecommand() and writedata() calls, screen
+// initialization commands and arguments are organized in these tables
+// stored in PROGMEM. The table may look bulky, but that's mostly the
+// formatting -- storage-wise this is hundreds of bytes more compact
+// than the equivalent code. Companion function follows.
+#define DELAY 0x80
+static unsigned char
+ Bcmd[] = { // Initialization commands for 7735B screens
+ 18, // 18 commands in list:
+ ST7735_SWRESET, DELAY, // 1: Software reset, no args, w/delay
+ 50, // 50 ms delay
+ ST7735_SLPOUT , DELAY, // 2: Out of sleep mode, no args, w/delay
+ 255, // 255 = 500 ms delay
+ ST7735_COLMOD , 1+DELAY, // 3: Set color mode, 1 arg + delay:
+ 0x05, // 16-bit color
+ 10, // 10 ms delay
+ ST7735_FRMCTR1, 3+DELAY, // 4: Frame rate control, 3 args + delay:
+ 0x00, // fastest refresh
+ 0x06, // 6 lines front porch
+ 0x03, // 3 lines back porch
+ 10, // 10 ms delay
+ ST7735_MADCTL , 1 , // 5: Memory access ctrl (directions), 1 arg:
+ 0x08, // Row addr/col addr, bottom to top refresh
+ ST7735_DISSET5, 2 , // 6: Display settings #5, 2 args, no delay:
+ 0x15, // 1 clk cycle nonoverlap, 2 cycle gate
+ // rise, 3 cycle osc equalize
+ 0x02, // Fix on VTL
+ ST7735_INVCTR , 1 , // 7: Display inversion control, 1 arg:
+ 0x0, // Line inversion
+ ST7735_PWCTR1 , 2+DELAY, // 8: Power control, 2 args + delay:
+ 0x02, // GVDD = 4.7V
+ 0x70, // 1.0uA
+ 10, // 10 ms delay
+ ST7735_PWCTR2 , 1 , // 9: Power control, 1 arg, no delay:
+ 0x05, // VGH = 14.7V, VGL = -7.35V
+ ST7735_PWCTR3 , 2 , // 10: Power control, 2 args, no delay:
+ 0x01, // Opamp current small
+ 0x02, // Boost frequency
+ ST7735_VMCTR1 , 2+DELAY, // 11: Power control, 2 args + delay:
+ 0x3C, // VCOMH = 4V
+ 0x38, // VCOML = -1.1V
+ 10, // 10 ms delay
+ ST7735_PWCTR6 , 2 , // 12: Power control, 2 args, no delay:
+ 0x11, 0x15,
+ ST7735_GMCTRP1,16 , // 13: Magical unicorn dust, 16 args, no delay:
+ 0x09, 0x16, 0x09, 0x20, // (seriously though, not sure what
+ 0x21, 0x1B, 0x13, 0x19, // these config values represent)
+ 0x17, 0x15, 0x1E, 0x2B,
+ 0x04, 0x05, 0x02, 0x0E,
+ ST7735_GMCTRN1,16+DELAY, // 14: Sparkles and rainbows, 16 args + delay:
+ 0x0B, 0x14, 0x08, 0x1E, // (ditto)
+ 0x22, 0x1D, 0x18, 0x1E,
+ 0x1B, 0x1A, 0x24, 0x2B,
+ 0x06, 0x06, 0x02, 0x0F,
+ 10, // 10 ms delay
+ ST7735_CASET , 4 , // 15: Column addr set, 4 args, no delay:
+ 0x00, 0x02, // XSTART = 2
+ 0x00, 0x81, // XEND = 129
+ ST7735_RASET , 4 , // 16: Row addr set, 4 args, no delay:
+ 0x00, 0x02, // XSTART = 1
+ 0x00, 0x81, // XEND = 160
+ ST7735_NORON , DELAY, // 17: Normal display on, no args, w/delay
+ 10, // 10 ms delay
+ ST7735_DISPON , DELAY, // 18: Main screen turn on, no args, w/delay
+ 255 }, // 255 = 500 ms delay
+
+ Rcmd1[] = { // Init for 7735R, part 1 (red or green tab)
+ 15, // 15 commands in list:
+ ST7735_SWRESET, DELAY, // 1: Software reset, 0 args, w/delay
+ 150, // 150 ms delay
+ ST7735_SLPOUT , DELAY, // 2: Out of sleep mode, 0 args, w/delay
+ 255, // 500 ms delay
+ ST7735_FRMCTR1, 3 , // 3: Frame rate ctrl - normal mode, 3 args:
+ 0x01, 0x2C, 0x2D, // Rate = fosc/(1x2+40) * (LINE+2C+2D)
+ ST7735_FRMCTR2, 3 , // 4: Frame rate control - idle mode, 3 args:
+ 0x01, 0x2C, 0x2D, // Rate = fosc/(1x2+40) * (LINE+2C+2D)
+ ST7735_FRMCTR3, 6 , // 5: Frame rate ctrl - partial mode, 6 args:
+ 0x01, 0x2C, 0x2D, // Dot inversion mode
+ 0x01, 0x2C, 0x2D, // Line inversion mode
+ ST7735_INVCTR , 1 , // 6: Display inversion ctrl, 1 arg, no delay:
+ 0x07, // No inversion
+ ST7735_PWCTR1 , 3 , // 7: Power control, 3 args, no delay:
+ 0xA2,
+ 0x02, // -4.6V
+ 0x84, // AUTO mode
+ ST7735_PWCTR2 , 1 , // 8: Power control, 1 arg, no delay:
+ 0xC5, // VGH25 = 2.4C VGSEL = -10 VGH = 3 * AVDD
+ ST7735_PWCTR3 , 2 , // 9: Power control, 2 args, no delay:
+ 0x0A, // Opamp current small
+ 0x00, // Boost frequency
+ ST7735_PWCTR4 , 2 , // 10: Power control, 2 args, no delay:
+ 0x8A, // BCLK/2, Opamp current small & Medium low
+ 0x2A,
+ ST7735_PWCTR5 , 2 , // 11: Power control, 2 args, no delay:
+ 0x8A, 0xEE,
+ ST7735_VMCTR1 , 1 , // 12: Power control, 1 arg, no delay:
+ 0x0E,
+ ST7735_INVOFF , 0 , // 13: Don't invert display, no args, no delay
+ ST7735_MADCTL , 1 , // 14: Memory access control (directions), 1 arg:
+ 0xC0, // row addr/col addr, bottom to top refresh
+ ST7735_COLMOD , 1 , // 15: set color mode, 1 arg, no delay:
+ 0x05 }, // 16-bit color
+
+ Rcmd2green[] = { // Init for 7735R, part 2 (green tab only)
+ 2, // 2 commands in list:
+ ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay:
+ 0x00, 0x02, // XSTART = 0
+ 0x00, 0x7F+0x02, // XEND = 127
+ ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay:
+ 0x00, 0x01, // XSTART = 0
+ 0x00, 0x9F+0x01 }, // XEND = 159
+ Rcmd2red[] = { // Init for 7735R, part 2 (red tab only)
+ 2, // 2 commands in list:
+ ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay:
+ 0x00, 0x00, // XSTART = 0
+ 0x00, 0x7F, // XEND = 127
+ ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay:
+ 0x00, 0x00, // XSTART = 0
+ 0x00, 0x9F }, // XEND = 159
+
+ Rcmd2green144[] = { // Init for 7735R, part 2 (green 1.44 tab)
+ 2, // 2 commands in list:
+ ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay:
+ 0x00, 0x00, // XSTART = 0
+ 0x00, 0x7F, // XEND = 127
+ ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay:
+ 0x00, 0x00, // XSTART = 0
+ 0x00, 0x7F }, // XEND = 127
+
+ Rcmd2green160x80[] = { // Init for 7735R, part 2 (mini 160x80)
+ 2, // 2 commands in list:
+ ST7735_CASET , 4 , // 1: Column addr set, 4 args, no delay:
+ 0x00, 0x00, // XSTART = 0
+ 0x00, 0x7F, // XEND = 79
+ ST7735_RASET , 4 , // 2: Row addr set, 4 args, no delay:
+ 0x00, 0x00, // XSTART = 0
+ 0x00, 0x9F+0x01 }, // XEND = 159
+
+ Rcmd3[] = { // Init for 7735R, part 3 (red or green tab)
+ 4, // 4 commands in list:
+ ST7735_GMCTRP1, 16 , // 1: Magical unicorn dust, 16 args, no delay:
+ 0x02, 0x1c, 0x07, 0x12,
+ 0x37, 0x32, 0x29, 0x2d,
+ 0x29, 0x25, 0x2B, 0x39,
+ 0x00, 0x01, 0x03, 0x10,
+ ST7735_GMCTRN1, 16 , // 2: Sparkles and rainbows, 16 args, no delay:
+ 0x03, 0x1d, 0x07, 0x06,
+ 0x2E, 0x2C, 0x29, 0x2D,
+ 0x2E, 0x2E, 0x37, 0x3F,
+ 0x00, 0x00, 0x02, 0x10,
+ ST7735_NORON , DELAY, // 3: Normal display on, no args, w/delay
+ 10, // 10 ms delay
+ ST7735_DISPON , DELAY, // 4: Main screen turn on, no args w/delay
+ 100 }; // 100 ms delay
+
+
+// Companion code to the above tables. Reads and issues
+// a series of LCD commands stored in byte array.
+void ST7735::commandList(uint8_t *addr)
+{
+
+ uint8_t numCommands, numArgs;
+ uint16_t ms;
+
+ numCommands = *addr++; // Number of commands to follow
+ while(numCommands--) { // For each command...
+ writecommand(*addr++); // Read, issue command
+ numArgs = *addr++; // Number of args to follow
+ ms = numArgs & DELAY; // If hibit set, delay follows args
+ numArgs &= ~DELAY; // Mask out delay bit
+ while(numArgs--) { // For each argument...
+ writedata(*addr++); // Read, issue argument
+ }
+
+ if(ms) {
+ ms = *addr++; // Read post-command delay time (ms)
+ if(ms == 255) ms = 500; // If 255, delay for 500 ms
+ wait_ms(ms);
+ }
+ }
+}
+
+
+// Initialization code common to both 'B' and 'R' type displays
+void ST7735::commonInit(uint8_t *cmdList)
+{
+
+ colstart = rowstart = 0; // May be overridden in init func
+
+ _rs = 1;
+ _cs = 1;
+
+ // use default SPI format
+ lcdPort.format(8,0);
+ //lcdPort.frequency(16000000); // Lets try 4MHz
+ lcdPort.frequency(64000000); // Lets try 4MHz
+
+ // toggle RST low to reset; CS low so it'll listen to us
+ _cs = 0;
+ _rst = 1;
+ wait_ms(500);
+ _rst = 0;
+ wait_ms(500);
+ _rst = 1;
+ wait_ms(500);
+
+ if(cmdList) commandList(cmdList);
+}
+
+
+// Initialization for ST7735B screens
+void ST7735::initB(void)
+{
+ commonInit(Bcmd);
+}
+
+
+// Initialization for ST7735R screens (green or red tabs)
+void ST7735::initR(uint8_t options) {
+ commonInit(Rcmd1);
+ if(options == INITR_GREENTAB) {
+ commandList(Rcmd2green);
+ colstart = 2;
+ rowstart = 1;
+ } else if(options == INITR_144GREENTAB) {
+ _height = ST7735_TFTHEIGHT_128;
+ _width = ST7735_TFTWIDTH_128;
+ commandList(Rcmd2green144);
+ colstart = 2;
+ rowstart = 3;
+ } else if(options == INITR_MINI160x80) {
+ _height = ST7735_TFTHEIGHT_160;
+ _width = ST7735_TFTWIDTH_80;
+ commandList(Rcmd2green160x80);
+ colstart = 24;
+ rowstart = 0;
+ } else if(options == INITR_MINI160x80_RS) {
+ _height = ST7735_TFTHEIGHT_160;
+ _width = ST7735_TFTWIDTH_80;
+ commandList(Rcmd2green160x80);
+ writecommand(1 ? ST7735_INVON : ST7735_INVOFF);
+ colstart = 26;
+ rowstart = 1;
+ _tft_type = 2;
+ } else {
+ // colstart, rowstart left at default '0' values
+ commandList(Rcmd2red);
+ }
+ commandList(Rcmd3);
+
+ // if black, change MADCTL color filter
+ if (options == INITR_BLACKTAB) {
+ writecommand(ST7735_MADCTL);
+ writedata(0xC0);
+ }
+
+ tabcolor = options;
+}
+
+void ST7735::setAddrWindow(uint8_t x0, uint8_t y0, uint8_t x1,
+ uint8_t y1)
+{
+
+ writecommand(ST7735_CASET); // Column addr set
+ writedata(0x00);
+ writedata(x0+xstart); // XSTART
+ writedata(0x00);
+ writedata(x1+xstart); // XEND
+
+ writecommand(ST7735_RASET); // Row addr set
+ writedata(0x00);
+ writedata(y0+ystart); // YSTART
+ writedata(0x00);
+ writedata(y1+ystart); // YEND
+
+ writecommand(ST7735_RAMWR); // write to RAM
+}
+
+void ST7735::pushColor(uint16_t color)
+{
+ _rs = 1;
+ _cs = 0;
+
+ lcdPort.write( color >> 8 );
+ lcdPort.write( color );
+ _cs = 1;
+}
+
+
+void ST7735::drawPixel(int16_t x, int16_t y, uint16_t color)
+{
+
+ if((x < 0) ||(x >= _width) || (y < 0) || (y >= _height)) return;
+
+ setAddrWindow(x,y,x+1,y+1);
+
+ _rs = 1;
+ _cs = 0;
+
+ lcdPort.write( color >> 8 );
+ lcdPort.write( color );
+
+ _cs = 1;
+}
+
+
+void ST7735::drawFastVLine(int16_t x, int16_t y, int16_t h,
+ uint16_t color)
+{
+
+ // Rudimentary clipping
+ if((x >= _width) || (y >= _height)) return;
+ if((y+h-1) >= _height) h = _height-y;
+ setAddrWindow(x, y, x, y+h-1);
+
+ uint8_t hi = color >> 8, lo = color;
+ _rs = 1;
+ _cs = 0;
+ while (h--) {
+ lcdPort.write( hi );
+ lcdPort.write( lo );
+ }
+ _cs = 1;
+}
+
+
+void ST7735::drawFastHLine(int16_t x, int16_t y, int16_t w,
+ uint16_t color)
+{
+
+ // Rudimentary clipping
+ if((x >= _width) || (y >= _height)) return;
+ if((x+w-1) >= _width) w = _width-x;
+ setAddrWindow(x, y, x+w-1, y);
+
+ uint8_t hi = color >> 8, lo = color;
+ _rs = 1;
+ _cs = 0;
+ while (w--) {
+ lcdPort.write( hi );
+ lcdPort.write( lo );
+ }
+ _cs = 1;
+}
+
+
+
+void ST7735::fillScreen(uint16_t color)
+{
+ fillRect(-10, -10, _width+20, _height+20, color);
+}
+
+
+// fill a rectangle
+void ST7735::fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
+ uint16_t color)
+{
+
+ // rudimentary clipping (drawChar w/big text requires this)
+ if((x >= _width) || (y >= _height)) return;
+ if((x + w - 1) >= _width) w = _width - x;
+ if((y + h - 1) >= _height) h = _height - y;
+
+ setAddrWindow(x, y, x+w-1, y+h-1);
+
+ uint8_t hi = color >> 8, lo = color;
+ _rs = 1;
+ _cs = 0;
+ for(y=h; y>0; y--) {
+ for(x=w; x>0; x--) {
+ lcdPort.write( hi );
+ lcdPort.write( lo );
+ }
+ }
+
+ _cs = 1;
+}
+
+
+// Pass 8-bit (each) R,G,B, get back 16-bit packed color
+uint16_t ST7735::Color565(uint8_t r, uint8_t g, uint8_t b)
+{
+ return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3);
+}
+
+// Pass 8-bit (each) R,G,B, get back 16-bit packed color
+char* ST7735::Color565string(uint8_t r, uint8_t g, uint8_t b)
+{
+ uint16_t color;
+ char colorString[4];
+
+ color = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3);
+
+ sprintf(colorString, "%04x", color);
+
+ //output1.printf("0x%04x : %s\n", color, colorString);
+
+ return colorString;
+ //return "test";
+}
+
+
+#define MADCTL_MY 0x80
+#define MADCTL_MX 0x40
+#define MADCTL_MV 0x20
+#define MADCTL_ML 0x10
+#define MADCTL_RGB 0x00
+#define MADCTL_BGR 0x08
+#define MADCTL_MH 0x04
+
+void ST7735::setRotation(uint8_t m) {
+ _orientation = m;
+ writecommand(ST7735_MADCTL);
+ rotation = m % 4; // can't be higher than 3
+ switch (rotation) {
+ case 0:
+ if ((tabcolor == INITR_BLACKTAB) || (tabcolor == INITR_MINI160x80)) {
+ writedata(MADCTL_MX | MADCTL_MY | MADCTL_RGB);
+ } else if (tabcolor == INITR_MINI160x80_RS) {
+ writedata(MADCTL_MX | MADCTL_MY | MADCTL_BGR);
+ } else {
+ writedata(MADCTL_MX | MADCTL_MY | MADCTL_BGR);
+ }
+
+ if (tabcolor == INITR_144GREENTAB) {
+ _height = ST7735_TFTHEIGHT_128;
+ _width = ST7735_TFTWIDTH_128;
+ } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_MINI160x80_RS)) {
+ _height = ST7735_TFTHEIGHT_160;
+ _width = ST7735_TFTWIDTH_80;
+ } else {
+ _height = ST7735_TFTHEIGHT_160;
+ _width = ST7735_TFTWIDTH_128;
+ }
+ xstart = colstart;
+ ystart = rowstart;
+ break;
+ case 1:
+ if ((tabcolor == INITR_BLACKTAB) || (tabcolor == INITR_MINI160x80)) {
+ writedata(MADCTL_MY | MADCTL_MV | MADCTL_RGB);
+ } else if (tabcolor == INITR_MINI160x80_RS) {
+ writedata(MADCTL_MY | MADCTL_MV | MADCTL_BGR);
+ } else {
+ writedata(MADCTL_MY | MADCTL_MV | MADCTL_BGR);
+ }
+
+ if (tabcolor == INITR_144GREENTAB) {
+ _width = ST7735_TFTHEIGHT_128;
+ _height = ST7735_TFTWIDTH_128;
+ } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_MINI160x80_RS)) {
+ _width = ST7735_TFTHEIGHT_160;
+ _height = ST7735_TFTWIDTH_80;
+ } else {
+ _width = ST7735_TFTHEIGHT_160;
+ _height = ST7735_TFTWIDTH_128;
+ }
+ ystart = colstart;
+ xstart = rowstart;
+ break;
+ case 2:
+ if ((tabcolor == INITR_BLACKTAB) || (tabcolor == INITR_MINI160x80)) {
+ writedata(MADCTL_RGB);
+ } else if (tabcolor == INITR_MINI160x80_RS) {
+ writedata(MADCTL_BGR);
+ } else {
+ writedata(MADCTL_BGR);
+ }
+
+ if (tabcolor == INITR_144GREENTAB) {
+ _height = ST7735_TFTHEIGHT_128;
+ _width = ST7735_TFTWIDTH_128;
+ } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_MINI160x80_RS)) {
+ _height = ST7735_TFTHEIGHT_160;
+ _width = ST7735_TFTWIDTH_80;
+ } else {
+ _height = ST7735_TFTHEIGHT_160;
+ _width = ST7735_TFTWIDTH_128;
+ }
+ xstart = colstart;
+ ystart = rowstart;
+ break;
+ case 3:
+ if ((tabcolor == INITR_BLACKTAB) || (tabcolor == INITR_MINI160x80)) {
+ writedata(MADCTL_MX | MADCTL_MV | MADCTL_RGB);
+ } else if (tabcolor == INITR_MINI160x80_RS) {
+ writedata(MADCTL_MX | MADCTL_MV | MADCTL_BGR);
+ } else {
+ writedata(MADCTL_MX | MADCTL_MV | MADCTL_BGR);
+ }
+
+ if (tabcolor == INITR_144GREENTAB) {
+ _width = ST7735_TFTHEIGHT_128;
+ _height = ST7735_TFTWIDTH_128;
+ } else if ((tabcolor == INITR_MINI160x80) || (tabcolor == INITR_MINI160x80_RS)) {
+ _width = ST7735_TFTHEIGHT_160;
+ _height = ST7735_TFTWIDTH_80;
+ } else {
+ _width = ST7735_TFTHEIGHT_160;
+ _height = ST7735_TFTWIDTH_128;
+ }
+ ystart = colstart;
+ xstart = rowstart;
+ break;
+ }
+}
+
+void ST7735::invertDisplay(boolean i)
+{
+ writecommand(i ? ST7735_INVON : ST7735_INVOFF);
+}
+
+void ST7735::DrawBMP(int offsetx, int offsety, FILE *Image)
+{
+ uint32_t index = 0, width = 0, height = 0;
+ int i=0, x, y, byteCour;
+
+ int fpOffset = ftell(Image);
+ //output1.printf("current cursor : %02x\n", ftell(Image));
+ //output1.printf("first bytes bmp : %02x\n", fgetc(Image));
+
+ /* Get bitmap data address offset */
+ fseek(Image, 10+fpOffset , SEEK_SET );
+ index = fgetc(Image);
+ //output1.printf("index : 0x%02x ; ", index);
+
+ /* Read bitmap width */
+ fseek(Image, 18+fpOffset , SEEK_SET );
+ width = fgetc(Image);
+ width += fgetc(Image)<<8;
+ width += fgetc(Image)<<16;
+ width += fgetc(Image)<<24;
+ //output1.printf("width : %d ; ", width);
+
+ /* Read bitmap height */
+ fseek(Image, 22+fpOffset , SEEK_SET );
+ height = fgetc(Image);
+ height += fgetc(Image)<<8;
+ height += fgetc(Image)<<16;
+ height += fgetc(Image)<<24;
+ //output1.printf("height : %d\n", height);
+
+ fseek(Image, index+fpOffset , SEEK_SET );
+
+ byteCour = fgetc(Image);
+ byteCour += fgetc(Image)<<8;
+
+ for (y = height+offsety; offsety < y; y--) {
+ setAddrWindow(offsetx, y, offsetx+width-1, y);
+ _rs = 1;
+ _cs = 0;
+
+ for (x = 0; x < width; x++) {
+ if(x == width-1) fseek(Image, width%2, SEEK_CUR);
+
+ if(x <= width && y >= 0) {
+ lcdPort.write(byteCour>>8); // one line
+ lcdPort.write(byteCour);
+ }
+ _cs = 1;
+ byteCour = fgetc(Image);
+ byteCour += fgetc(Image)<<8;
+ _cs = 0;
+ }
+ }
+ _cs = 1;
+}
+
+// use imageconverter565.exe to generate bitmap array and put it in bitmap.c
+void ST7735::DrawRam(unsigned int x, unsigned int y, unsigned int w, unsigned int h, int *Image) {
+ unsigned int i,j;
+ setAddrWindow(x, y, x+w-1, y+h);
+ _rs = 1;
+ _cs = 0;
+ for (j = 0; j < h; j++) { //Lines
+ for (i = 0; i < w; i++) { // copy pixel data to TFT
+ lcdPort.write(*Image>>8); // one line
+ lcdPort.write(*Image);
+ *Image++;
+ }
+ }
+ _cs = 1;
+}
+
+void ST7735::DrawGIF(int offsetx, int offsety, FILE *Image) {
+
+ uint32_t width = 0, height = 0;
+ uint16_t code, preCode, clearCode, endCode, sizePalette;
+ uint8_t r, v, b, pxl, pxls[256];
+ int i, j;
+ int fpOffset = ftell(Image);
+
+ // palette
+ uint16_t table[750][17];
+ for(int i = 0; i < 750; i++)
+ for(int j = 0; j < 17; j++)
+ table[i][j] = NULL;
+
+ // Read bitmap width
+ fseek(Image, 6+fpOffset , SEEK_SET );
+ width = fgetc(Image);
+ width += fgetc(Image);
+ //output1.printf("width : %d ; ", width);
+
+ // Read bitmap height
+ fseek(Image, 8+fpOffset , SEEK_SET );
+ height = fgetc(Image);
+ height += fgetc(Image);
+ //output1.printf("height : %d\n", height);
+
+ // Get size of palette
+ fseek(Image, 10+fpOffset , SEEK_SET );
+ sizePalette = fgetc(Image)<<5;
+ sizePalette = ((uint8_t) sizePalette)>>5;
+ sizePalette = pow(2, sizePalette+1.0);
+
+ // Get palette
+ uint16_t palette[sizePalette];
+ fseek(Image, 13+fpOffset , SEEK_SET );
+ for(i=0; i < sizePalette; i++) {
+ r = fgetc(Image);
+ v = fgetc(Image);
+ b = fgetc(Image);
+
+ // palette simple
+ palette[i] = Color565(r, v, b);
+ table[i][0] = 1;table[i][1] = i;
+ }
+
+ preCode = i;
+ table[i][0] = i;
+ clearCode = i;
+ table[i+1][0] = i+1;
+ endCode = i+1;
+
+ // Find Image separator
+ while(1) {
+ pxl = fgetc(Image);
+ if(0x2C == pxl) break;
+ }
+
+ // Get minimal size of code
+ fseek(Image, 9 , SEEK_CUR );
+ uint8_t sizeCode = fgetc(Image);sizeCode++;
+
+ // Get size of block
+ uint8_t sizeBlock = fgetc(Image);
+ output1.printf("taille du block : %d\n", sizeBlock);
+
+ setAddrWindow(offsetx, offsety, offsetx+width-1, offsety+height);
+ _rs = 1;
+ _cs = 0;
+
+ // image data
+ uint16_t imgByte = fgetc(Image);
+ int sizeImgByte = 8;
+ int16_t index = sizePalette;
+ for(i=0; i < sizeBlock; ) {
+
+ // ajout d'un octet pour le calcul du prochain code
+ while(sizeImgByte < sizeCode) {
+ pxl = fgetc(Image);
+ i++;
+ if(sizeBlock == 0xff && i == sizeBlock) {
+ i = 0;
+ sizeBlock = pxl;
+ pxl = fgetc(Image);
+ }
+ imgByte = (pxl<<(sizeImgByte)) + bitExtracted(imgByte, sizeImgByte, 1);
+ sizeImgByte += 8;
+ }
+
+ // extraction du code
+ code = bitExtracted(imgByte, sizeCode, 1);
+
+ //output1.printf(">%03x; %03x; %03x; ", code, preCode, index);
+
+ //////////////////////
+ // traitement image //
+ //////////////////////
+
+ if(code == clearCode) index = sizePalette;
+ else if(code == endCode) break;
+ else {
+
+ // sauf si premier code : chargement du "pixel string" du precode
+ if(preCode != clearCode){
+ for(j=0; j < table[preCode][0];j++)
+ pxls[j] = table[preCode][j+1];
+ }
+
+ // si code connu :
+ if(code < index) {
+
+ for(int k=1; k <= table[code][0];k++) {
+ if(k==1) pxls[j] = table[code][k];
+
+ lcdPort.write((uint8_t) (palette[ table[code][k] ]>>8));
+ lcdPort.write((uint8_t) palette[ table[code][k] ]);
+ }
+
+ for(int k=1; k <= j+1; k++)
+ table[index][k] = pxls[k-1];
+
+ table[index][0] = j+1;
+
+
+ } else {
+
+ // add new stream pixel in palette and display
+ pxl = pxls[0];
+ pxls[j] = pxl;
+ for(int k=1; k <= j+1; k++) {
+ table[index][k] = pxls[k-1];
+
+ lcdPort.write((uint8_t) (palette[ pxls[k-1] ]>>8));
+ lcdPort.write((uint8_t) palette[ pxls[k-1] ]);
+
+ }
+ table[index][0] = j+1;
+ }
+
+ // clear buffer string
+ for(int k=0; k < 256; k++) pxls[k] = 0;
+ }
+
+ preCode = code;
+
+ // to compute next code
+ sizeImgByte -= sizeCode;
+ imgByte = bitExtracted(imgByte, sizeImgByte, sizeCode+1);
+
+ if( index == (pow(2, sizeCode*1.0)-1)) sizeCode++;
+
+ index++;
+ }
+
+ _cs = 1;
+
+}
+
+void ST7735::DrawANI(int offsetx, int offsety, FILE *Anim, int frame) {
+
+ int i;
+ char buf[32];
+ char sizeStr[12];
+ char *valExit = "error";
+ char namefile[32];
+ int size, offset = 0;
+
+ sprintf(namefile, "%d.bmp", frame);
+
+ while(!feof(Anim)) {
+ for(i=0; i <= strlen(namefile); i++) buf[i] = fgetc(Anim);
+
+ if(!strcmp(buf, namefile)) {
+ valExit = "";
+ break;
+ }
+
+ fseek(Anim , 124+offset , SEEK_SET);
+ for(i=0; i < 12; i++) sizeStr[i] = fgetc(Anim);
+ //printf("size string: %s; octal: %d; dec.: %x\n", sizeStr, atoi(sizeStr), oct2dec(atoi(sizeStr)) );
+
+ size = oct2dec(atoi(sizeStr));
+ if(offset % 512 != 0) offset += (size/512 + 2)*512;
+ else offset += (size/512 + 1)*512;
+
+ fseek(Anim , offset , SEEK_SET);
+ }
+
+ if(valExit == "error") {
+ printf("file \"%s\" not find in tar\n", namefile);
+ //return NULL;
+ } else {
+ fseek(Anim, offset+512 , SEEK_SET);
+
+ DrawBMP(offsetx, offsety, Anim);
+
+ //return 1;
+ }
+
+
+}
+
+void ST7735::scrollBmp(uint8_t top_fix_height, uint8_t bottom_fix_height, int _scroll_direction, int *bitmap) {
+ unsigned int i, startOffset, endOffset;// line = 0;
+ float a, b;
+
+ a = 7.7142*pow( 162.0-(top_fix_height+bottom_fix_height), -2.0 );
+ b = 8.0717*pow( 162.0-(top_fix_height+bottom_fix_height), -1.0 );
+
+ if(!_orientation) _scroll_direction = !_scroll_direction;
+
+ if((_scroll_direction && _orientation == 2) || (!_scroll_direction && !_orientation)) {
+ for (i = 0; i < 3248; i++) *bitmap++;
+ }
+
+ if((!_scroll_direction && _orientation == 2) || (_scroll_direction && !_orientation)) {
+ startOffset = top_fix_height;
+ endOffset = bottom_fix_height+1;
+ } else {
+ startOffset = bottom_fix_height;
+ endOffset = top_fix_height+1;
+ }
+
+ if((_scroll_direction && _orientation == 2) || (!_scroll_direction && !_orientation)) setScrollDefinition(bottom_fix_height, top_fix_height+1, _scroll_direction);
+ else setScrollDefinition(top_fix_height+1, bottom_fix_height, _scroll_direction);
+
+ for( int scroll = 1+startOffset; scroll <= 162-endOffset ; scroll++){
+
+ VerticalScroll(scroll);
+
+ if(scroll >=(53) && scroll <=109) {
+ if(_orientation == 0){
+ if(_scroll_direction) {
+ drawFastHLine(0, 162-(scroll)-2, 80, ST7735_BLACK);
+
+ for (i = 0; i < 57; i++) {
+ drawPixel(57+11-i, 162-(scroll)-2, *bitmap);
+ *bitmap++;
+ }
+ } else {
+ drawFastHLine(0, scroll-2, 80, ST7735_BLACK);
+
+ for (i = 0; i < 57; i++) {
+ drawPixel(12+i, scroll-2, *bitmap);
+ *bitmap--;
+ }
+ }
+ } else if(_orientation == 2) {
+ if(_scroll_direction) {
+ drawFastHLine(0, 162-scroll-1, 80, ST7735_BLACK);
+
+ for (i = 0; i < 57; i++) {
+ drawPixel(57+10-i,162-scroll-1, *bitmap);
+ *bitmap--;
+ }
+ } else {
+ drawFastHLine(0, scroll-1, 80, ST7735_BLACK);
+
+ for (i = 0; i < 57; i++) {
+ drawPixel(11+i,scroll-1, *bitmap);
+ *bitmap++;
+ }
+ }
+ }
+ }
+
+ float tempo = (a*scroll*scroll)-b*scroll+2.9408;
+ wait_ms(tempo);
+ //wait(0.1);
+ }
+ if(!_orientation) setRotation(0);
+ VerticalScroll(0);
+}
+
+int ST7735::oct2dec(int n) /* Function to convert octal to decimal */
+{
+ int decimal=0, i=0, rem;
+ while (n!=0)
+ {
+ rem = n%10;
+ n/=10;
+ decimal += rem*pow(8.0,i);
+ ++i;
+ }
+ return decimal;
+}
+
+int ST7735::bitExtracted(int number, int k, int p)
+{
+ return (((1 << k) - 1) & (number >> (p - 1)));
+}
+
+void ST7735::makeTable(void) {
+ remove("/sd/table.csv");
+ remove("/sd/pointers.csv");
+ FILE *table = fopen("/sd/table.csv", "w");
+ FILE *pointers = fopen("/sd/pointers.csv", "w");
+ fclose(table);
+ fclose(pointers);
+}
+
+uint16_t ST7735::readTable(unsigned int y, unsigned int x) {
+
+ FILE *table = fopen("/sd/table.csv", "r");
+ FILE *pointers = fopen("/sd/pointers.csv", "r");
+ char out[3];
+ char ptr[17];
+
+ fseek(pointers , y*17 , SEEK_SET);
+ //output1.printf("%d: ", y);
+ for(int i=0; i < 17; i++) {
+ ptr[i] = fgetc(pointers);
+ //output1.printf("%c", ptr[i]);
+ }
+ //output1.printf("\n%s>>%d\n", ptr, atoi(ptr));
+
+ // utiliser pointers
+ //for(int i=0; i < y;)
+ //if(fgetc(table) == 0x0A) i++;
+ fseek(table , atoi(ptr) , SEEK_SET);
+
+ for(int i=0; i < x;)
+ if(fgetc(table) == 0x3B) i++;
+
+ out[0] = fgetc(table);
+ out[1] = fgetc(table);
+ out[2] = fgetc(table);
+
+ //output1.printf("%s>>%x ", out, atoi(out));
+
+ fclose(table);
+ fclose(pointers);
+ return atoi(out);
+}
+
+void ST7735::addrowTable(uint16_t *row) {
+
+ int size;
+
+ FILE *table = fopen("/sd/table.csv", "r");
+ fseek(table , 0 , SEEK_END);
+ size = ftell(table);
+ fclose(table);
+
+ table = fopen("/sd/table.csv", "a");
+ for(int i = 0; i< row[0]+1; i++)
+ fprintf(table, "%03d;", row[i]);
+ fprintf(table, "\n");
+
+ FILE *pointers = fopen("/sd/pointers.csv", "a");
+ fprintf(pointers, "%16d\n", size);
+
+ fclose(table);
+ fclose(pointers);
+}
+
+void ST7735::init_star(STAR* star, int i)
+ {
+ /* randomly init stars, generate them around the center of the screen */
+
+ star->xpos = -10.0 + (20.0 * (rand()/(RAND_MAX+1.0)));
+ star->ypos = -10.0 + (20.0 * (rand()/(RAND_MAX+1.0)));
+
+ star->xpos *= 3072.0; /*change viewpoint */
+ star->ypos *= 3072.0;
+
+ star->zpos = i;
+ star->speed = 2 + (int)(2.0 * (rand()/(RAND_MAX+1.0)));
+
+ star->color = i*ST7735_WHITE >> 2; /*the closer to the viewer the brighter*/
+ }
+
+void ST7735::DrawStarfield(int centerx, int centery, int acc, int color, int NbrsStars, int duration)
+{
+ int i, j=0, tempx, tempy;
+ STAR stars[NbrsStars];
+ Timer timerStars;
+
+ timerStars.start();
+ while(timerStars.read() < duration) {
+
+ j++;
+
+ // move and draw stars
+
+ for (i = 0; i < NbrsStars; i++) {
+ tempx = (stars[i].xpos / stars[i].zpos) + centerx;
+ tempy = (stars[i].ypos / stars[i].zpos) + centery;
+ drawPixel(tempx,tempy, ST7735_BLACK);
+
+
+ stars[i].zpos -= stars[i].speed*acc;
+
+ if (stars[i].zpos <= 0) {
+ init_star(stars + i, i + 1);
+ }
+
+ //compute 3D position
+ tempx = (stars[i].xpos / stars[i].zpos) + centerx;
+ tempy = (stars[i].ypos / stars[i].zpos) + centery;
+
+ if (tempx < 0 || tempx > _width - 1 || tempy < 0 || tempy > _height - 1) { //check if a star leaves the screen
+
+ init_star(stars + i, i + 1);
+ continue;
+ }
+
+ if(color) drawPixel(tempx,tempy,color);
+ else drawPixel(tempx,tempy,stars[i].color);
+
+ }
+ }
+
+ timerStars.stop();
+}
+
+void ST7735::setScrollDefinition(uint8_t top_fix_height, uint8_t bottom_fix_height, int _scroll_direction){
+ uint8_t scroll_height;
+ scroll_height = _height - top_fix_height - bottom_fix_height;
+ writecommand(ST7735_VSCRDEF);
+ writedata(0x00);
+ writedata(top_fix_height);
+ writedata(0x00);
+ writedata(scroll_height);
+ writedata(0x00);
+ writedata(bottom_fix_height);
+ writecommand(ST7735_MADCTL);
+ if(_scroll_direction){
+ if(_tft_type == 0){
+ writedata(0xD8);
+ }
+ if(_tft_type == 1){
+ writedata(0xD0);
+ }
+ if(_tft_type == 2){
+ writedata(0x18);
+ }
+ }
+ else{
+ if(_tft_type == 0){
+ writedata(0xC8);
+ }
+ if(_tft_type == 1){
+ writedata(0xC0);
+ }
+ if(_tft_type == 2){
+ writedata(0x08);
+ }
+ }
+}
+void ST7735::VerticalScroll(uint8_t _vsp) {
+ writecommand(ST7735_VSCRSADD);
+ writedata(0x00);
+ writedata(_vsp);
+}
+
+//void ST7735::read_area(unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *buffer) {
+void ST7735::read_area(unsigned int x, unsigned int y, unsigned int w, unsigned int h) {
+ // BEWARE !
+ // DOES NOT WORK CORRECTLY YET !!!
+ int val;
+ setAddrWindow2(x,y,w,h);
+ writecommand(ST7735_RAMRD); // write to RAM
+ _cs = 0;
+ _rs = 1;
+ lcdPort.write(0); /* Dummy read 1 */
+
+ val = lcdPort.write(0); /* Read D8..D15 */
+ val <<= 8;
+ val |= lcdPort.write(0); /* Read D0..D7 */
+ _cs = 1;
+ output1.printf("%d ", val);
+
+
+
+}
+
+
+void ST7735::setAddrWindow2(uint8_t x0, uint8_t y0, uint8_t x1,
+ uint8_t y1)
+{
+
+ writecommand(ST7735_CASET); // Column addr set
+ writedata(0x00);
+ writedata(x0+xstart); // XSTART
+ writedata(0x00);
+ writedata(x1+xstart); // XEND
+
+ writecommand(ST7735_RASET); // Row addr set
+ writedata(0x00);
+ writedata(y0+ystart); // YSTART
+ writedata(0x00);
+ writedata(y1+ystart); // YEND
+
+ //writecommand(ST7735_RAMWR); // write to RAM
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ST7735/ST7735.h Wed Apr 08 15:00:13 2020 +0000
@@ -0,0 +1,182 @@
+/***************************************************
+ This is a library for the Adafruit 1.8" SPI display.
+ This library works with the Adafruit 1.8" TFT Breakout w/SD card
+ ----> http://www.adafruit.com/products/358
+ as well as Adafruit raw 1.8" TFT display
+ ----> http://www.adafruit.com/products/618
+
+ Check out the links above for our tutorials and wiring diagrams
+ These displays use SPI to communicate, 4 or 5 pins are required to
+ interface (RST is optional)
+ Adafruit invests time and resources providing this open source code,
+ please support Adafruit and open-source hardware by purchasing
+ products from Adafruit!
+
+ Written by Limor Fried/Ladyada for Adafruit Industries.
+ MIT license, all text above must be included in any redistribution
+ ****************************************************/
+
+#ifndef _ADAFRUIT_ST7735H_
+#define _ADAFRUIT_ST7735H_
+
+#include "mbed.h"
+#include "GFX.h"
+
+#define boolean bool
+
+// some flags for initR() :(
+// some flags for initR() :(
+#define INITR_GREENTAB 0x0
+#define INITR_REDTAB 0x1
+#define INITR_BLACKTAB 0x2
+
+#define INITR_18GREENTAB INITR_GREENTAB
+#define INITR_18REDTAB INITR_REDTAB
+#define INITR_18BLACKTAB INITR_BLACKTAB
+#define INITR_144GREENTAB 0x1
+#define INITR_MINI160x80 0x4
+#define INITR_MINI160x80_RS 0x5
+// for 1.44 and mini
+#define ST7735_TFTWIDTH_128 128
+// for mini
+#define ST7735_TFTWIDTH_80 80
+// for 1.44" display
+#define ST7735_TFTHEIGHT_128 128
+// for 1.8" and mini display
+#define ST7735_TFTHEIGHT_160 161
+
+#define ST7735_NOP 0x00
+#define ST7735_SWRESET 0x01
+#define ST7735_RDDID 0x04
+#define ST7735_RDDST 0x09
+
+#define ST7735_SLPIN 0x10
+#define ST7735_SLPOUT 0x11
+#define ST7735_PTLON 0x12
+#define ST7735_NORON 0x13
+
+#define ST7735_INVOFF 0x20
+#define ST7735_INVON 0x21
+#define ST7735_DISPOFF 0x28
+#define ST7735_DISPON 0x29
+#define ST7735_CASET 0x2A
+#define ST7735_RASET 0x2B
+#define ST7735_RAMWR 0x2C
+#define ST7735_RAMRD 0x2E
+
+#define ST7735_PTLAR 0x30
+#define ST7735_VSCRDEF 0x33
+#define ST7735_COLMOD 0x3A
+#define ST7735_MADCTL 0x36
+#define ST7735_VSCRSADD 0x37
+#define ST7735_FRMCTR1 0xB1
+#define ST7735_FRMCTR2 0xB2
+#define ST7735_FRMCTR3 0xB3
+#define ST7735_INVCTR 0xB4
+#define ST7735_DISSET5 0xB6
+
+#define ST7735_PWCTR1 0xC0
+#define ST7735_PWCTR2 0xC1
+#define ST7735_PWCTR3 0xC2
+#define ST7735_PWCTR4 0xC3
+#define ST7735_PWCTR5 0xC4
+#define ST7735_VMCTR1 0xC5
+
+#define ST7735_RDID1 0xDA
+#define ST7735_RDID2 0xDB
+#define ST7735_RDID3 0xDC
+#define ST7735_RDID4 0xDD
+
+#define ST7735_PWCTR6 0xFC
+
+#define ST7735_GMCTRP1 0xE0
+#define ST7735_GMCTRN1 0xE1
+
+// Color definitions
+#define ST7735_BLACK 0x0000
+#define ST7735_BLUE 0x001F
+#define ST7735_RED 0xF800
+#define ST7735_GREEN 0x07E0
+#define ST7735_CYAN 0x07FF
+#define ST7735_MAGENTA 0xF81F
+#define ST7735_YELLOW 0xFFE0
+#define ST7735_WHITE 0xFFFF
+
+// scroll definition
+#define BOTTOM_TO_TOP 0
+#define TOP_TO_BOTTOM 1
+
+
+
+typedef struct
+ {
+ float xpos, ypos;
+ short zpos, speed;
+ unsigned int color;
+ } STAR;
+
+class ST7735 : public GFX {
+
+ public:
+
+ ST7735(PinName mosi, PinName miso, PinName sck, PinName CS, PinName RS, PinName RST);
+
+ void initB(void); // for ST7735B displays
+ void initR(uint8_t options = INITR_GREENTAB); // for ST7735R
+ void setAddrWindow(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1);
+ void pushColor(uint16_t color);
+
+ void fillScreen(uint16_t color);
+ void drawPixel(int16_t x, int16_t y, uint16_t color);
+ void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
+ void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
+ void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color);
+ void invertDisplay(boolean i);
+ void DrawBMP(int offsetx, int offsety, FILE *Image);
+ void DrawRam(unsigned int x, unsigned int y, unsigned int w, unsigned int h, int *Image);
+ void DrawGIF(int offsetx, int offsety, FILE *Image);
+ void DrawANI(int offsetx, int offsety, FILE *Image, int frame);
+ void DrawStarfield(int centerx, int centery, int acc, int color, int NbrsStars, int duration);
+ void setRotation(uint8_t r);
+ void setScrollDefinition(uint8_t top_fix_height, uint8_t bottom_fix_height, int _scroll_direction);
+ void VerticalScroll(uint8_t _vsp);
+ void scrollBmp(uint8_t top_fix_height, uint8_t bottom_fix_height, int _scroll_direction, int *bitmap);
+
+ uint16_t Color565(uint8_t r, uint8_t g, uint8_t b);
+ char* Color565string(uint8_t r, uint8_t g, uint8_t b);
+
+ void read_area(unsigned int x, unsigned int y, unsigned int w, unsigned int h);
+ void setAddrWindow2(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1);
+
+ private:
+ uint8_t tabcolor;
+ void spiwrite(uint8_t),
+ writecommand(uint8_t c),
+ writedata(uint8_t d),
+ commandList(uint8_t *addr),
+ commonInit(uint8_t *cmdList);
+
+ uint8_t colstart, rowstart, xstart, ystart, _tft_type, _orientation; // some displays need this changed
+
+ SPI lcdPort; // does SPI MOSI, MISO and SCK
+ DigitalOut _cs; // does SPI CE
+ DigitalOut _rs; // register/date select
+ DigitalOut _rst; // does 3310 LCD_RST
+
+
+
+
+ void init_star(STAR* star, int i);
+
+ int oct2dec(int n);
+ int bitExtracted(int number, int k, int p) ;
+
+ void makeTable(void);
+ uint16_t readTable(unsigned int y, unsigned int x);
+ void addrowTable(uint16_t *row);
+ void supprTable(void);
+
+};
+
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ST7735/bitmap.c Wed Apr 08 15:00:13 2020 +0000
@@ -0,0 +1,879 @@
+// icone Theme 57 x 57 px:
+int theme [] = {
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1863, 0x9A53, 0xC2F8, 0x9A53, 0x1863, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0010 (16)
+0x0000, 0x0000, 0x0000, 0x2061, 0xBAA7, 0xF369, 0xBAA7, 0x2061, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0020 (32)
+0x18C1, 0x94C9, 0xC64B, 0x94C9, 0x18C1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0863, 0x4A93, 0x5B79, // 0x0030 (48)
+0x4A93, 0x0863, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9A53, // 0x0040 (64)
+0xDBDB, 0xDC5B, 0xDBDB, 0x9A53, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBAA7, 0xFC4D, 0xFCCF, 0xFC4D, // 0x0050 (80)
+0xBAA7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x94C9, 0xD6CF, 0xDEF1, 0xD6CF, 0x9CE9, 0x0000, 0x0000, // 0x0060 (96)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4AB3, 0x7C5B, 0x8CBB, 0x7C5B, 0x4AB3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0070 (112)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCB59, 0xE51C, 0xE5BC, 0xE51C, 0xD37A, 0x0000, 0x0000, 0x0000, // 0x0080 (128)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF3EB, 0xFD72, 0xFDF5, 0xFD72, 0xFBEB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0090 (144)
+0x0000, 0x0000, 0xCE8D, 0xDF34, 0xE756, 0xDF34, 0xCEAD, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6BDA, // 0x00A0 (160)
+0xA55C, 0xB5FD, 0xA55C, 0x6BDA, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00B0 (176)
+0x0000, 0xDC1B, 0xEDDD, 0xEE7D, 0xEDDD, 0xDC1B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFC8E, 0xFE16, // 0x00C0 (192)
+0xFE98, 0xFE16, 0xFC8E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xD6F0, 0xE777, 0xEF99, 0xE777, 0xD6F0, // 0x00D0 (208)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x847B, 0xBE1D, 0xCE9D, 0xBE1D, 0x847B, 0x0000, 0x0000, 0x0000, // 0x00E0 (224)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, // 0x00F0 (240)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFED9, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0100 (256)
+0x0000, 0x0000, 0x0000, 0x0000, 0xD6F1, 0xEF78, 0xEF9A, 0xEF78, 0xD6F1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0110 (272)
+0x0000, 0x8CBB, 0xC63D, 0xD6DE, 0xC63D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0120 (288)
+0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0130 (304)
+0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, // 0x0140 (320)
+0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, // 0x0150 (336)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, // 0x0160 (352)
+0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, // 0x0170 (368)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0180 (384)
+0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0190 (400)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01A0 (416)
+0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, // 0x01B0 (432)
+0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, // 0x01C0 (448)
+0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, // 0x01D0 (464)
+0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, // 0x01E0 (480)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, // 0x01F0 (496)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0200 (512)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0210 (528)
+0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0220 (544)
+0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, // 0x0230 (560)
+0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0240 (576)
+0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, // 0x0250 (592)
+0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, // 0x0260 (608)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0270 (624)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, // 0x0280 (640)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0290 (656)
+0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02A0 (672)
+0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02B0 (688)
+0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, // 0x02C0 (704)
+0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, // 0x02D0 (720)
+0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, // 0x02E0 (736)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, // 0x02F0 (752)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, // 0x0300 (768)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0310 (784)
+0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0320 (800)
+0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0330 (816)
+0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, // 0x0340 (832)
+0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, // 0x0350 (848)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, // 0x0360 (864)
+0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, // 0x0370 (880)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0380 (896)
+0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0390 (912)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03A0 (928)
+0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03B0 (944)
+0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, // 0x03C0 (960)
+0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, // 0x03D0 (976)
+0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, // 0x03E0 (992)
+0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, // 0x03F0 (1008)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0400 (1024)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, // 0x0410 (1040)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0420 (1056)
+0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, // 0x0430 (1072)
+0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0440 (1088)
+0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, // 0x0450 (1104)
+0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, // 0x0460 (1120)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, // 0x0470 (1136)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, // 0x0480 (1152)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0490 (1168)
+0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04A0 (1184)
+0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04B0 (1200)
+0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04C0 (1216)
+0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, // 0x04D0 (1232)
+0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, // 0x04E0 (1248)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, // 0x04F0 (1264)
+0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, // 0x0500 (1280)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0510 (1296)
+0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0520 (1312)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0530 (1328)
+0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, // 0x0540 (1344)
+0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, // 0x0550 (1360)
+0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, // 0x0560 (1376)
+0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, // 0x0570 (1392)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, // 0x0580 (1408)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0590 (1424)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05A0 (1440)
+0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05B0 (1456)
+0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, // 0x05C0 (1472)
+0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05D0 (1488)
+0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, // 0x05E0 (1504)
+0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, // 0x05F0 (1520)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0600 (1536)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, // 0x0610 (1552)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0620 (1568)
+0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0630 (1584)
+0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0640 (1600)
+0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, // 0x0650 (1616)
+0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, // 0x0660 (1632)
+0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, // 0x0670 (1648)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, // 0x0680 (1664)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFCAF, 0xFE57, 0xFEDA, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, // 0x0690 (1680)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEF1, 0xEF78, 0xF79A, 0xEF78, 0xDEF1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06A0 (1696)
+0x0000, 0x0000, 0x8CBB, 0xC65D, 0xD6DE, 0xC65D, 0x8CBB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06B0 (1712)
+0x0000, 0x0000, 0x0000, 0x0000, 0xDC5B, 0xEE1D, 0xF6BE, 0xEE1D, 0xDC5B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06C0 (1728)
+0x0000, 0xFCAF, 0xFE57, 0xFED9, 0xFE57, 0xFCAF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xD6F1, 0xEF78, // 0x06D0 (1744)
+0xEF9A, 0xEF78, 0xD6F1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CBB, 0xC63D, 0xD6DE, 0xC63D, 0x8CBB, // 0x06E0 (1760)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDC1B, 0xEDDD, 0xEE7D, // 0x06F0 (1776)
+0xEDDD, 0xDC1B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFC8E, 0xFE16, 0xFE98, 0xFE16, 0xFC8E, 0x0000, // 0x0700 (1792)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xD6F0, 0xE777, 0xEF99, 0xE777, 0xD6F0, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0710 (1808)
+0x0000, 0x0000, 0x0000, 0x0000, 0x847B, 0xBE1D, 0xCE9D, 0xBE1D, 0x847B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0720 (1824)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCB59, 0xE51C, 0xE5BC, 0xE51C, 0xD37A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0730 (1840)
+0x0000, 0x0000, 0x0000, 0xF3EB, 0xFD72, 0xFDF5, 0xFD73, 0xFBEB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0740 (1856)
+0xCE8D, 0xDF34, 0xE756, 0xDF34, 0xCEAD, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6BDA, 0xA55C, 0xB5FD, // 0x0750 (1872)
+0xA57C, 0x6BDA, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9A53, // 0x0760 (1888)
+0xDBDB, 0xDC5B, 0xDBFB, 0x9A53, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBAA7, 0xFC4D, 0xFCCF, 0xFC6D, // 0x0770 (1904)
+0xBAA7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x94C9, 0xD6CF, 0xDEF1, 0xD6CF, 0x9CE9, 0x0000, 0x0000, // 0x0780 (1920)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4AB3, 0x7C5B, 0x8CBB, 0x7C5B, 0x4AB3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0790 (1936)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1863, 0x9A53, 0xCAF9, 0x9A53, 0x1863, 0x0000, 0x0000, 0x0000, // 0x07A0 (1952)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2061, 0xBAA7, 0xF369, 0xBAA7, 0x2061, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07B0 (1968)
+0x0000, 0x0000, 0x18C1, 0x94C9, 0xC64B, 0x94C9, 0x18C1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0863, // 0x07C0 (1984)
+0x4AB3, 0x5B79, 0x4AB3, 0x0863, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07D0 (2000)
+0x20E4, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDEFB, 0x39C7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x20E4, 0x9492, 0xA514, // 0x07E0 (2016)
+0xB5B6, 0xCE79, 0xDEFB, 0x39C7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x20E4, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDEFB, // 0x07F0 (2032)
+0x39C7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x20E4, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDEFB, 0x39C7, 0x0000, 0x0000, // 0x0800 (2048)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B6D, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xC638, // 0x0810 (2064)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B6D, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xC638, 0x0000, 0x0000, 0x0000, // 0x0820 (2080)
+0x0000, 0x0000, 0x0000, 0x6B6D, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xC638, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0830 (2096)
+0x6B6D, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xC638, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0840 (2112)
+0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xC618, 0xB5B6, 0xA514, 0x10A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, // 0x0850 (2128)
+0x9492, 0xA514, 0xB5B6, 0xC618, 0xB5B6, 0xA514, 0x10A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, // 0x0860 (2144)
+0xC618, 0xB5B6, 0xA514, 0x10A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xC618, 0xB5B6, 0xA514, // 0x0870 (2160)
+0x10A2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A49, 0x4208, 0x4208, 0x4228, 0x52AA, // 0x0880 (2176)
+0x73AE, 0x94B2, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A49, 0x4208, 0x4208, 0x4228, 0x52AA, 0x73AE, 0x94B2, 0xA534, // 0x0890 (2192)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A49, 0x4208, 0x4208, 0x4228, 0x52AA, 0x73AE, 0x94B2, 0xA534, 0x0000, 0x0000, 0x0000, // 0x08A0 (2208)
+0x0000, 0x0000, 0x4A49, 0x4208, 0x4208, 0x4228, 0x52AA, 0x73AE, 0x94B2, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08B0 (2224)
+0x0000, 0x0000, 0x0000, 0x4A49, 0x5ACB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08C0 (2240)
+0x4A49, 0x5ACB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A49, 0x5ACB, 0x632C, // 0x08D0 (2256)
+0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A49, 0x5AEB, 0x6B2D, 0x738E, 0x7BCF, 0x8430, // 0x08E0 (2272)
+0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, // 0x08F0 (2288)
+0x7BCF, 0x8430, 0x9492, 0xD986, 0xE904, 0xB000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, // 0x0900 (2304)
+0xD986, 0xE904, 0xB000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0xD986, 0xE904, 0xB000, // 0x0910 (2320)
+0x0000, 0x0000, 0x0000, 0x5ACB, 0x62EC, 0x6B2D, 0x738E, 0x7BCF, 0x8430, 0x9492, 0xD986, 0xE904, 0xB000, 0x0000, 0x0000, 0x0000, // 0x0920 (2336)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0xBB4D, 0xC30C, 0x5000, 0x0000, // 0x0930 (2352)
+0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0xBB4D, 0xC30C, 0x5000, 0x0000, 0x0000, 0x0000, 0x5ACB, // 0x0940 (2368)
+0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0xBB4D, 0xC30C, 0x5000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x62EC, 0x6B2D, 0x738E, // 0x0950 (2384)
+0x7BCF, 0x8430, 0x9492, 0xBB4D, 0xC30C, 0x5000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, // 0x0960 (2400)
+0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, // 0x0970 (2416)
+0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, // 0x0980 (2432)
+0xA534, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x62EC, 0x6B2D, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, // 0x0990 (2448)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528A, 0x5AAB, 0x630C, 0x6B6D, 0x7BCF, 0x8430, 0x9492, 0x0000, // 0x09A0 (2464)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528A, 0x5AAB, 0x630C, 0x6B6D, 0x7BCF, 0x8430, 0x9492, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09B0 (2480)
+0x0000, 0x0000, 0x528A, 0x5AAB, 0x630C, 0x6B6D, 0x7BCF, 0x8430, 0x9492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528A, // 0x09C0 (2496)
+0x5AAB, 0x630C, 0x6B6D, 0x7BCF, 0x8430, 0x9492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09D0 (2512)
+0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, // 0x09E0 (2528)
+0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, // 0x09F0 (2544)
+0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, // 0x0A00 (2560)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, // 0x0A10 (2576)
+0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, // 0x0A20 (2592)
+0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A30 (2608)
+0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A40 (2624)
+0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A50 (2640)
+0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, // 0x0A60 (2656)
+0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, // 0x0A70 (2672)
+0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18A3, 0x4208, 0x39C7, 0x528A, 0x5ACB, // 0x0A80 (2688)
+0x630C, 0x5ACB, 0x738E, 0x18E3, 0x0000, 0x0000, 0x0000, 0x0000, 0x18A3, 0x4208, 0x39C7, 0x528A, 0x5ACB, 0x630C, 0x5ACB, 0x738E, // 0x0A90 (2704)
+0x18E3, 0x0000, 0x0000, 0x0000, 0x0000, 0x18A3, 0x4208, 0x39C7, 0x528A, 0x5ACB, 0x630C, 0x5ACB, 0x738E, 0x18E3, 0x0000, 0x0000, // 0x0AA0 (2720)
+0x0000, 0x0000, 0x18A3, 0x4208, 0x39C7, 0x528A, 0x5ACB, 0x630C, 0x5ACB, 0x738E, 0x18E3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AB0 (2736)
+0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, // 0x0AC0 (2752)
+0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, // 0x0AD0 (2768)
+0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, // 0x0AE0 (2784)
+0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, // 0x0AF0 (2800)
+0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, // 0x0B00 (2816)
+0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, // 0x0B10 (2832)
+0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, // 0x0B20 (2848)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, // 0x0B30 (2864)
+0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B40 (2880)
+0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, // 0x0B50 (2896)
+0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, // 0x0B60 (2912)
+0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, // 0x0B70 (2928)
+0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, // 0x0B80 (2944)
+0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, // 0x0B90 (2960)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, // 0x0BA0 (2976)
+0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, // 0x0BB0 (2992)
+0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, // 0x0BC0 (3008)
+0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BD0 (3024)
+0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, // 0x0BE0 (3040)
+0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, // 0x0BF0 (3056)
+0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, // 0x0C00 (3072)
+0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4208, 0x4208, 0x0000, 0x4A49, 0x4A49, 0x4A49, // 0x0C10 (3088)
+0x0000, 0x528A, 0x528A, 0x0000, 0x0000, 0x0000, 0x0000, 0x4208, 0x4208, 0x0000, 0x4A49, 0x4A49, 0x4A49, 0x0000, 0x528A, 0x528A, // 0x0C20 (3104)
+0x0000, 0x0000, 0x0000, 0x0000, 0x4208, 0x4208, 0x0000, 0x4A49, 0x4A49, 0x4A49, 0x0000, 0x528A, 0x528A, 0x0000, 0x0000, 0x0000, // 0x0C30 (3120)
+0x0000, 0x4208, 0x4208, 0x0000, 0x4A49, 0x4A49, 0x4A49, 0x0000, 0x528A, 0x528A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C40 (3136)
+0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C50 (3152)
+0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, // 0x0C60 (3168)
+0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, // 0x0C70 (3184)
+0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528A, 0x8C71, 0x9CF3, // 0x0C80 (3200)
+0xB5B6, 0xCE79, 0xE73C, 0x9492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528A, 0x8C71, 0x9CF3, 0xB5B6, 0xCE79, 0xE73C, // 0x0C90 (3216)
+0x9492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x528A, 0x8C71, 0x9CF3, 0xB5B6, 0xCE79, 0xE73C, 0x9492, 0x0000, 0x0000, // 0x0CA0 (3232)
+0x0000, 0x0000, 0x0000, 0x0000, 0x528A, 0x8C71, 0x9CF3, 0xB5B6, 0xCE79, 0xE73C, 0x9492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CB0 (3248)
+0x0000
+};
+
+// icon configuration theme mini 11x11
+int theme_mini [] = {
+0x72B4, 0x5A0F, 0x0000, 0xA32A, 0x7A68, 0x0000, 0xB589, 0x6325, 0x0000, 0x54F8, 0x222B, 0x82F6, 0x6A51, 0x0000, 0xB38C, 0x8AC9, // 0x0010 (16)
+0x0000, 0xC62A, 0x7BE6, 0x0000, 0x5D5A, 0x32CD, 0x82F6, 0x6A51, 0x0000, 0xB38C, 0x8AC9, 0x0000, 0xC62A, 0x7BE6, 0x0000, 0x5D5A, // 0x0020 (32)
+0x32CD, 0x82F6, 0x6A51, 0x0000, 0xB38C, 0x8AC9, 0x0000, 0xC62A, 0x7BE6, 0x0000, 0x5D5A, 0x32CD, 0x82F6, 0x6A51, 0x0000, 0xB38C, // 0x0030 (48)
+0x8AC9, 0x0000, 0xC62A, 0x7BE6, 0x0000, 0x5D5A, 0x32CD, 0x8298, 0x6A13, 0x0000, 0xC349, 0xA266, 0x0000, 0xCE89, 0x8C66, 0x0000, // 0x0040 (64)
+0x557B, 0x2B0F, 0x7AD5, 0x7AF3, 0x20E4, 0xC288, 0xB2C9, 0x20E4, 0xB5AB, 0x844B, 0x20E4, 0x6539, 0x534F, 0xA554, 0xC410, 0x4165, // 0x0050 (80)
+0xA554, 0xC410, 0x3966, 0xA554, 0xC410, 0x3186, 0xA554, 0xC410, 0xB5B6, 0xA554, 0x3186, 0xB5B6, 0xA554, 0x31A6, 0xB5B6, 0xA554, // 0x0060 (96)
+0x31A6, 0xB5B6, 0xA554, 0x8C51, 0x73AE, 0x31A6, 0x8C51, 0x73AE, 0x39C7, 0x8C51, 0x73AE, 0x39E7, 0x8C51, 0x73AE, 0x9CD3, 0x9492, // 0x0070 (112)
+0x31A6, 0x9CD3, 0x9492, 0x31A6, 0x9CD3, 0x9492, 0x39C7, 0x9CD3, 0x9492
+};
+
+// icone configuration sabre 57 x 57 px:
+int confSaber [] = {
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0010 (16)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03F2, 0x063D, 0x063D, 0x063D, 0x063D, 0x063D, 0x063D, 0x063D, // 0x0020 (32)
+0x03F2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0040 (64)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0050 (80)
+0x0021, 0x04B6, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04B6, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0060 (96)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0070 (112)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0080 (128)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0083, 0x04D7, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0090 (144)
+0x069F, 0x069F, 0x04D7, 0x0083, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0x8C71, 0xA514, 0xB5B6, 0xCE79, 0xDEFB, 0x0861, 0x0000, // 0x00A0 (160)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00B0 (176)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00C0 (192)
+0x0000, 0x0000, 0x00E4, 0x0559, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0559, 0x00E4, 0x0000, 0x0000, 0x0000, // 0x00D0 (208)
+0x0000, 0x2925, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0x4228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00E0 (224)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00F0 (240)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0146, 0x05BB, 0x069F, 0x069F, 0x069F, // 0x0100 (256)
+0x069F, 0x069F, 0x069F, 0x069F, 0x05BB, 0x0146, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A29, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, // 0x0110 (272)
+0x8410, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0120 (288)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x01A8, 0x0083, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0130 (304)
+0x0000, 0x0000, 0x0000, 0x0000, 0x01A8, 0x063D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x01A8, 0x0000, // 0x0140 (320)
+0x0000, 0x0000, 0x0000, 0x6B4D, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xBDF7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0150 (336)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0160 (352)
+0x01A8, 0x05DC, 0x03D2, 0x0125, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0062, 0x0146, 0x024B, 0x04B6, 0x069F, 0x069F, // 0x0170 (368)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04B6, 0x024B, 0x0146, 0x0000, 0x0000, 0x8410, 0x9492, 0xA514, 0xB5B6, // 0x0180 (384)
+0xCE79, 0xDF1B, 0xEF7D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0190 (400)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0167, 0x0518, 0x069F, 0x069F, 0x0475, 0x01E9, 0x0000, 0x0000, // 0x01A0 (416)
+0x0000, 0x00A3, 0x026B, 0x0454, 0x061D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x01B0 (432)
+0x069F, 0x069F, 0x061D, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x028C, 0x0000, // 0x01C0 (448)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01D0 (464)
+0x01C8, 0x059B, 0x069F, 0x069F, 0x069F, 0x069F, 0x0559, 0x028C, 0x0021, 0x028C, 0x04F7, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x01E0 (480)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x8430, 0x9492, // 0x01F0 (496)
+0xA514, 0xB5B6, 0xCE79, 0xDEDB, 0xA534, 0x0000, 0x0000, 0x02CD, 0x02AC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0200 (512)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0166, 0x04F7, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0210 (528)
+0x063D, 0x057A, 0x067F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0220 (544)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0x8C51, 0x528A, 0x10A2, 0x39E7, 0x8410, 0x0000, // 0x0230 (560)
+0x0166, 0x063D, 0x028C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, // 0x0240 (576)
+0x026B, 0x059A, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0250 (592)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0146, 0x0000, // 0x0260 (608)
+0x6B6D, 0x4208, 0x1082, 0x10A2, 0x4A69, 0x8C51, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x069F, 0x063D, 0x028C, 0x0000, 0x0000, 0x0000, // 0x0270 (624)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0413, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0280 (640)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0290 (656)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04B6, 0x0000, 0x0000, 0x0000, 0x2104, 0x52AA, 0x7BCF, 0x8430, 0x9492, 0x9CF3, // 0x02A0 (672)
+0xA534, 0x0000, 0x0000, 0x069F, 0x069F, 0x065E, 0x00E4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02B0 (688)
+0x0000, 0x0000, 0x028C, 0x061D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x02C0 (704)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0187, // 0x02D0 (720)
+0x0000, 0x3166, 0x52AA, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x069F, 0x063D, 0x03D2, 0x0082, // 0x02E0 (736)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0062, 0x034F, 0x065E, 0x069F, 0x069F, // 0x02F0 (752)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0300 (768)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, // 0x0310 (784)
+0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x067F, 0x0454, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0320 (800)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C3, 0x0434, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0330 (816)
+0x069F, 0x069F, 0x069F, 0x067F, 0x05BB, 0x03F2, 0x020A, 0x0125, 0x0082, 0x0062, 0x0062, 0x0062, 0x0082, 0x0125, 0x020A, 0x03F2, // 0x0340 (832)
+0x05BB, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x03B1, 0x0187, // 0x0350 (848)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0105, // 0x0360 (864)
+0x057A, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x05BB, 0x0370, 0x00E4, 0x0000, 0x0000, // 0x0370 (880)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00E4, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, // 0x0380 (896)
+0x7BCF, 0x8430, 0x9492, 0xCA69, 0xF841, 0x8000, 0x0000, 0x00A3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0390 (912)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0518, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x03A0 (928)
+0x069F, 0x069F, 0x069F, 0x04B6, 0x0187, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03B0 (944)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0xF820, 0xF800, 0xF000, 0x0000, // 0x03C0 (960)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03D0 (976)
+0x0000, 0x028C, 0x065E, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0413, 0x00A3, 0x0000, 0x0000, 0x0000, // 0x03E0 (992)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, // 0x03F0 (1008)
+0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0xCA69, 0xF841, 0x8000, 0x0000, 0x00C3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0400 (1024)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00A3, 0x04F7, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0410 (1040)
+0x069F, 0x069F, 0x069F, 0x0413, 0x0062, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0420 (1056)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, // 0x0430 (1072)
+0x0000, 0x0000, 0x0391, 0x00A3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0440 (1088)
+0x0000, 0x0000, 0x024B, 0x067F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04B6, 0x0082, 0x0000, 0x0000, 0x0000, // 0x0450 (1104)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0460 (1120)
+0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x067F, 0x026B, 0x0000, 0x0000, 0x0000, // 0x0470 (1136)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0434, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0480 (1152)
+0x069F, 0x069F, 0x069F, 0x05BB, 0x0187, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0490 (1168)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, // 0x04A0 (1184)
+0x9CF3, 0xA534, 0x0000, 0x0000, 0x069F, 0x0434, 0x0041, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04B0 (1200)
+0x0000, 0x0000, 0x0000, 0x0146, 0x05FC, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x067F, 0x0370, 0x0000, 0x0000, 0x0000, // 0x04C0 (1216)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04D0 (1232)
+0x0000, 0x0000, 0x5ACB, 0x5AEB, 0x632C, 0x738E, 0x7BCF, 0x8430, 0x9492, 0x9CF3, 0xA534, 0x0000, 0x0000, 0x069F, 0x05FC, 0x0146, // 0x04E0 (1248)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x024B, 0x069F, 0x069F, 0x069F, // 0x04F0 (1264)
+0x069F, 0x069F, 0x069F, 0x069F, 0x05BB, 0x0105, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0500 (1280)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0510 (1296)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0187, 0x069F, 0x069F, 0x024B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0520 (1312)
+0x0041, 0x0083, 0x00E4, 0x0146, 0x01A8, 0x04B6, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x03F3, 0x0000, 0x0000, // 0x0530 (1328)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0540 (1344)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x057A, 0x069F, // 0x0550 (1360)
+0x069F, 0x04B6, 0x01A8, 0x0146, 0x00E4, 0x0083, 0x0041, 0x0000, 0x03D2, 0x0475, 0x04D7, 0x0559, 0x05BB, 0x063D, 0x069F, 0x069F, // 0x0560 (1376)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x022A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0570 (1392)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, // 0x0580 (1408)
+0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x05BB, 0x0559, 0x04D7, 0x0475, // 0x0590 (1424)
+0x03D2, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0125, // 0x05A0 (1440)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05B0 (1456)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, // 0x05C0 (1472)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x05D0 (1488)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05E0 (1504)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05F0 (1520)
+0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0600 (1536)
+0x069F, 0x069F, 0x063D, 0x063D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0610 (1552)
+0x069F, 0x0041, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0620 (1568)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, // 0x0630 (1584)
+0x0000, 0x0000, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x063D, 0x069F, 0x069F, 0x069F, // 0x0640 (1600)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0062, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0650 (1616)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0660 (1632)
+0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0670 (1648)
+0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x063D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0680 (1664)
+0x069F, 0x069F, 0x069F, 0x0041, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0690 (1680)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, // 0x06A0 (1696)
+0xDF1B, 0xF79E, 0x0000, 0x0000, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x063D, 0x069F, // 0x06B0 (1712)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0082, 0x0000, 0x0000, 0x0000, // 0x06C0 (1728)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06D0 (1744)
+0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x069F, 0x069F, 0x069F, // 0x06E0 (1760)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x06F0 (1776)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0125, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0700 (1792)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, // 0x0710 (1808)
+0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0720 (1824)
+0x03F2, 0x0475, 0x04D7, 0x0559, 0x05BB, 0x063D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x022A, 0x0000, // 0x0730 (1840)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0740 (1856)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x057A, // 0x0750 (1872)
+0x069F, 0x069F, 0x069F, 0x063D, 0x05BB, 0x0559, 0x04D7, 0x0475, 0x03D2, 0x0000, 0x0041, 0x0083, 0x00E4, 0x0146, 0x01A8, 0x04B6, // 0x0760 (1888)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x03F3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0770 (1904)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0780 (1920)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0187, 0x069F, 0x069F, 0x04B6, 0x01A8, 0x0146, 0x00E4, 0x0083, // 0x0790 (1936)
+0x0041, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x024B, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x07A0 (1952)
+0x05BB, 0x00E4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07B0 (1968)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, // 0x07C0 (1984)
+0x0000, 0x0000, 0x069F, 0x069F, 0x024B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07D0 (2000)
+0x0000, 0x0146, 0x05FC, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x067F, 0x0370, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07E0 (2016)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07F0 (2032)
+0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x069F, 0x05FC, 0x0146, 0x0000, 0x0000, // 0x0800 (2048)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0434, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0810 (2064)
+0x069F, 0x069F, 0x069F, 0x05BB, 0x0187, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0820 (2080)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, // 0x0830 (2096)
+0x8430, 0x8430, 0x0000, 0x0000, 0x069F, 0x0434, 0x0041, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0840 (2112)
+0x0000, 0x0000, 0x0000, 0x0000, 0x026B, 0x067F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04B6, 0x0082, 0x0000, // 0x0850 (2128)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0860 (2144)
+0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x067F, 0x026B, 0x0000, // 0x0870 (2160)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00A3, 0x0518, 0x069F, // 0x0880 (2176)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0413, 0x0062, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0890 (2192)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, // 0x08A0 (2208)
+0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0518, 0x00A3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08B0 (2224)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x028C, 0x065E, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x08C0 (2240)
+0x069F, 0x0413, 0x00A3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08D0 (2256)
+0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x028C, // 0x08E0 (2272)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08F0 (2288)
+0x0062, 0x0539, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04B6, 0x0187, 0x0000, 0x0000, 0x0000, // 0x0900 (2304)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, // 0x0910 (2320)
+0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0062, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0920 (2336)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0187, 0x05BB, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0930 (2352)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x05BB, 0x0370, 0x00E4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0940 (2368)
+0x0000, 0x0000, 0x0000, 0x00E4, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, // 0x0950 (2384)
+0x0000, 0x026B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0960 (2400)
+0x0000, 0x00E4, 0x0475, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x067F, // 0x0970 (2416)
+0x059B, 0x03F2, 0x020A, 0x0125, 0x0082, 0x0062, 0x0062, 0x0062, 0x0082, 0x0125, 0x020A, 0x03F2, 0x059B, 0x0000, 0x0000, 0x6B4D, // 0x0980 (2432)
+0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x057A, 0x01A8, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0990 (2448)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0062, 0x0391, 0x065E, 0x069F, 0x069F, 0x069F, 0x069F, // 0x09A0 (2464)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x09B0 (2480)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, // 0x09C0 (2496)
+0x8430, 0x0000, 0x0000, 0x069F, 0x04D6, 0x0105, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09D0 (2512)
+0x0000, 0x0041, 0x0370, 0x061D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x09E0 (2528)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, // 0x09F0 (2544)
+0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x069F, 0x069F, 0x03F3, 0x0083, // 0x0A00 (2560)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0413, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0A10 (2576)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0A20 (2592)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, // 0x0A30 (2608)
+0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x069F, 0x069F, 0x061D, 0x0146, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A40 (2624)
+0x0000, 0x0000, 0x0000, 0x0000, 0x00E4, 0x0559, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0A50 (2640)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0A60 (2656)
+0x069F, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x069F, 0x057A, // 0x0A70 (2672)
+0x026B, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00E4, 0x0559, // 0x0A80 (2688)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x05FC, 0x05BB, 0x067F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0A90 (2704)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, // 0x0AA0 (2720)
+0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x061D, 0x022A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AB0 (2736)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0105, 0x0559, 0x069F, 0x069F, 0x069F, 0x065E, 0x04D7, 0x0209, // 0x0AC0 (2752)
+0x0021, 0x028C, 0x04F7, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0AD0 (2768)
+0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, // 0x0AE0 (2784)
+0x024B, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AF0 (2800)
+0x0000, 0x0000, 0x0105, 0x0559, 0x069F, 0x065E, 0x0413, 0x0187, 0x0000, 0x0000, 0x0000, 0x00A3, 0x026B, 0x0454, 0x061D, 0x069F, // 0x0B00 (2816)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0000, 0x0000, 0x6B4D, 0x6B4D, // 0x0B10 (2832)
+0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B20 (2848)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00E4, 0x0559, 0x0391, 0x0105, // 0x0B30 (2864)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0062, 0x0146, 0x024B, 0x04B6, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, // 0x0B40 (2880)
+0x069F, 0x069F, 0x069F, 0x04B6, 0x024B, 0x0000, 0x0000, 0x6B4D, 0x6B4D, 0x0000, 0x7BCF, 0x7BCF, 0x7BCF, 0x0000, 0x8430, 0x8430, // 0x0B50 (2896)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B60 (2912)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C4, 0x0041, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B70 (2928)
+0x0000, 0x0000, 0x01A8, 0x063D, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x063D, 0x01A8, 0x0000, 0x0000, 0x0000, // 0x0B80 (2944)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B90 (2960)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BA0 (2976)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0146, 0x05BB, 0x069F, 0x069F, 0x069F, // 0x0BB0 (2992)
+0x069F, 0x069F, 0x069F, 0x069F, 0x05BB, 0x0146, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, // 0x0BC0 (3008)
+0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BD0 (3024)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BE0 (3040)
+0x0000, 0x0000, 0x0000, 0x0000, 0x00E4, 0x0559, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x0559, 0x00E4, 0x0000, // 0x0BF0 (3056)
+0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C00 (3072)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C10 (3088)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0083, 0x04D7, 0x069F, // 0x0C20 (3104)
+0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04D7, 0x0083, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, // 0x0C30 (3120)
+0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C40 (3136)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C50 (3152)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0021, 0x04B6, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x069F, 0x04B6, // 0x0C60 (3168)
+0x0021, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0x9492, 0xA514, 0xB5B6, 0xCE79, 0xDF1B, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C70 (3184)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C80 (3200)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C90 (3216)
+0x03D2, 0x063D, 0x063D, 0x063D, 0x063D, 0x063D, 0x063D, 0x063D, 0x03F2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, // 0x0CA0 (3232)
+0x94B2, 0xB596, 0xCE99, 0xEF5D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CB0 (3248)
+0x0000
+};
+
+// icon configuration sabre mini 11x11
+int confSaber_mini [] = {
+0x0000, 0x08A3, 0x0062, 0x0021, 0x1A4A, 0x3DD9, 0x1A4A, 0x0021, 0x0062, 0x08A3, 0x0000, 0x08A3, 0x3537, 0x234E, 0x11A7, 0x236F, // 0x0010 (16)
+0x3DD9, 0x236F, 0x8430, 0xC618, 0xE79E, 0x08A3, 0x0041, 0x234F, 0x2CB4, 0x2CB4, 0x3536, 0x3557, 0x3536, 0x738E, 0x94D2, 0xAD75, // 0x0020 (32)
+0x0041, 0x0021, 0x11A7, 0x34F6, 0x2D57, 0x2474, 0x1A4A, 0x2474, 0x5ACB, 0x8410, 0xCAEC, 0x0021, 0x1A29, 0x234E, 0x2CF6, 0x1C33, // 0x0030 (48)
+0x09C8, 0x0000, 0x09C8, 0x6B6E, 0xA554, 0xC659, 0x1A29, 0x3DD9, 0x3DF9, 0x3536, 0x09E9, 0x0000, 0x0000, 0x0000, 0x8430, 0xC618, // 0x0040 (64)
+0xF7DF, 0x3DD9, 0x1A29, 0x234E, 0x2CF6, 0x1C33, 0x09C8, 0x0000, 0x09C8, 0x6B6D, 0x8410, 0x8C71, 0x1A29, 0x0021, 0x11A7, 0x34F6, // 0x0050 (80)
+0x2D57, 0x2474, 0x1A4A, 0x2474, 0x6B4D, 0x7BCF, 0x8430, 0x0021, 0x0041, 0x234F, 0x2CB4, 0x2CB4, 0x3536, 0x3557, 0x3536, 0x6B4D, // 0x0060 (96)
+0x7BCF, 0x8430, 0x0041, 0x08A3, 0x3537, 0x234E, 0x11A7, 0x236F, 0x3DD9, 0x236F, 0x8430, 0xC618, 0xEFBE, 0x08A3, 0x0000, 0x08A3, // 0x0070 (112)
+0x0062, 0x0021, 0x1A4A, 0x3DD9, 0x1A4A, 0x0021, 0x0062, 0x08A3, 0x0000
+};
+
+// icone configuration sabre 57 x 57 px:
+int usb [] = {
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0010 (16)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0020 (32)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0040 (64)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0050 (80)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0060 (96)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0070 (112)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0080 (128)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0090 (144)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00A0 (160)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00B0 (176)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00C0 (192)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0x52AA, 0x738E, 0x4A69, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00D0 (208)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00E0 (224)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00F0 (240)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31A6, // 0x0100 (256)
+0xE73C, 0xFFFF, 0xFFFF, 0xFFFF, 0xDEDB, 0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0110 (272)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0120 (288)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0130 (304)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0xEF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD6BA, 0x0020, // 0x0140 (320)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0150 (336)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0160 (352)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0x52AA, // 0x0170 (368)
+0xC618, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4A49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0180 (384)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0190 (400)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01A0 (416)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1082, 0x8C71, 0xEF7D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x01B0 (432)
+0xFFFF, 0x6B4D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01C0 (448)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01D0 (464)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0xEF5D, 0xFFFF, // 0x01E0 (480)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4A49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01F0 (496)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0200 (512)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0210 (528)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8430, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0220 (544)
+0xFFFF, 0xFFFF, 0xDEFB, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0230 (560)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0240 (576)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x73AE, 0xFFFF, 0xFFFF, // 0x0250 (592)
+0xFFFF, 0xFFFF, 0xF79E, 0x9492, 0x2945, 0x39E7, 0xEF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xDEFB, 0x2945, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0260 (608)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0270 (624)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0280 (640)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31A6, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDF7, 0x18E3, 0x0000, 0x0000, 0x0000, 0x0861, // 0x0290 (656)
+0x5AEB, 0x7BCF, 0x5ACB, 0x0841, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02A0 (672)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02B0 (688)
+0x0000, 0x0841, 0x4A69, 0x738E, 0x632C, 0x2945, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xC618, 0xFFFF, // 0x02C0 (704)
+0xFFFF, 0xFFFF, 0xA534, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02D0 (720)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0x4208, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x02E0 (736)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A69, 0xE73C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD55, // 0x02F0 (752)
+0x1082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39C7, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE59, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0300 (768)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0310 (784)
+0x0000, 0x39E7, 0xFFFF, 0xC618, 0x4208, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0320 (800)
+0x0000, 0x4A49, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE59, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x8C71, // 0x0330 (816)
+0xFFFF, 0xFFFF, 0xFFFF, 0x31A6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0340 (832)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39E7, 0xFFFF, 0xFFFF, 0xFFFF, 0xC618, 0x4208, // 0x0350 (848)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0xE71C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0360 (864)
+0xFFFF, 0xFFFF, 0xFFFF, 0x6B6D, 0x0000, 0x0000, 0x0000, 0x0000, 0xDEDB, 0xFFFF, 0xFFFF, 0xCE79, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0370 (880)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0380 (896)
+0x0000, 0x0000, 0x0000, 0x39E7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC618, 0x4208, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0390 (912)
+0x0000, 0x0000, 0x4208, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03A0 (928)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03B0 (944)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03C0 (960)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC618, 0x4208, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x632C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03D0 (976)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03E0 (992)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03F0 (1008)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC618, // 0x0400 (1024)
+0x2124, 0x0000, 0x0000, 0x0000, 0x52AA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0410 (1040)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0420 (1056)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0430 (1072)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE59, 0x4A49, 0x0000, 0x0000, 0x0000, 0x0000, 0x18C3, 0xFFDF, 0xFFFF, // 0x0440 (1088)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD69A, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, // 0x0450 (1104)
+0x8C51, 0x8C51, 0xDEDB, 0xFFFF, 0xFFFF, 0xF7BE, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, // 0x0460 (1120)
+0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0x8C51, 0xA534, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE59, 0x4A49, // 0x0470 (1136)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9492, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, // 0x0480 (1152)
+0x2124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x738E, 0xFFFF, 0xFFFF, 0xFFFF, 0x31A6, // 0x0490 (1168)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04A0 (1184)
+0x39E7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE59, 0x4A49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04B0 (1200)
+0x0020, 0xB596, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, 0x4A49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04C0 (1216)
+0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD55, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04D0 (1232)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39E7, 0xFFFF, 0xFFFF, 0xCE59, 0x4A49, 0x0000, 0x0000, // 0x04E0 (1248)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0xB5B6, 0xDEDB, 0xD69A, 0x9492, // 0x04F0 (1264)
+0x2104, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xC618, 0xFFFF, // 0x0500 (1280)
+0xFFFF, 0xFFFF, 0x5AEB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0510 (1296)
+0x0000, 0x0000, 0x39E7, 0xCE59, 0x4A49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0520 (1312)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0530 (1328)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4208, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0x5AEB, 0x0000, 0x0000, 0x0000, // 0x0540 (1344)
+0x630C, 0x9CD3, 0x9CD3, 0x9CD3, 0x9CD3, 0x9CD3, 0x9CD3, 0x8430, 0x0000, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0550 (1360)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0560 (1376)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0570 (1392)
+0x0000, 0x9CF3, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xA534, 0x18E3, 0x0000, 0xA534, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0580 (1408)
+0xE71C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0590 (1424)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05A0 (1440)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0xC638, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x05B0 (1456)
+0xFFDF, 0xAD75, 0xC638, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05C0 (1472)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05D0 (1488)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05E0 (1504)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0xBDD7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x05F0 (1520)
+0xFFFF, 0xFFFF, 0xE71C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0600 (1536)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0610 (1552)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B6D, // 0x0620 (1568)
+0xEF7D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0630 (1584)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0640 (1600)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0650 (1616)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x6B6D, 0xCE79, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0660 (1632)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0670 (1648)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0680 (1664)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0690 (1680)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x10A2, 0xC618, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x0000, 0x0000, // 0x06A0 (1696)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06B0 (1712)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06C0 (1728)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xA534, // 0x06D0 (1744)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06E0 (1760)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06F0 (1776)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0700 (1792)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0710 (1808)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0720 (1824)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0730 (1840)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0740 (1856)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0750 (1872)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0760 (1888)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0770 (1904)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0780 (1920)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0790 (1936)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07A0 (1952)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07B0 (1968)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07C0 (1984)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07D0 (2000)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07E0 (2016)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07F0 (2032)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0800 (2048)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0810 (2064)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0820 (2080)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0830 (2096)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0840 (2112)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x6B6D, 0xC638, 0xF79E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0850 (2128)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0860 (2144)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF79E, 0xC638, 0x6B6D, 0x0020, 0x0000, 0x0000, 0x0000, // 0x0870 (2160)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x632C, 0xFFFF, // 0x0880 (2176)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0890 (2192)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x08A0 (2208)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x632C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08B0 (2224)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x632C, 0xFFFF, 0xFFFF, 0x9492, 0x39C7, 0x0861, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08C0 (2240)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08D0 (2256)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x39C7, 0x9492, 0xFFFF, 0xFFFF, // 0x08E0 (2272)
+0x632C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0xFFFF, // 0x08F0 (2288)
+0xFFFF, 0x7BCF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0900 (2304)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0910 (2320)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7BCF, 0xFFFF, 0xFFFF, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0920 (2336)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B6D, 0xFFFF, 0x9492, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0930 (2352)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0940 (2368)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0950 (2384)
+0x0000, 0x9492, 0xFFFF, 0x6B6D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0960 (2400)
+0xC638, 0xFFFF, 0x39C7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0x5ACB, 0x632C, 0x632C, // 0x0970 (2416)
+0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, // 0x0980 (2432)
+0x5ACB, 0x0841, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39C7, 0xFFFF, 0xC638, 0x0000, 0x0000, 0x0000, // 0x0990 (2448)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFDF, 0xFFFF, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09A0 (2464)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xAD75, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x09B0 (2480)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD75, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09C0 (2496)
+0x0000, 0x0000, 0x0000, 0x0020, 0xFFFF, 0xFFDF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09D0 (2512)
+0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE71C, 0xFFFF, // 0x09E0 (2528)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x09F0 (2544)
+0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, // 0x0A00 (2560)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFDF, 0xFFFF, 0x0020, 0x0000, 0x0000, // 0x0A10 (2576)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xAD75, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0A20 (2592)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD75, 0x0000, 0x0000, 0x0000, // 0x0A30 (2608)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0xFFFF, 0xF79E, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A40 (2624)
+0x0000, 0x0000, 0x0000, 0x0000, 0xC638, 0xFFFF, 0x39C7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A50 (2640)
+0x0841, 0x5ACB, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, 0x632C, // 0x0A60 (2656)
+0x632C, 0x632C, 0x632C, 0x632C, 0x5ACB, 0x0841, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39C7, 0xFFFF, // 0x0A70 (2672)
+0xC638, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B6D, 0xFFFF, 0x9492, // 0x0A80 (2688)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A90 (2704)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AA0 (2720)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9492, 0xFFFF, 0x6B6D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AB0 (2736)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0xFFFF, 0xFFFF, 0x7BCF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AC0 (2752)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AD0 (2768)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7BCF, // 0x0AE0 (2784)
+0xFFFF, 0xFFFF, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AF0 (2800)
+0x632C, 0xFFFF, 0xFFFF, 0x9492, 0x31A6, 0x0841, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B00 (2816)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B10 (2832)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0x31A6, 0x9492, 0xFFFF, 0xFFFF, 0x6B4D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B20 (2848)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x632C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0B30 (2864)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0B40 (2880)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0B50 (2896)
+0xFFFF, 0xFFFF, 0x632C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B60 (2912)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x6B6D, 0xCE59, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0B70 (2928)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0B80 (2944)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, 0xCE59, 0x6B6D, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B90 (2960)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BA0 (2976)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BB0 (2992)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BC0 (3008)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BD0 (3024)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BE0 (3040)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0BF0 (3056)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C00 (3072)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C10 (3088)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C20 (3104)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C30 (3120)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C40 (3136)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C50 (3152)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C60 (3168)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C70 (3184)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C80 (3200)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C90 (3216)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CA0 (3232)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CB0 (3248)
+0x0000
+};
+
+// icon configuration sabre mini 11x11
+int usb_mini [] = {
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xAD75, // 0x0010 (16)
+0xFFFF, 0xAD75, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xAD75, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD75, 0x0000, 0x0000, // 0x0020 (32)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48)
+0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, // 0x0040 (64)
+0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD75, 0x0000, 0x0000, 0x0000, 0x0000, 0xAD75, // 0x0050 (80)
+0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, // 0x0060 (96)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0070 (112)
+0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000
+};
+
+// icone configuration sabre 57 x 57 px:
+int about [] = {
+0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, // 0x0010 (16)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, // 0x0020 (32)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48)
+0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x0040 (64)
+0x00E0, 0x0000, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0050 (80)
+0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0060 (96)
+0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x0070 (112)
+0x0120, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x0080 (128)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0090 (144)
+0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x00A0 (160)
+0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, // 0x00B0 (176)
+0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, // 0x00C0 (192)
+0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, // 0x00D0 (208)
+0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, // 0x00E0 (224)
+0x0060, 0x37E0, 0x37E0, 0x0980, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0000, 0x1300, 0x37E0, // 0x00F0 (240)
+0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x37E0, 0x37E0, 0x0000, // 0x0100 (256)
+0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, // 0x0110 (272)
+0x37E0, 0x37E0, 0x1300, 0x0000, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0980, 0x37E0, 0x37E0, // 0x0120 (288)
+0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, // 0x0130 (304)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, // 0x0140 (320)
+0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, // 0x0150 (336)
+0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1D00, 0x0000, 0x0000, // 0x0160 (352)
+0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, // 0x0170 (368)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x0180 (384)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x1D00, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, // 0x0190 (400)
+0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x2F60, 0x09E0, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x01A0 (416)
+0x00E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, // 0x01B0 (432)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x09E0, // 0x01C0 (448)
+0x2F60, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x09E0, 0x25A0, 0x37E0, // 0x01D0 (464)
+0x2FC0, 0x1300, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01E0 (480)
+0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x01F0 (496)
+0x0000, 0x0980, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x1300, 0x2FC0, 0x37E0, 0x25A0, 0x09E0, 0x1300, 0x0980, 0x0000, 0x0000, // 0x0200 (512)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1C60, 0x37E0, 0x37E0, 0x1C60, 0x0000, 0x0000, 0x37E0, 0x37E0, // 0x0210 (528)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, // 0x0220 (544)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x1C60, // 0x0230 (560)
+0x37E0, 0x37E0, 0x1C60, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, // 0x0240 (576)
+0x0000, 0x0000, 0x1300, 0x2FC0, 0x37E0, 0x25A0, 0x0060, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0250 (592)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0260 (608)
+0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0060, 0x25A0, 0x37E0, 0x2FC0, 0x1300, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, // 0x0270 (624)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x09E0, 0x2F40, 0x37E0, 0x37E0, // 0x0280 (640)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, // 0x0290 (656)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x02A0 (672)
+0x37E0, 0x2F40, 0x09E0, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x02B0 (688)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x02C0 (704)
+0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, // 0x02D0 (720)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x02E0 (736)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, // 0x02F0 (752)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0300 (768)
+0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0310 (784)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x1300, 0x37E0, // 0x0320 (800)
+0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0330 (816)
+0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0340 (832)
+0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0350 (848)
+0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x37E0, // 0x0360 (864)
+0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, // 0x0370 (880)
+0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0380 (896)
+0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, // 0x0390 (912)
+0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, // 0x03A0 (928)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03B0 (944)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, // 0x03C0 (960)
+0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x03D0 (976)
+0x00E0, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03E0 (992)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03F0 (1008)
+0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x0400 (1024)
+0x0120, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, // 0x0410 (1040)
+0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0420 (1056)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, // 0x0430 (1072)
+0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0440 (1088)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, // 0x0450 (1104)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0460 (1120)
+0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0470 (1136)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, // 0x0480 (1152)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0490 (1168)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x37E0, 0x37E0, 0x37E0, // 0x04A0 (1184)
+0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04B0 (1200)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x04C0 (1216)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4208, 0x9CF3, 0x4208, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04D0 (1232)
+0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04E0 (1248)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x04F0 (1264)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0500 (1280)
+0x0000, 0xD69A, 0xFFFF, 0xD69A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0510 (1296)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0520 (1312)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x0530 (1328)
+0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9CF3, 0xFFFF, 0x9CF3, 0x0000, 0x0000, 0x0000, // 0x0540 (1344)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0550 (1360)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0560 (1376)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0570 (1392)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x0580 (1408)
+0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, // 0x0590 (1424)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05A0 (1440)
+0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6B4D, 0x9CF3, 0xBDD7, 0xAD55, 0x0000, // 0x05B0 (1456)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05C0 (1472)
+0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, // 0x05D0 (1488)
+0x1CA0, 0x00E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x05E0 (1504)
+0x0000, 0x0000, 0x0000, 0x2124, 0xAD55, 0xF7BE, 0xFFFF, 0xD69A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x05F0 (1520)
+0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0600 (1536)
+0x37E0, 0x1CA0, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0610 (1552)
+0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9CF3, 0xFFFF, // 0x0620 (1568)
+0xD69A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0630 (1584)
+0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0980, 0x37E0, 0x37E0, 0x0060, // 0x0640 (1600)
+0x0000, 0x0100, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x0650 (1616)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9CF3, 0xFFFF, 0xD69A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0660 (1632)
+0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, // 0x0670 (1648)
+0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0680 (1664)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0690 (1680)
+0x9CF3, 0xFFFF, 0xD69A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x37E0, 0x37E0, // 0x06A0 (1696)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0980, 0x37E0, // 0x06B0 (1712)
+0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, // 0x06C0 (1728)
+0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9CF3, 0xFFFF, 0xD69A, 0x0000, 0x0000, 0x0000, 0x0000, // 0x06D0 (1744)
+0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, // 0x06E0 (1760)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, // 0x06F0 (1776)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0700 (1792)
+0x0000, 0x0000, 0x9CF3, 0xFFFF, 0xD69A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0710 (1808)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, // 0x0720 (1824)
+0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0730 (1840)
+0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9CF3, 0xFFFF, 0xD69A, 0x0000, 0x0000, // 0x0740 (1856)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0750 (1872)
+0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, // 0x0760 (1888)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0770 (1904)
+0x0000, 0x0000, 0x0000, 0x0000, 0xAD55, 0xFFFF, 0xDEFB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x0780 (1920)
+0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0790 (1936)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07A0 (1952)
+0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124, 0xDEFB, 0xFFFF, 0xFFFF, 0xFFFF, // 0x07B0 (1968)
+0xF7BE, 0x8C71, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07C0 (1984)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07D0 (2000)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, // 0x07E0 (2016)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x07F0 (2032)
+0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0800 (2048)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, // 0x0810 (2064)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0820 (2080)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x37E0, 0x37E0, 0x37E0, // 0x0830 (2096)
+0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0840 (2112)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0850 (2128)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0860 (2144)
+0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0870 (2160)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0880 (2176)
+0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0890 (2192)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, // 0x08A0 (2208)
+0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, // 0x08B0 (2224)
+0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, // 0x08C0 (2240)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x08D0 (2256)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, // 0x08E0 (2272)
+0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x08F0 (2288)
+0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0900 (2304)
+0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0910 (2320)
+0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x0920 (2336)
+0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, // 0x0930 (2352)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, // 0x0940 (2368)
+0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, // 0x0950 (2384)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, // 0x0960 (2400)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, // 0x0970 (2416)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, // 0x0980 (2432)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, // 0x0990 (2448)
+0x37E0, 0x37E0, 0x1300, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09A0 (2464)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, // 0x09B0 (2480)
+0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x09C0 (2496)
+0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x09D0 (2512)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x09E0 (2528)
+0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, // 0x09F0 (2544)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x0A00 (2560)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x09E0, 0x2F40, // 0x0A10 (2576)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A20 (2592)
+0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0A30 (2608)
+0x37E0, 0x37E0, 0x37E0, 0x2F40, 0x09E0, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x0000, // 0x0A40 (2624)
+0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x1300, 0x2FC0, 0x37E0, 0x25A0, 0x0060, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, // 0x0A50 (2640)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A60 (2656)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0060, 0x25A0, 0x37E0, 0x2FC0, 0x1300, 0x0000, // 0x0A70 (2672)
+0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1C60, 0x37E0, // 0x0A80 (2688)
+0x37E0, 0x1C60, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0A90 (2704)
+0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AA0 (2720)
+0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x1C60, 0x37E0, 0x37E0, 0x1C60, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0AB0 (2736)
+0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x09E0, 0x25A0, 0x37E0, 0x2FC0, 0x1300, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0980, // 0x0AC0 (2752)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0000, 0x0000, // 0x0AD0 (2768)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x1300, // 0x0AE0 (2784)
+0x2FC0, 0x37E0, 0x25A0, 0x09E0, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0AF0 (2800)
+0x2F60, 0x09E0, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B00 (2816)
+0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B10 (2832)
+0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x09E0, 0x2F60, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x0B20 (2848)
+0x0120, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1D00, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x0B30 (2864)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0B40 (2880)
+0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x0B50 (2896)
+0x0000, 0x0000, 0x0000, 0x1D00, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, // 0x0B60 (2912)
+0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, // 0x0B70 (2928)
+0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0B80 (2944)
+0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, // 0x0B90 (2960)
+0x0060, 0x37E0, 0x37E0, 0x0980, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0000, 0x1300, 0x37E0, // 0x0BA0 (2976)
+0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x37E0, 0x37E0, 0x0000, // 0x0BB0 (2992)
+0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, // 0x0BC0 (3008)
+0x37E0, 0x37E0, 0x1300, 0x0000, 0x1300, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x1300, 0x0980, 0x37E0, 0x37E0, // 0x0BD0 (3024)
+0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0100, 0x37E0, 0x37E0, 0x0980, // 0x0BE0 (3040)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0060, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0000, // 0x0BF0 (3056)
+0x0000, 0x0000, 0x0000, 0x0980, 0x37E0, 0x37E0, 0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x0980, 0x37E0, 0x37E0, // 0x0C00 (3072)
+0x0100, 0x0000, 0x0060, 0x37E0, 0x37E0, 0x0980, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, // 0x0C10 (3088)
+0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, // 0x0C20 (3104)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, // 0x0C30 (3120)
+0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, 0x0000, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0000, 0x0000, // 0x0C40 (3136)
+0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x00E0, 0x0000, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, // 0x0C50 (3152)
+0x00E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0120, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, // 0x0C60 (3168)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x0000, // 0x0C70 (3184)
+0x00E0, 0x1CA0, 0x37E0, 0x37E0, 0x37E0, 0x1CA0, 0x0120, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, // 0x0C80 (3200)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0C90 (3216)
+0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0CA0 (3232)
+0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0980, 0x1300, 0x0980, 0x0000, 0x0000, // 0x0CB0 (3248)
+0x0000
+};
+
+// icon configuration sabre mini 11x11
+int about_mini [] = {
+0x37E0, 0x37E0, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x37E0, 0x37E0, // 0x0010 (16)
+0x37E0, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0020 (32)
+0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0030 (48)
+0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, // 0x0040 (64)
+0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, // 0x0050 (80)
+0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x37E0, 0x37E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // 0x0060 (96)
+0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x37E0, // 0x0070 (112)
+0x37E0, 0x37E0, 0x0000, 0x37E0, 0x37E0, 0x37E0, 0x0000, 0x37E0, 0x37E0
+};
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ST7735/font.c Wed Apr 08 15:00:13 2020 +0000
@@ -0,0 +1,270 @@
+#ifndef FONT5X7_H
+#define FONT5X7_H
+
+#ifdef __AVR__
+ #include <avr/io.h>
+ #include <avr/pgmspace.h>
+#else
+ #define PROGMEM
+#endif
+
+// Standard ASCII 5x7 font
+
+static const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C,
+ 0x00, 0x18, 0x3C, 0x18, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF,
+ 0x00, 0x18, 0x24, 0x18, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E,
+ 0x26, 0x29, 0x79, 0x29, 0x26,
+ 0x40, 0x7F, 0x05, 0x05, 0x07,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F,
+ 0x14, 0x22, 0x7F, 0x22, 0x14,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F,
+ 0x00, 0x66, 0x89, 0x95, 0x6A,
+ 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94,
+ 0x08, 0x04, 0x7E, 0x04, 0x08,
+ 0x10, 0x20, 0x7E, 0x20, 0x10,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08,
+ 0x1E, 0x10, 0x10, 0x10, 0x10,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C,
+ 0x30, 0x38, 0x3E, 0x38, 0x30,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06,
+ 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12,
+ 0x23, 0x13, 0x08, 0x64, 0x62,
+ 0x36, 0x49, 0x56, 0x20, 0x50,
+ 0x00, 0x08, 0x07, 0x03, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A,
+ 0x08, 0x08, 0x3E, 0x08, 0x08,
+ 0x00, 0x80, 0x70, 0x30, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x00, 0x00, 0x60, 0x60, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E,
+ 0x00, 0x42, 0x7F, 0x40, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46,
+ 0x21, 0x41, 0x49, 0x4D, 0x33,
+ 0x18, 0x14, 0x12, 0x7F, 0x10,
+ 0x27, 0x45, 0x45, 0x45, 0x39,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31,
+ 0x41, 0x21, 0x11, 0x09, 0x07,
+ 0x36, 0x49, 0x49, 0x49, 0x36,
+ 0x46, 0x49, 0x49, 0x29, 0x1E,
+ 0x00, 0x00, 0x14, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41,
+ 0x14, 0x14, 0x14, 0x14, 0x14,
+ 0x00, 0x41, 0x22, 0x14, 0x08,
+ 0x02, 0x01, 0x59, 0x09, 0x06,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C,
+ 0x7F, 0x49, 0x49, 0x49, 0x36,
+ 0x3E, 0x41, 0x41, 0x41, 0x22,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E,
+ 0x7F, 0x49, 0x49, 0x49, 0x41,
+ 0x7F, 0x09, 0x09, 0x09, 0x01,
+ 0x3E, 0x41, 0x41, 0x51, 0x73,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F,
+ 0x00, 0x41, 0x7F, 0x41, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01,
+ 0x7F, 0x08, 0x14, 0x22, 0x41,
+ 0x7F, 0x40, 0x40, 0x40, 0x40,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E,
+ 0x7F, 0x09, 0x09, 0x09, 0x06,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E,
+ 0x7F, 0x09, 0x19, 0x29, 0x46,
+ 0x26, 0x49, 0x49, 0x49, 0x32,
+ 0x03, 0x01, 0x7F, 0x01, 0x03,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F,
+ 0x63, 0x14, 0x08, 0x14, 0x63,
+ 0x03, 0x04, 0x78, 0x04, 0x03,
+ 0x61, 0x59, 0x49, 0x4D, 0x43,
+ 0x00, 0x7F, 0x41, 0x41, 0x41,
+ 0x02, 0x04, 0x08, 0x10, 0x20,
+ 0x00, 0x41, 0x41, 0x41, 0x7F,
+ 0x04, 0x02, 0x01, 0x02, 0x04,
+ 0x40, 0x40, 0x40, 0x40, 0x40,
+ 0x00, 0x03, 0x07, 0x08, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40,
+ 0x7F, 0x28, 0x44, 0x44, 0x38,
+ 0x38, 0x44, 0x44, 0x44, 0x28,
+ 0x38, 0x44, 0x44, 0x28, 0x7F,
+ 0x38, 0x54, 0x54, 0x54, 0x18,
+ 0x00, 0x08, 0x7E, 0x09, 0x02,
+ 0x18, 0xA4, 0xA4, 0x9C, 0x78,
+ 0x7F, 0x08, 0x04, 0x04, 0x78,
+ 0x00, 0x44, 0x7D, 0x40, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78,
+ 0x7C, 0x08, 0x04, 0x04, 0x78,
+ 0x38, 0x44, 0x44, 0x44, 0x38,
+ 0xFC, 0x18, 0x24, 0x24, 0x18,
+ 0x18, 0x24, 0x24, 0x18, 0xFC,
+ 0x7C, 0x08, 0x04, 0x04, 0x08,
+ 0x48, 0x54, 0x54, 0x54, 0x24,
+ 0x04, 0x04, 0x3F, 0x44, 0x24,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C,
+ 0x44, 0x28, 0x10, 0x28, 0x44,
+ 0x4C, 0x90, 0x90, 0x90, 0x7C,
+ 0x44, 0x64, 0x54, 0x4C, 0x44,
+ 0x00, 0x08, 0x36, 0x41, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C,
+ 0x1E, 0xA1, 0xA1, 0x61, 0x12,
+ 0x3A, 0x40, 0x40, 0x20, 0x7A,
+ 0x38, 0x54, 0x54, 0x55, 0x59,
+ 0x21, 0x55, 0x55, 0x79, 0x41,
+ 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut
+ 0x21, 0x55, 0x54, 0x78, 0x40,
+ 0x20, 0x54, 0x55, 0x79, 0x40,
+ 0x0C, 0x1E, 0x52, 0x72, 0x12,
+ 0x39, 0x55, 0x55, 0x55, 0x59,
+ 0x39, 0x54, 0x54, 0x54, 0x59,
+ 0x39, 0x55, 0x54, 0x54, 0x58,
+ 0x00, 0x00, 0x45, 0x7C, 0x41,
+ 0x00, 0x02, 0x45, 0x7D, 0x42,
+ 0x00, 0x01, 0x45, 0x7C, 0x40,
+ 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut
+ 0xF0, 0x28, 0x25, 0x28, 0xF0,
+ 0x7C, 0x54, 0x55, 0x45, 0x00,
+ 0x20, 0x54, 0x54, 0x7C, 0x54,
+ 0x7C, 0x0A, 0x09, 0x7F, 0x49,
+ 0x32, 0x49, 0x49, 0x49, 0x32,
+ 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut
+ 0x32, 0x4A, 0x48, 0x48, 0x30,
+ 0x3A, 0x41, 0x41, 0x21, 0x7A,
+ 0x3A, 0x42, 0x40, 0x20, 0x78,
+ 0x00, 0x9D, 0xA0, 0xA0, 0x7D,
+ 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut
+ 0x3D, 0x40, 0x40, 0x40, 0x3D,
+ 0x3C, 0x24, 0xFF, 0x24, 0x24,
+ 0x48, 0x7E, 0x49, 0x43, 0x66,
+ 0x2B, 0x2F, 0xFC, 0x2F, 0x2B,
+ 0xFF, 0x09, 0x29, 0xF6, 0x20,
+ 0xC0, 0x88, 0x7E, 0x09, 0x03,
+ 0x20, 0x54, 0x54, 0x79, 0x41,
+ 0x00, 0x00, 0x44, 0x7D, 0x41,
+ 0x30, 0x48, 0x48, 0x4A, 0x32,
+ 0x38, 0x40, 0x40, 0x22, 0x7A,
+ 0x00, 0x7A, 0x0A, 0x0A, 0x72,
+ 0x7D, 0x0D, 0x19, 0x31, 0x7D,
+ 0x26, 0x29, 0x29, 0x2F, 0x28,
+ 0x26, 0x29, 0x29, 0x29, 0x26,
+ 0x30, 0x48, 0x4D, 0x40, 0x20,
+ 0x38, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x38,
+ 0x2F, 0x10, 0xC8, 0xAC, 0xBA,
+ 0x2F, 0x10, 0x28, 0x34, 0xFA,
+ 0x00, 0x00, 0x7B, 0x00, 0x00,
+ 0x08, 0x14, 0x2A, 0x14, 0x22,
+ 0x22, 0x14, 0x2A, 0x14, 0x08,
+ 0xAA, 0x00, 0x55, 0x00, 0xAA,
+ 0xAA, 0x55, 0xAA, 0x55, 0xAA,
+ 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x10, 0x10, 0x10, 0xFF, 0x00,
+ 0x14, 0x14, 0x14, 0xFF, 0x00,
+ 0x10, 0x10, 0xFF, 0x00, 0xFF,
+ 0x10, 0x10, 0xF0, 0x10, 0xF0,
+ 0x14, 0x14, 0x14, 0xFC, 0x00,
+ 0x14, 0x14, 0xF7, 0x00, 0xFF,
+ 0x00, 0x00, 0xFF, 0x00, 0xFF,
+ 0x14, 0x14, 0xF4, 0x04, 0xFC,
+ 0x14, 0x14, 0x17, 0x10, 0x1F,
+ 0x10, 0x10, 0x1F, 0x10, 0x1F,
+ 0x14, 0x14, 0x14, 0x1F, 0x00,
+ 0x10, 0x10, 0x10, 0xF0, 0x00,
+ 0x00, 0x00, 0x00, 0x1F, 0x10,
+ 0x10, 0x10, 0x10, 0x1F, 0x10,
+ 0x10, 0x10, 0x10, 0xF0, 0x10,
+ 0x00, 0x00, 0x00, 0xFF, 0x10,
+ 0x10, 0x10, 0x10, 0x10, 0x10,
+ 0x10, 0x10, 0x10, 0xFF, 0x10,
+ 0x00, 0x00, 0x00, 0xFF, 0x14,
+ 0x00, 0x00, 0xFF, 0x00, 0xFF,
+ 0x00, 0x00, 0x1F, 0x10, 0x17,
+ 0x00, 0x00, 0xFC, 0x04, 0xF4,
+ 0x14, 0x14, 0x17, 0x10, 0x17,
+ 0x14, 0x14, 0xF4, 0x04, 0xF4,
+ 0x00, 0x00, 0xFF, 0x00, 0xF7,
+ 0x14, 0x14, 0x14, 0x14, 0x14,
+ 0x14, 0x14, 0xF7, 0x00, 0xF7,
+ 0x14, 0x14, 0x14, 0x17, 0x14,
+ 0x10, 0x10, 0x1F, 0x10, 0x1F,
+ 0x14, 0x14, 0x14, 0xF4, 0x14,
+ 0x10, 0x10, 0xF0, 0x10, 0xF0,
+ 0x00, 0x00, 0x1F, 0x10, 0x1F,
+ 0x00, 0x00, 0x00, 0x1F, 0x14,
+ 0x00, 0x00, 0x00, 0xFC, 0x14,
+ 0x00, 0x00, 0xF0, 0x10, 0xF0,
+ 0x10, 0x10, 0xFF, 0x10, 0xFF,
+ 0x14, 0x14, 0x14, 0xFF, 0x14,
+ 0x10, 0x10, 0x10, 0x1F, 0x00,
+ 0x00, 0x00, 0x00, 0xF0, 0x10,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+ 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
+ 0x38, 0x44, 0x44, 0x38, 0x44,
+ 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta
+ 0x7E, 0x02, 0x02, 0x06, 0x06,
+ 0x02, 0x7E, 0x02, 0x7E, 0x02,
+ 0x63, 0x55, 0x49, 0x41, 0x63,
+ 0x38, 0x44, 0x44, 0x3C, 0x04,
+ 0x40, 0x7E, 0x20, 0x1E, 0x20,
+ 0x06, 0x02, 0x7E, 0x02, 0x02,
+ 0x99, 0xA5, 0xE7, 0xA5, 0x99,
+ 0x1C, 0x2A, 0x49, 0x2A, 0x1C,
+ 0x4C, 0x72, 0x01, 0x72, 0x4C,
+ 0x30, 0x4A, 0x4D, 0x4D, 0x30,
+ 0x30, 0x48, 0x78, 0x48, 0x30,
+ 0xBC, 0x62, 0x5A, 0x46, 0x3D,
+ 0x3E, 0x49, 0x49, 0x49, 0x00,
+ 0x7E, 0x01, 0x01, 0x01, 0x7E,
+ 0x2A, 0x2A, 0x2A, 0x2A, 0x2A,
+ 0x44, 0x44, 0x5F, 0x44, 0x44,
+ 0x40, 0x51, 0x4A, 0x44, 0x40,
+ 0x40, 0x44, 0x4A, 0x51, 0x40,
+ 0x00, 0x00, 0xFF, 0x01, 0x03,
+ 0xE0, 0x80, 0xFF, 0x00, 0x00,
+ 0x08, 0x08, 0x6B, 0x6B, 0x08,
+ 0x36, 0x12, 0x36, 0x24, 0x36,
+ 0x06, 0x0F, 0x09, 0x0F, 0x06,
+ 0x00, 0x00, 0x18, 0x18, 0x00,
+ 0x00, 0x00, 0x10, 0x10, 0x00,
+ 0x30, 0x40, 0xFF, 0x01, 0x01,
+ 0x00, 0x1F, 0x01, 0x01, 0x1E,
+ 0x00, 0x19, 0x1D, 0x17, 0x12,
+ 0x00, 0x3C, 0x3C, 0x3C, 0x3C,
+ 0x00, 0x00, 0x00, 0x00, 0x00
+};
+#endif // FONT5X7_H