diff --git a/boards.txt b/boards.txt index 1506aaa1..ea9d34fd 100644 --- a/boards.txt +++ b/boards.txt @@ -1,16 +1,16 @@ ############################################################## menu.cpu=Processor -MSP-EXP432P401RR.msp432r.ccs.target_class=emt -MSP-EXP432P401RR.vid.0=0x2341 -MSP-EXP432P401RR.pid.0=0x0c9f -MSP-EXP432P401RR.name=RED LaunchPad w/ msp432 EMT (48MHz) -MSP-EXP432P401RR.build.mcu=cortex-m4 -MSP-EXP432P401RR.build.f_cpu=48000000L -MSP-EXP432P401RR.build.core=msp432r -MSP-EXP432P401RR.build.variant=MSP_EXP432P401R -MSP-EXP432P401RR.build.board=MSP_EXP432P401R -MSP-EXP432P401RR.build.ldscript=linker.cmd -MSP-EXP432P401RR.upload.tool=dslite -MSP-EXP432P401RR.upload.protocol=dslite -MSP-EXP432P401RR.upload.maximum_size=262144 -MSP-EXP432P401RR.upload.maximum_data_size=65536 +MSP-EXP432P401R.ccs.device_id=MSP432P401R +MSP-EXP432P401R.vid.0=0x2341 +MSP-EXP432P401R.pid.0=0x0c9f +MSP-EXP432P401R.name=RED LaunchPad w/ msp432 EMT (48MHz) +MSP-EXP432P401R.build.mcu=cortex-m4 +MSP-EXP432P401R.build.f_cpu=48000000L +MSP-EXP432P401R.build.core=msp432r +MSP-EXP432P401R.build.variant=MSP_EXP432P401R +MSP-EXP432P401R.build.board=MSP_EXP432P401R +MSP-EXP432P401R.build.ldscript=linker.cmd +MSP-EXP432P401R.upload.tool=dslite +MSP-EXP432P401R.upload.protocol=dslite +MSP-EXP432P401R.upload.maximum_size=262144 +MSP-EXP432P401R.upload.maximum_data_size=65536 diff --git a/cores/msp432r/ti/runtime/wiring/SPI.h b/cores/msp432r/ti/runtime/wiring/SPI.h index 59539ad2..3b388dfd 100644 --- a/cores/msp432r/ti/runtime/wiring/SPI.h +++ b/cores/msp432r/ti/runtime/wiring/SPI.h @@ -38,10 +38,10 @@ #include #include -#define SPI_MODE0 SPI_POL0_PHA0 -#define SPI_MODE1 SPI_POL0_PHA1 -#define SPI_MODE2 SPI_POL1_PHA0 -#define SPI_MODE3 SPI_POL1_PHA1 +#define SPI_MODE0 SPI_POL0_PHA1 +#define SPI_MODE1 SPI_POL0_PHA0 +#define SPI_MODE2 SPI_POL0_PHA1 +#define SPI_MODE3 SPI_POL0_PHA0 #define MSBFIRST 1 #define LSBFIRST 0 diff --git a/libraries/Kentec_35_SPI/LCD_screen - Reference Manual.pdf b/libraries/Kentec_35_SPI/LCD_screen - Reference Manual.pdf deleted file mode 100644 index 4646ce69..00000000 Binary files a/libraries/Kentec_35_SPI/LCD_screen - Reference Manual.pdf and /dev/null differ diff --git a/libraries/Kentec_35_SPI/LCD_screen.cpp b/libraries/Kentec_35_SPI/LCD_screen.cpp deleted file mode 100644 index 1ccc8abf..00000000 --- a/libraries/Kentec_35_SPI/LCD_screen.cpp +++ /dev/null @@ -1,503 +0,0 @@ -// -// LCD_screen.cpp -// Class library C++ code -// ---------------------------------- -// Developed with embedXcode -// http://embedXcode.weebly.com -// -// Project LCD_screen_main -// -// Created by Rei VILO, mars 06, 2013 18:12 -// embedXcode.weebly.com -// -// -// Copyright © Rei VILO, 2013 -// License All rights reserved -// -// See LCD_screen.h and ReadMe.txt for references -// -// Library header -#include "LCD_screen.h" -// Code -LCD_screen::LCD_screen() -{ - _fontSize = 0; - _fontSolid = true; - _penSolid = false; - _flagRead = false; - _flagStorage = false; - _touchTrim = 0; -} -void LCD_screen::showInformation(uint16_t x0, uint16_t y0) -{ - setFontSize(2); - gText(x0, y0, "LCD_screen Library Suite"); - y0 += fontSizeY()+1; - setFontSize(1); - gText(x0, y0, "release " + String(LCD_SCREEN_RELEASE/100) + "." + String(LCD_SCREEN_RELEASE/10%10) + String(LCD_SCREEN_RELEASE%10)); - y0 += fontSizeY()+1; - gText(x0, y0, "(c) Rei Vilo, 2013"); - y0 += fontSizeY()+1; - setFontSize(0); - gText(x0, y0, "reivilofischertechnik.weebly.com"); - y0 += fontSizeY()+1; - gText(x0, y0, "Screen: " + WhoAmI()); - y0 += fontSizeY()+1; - gText(x0, y0, "Pixels: " + String(screenSizeX()) + " x " + String(screenSizeY())); - y0 += fontSizeY()+1; - gText(x0, y0, "Readable: " + String((isReadable()) ? "yes" : "no")); - y0 += fontSizeY()+1; - gText(x0, y0, "Touch: " + String((isTouch()) ? "yes" : "no")); - y0 += fontSizeY()+1; - gText(x0, y0, "Storage: " + String((isStorage()) ? "yes" : "no")); - y0 += fontSizeY()+1; -} -void LCD_screen::clear(uint16_t colour) -{ - uint8_t oldOrientation = _orientation; - bool oldPenSolid = _penSolid; - setOrientation(0); - setPenSolid(); - rectangle(0, 0, screenSizeX()-1, screenSizeY()-1, colour); - setOrientation(oldOrientation); - setPenSolid(oldPenSolid); -} -void LCD_screen::setOrientation(uint8_t orientation) -{ - _orientation = orientation % 4; -} -uint8_t LCD_screen::getOrientation() -{ - return _orientation; -} -uint16_t LCD_screen::screenSizeX() -{ - switch (_orientation) { - case 0: - case 2: - return _screenWidth; - break; - case 1: - case 3: - return _screenHeigth; - break; - } -} -uint16_t LCD_screen::screenSizeY() -{ - switch (_orientation) { - case 0: - case 2: - return _screenHeigth; - break; - case 1: - case 3: - return _screenWidth; - break; - } -} -void LCD_screen::circle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t colour) -{ - int16_t f = 1 - radius; - int16_t ddF_x = 1; - int16_t ddF_y = -2 * radius; - int16_t x = 0; - int16_t y = radius; - if (_penSolid == false) { - point(x0, y0+radius, colour); - point(x0, y0-radius, colour); - point(x0+radius, y0, colour); - point(x0-radius, y0, colour); - while (x= 0) { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - point(x0 + x, y0 + y, colour); - point(x0 - x, y0 + y, colour); - point(x0 + x, y0 - y, colour); - point(x0 - x, y0 - y, colour); - point(x0 + y, y0 + x, colour); - point(x0 - y, y0 + x, colour); - point(x0 + y, y0 - x, colour); - point(x0 - y, y0 - x, colour); - } - } else { - while (x= 0) { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - line(x0 + x, y0 + y, x0 - x, y0 + y, colour); - line(x0 + x, y0 - y, x0 - x, y0 - y, colour); - line(x0 + y, y0 - x, x0 + y, y0 + x, colour); - line(x0 - y, y0 - x, x0 - y, y0 + x, colour); - } - setPenSolid(true); - rectangle(x0-x, y0-y, x0+x, y0+y, colour); - } -} -void LCD_screen::dLine(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour) -{ - line(x0, y0, x0+dx-1, y0+dy-1, colour); -} -void LCD_screen::line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour) -{ - if ((x1 == x2) && (y1 == y2)) { - _setPoint(x1, y1, colour); - } else if ((x1 == x2) || (y1 == y2)) { - _fastFill(x1, y1, x2, y2, colour); - } else { - int16_t wx1 = (int16_t)x1; - int16_t wx2 = (int16_t)x2; - int16_t wy1 = (int16_t)y1; - int16_t wy2 = (int16_t)y2; - boolean flag = abs(wy2 - wy1) > abs(wx2 - wx1); - if (flag) { - _swap(wx1, wy1); - _swap(wx2, wy2); - } - if (wx1 > wx2) { - _swap(wx1, wx2); - _swap(wy1, wy2); - } - int16_t dx = wx2 - wx1; - int16_t dy = abs(wy2 - wy1); - int16_t err = dx / 2; - int16_t ystep; - if (wy1 < wy2) ystep = 1; - else ystep = -1; - for (; wx1<=wx2; wx1++) { - if (flag) _setPoint(wy1, wx1, colour); - else _setPoint(wx1, wy1, colour); - err -= dy; - if (err < 0) { - wy1 += ystep; - err += dx; - } - } - } -} -void LCD_screen::setPenSolid(bool flag) -{ - _penSolid = flag; -} -void LCD_screen::point(uint16_t x1, uint16_t y1, uint16_t colour) -{ - _setPoint(x1, y1, colour); -} -void LCD_screen::rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour) -{ - if (_penSolid == false) { - line(x1, y1, x1, y2, colour); - line(x1, y1, x2, y1, colour); - line(x1, y2, x2, y2, colour); - line(x2, y1, x2, y2, colour); - } else { - _fastFill(x1, y1, x2, y2, colour); - } -} -void LCD_screen::dRectangle(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour) -{ - rectangle(x0, y0, x0+dx-1, y0+dy-1, colour); -} -void LCD_screen::_triangleArea(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, uint16_t colour) -{ - int16_t wx1 = (int16_t)x1; - int16_t wy1 = (int16_t)y1; - int16_t wx2 = (int16_t)x2; - int16_t wy2 = (int16_t)y2; - int16_t wx3 = (int16_t)x3; - int16_t wy3 = (int16_t)y3; - int16_t wx4 = wx1; - int16_t wy4 = wy1; - int16_t wx5 = wx1; - int16_t wy5 = wy1; - bool changed1 = false; - bool changed2 = false; - int16_t dx1 = abs(wx2 - wx1); - int16_t dy1 = abs(wy2 - wy1); - int16_t dx2 = abs(wx3 - wx1); - int16_t dy2 = abs(wy3 - wy1); - int16_t signx1 = (wx2 >= wx1) ? +1 : -1; - int16_t signx2 = (wx3 >= wx1) ? +1 : -1; - int16_t signy1 = (wy2 >= wy1) ? +1 : -1; - int16_t signy2 = (wy3 >= wy1) ? +1 : -1; - if (dy1 > dx1) { - _swap(dx1, dy1); - changed1 = true; - } - if (dy2 > dx2) { - _swap(dx2, dy2); - changed2 = true; - } - int16_t e1 = 2 * dy1 - dx1; - int16_t e2 = 2 * dy2 - dx2; - for (int i = 0; i <= dx1; i++) { - line(wx4, wy4, wx5, wy5, colour); - while (e1 >= 0) { - if (changed1) wx4 += signx1; - else wy4 += signy1; - e1 = e1 - 2 * dx1; - } - if (changed1) wy4 += signy1; - else wx4 += signx1; - e1 = e1 + 2 * dy1; - while (wy5 != wy4) { - while (e2 >= 0) { - if (changed2) wx5 += signx2; - else wy5 += signy2; - e2 = e2 - 2 * dx2; - } - if (changed2) wy5 += signy2; - else wx5 += signx2; - e2 = e2 + 2 * dy2; - } - } -} -void LCD_screen::triangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, uint16_t colour) -{ - if (_penSolid) { - bool b = true; - while (b) { - b = false; - if ((b == false) && (y1 > y2)) { - _swap(x1, x2); - _swap(y1, y2); - b = true; - } - if ((b == false) && (y2 > y3)) { - _swap(x3, x2); - _swap(y3, y2); - b = true; - } - } - if (y2 == y3) { - _triangleArea(x1, y1, x2, y2, x3, y3, colour); - } else if (y1 == y2) { - _triangleArea(x3, y3, x1, y1, x2, y2, colour); - } else { - uint16_t x4 = (uint16_t)( (int32_t)x1 + (y2 - y1) * (x3 - x1) / (y3 - y1) ); - uint16_t y4 = y2; - _triangleArea(x1, y1, x2, y2, x4, y4, colour); - _triangleArea(x3, y3, x2, y2, x4, y4, colour); - } - } else { - line(x1, y1, x2, y2, colour); - line(x2, y2, x3, y3, colour); - line(x3, y3, x1, y1, colour); - } -} -bool LCD_screen::_inValue(int16_t value, int16_t valueLow, int16_t valueHigh) -{ - if (valueLow <= valueHigh) return ((valueLow <= value) && (value < valueHigh)); - else return ((valueHigh <= value) && (value < valueLow)); -} -bool LCD_screen::_inCycle(int16_t value, int16_t valueLow, int16_t valueHigh) -{ - if (valueLow <= valueHigh) return ((valueLow < value) && (value < valueHigh)); - else return ((valueHigh <= value) != (value < valueLow)); -} -bool LCD_screen::_inSector(int16_t valueStart, int16_t valueEnd, int16_t sectorLow, int16_t sectorHigh, - int16_t criteriaStart, int16_t criteriaEnd, int16_t criteriaLow, int16_t criteriaHigh, - int16_t criteria) -{ - bool flag = false; - flag |= !_inValue(valueStart, sectorLow, sectorHigh) && _inValue(valueEnd, sectorLow, sectorHigh) && _inValue(criteria, criteriaLow, criteriaEnd); - flag |= _inValue(valueStart, sectorLow, sectorHigh) && _inValue(valueEnd, sectorLow, sectorHigh) && _inValue(criteria, criteriaStart, criteriaEnd); - flag |= _inValue(valueStart, sectorLow, sectorHigh) && !_inValue(valueEnd, sectorLow, sectorHigh) && _inValue(criteria, criteriaStart, criteriaHigh); - flag |= ((valueStart <= sectorLow) && (sectorHigh <= valueEnd)) || ((sectorHigh <= valueEnd) && (valueEnd <= valueStart)) || ((valueStart <= sectorLow) && (valueEnd <= valueStart)); - return flag; -} -void LCD_screen::arc(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t start, uint16_t end, uint16_t colour) -{ ; } -void LCD_screen::setFontSolid(bool flag) -{ - _fontSolid = flag; -} -uint16_t LCD_screen::calculateColour(uint8_t red, uint8_t green, uint8_t blue) -{ - return (red >> 3) << 11 | (green >> 2) << 5 | (blue >> 3); -} -void LCD_screen::splitColour(uint16_t rgb, uint8_t &red, uint8_t &green, uint8_t &blue) -{ - red = (rgb & 0b1111100000000000) >> 11 << 3; - green = (rgb & 0b0000011111100000) >> 5 << 2; - blue = (rgb & 0b0000000000011111) << 3; -} -uint16_t LCD_screen::halveColour(uint16_t rgb) { - return ((rgb & 0b1111100000000000) >> 12 << 11 | \ - (rgb & 0b0000011111100000) >> 6 << 5 | \ - (rgb & 0b0000000000011111) >> 1); -} -uint16_t LCD_screen::averageColour(uint16_t rgb1, uint16_t rgb2) -{ - uint8_t r1, g1, b1, r2, g2, b2; - uint16_t r, g, b; - splitColour(rgb1, r1, g1, b1); - splitColour(rgb2, r2, g2, b2); - r = (uint16_t)(r1 + r2)/2; - g = (uint16_t)(g1 + g2)/2; - b = (uint16_t)(b1 + b2)/2; - return calculateColour((uint8_t)r, (uint8_t)g, (uint8_t)b); -} -uint16_t LCD_screen::reverseColour(uint16_t rgb) { - return (uint16_t)(rgb ^ 0b1111111111111111); -} -bool LCD_screen::isTouch() -{ - return (_touchTrim > 0); -} -bool LCD_screen::isReadable() -{ - return _flagRead; -} -bool LCD_screen::isStorage() -{ - return _flagStorage; -} -uint16_t LCD_screen::readPixel(uint16_t x1, uint16_t y1) -{ - return 0; -} -void LCD_screen::copyPaste(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t dx, uint16_t dy) -{ -} -void LCD_screen::copyArea(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint32_t &address) -{ -} -void LCD_screen::pasteArea(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint32_t &address, bool option) -{ -} -void LCD_screen::_displayTarget(uint16_t x0, uint16_t y0, uint16_t colour) -{ - setPenSolid(false); - circle(x0, y0, 8, colour); - circle(x0, y0, 7, colour); - circle(x0, y0, 6, colour); -} -bool LCD_screen::getTouch(uint16_t &x, uint16_t &y, uint16_t &z) -{ - if (_touchTrim == 0) return false; - uint16_t x0, y0, z0; - _getRawTouch(x0, y0, z0); - z = z0; - if (z > _touchTrim) { - x0 = _check(x0, _touchXmin, _touchXmax); - y0 = _check(y0, _touchYmin, _touchYmax); - switch (_orientation) { - case 0: - x = map(x0, _touchXmin, _touchXmax, 0, _screenWidth); - y = map(y0, _touchYmin, _touchYmax, 0, _screenHeigth); - break; - case 1: - x = map(y0, _touchYmin, _touchYmax, 0, _screenHeigth); - y = map(x0, _touchXmin, _touchXmax, _screenWidth, 0); - break; - case 2: - x = map(x0, _touchXmin, _touchXmax, _screenWidth, 0); - y = map(y0, _touchYmin, _touchYmax, _screenHeigth, 0); - break; - case 3: - x = map(y0, _touchYmin, _touchYmax, _screenHeigth, 0); - y = map(x0, _touchXmin, _touchXmax, 0, _screenWidth); - break; - } - return true; - } else { - return false; - } -} -void LCD_screen::calibrateTouch() -{ - if (_touchTrim == 0) return; - uint16_t x00, y00, x10, x01, x11, y10, y01, y11, z0; - uint16_t x0, x1, y0, y1; - uint8_t old = _orientation; - setOrientation(0); - clear(); - setFontSize(0); - gText(screenSizeX()/2-17*fontSizeX()/2, screenSizeY()/2-fontSizeY(), "TOUCH CALIBRATION", redColour, blackColour); - gText(screenSizeX()/2-16*fontSizeX()/2, screenSizeY()/2, "Press the centre", redColour, blackColour); - gText(screenSizeX()/2-17*fontSizeX()/2, screenSizeY()/2+fontSizeY(), "of the red circle", redColour, blackColour); - _displayTarget(10, 10, redColour); - z0 = 0; - do _getRawTouch(x00, y00, z0); while (z0<_touchTrim); - _displayTarget(10, 10, greenColour); - delay(500); - _displayTarget(_screenWidth-10, 10, redColour); - z0 = 0; - do _getRawTouch(x10, y10, z0); while (z0<_touchTrim); - _displayTarget(_screenWidth-10, 10, greenColour); - delay(500); - _displayTarget(_screenWidth-10, _screenHeigth-10, redColour); - z0 = 0; - do _getRawTouch(x11, y11, z0); while (z0<_touchTrim); - _displayTarget(_screenWidth-10, _screenHeigth-10, greenColour); - delay(500); - _displayTarget(10, _screenHeigth-10, redColour); - z0 = 0; - do _getRawTouch(x01, y01, z0); while (z0<_touchTrim); - _displayTarget(10, _screenHeigth-10, greenColour); - x0 = (x00+x01)/2; - x1 = (x10+x11)/2; - y0 = (y00+y10)/2; - y1 = (y01+y11)/2; - _touchXmin = x0 - 10 * (x1-x0) / (_screenWidth -10-10); - _touchXmax = x1 + 10 * (x1-x0) / (_screenWidth -10-10); - _touchYmin = y0 - 10 * (y1-y0) / (_screenHeigth-10-10); - _touchYmax = y1 + 10 * (y1-y0) / (_screenHeigth-10-10); - Serial.println("touch calibration"); - Serial.print("_touchXmin ="); - Serial.print(_touchXmin, DEC); - Serial.println(";"); - Serial.print("_touchXmax ="); - Serial.print(_touchXmax, DEC); - Serial.println(";"); - Serial.print("_touchYmin ="); - Serial.print(_touchYmin, DEC); - Serial.println(";"); - Serial.print("_touchYmax ="); - Serial.print(_touchYmax, DEC); - Serial.println(";"); - clear(); - setOrientation(old); -} -void LCD_screen::_swap(uint16_t &a, uint16_t &b) -{ - uint16_t w = a; - a = b; - b = w; -} -void LCD_screen::_swap(int16_t &a, int16_t &b) -{ - int16_t w = a; - a = b; - b = w; -} -void LCD_screen::_swap(uint8_t &a, uint8_t &b) -{ - uint8_t w = a; - a = b; - b = w; -} -uint16_t LCD_screen::_check(uint16_t x0, uint16_t xmin, uint16_t xmax) -{ - if (xmin < xmax) { - if (x0 < xmin) return xmin; - else if (x0 > xmax) return xmax; - else return x0; - } else { - if (x0 < xmax) return xmax; - else if (x0 > xmin) return xmin; - else return x0; - } -} diff --git a/libraries/Kentec_35_SPI/LCD_screen.h b/libraries/Kentec_35_SPI/LCD_screen.h deleted file mode 100644 index 336b2149..00000000 --- a/libraries/Kentec_35_SPI/LCD_screen.h +++ /dev/null @@ -1,123 +0,0 @@ -/// -/// @file LCD_screen.h -/// @brief Class library header -/// @detailsGeneric LCD class library -/// @n -/// @n @b Project LCD_screen -/// @n @a Developed with [embedXcode](http://embedXcode.weebly.com) -/// -/// @author Rei VILO -/// @author embedXcode.weebly.com -/// @date Dec 10, 2013 -/// @version114 -/// -/// @copyright (c) Rei VILO, 2013-2016 - SPECIAL EDITION FOR ENERGIA -/// @copyright All rights reserved -/// @n http://embeddedcomputing.weebly.com/lcd_screen-library-suite -/// -/// @n Dual license: -/// * For hobbyists and for personal usage: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) -/// * For professionals or organisations or for commercial usage: All rights reserved -/// -/// @n For any enquiry about license, http://embeddedcomputing.weebly.com/contact -/// -/// @seeReadMe.txt for references -#if defined(MPIDE) -#include "WProgram.h" -#elif defined(DIGISPARK) -#include "Arduino.h" -#elif defined(ENERGIA) -#include "Energia.h" -#elif defined(MAPLE_IDE) -#include "WProgram.h" -#elif defined(CORE_TEENSY) -#include "WProgram.h" -#elif defined(WIRING) -#include "Wiring.h" -#elif defined(ARDUINO) && (ARDUINO >= 100) -#include "Arduino.h" -#elif defined(ARDUINO) && (ARDUINO < 100) -#include "WProgram.h" -#endif -#ifndef LCD_SCREEN_RELEASE -#define LCD_SCREEN_RELEASE 114 -#include "LCD_utilities.h" -const uint16_t blackColour = 0b0000000000000000; -const uint16_t whiteColour = 0b1111111111111111; -const uint16_t redColour = 0b1111100000000000; -const uint16_t greenColour = 0b0000011111100000; -const uint16_t blueColour = 0b0000000000011111; -const uint16_t yellowColour = 0b1111111111100000; -const uint16_t cyanColour = 0b0000011111111111; -const uint16_t orangeColour = 0b1111101111100000; -const uint16_t magentaColour = 0b1111100000001111; -const uint16_t violetColour = 0b1111100000011111; -const uint16_t grayColour = 0b0111101111101111; -const uint16_t darkGrayColour = 0b0011100111100111; -class LCD_screen { -public: - LCD_screen(); - virtual void begin() =0; - virtual String WhoAmI() =0; - void clear(uint16_t colour = blackColour); - virtual void setOrientation(uint8_t orientation); - uint8_t getOrientation(); - virtual void showInformation(uint16_t x0 = 0, uint16_t y0 = 0); - virtual uint16_t screenSizeX(); - virtual uint16_t screenSizeY(); - virtual void circle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t colour); - virtual void arc(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t start, uint16_t end, uint16_t colour); - virtual void line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour); - virtual void dLine(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour); - virtual void setPenSolid(bool flag = true); - virtual void triangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, uint16_t colour); - virtual void rectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour); - virtual void dRectangle(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint16_t colour); - virtual void point(uint16_t x1, uint16_t y1, uint16_t colour); - virtual void setFontSize(uint8_t size) =0; - virtual void setFontSolid(bool flag = true); - virtual uint8_t fontSizeX() =0; - virtual uint8_t fontSizeY() =0; - virtual void gText(uint16_t x0, uint16_t y0, - String s, - uint16_t textColour = whiteColour, uint16_t backColour = blackColour, - uint8_t ix = 1, uint8_t iy = 1) =0; - uint16_t calculateColour(uint8_t red, uint8_t green, uint8_t blue); - void splitColour(uint16_t rgb, uint8_t &red, uint8_t &green, uint8_t &blue); - uint16_t halveColour(uint16_t rgb); - uint16_t averageColour(uint16_t rgb1, uint16_t rgb2); - uint16_t reverseColour(uint16_t rgb); - bool isReadable(); - bool isStorage(); - virtual uint16_t readPixel(uint16_t x1, uint16_t y1); - virtual void copyPaste(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t dx, uint16_t dy); - virtual void copyArea(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint32_t &address); - virtual void pasteArea(uint16_t x0, uint16_t y0, uint16_t dx, uint16_t dy, uint32_t &address, bool option=false); - bool isTouch(); - bool getTouch(uint16_t &x, uint16_t &y, uint16_t &z); - void calibrateTouch(); -protected: - uint8_t _fontX, _fontY, _fontSize; - uint8_t _orientation; - bool _penSolid, _fontSolid, _flagRead, _flagStorage; - uint16_t _screenWidth, _screenHeigth; - uint8_t _touchTrim; - uint16_t _touchXmin, _touchXmax, _touchYmin, _touchYmax; - virtual void _fastFill(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour) =0; - virtual void _setPoint(uint16_t x1, uint16_t y1, uint16_t colour) =0; - virtual void _getRawTouch(uint16_t &x0, uint16_t &y0, uint16_t &z0) =0; - virtual void _setWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) =0; - virtual void _writeData88(uint8_t dataHigh8, uint8_t dataLow8) =0; - void _displayTarget(uint16_t x0, uint16_t y0, uint16_t colour); - void _swap(int16_t &a, int16_t &b); - void _swap(uint16_t &a, uint16_t &b); - void _swap(uint8_t &a, uint8_t &b); - uint16_t _check(uint16_t x0, uint16_t xmin, uint16_t xmax); - void _triangleArea(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, uint16_t colour); - bool _inValue(int16_t value, int16_t valueLow, int16_t valueHigh); - bool _inSector(int16_t valueStart, int16_t valueEnd, int16_t sectorLow, int16_t sectorHigh, - int16_t criteriaStart, int16_t criteriaEnd, int16_t criteriaLow, int16_t criteriaHigh, - int16_t criteria); - bool _inCycle(int16_t value, int16_t valueLow, int16_t valueHigh); -}; -#endif diff --git a/libraries/Kentec_35_SPI/LCD_screen_font.cpp b/libraries/Kentec_35_SPI/LCD_screen_font.cpp deleted file mode 100644 index 65e2aedc..00000000 --- a/libraries/Kentec_35_SPI/LCD_screen_font.cpp +++ /dev/null @@ -1,314 +0,0 @@ -// -// LCD_screen_font.cpp -// Class library C++ code -// ---------------------------------- -// Developed with embedXcode -// http://embedXcode.weebly.com -// -// Project LCD_screen_font_main -// -// Created by Rei VILO, May 30, 2013 -// embedXcode.weebly.com -// -// -// Copyright © Rei VILO, 2013 -// License All rights reserved -// -// See LCD_screen_font.h and ReadMe.txt for references -// -// Library header -#include "LCD_screen_font.h" -LCD_screen_font::LCD_screen_font() -{ - ; -} -void LCD_screen_font::setFontSize(uint8_t size) -{ - if (size < MAX_FONT_SIZE) _fontSize = size; - else _fontSize = MAX_FONT_SIZE -1; -} -uint8_t LCD_screen_font::fontMax() -{ - return MAX_FONT_SIZE; -} -uint8_t LCD_screen_font::fontSizeX() -{ -#if (MAX_FONT_SIZE > 0) - if (_fontSize == 0) return 6; -#if (MAX_FONT_SIZE > 1) - else if (_fontSize == 1) return 8; -#if (MAX_FONT_SIZE > 2) - else if (_fontSize == 2) return 12; -#if (MAX_FONT_SIZE > 3) - else if (_fontSize == 3) return 16; -#endif -#endif -#endif -#endif - else return 0; -} -uint8_t LCD_screen_font::fontSizeY() -{ -#if (MAX_FONT_SIZE > 0) - if (_fontSize == 0) return 8; -#if (MAX_FONT_SIZE > 1) - else if (_fontSize == 1) return 12; -#if (MAX_FONT_SIZE > 2) - else if (_fontSize == 2) return 16; -#if (MAX_FONT_SIZE > 3) - else if (_fontSize == 3) return 24; -#endif -#endif -#endif -#endif - else return 0; -} -uint8_t LCD_screen_font::_getCharacter(uint8_t c, uint8_t i) { -#if defined(ENERGIA) -#if (MAX_FONT_SIZE > 0) - if (_fontSize == 0) return Terminal6x8e[c][i]; -#if (MAX_FONT_SIZE > 1) - else if (_fontSize == 1) return Terminal8x12e[c][i]; -#if (MAX_FONT_SIZE > 2) - else if (_fontSize == 2) return Terminal12x16e[c][i]; -#if (MAX_FONT_SIZE > 3) - else if (_fontSize == 3) return Terminal16x24e[c][i]; -#endif -#endif -#endif -#endif - else return 0; -#else -#if (MAX_FONT_SIZE > 0) - if (_fontSize == 0) return pgm_read_byte(&Terminal6x8e[c][i]); -#if (MAX_FONT_SIZE > 1) - else if (_fontSize == 1) return pgm_read_byte(&Terminal8x12e[c][i]); -#if (MAX_FONT_SIZE > 2) - else if (_fontSize == 2) return pgm_read_byte(&Terminal12x16e[c][i]); -#if (MAX_FONT_SIZE > 3) - else if (_fontSize == 3) return pgm_read_byte(&Terminal16x24e[c][i]); -#endif -#endif -#endif -#endif - else return 0; -#endif -} -void LCD_screen_font::gText(uint16_t x0, uint16_t y0, - String s, - uint16_t textColour, uint16_t backColour, - uint8_t ix, uint8_t iy) -{ - uint8_t c; - uint8_t line, line1, line2, line3; - uint16_t x, y; - uint8_t i, j, k; - if ((ix > 1) || (iy > 1) || !_fontSolid) { - if ((_fontSize == 0) && ((ix > 1) || (iy > 1))) { - bool oldPenSolid = _penSolid; - setPenSolid(true); - for (k=0; k 0) - if (_fontSize == 0) { - for (k=0; k 1) - else if (_fontSize == 1) { - for (k=0; k 2) - else if (_fontSize == 2) { - for (k=0; k 3) - else if (_fontSize == 3) { - for (k=0; k 0) - if (_fontSize == 0) { - for (k=0; k 1) - else if (_fontSize == 1) { - for (k=0; k 2) - else if (_fontSize == 2) { - for (k=0; k 3) - else if (_fontSize == 3) { - for (k=0; k= 100) -#include "Arduino.h" -#elif defined(ARDUINO) && (ARDUINO < 100) -#include "WProgram.h" -#endif -#ifndef LCD_SCREEN_FONT_RELEASE -#define LCD_SCREEN_FONT_RELEASE 114 -#include "LCD_screen.h" -#if LCD_SCREEN_RELEASE < 114 -#error Required LCD_SCREEN_RELEASE 114 -#endif -#if defined(__LM4F120H5QR__) || defined(__32MX320F128H__) || defined(__AVR_ATmega2560__) -#define MAX_FONT_SIZE 3 -#elif defined(__MSP430F5529) -#define MAX_FONT_SIZE 2 -#else -#define MAX_FONT_SIZE 1 -#endif -#if (MAX_FONT_SIZE > 0) -#include "Terminal6e.h" -#if (MAX_FONT_SIZE > 1) -#include "Terminal8e.h" -#if (MAX_FONT_SIZE > 2) -#include "Terminal12e.h" -#if (MAX_FONT_SIZE > 3) -#include "Terminal16e.h" -#endif -#endif -#endif -#endif -class LCD_screen_font : public LCD_screen { -public: - LCD_screen_font(); - virtual void setFontSize(uint8_t font = 0); - virtual uint8_t fontMax(); - virtual uint8_t fontSizeX(); - virtual uint8_t fontSizeY(); - virtual void gText(uint16_t x0, uint16_t y0, - String s, - uint16_t textColour = whiteColour, uint16_t backColour = blackColour, - uint8_t ix = 1, uint8_t iy = 1); -protected: - uint8_t _getCharacter(uint8_t c, uint8_t i); - virtual void _fastFill(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour) =0; - virtual void _setPoint(uint16_t x1, uint16_t y1, uint16_t colour) =0; - virtual void _getRawTouch(uint16_t &x0, uint16_t &y0, uint16_t &z0) =0; - virtual void _setWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) =0; - virtual void _writeData88(uint8_t dataHigh8, uint8_t dataLow8) =0; -}; -#endif diff --git a/libraries/Kentec_35_SPI/LCD_utilities.cpp b/libraries/Kentec_35_SPI/LCD_utilities.cpp deleted file mode 100644 index d1790453..00000000 --- a/libraries/Kentec_35_SPI/LCD_utilities.cpp +++ /dev/null @@ -1,172 +0,0 @@ -// -// LCD_utilities.cpp -// Library C++ code -// ---------------------------------- -// Developed with embedXcode -// http://embedXcode.weebly.com -// -// Project LCD_screen -// -// Created by Rei VILO, Jun 01, 2013 -// embedXcode.weebly.com -// -// -// Copyright © Rei VILO, 2013 -// License CC = BY NC SA -// -// See LCD_utilities.h and ReadMe.txt for references -// - -#include - -// Library header -#include "LCD_utilities.h" - -char bufferIn[128]; -char bufferOut[128]; -char bufferFormat[32]; - -int32_t cos32x100(int32_t degreesX100) -{ - int32_t i = 1; - - if (degreesX100<0) { i = -i; degreesX100 = -degreesX100; } - - degreesX100 %= 36000; - - if (degreesX100>9000) { - if (degreesX100<18000) { i = -i; degreesX100 = 18000-degreesX100; } - else if (degreesX100<27000) { i = -i; degreesX100 = degreesX100-18000; } - else { degreesX100 = 36000-degreesX100; } - } - - if (degreesX100< 1000) return i * map(degreesX100, 0, 1000, 100, 98); - else if (degreesX100< 2000) return i * map(degreesX100, 1000, 2000, 98, 93); - else if (degreesX100< 3000) return i * map(degreesX100, 2000, 3000, 93, 86); - else if (degreesX100< 4000) return i * map(degreesX100, 3000, 4000, 86, 76); - else if (degreesX100< 5000) return i * map(degreesX100, 4000, 5000, 76, 64); - else if (degreesX100< 6000) return i * map(degreesX100, 5000, 6000, 64, 50); - else if (degreesX100< 7000) return i * map(degreesX100, 6000, 7000, 50, 34); - else if (degreesX100< 8000) return i * map(degreesX100, 7000, 8000, 34, 17); - else return i * map(degreesX100, 8000, 9000, 17, 0); -} - -int32_t sin32x100(int32_t degreesX100) -{ - return cos32x100(degreesX100+27000); -} - -String utf2iso(String s) -{ - uint8_t c; - - s.toCharArray(bufferIn, s.length()); - - memset(&bufferOut, 0x00, sizeof(bufferOut)); - - - for (uint8_t i=0; i 0) { - if (size>decimal) sprintf(bufferFormat, "%%%dd.", size-decimal-1); - else strcpy(bufferFormat, "%0d."); - sprintf(bufferOut, bufferFormat, number/multiplier); - - if (number < 0) number = -number; - sprintf(bufferFormat, "%%0%dd", decimal); - sprintf(bufferOut+strlen(bufferOut), bufferFormat, number%multiplier); - - } else { - sprintf(bufferFormat, "%%%dd", size); - sprintf(bufferOut, bufferFormat, number/multiplier); - } - - if ((size > 0) && (strlen(bufferOut)>size)) strcpy(bufferOut, "#"); - return bufferOut; -} - -String htoa(uint32_t number, uint8_t size) -{ - sprintf(bufferFormat, "%%0%dx", size); - sprintf(bufferOut, bufferFormat, number); - - if ((size > 0) && (strlen(bufferOut)>size)) strcpy(bufferOut, "#"); - - return bufferOut; -} - - -String ttoa(uint32_t number, uint8_t size) -{ - String s = ""; - memset(&bufferOut, 0x00, sizeof(bufferOut)); - - if (number < (uint32_t)1000) { - sprintf(bufferFormat, "%%%ddms", (size>2) ? size-2 : 0); - sprintf(bufferOut, bufferFormat, number); - } else if (number < (uint32_t)60000) { - number /= 100; - sprintf(bufferFormat, "%%%dd", (size>3) ? size-3 : 0); - sprintf(bufferOut, bufferFormat, number/10); - sprintf(bufferOut+strlen(bufferOut), ".%ds", number%10); - } else if (number < (uint32_t)3600000) { - number /= (uint32_t)6000; - sprintf(bufferFormat, "%%%dd", (size>4) ? size-4 : 0); - sprintf(bufferOut, bufferFormat, number/10); - sprintf(bufferOut+strlen(bufferOut), ".%dmn", number%10); - } else { - number /= (uint32_t)360000; - sprintf(bufferFormat, "%%%dd", (size>3) ? size-3 : 0); - sprintf(bufferOut, bufferFormat, number/10); - sprintf(bufferOut+strlen(bufferOut), ".%dh", number%10); - } - - return bufferOut; -} - - -String btoa(uint16_t number, uint8_t size) -{ - if (size < 8) return "#"; - - memset(&bufferOut, 0x00, sizeof(bufferOut)); - memset(&bufferOut, '0', size); - uint8_t i = size; - - while ((number>0) && (i>0)) { - bufferOut[--i] = '0'+(number%2); - number >>= 1; - } - if (i==0) strcpy(bufferOut, "#"); - - return bufferOut; -} - diff --git a/libraries/Kentec_35_SPI/LCD_utilities.h b/libraries/Kentec_35_SPI/LCD_utilities.h deleted file mode 100644 index 6e8a63d8..00000000 --- a/libraries/Kentec_35_SPI/LCD_utilities.h +++ /dev/null @@ -1,51 +0,0 @@ -/// -/// @file LCD_utilities.h -/// @brief Library header -/// @detailsUtilities for LCD_screen -/// @n -/// @n @b Project LCD_screen -/// @n @a Developed with [embedXcode](http://embedXcode.weebly.com) -/// -/// @author Rei VILO -/// @author embedXcode.weebly.com -/// @date Sep 18, 2013 -/// @version102 -/// -/// @copyright (c) Rei VILO, 2010-2016 - SPECIAL EDITION FOR ENERGIA -/// @copyright All rights reserved -/// @n http://embeddedcomputing.weebly.com/lcd_screen-library-suite -/// -/// @n Dual license: -/// * For hobbyists and for personal usage: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) -/// * For professionals or organisations or for commercial usage: All rights reserved -/// -/// @n For any enquiry about license, http://embeddedcomputing.weebly.com/contact -/// -/// @seeReadMe.txt for references -#if defined(MPIDE) -#include "WProgram.h" -#elif defined(DIGISPARK) -#include "Arduino.h" -#elif defined(ENERGIA) -#include "Energia.h" -#elif defined(MAPLE_IDE) -#include "WProgram.h" -#elif defined(CORE_TEENSY) -#include "WProgram.h" -#elif defined(WIRING) -#include "Wiring.h" -#elif defined(ARDUINO) && (ARDUINO >= 100) -#include "Arduino.h" -#elif defined(ARDUINO) && (ARDUINO < 100) -#include "WProgram.h" -#endif -#ifndef LCD_UTILITIES_RELEASE -#define LCD_UTILITIES_RELEASE 102 -int32_t cos32x100(int32_t degreesX100); -int32_t sin32x100(int32_t degreesX100); -String utf2iso(String s); -String htoa(uint32_t number, uint8_t size=0); -String btoa(uint16_t number, uint8_t size=8); -String ttoa(uint32_t number, uint8_t size=0); -String i32toa(int32_t number, int32_t unit=1, uint8_t decimal=0, uint8_t size=0); -#endif diff --git a/libraries/Kentec_35_SPI/ReadMe.txt b/libraries/Kentec_35_SPI/ReadMe.txt deleted file mode 100644 index 415aa790..00000000 --- a/libraries/Kentec_35_SPI/ReadMe.txt +++ /dev/null @@ -1,33 +0,0 @@ - LCD_protocol100 - Project - ---------------------------------- - Developed with embedXcode - - Project LCD_protocol100 - Created by Rei VILO on 05/10/13 - Copyright © 2013 http://embeddedcomputing.weebly.com - - Dual license: - * For hobbyists and for personal usage: - Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) - - * For professionals or organisations or for commercial usage: - All rights reserved - - For any enquiry about license - http://embeddedcomputing.weebly.com/contact - - - References - ---------------------------------- - http://embeddedcomputing.weebly.com/lcd_screen-library-suite.html - - - embedXcode - embedXcode+ - ---------------------------------- - Embedded Computing on Xcode - Copyright © Rei VILO, 2010-2013 - All rights reserved - http://embedXcode.weebly.com - diff --git a/libraries/Kentec_35_SPI/Screen_K35_SPI.cpp b/libraries/Kentec_35_SPI/Screen_K35_SPI.cpp deleted file mode 100644 index b5999d48..00000000 --- a/libraries/Kentec_35_SPI/Screen_K35_SPI.cpp +++ /dev/null @@ -1,647 +0,0 @@ -// -// Screen_K35_SPI.cpp -// Library C++ code -// ---------------------------------- -// Developed with embedXcode -// http://embedXcode.weebly.com -// -// Project LCD_screen Library Suite -// -// Created by Rei VILO, Jun 29, 2013 -// embedXcode.weebly.com -// -// -// Copyright © Rei VILO, 2013-2016 - SPECIAL EDITION FOR ENERGIA -// Licence All rights reserved -// -// See LCD_document.h and ReadMe.txt for references -// - -// Library header -#include "Screen_K35_SPI.h" - -#if defined(__LM4F120H5QR__) -#include "inc/hw_gpio.h" -#include "driverlib/sysctl.h" -#endif - -/// -/// @name SSD2119 constants -/// -/// @{ - -#define SSD2119_DEVICE_CODE_READ_REG 0x00 -#define SSD2119_OSC_START_REG 0x00 -#define SSD2119_OUTPUT_CTRL_REG 0x01 -#define SSD2119_LCD_DRIVE_AC_CTRL_REG 0x02 -#define SSD2119_PWR_CTRL_1_REG 0x03 -#define SSD2119_DISPLAY_CTRL_REG 0x07 -#define SSD2119_FRAME_CYCLE_CTRL_REG 0x0B -#define SSD2119_PWR_CTRL_2_REG 0x0C -#define SSD2119_PWR_CTRL_3_REG 0x0D -#define SSD2119_PWR_CTRL_4_REG 0x0E -#define SSD2119_GATE_SCAN_START_REG 0x0F -#define SSD2119_SLEEP_MODE_REG 0x10 -#define SSD2119_ENTRY_MODE_REG 0x11 -#define SSD2119_GEN_IF_CTRL_REG 0x15 -#define SSD2119_PWR_CTRL_5_REG 0x1E -#define SSD2119_RAM_DATA_REG 0x22 -#define SSD2119_FRAME_FREQ_REG 0x25 -#define SSD2119_VCOM_OTP_1_REG 0x28 -#define SSD2119_VCOM_OTP_2_REG 0x29 -#define SSD2119_GAMMA_CTRL_1_REG 0x30 -#define SSD2119_GAMMA_CTRL_2_REG 0x31 -#define SSD2119_GAMMA_CTRL_3_REG 0x32 -#define SSD2119_GAMMA_CTRL_4_REG 0x33 -#define SSD2119_GAMMA_CTRL_5_REG 0x34 -#define SSD2119_GAMMA_CTRL_6_REG 0x35 -#define SSD2119_GAMMA_CTRL_7_REG 0x36 -#define SSD2119_GAMMA_CTRL_8_REG 0x37 -#define SSD2119_GAMMA_CTRL_9_REG 0x3A -#define SSD2119_GAMMA_CTRL_10_REG 0x3B -#define SSD2119_V_RAM_POS_REG 0x44 -#define SSD2119_H_RAM_START_REG 0x45 -#define SSD2119_H_RAM_END_REG 0x46 -#define SSD2119_X_RAM_ADDR_REG 0x4E -#define SSD2119_Y_RAM_ADDR_REG 0x4F - -#define ENTRY_MODE_DEFAULT 0x6830 -#define MAKE_ENTRY_MODE(x) ((ENTRY_MODE_DEFAULT & 0xFF00) | (x)) - -#define K35_WIDTH 320 // Vertical -#define K35_HEIGHT 240 // Horizontal - -/// @} - -#define GPIO_SLOW 0 -#define GPIO_FAST 1 -#define GPIO_MODE GPIO_SLOW - -#if ((GPIO_MODE == GPIO_FAST) && defined(__LM4F120H5QR__)) -// -// LCD control line GPIO definitions. -// -#define LCD_CS_PERIPH SYSCTL_PERIPH_GPIOA -#define LCD_CS_BASE GPIO_PORTA_BASE -#define LCD_CS_PIN GPIO_PIN_4 -#define LCD_DC_PERIPH SYSCTL_PERIPH_GPIOA -#define LCD_DC_BASE GPIO_PORTA_BASE -#define LCD_DC_PIN GPIO_PIN_5 - -#endif - - -/// -/// @name Touch constants -/// -/// @{ - -#define TOUCH_TRIM 0x10 ///< Touch threshold -#define TOUCH_XP 23 // A7 ///< 23 PD_0 // must be an analog pin, use "An" notation! -#define TOUCH_YP 24 // A6 ///< 24 PD_1 // must be an analog pin, use "An" notation! -#define TOUCH_XN 11 // PA_2 ///< 11 can be a digital pin -#define TOUCH_YN 31 // PF_4 ///< 31 can be a digital pin - -/// @} - - -/// -/// @brief Solution for touch on MSP432 ADC -/// MSP432 14-bit but 10-bit available by default -/// * Solution 1: keep 10-bit -/// * Solution 2: set to 12-bit with -/// -#define MSP432_SOLUTION 1 - -#if defined(__MSP432P401R__) -# if (MSP432_SOLUTION == 1) -// Solution 1: MSP432 14-bit but 10-bit available by default -# define ANALOG_RESOLUTION 1023 -# else -// Solution 2: MSP432 14-bit set to 12-bit -# define ANALOG_RESOLUTION 4095 -# endif -#else -// LM4F TM4C F5529 12-bit -# define ANALOG_RESOLUTION 4095 -#endif - - -// Code -Screen_K35_SPI::Screen_K35_SPI() -{ - // Use pins numbers, as pins names are deprecated - _pinScreenDataCommand = 8; // PA_5 - _pinScreenReset = 32; // PD_7 - _pinScreenChipSelect = 13; // PA_4 - _pinScreenBackLight = 40; // PF_2 PWM, not connected -} - -void Screen_K35_SPI::begin() -{ - -#if defined(__LM4F120H5QR__) || defined(__TM4C123GH6PM__) || defined(__TM4C129XNCZAD__) - SPI.setModule(2); - SPI.begin(); - SPI.setBitOrder(MSBFIRST); - SPI.setClockDivider(SPI_CLOCK_DIV2); - -#else - SPI.begin(); - SPI.setBitOrder(MSBFIRST); - SPI.setClockDivider(SPI_CLOCK_DIV2); - -#endif - - pinMode(_pinScreenDataCommand, OUTPUT); - pinMode(_pinScreenReset, OUTPUT); - pinMode(_pinScreenChipSelect, OUTPUT); - pinMode(_pinScreenBackLight, OUTPUT); - analogWrite(_pinScreenBackLight, 127); - -#if (GPIO_MODE == GPIO_FAST) - // - // Enable GPIOs - // - SysCtlPeripheralEnable(LCD_DC_PERIPH); - SysCtlPeripheralEnable(LCD_CS_PERIPH); - - // - // GPIOs as OUTPUT - // - GPIOPinTypeGPIOOutput(LCD_DC_BASE, LCD_DC_PIN); - GPIOPinTypeGPIOOutput(LCD_CS_BASE, LCD_CS_PIN); - - // - // Default values - // - GPIOPinWrite(LCD_CS_BASE, LCD_CS_PIN, LCD_CS_PIN); - GPIOPinWrite(LCD_DC_BASE, LCD_DC_PIN, 0x00); - GPIOPinWrite(LCD_CS_BASE, LCD_CS_PIN, 0); - HWREG(LCD_DC_BASE + GPIO_O_DATA + (LCD_DC_PIN << 2)) = LCD_DC_PIN; // HIGH = data - -#else - // - // Default values - // - digitalWrite(_pinScreenDataCommand, HIGH); - digitalWrite(_pinScreenChipSelect, HIGH); - digitalWrite(_pinScreenReset, HIGH); - -#endif - - delayMicroseconds(2000); // delay(2); - - // - // RESET cycle - // - digitalWrite(_pinScreenReset, HIGH); - delayMicroseconds(10000); // delay(10); - digitalWrite(_pinScreenReset, LOW); - delayMicroseconds(10000); // delay(10); - digitalWrite(_pinScreenReset, HIGH); - - // // - // // Enter sleep mode - // // - // _writeCommand16(SSD2119_SLEEP_MODE_REG); - // _writeData16(0x0001); - - // - // Power parameters - // - _writeCommand16(SSD2119_PWR_CTRL_5_REG); - _writeData16(0x00BA); - _writeCommand16(SSD2119_VCOM_OTP_1_REG); - _writeData16(0x0006); - - // - // Start oscillator - // - _writeCommand16(SSD2119_OSC_START_REG); - _writeData16(0x0001); - - // - // Set pixel format and basic display orientation - // - _writeCommand16(SSD2119_OUTPUT_CTRL_REG); - _writeData16(0x30EF); - _writeCommand16(SSD2119_LCD_DRIVE_AC_CTRL_REG); - _writeData16(0x0600); - - // - // Exit sleep mode - // - _writeCommand16(SSD2119_SLEEP_MODE_REG); - _writeData16(0x0000); - - delayMicroseconds(30000); // delay(30); - - // - // Pixel color format - // - _writeCommand16(SSD2119_ENTRY_MODE_REG); - _writeData16(ENTRY_MODE_DEFAULT); - - // - // Enable display - // - _writeCommand16(SSD2119_DISPLAY_CTRL_REG); - _writeData16(0x0033); - - // - // Set VCIX2 voltage to 6.1V - // - _writeCommand16(SSD2119_PWR_CTRL_2_REG); - _writeData16(0x0005); - - // - // Gamma correction - // - _writeCommand16(SSD2119_GAMMA_CTRL_1_REG); - _writeData16(0x0000); - _writeCommand16(SSD2119_GAMMA_CTRL_2_REG); - _writeData16(0x0400); - _writeCommand16(SSD2119_GAMMA_CTRL_3_REG); - _writeData16(0x0106); - _writeCommand16(SSD2119_GAMMA_CTRL_4_REG); - _writeData16(0x0700); - _writeCommand16(SSD2119_GAMMA_CTRL_5_REG); - _writeData16(0x0002); - _writeCommand16(SSD2119_GAMMA_CTRL_6_REG); - _writeData16(0x0702); - _writeCommand16(SSD2119_GAMMA_CTRL_7_REG); - _writeData16(0x0707); - _writeCommand16(SSD2119_GAMMA_CTRL_8_REG); - _writeData16(0x0203); - _writeCommand16(SSD2119_GAMMA_CTRL_9_REG); - _writeData16(0x1400); - _writeCommand16(SSD2119_GAMMA_CTRL_10_REG); - _writeData16(0x0F03); - - // - // Configure Vlcd63 and VCOMl - // - _writeCommand16(SSD2119_PWR_CTRL_3_REG); - _writeData16(0x0007); - _writeCommand16(SSD2119_PWR_CTRL_4_REG); - _writeData16(0x3100); - - // - // Display size and GRAM window - // - _writeCommand16(SSD2119_V_RAM_POS_REG); - _writeData16((K35_HEIGHT-1) << 8); - _writeCommand16(SSD2119_H_RAM_START_REG); - _writeData16(0x0000); - _writeCommand16(SSD2119_H_RAM_END_REG); - _writeData16(K35_WIDTH-1); - _writeCommand16(SSD2119_X_RAM_ADDR_REG); - _writeData16(0x00); - _writeCommand16(SSD2119_Y_RAM_ADDR_REG); - _writeData16(0x00); - - // Standard - setOrientation(1); - - _screenWidth = K35_HEIGHT; - _screenHeigth = K35_WIDTH; - // _screenDiagonal = 35; - setFontSize(0); - - // Touch - uint16_t x0, y0, z0; - _getRawTouch(x0, y0, z0); - - // Touch calibration - _touchTrim = TOUCH_TRIM; - -#if (ANALOG_RESOLUTION == 4095) -# warning ANALOG_RESOLUTION == 4095 - _touchXmin = 3077; - _touchXmax = 881; - _touchYmin = 3354; - _touchYmax = 639; -#elif (ANALOG_RESOLUTION == 1023) -# warning ANALOG_RESOLUTION == 1023 - _touchXmin = 837; - _touchXmax = 160; - _touchYmin = 898; - _touchYmax = 114; -#else -#error Wrong -#endif - - _penSolid = false; - _fontSolid = true; - _flagRead = false; - // _flagIntensity = true; - // _fsmArea = true; - // _touchTrim = 10; - - // Solution 2: MSP432 14-bit set to 12-bit -#if defined(__MSP432P401R__) && (MSP432_SOLUTION == 2) - analogReadResolution(12); -#endif - -#if (ANALOG_RESOLUTION == 4095) - _touchTrim *= 4; -#endif - - clear(); -} - -String Screen_K35_SPI::WhoAmI() -{ - return "Kentec 3.5\" SPI screen"; -} - -void Screen_K35_SPI::_setOrientation(uint8_t orientation) -{ - // default = 0x6830 = 0x68 <<8 + 0b00110000 - switch (_orientation) { - case 0: - // hvO - _writeRegister(SSD2119_ENTRY_MODE_REG, 0x6800 + 0b00101000); // ok - break; - case 1: - // hvO - _writeRegister(SSD2119_ENTRY_MODE_REG, 0x6800 + 0b00000000); // ok - break; - case 2: - // hvO - _writeRegister(SSD2119_ENTRY_MODE_REG, 0x6800 + 0b00011000); // ok - break; - case 3: - // hvO - _writeRegister(SSD2119_ENTRY_MODE_REG, 0x6800 + 0b00110000); // ok - break; - } -} - -// Utilities -void Screen_K35_SPI::_writeData16(uint16_t data16) -{ - _writeData88(data16 >> 8, data16); -} - -void Screen_K35_SPI::_writeData88(uint8_t dataHigh8, uint8_t dataLow8) -{ -#if (GPIO_MODE == GPIO_FAST) - - HWREG(LCD_DC_BASE + GPIO_O_DATA + (LCD_DC_PIN << 2)) = LCD_DC_PIN; // HIGH = data - HWREG(LCD_CS_BASE + GPIO_O_DATA + (LCD_CS_PIN << 2)) = 0; // CS LOW - - SPI.transfer(dataHigh8); - SPI.transfer(dataLow8); - - HWREG(LCD_CS_BASE + GPIO_O_DATA + (LCD_CS_PIN << 2)) = LCD_CS_PIN; // CS HIGH - -#else - - digitalWrite(_pinScreenDataCommand, HIGH); // HIGH = data - digitalWrite(_pinScreenChipSelect, LOW); // CS LOW - - SPI.transfer(dataHigh8); - SPI.transfer(dataLow8); - - digitalWrite(_pinScreenChipSelect, HIGH); // CS HIGH - -#endif -} - -//***************************************************************************** -// -// Writes a command to the SSD2119. This function implements the basic GPIO -// interface to the LCD display. -// -//***************************************************************************** -void Screen_K35_SPI::_writeCommand16(uint16_t command16) -{ -#if (GPIO_MODE == GPIO_FAST) - HWREG(LCD_CS_BASE + GPIO_O_DATA + (LCD_DC_PIN << 2)) = 0; // LOW = command - HWREG(LCD_CS_BASE + GPIO_O_DATA + (LCD_CS_PIN << 2)) = 0; // CS LOW - - SPI.transfer(command16 & 0xff); - - HWREG(LCD_CS_BASE + GPIO_O_DATA + (LCD_CS_PIN << 2)) = LCD_CS_PIN; // CS HIGH - HWREG(LCD_DC_BASE + GPIO_O_DATA + (LCD_DC_PIN << 2)) = LCD_DC_PIN; // HIGH = data - -#else - - digitalWrite(_pinScreenDataCommand, LOW); // LOW = command - digitalWrite(_pinScreenChipSelect, LOW); // CS LOW - - SPI.transfer(command16 & 0xff); - - digitalWrite(_pinScreenChipSelect, HIGH); // CS HIGH - digitalWrite(_pinScreenDataCommand, HIGH); // HIGH = data - -#endif -} - -void Screen_K35_SPI::_writeRegister(uint8_t command8, uint16_t data16) -{ - _writeCommand16(command8); - _writeData16(data16); -} - -void Screen_K35_SPI::_orientCoordinates(uint16_t &x1, uint16_t &y1) -{ - switch (_orientation) { - case 0: // ok - y1 = screenSizeY()-1 - y1; - _swap(x1, y1); - break; - case 1: // ok - x1 = screenSizeX() - x1 -1; - y1 = screenSizeY() - y1 -1; - break; - case 2: // ok - x1 = screenSizeX() - x1 -1; - _swap(x1, y1); - break; - case 3: // ok - break; - } -} - -void Screen_K35_SPI::_setPoint(uint16_t x1, uint16_t y1, uint16_t colour) // compulsory -{ - _setCursor(x1, y1); - _writeData16(colour); -} - -void Screen_K35_SPI::_setCursor(uint16_t x1, uint16_t y1) -{ - _orientCoordinates(x1, y1); - _writeRegister(SSD2119_X_RAM_ADDR_REG, x1); - _writeRegister(SSD2119_Y_RAM_ADDR_REG, y1); - - _writeCommand16(SSD2119_RAM_DATA_REG); -} - -void Screen_K35_SPI::_setWindow(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) -{ - _orientCoordinates(x1, y1); - _orientCoordinates(x2, y2); - - _writeRegister(SSD2119_X_RAM_ADDR_REG, x1); - _writeRegister(SSD2119_Y_RAM_ADDR_REG, y1); - - if (x1 > x2) _swap(x1, x2); - if (y1 > y2) _swap(y1, y2); - - _writeCommand16(SSD2119_V_RAM_POS_REG); - _writeData88(y2, y1); - _writeRegister(SSD2119_H_RAM_START_REG, x1); - _writeRegister(SSD2119_H_RAM_END_REG, x2); - - _writeCommand16(SSD2119_RAM_DATA_REG); -} - -void Screen_K35_SPI::_closeWindow() -{ - _setWindow(0, 0, screenSizeX()-1, screenSizeY()-1); -} - -inline uint16_t absDiff(uint16_t a, uint16_t b) { return (a > b) ? a-b : b-a; } - -void Screen_K35_SPI::_fastFill(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour) -{ - if (x1 > x2) _swap(x1, x2); - if (y1 > y2) _swap(y1, y2); - - uint8_t highColour = highByte(colour); - uint8_t lowColour = lowByte(colour); - - _setWindow(x1, y1, x2, y2); - for (uint32_t t=(uint32_t)(y2-y1+1)*(x2-x1+1); t>0; t--) { - _writeData88(highColour, lowColour); - } -} - -// Touch -void Screen_K35_SPI::_getRawTouch(uint16_t &x0, uint16_t &y0, uint16_t &z0) -{ - // --- 2015-08-04 _getRawTouch revised entirely - // Tested against MSP432, F5529 and LM4F/TM4C - // However, the calibrateTouch() may throw wrong results - // - int16_t a, b, c, d; - bool flag; - -#if defined(__MSP432P401R__) - pinMode(TOUCH_YP, OUTPUT); - pinMode(TOUCH_YN, OUTPUT); - pinMode(TOUCH_XP, OUTPUT); - pinMode(TOUCH_XN, OUTPUT); - digitalWrite(TOUCH_YP, LOW); - digitalWrite(TOUCH_YN, LOW); - digitalWrite(TOUCH_XP, LOW); - digitalWrite(TOUCH_XN, LOW); - - delayMicroseconds(1000); // delay(1); -#endif - - do { - flag = false; - - // Read x - // xp = +Vref - // xn = ground - // yp = measure - // yn = open -#ifndef ENERGIA - digitalWrite(TOUCH_YP, LOW); - digitalWrite(TOUCH_YN, LOW); -#endif - pinMode(TOUCH_YP, INPUT); - pinMode(TOUCH_YN, INPUT); - - pinMode(TOUCH_XP, OUTPUT); - pinMode(TOUCH_XN, OUTPUT); - digitalWrite(TOUCH_XP, HIGH); - digitalWrite(TOUCH_XN, LOW); - - delayMicroseconds(1000); // delay(1); - a = analogRead(TOUCH_YP); - delayMicroseconds(1000); // delay(1); - b = analogRead(TOUCH_YP); - - flag |= (absDiff(a, b) > 8); - x0 = ANALOG_RESOLUTION - a; - - // Read y - // xp = measure - // xn = open - // yp = +Vref - // yn = ground -#ifndef ENERGIA - digitalWrite(TOUCH_XP, LOW); - digitalWrite(TOUCH_XN, LOW); -#endif - pinMode(TOUCH_XP, INPUT); - pinMode(TOUCH_XN, INPUT); - - pinMode(TOUCH_YP, OUTPUT); - pinMode(TOUCH_YN, OUTPUT); - digitalWrite(TOUCH_YP, HIGH); - digitalWrite(TOUCH_YN, LOW); - - delayMicroseconds(1000); // delay(1); - c = analogRead(TOUCH_XP); - delayMicroseconds(1000); // delay(1); - d = analogRead(TOUCH_XP); - - flag |= (absDiff(c, d) > 8); - y0 = ANALOG_RESOLUTION - c; - - // Read z - // xp = ground - // xn = measure - // yp = measure - // yn = +Vref - pinMode(TOUCH_XP, OUTPUT); - pinMode(TOUCH_YN, OUTPUT); - digitalWrite(TOUCH_XP, LOW); - digitalWrite(TOUCH_YN, HIGH); - -#ifndef ENERGIA - digitalWrite(TOUCH_XN, LOW); - digitalWrite(TOUCH_YP, LOW); -#endif - pinMode(TOUCH_XN, INPUT); - pinMode(TOUCH_YP, INPUT); - - delayMicroseconds(1000); // delay(1); - a = analogRead(TOUCH_XN); - delayMicroseconds(1000); // delay(1); - c = analogRead(TOUCH_YP); - delayMicroseconds(1000); // delay(1); - b = analogRead(TOUCH_XN); - delayMicroseconds(1000); // delay(1); - d = analogRead(TOUCH_YP); - - flag |= (absDiff(a, b) > 8); - flag |= (absDiff(c, d) > 8); - // z0 = (ANALOG_RESOLUTION - (c-a)); - // Because a = TOUCH_XN non analog, remove a - z0 = ANALOG_RESOLUTION - c; - } - while (flag); -} - -void Screen_K35_SPI::_setBacklight(bool flag) -{ - if (flag) _writeRegister(SSD2119_SLEEP_MODE_REG, 0); - else _writeRegister(SSD2119_SLEEP_MODE_REG, 1); -} - -void Screen_K35_SPI::_setIntensity(uint8_t intensity) -{ - analogWrite(_pinScreenBackLight, intensity); -} - - -//#endif // end __LM4F120H5QR__ diff --git a/libraries/Kentec_35_SPI/Screen_K35_SPI.h b/libraries/Kentec_35_SPI/Screen_K35_SPI.h deleted file mode 100644 index 42bd313b..00000000 --- a/libraries/Kentec_35_SPI/Screen_K35_SPI.h +++ /dev/null @@ -1,134 +0,0 @@ -/// -/// @file Screen_K35_SPI.h - SPECIAL EDITION FOR ENERGIA -/// @brief Library header -/// @details SSD2119 screen library -/// @n -/// @n @b Project LCD_screen Library Suite -/// @n @a Developed with [embedXcode](http://embedXcode.weebly.com) -/// -/// @author Rei VILO -/// @author http://embedXcode.weebly.com -/// @date Aug 09, 2015 -/// @version 106 -/// -/// @copyright © Rei VILO, 2013-2016 - SPECIAL EDITION FOR ENERGIA -/// @copyright Attribution-NonCommercial-ShareAlike 4.0 Unported (CC BY-NC-SA 3.0) -/// -/// @n Unique license: Attribution-NonCommercial-ShareAlike 4.0 Unported (CC BY-NC-SA 3.0) -/// * For hobbyists and for personal usage -/// * For professionals or organisations or for commercial usage -/// -/// @see -/// * 3.5" inch TFT LCD module BoosterPack for LaunchPad Stellaris -/// @n http://www.kentecdisplay.com/uploads/soft/Products_spec/EB-LM4F120-L35_UserGuide_03.pdf -/// * Help from Stellaristi forum for SPI and touch -/// @n http://forum.stellarisiti.com/topic/666-solved-writing-and-reading-the-values-of-an-8-bit-port-with-energia/?p=3391 -/// @n http://forum.stellarisiti.com/topic/666-solved-writing-and-reading-the-values-of-an-8-bit-port-with-energia/?p=3395 -/// @n http://forum.stellarisiti.com/topic/682-solved-4-wire-resistive-touch-screen-reading-with-energia/?p=3502 -/// * Documentation from Getting Started with the Stellaris EK-LM4F120XL LaunchPad Workshop -/// @n http://processors.wiki.ti.com/index.php/Getting_Started_with_the_Stellaris_EK-LM4F120XL_LaunchPad_Workshop?DCMP=stellaris-launchpad&HQS=stellaris-launchpadtraining -/// * Fonts generated with MikroElektronika GLCD Font Creator 1.2.0.0 -/// @n http://www.mikroe.com -/// * LCD_screen Library Suite -/// @n http://embeddedcomputing.weebly.com/lcd_screen-library-suite.html -/// * Serial_LCD Library Suite -/// @n http://embeddedcomputing.weebly.com/serial-lcd.html -/// - - -// Core library - IDE-based -#if defined(MPIDE) // chipKIT specific -#include "WProgram.h" -#elif defined(DIGISPARK) // Digispark specific -#include "Arduino.h" -#elif defined(ENERGIA) // LaunchPad, FraunchPad and StellarPad specific -#include "Energia.h" -#elif defined(MAPLE_IDE) // Maple specific -#include "WProgram.h" -#elif defined(CORE_TEENSY) // Teensy specific -#include "WProgram.h" -#elif defined(WIRING) // Wiring specific -#include "Wiring.h" -#elif defined(ARDUINO) // Arduino 1.0x and 1.5x specific -#include "Arduino.h" -#endif // end IDE - -#ifndef Screen_K35_SPI_RELEASE -/// -/// @brief Library release number -/// -#define Screen_K35_SPI_RELEASE 104 - -#include "LCD_screen_font.h" -#include "SPI.h" - -//#if LCD_SCREEN_FONT_RELEASE < 117 -//#error Required LCD_SCREEN_FONT_RELEASE 117 -//#endif - -/// -/// @brief Class for 3.5" 480x320 screen -/// @details Screen controllers -/// * LCD: SSD2119, 8-bit 8080 parallel -/// * touch: direct ADC, no controller -/// @note The class configures the GPIOs and the SPI port. -/// -class Screen_K35_SPI : public LCD_screen_font { -public: - - /// - /// @brief Constructor with default pins - /// - /// @note Default pins for BoosterPack on LaunchPad - /// - Screen_K35_SPI(); - - /// - /// @brief Initialise - /// @details Open connections - /// - void begin(); - - /// - /// @brief Request information about the screen - /// @return string with hardware version - /// - String WhoAmI(); - -private: - // * Virtual =0 compulsory functions - // Orientation - void _setOrientation(uint8_t orientation); // compulsory - void _orientCoordinates(uint16_t &x1, uint16_t &y1); // compulsory - - // Position - void _setWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); // compulsory - void _closeWindow(); // compulsory - void _setPoint(uint16_t x1, uint16_t y1, uint16_t colour); // compulsory - void _fastFill(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t colour); // compulsory - - // Write and Read - void _writeData88(uint8_t dataHigh8, uint8_t dataLow8); // compulsory; - - // Touch - void _getRawTouch(uint16_t &x0, uint16_t &y0, uint16_t &z0); // compulsory - - // * Other functions specific to the screen - // Communication, write - void _writeRegister(uint8_t command8, uint16_t data16); - void _writeCommand16(uint16_t command16); - void _writeData16(uint16_t data16); - - void _setCursor(uint16_t x1, uint16_t y1); - - // Energy - void _setIntensity(uint8_t intensity); // compulsory - void _setBacklight(bool flag); // compulsory - - // Touch - void _getOneTouch(uint8_t command8, uint8_t &a, uint8_t &b); - - uint8_t _pinScreenDataCommand, _pinScreenReset, _pinScreenChipSelect, _pinScreenBackLight; -}; - -#endif diff --git a/libraries/Kentec_35_SPI/Terminal12e.h b/libraries/Kentec_35_SPI/Terminal12e.h deleted file mode 100644 index a3e8c145..00000000 --- a/libraries/Kentec_35_SPI/Terminal12e.h +++ /dev/null @@ -1,263 +0,0 @@ -/// -/// @file Terminal12e.h -/// @brief Extended font library -/// @detailsFont Terminal 12 x 16 -/// @n -/// @n -/// @n @a Developed with [embedXcode](http://embedXcode.weebly.com) -/// @n -/// @author Rei VILO -/// @author http://embeddedcomputing.weebly.com -/// @date May 26, 2012 -/// @version102 -/// @n -/// @copyright (c) Rei VILO, 2012-2016 - SPECIAL EDITION FOR ENERGIA -/// @copyright Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) -/// -/// @see Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 -/// @n MikroeElektronika 2011 http://www.mikroe.com -/// - -// -// Terminal12e.h -// Font library -// ---------------------------------- - - -#ifndef TERMINAL12E_FONT_RELEASE -#define TERMINAL12E_FONT_RELEASE 102 - - -#if defined(ENERGIA) -static const unsigned char Terminal12x16e[224][24] = -#elif defined(ARDUINO) || defined(MPIDE) || defined(WIRING) -static prog_uchar Terminal12x16e[224][24] PROGMEM = -#endif -{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0xFF, 0x33, 0xFF, 0x33, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x10, 0x1E, 0x90, 0x1F, 0xF0, 0x03, 0x7E, 0x02, 0x1E, 0x1E, 0x90, 0x1F, 0xF0, 0x03, 0x7E, 0x02, 0x1E, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x04, 0xFC, 0x0C, 0xCC, 0x0C, 0xFF, 0x3F, 0xFF, 0x3F, 0xCC, 0x0C, 0xCC, 0x0F, 0x88, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x38, 0x38, 0x38, 0x1C, 0x38, 0x0E, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x38, 0x70, 0x38, 0x38, 0x38, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xB8, 0x3F, 0xFC, 0x31, 0xC6, 0x21, 0xE2, 0x37, 0x3E, 0x1E, 0x1C, 0x1C, 0x00, 0x36, 0x00, 0x22, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x3F, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x03, 0xFC, 0x0F, 0xFE, 0x1F, 0x07, 0x38, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x01, 0x20, 0x07, 0x38, 0xFE, 0x1F, 0xFC, 0x0F, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x98, 0x0C, 0xB8, 0x0E, 0xE0, 0x03, 0xF8, 0x0F, 0xF8, 0x0F, 0xE0, 0x03, 0xB8, 0x0E, 0x98, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xF0, 0x0F, 0xF0, 0x0F, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x00, 0xF8, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, - 0x00, 0x00, 0xF8, 0x07, 0xFE, 0x1F, 0x06, 0x1E, 0x03, 0x33, 0x83, 0x31, 0xC3, 0x30, 0x63, 0x30, 0x33, 0x30, 0x1E, 0x18, 0xFE, 0x1F, 0xF8, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30, 0x0C, 0x30, 0x0E, 0x30, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x30, 0x1E, 0x38, 0x07, 0x3C, 0x03, 0x3E, 0x03, 0x37, 0x83, 0x33, 0xC3, 0x31, 0xE3, 0x30, 0x77, 0x30, 0x3E, 0x30, 0x1C, 0x30, - 0x00, 0x00, 0x0C, 0x0C, 0x0E, 0x1C, 0x07, 0x38, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xE7, 0x39, 0x7E, 0x1F, 0x3C, 0x0E, - 0x00, 0x00, 0xC0, 0x03, 0xE0, 0x03, 0x70, 0x03, 0x38, 0x03, 0x1C, 0x03, 0x0E, 0x03, 0x07, 0x03, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x03, 0x00, 0x03, - 0x00, 0x00, 0x3F, 0x0C, 0x7F, 0x1C, 0x63, 0x38, 0x63, 0x30, 0x63, 0x30, 0x63, 0x30, 0x63, 0x30, 0x63, 0x30, 0xE3, 0x38, 0xC3, 0x1F, 0x83, 0x0F, - 0x00, 0x00, 0xC0, 0x0F, 0xF0, 0x1F, 0xF8, 0x39, 0xDC, 0x30, 0xCE, 0x30, 0xC7, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x39, 0x80, 0x1F, 0x00, 0x0F, - 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x30, 0x03, 0x3C, 0x03, 0x0F, 0xC3, 0x03, 0xF3, 0x00, 0x3F, 0x00, 0x0F, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x0F, 0xBC, 0x1F, 0xFE, 0x39, 0xE7, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xE7, 0x30, 0xFE, 0x39, 0xBC, 0x1F, 0x00, 0x0F, - 0x00, 0x00, 0x3C, 0x00, 0x7E, 0x00, 0xE7, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x38, 0xC3, 0x1C, 0xC3, 0x0E, 0xE7, 0x07, 0xFE, 0x03, 0xFC, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1C, 0x70, 0x1C, 0x70, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x9C, 0x70, 0xFC, 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xE0, 0x01, 0xF0, 0x03, 0x38, 0x07, 0x1C, 0x0E, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x07, 0x38, 0x0E, 0x1C, 0x1C, 0x0E, 0x38, 0x07, 0xF0, 0x03, 0xE0, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x00, 0x1E, 0x00, 0x07, 0x00, 0x03, 0x00, 0x83, 0x37, 0xC3, 0x37, 0xE3, 0x00, 0x77, 0x00, 0x3E, 0x00, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x0F, 0xFE, 0x1F, 0x07, 0x18, 0xF3, 0x33, 0xFB, 0x37, 0x1B, 0x36, 0xFB, 0x37, 0xFB, 0x37, 0x07, 0x36, 0xFE, 0x03, 0xF8, 0x01, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3F, 0xE0, 0x07, 0xFC, 0x06, 0x1F, 0x06, 0x1F, 0x06, 0xFC, 0x06, 0xE0, 0x07, 0x00, 0x3F, 0x00, 0x38, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xE7, 0x30, 0xFE, 0x39, 0xBC, 0x1F, 0x00, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xFC, 0x0F, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x07, 0x38, 0x0E, 0x1C, 0x0C, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x07, 0x38, 0x0E, 0x1C, 0xFC, 0x0F, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0x03, 0x30, 0x03, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC3, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xFC, 0x0F, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC7, 0x3F, 0xC6, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x03, 0x30, 0xFF, 0x3F, 0xFF, 0x3F, 0x03, 0x30, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x38, 0xFF, 0x1F, 0xFF, 0x07, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC0, 0x00, 0xE0, 0x01, 0xF0, 0x03, 0x38, 0x07, 0x1C, 0x0E, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x1E, 0x00, 0x78, 0x00, 0xE0, 0x01, 0xE0, 0x01, 0x78, 0x00, 0x1E, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x0E, 0x00, 0x38, 0x00, 0xF0, 0x00, 0xC0, 0x03, 0x00, 0x07, 0x00, 0x1C, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xFC, 0x0F, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0x30, 0x03, 0x30, 0x07, 0x38, 0x0E, 0x1C, 0xFC, 0x0F, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x83, 0x01, 0x83, 0x01, 0x83, 0x01, 0x83, 0x01, 0x83, 0x01, 0xC7, 0x01, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xFC, 0x0F, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0x30, 0x03, 0x36, 0x07, 0x3E, 0x0E, 0x1C, 0xFC, 0x3F, 0xF0, 0x33, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x83, 0x01, 0x83, 0x01, 0x83, 0x03, 0x83, 0x07, 0x83, 0x0F, 0xC7, 0x1D, 0xFE, 0x38, 0x7C, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x0C, 0x7E, 0x1C, 0xE7, 0x38, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC3, 0x30, 0xC7, 0x39, 0x8E, 0x1F, 0x0C, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x07, 0xFF, 0x1F, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x38, 0xFF, 0x1F, 0xFF, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x07, 0x00, 0x3F, 0x00, 0xF8, 0x01, 0xC0, 0x0F, 0x00, 0x3E, 0x00, 0x3E, 0xC0, 0x0F, 0xF8, 0x01, 0x3F, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x1C, 0x00, 0x06, 0x80, 0x03, 0x80, 0x03, 0x00, 0x06, 0x00, 0x1C, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x30, 0x0F, 0x3C, 0x1C, 0x0E, 0x30, 0x03, 0xE0, 0x01, 0xE0, 0x01, 0x30, 0x03, 0x1C, 0x0E, 0x0F, 0x3C, 0x03, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0xF0, 0x00, 0xC0, 0x3F, 0xC0, 0x3F, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x30, 0x03, 0x3C, 0x03, 0x3E, 0x03, 0x33, 0xC3, 0x31, 0xE3, 0x30, 0x33, 0x30, 0x1F, 0x30, 0x0F, 0x30, 0x03, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xC0, 0x01, 0x80, 0x03, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x38, 0x00, 0x70, 0x00, 0x60, 0x00, - 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0xE0, 0x3F, 0xC0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC0, 0x30, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0xE0, 0x38, 0xC0, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0xC0, 0x18, 0x80, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0xE0, 0x30, 0xC0, 0x30, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x3B, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0xC0, 0x13, 0x80, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xFC, 0x3F, 0xFE, 0x3F, 0xC7, 0x00, 0xC3, 0x00, 0xC3, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x03, 0xC0, 0xC7, 0xE0, 0xCE, 0x60, 0xCC, 0x60, 0xCC, 0x60, 0xCC, 0x60, 0xCC, 0x60, 0xE6, 0xE0, 0x7F, 0xE0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x3F, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0x30, 0xEC, 0x3F, 0xEC, 0x3F, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x60, 0xC0, 0xEC, 0xFF, 0xEC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x03, 0x80, 0x07, 0xC0, 0x0F, 0xE0, 0x1C, 0x60, 0x38, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x30, 0xFF, 0x3F, 0xFF, 0x3F, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x3F, 0xC0, 0x3F, 0xE0, 0x00, 0xE0, 0x00, 0xC0, 0x3F, 0xC0, 0x3F, 0xE0, 0x00, 0xE0, 0x00, 0xC0, 0x3F, 0x80, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0xE0, 0x3F, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x3F, 0x80, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0xE0, 0x38, 0xC0, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0xFF, 0xE0, 0xFF, 0x60, 0x0C, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0xE0, 0x1C, 0xC0, 0x0F, 0x80, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x07, 0xC0, 0x0F, 0xE0, 0x1C, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x18, 0x60, 0x0C, 0xE0, 0xFF, 0xE0, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0xE0, 0x3F, 0xC0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0xE0, 0x00, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0x11, 0xE0, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0x60, 0x3F, 0x40, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0xFE, 0x1F, 0xFE, 0x3F, 0x60, 0x30, 0x60, 0x30, 0x60, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xE0, 0x1F, 0x00, 0x38, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x18, 0xE0, 0x3F, 0xE0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x00, 0xE0, 0x01, 0x80, 0x07, 0x00, 0x1E, 0x00, 0x38, 0x00, 0x38, 0x00, 0x1E, 0x80, 0x07, 0xE0, 0x01, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x07, 0xE0, 0x1F, 0x00, 0x38, 0x00, 0x1C, 0xE0, 0x0F, 0xE0, 0x0F, 0x00, 0x1C, 0x00, 0x38, 0xE0, 0x1F, 0xE0, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x30, 0xE0, 0x38, 0xC0, 0x1D, 0x80, 0x0F, 0x00, 0x07, 0x80, 0x0F, 0xC0, 0x1D, 0xE0, 0x38, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xE0, 0x81, 0x80, 0xE7, 0x00, 0x7E, 0x00, 0x1E, 0x80, 0x07, 0xE0, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x30, 0x60, 0x38, 0x60, 0x3C, 0x60, 0x36, 0x60, 0x33, 0xE0, 0x31, 0xE0, 0x30, 0x60, 0x30, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x01, 0xFC, 0x1F, 0x7E, 0x3F, 0x07, 0x70, 0x03, 0x60, 0x03, 0x60, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x3F, 0xBF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x03, 0x60, 0x03, 0x60, 0x07, 0x70, 0x7E, 0x3F, 0xFC, 0x1F, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x10, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0F, 0x80, 0x0F, 0xC0, 0x0C, 0x60, 0x0C, 0x30, 0x0C, 0x30, 0x0C, 0x60, 0x0C, 0xC0, 0x0C, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x01, 0xF0, 0x03, 0xFC, 0x0F, 0x2E, 0x1D, 0x27, 0x39, 0x23, 0x31, 0x23, 0x30, 0x07, 0x3C, 0x06, 0x1C, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x40, 0x30, 0x60, 0x3E, 0xE0, 0x1F, 0xFC, 0x03, 0x7E, 0x00, 0x66, 0x00, 0x26, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, - 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0xFE, 0x3F, 0xFE, 0x3F, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0xFE, 0x3F, 0xFE, 0x3F, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x38, 0x38, 0x38, 0x1C, 0x38, 0x0E, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x39, 0xE0, 0x38, 0x70, 0x00, 0x38, 0x38, 0x18, 0x38, - 0x00, 0x00, 0x70, 0x0C, 0xF8, 0x1C, 0xDC, 0x39, 0x8D, 0x31, 0x8F, 0x31, 0x8E, 0x31, 0x8F, 0x31, 0x9D, 0x3B, 0x38, 0x1F, 0x30, 0x0E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x01, 0x60, 0x03, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xFC, 0x0F, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0x30, 0xFF, 0x3F, 0xFF, 0x3F, 0xC3, 0x30, 0xC3, 0x30, 0x03, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x30, 0x18, 0x38, 0x19, 0x3C, 0x1B, 0x36, 0x1E, 0x33, 0x9E, 0x31, 0xDB, 0x30, 0x79, 0x30, 0x38, 0x30, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x7E, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x7E, 0x00, 0x72, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x7E, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x03, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3E, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3E, 0x00, 0x04, 0x00, 0x08, 0x00, 0x04, 0x00, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0x11, 0xE0, 0x33, 0x60, 0x33, 0x64, 0x33, 0x68, 0x33, 0x64, 0x33, 0x60, 0x3F, 0x40, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x60, 0x30, 0xE0, 0x38, 0xC0, 0x1F, 0x60, 0x33, 0x60, 0x33, 0x60, 0x33, 0xC0, 0x13, 0x80, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x30, 0x60, 0x38, 0x60, 0x3C, 0x64, 0x36, 0x68, 0x33, 0xE4, 0x31, 0xE0, 0x30, 0x60, 0x30, 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x33, 0x00, 0x63, 0x00, 0xC0, 0x3F, 0xC0, 0x3F, 0x63, 0x00, 0x33, 0x00, 0x18, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xCC, 0xFF, 0xCC, 0xFF, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0x03, 0xF0, 0x07, 0x38, 0x0E, 0xFE, 0x3F, 0xFE, 0x3F, 0x18, 0x0C, 0x38, 0x0E, 0x30, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0xC0, 0x1C, 0xF8, 0x1F, 0xFC, 0x0F, 0xCE, 0x0C, 0xC6, 0x0C, 0xC6, 0x1C, 0x4C, 0x18, 0x08, 0x08, 0x00, 0x00, - 0x00, 0x00, 0xF6, 0x1B, 0xFE, 0x1F, 0x18, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x06, 0xFE, 0x1F, 0xF6, 0x1B, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x0F, 0x0A, 0x3C, 0x0A, 0xF0, 0x0A, 0xC0, 0x3F, 0xC0, 0x3F, 0xF0, 0x0A, 0x3C, 0x0A, 0x0F, 0x0A, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xDC, 0x08, 0xFE, 0x19, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11, 0xE6, 0x1F, 0xC4, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x07, 0xF8, 0x0F, 0x1C, 0x1C, 0xCC, 0x19, 0xEC, 0x1B, 0x2C, 0x1A, 0x6C, 0x1B, 0x4C, 0x19, 0x1C, 0x1C, 0xF8, 0x0F, 0xF0, 0x07, - 0x00, 0x00, 0x70, 0x00, 0xFA, 0x06, 0xDB, 0x06, 0xDB, 0x06, 0xDB, 0x06, 0xDB, 0x06, 0xDB, 0x06, 0xDB, 0x06, 0xFF, 0x06, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0xC0, 0x01, 0x60, 0x03, 0x20, 0x02, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x01, 0x60, 0x03, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x07, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x07, 0xF8, 0x0F, 0x1C, 0x1C, 0xEC, 0x1B, 0xEC, 0x1B, 0xAC, 0x18, 0xEC, 0x1B, 0x4C, 0x1B, 0x1C, 0x1C, 0xF8, 0x0F, 0xF0, 0x07, - 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x3F, 0x00, 0x33, 0x00, 0x33, 0x00, 0x3F, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x18, 0xC0, 0x18, 0xF0, 0x1B, 0xF0, 0x1B, 0xC0, 0x18, 0xC0, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1D, 0x00, 0x15, 0x00, 0x17, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1F, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xFF, 0xF0, 0xFF, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0E, 0xF0, 0x07, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x7C, 0x00, 0xC6, 0x00, 0x82, 0x00, 0xFE, 0x3F, 0xFE, 0x3F, 0x02, 0x00, 0xFE, 0x3F, 0xFE, 0x3F, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0x80, 0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x11, 0x00, 0x11, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x02, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x20, 0x02, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x48, 0x00, 0x7C, 0x04, 0x7C, 0x06, 0x40, 0x03, 0x80, 0x01, 0xC0, 0x06, 0x60, 0x07, 0x30, 0x04, 0x10, 0x1F, 0x00, 0x1F, 0x00, 0x00, - 0x00, 0x00, 0x48, 0x00, 0x7C, 0x04, 0x7C, 0x06, 0x40, 0x03, 0x80, 0x01, 0xC0, 0x00, 0x60, 0x19, 0x30, 0x1D, 0x10, 0x17, 0x00, 0x12, 0x00, 0x00, - 0x00, 0x00, 0x44, 0x00, 0x54, 0x04, 0x7C, 0x06, 0x28, 0x03, 0x80, 0x01, 0xC0, 0x06, 0x60, 0x07, 0x30, 0x04, 0x10, 0x1F, 0x00, 0x1F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x1F, 0x80, 0x3B, 0xC0, 0x31, 0xFB, 0x30, 0x7B, 0x30, 0x00, 0x30, 0x00, 0x38, 0x00, 0x1E, 0x00, 0x0E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3E, 0x80, 0x0F, 0xE1, 0x0D, 0x73, 0x0C, 0x76, 0x0C, 0xE4, 0x0D, 0x80, 0x0F, 0x00, 0x3E, 0x00, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3E, 0x80, 0x0F, 0xE4, 0x0D, 0x76, 0x0C, 0x73, 0x0C, 0xE1, 0x0D, 0x80, 0x0F, 0x00, 0x3E, 0x00, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3E, 0x84, 0x0F, 0xE6, 0x0D, 0x73, 0x0C, 0x73, 0x0C, 0xE6, 0x0D, 0x84, 0x0F, 0x00, 0x3E, 0x00, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3E, 0x82, 0x0F, 0xE3, 0x0D, 0x79, 0x0C, 0x7B, 0x0C, 0xE2, 0x0D, 0x83, 0x0F, 0x01, 0x3E, 0x00, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3E, 0x83, 0x0F, 0xE3, 0x0D, 0x78, 0x0C, 0x78, 0x0C, 0xE3, 0x0D, 0x83, 0x0F, 0x00, 0x3E, 0x00, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3E, 0x80, 0x0F, 0xE2, 0x0D, 0x75, 0x0C, 0x75, 0x0C, 0xE2, 0x0D, 0x80, 0x0F, 0x00, 0x3E, 0x00, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x00, 0x3F, 0xE0, 0x07, 0xFC, 0x06, 0x1F, 0x06, 0xFF, 0x3F, 0xFF, 0x3F, 0xC3, 0x30, 0xC3, 0x30, 0x03, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xFC, 0x0F, 0x0E, 0x1C, 0x07, 0x38, 0x03, 0xB0, 0x03, 0xF0, 0x03, 0xF0, 0x07, 0x38, 0x0E, 0x1C, 0x0C, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x3F, 0xF8, 0x3F, 0x99, 0x31, 0x9B, 0x31, 0x9E, 0x31, 0x9C, 0x31, 0x98, 0x31, 0x98, 0x31, 0x18, 0x30, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x3F, 0xF8, 0x3F, 0x98, 0x31, 0x98, 0x31, 0x9C, 0x31, 0x9E, 0x31, 0x9B, 0x31, 0x99, 0x31, 0x18, 0x30, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x3F, 0xF8, 0x3F, 0x9C, 0x31, 0x9E, 0x31, 0x9B, 0x31, 0x9B, 0x31, 0x9E, 0x31, 0x9C, 0x31, 0x18, 0x30, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x3F, 0xF8, 0x3F, 0x9B, 0x31, 0x9B, 0x31, 0x98, 0x31, 0x98, 0x31, 0x9B, 0x31, 0x9B, 0x31, 0x18, 0x30, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x30, 0x1B, 0x30, 0xFE, 0x3F, 0xFC, 0x3F, 0x18, 0x30, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x18, 0x30, 0xFC, 0x3F, 0xFE, 0x3F, 0x1B, 0x30, 0x19, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x30, 0x1E, 0x30, 0xFB, 0x3F, 0xFB, 0x3F, 0x1E, 0x30, 0x1C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x30, 0x1B, 0x30, 0xF8, 0x3F, 0xF8, 0x3F, 0x1B, 0x30, 0x1B, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0x00, 0xFF, 0x3F, 0xFF, 0x3F, 0xC3, 0x30, 0x03, 0x30, 0x03, 0x30, 0x07, 0x38, 0x0E, 0x1C, 0xFC, 0x0F, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x3F, 0xF8, 0x3F, 0x72, 0x00, 0xE3, 0x00, 0xC1, 0x01, 0x83, 0x03, 0x02, 0x07, 0x03, 0x0E, 0xF9, 0x3F, 0xF8, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xF0, 0x1F, 0x39, 0x38, 0x1B, 0x30, 0x1E, 0x30, 0x1C, 0x30, 0x18, 0x30, 0x38, 0x38, 0xF0, 0x1F, 0xE0, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xF0, 0x1F, 0x38, 0x38, 0x18, 0x30, 0x1C, 0x30, 0x1E, 0x30, 0x1B, 0x30, 0x39, 0x38, 0xF0, 0x1F, 0xE0, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xF0, 0x1F, 0x3C, 0x38, 0x1E, 0x30, 0x1B, 0x30, 0x1B, 0x30, 0x1E, 0x30, 0x3C, 0x38, 0xF0, 0x1F, 0xE0, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xF0, 0x1F, 0x3A, 0x38, 0x1B, 0x30, 0x19, 0x30, 0x1B, 0x30, 0x1A, 0x30, 0x3B, 0x38, 0xF1, 0x1F, 0xE0, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xF0, 0x1F, 0x3B, 0x38, 0x1B, 0x30, 0x18, 0x30, 0x18, 0x30, 0x1B, 0x30, 0x3B, 0x38, 0xF0, 0x1F, 0xE0, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0xC0, 0x18, 0x80, 0x0D, 0x00, 0x07, 0x00, 0x07, 0x80, 0x0D, 0xC0, 0x18, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x2F, 0xF8, 0x3F, 0x1C, 0x18, 0x0C, 0x3E, 0x8C, 0x37, 0xEC, 0x31, 0x7C, 0x30, 0x18, 0x38, 0xFC, 0x1F, 0xF4, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x07, 0xF8, 0x1F, 0x01, 0x38, 0x03, 0x30, 0x06, 0x30, 0x04, 0x30, 0x00, 0x30, 0x00, 0x38, 0xF8, 0x1F, 0xF8, 0x07, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x07, 0xF8, 0x1F, 0x00, 0x38, 0x00, 0x30, 0x04, 0x30, 0x06, 0x30, 0x03, 0x30, 0x01, 0x38, 0xF8, 0x1F, 0xF8, 0x07, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x07, 0xF8, 0x1F, 0x04, 0x38, 0x06, 0x30, 0x03, 0x30, 0x03, 0x30, 0x06, 0x30, 0x04, 0x38, 0xF8, 0x1F, 0xF8, 0x07, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x07, 0xF8, 0x1F, 0x03, 0x38, 0x03, 0x30, 0x00, 0x30, 0x00, 0x30, 0x03, 0x30, 0x03, 0x38, 0xF8, 0x1F, 0xF8, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC4, 0x3F, 0xC6, 0x3F, 0x63, 0x00, 0x31, 0x00, 0x18, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0C, 0x30, 0xFC, 0x3F, 0xFC, 0x3F, 0x6C, 0x36, 0x60, 0x06, 0x60, 0x06, 0xE0, 0x07, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xE0, 0xFF, 0x30, 0x21, 0x10, 0x21, 0x10, 0x21, 0x30, 0x33, 0xE0, 0x3F, 0xC0, 0x1E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x60, 0x33, 0x62, 0x33, 0x66, 0x33, 0x6C, 0x33, 0x68, 0x33, 0x60, 0x33, 0xE0, 0x3F, 0xC0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x60, 0x33, 0x68, 0x33, 0x6C, 0x33, 0x66, 0x33, 0x62, 0x33, 0x60, 0x33, 0xE0, 0x3F, 0xC0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x68, 0x33, 0x6C, 0x33, 0x66, 0x33, 0x66, 0x33, 0x6C, 0x33, 0x68, 0x33, 0xE0, 0x3F, 0xC0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x68, 0x33, 0x6C, 0x33, 0x64, 0x33, 0x6C, 0x33, 0x68, 0x33, 0x6C, 0x33, 0xE4, 0x3F, 0xC0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x6C, 0x33, 0x6C, 0x33, 0x60, 0x33, 0x60, 0x33, 0x6C, 0x33, 0x6C, 0x33, 0xE0, 0x3F, 0xC0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x60, 0x33, 0x60, 0x33, 0x6E, 0x33, 0x6A, 0x33, 0x6E, 0x33, 0x60, 0x33, 0xE0, 0x3F, 0xC0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x40, 0x3E, 0x60, 0x33, 0x60, 0x33, 0xE0, 0x3F, 0xC0, 0x1F, 0x60, 0x33, 0x60, 0x33, 0xE0, 0x31, 0xC0, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x60, 0x30, 0x60, 0xB0, 0x60, 0xF0, 0x60, 0xF0, 0x60, 0x30, 0xC0, 0x18, 0x80, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x3B, 0x62, 0x33, 0x66, 0x33, 0x6C, 0x33, 0x68, 0x33, 0x60, 0x33, 0xC0, 0x13, 0x80, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x3B, 0x68, 0x33, 0x6C, 0x33, 0x66, 0x33, 0x62, 0x33, 0x60, 0x33, 0xC0, 0x13, 0x80, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE8, 0x3B, 0x6C, 0x33, 0x66, 0x33, 0x66, 0x33, 0x6C, 0x33, 0x68, 0x33, 0xC0, 0x13, 0x80, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE6, 0x3B, 0x66, 0x33, 0x60, 0x33, 0x60, 0x33, 0x66, 0x33, 0x66, 0x33, 0xC0, 0x13, 0x80, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x62, 0x30, 0xE6, 0x3F, 0xEC, 0x3F, 0x08, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x68, 0x30, 0xEC, 0x3F, 0xE6, 0x3F, 0x02, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x30, 0x6C, 0x30, 0xE6, 0x3F, 0xE6, 0x3F, 0x0C, 0x30, 0x08, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x30, 0x66, 0x30, 0xE0, 0x3F, 0xE0, 0x3F, 0x06, 0x30, 0x06, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x6A, 0x30, 0x6E, 0x30, 0x64, 0x30, 0x6E, 0x30, 0xFA, 0x38, 0xD0, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0xE8, 0x3F, 0x6C, 0x00, 0x64, 0x00, 0x6C, 0x00, 0x68, 0x00, 0xEC, 0x00, 0xC4, 0x3F, 0x80, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x62, 0x30, 0x66, 0x30, 0x6C, 0x30, 0x68, 0x30, 0xE0, 0x38, 0xC0, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE0, 0x38, 0x68, 0x30, 0x6C, 0x30, 0x66, 0x30, 0x62, 0x30, 0xE0, 0x38, 0xC0, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE8, 0x38, 0x6C, 0x30, 0x66, 0x30, 0x66, 0x30, 0x6C, 0x30, 0xE8, 0x38, 0xC0, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE8, 0x38, 0x6C, 0x30, 0x64, 0x30, 0x6C, 0x30, 0x68, 0x30, 0xEC, 0x38, 0xC4, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x0F, 0xC0, 0x1F, 0xE6, 0x38, 0x66, 0x30, 0x60, 0x30, 0x60, 0x30, 0x66, 0x30, 0xE6, 0x38, 0xC0, 0x1F, 0x80, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xB0, 0x0D, 0xB0, 0x0D, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x2F, 0xC0, 0x1F, 0xE0, 0x38, 0x60, 0x34, 0x60, 0x32, 0x60, 0x31, 0xE0, 0x38, 0xC0, 0x1F, 0xA0, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xE0, 0x1F, 0x00, 0x38, 0x02, 0x30, 0x06, 0x30, 0x0C, 0x30, 0x08, 0x30, 0x00, 0x18, 0xE0, 0x3F, 0xE0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xE0, 0x1F, 0x00, 0x38, 0x08, 0x30, 0x0C, 0x30, 0x06, 0x30, 0x02, 0x30, 0x00, 0x18, 0xE0, 0x3F, 0xE0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xE0, 0x1F, 0x08, 0x38, 0x0C, 0x30, 0x06, 0x30, 0x06, 0x30, 0x0C, 0x30, 0x08, 0x18, 0xE0, 0x3F, 0xE0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x0F, 0xE0, 0x1F, 0x0C, 0x38, 0x0C, 0x30, 0x00, 0x30, 0x00, 0x30, 0x0C, 0x30, 0x0C, 0x18, 0xE0, 0x3F, 0xE0, 0x3F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xE0, 0x81, 0x80, 0xE7, 0x10, 0x7E, 0x18, 0x1E, 0x8C, 0x07, 0xE4, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0xFF, 0x3F, 0xFF, 0x3F, 0x1B, 0x36, 0x18, 0x06, 0x18, 0x06, 0xF8, 0x07, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xEC, 0x81, 0x8C, 0xE7, 0x00, 0x7E, 0x00, 0x1E, 0x8C, 0x07, 0xEC, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -#endif diff --git a/libraries/Kentec_35_SPI/Terminal6e.h b/libraries/Kentec_35_SPI/Terminal6e.h deleted file mode 100644 index 54a1c947..00000000 --- a/libraries/Kentec_35_SPI/Terminal6e.h +++ /dev/null @@ -1,264 +0,0 @@ -/// -/// @file Terminal6e.h -/// @brief Extended font library -/// @detailsFont Terminal 6 x 8 -/// @n -/// @n -/// @n @a Developed with [embedXcode](http://embedXcode.weebly.com) -/// @n -/// @author Rei VILO -/// @author http://embeddedcomputing.weebly.com -/// @date May 26, 2012 -/// @version102 -/// @n -/// @copyright (c) Rei VILO, 2012-2016 - SPECIAL EDITION FOR ENERGIA -/// @copyright Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) -/// -/// @see Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 -/// @n MikroeElektronika 2011 http://www.mikroe.com -/// - -// -// Terminal6e.h -// Font library -// ---------------------------------- - - -#ifndef TERMINAL6E_FONT_RELEASE -#define TERMINAL6E_FONT_RELEASE 102 - - -#if defined(ENERGIA) -static const unsigned char Terminal6x8e[224][6] = -#elif defined(ARDUINO) || defined(MPIDE) || defined(WIRING) -static prog_uchar Terminal6x8e[224][6] PROGMEM = -#endif -{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x5F, 0x06, 0x00, - 0x00, 0x07, 0x03, 0x00, 0x07, 0x03, - 0x00, 0x24, 0x7E, 0x24, 0x7E, 0x24, - 0x00, 0x24, 0x2B, 0x6A, 0x12, 0x00, - 0x00, 0x63, 0x13, 0x08, 0x64, 0x63, - 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, - 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x3E, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x41, 0x3E, 0x00, 0x00, - 0x00, 0x08, 0x3E, 0x1C, 0x3E, 0x08, - 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, - 0x00, 0x00, 0xE0, 0x60, 0x00, 0x00, - 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, - 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, - 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, - 0x00, 0x62, 0x51, 0x49, 0x49, 0x46, - 0x00, 0x22, 0x49, 0x49, 0x49, 0x36, - 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, - 0x00, 0x2F, 0x49, 0x49, 0x49, 0x31, - 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30, - 0x00, 0x01, 0x71, 0x09, 0x05, 0x03, - 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, - 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E, - 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x00, - 0x00, 0x00, 0xEC, 0x6C, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x00, 0x24, 0x24, 0x24, 0x24, 0x24, - 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, - 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, - 0x00, 0x3E, 0x41, 0x5D, 0x55, 0x1E, - 0x00, 0x7E, 0x11, 0x11, 0x11, 0x7E, - 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, - 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, - 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, - 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, - 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A, - 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, - 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, - 0x00, 0x30, 0x40, 0x40, 0x40, 0x3F, - 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, - 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, - 0x00, 0x7F, 0x02, 0x04, 0x02, 0x7F, - 0x00, 0x7F, 0x02, 0x04, 0x08, 0x7F, - 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, - 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, - 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, - 0x00, 0x7F, 0x09, 0x09, 0x19, 0x66, - 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, - 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, - 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, - 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, - 0x00, 0x3F, 0x40, 0x3C, 0x40, 0x3F, - 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, - 0x00, 0x07, 0x08, 0x70, 0x08, 0x07, - 0x00, 0x71, 0x49, 0x45, 0x43, 0x00, - 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00, - 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, - 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00, - 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, - 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, - 0x00, 0x20, 0x54, 0x54, 0x54, 0x78, - 0x00, 0x7F, 0x44, 0x44, 0x44, 0x38, - 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, - 0x00, 0x38, 0x44, 0x44, 0x44, 0x7F, - 0x00, 0x38, 0x54, 0x54, 0x54, 0x08, - 0x00, 0x08, 0x7E, 0x09, 0x09, 0x00, - 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C, - 0x00, 0x7F, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x00, 0x00, 0x7D, 0x40, 0x00, - 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00, - 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0x40, 0x00, - 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78, - 0x00, 0x7C, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, - 0x00, 0xFC, 0x44, 0x44, 0x44, 0x38, - 0x00, 0x38, 0x44, 0x44, 0x44, 0xFC, - 0x00, 0x44, 0x78, 0x44, 0x04, 0x08, - 0x00, 0x08, 0x54, 0x54, 0x54, 0x20, - 0x00, 0x04, 0x3E, 0x44, 0x24, 0x00, - 0x00, 0x3C, 0x40, 0x20, 0x7C, 0x00, - 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, - 0x00, 0x3C, 0x60, 0x30, 0x60, 0x3C, - 0x00, 0x6C, 0x10, 0x10, 0x6C, 0x00, - 0x00, 0x9C, 0xA0, 0x60, 0x3C, 0x00, - 0x00, 0x64, 0x54, 0x54, 0x4C, 0x00, - 0x00, 0x08, 0x3E, 0x41, 0x41, 0x00, - 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, - 0x00, 0x00, 0x41, 0x41, 0x3E, 0x08, - 0x00, 0x02, 0x01, 0x02, 0x01, 0x00, - 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, - 0x00, 0x14, 0x3E, 0x55, 0x41, 0x21, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x60, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x0E, 0x05, 0x00, - 0x00, 0xE0, 0x60, 0x00, 0xE0, 0x60, - 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, - 0x00, 0x00, 0x02, 0x3F, 0x02, 0x00, - 0x00, 0x00, 0x12, 0x3F, 0x12, 0x00, - 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, - 0x00, 0x63, 0x13, 0x48, 0x04, 0x43, - 0x00, 0x4C, 0x55, 0x56, 0x55, 0x64, - 0x00, 0x00, 0x08, 0x14, 0x00, 0x00, - 0x00, 0x3E, 0x41, 0x7F, 0x49, 0x41, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x64, 0x55, 0x56, 0x4D, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x07, 0x06, 0x00, 0x07, 0x06, - 0x00, 0x03, 0x07, 0x00, 0x03, 0x07, - 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, - 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x10, 0x08, 0x10, 0x08, 0x00, - 0x01, 0x07, 0x01, 0x07, 0x01, 0x07, - 0x00, 0x08, 0x55, 0x56, 0x55, 0x20, - 0x00, 0x00, 0x14, 0x08, 0x00, 0x00, - 0x00, 0x38, 0x44, 0x38, 0x54, 0x48, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x64, 0x55, 0x56, 0x4D, 0x00, - 0x00, 0x04, 0x09, 0x70, 0x09, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0xFA, 0x60, 0x00, - 0x00, 0x18, 0x24, 0x66, 0x24, 0x00, - 0x00, 0x48, 0x3E, 0x49, 0x41, 0x22, - 0x00, 0x5D, 0x22, 0x22, 0x22, 0x5D, - 0x00, 0x29, 0x2A, 0x7C, 0x2A, 0x29, - 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, - 0x00, 0x26, 0x4D, 0x55, 0x59, 0x32, - 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, - 0x3E, 0x41, 0x5D, 0x55, 0x41, 0x3E, - 0x00, 0x08, 0x55, 0x55, 0x55, 0x5E, - 0x00, 0x08, 0x14, 0x00, 0x08, 0x14, - 0x00, 0x04, 0x04, 0x04, 0x04, 0x1C, - 0x00, 0x00, 0x30, 0x7D, 0x30, 0x00, - 0x3E, 0x41, 0x5D, 0x4B, 0x55, 0x3E, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x4E, 0x51, 0x51, 0x4E, 0x00, - 0x00, 0x00, 0x24, 0x2E, 0x24, 0x00, - 0x00, 0x09, 0x0D, 0x0A, 0x00, 0x00, - 0x00, 0x09, 0x0F, 0x05, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, - 0x00, 0xFC, 0x20, 0x20, 0x1C, 0x00, - 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xC0, 0x40, 0x00, - 0x00, 0x02, 0x0F, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x09, 0x09, 0x06, 0x00, - 0x00, 0x14, 0x08, 0x00, 0x14, 0x08, - 0x00, 0x17, 0x08, 0x34, 0x2A, 0x78, - 0x00, 0x17, 0x08, 0x4C, 0x6A, 0x50, - 0x05, 0x17, 0x0A, 0x34, 0x2A, 0x79, - 0x00, 0x30, 0x48, 0x4D, 0x40, 0x20, - 0x00, 0x70, 0x29, 0x25, 0x28, 0x70, - 0x00, 0x70, 0x28, 0x25, 0x29, 0x70, - 0x00, 0x70, 0x29, 0x25, 0x29, 0x70, - 0x00, 0x70, 0x2A, 0x25, 0x2A, 0x71, - 0x00, 0x70, 0x29, 0x24, 0x29, 0x70, - 0x00, 0x70, 0x2A, 0x2D, 0x2A, 0x70, - 0x00, 0x7E, 0x11, 0x7F, 0x49, 0x41, - 0x00, 0x1E, 0xA1, 0xE1, 0x61, 0x12, - 0x00, 0x7C, 0x55, 0x55, 0x54, 0x44, - 0x00, 0x7C, 0x54, 0x55, 0x55, 0x44, - 0x00, 0x7C, 0x55, 0x55, 0x55, 0x44, - 0x00, 0x7C, 0x55, 0x54, 0x55, 0x44, - 0x00, 0x00, 0x45, 0x7D, 0x44, 0x00, - 0x00, 0x00, 0x44, 0x7D, 0x45, 0x00, - 0x00, 0x00, 0x45, 0x7D, 0x45, 0x00, - 0x00, 0x00, 0x45, 0x7C, 0x45, 0x00, - 0x00, 0x08, 0x7F, 0x49, 0x41, 0x3E, - 0x00, 0x7A, 0x11, 0x22, 0x79, 0x00, - 0x00, 0x3D, 0x43, 0x42, 0x3C, 0x00, - 0x00, 0x3C, 0x42, 0x43, 0x3D, 0x00, - 0x00, 0x3C, 0x43, 0x43, 0x3D, 0x00, - 0x00, 0x3E, 0x45, 0x42, 0x3D, 0x00, - 0x00, 0x3C, 0x42, 0x43, 0x3D, 0x00, - 0x00, 0x00, 0x28, 0x10, 0x28, 0x00, - 0x00, 0x7E, 0x61, 0x5D, 0x43, 0x3F, - 0x00, 0x3C, 0x40, 0x41, 0x3D, 0x00, - 0x00, 0x3D, 0x41, 0x40, 0x3C, 0x00, - 0x00, 0x3C, 0x41, 0x41, 0x3D, 0x00, - 0x00, 0x3C, 0x41, 0x40, 0x3D, 0x00, - 0x00, 0x04, 0x08, 0x71, 0x09, 0x04, - 0x00, 0xFE, 0xAA, 0x28, 0x10, 0x00, - 0x00, 0xFE, 0x4A, 0x4A, 0x34, 0x00, - 0x00, 0x20, 0x55, 0x55, 0x54, 0x78, - 0x00, 0x20, 0x54, 0x54, 0x55, 0x79, - 0x00, 0x20, 0x55, 0x55, 0x55, 0x78, - 0x00, 0x20, 0x56, 0x55, 0x56, 0x7D, - 0x00, 0x20, 0x55, 0x54, 0x55, 0x78, - 0x00, 0x20, 0x57, 0x55, 0x57, 0x7C, - 0x00, 0xFC, 0x20, 0x20, 0x1C, 0x00, - 0x00, 0x38, 0xC4, 0xC4, 0x44, 0x28, - 0x00, 0x39, 0x55, 0x54, 0x08, 0x00, - 0x00, 0x38, 0x54, 0x55, 0x09, 0x00, - 0x00, 0x38, 0x55, 0x55, 0x09, 0x00, - 0x00, 0x38, 0x55, 0x54, 0x09, 0x00, - 0x00, 0x00, 0x01, 0x7D, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x7D, 0x41, 0x00, - 0x00, 0x00, 0x01, 0x7D, 0x41, 0x00, - 0x00, 0x00, 0x01, 0x7C, 0x41, 0x00, - 0x00, 0x39, 0x47, 0x45, 0x46, 0x3D, - 0x00, 0x7A, 0x09, 0x0A, 0x71, 0x00, - 0x00, 0x39, 0x45, 0x44, 0x38, 0x00, - 0x00, 0x38, 0x44, 0x45, 0x39, 0x00, - 0x00, 0x38, 0x45, 0x45, 0x39, 0x00, - 0x00, 0x3A, 0x45, 0x46, 0x39, 0x00, - 0x00, 0x38, 0x45, 0x44, 0x39, 0x00, - 0x00, 0x08, 0x08, 0x2A, 0x08, 0x08, - 0x00, 0x58, 0x24, 0x54, 0x48, 0x34, - 0x00, 0x3D, 0x41, 0x20, 0x7C, 0x00, - 0x00, 0x3C, 0x40, 0x21, 0x7D, 0x00, - 0x00, 0x3C, 0x41, 0x21, 0x7D, 0x00, - 0x00, 0x3C, 0x41, 0x20, 0x7D, 0x00, - 0x00, 0x9C, 0xA0, 0x61, 0x3D, 0x00, - 0x00, 0xFF, 0xA5, 0x24, 0x18, 0x00, - 0x00, 0x9C, 0xA1, 0x60, 0x3D, 0x00 -}; - -#endif - diff --git a/libraries/Kentec_35_SPI/Terminal8e.h b/libraries/Kentec_35_SPI/Terminal8e.h deleted file mode 100644 index 28b4e257..00000000 --- a/libraries/Kentec_35_SPI/Terminal8e.h +++ /dev/null @@ -1,262 +0,0 @@ -/// -/// @file Terminal8e.h -/// @brief Extended font library -/// @detailsFont Terminal 8 x 12 -/// @n -/// @n -/// @n @a Developed with [embedXcode](http://embedXcode.weebly.com) -/// @n -/// @author Rei VILO -/// @author http://embeddedcomputing.weebly.com -/// @date May 26, 2012 -/// @version102 -/// @n -/// @copyright (c) Rei VILO, 2012-2016 - SPECIAL EDITION FOR ENERGIA -/// @copyright Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) -/// -/// @see Font Generated by MikroElektronika GLCD Font Creator 1.2.0.0 -/// @n MikroeElektronika 2011 http://www.mikroe.com -/// - -// -// Terminal8e.h -// Font library -// ---------------------------------- - - -#ifndef TERMINAL8E_FONT_RELEASE -#define TERMINAL8E_FONT_RELEASE 102 - -#if defined(ENERGIA) -static const unsigned char Terminal8x12e[224][16] = -#elif defined(ARDUINO) || defined(MPIDE) || defined(WIRING) -static prog_uchar Terminal8x12e[224][16] PROGMEM = -#endif -{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x7E, 0x03, 0x7E, 0x03, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x88, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x88, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x88, 0x00, - 0x00, 0x00, 0x0C, 0x01, 0x1E, 0x03, 0x33, 0x0E, 0x63, 0x0E, 0xC6, 0x03, 0x84, 0x01, 0x00, 0x00, - 0x06, 0x00, 0x8F, 0x01, 0xC9, 0x00, 0x6F, 0x03, 0xB6, 0x07, 0x98, 0x04, 0x8C, 0x07, 0x00, 0x03, - 0x00, 0x00, 0xEC, 0x01, 0xFE, 0x03, 0x12, 0x02, 0x5E, 0x02, 0xCC, 0x01, 0xC0, 0x03, 0x40, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0xFE, 0x03, 0x07, 0x07, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x07, 0x07, 0xFE, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0xA8, 0x00, 0xF8, 0x00, 0x70, 0x00, 0xF8, 0x00, 0xA8, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0xC0, 0x03, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0xFE, 0x03, 0xC2, 0x02, 0x1A, 0x02, 0xFE, 0x03, 0xFC, 0x01, - 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0C, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x03, 0x8E, 0x03, 0xC2, 0x02, 0x62, 0x02, 0x3E, 0x02, 0x1C, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x8C, 0x01, 0x8E, 0x03, 0x22, 0x02, 0x22, 0x02, 0xFE, 0x03, 0xDC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0x00, 0xFE, 0x00, 0xBE, 0x00, 0x80, 0x00, 0xF8, 0x03, 0xF8, 0x03, 0x80, 0x00, - 0x00, 0x00, 0x3E, 0x02, 0x3E, 0x02, 0x22, 0x02, 0x22, 0x03, 0xE2, 0x01, 0xC2, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0x1E, 0x02, 0x16, 0x02, 0xF2, 0x03, 0xE0, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x82, 0x03, 0xE2, 0x03, 0x7A, 0x00, 0x1E, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xDC, 0x01, 0xFE, 0x03, 0x32, 0x02, 0x62, 0x02, 0xFE, 0x03, 0xDC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x00, 0x7E, 0x02, 0x42, 0x03, 0xC2, 0x03, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0x18, 0x03, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0B, 0x18, 0x0F, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x70, 0x00, 0xD8, 0x00, 0x8C, 0x01, 0x06, 0x03, 0x02, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x02, 0x06, 0x03, 0x8C, 0x01, 0xD8, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x00, 0x0E, 0x00, 0x62, 0x03, 0x72, 0x03, 0x1E, 0x00, 0x0C, 0x00, 0x00, 0x00, - 0xFC, 0x01, 0xFE, 0x03, 0x02, 0x02, 0x62, 0x02, 0xF2, 0x02, 0x92, 0x02, 0xFE, 0x02, 0xFC, 0x02, - 0x00, 0x00, 0xF8, 0x03, 0xFC, 0x03, 0x46, 0x00, 0x46, 0x00, 0xFC, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x22, 0x02, 0x22, 0x02, 0xFE, 0x03, 0xDC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x01, 0xFE, 0x03, 0x02, 0x02, 0x02, 0x02, 0x8E, 0x03, 0x8C, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x02, 0x02, 0x06, 0x03, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x02, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x01, 0xFE, 0x03, 0x02, 0x02, 0x42, 0x02, 0xCE, 0x03, 0xCC, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x20, 0x00, 0x20, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0xFE, 0x03, 0xFE, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x01, 0x80, 0x03, 0x00, 0x02, 0x00, 0x02, 0xFE, 0x03, 0xFE, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x20, 0x00, 0xF8, 0x00, 0xDE, 0x03, 0x06, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x08, 0x00, 0x70, 0x00, 0x08, 0x00, 0xFE, 0x03, 0xFE, 0x03, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xFE, 0x03, 0xFE, 0x03, - 0x00, 0x00, 0xFC, 0x01, 0xFE, 0x03, 0x02, 0x02, 0x02, 0x02, 0xFE, 0x03, 0xFC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x3E, 0x00, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x01, 0xFE, 0x03, 0x02, 0x02, 0x02, 0x06, 0xFE, 0x0F, 0xFC, 0x09, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x22, 0x00, 0x62, 0x00, 0xFE, 0x03, 0x9C, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x01, 0x1E, 0x03, 0x32, 0x02, 0x62, 0x02, 0xC6, 0x03, 0x84, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x01, 0xFE, 0x03, 0x00, 0x02, 0x00, 0x02, 0xFE, 0x03, 0xFE, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x00, 0xFE, 0x01, 0x00, 0x03, 0x00, 0x03, 0xFE, 0x01, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x00, 0xFE, 0x03, 0x80, 0x03, 0x70, 0x00, 0x80, 0x03, 0xFE, 0x03, 0x7E, 0x00, - 0x00, 0x00, 0x86, 0x03, 0xCE, 0x03, 0x38, 0x00, 0x70, 0x00, 0xCE, 0x03, 0x86, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x1E, 0x00, 0x3E, 0x00, 0xE0, 0x03, 0xE0, 0x03, 0x3E, 0x00, 0x1E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x82, 0x03, 0xC2, 0x03, 0x62, 0x02, 0x32, 0x02, 0x1E, 0x02, 0x0E, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0x01, 0x08, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x00, 0x1E, 0x00, 0x78, 0x00, 0xE0, 0x01, 0x80, 0x07, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x01, 0x08, 0xFF, 0x0F, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x01, 0xC8, 0x03, 0x48, 0x02, 0x48, 0x02, 0xF8, 0x03, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x08, 0x02, 0x08, 0x02, 0xF8, 0x03, 0xF0, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0x08, 0x02, 0x08, 0x02, 0x18, 0x03, 0x10, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0x08, 0x02, 0x08, 0x02, 0xFE, 0x03, 0xFE, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0x48, 0x02, 0x48, 0x02, 0x78, 0x02, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0xFC, 0x03, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x08, 0xF8, 0x09, 0x08, 0x09, 0x08, 0x09, 0xF8, 0x0F, 0xF8, 0x07, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x08, 0x00, 0x08, 0x00, 0xF8, 0x03, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x08, 0x02, 0xFB, 0x03, 0xFB, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0xFB, 0x0F, 0xFB, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x40, 0x00, 0xE0, 0x00, 0xB8, 0x03, 0x18, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0xFE, 0x03, 0xFE, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x03, 0xF8, 0x03, 0x08, 0x00, 0xF8, 0x01, 0x08, 0x00, 0xF8, 0x03, 0xF0, 0x03, - 0x00, 0x00, 0xF8, 0x03, 0xF8, 0x03, 0x08, 0x00, 0x08, 0x00, 0xF8, 0x03, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0x08, 0x02, 0x08, 0x02, 0xF8, 0x03, 0xF0, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0xF0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x00, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x0F, 0xF8, 0x0F, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x03, 0xF8, 0x03, 0x20, 0x00, 0x10, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x30, 0x02, 0x78, 0x02, 0x48, 0x02, 0x48, 0x02, 0xC8, 0x03, 0x88, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0xFE, 0x01, 0xFE, 0x03, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x01, 0xF8, 0x03, 0x00, 0x02, 0x00, 0x02, 0xF8, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x00, 0xF8, 0x01, 0x00, 0x03, 0x00, 0x03, 0xF8, 0x01, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x00, 0xF8, 0x03, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x03, 0xF8, 0x03, 0xF8, 0x00, - 0x00, 0x00, 0x18, 0x03, 0xB8, 0x03, 0xE0, 0x00, 0xE0, 0x00, 0xB8, 0x03, 0x18, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x08, 0xF8, 0x09, 0x00, 0x0D, 0x00, 0x0F, 0xF8, 0x03, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x03, 0x88, 0x03, 0xC8, 0x02, 0x68, 0x02, 0x38, 0x02, 0x18, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x70, 0x00, 0xDE, 0x03, 0x8F, 0x07, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x8F, 0x07, 0xDE, 0x03, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x0C, 0x00, 0x06, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x06, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0xFE, 0x03, 0xFE, 0x03, 0xFE, 0x03, 0xFE, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x50, 0x00, 0xFC, 0x01, 0xFE, 0x03, 0x52, 0x02, 0x02, 0x02, 0x04, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0xFE, 0x07, 0xFE, 0x07, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x98, 0x01, 0x98, 0x01, 0xFE, 0x07, 0xFE, 0x07, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x00, 0x0A, 0x06, 0x8E, 0x01, 0x60, 0x04, 0x18, 0x00, 0x06, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x03, 0x02, 0x04, 0x02, 0x04, 0xFE, 0x07, 0x22, 0x04, 0x02, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0D, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x02, 0x00, 0x0F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD8, 0x0F, 0xD8, 0x0F, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x00, 0xF8, 0x01, 0x0E, 0x07, 0x0E, 0x07, 0x98, 0x01, 0x90, 0x00, 0x00, 0x00, - 0x20, 0x03, 0xFC, 0x03, 0xFE, 0x02, 0x22, 0x02, 0x22, 0x02, 0x26, 0x02, 0x04, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xB4, 0x00, 0xFC, 0x00, 0x48, 0x00, 0x48, 0x00, 0xFC, 0x00, 0xB4, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xAE, 0x00, 0xBE, 0x00, 0xF0, 0x03, 0xF0, 0x03, 0xBE, 0x00, 0xAE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x0F, 0x3E, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x04, 0xFF, 0x0C, 0x99, 0x09, 0x99, 0x09, 0xF3, 0x0F, 0x62, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xFC, 0x01, 0x06, 0x03, 0x72, 0x02, 0x8A, 0x02, 0x8A, 0x02, 0x52, 0x02, 0x06, 0x03, 0xFC, 0x01, - 0x00, 0x00, 0x90, 0x00, 0xBA, 0x00, 0xAA, 0x00, 0xAA, 0x00, 0xBE, 0x00, 0xBC, 0x00, 0x00, 0x00, - 0x80, 0x00, 0xC0, 0x01, 0x60, 0x03, 0x20, 0x02, 0x80, 0x00, 0xC0, 0x01, 0x60, 0x03, 0x20, 0x02, - 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xFC, 0x01, 0x06, 0x03, 0xFA, 0x02, 0x4A, 0x02, 0x4A, 0x02, 0xB2, 0x02, 0x06, 0x03, 0xFC, 0x01, - 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x06, 0x00, 0x0F, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x02, 0x20, 0x02, 0xF8, 0x02, 0xF8, 0x02, 0x20, 0x02, 0x20, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x3A, 0x00, 0x2E, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x2A, 0x00, 0x3E, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0xFC, 0x0F, 0xFC, 0x07, 0x00, 0x01, 0x00, 0x01, 0xFC, 0x00, 0xFC, 0x01, 0x00, 0x01, - 0x00, 0x00, 0x1C, 0x00, 0x3E, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x0E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x9C, 0x00, 0xBE, 0x00, 0xA2, 0x00, 0xA2, 0x00, 0xBE, 0x00, 0x9C, 0x00, 0x00, 0x00, - 0x20, 0x02, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x00, 0x20, 0x02, 0x60, 0x03, 0xC0, 0x01, 0x80, 0x00, - 0x02, 0x01, 0x9F, 0x01, 0xDF, 0x00, 0x60, 0x03, 0xB0, 0x03, 0xD8, 0x02, 0xCC, 0x07, 0xC4, 0x07, - 0x02, 0x01, 0x9F, 0x01, 0xDF, 0x00, 0x60, 0x00, 0x70, 0x06, 0x58, 0x07, 0xCC, 0x05, 0x84, 0x04, - 0x11, 0x01, 0x95, 0x01, 0xDF, 0x00, 0x6A, 0x03, 0xB0, 0x03, 0xD8, 0x02, 0xCC, 0x07, 0xC4, 0x07, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x0F, 0xD8, 0x09, 0xD8, 0x08, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x03, 0xFD, 0x03, 0x47, 0x00, 0x46, 0x00, 0xFC, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x03, 0xFC, 0x03, 0x46, 0x00, 0x47, 0x00, 0xFD, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x03, 0xFD, 0x03, 0x47, 0x00, 0x47, 0x00, 0xFD, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF2, 0x03, 0xF9, 0x03, 0x4D, 0x00, 0x4E, 0x00, 0xFA, 0x03, 0xF1, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x03, 0xFD, 0x03, 0x46, 0x00, 0x46, 0x00, 0xFD, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xFA, 0x03, 0x4D, 0x00, 0x4D, 0x00, 0xFA, 0x03, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xF8, 0x03, 0x4C, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x22, 0x02, 0x22, 0x02, - 0x00, 0x00, 0xFC, 0x00, 0xFE, 0x09, 0x02, 0x0B, 0x02, 0x0F, 0xCE, 0x05, 0xCC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x03, 0xFD, 0x03, 0x25, 0x02, 0x24, 0x02, 0x24, 0x02, 0x04, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x03, 0xFC, 0x03, 0x24, 0x02, 0x25, 0x02, 0x25, 0x02, 0x04, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x03, 0xFD, 0x03, 0x25, 0x02, 0x25, 0x02, 0x25, 0x02, 0x04, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x03, 0xFD, 0x03, 0x24, 0x02, 0x24, 0x02, 0x25, 0x02, 0x04, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xFD, 0x03, 0xFC, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0xFC, 0x03, 0xFD, 0x03, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x02, 0xFD, 0x03, 0xFD, 0x03, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x02, 0xFC, 0x03, 0xFC, 0x03, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x22, 0x02, 0x06, 0x03, 0xFC, 0x01, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFA, 0x03, 0xF9, 0x03, 0x31, 0x00, 0x62, 0x00, 0xC2, 0x00, 0xF9, 0x03, 0xF8, 0x03, - 0x00, 0x00, 0xF8, 0x01, 0xFD, 0x03, 0x05, 0x02, 0x04, 0x02, 0xFC, 0x03, 0xF8, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x01, 0xFC, 0x03, 0x04, 0x02, 0x05, 0x02, 0xFD, 0x03, 0xF8, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x01, 0xFD, 0x03, 0x05, 0x02, 0x05, 0x02, 0xFD, 0x03, 0xF8, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x01, 0xFD, 0x03, 0x05, 0x02, 0x05, 0x02, 0xFD, 0x03, 0xF8, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x01, 0xFD, 0x03, 0x04, 0x02, 0x04, 0x02, 0xFD, 0x03, 0xF8, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x8C, 0x01, 0xD8, 0x00, 0x70, 0x00, 0x70, 0x00, 0xD8, 0x00, 0x8C, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x03, 0xFE, 0x03, 0xE2, 0x02, 0x3A, 0x02, 0xFE, 0x03, 0xFE, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x01, 0xFD, 0x03, 0x01, 0x02, 0x00, 0x02, 0xFC, 0x03, 0xFC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x01, 0xFC, 0x03, 0x00, 0x02, 0x01, 0x02, 0xFD, 0x03, 0xFC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x01, 0xFD, 0x03, 0x01, 0x02, 0x01, 0x02, 0xFD, 0x03, 0xFC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x01, 0xFD, 0x03, 0x00, 0x02, 0x00, 0x02, 0xFD, 0x03, 0xFC, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0xE0, 0x03, 0xE1, 0x03, 0x3D, 0x00, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFE, 0x03, 0xFE, 0x03, 0x88, 0x00, 0x88, 0x00, 0xF8, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFC, 0x03, 0xFE, 0x03, 0x02, 0x00, 0x1E, 0x02, 0xFC, 0x03, 0xE0, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x01, 0xC9, 0x03, 0x4B, 0x02, 0x4A, 0x02, 0xF8, 0x03, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x01, 0xC8, 0x03, 0x4A, 0x02, 0x4B, 0x02, 0xF9, 0x03, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x01, 0xCA, 0x03, 0x49, 0x02, 0x49, 0x02, 0xFA, 0x03, 0xF0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x82, 0x01, 0xC9, 0x03, 0x49, 0x02, 0x4A, 0x02, 0xFA, 0x03, 0xF1, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x83, 0x01, 0xCB, 0x03, 0x48, 0x02, 0x48, 0x02, 0xFB, 0x03, 0xF3, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x01, 0xD2, 0x03, 0x55, 0x02, 0x55, 0x02, 0xF2, 0x03, 0xE0, 0x03, 0x00, 0x00, - 0x80, 0x01, 0xC8, 0x03, 0x48, 0x02, 0xF0, 0x03, 0xF8, 0x01, 0x48, 0x02, 0x78, 0x02, 0x70, 0x02, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x0B, 0x08, 0x0A, 0x08, 0x0E, 0x18, 0x03, 0x10, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF9, 0x03, 0x4B, 0x02, 0x4A, 0x02, 0x78, 0x02, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0x4A, 0x02, 0x4B, 0x02, 0x79, 0x02, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xFA, 0x03, 0x49, 0x02, 0x49, 0x02, 0x7A, 0x02, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF3, 0x01, 0xFB, 0x03, 0x48, 0x02, 0x48, 0x02, 0x7B, 0x02, 0x73, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x09, 0x02, 0xFB, 0x03, 0xFA, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x08, 0x02, 0xFA, 0x03, 0xFB, 0x03, 0x01, 0x02, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x02, 0x0A, 0x02, 0xF9, 0x03, 0xF9, 0x03, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x0B, 0x02, 0x0B, 0x02, 0xF8, 0x03, 0xF8, 0x03, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, - 0x00, 0x00, 0xE8, 0x01, 0xEA, 0x03, 0x16, 0x02, 0x1C, 0x02, 0xFA, 0x03, 0xF2, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xFA, 0x03, 0xF9, 0x03, 0x09, 0x00, 0x0A, 0x00, 0xFA, 0x03, 0xF1, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF9, 0x03, 0x0B, 0x02, 0x0A, 0x02, 0xF8, 0x03, 0xF0, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xF8, 0x03, 0x0A, 0x02, 0x0B, 0x02, 0xF9, 0x03, 0xF0, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x01, 0xFA, 0x03, 0x09, 0x02, 0x09, 0x02, 0xFA, 0x03, 0xF0, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF2, 0x01, 0xF9, 0x03, 0x09, 0x02, 0x0A, 0x02, 0xFA, 0x03, 0xF1, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF3, 0x01, 0xFB, 0x03, 0x08, 0x02, 0x08, 0x02, 0xFB, 0x03, 0xF3, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xAC, 0x01, 0xAC, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0x03, 0xF8, 0x03, 0xC8, 0x02, 0x68, 0x02, 0xF8, 0x03, 0xF8, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x01, 0xF9, 0x03, 0x03, 0x02, 0x02, 0x02, 0xF8, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0x01, 0xF8, 0x03, 0x02, 0x02, 0x03, 0x02, 0xF9, 0x03, 0xF8, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFA, 0x01, 0xFB, 0x03, 0x01, 0x02, 0x01, 0x02, 0xFB, 0x03, 0xFA, 0x03, 0x00, 0x00, - 0x00, 0x00, 0xFB, 0x01, 0xFB, 0x03, 0x00, 0x02, 0x00, 0x02, 0xFB, 0x03, 0xFB, 0x03, 0x00, 0x00, - 0x00, 0x08, 0xF8, 0x08, 0xF8, 0x09, 0x02, 0x0D, 0x03, 0x07, 0xF9, 0x03, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x0F, 0xFF, 0x0F, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0xF0, 0x00, 0x00, 0x00, - 0x00, 0x08, 0xFB, 0x08, 0xFB, 0x09, 0x00, 0x0D, 0x00, 0x07, 0xFB, 0x03, 0xFB, 0x00, 0x00, 0x00 -}; - -#endif diff --git a/libraries/Kentec_35_SPI/examples/LCD_LifeGame/LCD_LifeGame.ino b/libraries/Kentec_35_SPI/examples/LCD_LifeGame/LCD_LifeGame.ino deleted file mode 100644 index 11159ae6..00000000 --- a/libraries/Kentec_35_SPI/examples/LCD_LifeGame/LCD_LifeGame.ino +++ /dev/null @@ -1,388 +0,0 @@ -/// -/// @mainpage LifeGame -/// -/// @details Description of the project -/// @n Based on Life_Game_Colour.pde Jul 12, 2012 © Rei VILO, 2010-2012 -/// @n -/// @n @a Developed with [embedXcode+](http://embedXcode.weebly.com) -/// -/// @author Rei Vilo -/// @author Rei Vilo -/// @date Dec 11, 2013 18:54 -/// @version release 136 -/// -/// @copyright (c) Rei Vilo, 2013-2016 - Special Edition for Energia -/// @copyright CC = BY SA NC -/// -/// @see -/// * Life_Game_Colour.pde Jul 12, 2012 (c) Rei VILO, 2010-2012 -/// @n http://embeddedcomputing.weebly.com/life-game.html -/// * http://nathandumont.com/node/245 (c) Nathan, 11/04/2011 - 20:46 -/// - - -/// -/// @file LifeGame.ino -/// @brief Main sketch -/// -/// @details Description of the project -/// @n @a Developed with [embedXcode+](http://embedXcode.weebly.com) -/// -/// @author Rei Vilo -/// @author Rei Vilo -/// @date Dec 11, 2013 18:54 -/// @version 136 -/// -/// @copyright (c) Rei Vilo, 2013 -/// @copyright CC = BY SA NC -/// -/// @see ReadMe.txt for references -/// @n -/// -/// @b Updated Sep 07, 2015 -/// @n Support for MSP432 with 128x128 -/// - -// Core library for code-sense -#if defined(ENERGIA) // LaunchPad MSP430, Stellaris and Tiva, Experimeter Board FR5739 specific -#include "Energia.h" -#else // error -#error Platform not defined -#endif - -// Prototypes - - -// Include application, user and local libraries -#include "SPI.h" - -// test: PicasoSPE PicasoSGC -// ok: HX8353E W32 HI32 HY28A K35 ST7735 ILI9225B HY28A_SRAM -// nok: - -// Screen selection -#define K35_SPI // HX8353E K35_SPI - -#if defined(K35_SPI) -#include "Screen_K35_SPI.h" -Screen_K35_SPI myScreen; - -#elif defined(HX8353E) -#include "Screen_HX8353E.h" -Screen_HX8353E myScreen; - -#else -#error Unknown screen -#endif - - -// Beware of RAM limitations -#if defined(__MSP430F5529__) || defined(__MSP432P401R__) -#define ROWS 32 // max 80 -#define COLS 32 // max 60 -#elif defined(__LM4F120H5QR__) || defined(__TM4C123GH6PM__) -#define ROWS 80 // max 80 -#define COLS 60 // max 60 -#elif defined(__TM4C1294NCPDT__) || defined(__TM4C1294XNCZAD__) || defined(__MSP432P401R__) -#define ROWS 128 // max 128 -#define COLS 128 // max 128 -#else -#error Board not supported -#endif - -#define PERCENT 70 // % dead - -// bits 7 . 6 . 5 . 4 . 3 . 2 . 1 . 0 -// [3] = dead 0, alive 1 -// [2..0] = age 0-7 - -#define ALIVE 0x08 -#define DEAD 0x00 - -#define NMASK 0x08 -#define AGEMASK 0x07 - -#define StopButton 33 -#define NewGameButton 32 - -// Define variables and constants -uint8_t _screen[2][ROWS][COLS]; -uint32_t chrono; -uint8_t page; -uint16_t colours[16]; -uint16_t generation; -uint8_t rowSize, colSize; -uint8_t i, j; - -void new_game() -{ - page = 0; - for (i=0; i < ROWS; i++) - { - for (j=0; j < COLS; j++) - { - if (random(100) > PERCENT) _screen[page^1][i][j] = ALIVE; - else _screen[page^1][i][j] = DEAD; - myScreen.dRectangle(i*rowSize, j*colSize, rowSize, colSize, colours[_screen[page^1][i][j]]); - } - } - - page ^= 1; - generation = 0; - chrono = millis(); -} - - -void setup() -{ - // No need for INPUT_PULLUP - pinMode(StopButton, INPUT_PULLUP); - pinMode(NewGameButton, INPUT_PULLUP); - - myScreen.begin(); - - rowSize = myScreen.screenSizeX() / ROWS; - colSize = myScreen.screenSizeY() / COLS; - - delay(10); - myScreen.setPenSolid(true); - - // 0-7 dying: cold colours - // from green to blue to black - colours[ 0] = myScreen.calculateColour( 0, 255, 0); - colours[ 1] = myScreen.calculateColour( 0, 204, 51); - colours[ 2] = myScreen.calculateColour( 0, 153, 102); - colours[ 3] = myScreen.calculateColour( 0, 102, 153); - colours[ 4] = myScreen.calculateColour( 0, 51, 204); - colours[ 5] = myScreen.calculateColour( 0, 0, 255); - colours[ 6] = myScreen.calculateColour( 0, 0, 127); - colours[ 7] = myScreen.calculateColour( 0, 0, 0); - - - // 8-15 living: hot colours - // from red to orange to yellow - colours[ 8] = myScreen.calculateColour(255, 0, 0); - colours[ 9] = myScreen.calculateColour(255, 43, 0); - colours[10] = myScreen.calculateColour(255, 85, 0); - colours[11] = myScreen.calculateColour(255, 127, 0); - colours[12] = myScreen.calculateColour(255, 171, 0); - colours[13] = myScreen.calculateColour(255, 213, 0); - colours[14] = myScreen.calculateColour(255, 255, 0); - colours[15] = myScreen.calculateColour(255, 255, 255); - - myScreen.setFontSolid(false); - myScreen.setFontSize(1); - myScreen.gText((myScreen.screenSizeX()-9*myScreen.fontSizeX())/2, 20, "Life Game"); - - j = myScreen.screenSizeX() / 16; - - myScreen.setFontSize(0); - myScreen.gText(0, 60, "Death"); - for (i=0; i<8; i++) - { - myScreen.dRectangle(j*(8-i), 40, j, j, colours[i]); - } - - myScreen.gText(myScreen.screenSizeX()-4*myScreen.fontSizeX(), 60, "Life"); - for (i=8; i<16; i++) - { - myScreen.dRectangle(j*i, 40, j, j, colours[i]); - } - - myScreen.gText((myScreen.screenSizeX()-14*myScreen.fontSizeX())/2, 90, "Button 1: stop"); - myScreen.gText((myScreen.screenSizeX()-14*myScreen.fontSizeX())/2, 100, "Button 2: new"); - delay(4000); - - myScreen.clear(); - - randomSeed(analogRead(0)); - new_game(); -} - - -void update_pixel(uint8_t i, uint8_t j, uint8_t neighbours) -{ - if (bitRead(_screen[page][i][j], 3)) - { - // alive - if ((neighbours < 2) || (neighbours > 3)) - { - _screen[page^1][i][j] = DEAD; // zero age dead pixel // 0 pass - } - else - { - _screen[page^1][i][j] = _screen[page][i][j] + 1; // 8-15 living - if (_screen[page^1][i][j] > 0x0f) - { - _screen[page^1][i][j] = 0x0f; - } - } - } - else - { - // dead - if (neighbours == 3) - { - _screen[page^1][i][j] = ALIVE; // zero age alive pixel // 8 born - } else { - _screen[page^1][i][j] = _screen[page][i][j] + 1; // 0-7 dying - if (_screen[page^1][i][j] > 0x07) _screen[page^1][i][j] = 0x07; - } - } - - if (_screen[page][i][j]!=_screen[page^1][i][j]) - myScreen.dRectangle(i*rowSize, j*colSize, rowSize, colSize, colours[_screen[page^1][i][j]]); -} - -void loop() -{ - uint8_t neighbours; - - generation++; - - for (i=1; i < ROWS-1; i++) - { - for (j=1; j -sentence=Library for the Crystalfontz CFAF128128B-0145T color 128x128-pixel TFT LCD with Newhaven HX8353E controller -paragraph=This library enables to draw with primatives as well as display text using the builtin fonts -category=Display -url=http://energia.nu/reference/libraries/ -architectures=msp432,msp432r