mirror of
https://github.com/YuzuZensai/MCUFRIEND_kbv.git
synced 2026-03-30 14:25:29 +00:00
@@ -1,4 +1,4 @@
|
||||
#define SUPPORT_0139 //not working +238 bytes
|
||||
//#define SUPPORT_0139 //S6D0139 +280 bytes
|
||||
#define SUPPORT_0154 //S6D0154 +320 bytes
|
||||
//#define SUPPORT_1289 //costs about 408 bytes
|
||||
//#define SUPPORT_1580 //R61580 Untested
|
||||
@@ -8,15 +8,15 @@
|
||||
#define SUPPORT_68140 //RM68140 +52 bytes defaults to PIXFMT=0x55
|
||||
#define SUPPORT_7781 //ST7781 +172 bytes
|
||||
//#define SUPPORT_8230 //UC8230 +118 bytes
|
||||
//#define SUPPORT_8347D //HX8347-D, HX8347-G, HX8347-I +520 bytes, 0.27s
|
||||
//#define SUPPORT_8347D //HX8347-D, HX8347-G, HX8347-I, HX8367-A +520 bytes, 0.27s
|
||||
//#define SUPPORT_8347A //HX8347-A +500 bytes, 0.27s
|
||||
//#define SUPPORT_8352A //HX8352A +486 bytes, 0.27s
|
||||
//#define SUPPORT_8352B //HX8352B
|
||||
//#define SUPPORT_8357D_GAMMA //monster 34 byte
|
||||
#define SUPPORT_9225 //ILI9225-B, ILI9225-G ID=0x9225, ID=0x9226
|
||||
//#define SUPPORT_9225 //ILI9225-B, ILI9225-G ID=0x9225, ID=0x9226 +380 bytes
|
||||
//#define SUPPORT_9326_5420 //ILI9326, SPFD5420 +246 bytes
|
||||
//#define SUPPORT_9342 //costs +114 bytes
|
||||
//#define SUPPORT_9806
|
||||
//#define SUPPORT_9806 //UNTESTED
|
||||
#define SUPPORT_9488_555 //costs +230 bytes, 0.03s / 0.19s
|
||||
#define SUPPORT_B509_7793 //R61509, ST7793 +244 bytes
|
||||
#define OFFSET_9327 32 //costs about 103 bytes, 0.08s
|
||||
@@ -54,17 +54,10 @@
|
||||
#define USING_16BIT_BUS 0
|
||||
#endif
|
||||
|
||||
#if defined USE_GFX_KBV
|
||||
MCUFRIEND_kbv::MCUFRIEND_kbv():Adafruit_GFX(240, 320)
|
||||
{
|
||||
// we can not access GPIO pins until AHB has been enabled.
|
||||
}
|
||||
#else
|
||||
MCUFRIEND_kbv::MCUFRIEND_kbv(int CS, int RS, int WR, int RD, int RST):Adafruit_GFX(240, 320)
|
||||
{
|
||||
// we can not access GPIO pins until AHB has been enabled.
|
||||
}
|
||||
#endif
|
||||
|
||||
static uint8_t done_reset, is8347, is555;
|
||||
static uint16_t color565_to_555(uint16_t color) {
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* MCUFRIEND_kbv class inherits from Adafruit_GFX class and the Arduino Print class.
|
||||
* Any use of MCUFRIEND_kbv class and examples is dependent on Adafruit and Arduino licenses
|
||||
* The license texts are in the accompanying license.txt file
|
||||
*/
|
||||
|
||||
#ifndef MCUFRIEND_KBV_H_
|
||||
#define MCUFRIEND_KBV_H_ 298
|
||||
|
||||
@@ -13,13 +19,8 @@
|
||||
class MCUFRIEND_kbv : public Adafruit_GFX {
|
||||
|
||||
public:
|
||||
#if defined USE_GFX_KBV
|
||||
MCUFRIEND_kbv();
|
||||
#elif defined(ARDUINO_GENERIC_STM32F103C) || defined(ARDUINO_GENERIC_STM32F103V) || defined(ARDUINO_MAPLE_REV3) || defined(ARDUINO_MAPLE_MINI) || defined(ESP32)
|
||||
// MCUFRIEND_kbv(int CS=A3, int RS=A2, int WR=A1, int RD=A0, int RST=A4); //shield wiring
|
||||
MCUFRIEND_kbv(int CS=0, int RS=0, int WR=0, int RD=0, int RST=0); //dummy arguments
|
||||
#else
|
||||
MCUFRIEND_kbv(int CS=A3, int RS=A2, int WR=A1, int RD=A0, int RST=A4);
|
||||
#endif
|
||||
void reset(void); // you only need the constructor
|
||||
void begin(uint16_t ID = 0x9341); // you only need the constructor
|
||||
virtual void drawPixel(int16_t x, int16_t y, uint16_t color); // and these three
|
||||
@@ -52,4 +53,25 @@ class MCUFRIEND_kbv : public Adafruit_GFX {
|
||||
uint16_t _lcd_ID, _lcd_rev, _lcd_madctl, _lcd_drivOut, _MC, _MP, _MW, _SC, _EC, _SP, _EP;
|
||||
};
|
||||
|
||||
// New color definitions. thanks to Bodmer
|
||||
#define TFT_BLACK 0x0000 /* 0, 0, 0 */
|
||||
#define TFT_NAVY 0x000F /* 0, 0, 128 */
|
||||
#define TFT_DARKGREEN 0x03E0 /* 0, 128, 0 */
|
||||
#define TFT_DARKCYAN 0x03EF /* 0, 128, 128 */
|
||||
#define TFT_MAROON 0x7800 /* 128, 0, 0 */
|
||||
#define TFT_PURPLE 0x780F /* 128, 0, 128 */
|
||||
#define TFT_OLIVE 0x7BE0 /* 128, 128, 0 */
|
||||
#define TFT_LIGHTGREY 0xC618 /* 192, 192, 192 */
|
||||
#define TFT_DARKGREY 0x7BEF /* 128, 128, 128 */
|
||||
#define TFT_BLUE 0x001F /* 0, 0, 255 */
|
||||
#define TFT_GREEN 0x07E0 /* 0, 255, 0 */
|
||||
#define TFT_CYAN 0x07FF /* 0, 255, 255 */
|
||||
#define TFT_RED 0xF800 /* 255, 0, 0 */
|
||||
#define TFT_MAGENTA 0xF81F /* 255, 0, 255 */
|
||||
#define TFT_YELLOW 0xFFE0 /* 255, 255, 0 */
|
||||
#define TFT_WHITE 0xFFFF /* 255, 255, 255 */
|
||||
#define TFT_ORANGE 0xFDA0 /* 255, 180, 0 */
|
||||
#define TFT_GREENYELLOW 0xB7E0 /* 180, 255, 0 */
|
||||
#define TFT_PINK 0xFC9F
|
||||
|
||||
#endif
|
||||
|
||||
66
examples/Font_simple/Font_simple.ino
Normal file
66
examples/Font_simple/Font_simple.ino
Normal file
@@ -0,0 +1,66 @@
|
||||
#include <Adafruit_GFX.h> // Core graphics library
|
||||
#include <MCUFRIEND_kbv.h> // Hardware-specific library
|
||||
MCUFRIEND_kbv tft;
|
||||
|
||||
#include <Fonts/FreeSans9pt7b.h>
|
||||
#include <Fonts/FreeSans12pt7b.h>
|
||||
#include <Fonts/FreeSerif12pt7b.h>
|
||||
|
||||
#include <FreeDefaultFonts.h>
|
||||
|
||||
#define BLACK 0x0000
|
||||
#define RED 0xF800
|
||||
#define GREEN 0x07E0
|
||||
#define WHITE 0xFFFF
|
||||
#define GREY 0x8410
|
||||
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(9600);
|
||||
uint16_t ID = tft.readID();
|
||||
if (ID == 0xD3) ID = 0x9481;
|
||||
tft.begin(ID);
|
||||
tft.setRotation(0);
|
||||
}
|
||||
|
||||
void loop(void)
|
||||
{
|
||||
tft.fillScreen(BLACK);
|
||||
showmsgXY(20, 10, 1, NULL, "System x1");
|
||||
showmsgXY(20, 24, 2, NULL, "System x2");
|
||||
showmsgXY(20, 60, 1, &FreeSans9pt7b, "FreeSans9pt7b");
|
||||
showmsgXY(20, 80, 1, &FreeSans12pt7b, "FreeSans12pt7b");
|
||||
showmsgXY(20, 100, 1, &FreeSerif12pt7b, "FreeSerif12pt7b");
|
||||
showmsgXY(20, 120, 1, &FreeSmallFont, "FreeSmallFont");
|
||||
showmsgXY(5, 180, 1, &FreeSevenSegNumFont, "01234");
|
||||
showmsgXY(5, 190, 1, NULL, "System Font is drawn from topline");
|
||||
tft.setTextColor(RED, GREY);
|
||||
tft.setTextSize(2);
|
||||
tft.setCursor(0, 220);
|
||||
tft.print("7x5 can overwrite");
|
||||
delay(1000);
|
||||
tft.setCursor(0, 220);
|
||||
tft.print("if background set");
|
||||
delay(1000);
|
||||
showmsgXY(5, 260, 1, &FreeSans9pt7b, "Free Fonts from baseline");
|
||||
showmsgXY(5, 285, 1, &FreeSans9pt7b, "Free Fonts transparent");
|
||||
delay(1000);
|
||||
showmsgXY(5, 285, 1, &FreeSans9pt7b, "Free Fonts XXX");
|
||||
delay(1000);
|
||||
showmsgXY(5, 310, 1, &FreeSans9pt7b, "erase backgnd with fillRect()");
|
||||
delay(10000);
|
||||
}
|
||||
|
||||
void showmsgXY(int x, int y, int sz, const GFXfont *f, const char *msg)
|
||||
{
|
||||
int16_t x1, y1;
|
||||
uint16_t wid, ht;
|
||||
tft.drawFastHLine(0, y, tft.width(), WHITE);
|
||||
tft.setFont(f);
|
||||
tft.setCursor(x, y);
|
||||
tft.setTextColor(GREEN);
|
||||
tft.setTextSize(sz);
|
||||
tft.print(msg);
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
342
examples/GLUE_Demo_220x176/GLUE_Demo_220x176.ino
Normal file
342
examples/GLUE_Demo_220x176/GLUE_Demo_220x176.ino
Normal file
@@ -0,0 +1,342 @@
|
||||
// UTFT_Demo_220x176
|
||||
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
|
||||
// web: http://www.RinkyDinkElectronics.com/
|
||||
//
|
||||
// This program is a demo of how to use most of the functions
|
||||
// of the library with a supported display modules.
|
||||
//
|
||||
// This demo was made for modules with a screen resolution
|
||||
// of 220x176 pixels.
|
||||
//
|
||||
// This program requires the UTFT library.
|
||||
//
|
||||
|
||||
//################################################
|
||||
// GLUE class that implements the UTFT API
|
||||
// replace UTFT include and constructor statements
|
||||
// remove UTFT font declaration e.g. SmallFont
|
||||
//################################################
|
||||
|
||||
#include <UTFTGLUE.h> //use GLUE class and constructor
|
||||
UTFTGLUE myGLCD(0,A2,A1,A3,A4,A0); //all dummy args
|
||||
|
||||
// Declare which fonts we will be using
|
||||
//extern uint8_t SmallFont[]; //GLUE defines as GFXFont ref
|
||||
|
||||
// Set the pins to the correct ones for your development shield
|
||||
// ------------------------------------------------------------
|
||||
// Arduino Uno / 2009:
|
||||
// -------------------
|
||||
// Standard Arduino Uno/2009 shield : <display model>,A5,A4,A3,A2
|
||||
// DisplayModule Arduino Uno TFT shield : <display model>,A5,A4,A3,A2
|
||||
//
|
||||
// Arduino Mega:
|
||||
// -------------------
|
||||
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
|
||||
// CTE TFT LCD/SD Shield for Arduino Mega : <display model>,38,39,40,41
|
||||
//
|
||||
// Remember to change the model parameter to suit your display module!
|
||||
//UTFT myGLCD(ITDB22,A5,A4,A3,A2);
|
||||
|
||||
void setup()
|
||||
{
|
||||
randomSeed(analogRead(0));
|
||||
|
||||
// Setup the LCD
|
||||
myGLCD.InitLCD();
|
||||
myGLCD.setFont(SmallFont);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
int buf[218];
|
||||
int x, x2;
|
||||
int y, y2;
|
||||
int r;
|
||||
|
||||
// Clear the screen and draw the frame
|
||||
myGLCD.clrScr();
|
||||
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRect(0, 0, 219, 13);
|
||||
myGLCD.setColor(64, 64, 64);
|
||||
myGLCD.fillRect(0, 162, 219, 175);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.print("** Universal TFT Library **", CENTER, 1);
|
||||
myGLCD.setBackColor(64, 64, 64);
|
||||
myGLCD.setColor(255,255,0);
|
||||
myGLCD.print("> Rinky-Dink Electronics <", CENTER, 163);
|
||||
|
||||
myGLCD.setColor(0, 0, 255);
|
||||
myGLCD.drawRect(0, 14, 219, 161);
|
||||
|
||||
// Draw crosshairs
|
||||
myGLCD.setColor(0, 0, 255);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
myGLCD.drawLine(109, 15, 109, 160);
|
||||
myGLCD.drawLine(1, 88, 218, 88);
|
||||
|
||||
for (int i=9; i<210; i+=10)
|
||||
myGLCD.drawLine(i, 86, i, 90);
|
||||
for (int i=19; i<155; i+=10)
|
||||
myGLCD.drawLine(107, i, 111, i);
|
||||
|
||||
// Draw sin-, cos- and tan-lines
|
||||
myGLCD.setColor(0,255,255);
|
||||
myGLCD.print("Sin", 5, 15);
|
||||
for (int i=1; i<218; i++)
|
||||
{
|
||||
myGLCD.drawPixel(i,88+(sin(((i*1.65)*3.14)/180)*70));
|
||||
}
|
||||
|
||||
myGLCD.setColor(255,0,0);
|
||||
myGLCD.print("Cos", 5, 27);
|
||||
for (int i=1; i<218; i++)
|
||||
{
|
||||
myGLCD.drawPixel(i,88+(cos(((i*1.65)*3.14)/180)*70));
|
||||
}
|
||||
|
||||
myGLCD.setColor(255,255,0);
|
||||
myGLCD.print("Tan", 5, 39);
|
||||
for (int i=1; i<218; i++)
|
||||
{
|
||||
myGLCD.drawPixel(i,88+(tan(((i*1.65)*3.14)/180)));
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
myGLCD.setColor(0, 0, 255);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
myGLCD.drawLine(109, 15, 109, 160);
|
||||
myGLCD.drawLine(1, 88, 218, 88);
|
||||
|
||||
// Draw a moving sinewave
|
||||
x=1;
|
||||
for (int i=1; i<(218*20); i++)
|
||||
{
|
||||
x++;
|
||||
if (x==219)
|
||||
x=1;
|
||||
if (i>219)
|
||||
{
|
||||
if ((x==109)||(buf[x-1]==88))
|
||||
myGLCD.setColor(0,0,255);
|
||||
else
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.drawPixel(x,buf[x-1]);
|
||||
}
|
||||
myGLCD.setColor(0,255,255);
|
||||
y=88+(sin(((i*1.6)*3.14)/180)*(65-(i / 100)));
|
||||
myGLCD.drawPixel(x,y);
|
||||
buf[x-1]=y;
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
// Draw some filled rectangles
|
||||
for (int i=1; i<6; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 1:
|
||||
myGLCD.setColor(255,0,255);
|
||||
break;
|
||||
case 2:
|
||||
myGLCD.setColor(255,0,0);
|
||||
break;
|
||||
case 3:
|
||||
myGLCD.setColor(0,255,0);
|
||||
break;
|
||||
case 4:
|
||||
myGLCD.setColor(0,0,255);
|
||||
break;
|
||||
case 5:
|
||||
myGLCD.setColor(255,255,0);
|
||||
break;
|
||||
}
|
||||
myGLCD.fillRect(44+(i*15), 23+(i*15), 88+(i*15), 63+(i*15));
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
// Draw some filled, rounded rectangles
|
||||
for (int i=1; i<6; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 1:
|
||||
myGLCD.setColor(255,0,255);
|
||||
break;
|
||||
case 2:
|
||||
myGLCD.setColor(255,0,0);
|
||||
break;
|
||||
case 3:
|
||||
myGLCD.setColor(0,255,0);
|
||||
break;
|
||||
case 4:
|
||||
myGLCD.setColor(0,0,255);
|
||||
break;
|
||||
case 5:
|
||||
myGLCD.setColor(255,255,0);
|
||||
break;
|
||||
}
|
||||
myGLCD.fillRoundRect(132-(i*15), 23+(i*15), 172-(i*15), 63+(i*15));
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
// Draw some filled circles
|
||||
for (int i=1; i<6; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 1:
|
||||
myGLCD.setColor(255,0,255);
|
||||
break;
|
||||
case 2:
|
||||
myGLCD.setColor(255,0,0);
|
||||
break;
|
||||
case 3:
|
||||
myGLCD.setColor(0,255,0);
|
||||
break;
|
||||
case 4:
|
||||
myGLCD.setColor(0,0,255);
|
||||
break;
|
||||
case 5:
|
||||
myGLCD.setColor(255,255,0);
|
||||
break;
|
||||
}
|
||||
myGLCD.fillCircle(64+(i*15),43+(i*15), 20);
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
// Draw some lines in a pattern
|
||||
myGLCD.setColor (255,0,0);
|
||||
for (int i=15; i<160; i+=5)
|
||||
{
|
||||
myGLCD.drawLine(1, i, (i*1.44)-10, 160);
|
||||
}
|
||||
myGLCD.setColor (255,0,0);
|
||||
for (int i=160; i>15; i-=5)
|
||||
{
|
||||
myGLCD.drawLine(218, i, (i*1.44)-12, 15);
|
||||
}
|
||||
myGLCD.setColor (0,255,255);
|
||||
for (int i=160; i>15; i-=5)
|
||||
{
|
||||
myGLCD.drawLine(1, i, 232-(i*1.44), 15);
|
||||
}
|
||||
myGLCD.setColor (0,255,255);
|
||||
for (int i=15; i<160; i+=5)
|
||||
{
|
||||
myGLCD.drawLine(218, i, 231-(i*1.44), 160);
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
// Draw some random circles
|
||||
for (int i=0; i<100; i++)
|
||||
{
|
||||
myGLCD.setColor(random(255), random(255), random(255));
|
||||
x=22+random(176);
|
||||
y=35+random(105);
|
||||
r=random(20);
|
||||
myGLCD.drawCircle(x, y, r);
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
// Draw some random rectangles
|
||||
for (int i=0; i<100; i++)
|
||||
{
|
||||
myGLCD.setColor(random(255), random(255), random(255));
|
||||
x=2+random(216);
|
||||
y=16+random(143);
|
||||
x2=2+random(216);
|
||||
y2=16+random(143);
|
||||
myGLCD.drawRect(x, y, x2, y2);
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
// Draw some random rounded rectangles
|
||||
for (int i=0; i<100; i++)
|
||||
{
|
||||
myGLCD.setColor(random(255), random(255), random(255));
|
||||
x=2+random(216);
|
||||
y=16+random(143);
|
||||
x2=2+random(216);
|
||||
y2=16+random(143);
|
||||
myGLCD.drawRoundRect(x, y, x2, y2);
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
for (int i=0; i<100; i++)
|
||||
{
|
||||
myGLCD.setColor(random(255), random(255), random(255));
|
||||
x=2+random(216);
|
||||
y=16+random(143);
|
||||
x2=2+random(216);
|
||||
y2=16+random(143);
|
||||
myGLCD.drawLine(x, y, x2, y2);
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,218,160);
|
||||
|
||||
for (int i=0; i<10000; i++)
|
||||
{
|
||||
myGLCD.setColor(random(255), random(255), random(255));
|
||||
myGLCD.drawPixel(2+random(216), 16+random(143));
|
||||
}
|
||||
|
||||
delay(2000);
|
||||
|
||||
myGLCD.fillScr(0, 0, 255);
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRoundRect(40, 57, 179, 119);
|
||||
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.print("That's it!", CENTER, 62);
|
||||
myGLCD.print("Restarting in a", CENTER, 88);
|
||||
myGLCD.print("few seconds...", CENTER, 101);
|
||||
|
||||
myGLCD.setColor(0, 255, 0);
|
||||
myGLCD.setBackColor(0, 0, 255);
|
||||
myGLCD.print("Runtime: (msecs)", CENTER, 146);
|
||||
myGLCD.printNumI(millis(), CENTER, 161);
|
||||
|
||||
delay (10000);
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
// UTFT_Demo_320x240 (C)2012 uCtronics
|
||||
// web: http://www.uctronics.com
|
||||
// UTFT_Demo_320x240 is derived from
|
||||
// UTFT_Demo_320x240 (C)2010 Henning Karlsen
|
||||
// web: http://www.henningkarlsen.com/electronics
|
||||
// to fit for our 3.2 inch TFT LCD shield for Arduino/Maple/Chipkit
|
||||
// UTFT_Demo_320x240
|
||||
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
|
||||
// web: http://www.RinkyDinkElectronics.com/
|
||||
//
|
||||
// This program is a demo of how to use most of the functions
|
||||
// of the library with a supported display modules.
|
||||
@@ -11,30 +8,39 @@
|
||||
// This demo was made for modules with a screen resolution
|
||||
// of 320x240 pixels.
|
||||
//
|
||||
// This program requires the UTFT library (8bit mode)
|
||||
// and the code is compatible with both UNO and Mega board.
|
||||
// No code modification required.
|
||||
// This program requires the UTFT library.
|
||||
//
|
||||
|
||||
// if I want to use a GLUE class that implements the UTFT API
|
||||
// with the Adafruit classes, I MUST include those headers
|
||||
// because the Arduino Java does not look at nested includes !
|
||||
//################################################
|
||||
// GLUE class that implements the UTFT API
|
||||
// replace UTFT include and constructor statements
|
||||
// remove UTFT font declaration e.g. SmallFont
|
||||
//################################################
|
||||
|
||||
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <UTFTGLUE.h> // class methods are in here
|
||||
UTFTGLUE myGLCD(0x0154,A2,A1,A3,A4,A0);
|
||||
#include <UTFTGLUE.h> //use GLUE class and constructor
|
||||
UTFTGLUE myGLCD(0,A2,A1,A3,A4,A0); //all dummy args
|
||||
|
||||
// Declare which fonts we will be using
|
||||
#if !defined(SmallFont)
|
||||
extern uint8_t SmallFont[]; //.kbv GLUE defines as GFXFont ref
|
||||
#endif
|
||||
//extern uint8_t SmallFont[]; //GLUE defines as GFXFont ref
|
||||
|
||||
// Set the pins to the correct ones for your development shield
|
||||
// ------------------------------------------------------------
|
||||
// Arduino Uno / 2009:
|
||||
// -------------------
|
||||
// Standard Arduino Uno/2009 shield : <display model>,A5,A4,A3,A2
|
||||
// DisplayModule Arduino Uno TFT shield : <display model>,A5,A4,A3,A2
|
||||
//
|
||||
// Arduino Mega:
|
||||
// -------------------
|
||||
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
|
||||
// CTE TFT LCD/SD Shield for Arduino Mega : <display model>,38,39,40,41
|
||||
//
|
||||
// Remember to change the model parameter to suit your display module!
|
||||
//UTFT myGLCD(ITDB32S,38,39,40,41);
|
||||
|
||||
void setup()
|
||||
{
|
||||
randomSeed(analogRead(5)); //.kbv Due does not like A0
|
||||
pinMode(A0, OUTPUT); //.kbv mcufriend have RD on A0
|
||||
digitalWrite(A0, HIGH);
|
||||
randomSeed(analogRead(0));
|
||||
|
||||
// Setup the LCD
|
||||
myGLCD.InitLCD();
|
||||
@@ -60,7 +66,7 @@ void loop()
|
||||
myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);
|
||||
myGLCD.setBackColor(64, 64, 64);
|
||||
myGLCD.setColor(255,255,0);
|
||||
myGLCD.print("<http://electronics.henningkarlsen.com>", CENTER, 227);
|
||||
myGLCD.print("<http://www.RinkyDinkElectronics.com/>", CENTER, 227);
|
||||
|
||||
myGLCD.setColor(0, 0, 255);
|
||||
myGLCD.drawRect(0, 14, 319, 225);
|
||||
@@ -244,7 +250,7 @@ void loop()
|
||||
delay(2000);
|
||||
|
||||
myGLCD.setColor(0,0,0);
|
||||
myGLCD.fillRect(1,15,318,225);
|
||||
myGLCD.fillRect(1,15,318,224);
|
||||
|
||||
// Draw some random circles
|
||||
for (int i=0; i<100; i++)
|
||||
@@ -333,4 +339,3 @@ void loop()
|
||||
|
||||
delay (10000);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// UTFT_Demo_400x240 (C)2012 Henning Karlsen
|
||||
// web: http://www.henningkarlsen.com/electronics
|
||||
// UTFT_Demo_400x240
|
||||
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
|
||||
// web: http://www.RinkyDinkElectronics.com/
|
||||
//
|
||||
// This program is a demo of how to use most of the functions
|
||||
// of the library with a supported display modules.
|
||||
@@ -10,27 +11,36 @@
|
||||
// This program requires the UTFT library.
|
||||
//
|
||||
|
||||
//#include <Adafruit_GFX.h>
|
||||
//#include <Adafruit_TFTLCD.h>
|
||||
#include <MCUFRIEND_kbv.h>
|
||||
#include <UTFTGLUE.h>
|
||||
//UTFTGLUE myGLCD; // use for default shield
|
||||
UTFTGLUE myGLCD(0x9327,A2,A1,A3,A4,A0);
|
||||
extern uint8_t SmallFont[];
|
||||
//################################################
|
||||
// GLUE class that implements the UTFT API
|
||||
// replace UTFT include and constructor statements
|
||||
// remove UTFT font declaration e.g. SmallFont
|
||||
//################################################
|
||||
|
||||
/*
|
||||
#include <UTFT.h>
|
||||
#include <UTFTGLUE.h> //use GLUE class and constructor
|
||||
UTFTGLUE myGLCD(0,A2,A1,A3,A4,A0); //all dummy args
|
||||
|
||||
// Declare which fonts we will be using
|
||||
#if !defined(SmallFont)
|
||||
extern uint8_t SmallFont[]; //.kbv GLUE defines as GFXFont ref
|
||||
#endif
|
||||
//extern uint8_t SmallFont[];
|
||||
|
||||
// Set the pins to the correct ones for your development shield
|
||||
// ------------------------------------------------------------
|
||||
// Arduino Uno / 2009:
|
||||
// -------------------
|
||||
// Standard Arduino Uno/2009 shield : <display model>,A5,A4,A3,A2
|
||||
// DisplayModule Arduino Uno TFT shield : <display model>,A5,A4,A3,A2
|
||||
//
|
||||
// Arduino Mega:
|
||||
// -------------------
|
||||
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
|
||||
// CTE TFT LCD/SD Shield for Arduino Mega : <display model>,38,39,40,41
|
||||
//
|
||||
// Remember to change the model parameter to suit your display module!
|
||||
//UTFT myGLCD(ITDB32WD,38,39,40,41);
|
||||
|
||||
void setup()
|
||||
{
|
||||
randomSeed(analogRead(5)); //.kbv Due does not like A0
|
||||
pinMode(A0, OUTPUT); //.kbv mcufriend have RD on A0
|
||||
digitalWrite(A0, HIGH);
|
||||
randomSeed(analogRead(0));
|
||||
|
||||
// Setup the LCD
|
||||
myGLCD.InitLCD();
|
||||
@@ -56,7 +66,7 @@ void loop()
|
||||
myGLCD.print("*** Universal Color TFT Display Library ***", CENTER, 1);
|
||||
myGLCD.setBackColor(64, 64, 64);
|
||||
myGLCD.setColor(255,255,0);
|
||||
myGLCD.print("< http://electronics.henningkarlsen.com >", CENTER, 227);
|
||||
myGLCD.print("< http://www.RinkyDinkElectronics.com/ >", CENTER, 227);
|
||||
|
||||
myGLCD.setColor(0, 0, 255);
|
||||
myGLCD.drawRect(0, 14, 399, 225);
|
||||
@@ -331,4 +341,3 @@ void loop()
|
||||
|
||||
delay (10000);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// UTFT_Demo_480x320 (C)2013 Henning Karlsen
|
||||
// web: http://www.henningkarlsen.com/electronics
|
||||
// UTFT_Demo_480x320
|
||||
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
|
||||
// web: http://www.RinkyDinkElectronics.com/
|
||||
//
|
||||
// This program is a demo of how to use most of the functions
|
||||
// of the library with a supported display modules.
|
||||
@@ -10,20 +11,36 @@
|
||||
// This program requires the UTFT library.
|
||||
//
|
||||
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <UTFTGLUE.h>
|
||||
UTFTGLUE myGLCD(0x9488,A2,A1,A3,A4,A0);
|
||||
//################################################
|
||||
// GLUE class that implements the UTFT API
|
||||
// replace UTFT include and constructor statements
|
||||
// remove UTFT font declaration e.g. SmallFont
|
||||
//################################################
|
||||
|
||||
#include <UTFTGLUE.h> //use GLUE class and constructor
|
||||
UTFTGLUE myGLCD(0,A2,A1,A3,A4,A0); //all dummy args
|
||||
|
||||
// Declare which fonts we will be using
|
||||
#if !defined(SmallFont)
|
||||
extern uint8_t SmallFont[]; //.kbv GLUE defines as GFXFont ref
|
||||
#endif
|
||||
//extern uint8_t SmallFont[]; //GLUE defines as GFXFont ref
|
||||
|
||||
// Set the pins to the correct ones for your development shield
|
||||
// ------------------------------------------------------------
|
||||
// Arduino Uno / 2009:
|
||||
// -------------------
|
||||
// Standard Arduino Uno/2009 shield : <display model>,A5,A4,A3,A2
|
||||
// DisplayModule Arduino Uno TFT shield : <display model>,A5,A4,A3,A2
|
||||
//
|
||||
// Arduino Mega:
|
||||
// -------------------
|
||||
// Standard Arduino Mega/Due shield : <display model>,38,39,40,41
|
||||
// CTE TFT LCD/SD Shield for Arduino Mega : <display model>,38,39,40,41
|
||||
//
|
||||
// Remember to change the model parameter to suit your display module!
|
||||
//UTFT myGLCD(CTE32HR,38,39,40,41);
|
||||
|
||||
void setup()
|
||||
{
|
||||
randomSeed(analogRead(5)); //.kbv Due does not like A0
|
||||
pinMode(A0, OUTPUT); //.kbv mcufriend have RD on A0
|
||||
digitalWrite(A0, HIGH);
|
||||
randomSeed(analogRead(0));
|
||||
|
||||
// Setup the LCD
|
||||
myGLCD.InitLCD();
|
||||
@@ -49,7 +66,7 @@ void loop()
|
||||
myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);
|
||||
myGLCD.setBackColor(64, 64, 64);
|
||||
myGLCD.setColor(255,255,0);
|
||||
myGLCD.print("<http://electronics.henningkarlsen.com>", CENTER, 307);
|
||||
myGLCD.print("<http://www.RinkyDinkElectronics.com/>", CENTER, 307);
|
||||
|
||||
myGLCD.setColor(0, 0, 255);
|
||||
myGLCD.drawRect(0, 14, 479, 305);
|
||||
@@ -322,4 +339,3 @@ void loop()
|
||||
|
||||
delay (10000);
|
||||
}
|
||||
|
||||
|
||||
734
examples/LCD_ID_readnew/LCD_ID_readnew.ino
Normal file
734
examples/LCD_ID_readnew/LCD_ID_readnew.ino
Normal file
@@ -0,0 +1,734 @@
|
||||
// adapted from LCD_ID_Reader from http://misc.ws/lcd_information
|
||||
// controllers either read as 16-bit or as a sequence of 8-bit values
|
||||
|
||||
//-- Arduino UNO or Mega 2560 Plugged as shield
|
||||
#define LCD_RST A4 //A1
|
||||
#define LCD_CS A3
|
||||
#define LCD_RS A2
|
||||
#define LCD_WR A1
|
||||
#define LCD_RD A0
|
||||
|
||||
#define LCD_D0 8
|
||||
#define LCD_D1 9
|
||||
#define LCD_D2 2 //10
|
||||
#define LCD_D3 3 //11
|
||||
#define LCD_D4 4
|
||||
#define LCD_D5 5 //13
|
||||
#define LCD_D6 6
|
||||
#define LCD_D7 7
|
||||
|
||||
uint8_t unlock_1520[] = { (0xB0), 2, 0x00, 0x00 };
|
||||
uint8_t unlock_1526[] = { (0xB0), 2, 0x3F, 0x3F };
|
||||
uint8_t unlock_8357[] = { (0xB9), 3, 0xFF, 0x83, 0x57};
|
||||
uint8_t unlock_5310[] = { (0xED), 2, 0x01, 0xFE};
|
||||
uint8_t d5310_0_in[] = { (0xEE), 2, 0xDE, 0x21}; //enter CMD3 8bit args
|
||||
//uint8_t d5310_1[] = { (0x??), 2, 0xDE, 0x21};
|
||||
uint8_t d5310_1_in[] = { (0xBF), 1, 0xAA}; //enter page#1 16bit args
|
||||
uint8_t d5310_1_out[] = { (0x00), 1, 0xAA}; //leave page#1 16bit args
|
||||
uint8_t d1526nvm[] = { (0xE2), 1, 0x3F};
|
||||
uint8_t *unlock = NULL;
|
||||
uint8_t *page_N = NULL;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
while (!Serial) ;
|
||||
Serial.println(F("Read Registers on MCUFRIEND UNO shield"));
|
||||
Serial.println(F("controllers either read as single 16-bit"));
|
||||
Serial.println(F("e.g. the ID is at readReg(0)"));
|
||||
Serial.println(F("or as a sequence of 8-bit values"));
|
||||
Serial.println(F("in special locations (first is dummy)"));
|
||||
Serial.println(F(""));
|
||||
lcdInit();
|
||||
lcdReset(); //ensures that controller is in default state
|
||||
// unlock = unlock_1520;
|
||||
// unlock = unlock_1526;
|
||||
// unlock = unlock_8357;
|
||||
// unlock = unlock_5310;
|
||||
// page_N = d5310_1_in;
|
||||
// for (uint16_t i = 0x00; i <= 0xFE; i++) readReg(i, 10, "f.k");
|
||||
read_regs("diagnose any controller");
|
||||
// read_xxxx("mystery");
|
||||
// read_5310_P0("NT35310 P0");
|
||||
// read_5310_P1("NT35310 P1");
|
||||
// read_61509("R61509 / ILI9326");
|
||||
// read_61526("R61520 / R61526");
|
||||
// read_8357("HX8357X");
|
||||
// read_9320("ILI9320");
|
||||
// read_9327("ILI9327");
|
||||
// read_9338("ILI9302 / ILI9329 / ILI9338 / ILI9341");
|
||||
// read_9481("ILI9481 / HX8357-B / R61581");
|
||||
// read_9486("ILI9486 / 1LI9488");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// put your main code here, to run repeatedly:
|
||||
|
||||
}
|
||||
|
||||
void printhex(uint8_t val)
|
||||
{
|
||||
if (val < 0x10) Serial.print("0");
|
||||
Serial.print(val, HEX);
|
||||
}
|
||||
|
||||
void readReg(uint16_t reg, uint8_t n, const char *msg)
|
||||
{
|
||||
uint8_t val8;
|
||||
lcdReset();
|
||||
lcdSetWriteDir();
|
||||
if (unlock) pushCommand(unlock[0], unlock + 2, unlock[1]);
|
||||
if (page_N) pushCommand(page_N[0], page_N + 2, page_N[1]);
|
||||
Serial.print("reg(0x");
|
||||
printhex(reg >> 8);
|
||||
printhex(reg);
|
||||
Serial.print(")");
|
||||
lcdWriteCommand(reg);
|
||||
lcdSetReadDir();
|
||||
while (n--) {
|
||||
val8 = lcdReadData8();
|
||||
Serial.print(" ");
|
||||
printhex(val8);
|
||||
}
|
||||
lcdSetWriteDir();
|
||||
digitalWrite(LCD_CS, HIGH);
|
||||
|
||||
Serial.print("\t");
|
||||
Serial.println(msg);
|
||||
}
|
||||
|
||||
void lcdInit()
|
||||
{
|
||||
pinMode(LCD_CS, OUTPUT);
|
||||
digitalWrite(LCD_CS, HIGH);
|
||||
pinMode(LCD_RS, OUTPUT);
|
||||
digitalWrite(LCD_RS, HIGH);
|
||||
pinMode(LCD_WR, OUTPUT);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
pinMode(LCD_RD, OUTPUT);
|
||||
digitalWrite(LCD_RD, HIGH);
|
||||
pinMode(LCD_RST, OUTPUT);
|
||||
digitalWrite(LCD_RST, HIGH);
|
||||
}
|
||||
|
||||
void lcdReset()
|
||||
{
|
||||
digitalWrite(LCD_RST, LOW);
|
||||
delay(2);
|
||||
digitalWrite(LCD_RST, HIGH);
|
||||
delay(10); //allow controller to re-start
|
||||
}
|
||||
|
||||
void lcdWrite8(uint16_t data)
|
||||
{
|
||||
digitalWrite(LCD_D0, data & 1);
|
||||
digitalWrite(LCD_D1, (data & 2) >> 1);
|
||||
digitalWrite(LCD_D2, (data & 4) >> 2);
|
||||
digitalWrite(LCD_D3, (data & 8) >> 3);
|
||||
digitalWrite(LCD_D4, (data & 16) >> 4);
|
||||
digitalWrite(LCD_D5, (data & 32) >> 5);
|
||||
digitalWrite(LCD_D6, (data & 64) >> 6);
|
||||
digitalWrite(LCD_D7, (data & 128) >> 7);
|
||||
}
|
||||
|
||||
uint16_t lcdRead8()
|
||||
{
|
||||
uint16_t result = digitalRead(LCD_D7);
|
||||
result <<= 1;
|
||||
result |= digitalRead(LCD_D6);
|
||||
result <<= 1;
|
||||
result |= digitalRead(LCD_D5);
|
||||
result <<= 1;
|
||||
result |= digitalRead(LCD_D4);
|
||||
result <<= 1;
|
||||
result |= digitalRead(LCD_D3);
|
||||
result <<= 1;
|
||||
result |= digitalRead(LCD_D2);
|
||||
result <<= 1;
|
||||
result |= digitalRead(LCD_D1);
|
||||
result <<= 1;
|
||||
result |= digitalRead(LCD_D0);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void lcdSetWriteDir()
|
||||
{
|
||||
uint8_t mode = OUTPUT;
|
||||
pinMode(LCD_D0, mode);
|
||||
pinMode(LCD_D1, mode);
|
||||
pinMode(LCD_D2, mode);
|
||||
pinMode(LCD_D3, mode);
|
||||
pinMode(LCD_D4, mode);
|
||||
pinMode(LCD_D5, mode);
|
||||
pinMode(LCD_D6, mode);
|
||||
pinMode(LCD_D7, mode);
|
||||
}
|
||||
|
||||
|
||||
void lcdSetReadDir()
|
||||
{
|
||||
uint8_t mode = INPUT;
|
||||
pinMode(LCD_D0, mode);
|
||||
pinMode(LCD_D1, mode);
|
||||
pinMode(LCD_D2, mode);
|
||||
pinMode(LCD_D3, mode);
|
||||
pinMode(LCD_D4, mode);
|
||||
pinMode(LCD_D5, mode);
|
||||
pinMode(LCD_D6, mode);
|
||||
pinMode(LCD_D7, mode);
|
||||
}
|
||||
|
||||
void lcdWriteData(uint16_t data)
|
||||
{
|
||||
lcdSetWriteDir();
|
||||
digitalWrite(LCD_CS, LOW);
|
||||
digitalWrite(LCD_RS, HIGH);
|
||||
digitalWrite(LCD_RD, HIGH);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
|
||||
lcdWrite8(data >> 8);
|
||||
|
||||
digitalWrite(LCD_WR, LOW);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
|
||||
lcdWrite8(data);
|
||||
|
||||
digitalWrite(LCD_WR, LOW);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
|
||||
digitalWrite(LCD_CS, HIGH);
|
||||
}
|
||||
|
||||
void lcdWriteCommand(uint16_t command)
|
||||
{
|
||||
lcdSetWriteDir();
|
||||
digitalWrite(LCD_CS, LOW);
|
||||
digitalWrite(LCD_RS, LOW);
|
||||
digitalWrite(LCD_RD, HIGH);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
lcdWrite8(command >> 8);
|
||||
digitalWrite(LCD_WR, LOW);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
lcdWrite8(command);
|
||||
digitalWrite(LCD_WR, LOW);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
// digitalWrite(LCD_CS, HIGH);
|
||||
}
|
||||
|
||||
uint8_t lcdReadData8()
|
||||
{
|
||||
uint8_t result;
|
||||
lcdSetReadDir();
|
||||
digitalWrite(LCD_CS, LOW);
|
||||
digitalWrite(LCD_RS, HIGH);
|
||||
digitalWrite(LCD_RD, HIGH);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
|
||||
digitalWrite(LCD_RD, LOW);
|
||||
delayMicroseconds(10);
|
||||
result = lcdRead8();
|
||||
digitalWrite(LCD_RD, HIGH);
|
||||
|
||||
delayMicroseconds(10);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
uint16_t lcdReadData16()
|
||||
{
|
||||
uint16_t result;
|
||||
result = lcdReadData8() << 8;
|
||||
result |= lcdReadData8();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
void lcdWriteRegister(uint16_t addr, uint16_t data)
|
||||
{
|
||||
lcdWriteCommand(addr);
|
||||
lcdWriteData(data);
|
||||
}
|
||||
|
||||
void pushCommand(uint8_t command, uint8_t *block, int8_t n)
|
||||
{
|
||||
lcdSetWriteDir();
|
||||
digitalWrite(LCD_CS, LOW);
|
||||
digitalWrite(LCD_RS, LOW);
|
||||
digitalWrite(LCD_RD, HIGH);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
lcdWrite8(command);
|
||||
digitalWrite(LCD_WR, LOW);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
digitalWrite(LCD_RS, HIGH);
|
||||
while (n--) {
|
||||
lcdWrite8(*block++);
|
||||
digitalWrite(LCD_WR, LOW);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(LCD_WR, HIGH);
|
||||
}
|
||||
digitalWrite(LCD_CS, HIGH);
|
||||
|
||||
}
|
||||
|
||||
// make all the functions static.
|
||||
// the linker will discard unused anonymous strings.
|
||||
|
||||
static void read_regs(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x00, 2, "ID: ILI9320, ILI9325, ILI9335, ...");
|
||||
readReg(0x04, 4, "Manufacturer ID");
|
||||
readReg(0x09, 5, "Status Register");
|
||||
readReg(0x0A, 2, "Get Powsr Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x30, 5, "PTLAR");
|
||||
readReg(0x33, 7, "VSCRLDEF");
|
||||
readReg(0x61, 2, "RDID1 HX8347-G");
|
||||
readReg(0x62, 2, "RDID2 HX8347-G");
|
||||
readReg(0x63, 2, "RDID3 HX8347-G");
|
||||
readReg(0x64, 2, "RDID1 HX8347-A");
|
||||
readReg(0x65, 2, "RDID2 HX8347-A");
|
||||
readReg(0x66, 2, "RDID3 HX8347-A");
|
||||
readReg(0x67, 2, "RDID Himax HX8347-A");
|
||||
readReg(0x70, 2, "Panel Himax HX8347-A");
|
||||
readReg(0xA1, 5, "RD_DDB SSD1963");
|
||||
readReg(0xB0, 2, "RGB Interface Signal Control");
|
||||
readReg(0xB3, 5, "Frame Memory");
|
||||
readReg(0xB4, 2, "Frame Mode");
|
||||
readReg(0xB6, 5, "Display Control");
|
||||
readReg(0xB7, 2, "Entry Mode Set");
|
||||
readReg(0xBF, 6, "ILI9481, HX8357-B");
|
||||
readReg(0xC0, 9, "Panel Control");
|
||||
readReg(0xC1, 4, "Display Timing");
|
||||
readReg(0xC5, 2, "Frame Rate");
|
||||
readReg(0xC8, 13, "GAMMA");
|
||||
readReg(0xCC, 2, "Panel Control");
|
||||
readReg(0xD0, 4, "Power Control");
|
||||
readReg(0xD1, 4, "VCOM Control");
|
||||
readReg(0xD2, 3, "Power Normal");
|
||||
readReg(0xD3, 4, "ILI9341, ILI9488");
|
||||
readReg(0xD4, 4, "Novatek");
|
||||
readReg(0xDA, 2, "RDID1");
|
||||
readReg(0xDB, 2, "RDID2");
|
||||
readReg(0xDC, 2, "RDID3");
|
||||
readReg(0xE0, 16, "GAMMA-P");
|
||||
readReg(0xE1, 16, "GAMMA-N");
|
||||
readReg(0xEF, 6, "ILI9327");
|
||||
readReg(0xF2, 12, "Adjust Control 2");
|
||||
readReg(0xF6, 4, "Interface Control");
|
||||
}
|
||||
|
||||
static void read_5310_P0(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0xB0, 2, "DISPLAY_CTRL");
|
||||
readReg(0xB1, 4, "PORCH_CTRL");
|
||||
readReg(0xB2, 4, "FRAME_CTRL");
|
||||
readReg(0xB3, 2, "SPI_RGB");
|
||||
readReg(0xB6, 7, "SOURCE_EQ");
|
||||
readReg(0xC0, 5, "PWR_CTRL1");
|
||||
readReg(0xC1, 3, "PWR_CTRL2");
|
||||
readReg(0xC2, 4, "PWR_CTRL3");
|
||||
readReg(0xC3, 2, "PWR_CTRL5");
|
||||
readReg(0xC4, 2, "PWR_CTRL6");
|
||||
readReg(0xC5, 5, "PWR_CTRL7");
|
||||
readReg(0xC6, 5, "PWR_CTRL8");
|
||||
readReg(0xD1, 2, "WRID");
|
||||
readReg(0xD2, 2, "WRID");
|
||||
readReg(0xD3, 2, "WRID");
|
||||
readReg(0xD4, 5, "RDID4");
|
||||
readReg(0xD5, 5, "WRDDB");
|
||||
readReg(0xDE, 4, "EPWR");
|
||||
readReg(0xFF, 2, "PAGE_STATUS");
|
||||
}
|
||||
|
||||
static void read_5310_P1(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
/*
|
||||
readReg(0xB0, 19, "f.k");
|
||||
readReg(0xB1, 7, "f.k");
|
||||
readReg(0xB2, 7, "f.k");
|
||||
readReg(0xB3, 25, "f.k");
|
||||
readReg(0xB4, 7, "f.k");
|
||||
readReg(0xB5, 7, "f.k");
|
||||
readReg(0xB6, 3, "f.k");
|
||||
readReg(0xB7, 23, "f.k");
|
||||
readReg(0xB8, 7, "f.k");
|
||||
readReg(0xBA, 5, "f.k");
|
||||
readReg(0xC0, 19, "f.k");
|
||||
readReg(0xC1, 7, "f.k");
|
||||
readReg(0xC2, 5, "f.k");
|
||||
readReg(0xC3, 49, "f.k");
|
||||
readReg(0xC4, 27, "f.k");
|
||||
readReg(0xC5, 11, "f.k");
|
||||
readReg(0xC6, 7, "f.k");
|
||||
readReg(0xC7, 5, "f.k");
|
||||
readReg(0xC8, 5, "f.k");
|
||||
readReg(0xC9, 17, "f.k");
|
||||
*/
|
||||
readReg(0xE0, 37, "GAMMA_RED_P");
|
||||
readReg(0xE1, 37, "GAMMA_RED_N");
|
||||
readReg(0xE2, 37, "GAMMA_GREEN_P");
|
||||
readReg(0xE3, 37, "GAMMA_GREEN_N");
|
||||
readReg(0xE4, 37, "GAMMA_BLUE_P");
|
||||
readReg(0xE5, 37, "GAMMA_BLUE_N");
|
||||
readReg(0xE6, 33, "CABC_RED");
|
||||
readReg(0xE7, 33, "CABC_GREEN");
|
||||
readReg(0xE8, 33, "CABC_BLUE");
|
||||
// readReg(0xE9, 5, "f.k.");
|
||||
readReg(0xFF, 2, "PAGE_STATUS");
|
||||
}
|
||||
|
||||
static void read_61509(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x0000, 2, "Device Code Read");
|
||||
readReg(0x0001, 2, "Device Output Control");
|
||||
readReg(0x0002, 2, "LCD Waveform Control");
|
||||
readReg(0x0003, 2, "Entry Mode");
|
||||
readReg(0x0007, 2, "Display Control 1");
|
||||
readReg(0x0008, 2, "Display Control 2");
|
||||
readReg(0x0009, 2, "Display Control 3");
|
||||
readReg(0x0010, 2, "Panel Interface Control 1");
|
||||
readReg(0x0011, 2, "Panel Interface Control 2");
|
||||
readReg(0x0012, 2, "Panel Interface Control 3");
|
||||
readReg(0x0013, 2, "Panel Interface Control 4");
|
||||
readReg(0x0100, 2, "Power Control 1");
|
||||
readReg(0x0101, 2, "Power Control 2");
|
||||
readReg(0x0102, 2, "Power Control 3");
|
||||
readReg(0x0103, 2, "Power Control 4");
|
||||
readReg(0x0210, 2, "Horiz SA");
|
||||
readReg(0x0211, 2, "Horiz EA");
|
||||
readReg(0x0212, 2, "Vert SA");
|
||||
readReg(0x0213, 2, "Vert EA");
|
||||
readReg(0x0400, 2, "Base Image NL");
|
||||
readReg(0x0401, 2, "Base Image Control");
|
||||
readReg(0x0404, 2, "Base Image Scroll");
|
||||
}
|
||||
|
||||
static void read_61526(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x04, 4, "Manufacturer ID");
|
||||
readReg(0x0A, 2, "Get Power Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xA1, 6, "RD_DDB Start");
|
||||
readReg(0xB0, 3, "Command Access Protect");
|
||||
readReg(0xB3, 6, "Frame Memory");
|
||||
readReg(0xB4, 2, "Frame Mode");
|
||||
readReg(0xBF, 5, "Device Code Read");
|
||||
readReg(0xC0, 9, "Panel Control");
|
||||
readReg(0xC1, 6, "Display Timing Normal");
|
||||
readReg(0xC3, 6, "Display Timing Idle");
|
||||
readReg(0xC4, 6, "Timing setting");
|
||||
readReg(0xC8, 23, "GAMMA");
|
||||
readReg(0xC9, 23, "GAMMA");
|
||||
readReg(0xCA, 23, "GAMMA");
|
||||
readReg(0xD0, 7, "Power Control");
|
||||
readReg(0xD1, 4, "VCOM Control");
|
||||
readReg(0xD2, 3, "Power Normal");
|
||||
readReg(0xD4, 3, "Power Idle");
|
||||
readReg(0xE0, 4, "NVM Access");
|
||||
readReg(0xE1, 2, "set_DDB");
|
||||
readReg(0xE2, 2, "NVM Load Control");
|
||||
}
|
||||
|
||||
static void read_8357(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x0A, 2, "Get Power Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xA1, 6, "RD_DDB Start");
|
||||
readReg(0xB0, 3, "SETOSC");
|
||||
readReg(0xB1, 8, "SETPOWER");
|
||||
readReg(0xB2, 6, "SETDISPLAY");
|
||||
readReg(0xB3, 5, "SETRGB");
|
||||
readReg(0xB4, 8, "SETCYC");
|
||||
readReg(0xB5, 4, "SETBGP");
|
||||
readReg(0xB6, 3, "SETVCOM");
|
||||
readReg(0xB7, 6, "SETOTP");
|
||||
readReg(0xB9, 4, "SETEXTC");
|
||||
readReg(0xC0, 7, "SETSTBA");
|
||||
readReg(0xC1, 11, "SETDGC");
|
||||
readReg(0xC3, 5, "SETID");
|
||||
readReg(0xC4, 5, "SETDDB");
|
||||
readReg(0xC9, 3, "SETCABC");
|
||||
readReg(0xCC, 2, "SETPANEL");
|
||||
readReg(0xD0, 4, "GETICID");
|
||||
readReg(0xE0, 35, "SETGAMMA");
|
||||
readReg(0xE9, 2, "SETIMAGEI");
|
||||
readReg(0xEA, 2, "SETMESSI");
|
||||
}
|
||||
|
||||
static void read_fk(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x0A, 2, "Get Powsr Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xA1, 6, "RD_DDB Start");
|
||||
readReg(0xB0, 3, "Command Access Protect");
|
||||
readReg(0xBF, 5, "Device Code Read");
|
||||
readReg(0xF0, 4, "f.k.");
|
||||
readReg(0xF2, 18, "f.k.");
|
||||
readReg(0xF3, 2, "f.k.");
|
||||
readReg(0xF4, 14, "f.k.");
|
||||
readReg(0xF5, 11, "f.k.");
|
||||
readReg(0xF6, 10, "f.k.");
|
||||
readReg(0xF7, 4, "f.k.");
|
||||
readReg(0xF8, 2, "f.k.");
|
||||
readReg(0xF9, 2, "f.k.");
|
||||
readReg(0xFA, 12, "f.k.");
|
||||
readReg(0xFB, 2, "f.k.");
|
||||
readReg(0xFC, 2, "f.k.");
|
||||
readReg(0xFD, 12, "f.k.");
|
||||
readReg(0xFE, 2, "f.k.");
|
||||
}
|
||||
|
||||
static void read_xxxx(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x09, 5, "Status Register");
|
||||
readReg(0x0A, 2, "Get Powsr Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xA1, 6, "RD_DDB Start");
|
||||
readReg(0xB0, 3, "Command Access Protect");
|
||||
readReg(0xBF, 5, "Device Code Read");
|
||||
readReg(0xC6, 2, "f.k.");
|
||||
readReg(0xD6, 4, "f.k.");
|
||||
readReg(0xD7, 5, "f.k.");
|
||||
readReg(0xD8, 5, "f.k.");
|
||||
readReg(0xD9, 4, "f.k.");
|
||||
readReg(0xE0, 2, "f.k.");
|
||||
readReg(0xE1, 3, "f.k.");
|
||||
readReg(0xF0, 2, "f.k.");
|
||||
readReg(0xF1, 2, "f.k.");
|
||||
readReg(0xF2, 12, "f.k.");
|
||||
readReg(0xF3, 9, "f.k.");
|
||||
readReg(0xF4, 6, "f.k.");
|
||||
readReg(0xF5, 7, "f.k.");
|
||||
readReg(0xF6, 5, "f.k.");
|
||||
readReg(0xF7, 16, "f.k.");
|
||||
readReg(0xFD, 4, "f.k.");
|
||||
readReg(0xFE, 2, "f.k.");
|
||||
readReg(0xFF, 2, "f.k.");
|
||||
}
|
||||
|
||||
static void read_9320(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x0000, 2, "Device Code Read");
|
||||
readReg(0x0001, 2, "Drive Output Control");
|
||||
readReg(0x0002, 2, "LCD Waveform Control");
|
||||
readReg(0x0003, 2, "Entry Mode");
|
||||
readReg(0x0007, 2, "Display Control 1");
|
||||
readReg(0x0008, 2, "Display Control 2");
|
||||
readReg(0x0009, 2, "Display Control 3");
|
||||
readReg(0x000A, 2, "Display Control 4");
|
||||
readReg(0x0010, 2, "Power Control 1");
|
||||
readReg(0x0011, 2, "Power Control 2");
|
||||
readReg(0x0012, 2, "Power Control 3");
|
||||
readReg(0x0013, 2, "Power Control 4");
|
||||
readReg(0x0014, 2, "Power Control 5");
|
||||
readReg(0x0015, 2, "Power Control 6");
|
||||
readReg(0x0029, 2, "Power Control 7");
|
||||
readReg(0x002B, 2, "Frame Rate");
|
||||
}
|
||||
|
||||
static void read_9327(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x0A, 2, "Get Powsr Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xA1, 6, "RD_DDB Start");
|
||||
readReg(0xB0, 2, "Command Access Protect");
|
||||
readReg(0xB1, 2, "Low Power Control");
|
||||
readReg(0xB3, 5, "Frame Memory");
|
||||
readReg(0xB4, 2, "Frame Mode");
|
||||
readReg(0xB5, 2, "Sub Panel Control");
|
||||
readReg(0xBF, 2, "Backlight Control");
|
||||
readReg(0xC0, 7, "Panel Control");
|
||||
readReg(0xC1, 4, "Display Timing Normal");
|
||||
readReg(0xC3, 4, "Display Timing Idle");
|
||||
readReg(0xC4, 2, "VCOM Timing");
|
||||
readReg(0xC5, 2, "Frame Rate");
|
||||
readReg(0xC6, 2, "Interface Control");
|
||||
readReg(0xC8, 13, "GAMMA");
|
||||
readReg(0xC9, 13, "GAMMA Red/Blue");
|
||||
readReg(0xCC, 2, "Panel Control");
|
||||
readReg(0xD0, 4, "Power Control");
|
||||
readReg(0xD1, 4, "VCOM Control");
|
||||
readReg(0xD2, 3, "Power Normal");
|
||||
readReg(0xD3, 3, "Power Partial");
|
||||
readReg(0xD4, 3, "Power Idle");
|
||||
readReg(0xEF, 6, "Device Code Read");
|
||||
}
|
||||
|
||||
static void read_9338(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x04, 4, "Manufacturer ID");
|
||||
// readReg(0x05, 2, "DSI errors");
|
||||
readReg(0x09, 5, "Status Register");
|
||||
readReg(0x0A, 2, "Get Powsr Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xB0, 2, "Interface Mode");
|
||||
readReg(0xB1, 3, "Frame Rate Normal");
|
||||
readReg(0xB2, 3, "Frame Rate Idle");
|
||||
readReg(0xB3, 3, "Frame Rate Partial");
|
||||
readReg(0xB4, 3, "Inversion Control");
|
||||
readReg(0xB5, 5, "Blanking Porch");
|
||||
readReg(0xB6, 4, "Display Control");
|
||||
readReg(0xB7, 2, "Entry Mode Set");
|
||||
readReg(0xC0, 2, "Power Control 1");
|
||||
readReg(0xC1, 2, "Power Control 2");
|
||||
readReg(0xC2, 2, "Power Control 3");
|
||||
readReg(0xC3, 2, "Power Control 4");
|
||||
readReg(0xC4, 2, "Power Control 5");
|
||||
readReg(0xC5, 3, "VCOM Control 1");
|
||||
readReg(0xC7, 2, "VCOM Control 2");
|
||||
/*
|
||||
readReg(0xD0, 3, "NVM Write");
|
||||
readReg(0xD1, 4, "NVM key");
|
||||
*/
|
||||
readReg(0xD2, 3, "NVM Status");
|
||||
readReg(0xD3, 4, "RDID4");
|
||||
readReg(0xDA, 2, "RDID1");
|
||||
readReg(0xDB, 2, "RDID2");
|
||||
readReg(0xDC, 2, "RDID3");
|
||||
readReg(0xE0, 16, "GAMMA-P");
|
||||
readReg(0xE1, 16, "GAMMA-N");
|
||||
readReg(0xF2, 2, "GAMMA-3G");
|
||||
readReg(0xF6, 4, "Interface Control");
|
||||
}
|
||||
|
||||
static void read_9481(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x0A, 2, "Get Powsr Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xA1, 6, "RD_DDB Start");
|
||||
readReg(0xB0, 2, "Command Access Protect");
|
||||
readReg(0xB3, 5, "Frame Memory");
|
||||
readReg(0xB4, 2, "Frame Mode");
|
||||
readReg(0xBF, 6, "Device Code Read");
|
||||
readReg(0xC0, 6, "Panel Control");
|
||||
readReg(0xC1, 4, "Display Timing Normal");
|
||||
readReg(0xC2, 4, "Display Timing Partial");
|
||||
readReg(0xC3, 4, "Display Timing Idle");
|
||||
readReg(0xC5, 2, "Frame Rate");
|
||||
readReg(0xC6, 2, "Interface Control");
|
||||
readReg(0xC8, 13, "GAMMA");
|
||||
readReg(0xCC, 2, "Panel Control");
|
||||
readReg(0xD0, 4, "Power Control");
|
||||
readReg(0xD1, 4, "VCOM Control");
|
||||
readReg(0xD2, 3, "Power Normal");
|
||||
readReg(0xD3, 3, "Power Partial");
|
||||
readReg(0xD4, 3, "Power Idle");
|
||||
readReg(0xE4, 4, "? SETCABC(HX) (f.k. ILI)");
|
||||
readReg(0xE9, 4, "? Set Panel Related(HX)");
|
||||
readReg(0xEE, 5, "? Set EQ Function(HX)");
|
||||
readReg(0xF0, 4, "f.k (ILI)");
|
||||
readReg(0xF1, 2, "f.k");
|
||||
readReg(0xF2, 4, "f.k");
|
||||
readReg(0xF3, 4, "f.k (ILI)");
|
||||
readReg(0xF4, 4, "f.k");
|
||||
readReg(0xF5, 2, "f.k");
|
||||
readReg(0xF6, 2, "f.k");
|
||||
readReg(0xF7, 4, "f.k");
|
||||
readReg(0xF8, 3, "f.k");
|
||||
readReg(0xF9, 2, "f.k");
|
||||
}
|
||||
|
||||
static void read_9486(char *title)
|
||||
{
|
||||
Serial.println(title);
|
||||
readReg(0x04, 4, "Manufacturer ID");
|
||||
readReg(0x05, 2, "DSI errors");
|
||||
readReg(0x09, 5, "Status Register");
|
||||
readReg(0x0A, 2, "Get Powsr Mode");
|
||||
readReg(0x0B, 2, "Get Address Mode");
|
||||
readReg(0x0C, 2, "Get Pixel Format");
|
||||
readReg(0x0D, 2, "Get Display Mode");
|
||||
readReg(0x0E, 2, "Get Signal Mode");
|
||||
readReg(0x0F, 2, "Get Diagnostic Result");
|
||||
readReg(0xB0, 2, "Interface Mode");
|
||||
readReg(0xB1, 3, "Frame Rate Normal");
|
||||
readReg(0xB2, 3, "Frame Rate Idle");
|
||||
readReg(0xB3, 3, "Frame Rate Partial");
|
||||
readReg(0xB4, 2, "Inversion Control");
|
||||
readReg(0xB5, 5, "Blanking Porch");
|
||||
readReg(0xB6, 4, "Display Control");
|
||||
readReg(0xB7, 2, "Entry Mode Set");
|
||||
readReg(0xBF, 6, "NON-Ilitek Device Code Read");
|
||||
readReg(0xC0, 3, "Power Control 1");
|
||||
readReg(0xC1, 3, "Power Control 2");
|
||||
readReg(0xC2, 2, "Power Control 3");
|
||||
readReg(0xC3, 2, "Power Control 4");
|
||||
readReg(0xC4, 2, "Power Control 5");
|
||||
readReg(0xC5, 5, "VCOM Control 1");
|
||||
/*
|
||||
readReg(0xC6, 3, "CABC Control 1");
|
||||
readReg(0xC8, 3, "CABC Control 2");
|
||||
readReg(0xC9, 2, "CABC Control 3");
|
||||
readReg(0xCA, 2, "CABC Control 4");
|
||||
readReg(0xCB, 2, "CABC Control 5");
|
||||
readReg(0xCC, 2, "CABC Control 6");
|
||||
readReg(0xCD, 2, "CABC Control 7");
|
||||
readReg(0xCE, 2, "CABC Control 8");
|
||||
readReg(0xCF, 2, "CABC Control 9");
|
||||
readReg(0xD0, 3, "NVM Write");
|
||||
readReg(0xD1, 4, "NVM key");
|
||||
readReg(0xD2, 5, "NVM Status");
|
||||
*/
|
||||
readReg(0xD3, 4, "RDID4");
|
||||
readReg(0xDA, 2, "RDID1");
|
||||
readReg(0xDB, 2, "RDID2");
|
||||
readReg(0xDC, 2, "RDID3");
|
||||
readReg(0xE0, 16, "GAMMA-P");
|
||||
readReg(0xE1, 16, "GAMMA-N");
|
||||
readReg(0xF2, 10, "Adjust 2");
|
||||
readReg(0xF7, 5, "Adjust 3");
|
||||
readReg(0xF8, 3, "Adjust 4");
|
||||
readReg(0xF9, 3, "Adjust 5");
|
||||
readReg(0xFB, 2, "SPI Read");
|
||||
readReg(0xFC, 3, "Adjust 6");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,455 +0,0 @@
|
||||
// .kbv: previous sketch wasted too much SRAM with const strings
|
||||
// .kbv: replace all UTFT print const strings with F(string)
|
||||
// .kbv: correct UTFTGLUE settextcursor() for String print
|
||||
|
||||
// https://forum.arduino.cc/index.php?topic=473885.msg3245748#msg3245748
|
||||
// file attached 03 May 2017 21:15 BST
|
||||
|
||||
|
||||
// TouchScreen_Calibr_kbv for MCUFRIEND UNO Display Shields
|
||||
// adapted by David Prentice
|
||||
// for Adafruit's <TouchScreen.h> Resistive Touch Screen Library
|
||||
// from Henning Karlsen's original program. Many Thanks.
|
||||
|
||||
// UTouch_Calibration (C)2013-2014 Henning Karlsen
|
||||
// web: http://www.henningkarlsen.com/electronics
|
||||
//
|
||||
// This program can be used to calibrate the touchscreen
|
||||
// of the display modules.
|
||||
//
|
||||
// It is assumed that the display module is connected to an
|
||||
// appropriate shield or that you know how to change the pin
|
||||
// numbers in the setup.
|
||||
//
|
||||
// Instructions will be given on the display.
|
||||
|
||||
//#define TOUCH_ORIENTATION LANDSCAPE
|
||||
#define TOUCH_ORIENTATION PORTRAIT
|
||||
#define TITLE "TouchScreen.h Calibration"
|
||||
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <UTFTGLUE.h> //we are using UTFT display methods
|
||||
UTFTGLUE myGLCD(0x9341, A2, A1, A3, A4, A0);
|
||||
|
||||
// MCUFRIEND UNO shield shares pins with the TFT. Due does NOT work
|
||||
|
||||
//int XP = 6, XM = A2, YP = A1, YM = 7; //most common configuration (dead Due)
|
||||
int XP = 7, XM = A1, YP = A2, YM = 6; //most common configuration (WHITE Due)
|
||||
|
||||
//#include "TouchScreen_kbv.h" //Local Library
|
||||
//TouchScreen_kbv myTouch(XP, YP, XM, YM, 300);
|
||||
#include <TouchScreen.h> //Global Library
|
||||
TouchScreen myTouch(XP, YP, XM, YM, 300);
|
||||
TSPoint tp; //Touchscreen_due branch uses Point
|
||||
|
||||
void readResistiveTouch(void)
|
||||
{
|
||||
tp = myTouch.getPoint();
|
||||
pinMode(YP, OUTPUT); //restore shared pins
|
||||
pinMode(XM, OUTPUT);
|
||||
}
|
||||
|
||||
bool ISPRESSED(void)
|
||||
{
|
||||
// .kbv this was too sensitive !!
|
||||
// now touch has to be stable for 50ms
|
||||
int count = 0;
|
||||
bool state, oldstate;
|
||||
while (count < 10) {
|
||||
readResistiveTouch();
|
||||
state = tp.z > 180; // .kbv was >20 && < 1000
|
||||
if (state == oldstate) count++;
|
||||
else count = 0;
|
||||
oldstate = state;
|
||||
delay(5);
|
||||
}
|
||||
return oldstate;
|
||||
}
|
||||
|
||||
void showpoint(void)
|
||||
{
|
||||
Serial.print("\r\nx="); Serial.print(tp.x);
|
||||
Serial.print(" y="); Serial.print(tp.y);
|
||||
Serial.print(" z="); Serial.print(tp.z);
|
||||
}
|
||||
|
||||
// ************************************
|
||||
// DO NOT EDIT ANYTHING BELOW THIS LINE
|
||||
// ************************************
|
||||
|
||||
// Declare which fonts we will be using
|
||||
#if defined(SmallFont) //.kbv new GLUE defines FreeSmallFont
|
||||
#undef SmallFont //.kbv lose it
|
||||
#define SmallFont NULL //.kbv use System Font
|
||||
#else
|
||||
extern uint8_t SmallFont[]; //.kbv
|
||||
#endif
|
||||
|
||||
uint32_t cx, cy;
|
||||
uint32_t rx[8], ry[8];
|
||||
int32_t clx, crx, cty, cby;
|
||||
float px, py;
|
||||
int dispx, dispy, text_y_center, swapxy;
|
||||
uint32_t calx, caly, cals;
|
||||
char buf[13];
|
||||
|
||||
void showpins(int A, int D, int value, const char *msg)
|
||||
{
|
||||
char buf[40];
|
||||
sprintf(buf, "%s (A%d, D%d) = %d", msg, A - A0, D, value);
|
||||
Serial.println(buf);
|
||||
}
|
||||
|
||||
boolean diagnose_pins()
|
||||
{
|
||||
int i, j, value, Apins[2], Dpins[2], Values[2], found = 0;
|
||||
// Serial.begin(9600);
|
||||
Serial.println("Making all control and bus pins INPUT_PULLUP");
|
||||
Serial.println("Typical 30k Analog pullup with corresponding pin");
|
||||
Serial.println("would read low when digital is written LOW");
|
||||
Serial.println("e.g. reads ~25 for 300R X direction");
|
||||
Serial.println("e.g. reads ~30 for 500R Y direction");
|
||||
Serial.println("");
|
||||
for (i = A0; i < A5; i++) pinMode(i, INPUT_PULLUP);
|
||||
for (i = 2; i < 10; i++) pinMode(i, INPUT_PULLUP);
|
||||
for (i = A0; i < A4; i++) {
|
||||
for (j = 5; j < 10; j++) {
|
||||
pinMode(j, OUTPUT);
|
||||
digitalWrite(j, LOW);
|
||||
value = analogRead(i); // ignore first reading
|
||||
value = analogRead(i);
|
||||
if (value < 100) {
|
||||
showpins(i, j, value, "Testing :");
|
||||
if (found < 2) {
|
||||
Apins[found] = i;
|
||||
Dpins[found] = j;
|
||||
Values[found] = value;
|
||||
found++;
|
||||
}
|
||||
}
|
||||
pinMode(j, INPUT_PULLUP);
|
||||
}
|
||||
}
|
||||
if (found == 2) {
|
||||
Serial.println("Diagnosing as:-");
|
||||
int idx = Values[0] < Values[1];
|
||||
for (i = 0; i < 2; i++) {
|
||||
showpins(Apins[i], Dpins[i], Values[i],
|
||||
(Values[i] < Values[!i]) ? "XM,XP: " : "YP,YM: ");
|
||||
}
|
||||
XM = Apins[!idx]; XP = Dpins[!idx]; YP = Apins[idx]; YM = Dpins[idx];
|
||||
// myTouch = TouchScreen_kbv(XP, YP, XM, YM, 300); //Local library
|
||||
myTouch = TouchScreen(XP, YP, XM, YM, 300); //Global library
|
||||
return true;
|
||||
}
|
||||
Serial.println("BROKEN TOUCHSCREEN");
|
||||
return false;
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
Serial.println(TITLE);
|
||||
bool ret = true;
|
||||
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega2560__)
|
||||
ret = diagnose_pins();
|
||||
#else
|
||||
Serial.println("Only AVR can diagnose Touch Pins");
|
||||
Serial.println("Other targets use default Pins");
|
||||
char buf[40];
|
||||
sprintf(buf, "Touch Pin Wiring XP=%d XM=A%d YP=A%d YM=%d",
|
||||
XP, XM - A0, YP - A0, YM);
|
||||
Serial.println(buf);
|
||||
#endif
|
||||
digitalWrite(A0, HIGH);
|
||||
pinMode(A0, OUTPUT);
|
||||
myGLCD.InitLCD(TOUCH_ORIENTATION);
|
||||
myGLCD.clrScr();
|
||||
myGLCD.setFont(SmallFont);
|
||||
dispx = myGLCD.getDisplayXSize();
|
||||
dispy = myGLCD.getDisplayYSize();
|
||||
text_y_center = (dispy / 2) - 6;
|
||||
if (ret == false) {
|
||||
myGLCD.print(F("BROKEN TOUCHSCREEN"), CENTER, dispy / 2);
|
||||
while (1);
|
||||
}
|
||||
}
|
||||
|
||||
void drawCrossHair(int x, int y)
|
||||
{
|
||||
myGLCD.drawRect(x - 10, y - 10, x + 10, y + 10);
|
||||
myGLCD.drawLine(x - 5, y, x + 5, y);
|
||||
myGLCD.drawLine(x, y - 5, x, y + 5);
|
||||
}
|
||||
|
||||
void readCoordinates()
|
||||
{
|
||||
int iter = 5000;
|
||||
int failcount = 0;
|
||||
int cnt = 0;
|
||||
uint32_t tx = 0;
|
||||
uint32_t ty = 0;
|
||||
boolean OK = false;
|
||||
|
||||
while (OK == false)
|
||||
{
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.print(F("* PRESS *"), CENTER, text_y_center);
|
||||
while (ISPRESSED() == false) {}
|
||||
myGLCD.print(F("* HOLD! *"), CENTER, text_y_center);
|
||||
cnt = 0;
|
||||
iter = 400;
|
||||
do
|
||||
{
|
||||
readResistiveTouch();
|
||||
// showpoint(tp);
|
||||
if (tp.z > 20 && tp.z < 1000)
|
||||
{
|
||||
tx += tp.x;
|
||||
ty += tp.y;
|
||||
cnt++;
|
||||
}
|
||||
else
|
||||
failcount++;
|
||||
} while ((cnt < iter) && (failcount < 10000));
|
||||
if (cnt >= iter)
|
||||
{
|
||||
OK = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
tx = 0;
|
||||
ty = 0;
|
||||
cnt = 0;
|
||||
}
|
||||
if (failcount >= 10000)
|
||||
fail();
|
||||
}
|
||||
|
||||
cx = tx / iter;
|
||||
cy = ty / iter;
|
||||
}
|
||||
|
||||
void calibrate(int x, int y, int i)
|
||||
{
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
drawCrossHair(x, y);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
readCoordinates();
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.print(F("* RELEASE *"), CENTER, text_y_center);
|
||||
myGLCD.setColor(80, 80, 80);
|
||||
drawCrossHair(x, y);
|
||||
rx[i] = cx;
|
||||
ry[i] = cy;
|
||||
Serial.print("\r\ncx="); Serial.print(cx);
|
||||
Serial.print(" cy="); Serial.print(cy);
|
||||
while (ISPRESSED() == true) {}
|
||||
}
|
||||
|
||||
void waitForTouch()
|
||||
{
|
||||
while (ISPRESSED() == true) {}
|
||||
while (ISPRESSED() == false) {}
|
||||
while (ISPRESSED() == true) {}
|
||||
}
|
||||
|
||||
void toHex(uint32_t num)
|
||||
{
|
||||
buf[0] = '0';
|
||||
buf[1] = 'x';
|
||||
buf[10] = 'U';
|
||||
buf[11] = 'L';
|
||||
buf[12] = 0;
|
||||
for (int zz = 9; zz > 1; zz--)
|
||||
{
|
||||
if ((num & 0xF) > 9)
|
||||
buf[zz] = (num & 0xF) + 55;
|
||||
else
|
||||
buf[zz] = (num & 0xF) + 48;
|
||||
num = num >> 4;
|
||||
}
|
||||
}
|
||||
|
||||
void startup()
|
||||
{
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRect(0, 0, dispx - 1, 13);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.drawLine(0, 14, dispx - 1, 14);
|
||||
myGLCD.print(TITLE, CENTER, 1);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
|
||||
myGLCD.print(F("#define NUMSAMPLES 3 in Library"), LEFT, 18);
|
||||
myGLCD.print(F("Use a stylus or something"), LEFT, 30);
|
||||
myGLCD.print(F("similar to touch as close"), LEFT, 42);
|
||||
myGLCD.print(F("to the center of the"), LEFT, 54);
|
||||
myGLCD.print(F("highlighted crosshair as"), LEFT, 66);
|
||||
myGLCD.print(F("possible. Keep as still as"), LEFT, 78);
|
||||
myGLCD.print(F("possible and keep holding"), LEFT, 90);
|
||||
myGLCD.print(F("until the highlight is"), LEFT, 102);
|
||||
myGLCD.print(F("removed. Repeat for all"), LEFT, 114);
|
||||
myGLCD.print(F("crosshairs in sequence."), LEFT, 126);
|
||||
myGLCD.print(F("Touch screen to continue"), CENTER, 162);
|
||||
|
||||
waitForTouch();
|
||||
}
|
||||
|
||||
void showNumI(char *msg, uint32_t val, int x, int y)
|
||||
{
|
||||
myGLCD.print(msg, x, y);
|
||||
myGLCD.printNumI(val, x + 50, y);
|
||||
}
|
||||
|
||||
void done()
|
||||
{
|
||||
uint16_t TS_LEFT, TS_RT, TS_TOP, TS_BOT, TS_WID, TS_HT, TS_SWAP;
|
||||
int16_t tmp;
|
||||
char buf[60];
|
||||
myGLCD.clrScr();
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRect(0, 0, dispx - 1, 13);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.drawLine(0, 14, dispx - 1, 14);
|
||||
myGLCD.print(TITLE, CENTER, 1);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
myGLCD.print(F("To use the new calibration"), LEFT, 30);
|
||||
myGLCD.print(F("settings you must map the values"), LEFT, 42);
|
||||
myGLCD.print(F("from Point p = ts.getPoint() e.g. "), LEFT, 54);
|
||||
myGLCD.print(F("x = map(p.x, LEFT, RT, 0, tft.width());"), LEFT, 66);
|
||||
myGLCD.print(F("y = map(p.y, TOP, BOT, 0, tft.height());"), LEFT, 78);
|
||||
myGLCD.print(F("swap p.x and p.y if diff ORIENTATION"), LEFT, 90);
|
||||
|
||||
//.kbv show human values
|
||||
TS_LEFT = (calx >> 14) & 0x3FFF;
|
||||
TS_RT = (calx >> 0) & 0x3FFF;
|
||||
TS_TOP = (caly >> 14) & 0x3FFF;
|
||||
TS_BOT = (caly >> 0) & 0x3FFF;
|
||||
TS_WID = ((cals >> 12) & 0x0FFF) + 1;
|
||||
TS_HT = ((cals >> 0) & 0x0FFF) + 1;
|
||||
TS_SWAP = (cals >> 31);
|
||||
int y = 120;
|
||||
Serial.println("");
|
||||
sprintf(buf, "Sketch is %s %d x %d",
|
||||
TOUCH_ORIENTATION ? "LANDSCAPE" : "PORTRAIT", TS_WID, TS_HT);
|
||||
myGLCD.print(buf, 0, y);
|
||||
Serial.println(buf);
|
||||
if (TOUCH_ORIENTATION == LANDSCAPE) { //always show PORTRAIT first
|
||||
tmp = TS_LEFT, TS_LEFT = TS_BOT, TS_BOT = TS_RT, TS_RT = TS_TOP, TS_TOP = tmp;
|
||||
tmp = TS_WID, TS_WID = TS_HT, TS_HT = tmp;
|
||||
}
|
||||
sprintf(buf, "PORTRAIT CALIBRATION %d x %d", TS_WID, TS_HT);
|
||||
myGLCD.print(buf, 0, y += 24);
|
||||
Serial.println(buf);
|
||||
sprintf(buf, "x = map(p.x, LEFT=%d, RT=%d, 0, %d)", TS_LEFT, TS_RT, TS_WID);
|
||||
myGLCD.print(buf, 0, y += 12);
|
||||
Serial.println(buf);
|
||||
sprintf(buf, "y = map(p.y, TOP=%d, BOT=%d, 0, %d)", TS_TOP, TS_BOT, TS_HT);
|
||||
myGLCD.print(buf, 0, y += 12);
|
||||
Serial.println(buf);
|
||||
sprintf(buf, "Touch Pin Wiring XP=%d XM=A%d YP=A%d YM=%d",
|
||||
XP, XM - A0, YP - A0, YM);
|
||||
myGLCD.print(buf, 0, y += 24);
|
||||
Serial.println(buf);
|
||||
|
||||
tmp = TS_LEFT, TS_LEFT = TS_TOP, TS_TOP = TS_RT, TS_RT = TS_BOT, TS_BOT = tmp;
|
||||
tmp = TS_WID, TS_WID = TS_HT, TS_HT = tmp;
|
||||
|
||||
sprintf(buf, "LANDSCAPE CALIBRATION %d x %d", TS_WID, TS_HT);
|
||||
myGLCD.print(buf, 0, y += 24);
|
||||
Serial.println(buf);
|
||||
sprintf(buf, "x = map(p.y, LEFT=%d, RT=%d, 0, %d)", TS_LEFT, TS_RT, TS_WID);
|
||||
myGLCD.print(buf, 0, y += 12);
|
||||
Serial.println(buf);
|
||||
sprintf(buf, "y = map(p.x, TOP=%d, BOT=%d, 0, %d)", TS_TOP, TS_BOT, TS_HT);
|
||||
myGLCD.print(buf, 0, y += 12);
|
||||
Serial.println(buf);
|
||||
}
|
||||
|
||||
void fail()
|
||||
{
|
||||
myGLCD.clrScr();
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRect(0, 0, dispx - 1, 13);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.drawLine(0, 14, dispx - 1, 14);
|
||||
myGLCD.print(F("Touch Calibration FAILED"), CENTER, 1);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
|
||||
myGLCD.print(F("Unable to read the position"), LEFT, 30);
|
||||
myGLCD.print(F("of the press. This is a"), LEFT, 42);
|
||||
myGLCD.print(F("hardware issue and can"), LEFT, 54);
|
||||
myGLCD.print(F("not be corrected in"), LEFT, 66);
|
||||
myGLCD.print(F("software."), LEFT, 78);
|
||||
myGLCD.print(F("check XP, XM pins with a multimeter"), LEFT, 102);
|
||||
myGLCD.print(F("check YP, YM pins with a multimeter"), LEFT, 114);
|
||||
myGLCD.print(F("should be about 300 ohms"), LEFT, 126);
|
||||
|
||||
while (true) {};
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
startup();
|
||||
|
||||
delay(100);
|
||||
myGLCD.clrScr();
|
||||
myGLCD.setColor(80, 80, 80);
|
||||
drawCrossHair(dispx - 11, 10);
|
||||
drawCrossHair(dispx / 2, 10);
|
||||
drawCrossHair(10, 10);
|
||||
drawCrossHair(dispx - 11, dispy / 2);
|
||||
drawCrossHair(10, dispy / 2);
|
||||
drawCrossHair(dispx - 11, dispy - 11);
|
||||
drawCrossHair(dispx / 2, dispy - 11);
|
||||
drawCrossHair(10, dispy - 11);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.print(F("***********"), CENTER, text_y_center - 12);
|
||||
myGLCD.print(F("***********"), CENTER, text_y_center + 12);
|
||||
|
||||
calibrate(10, 10, 0);
|
||||
calibrate(10, dispy / 2, 1);
|
||||
calibrate(10, dispy - 11, 2);
|
||||
calibrate(dispx / 2, 10, 3);
|
||||
calibrate(dispx / 2, dispy - 11, 4);
|
||||
calibrate(dispx - 11, 10, 5);
|
||||
calibrate(dispx - 11, dispy / 2, 6);
|
||||
calibrate(dispx - 11, dispy - 11, 7);
|
||||
|
||||
cals = (long(dispx - 1) << 12) + (dispy - 1);
|
||||
if (TOUCH_ORIENTATION == PORTRAIT) swapxy = rx[2] - rx[0];
|
||||
else swapxy = ry[2] - ry[0];
|
||||
swapxy = (swapxy < -500 || swapxy > 500);
|
||||
if ((TOUCH_ORIENTATION == PORTRAIT) ^ (swapxy != 0)) {
|
||||
clx = (rx[0] + rx[1] + rx[2]) / 3;
|
||||
crx = (rx[5] + rx[6] + rx[7]) / 3;
|
||||
cty = (ry[0] + ry[3] + ry[5]) / 3;
|
||||
cby = (ry[2] + ry[4] + ry[7]) / 3;
|
||||
} else {
|
||||
clx = (ry[0] + ry[1] + ry[2]) / 3;
|
||||
crx = (ry[5] + ry[6] + ry[7]) / 3;
|
||||
cty = (rx[0] + rx[3] + rx[5]) / 3;
|
||||
cby = (rx[2] + rx[4] + rx[7]) / 3;
|
||||
}
|
||||
px = float(crx - clx) / (dispx - 20);
|
||||
py = float(cby - cty) / (dispy - 20);
|
||||
// px = 0;
|
||||
clx -= px * 10;
|
||||
crx += px * 10;
|
||||
cty -= py * 10;
|
||||
cby += py * 10;
|
||||
|
||||
calx = (long(clx) << 14) + long(crx);
|
||||
caly = (long(cty) << 14) + long(cby);
|
||||
if (swapxy)
|
||||
cals |= (1L << 31);
|
||||
|
||||
done();
|
||||
while (true) {}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,57 +2,25 @@
|
||||
|
||||
// different mcufriend shields have Touchscreen on different pins
|
||||
// and rotation.
|
||||
// Run the UTouch_calibr_kbv sketch for calibration of your shield
|
||||
// Run the TouchScreen_Calibr_native sketch for calibration of your shield
|
||||
|
||||
#include <Adafruit_GFX.h> // Core graphics library
|
||||
//#include <Adafruit_TFTLCD.h> // Hardware-specific library
|
||||
//Adafruit_TFTLCD tft(A3, A2, A1, A0, A4);
|
||||
#include <MCUFRIEND_kbv.h>
|
||||
MCUFRIEND_kbv tft; // hard-wired for UNO shields anyway.
|
||||
#include <TouchScreen.h>
|
||||
|
||||
#if defined(__SAM3X8E__)
|
||||
#undef __FlashStringHelper::F(string_literal)
|
||||
#define F(string_literal) string_literal
|
||||
#endif
|
||||
char *name = "Please Calibrate."; //edit name of shield
|
||||
const int XP=6,XM=A2,YP=A1,YM=7; //ID=0x9341
|
||||
const int TS_LEFT=907,TS_RT=136,TS_TOP=942,TS_BOT=139;
|
||||
|
||||
// These are the pins for some typical shields!
|
||||
// S6D0154: YP=A1, XM=A2, YM=7, XP=6
|
||||
// ST7783 : YP=A2, XM=A1, YM=6, XP=7
|
||||
// ILI9320: YP=A2, XM=A3, YM=8, XP=9
|
||||
// ILI9325: YP=A1, XM=A2, YM=7, XP=6
|
||||
// ILI9325BG: YP=A2, XM=A1, YM=6, XP=7
|
||||
// ILI9341: YP=A2, XM=A1, YM=7, XP=6
|
||||
// ILI9488: YP=A1, XM=A2, YM=7, XP=6
|
||||
// R65109V: YP=A2, XM=A1, YM=6, XP=7
|
||||
|
||||
// most mcufriend shields use these pins and Portrait mode:
|
||||
uint8_t YP = A1; // must be an analog pin, use "An" notation!
|
||||
uint8_t XM = A2; // must be an analog pin, use "An" notation!
|
||||
uint8_t YM = 7; // can be a digital pin
|
||||
uint8_t XP = 6; // can be a digital pin
|
||||
uint8_t SwapXY = 0;
|
||||
|
||||
uint16_t TS_LEFT = 920;
|
||||
uint16_t TS_RT = 150;
|
||||
uint16_t TS_TOP = 940;
|
||||
uint16_t TS_BOT = 120;
|
||||
char *name = "Unknown controller";
|
||||
|
||||
// For better pressure precision, we need to know the resistance
|
||||
// between X+ and X- Use any multimeter to read it
|
||||
// For the one we're using, its 300 ohms across the X plate
|
||||
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
|
||||
TSPoint tp;
|
||||
|
||||
#define MINPRESSURE 20
|
||||
#define MINPRESSURE 200
|
||||
#define MAXPRESSURE 1000
|
||||
|
||||
#define SWAP(a, b) {uint16_t tmp = a; a = b; b = tmp;}
|
||||
|
||||
int16_t BOXSIZE;
|
||||
int16_t PENRADIUS = 3;
|
||||
uint16_t identifier, oldcolor, currentcolor;
|
||||
int16_t PENRADIUS = 1;
|
||||
uint16_t ID, oldcolor, currentcolor;
|
||||
uint8_t Orientation = 0; //PORTRAIT
|
||||
|
||||
// Assign human-readable names to some common 16-bit color values:
|
||||
@@ -67,17 +35,19 @@ uint8_t Orientation = 0; //PORTRAIT
|
||||
|
||||
void show_Serial(void)
|
||||
{
|
||||
Serial.print(F("Found "));
|
||||
Serial.print(name);
|
||||
Serial.println(F(" LCD driver"));
|
||||
Serial.println(F("Most Touch Screens use pins 6, 7, A1, A2"));
|
||||
Serial.println(F("But they can be in ANY order"));
|
||||
Serial.println(F("e.g. right to left or bottom to top"));
|
||||
Serial.println(F("or wrong direction"));
|
||||
Serial.println(F("Edit name and calibration statements\n"));
|
||||
Serial.println(name);
|
||||
Serial.print(F("ID=0x"));
|
||||
Serial.println(identifier, HEX);
|
||||
Serial.println(ID, HEX);
|
||||
Serial.println("Screen is " + String(tft.width()) + "x" + String(tft.height()));
|
||||
Serial.println("Calibration is: ");
|
||||
Serial.println("LEFT = " + String(TS_LEFT) + " RT = " + String(TS_RT));
|
||||
Serial.println("TOP = " + String(TS_TOP) + " BOT = " + String(TS_BOT));
|
||||
Serial.print("Wiring is: ");
|
||||
Serial.println(SwapXY ? "SWAPXY" : "PORTRAIT");
|
||||
Serial.println("Wiring is always PORTRAIT");
|
||||
Serial.println("YP=" + String(YP) + " XM=" + String(XM));
|
||||
Serial.println("YM=" + String(YM) + " XP=" + String(XP));
|
||||
}
|
||||
@@ -85,23 +55,18 @@ void show_Serial(void)
|
||||
void show_tft(void)
|
||||
{
|
||||
tft.setCursor(0, 0);
|
||||
tft.setTextSize(2);
|
||||
tft.print(F("Found "));
|
||||
tft.print(name);
|
||||
tft.println(F(" LCD"));
|
||||
tft.setTextSize(1);
|
||||
tft.print(F("ID=0x"));
|
||||
tft.println(identifier, HEX);
|
||||
tft.println(ID, HEX);
|
||||
tft.println("Screen is " + String(tft.width()) + "x" + String(tft.height()));
|
||||
tft.println("Calibration is: ");
|
||||
tft.println("");
|
||||
tft.setTextSize(2);
|
||||
tft.println(name);
|
||||
tft.setTextSize(1);
|
||||
tft.println("PORTRAIT Values:");
|
||||
tft.println("LEFT = " + String(TS_LEFT) + " RT = " + String(TS_RT));
|
||||
tft.println("TOP = " + String(TS_TOP) + " BOT = " + String(TS_BOT));
|
||||
tft.print("\nWiring is: ");
|
||||
if (SwapXY) {
|
||||
tft.setTextColor(CYAN);
|
||||
tft.setTextSize(2);
|
||||
}
|
||||
tft.println(SwapXY ? "SWAPXY" : "PORTRAIT");
|
||||
tft.println("\nWiring is: ");
|
||||
tft.println("YP=" + String(YP) + " XM=" + String(XM));
|
||||
tft.println("YM=" + String(YM) + " XP=" + String(XP));
|
||||
tft.setTextSize(2);
|
||||
@@ -115,8 +80,6 @@ void show_tft(void)
|
||||
tp = ts.getPoint();
|
||||
pinMode(XM, OUTPUT);
|
||||
pinMode(YP, OUTPUT);
|
||||
pinMode(XP, OUTPUT);
|
||||
pinMode(YM, OUTPUT);
|
||||
if (tp.z < MINPRESSURE || tp.z > MAXPRESSURE) continue;
|
||||
if (tp.x > 450 && tp.x < 570 && tp.y > 450 && tp.y < 570) break;
|
||||
tft.setCursor(0, (tft.height() * 3) / 4);
|
||||
@@ -128,80 +91,11 @@ void show_tft(void)
|
||||
void setup(void)
|
||||
{
|
||||
uint16_t tmp;
|
||||
Serial.begin(9600);
|
||||
|
||||
tft.reset();
|
||||
identifier = tft.readID();
|
||||
// if (identifier == 0) identifier = 0x9341;
|
||||
if (0) {
|
||||
} else if (identifier == 0x0154) {
|
||||
name = "S6D0154";
|
||||
TS_LEFT = 914; TS_RT = 181; TS_TOP = 957; TS_BOT = 208;
|
||||
} else if (identifier == 0x5408) { //thanks gazialankus
|
||||
name = "SPFD5408";
|
||||
TS_LEFT = 150; TS_RT = 960; TS_TOP = 155; TS_BOT = 925;
|
||||
SwapXY = 1;
|
||||
} else if (identifier == 0x7783) {
|
||||
name = "ST7781";
|
||||
TS_LEFT = 865; TS_RT = 155; TS_TOP = 942; TS_BOT = 153;
|
||||
SwapXY = 1;
|
||||
} else if (identifier == 0x7789) {
|
||||
name = "ST7789V";
|
||||
YP = A2; XM = A1; YM = 7; XP = 6;
|
||||
TS_LEFT = 906; TS_RT = 169; TS_TOP = 161; TS_BOT = 919;
|
||||
} else if (identifier == 0x9320) {
|
||||
name = "ILI9320";
|
||||
YP = A3; XM = A2; YM = 9; XP = 8;
|
||||
TS_LEFT = 902; TS_RT = 137; TS_TOP = 941; TS_BOT = 134;
|
||||
} else if (identifier == 0x9325) {
|
||||
name = "ILI9325";
|
||||
TS_LEFT = 900; TS_RT = 103; TS_TOP = 96; TS_BOT = 904;
|
||||
} else if (identifier == 0x9325) {
|
||||
name = "ILI9325 Green Dog";
|
||||
TS_LEFT = 900; TS_RT = 130; TS_TOP = 940; TS_BOT = 130;
|
||||
} else if (identifier == 0x9327) {
|
||||
name = "ILI9327";
|
||||
TS_LEFT = 899; TS_RT = 135; TS_TOP = 935; TS_BOT = 79;
|
||||
SwapXY = 1;
|
||||
} else if (identifier == 0x9329) {
|
||||
name = "ILI9329";
|
||||
TS_LEFT = 143; TS_RT = 885; TS_TOP = 941; TS_BOT = 131;
|
||||
SwapXY = 1;
|
||||
} else if (identifier == 0x9341) {
|
||||
name = "ILI9341 BLUE";
|
||||
TS_LEFT = 920; TS_RT = 139; TS_TOP = 944; TS_BOT = 150;
|
||||
SwapXY = 0;
|
||||
} else if (identifier == 0) {
|
||||
name = "ILI9341 DealExtreme";
|
||||
TS_LEFT = 893; TS_RT = 145; TS_TOP = 930; TS_BOT = 135;
|
||||
SwapXY = 1;
|
||||
} else if (identifier == 0 || identifier == 0x9341) {
|
||||
name = "ILI9341";
|
||||
TS_LEFT = 128; TS_RT = 911; TS_TOP = 105; TS_BOT = 908;
|
||||
SwapXY = 1;
|
||||
} else if (identifier == 0x9486) {
|
||||
name = "ILI9486";
|
||||
TS_LEFT = 904; TS_RT = 170; TS_TOP = 950; TS_BOT = 158;
|
||||
} else if (identifier == 0x9488) {
|
||||
name = "ILI9488";
|
||||
TS_LEFT = 904; TS_RT = 170; TS_TOP = 950; TS_BOT = 158;
|
||||
} else if (identifier == 0xB509) {
|
||||
name = "R61509V";
|
||||
TS_LEFT = 889; TS_RT = 149; TS_TOP = 106; TS_BOT = 975;
|
||||
SwapXY = 1;
|
||||
} else {
|
||||
name = "unknown";
|
||||
}
|
||||
switch (Orientation) { // adjust for different aspects
|
||||
case 0: break; //no change, calibrated for PORTRAIT
|
||||
case 1: tmp = TS_LEFT, TS_LEFT = TS_BOT, TS_BOT = TS_RT, TS_RT = TS_TOP, TS_TOP = tmp; break;
|
||||
case 2: SWAP(TS_LEFT, TS_RT); SWAP(TS_TOP, TS_BOT); break;
|
||||
case 3: tmp = TS_LEFT, TS_LEFT = TS_TOP, TS_TOP = TS_RT, TS_RT = TS_BOT, TS_BOT = tmp; break;
|
||||
}
|
||||
|
||||
ID = tft.readID();
|
||||
tft.begin(ID);
|
||||
Serial.begin(9600);
|
||||
ts = TouchScreen(XP, YP, XM, YM, 300); //call the constructor AGAIN with new values.
|
||||
tft.begin(identifier);
|
||||
show_Serial();
|
||||
tft.setRotation(Orientation);
|
||||
tft.fillScreen(BLACK);
|
||||
@@ -230,22 +124,34 @@ void loop()
|
||||
// if sharing pins, you'll need to fix the directions of the touchscreen pins
|
||||
pinMode(XM, OUTPUT);
|
||||
pinMode(YP, OUTPUT);
|
||||
pinMode(XP, OUTPUT);
|
||||
pinMode(YM, OUTPUT);
|
||||
// digitalWrite(XM, HIGH);
|
||||
// digitalWrite(YP, HIGH);
|
||||
// we have some minimum pressure we consider 'valid'
|
||||
// pressure of 0 means no pressing!
|
||||
|
||||
if (tp.z > MINPRESSURE && tp.z < MAXPRESSURE) {
|
||||
// is controller wired for Landscape ? or are we oriented in Landscape?
|
||||
if (SwapXY != (Orientation & 1)) SWAP(tp.x, tp.y);
|
||||
// scale from 0->1023 to tft.width i.e. left = 0, rt = width
|
||||
// most mcufriend have touch (with icons) that extends below the TFT
|
||||
// screens without icons need to reserve a space for "erase"
|
||||
// scale the ADC values from ts.getPoint() to screen values e.g. 0-239
|
||||
xpos = map(tp.x, TS_LEFT, TS_RT, 0, tft.width());
|
||||
ypos = map(tp.y, TS_TOP, TS_BOT, 0, tft.height());
|
||||
//
|
||||
// Calibration is true for PORTRAIT. tp.y is always long dimension
|
||||
// map to your current pixel orientation
|
||||
switch (Orientation) {
|
||||
case 0:
|
||||
xpos = map(tp.x, TS_LEFT, TS_RT, 0, tft.width());
|
||||
ypos = map(tp.y, TS_TOP, TS_BOT, 0, tft.height());
|
||||
break;
|
||||
case 1:
|
||||
xpos = map(tp.y, TS_TOP, TS_BOT, 0, tft.width());
|
||||
ypos = map(tp.x, TS_RT, TS_LEFT, 0, tft.height());
|
||||
break;
|
||||
case 2:
|
||||
xpos = map(tp.x, TS_RT, TS_LEFT, 0, tft.width());
|
||||
ypos = map(tp.y, TS_BOT, TS_TOP, 0, tft.height());
|
||||
break;
|
||||
case 3:
|
||||
xpos = map(tp.y, TS_BOT, TS_TOP, 0, tft.width());
|
||||
ypos = map(tp.y, TS_LEFT, TS_RT, 0, tft.height());
|
||||
break;
|
||||
}
|
||||
|
||||
// are we in top color box area ?
|
||||
if (ypos < BOXSIZE) { //draw white border on selected color box
|
||||
@@ -285,6 +191,8 @@ void loop()
|
||||
tft.fillCircle(xpos, ypos, PENRADIUS, currentcolor);
|
||||
}
|
||||
// are we in erase area ?
|
||||
// Plain Touch panels use bottom 10 pixels e.g. > h - 10
|
||||
// Touch panels with icon area e.g. > h - 0
|
||||
if (ypos > tft.height() - 10) {
|
||||
// press the bottom of the screen to erase
|
||||
tft.fillRect(0, BOXSIZE, tft.width(), tft.height() - BOXSIZE, BLACK);
|
||||
@@ -1,376 +0,0 @@
|
||||
// TouchScreen_Calibr_kbv for MCUFRIEND UNO Display Shields
|
||||
// adapted by David Prentice
|
||||
// for Adafruit's <TouchScreen.h> Resistive Touch Screen Library
|
||||
// from Henning Karlsen's original program. Many Thanks.
|
||||
|
||||
// UTouch_Calibration (C)2013-2014 Henning Karlsen
|
||||
// web: http://www.henningkarlsen.com/electronics
|
||||
//
|
||||
// This program can be used to calibrate the touchscreen
|
||||
// of the display modules.
|
||||
// This program requires the UTFT library and a touch
|
||||
// screen module that is compatible with UTFT.
|
||||
//
|
||||
// It is assumed that the display module is connected to an
|
||||
// appropriate shield or that you know how to change the pin
|
||||
// numbers in the setup.
|
||||
//
|
||||
// Instructions will be given on the display.
|
||||
|
||||
#define TOUCH_ORIENTATION PORTRAIT
|
||||
#define USE_UTOUCH 0
|
||||
|
||||
#if !(USE_UTOUCH)
|
||||
#define TITLE "TouchScreen.h Calibration"
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <UTFTGLUE.h> //we are using UTFT display methods
|
||||
UTFTGLUE myGLCD(0x9341, A2, A1, A3, A4, A0);
|
||||
|
||||
#include <TouchScreen.h>
|
||||
|
||||
// MCUFRIEND UNO shield shares pins with the TFT. Due does NOT work
|
||||
#define YP A1 //A3 for ILI9320
|
||||
#define YM 7 //9
|
||||
#define XM A2
|
||||
#define XP 6 //8
|
||||
|
||||
TouchScreen myTouch(XP, YP, XM, YM, 300);
|
||||
TSPoint tp; //Touchscreen_due branch uses Point
|
||||
|
||||
void readResistiveTouch(void)
|
||||
{
|
||||
tp = myTouch.getPoint();
|
||||
pinMode(YP, OUTPUT); //restore shared pins
|
||||
pinMode(XM, OUTPUT);
|
||||
digitalWrite(YP, HIGH);
|
||||
digitalWrite(XM, HIGH);
|
||||
}
|
||||
|
||||
bool ISPRESSED(void)
|
||||
{
|
||||
readResistiveTouch();
|
||||
return tp.z > 20 && tp.z < 1000;
|
||||
}
|
||||
|
||||
void showpoint(void)
|
||||
{
|
||||
Serial.print("\r\nx="); Serial.print(tp.x);
|
||||
Serial.print(" y="); Serial.print(tp.y);
|
||||
Serial.print(" z="); Serial.print(tp.z);
|
||||
}
|
||||
#else
|
||||
#define TITLE "UTouch.h Calibration"
|
||||
#include <SPI.h>
|
||||
#include <UTFT.h>
|
||||
#include <UTouch.h>
|
||||
UTFT myGLCD(ILI9486, 38, 39, 40, 41);
|
||||
UTouch myTouch( 6, 5, 4, 3, 2);
|
||||
|
||||
#define ISPRESSED() myTouch.dataAvailable()
|
||||
extern void fail();
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************
|
||||
// DO NOT EDIT ANYTHING BELOW THIS LINE
|
||||
// ************************************
|
||||
|
||||
// Declare which fonts we will be using
|
||||
extern uint8_t SmallFont[];
|
||||
|
||||
uint32_t cx, cy;
|
||||
uint32_t rx[8], ry[8];
|
||||
int32_t clx, crx, cty, cby;
|
||||
float px, py;
|
||||
int dispx, dispy, text_y_center, swapxy;
|
||||
uint32_t calx, caly, cals;
|
||||
char buf[13];
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
Serial.println("UTouch_Calibr_kbv");
|
||||
digitalWrite(A0, HIGH);
|
||||
pinMode(A0, OUTPUT);
|
||||
myGLCD.InitLCD(TOUCH_ORIENTATION);
|
||||
myGLCD.clrScr();
|
||||
myGLCD.setFont(SmallFont);
|
||||
#if (USE_UTOUCH)
|
||||
myTouch.InitTouch(TOUCH_ORIENTATION);
|
||||
#endif
|
||||
dispx = myGLCD.getDisplayXSize();
|
||||
dispy = myGLCD.getDisplayYSize();
|
||||
text_y_center = (dispy / 2) - 6;
|
||||
}
|
||||
|
||||
void drawCrossHair(int x, int y)
|
||||
{
|
||||
myGLCD.drawRect(x - 10, y - 10, x + 10, y + 10);
|
||||
myGLCD.drawLine(x - 5, y, x + 5, y);
|
||||
myGLCD.drawLine(x, y - 5, x, y + 5);
|
||||
}
|
||||
|
||||
void readCoordinates()
|
||||
{
|
||||
int iter = 5000;
|
||||
int failcount = 0;
|
||||
int cnt = 0;
|
||||
uint32_t tx = 0;
|
||||
uint32_t ty = 0;
|
||||
boolean OK = false;
|
||||
|
||||
while (OK == false)
|
||||
{
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.print("* PRESS *", CENTER, text_y_center);
|
||||
while (ISPRESSED() == false) {}
|
||||
myGLCD.print("* HOLD! *", CENTER, text_y_center);
|
||||
#if (USE_UTOUCH)
|
||||
while ((ISPRESSED() == true) && (cnt < iter) && (failcount < 10000))
|
||||
{
|
||||
myTouch.calibrateRead();
|
||||
if (!((myTouch.TP_X == 65535) || (myTouch.TP_Y == 65535)))
|
||||
{
|
||||
tx += myTouch.TP_X;
|
||||
ty += myTouch.TP_Y;
|
||||
cnt++;
|
||||
}
|
||||
else
|
||||
failcount++;
|
||||
}
|
||||
#else
|
||||
cnt = 0;
|
||||
iter = 400;
|
||||
do
|
||||
{
|
||||
readResistiveTouch();
|
||||
// showpoint(tp);
|
||||
if (tp.z > 20 && tp.z < 1000)
|
||||
{
|
||||
tx += tp.x;
|
||||
ty += tp.y;
|
||||
cnt++;
|
||||
}
|
||||
else
|
||||
failcount++;
|
||||
} while ((cnt < iter) && (failcount < 10000));
|
||||
#endif
|
||||
if (cnt >= iter)
|
||||
{
|
||||
OK = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
tx = 0;
|
||||
ty = 0;
|
||||
cnt = 0;
|
||||
}
|
||||
if (failcount >= 10000)
|
||||
fail();
|
||||
}
|
||||
|
||||
cx = tx / iter;
|
||||
cy = ty / iter;
|
||||
}
|
||||
|
||||
void calibrate(int x, int y, int i)
|
||||
{
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
drawCrossHair(x, y);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
readCoordinates();
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.print("* RELEASE *", CENTER, text_y_center);
|
||||
myGLCD.setColor(80, 80, 80);
|
||||
drawCrossHair(x, y);
|
||||
rx[i] = cx;
|
||||
ry[i] = cy;
|
||||
Serial.print("\r\ncx="); Serial.print(cx);
|
||||
Serial.print(" cy="); Serial.print(cy);
|
||||
while (ISPRESSED() == true) {}
|
||||
}
|
||||
|
||||
void waitForTouch()
|
||||
{
|
||||
while (ISPRESSED() == true) {}
|
||||
while (ISPRESSED() == false) {}
|
||||
while (ISPRESSED() == true) {}
|
||||
}
|
||||
|
||||
void toHex(uint32_t num)
|
||||
{
|
||||
buf[0] = '0';
|
||||
buf[1] = 'x';
|
||||
buf[10] = 'U';
|
||||
buf[11] = 'L';
|
||||
buf[12] = 0;
|
||||
for (int zz = 9; zz > 1; zz--)
|
||||
{
|
||||
if ((num & 0xF) > 9)
|
||||
buf[zz] = (num & 0xF) + 55;
|
||||
else
|
||||
buf[zz] = (num & 0xF) + 48;
|
||||
num = num >> 4;
|
||||
}
|
||||
}
|
||||
|
||||
void startup()
|
||||
{
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRect(0, 0, dispx - 1, 13);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.drawLine(0, 14, dispx - 1, 14);
|
||||
myGLCD.print(TITLE, CENTER, 1);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
|
||||
myGLCD.print("Use a stylus or something", LEFT, 30);
|
||||
myGLCD.print("similar to touch as close", LEFT, 42);
|
||||
myGLCD.print("to the center of the", LEFT, 54);
|
||||
myGLCD.print("highlighted crosshair as", LEFT, 66);
|
||||
myGLCD.print("possible. Keep as still as", LEFT, 78);
|
||||
myGLCD.print("possible and keep holding", LEFT, 90);
|
||||
myGLCD.print("until the highlight is", LEFT, 102);
|
||||
myGLCD.print("removed. Repeat for all", LEFT, 114);
|
||||
myGLCD.print("crosshairs in sequence.", LEFT, 126);
|
||||
myGLCD.print("Touch screen to continue", CENTER, 162);
|
||||
|
||||
waitForTouch();
|
||||
myGLCD.clrScr();
|
||||
}
|
||||
|
||||
void showNumI(char *msg, uint32_t val, int x, int y)
|
||||
{
|
||||
myGLCD.print(msg, x, y);
|
||||
myGLCD.printNumI(val, x + 50, y);
|
||||
}
|
||||
|
||||
void done()
|
||||
{
|
||||
myGLCD.clrScr();
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRect(0, 0, dispx - 1, 13);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.drawLine(0, 14, dispx - 1, 14);
|
||||
myGLCD.print(TITLE, CENTER, 1);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
#if (USE_UTOUCH)
|
||||
myGLCD.print("To use the new calibration", LEFT, 30);
|
||||
myGLCD.print("settings you must edit the", LEFT, 42);
|
||||
myGLCD.setColor(160, 160, 255);
|
||||
myGLCD.print("UTouchCD.h", LEFT, 54);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.print("file and change", 88, 54);
|
||||
myGLCD.print("the following values. The", LEFT, 66);
|
||||
myGLCD.print("values are located right", LEFT, 78);
|
||||
myGLCD.print("below the opening comment.", LEFT, 90);
|
||||
myGLCD.print("CAL_X", LEFT, 110);
|
||||
myGLCD.print("CAL_Y", LEFT, 122);
|
||||
myGLCD.print("CAL_S", LEFT, 134);
|
||||
toHex(calx);
|
||||
myGLCD.print(buf, 75, 110);
|
||||
toHex(caly);
|
||||
myGLCD.print(buf, 75, 122);
|
||||
toHex(cals);
|
||||
myGLCD.print(buf, 75, 134);
|
||||
#else
|
||||
myGLCD.print("To use the new calibration", LEFT, 30);
|
||||
myGLCD.print("settings you must map the values", LEFT, 42);
|
||||
myGLCD.print("from Point p = ts.getPoint() e.g. ", LEFT, 54);
|
||||
myGLCD.print("x = map(p.x, LEFT, RT, 0, tft.width());", LEFT, 66);
|
||||
myGLCD.print("y = map(p.y, TOP, BOT, 0, tft.height());", LEFT, 78);
|
||||
myGLCD.print("swap p.x and p.y if diff ORIENTATION", LEFT, 90);
|
||||
#endif
|
||||
//.kbv show human values
|
||||
showNumI("LEFT ", (calx >> 14) & 0x3FFF, 0, 186);
|
||||
showNumI("RT ", (calx) & 0x3FFF, 100, 186);
|
||||
myGLCD.printNumF(px, 2, 200, 186);
|
||||
showNumI("TOP ", (caly >> 14) & 0x3FFF, 0, 198);
|
||||
showNumI("BOT ", (caly) & 0x3FFF, 100, 198);
|
||||
myGLCD.printNumF(py, 2, 200, 198);
|
||||
showNumI("WID ", (cals >> 12) & 0xFFF, 0, 210);
|
||||
showNumI("HT ", (cals) & 0xFFF, 100, 210);
|
||||
myGLCD.print("Touch Controller is ", 0, 222);
|
||||
myGLCD.print((cals >> 31) ? "LANDSCAPE" : "PORTRAIT", 170, 222);
|
||||
|
||||
}
|
||||
|
||||
void fail()
|
||||
{
|
||||
myGLCD.clrScr();
|
||||
myGLCD.setColor(255, 0, 0);
|
||||
myGLCD.fillRect(0, 0, dispx - 1, 13);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.drawLine(0, 14, dispx - 1, 14);
|
||||
myGLCD.print("Touch Calibration FAILED", CENTER, 1);
|
||||
myGLCD.setBackColor(0, 0, 0);
|
||||
|
||||
myGLCD.print("Unable to read the position", LEFT, 30);
|
||||
myGLCD.print("of the press. This is a", LEFT, 42);
|
||||
myGLCD.print("hardware issue and can", 88, 54);
|
||||
myGLCD.print("not be corrected in", LEFT, 66);
|
||||
myGLCD.print("software.", LEFT, 78);
|
||||
|
||||
while (true) {};
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
startup();
|
||||
|
||||
myGLCD.setColor(80, 80, 80);
|
||||
drawCrossHair(dispx - 11, 10);
|
||||
drawCrossHair(dispx / 2, 10);
|
||||
drawCrossHair(10, 10);
|
||||
drawCrossHair(dispx - 11, dispy / 2);
|
||||
drawCrossHair(10, dispy / 2);
|
||||
drawCrossHair(dispx - 11, dispy - 11);
|
||||
drawCrossHair(dispx / 2, dispy - 11);
|
||||
drawCrossHair(10, dispy - 11);
|
||||
myGLCD.setColor(255, 255, 255);
|
||||
myGLCD.setBackColor(255, 0, 0);
|
||||
myGLCD.print("***********", CENTER, text_y_center - 12);
|
||||
myGLCD.print("***********", CENTER, text_y_center + 12);
|
||||
|
||||
calibrate(10, 10, 0);
|
||||
calibrate(10, dispy / 2, 1);
|
||||
calibrate(10, dispy - 11, 2);
|
||||
calibrate(dispx / 2, 10, 3);
|
||||
calibrate(dispx / 2, dispy - 11, 4);
|
||||
calibrate(dispx - 11, 10, 5);
|
||||
calibrate(dispx - 11, dispy / 2, 6);
|
||||
calibrate(dispx - 11, dispy - 11, 7);
|
||||
|
||||
cals = (long(dispx - 1) << 12) + (dispy - 1);
|
||||
if (TOUCH_ORIENTATION == PORTRAIT) swapxy = rx[2] - rx[0];
|
||||
else swapxy = ry[2] - ry[0];
|
||||
swapxy = (swapxy < -500 || swapxy > 500);
|
||||
if ((TOUCH_ORIENTATION == PORTRAIT) ^ (swapxy != 0)) {
|
||||
clx = (rx[0] + rx[1] + rx[2]) / 3;
|
||||
crx = (rx[5] + rx[6] + rx[7]) / 3;
|
||||
cty = (ry[0] + ry[3] + ry[5]) / 3;
|
||||
cby = (ry[2] + ry[4] + ry[7]) / 3;
|
||||
} else {
|
||||
clx = (ry[0] + ry[1] + ry[2]) / 3;
|
||||
crx = (ry[5] + ry[6] + ry[7]) / 3;
|
||||
cty = (rx[0] + rx[3] + rx[5]) / 3;
|
||||
cby = (rx[2] + rx[4] + rx[7]) / 3;
|
||||
}
|
||||
px = float(crx - clx) / (dispx - 20);
|
||||
py = float(cby - cty) / (dispy - 20);
|
||||
// px = 0;
|
||||
clx -= px * 10;
|
||||
crx += px * 10;
|
||||
cty -= py * 10;
|
||||
cby += py * 10;
|
||||
|
||||
calx = (long(clx) << 14) + long(crx);
|
||||
caly = (long(cty) << 14) + long(cby);
|
||||
if (swapxy)
|
||||
cals |= (1L << 31);
|
||||
|
||||
done();
|
||||
while (true) {}
|
||||
}
|
||||
116
examples/button_simple/button_list.ino
Normal file
116
examples/button_simple/button_list.ino
Normal file
@@ -0,0 +1,116 @@
|
||||
/* an alternative approach. swap the #if 1 / 0 values to try it
|
||||
*
|
||||
*/
|
||||
#if 0
|
||||
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <MCUFRIEND_kbv.h>
|
||||
MCUFRIEND_kbv tft;
|
||||
#include <TouchScreen.h>
|
||||
#define MINPRESSURE 200
|
||||
#define MAXPRESSURE 1000
|
||||
|
||||
// ALL Touch panels and wiring is DIFFERENT
|
||||
// copy-paste results from TouchScreen_Calibr_native.ino
|
||||
const int XP = 6, XM = A2, YP = A1, YM = 7; //ID=0x9341
|
||||
const int TS_LEFT = 907, TS_RT = 136, TS_TOP = 942, TS_BOT = 139;
|
||||
|
||||
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
|
||||
|
||||
Adafruit_GFX_Button on_btn, off_btn;
|
||||
|
||||
int pixel_x, pixel_y; //Touch_getXY() updates global vars
|
||||
bool Touch_getXY(void)
|
||||
{
|
||||
TSPoint p = ts.getPoint();
|
||||
pinMode(YP, OUTPUT); //restore shared pins
|
||||
pinMode(XM, OUTPUT);
|
||||
digitalWrite(YP, HIGH); //because TFT control pins
|
||||
digitalWrite(XM, HIGH);
|
||||
bool pressed = (p.z > MINPRESSURE && p.z < MAXPRESSURE);
|
||||
if (pressed) {
|
||||
pixel_x = map(p.x, TS_LEFT, TS_RT, 0, tft.width()); //.kbv makes sense to me
|
||||
pixel_y = map(p.y, TS_TOP, TS_BOT, 0, tft.height());
|
||||
}
|
||||
return pressed;
|
||||
}
|
||||
|
||||
#define BLACK 0x0000
|
||||
#define BLUE 0x001F
|
||||
#define RED 0xF800
|
||||
#define GREEN 0x07E0
|
||||
#define CYAN 0x07FF
|
||||
#define MAGENTA 0xF81F
|
||||
#define YELLOW 0xFFE0
|
||||
#define WHITE 0xFFFF
|
||||
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(9600);
|
||||
uint16_t ID = tft.readID();
|
||||
Serial.print("TFT ID = 0x");
|
||||
Serial.println(ID, HEX);
|
||||
Serial.println("Calibrate for your Touch Panel");
|
||||
if (ID == 0xD3D3) ID = 0x9486; // write-only shield
|
||||
tft.begin(ID);
|
||||
tft.setRotation(0); //PORTRAIT
|
||||
tft.fillScreen(BLACK);
|
||||
on_btn.initButton(&tft, 60, 200, 100, 40, WHITE, CYAN, BLACK, "ON", 2);
|
||||
off_btn.initButton(&tft, 180, 200, 100, 40, WHITE, CYAN, BLACK, "OFF", 2);
|
||||
on_btn.drawButton(false);
|
||||
off_btn.drawButton(false);
|
||||
tft.fillRect(40, 80, 160, 80, RED);
|
||||
}
|
||||
|
||||
/*
|
||||
* updating multiple buttons from a list
|
||||
*
|
||||
* anything more than two buttons gets repetitive
|
||||
*
|
||||
* you can place button addresses in separate lists
|
||||
* e.g. for separate menu screens
|
||||
*/
|
||||
|
||||
// Array of button addresses to behave like a list
|
||||
Adafruit_GFX_Button *buttons[] = {&on_btn, &off_btn, NULL};
|
||||
|
||||
/* update the state of a button and redraw as reqd
|
||||
*
|
||||
* main program can use isPressed(), justPressed() etc
|
||||
*/
|
||||
bool update_button(Adafruit_GFX_Button *b, bool down)
|
||||
{
|
||||
b->press(down && b->contains(pixel_x, pixel_y));
|
||||
if (b->justReleased())
|
||||
b->drawButton(false);
|
||||
if (b->justPressed())
|
||||
b->drawButton(true);
|
||||
return down;
|
||||
}
|
||||
|
||||
/* most screens have different sets of buttons
|
||||
* life is easier if you process whole list in one go
|
||||
*/
|
||||
bool update_button_list(Adafruit_GFX_Button **pb)
|
||||
{
|
||||
bool down = Touch_getXY();
|
||||
for (int i = 0 ; pb[i] != NULL; i++) {
|
||||
update_button(pb[i], down);
|
||||
}
|
||||
return down;
|
||||
}
|
||||
|
||||
/* compare the simplicity of update_button_list()
|
||||
*/
|
||||
void loop(void)
|
||||
{
|
||||
update_button_list(buttons); //use helper function
|
||||
if (on_btn.justPressed()) {
|
||||
tft.fillRect(40, 80, 160, 80, GREEN);
|
||||
}
|
||||
if (off_btn.justPressed()) {
|
||||
tft.fillRect(40, 80, 160, 80, RED);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
84
examples/button_simple/button_simple.ino
Normal file
84
examples/button_simple/button_simple.ino
Normal file
@@ -0,0 +1,84 @@
|
||||
#if 1
|
||||
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <MCUFRIEND_kbv.h>
|
||||
MCUFRIEND_kbv tft;
|
||||
#include <TouchScreen.h>
|
||||
#define MINPRESSURE 200
|
||||
#define MAXPRESSURE 1000
|
||||
|
||||
// ALL Touch panels and wiring is DIFFERENT
|
||||
// copy-paste results from TouchScreen_Calibr_native.ino
|
||||
const int XP = 6, XM = A2, YP = A1, YM = 7; //ID=0x9341
|
||||
const int TS_LEFT = 907, TS_RT = 136, TS_TOP = 942, TS_BOT = 139;
|
||||
|
||||
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
|
||||
|
||||
Adafruit_GFX_Button on_btn, off_btn;
|
||||
|
||||
int pixel_x, pixel_y; //Touch_getXY() updates global vars
|
||||
bool Touch_getXY(void)
|
||||
{
|
||||
TSPoint p = ts.getPoint();
|
||||
pinMode(YP, OUTPUT); //restore shared pins
|
||||
pinMode(XM, OUTPUT);
|
||||
digitalWrite(YP, HIGH); //because TFT control pins
|
||||
digitalWrite(XM, HIGH);
|
||||
bool pressed = (p.z > MINPRESSURE && p.z < MAXPRESSURE);
|
||||
if (pressed) {
|
||||
pixel_x = map(p.x, TS_LEFT, TS_RT, 0, tft.width()); //.kbv makes sense to me
|
||||
pixel_y = map(p.y, TS_TOP, TS_BOT, 0, tft.height());
|
||||
}
|
||||
return pressed;
|
||||
}
|
||||
|
||||
#define BLACK 0x0000
|
||||
#define BLUE 0x001F
|
||||
#define RED 0xF800
|
||||
#define GREEN 0x07E0
|
||||
#define CYAN 0x07FF
|
||||
#define MAGENTA 0xF81F
|
||||
#define YELLOW 0xFFE0
|
||||
#define WHITE 0xFFFF
|
||||
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(9600);
|
||||
uint16_t ID = tft.readID();
|
||||
Serial.print("TFT ID = 0x");
|
||||
Serial.println(ID, HEX);
|
||||
Serial.println("Calibrate for your Touch Panel");
|
||||
if (ID == 0xD3D3) ID = 0x9486; // write-only shield
|
||||
tft.begin(ID);
|
||||
tft.setRotation(0); //PORTRAIT
|
||||
tft.fillScreen(BLACK);
|
||||
on_btn.initButton(&tft, 60, 200, 100, 40, WHITE, CYAN, BLACK, "ON", 2);
|
||||
off_btn.initButton(&tft, 180, 200, 100, 40, WHITE, CYAN, BLACK, "OFF", 2);
|
||||
on_btn.drawButton(false);
|
||||
off_btn.drawButton(false);
|
||||
tft.fillRect(40, 80, 160, 80, RED);
|
||||
}
|
||||
|
||||
/* two buttons are quite simple
|
||||
*/
|
||||
void loop(void)
|
||||
{
|
||||
bool down = Touch_getXY();
|
||||
on_btn.press(down && on_btn.contains(pixel_x, pixel_y));
|
||||
off_btn.press(down && off_btn.contains(pixel_x, pixel_y));
|
||||
if (on_btn.justReleased())
|
||||
on_btn.drawButton();
|
||||
if (off_btn.justReleased())
|
||||
off_btn.drawButton();
|
||||
if (on_btn.justPressed()) {
|
||||
on_btn.drawButton(true);
|
||||
tft.fillRect(40, 80, 160, 80, GREEN);
|
||||
}
|
||||
if (off_btn.justPressed()) {
|
||||
off_btn.drawButton(true);
|
||||
tft.fillRect(40, 80, 160, 80, RED);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
668
examples/drawBitmap_kbv/bitmap_RGB.h
Normal file
668
examples/drawBitmap_kbv/bitmap_RGB.h
Normal file
@@ -0,0 +1,668 @@
|
||||
// several programs can convert BMP, JPG, PNG images to C arrays of pixels
|
||||
// these used the utility bundled with UTFT.
|
||||
// Online tool at http://www.rinkydinkelectronics.com/t_imageconverter565.php
|
||||
|
||||
// Generated by : ImageConverter 565 v2.3
|
||||
// Generated from: marilyn_64x64.bmp
|
||||
// Time generated: 14-May-18 06:55:31
|
||||
// Dimensions : 64x64 pixels
|
||||
// Size : 8,192 Bytes
|
||||
|
||||
#include <avr/pgmspace.h>
|
||||
|
||||
//const unsigned short marilyn_64x64[0x1000] PROGMEM ={
|
||||
// uint16_t is not ambiguous
|
||||
const uint16_t marilyn_64x64[0x1000] PROGMEM ={
|
||||
0x98E5, 0x98E5, 0x98E5, 0x98E5, 0x98E5, 0x98E4, 0x90E4, 0x9905, 0x9905, 0x9104, 0x90E4, 0x9905, 0x9925, 0x9925, 0x9925, 0x9945, // 0x0010 (16)
|
||||
0x9945, 0x9945, 0x9946, 0xA1A6, 0xAA07, 0xB289, 0xBB4B, 0xCC4F, 0xE5F5, 0xF6B8, 0xF6D9, 0xFEF9, 0xFED8, 0xF6D8, 0xF677, 0xEDD4, // 0x0020 (32)
|
||||
0xD46F, 0xBAEA, 0xAA08, 0xA186, 0x9966, 0x9966, 0xA166, 0xA166, 0x9946, 0x9946, 0x9945, 0x9926, 0x9926, 0x9946, 0x9925, 0x9925, // 0x0030 (48)
|
||||
0x9926, 0x9946, 0xA146, 0xA166, 0xA167, 0xA167, 0xA146, 0xA147, 0xA146, 0xA167, 0xA167, 0xA167, 0xA987, 0xA987, 0xA967, 0xA967, // 0x0040 (64)
|
||||
0x98E5, 0x98E4, 0x98E4, 0x90E4, 0x90E4, 0x90E4, 0x90E4, 0x90E4, 0x9104, 0x90E4, 0x9104, 0x9104, 0x9905, 0x9104, 0x9925, 0x9925, // 0x0050 (80)
|
||||
0x9965, 0x9966, 0xA1C6, 0xBB0A, 0xC3ED, 0xD511, 0xE5B3, 0xE614, 0xEE34, 0xF6B7, 0xF6F8, 0xFF19, 0xF6D7, 0xEE76, 0xF6D8, 0xF6D8, // 0x0060 (96)
|
||||
0xF697, 0xE5D5, 0xD4B0, 0xB2CA, 0x9986, 0x9966, 0x9966, 0x9966, 0x9946, 0x9945, 0x9925, 0x9925, 0x9925, 0x9946, 0x9925, 0x9925, // 0x0070 (112)
|
||||
0x9925, 0x9946, 0x9946, 0xA146, 0xA146, 0xA146, 0x9946, 0xA146, 0xA146, 0xA146, 0xA146, 0xA146, 0xA967, 0xA967, 0xA967, 0xA967, // 0x0080 (128)
|
||||
0x90C4, 0x90E4, 0x90E4, 0x90E4, 0x90C4, 0x90E4, 0x90E4, 0x90E4, 0x90E4, 0x9104, 0x9104, 0x9104, 0x9104, 0x9104, 0x9124, 0x9945, // 0x0090 (144)
|
||||
0xAA48, 0xC38C, 0xDD73, 0xF677, 0xF71A, 0xFF3A, 0xF6D7, 0xEE75, 0xEE75, 0xF6B7, 0xF6D8, 0xEE75, 0xE5F3, 0xEE35, 0xF676, 0xF6D8, // 0x00A0 (160)
|
||||
0xF6D8, 0xEE97, 0xEE77, 0xEE15, 0xCC0E, 0xAA28, 0xA1A6, 0xA186, 0x9945, 0x9945, 0x9945, 0x9925, 0x9945, 0x9945, 0x9925, 0x9925, // 0x00B0 (176)
|
||||
0x9925, 0x9925, 0x9946, 0x9946, 0x9946, 0x9946, 0x9926, 0xA146, 0xA146, 0x9926, 0xA146, 0xA146, 0xA167, 0xA967, 0xA967, 0xA967, // 0x00C0 (192)
|
||||
0x90C4, 0x90C4, 0x90C4, 0x90E4, 0x90E4, 0x90E4, 0x9104, 0x9904, 0x9104, 0x9104, 0x9925, 0x9925, 0x9925, 0x9924, 0x9945, 0xAA47, // 0x00D0 (208)
|
||||
0xD4AF, 0xEE15, 0xF6B7, 0xF697, 0xF697, 0xEE96, 0xF6B7, 0xF6B7, 0xF6D7, 0xF6B7, 0xEE55, 0xD571, 0xCCEF, 0xD530, 0xDD92, 0xE614, // 0x00E0 (224)
|
||||
0xF6F8, 0xF6D8, 0xEE76, 0xE656, 0xEE35, 0xCC2E, 0xAA28, 0xA9C7, 0xA166, 0x9945, 0x9945, 0x9945, 0x9945, 0x9945, 0x9925, 0x9925, // 0x00F0 (240)
|
||||
0x9946, 0x9946, 0x9946, 0x9946, 0x9946, 0x9946, 0x9946, 0xA146, 0xA146, 0xA146, 0xA146, 0xA146, 0xA146, 0xA967, 0xA967, 0xA967, // 0x0100 (256)
|
||||
0x90C4, 0x90E4, 0x90E4, 0x98E4, 0x90E4, 0x9104, 0x9904, 0x9904, 0x9925, 0x9925, 0x9945, 0x9945, 0x9945, 0xA185, 0xB268, 0xD46E, // 0x0110 (272)
|
||||
0xEE14, 0xEE96, 0xEE96, 0xDDB2, 0xCCEF, 0xBC6D, 0xC4CF, 0xD5B2, 0xE655, 0xEE55, 0xDDB2, 0xD530, 0xC4AE, 0xC46D, 0xD510, 0xD530, // 0x0120 (288)
|
||||
0xE614, 0xEE55, 0xE676, 0xEE97, 0xEE76, 0xE5B4, 0xC34B, 0xA9E7, 0xA186, 0xA166, 0xA166, 0xA165, 0x9945, 0x9946, 0x9946, 0x9945, // 0x0130 (304)
|
||||
0x9946, 0x9946, 0x9946, 0xA166, 0xA146, 0xA146, 0x9946, 0xA146, 0xA166, 0xA166, 0xA146, 0xA146, 0xA166, 0xA166, 0xA967, 0xA967, // 0x0140 (320)
|
||||
0x90E4, 0x90E4, 0x90E4, 0x90E4, 0x9904, 0x9904, 0x9904, 0x9924, 0x9925, 0x9945, 0xA165, 0xA165, 0xA186, 0xAA27, 0xCC4E, 0xDDB2, // 0x0150 (336)
|
||||
0xEE96, 0xF6D8, 0xE614, 0xC4CF, 0xABCB, 0x9B49, 0x8AE8, 0x9B8A, 0xBCAE, 0xD572, 0xD530, 0xCD0F, 0xC4AE, 0xB3EB, 0xCCAE, 0xD530, // 0x0160 (352)
|
||||
0xDD91, 0xE5F3, 0xEE76, 0xEE97, 0xEE56, 0xEE77, 0xD48F, 0xB269, 0xA9C7, 0xA1A6, 0xA186, 0xA166, 0xA166, 0xA166, 0xA166, 0xA166, // 0x0170 (368)
|
||||
0xA146, 0xA146, 0xA166, 0xA166, 0xA166, 0xA166, 0xA166, 0xA166, 0xA167, 0xA166, 0xA166, 0xA166, 0xA166, 0xA987, 0xA987, 0xA987, // 0x0180 (384)
|
||||
0x90E4, 0x98E4, 0x9904, 0x9904, 0x9904, 0x9904, 0x9925, 0x9945, 0xA165, 0xA165, 0xA186, 0xA9E7, 0xB248, 0xC3CC, 0xD530, 0xE635, // 0x0190 (400)
|
||||
0xE655, 0xD592, 0xC4F0, 0xAC0C, 0x9B49, 0x8AC8, 0x82A7, 0x7A66, 0x9B8A, 0xBC8E, 0xC4AE, 0xCD10, 0xD530, 0xC46D, 0xCCF0, 0xDD51, // 0x01A0 (416)
|
||||
0xE5F3, 0xE5D3, 0xEE97, 0xF6D8, 0xEE56, 0xF6D8, 0xE573, 0xCB8C, 0xBAA9, 0xB1E7, 0xA9C7, 0xA1A6, 0xA186, 0xA186, 0xA187, 0xA186, // 0x01B0 (432)
|
||||
0xA166, 0xA166, 0xA166, 0xA187, 0xA187, 0xA167, 0xA167, 0xA166, 0xA187, 0xA987, 0xA987, 0xA167, 0xA167, 0xA987, 0xA987, 0xA987, // 0x01C0 (448)
|
||||
0x9904, 0x9904, 0x9905, 0x9925, 0x9925, 0x9925, 0x9925, 0xA166, 0xA186, 0xA1A6, 0xB248, 0xBB2A, 0xCBED, 0xCCCF, 0xDDD3, 0xE614, // 0x01D0 (464)
|
||||
0xBC4D, 0xA36A, 0x92C8, 0x92E8, 0x9329, 0x8AC8, 0x8287, 0x7A26, 0x9329, 0xB44D, 0xC4CF, 0xDDB2, 0xE614, 0xDD92, 0xE5F4, 0xE615, // 0x01E0 (480)
|
||||
0xF6B7, 0xEE55, 0xEE96, 0xEE77, 0xE635, 0xFEF9, 0xEE15, 0xDC4E, 0xCB8C, 0xB208, 0xB208, 0xA9C7, 0xA9C7, 0xA9C7, 0xA9A7, 0xA986, // 0x01F0 (496)
|
||||
0xA186, 0xA186, 0xA9A7, 0xA9A7, 0xA987, 0xA987, 0xA187, 0xA187, 0xA9A7, 0xA9A7, 0xA987, 0xA987, 0xA987, 0xA987, 0xA9A7, 0xA9A7, // 0x0200 (512)
|
||||
0x9905, 0x9925, 0x9925, 0x9925, 0x9925, 0x9945, 0x9945, 0xA186, 0xA1A6, 0xAA68, 0xBBCC, 0xDD93, 0xE5F4, 0xD592, 0xE635, 0xD591, // 0x0210 (528)
|
||||
0xC48D, 0xB42C, 0x8AC8, 0x8AA7, 0x9309, 0x9309, 0x8AC8, 0x8AC8, 0xABEC, 0xCCEF, 0xDDD3, 0xEE55, 0xF696, 0xEE34, 0xEE55, 0xEE76, // 0x0220 (544)
|
||||
0xFF3A, 0xF6F8, 0xE614, 0xDDD3, 0xE635, 0xF6D8, 0xF656, 0xDC8F, 0xDC4F, 0xBAA9, 0xB249, 0xB208, 0xB228, 0xBA69, 0xA9E7, 0xA9A7, // 0x0230 (560)
|
||||
0xA9A7, 0xA9A7, 0xA9C7, 0xA9A7, 0xA9A7, 0xA9A7, 0xA987, 0xA9A7, 0xA9A7, 0xA9A8, 0xA9A7, 0xA9A7, 0xA9A7, 0xA9A7, 0xA9A7, 0xA9A8, // 0x0240 (576)
|
||||
0x9925, 0xA125, 0xA145, 0xA145, 0xA145, 0xA165, 0xA166, 0xAA07, 0xAA68, 0x9288, 0x9B4A, 0xCD11, 0xEE76, 0xE635, 0xE5F4, 0xE5F3, // 0x0250 (592)
|
||||
0xDDB2, 0x9B6A, 0x69A5, 0x7A26, 0x8AE8, 0x9B6A, 0x8AE8, 0xA3CB, 0xC4AE, 0xE614, 0xF6B7, 0xEE76, 0xF6D7, 0xF6B7, 0xEE76, 0xE635, // 0x0260 (608)
|
||||
0xFF19, 0xF6F8, 0xD571, 0xDDD3, 0xEE56, 0xF697, 0xEE35, 0xE552, 0xE4F0, 0xCBAC, 0xD3CD, 0xDCD1, 0xE573, 0xE552, 0xCBCD, 0xBA69, // 0x0270 (624)
|
||||
0xB208, 0xB1E7, 0xA9C7, 0xA9C8, 0xA9C8, 0xA9A7, 0xA9A7, 0xA9A7, 0xA9C8, 0xA9C8, 0xA9A8, 0xA9A8, 0xA9A8, 0xA9A8, 0xA9A8, 0xA9A8, // 0x0280 (640)
|
||||
0x9925, 0xA145, 0xA145, 0xA165, 0xA166, 0xA186, 0xA1C6, 0xAA68, 0xBB6B, 0x8AA8, 0xA38B, 0xCD31, 0xCD51, 0xD571, 0xD5B2, 0xEE76, // 0x0290 (656)
|
||||
0xE635, 0x934A, 0x69C5, 0x7226, 0x9329, 0xA3CB, 0xA3AB, 0xB44E, 0xCD31, 0xEE96, 0xF6D8, 0xF6B7, 0xEE96, 0xF6B7, 0xEE56, 0xEE55, // 0x02A0 (672)
|
||||
0xE634, 0xE5F4, 0xDDB3, 0xE635, 0xE655, 0xE635, 0xEE56, 0xE5D4, 0xEDF4, 0xEE35, 0xF656, 0xFED9, 0xF677, 0xEDF4, 0xED94, 0xD42E, // 0x02B0 (688)
|
||||
0xBA69, 0xB208, 0xB1E8, 0xB1E8, 0xB1E8, 0xA9C8, 0xA9C8, 0xA9C8, 0xA9C8, 0xA9C8, 0xA9C8, 0xB1C8, 0xA9C8, 0xB1C8, 0xB1C8, 0xB1C8, // 0x02C0 (704)
|
||||
0xA145, 0xA145, 0xA166, 0xA166, 0xA186, 0xA9C7, 0xA9E7, 0xB2A9, 0xBB8B, 0x934A, 0x8AC8, 0x92C8, 0x9B8A, 0xAC0D, 0xC510, 0xDE14, // 0x02D0 (720)
|
||||
0xD5B3, 0xA3AB, 0x7A68, 0x82E9, 0xA3CC, 0xB46E, 0xC4CF, 0xC4CF, 0xCD31, 0xDDF4, 0xDDF4, 0xDDD4, 0xD592, 0xE614, 0xE614, 0xE635, // 0x02E0 (736)
|
||||
0xD572, 0xC4F0, 0xCD31, 0xDDB3, 0xCD10, 0xD592, 0xEE76, 0xEE56, 0xF6B7, 0xFEF9, 0xFF19, 0xFED8, 0xF697, 0xF636, 0xEDD4, 0xED52, // 0x02F0 (752)
|
||||
0xD38C, 0xBA49, 0xB208, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1C8, 0xB1C8, 0xB1E8, 0xB1E8, 0xB1C8, 0xB1C8, 0xB1C8, 0xB1C8, 0xB1C8, 0xB1C8, // 0x0300 (768)
|
||||
0xA145, 0xA166, 0xA186, 0xA186, 0xA9A6, 0xA9E7, 0xB248, 0xBB6B, 0xC46E, 0x8AE8, 0x8287, 0x92C8, 0xA3AB, 0xB44D, 0xB46E, 0xCD51, // 0x0310 (784)
|
||||
0xD572, 0xAC0D, 0x7268, 0x934A, 0xBC8E, 0xCCF0, 0xD510, 0xD510, 0xD510, 0xD571, 0xD531, 0xCCF0, 0xC4CF, 0xDD92, 0xCD10, 0xD552, // 0x0320 (800)
|
||||
0xD551, 0xCCF0, 0xC4AF, 0xA3AB, 0x8AC9, 0xB44E, 0xEE56, 0xFF1A, 0xFF1A, 0xFF1A, 0xFEF9, 0xF696, 0xF6B7, 0xF6B8, 0xF677, 0xF615, // 0x0330 (816)
|
||||
0xE4F1, 0xCB4C, 0xB228, 0xB208, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, 0xB1E8, // 0x0340 (832)
|
||||
0xA166, 0xA186, 0xA986, 0xA9A6, 0xA9A6, 0xAA07, 0xB2A9, 0xCC8E, 0xCCF0, 0x9B4A, 0x9329, 0xABEC, 0xC4CF, 0xD551, 0xCCEF, 0xC4CF, // 0x0350 (848)
|
||||
0xD571, 0xBCAF, 0x932A, 0xABCC, 0xDD31, 0xE5B2, 0xEDB2, 0xEDD3, 0xEDF4, 0xEDF4, 0xEDF4, 0xE592, 0xDD52, 0xDD51, 0xDD52, 0xE5B3, // 0x0360 (864)
|
||||
0xE551, 0xDD31, 0xCCAF, 0xB3ED, 0xA3AB, 0xBC6E, 0xE615, 0xF6B7, 0xFF3A, 0xFF5A, 0xFF19, 0xF697, 0xF6B7, 0xF697, 0xFEF8, 0xFE97, // 0x0370 (880)
|
||||
0xF5F5, 0xE4B0, 0xC2AA, 0xB229, 0xB208, 0xB1E8, 0xB1E8, 0xB209, 0xB209, 0xB209, 0xB209, 0xB1E9, 0xB209, 0xB209, 0xB209, 0xB1E8, // 0x0380 (896)
|
||||
0xA986, 0xA986, 0xA9A7, 0xA9A7, 0xA9C7, 0xB207, 0xBAC9, 0xD510, 0xCD10, 0x8B09, 0x7A88, 0xAC2D, 0xE635, 0xE634, 0xC4AE, 0xAC0C, // 0x0390 (912)
|
||||
0xC4CF, 0xC4CF, 0xB40C, 0xC46D, 0xE591, 0xEDF3, 0xF614, 0xF655, 0xF676, 0xF676, 0xF655, 0xF615, 0xEDF4, 0xF614, 0xF5F4, 0xF5F4, // 0x03A0 (928)
|
||||
0xEDB3, 0xE572, 0xDD30, 0xCCAF, 0xC46E, 0xCCD0, 0xDDB3, 0xEE76, 0xF719, 0xF6D8, 0xF6B7, 0xEE76, 0xF696, 0xEE55, 0xF6B7, 0xFED8, // 0x03B0 (944)
|
||||
0xF676, 0xEDB4, 0xD3CD, 0xBA49, 0xB229, 0xB229, 0xB209, 0xB209, 0xB229, 0xB229, 0xB209, 0xB209, 0xB209, 0xBA29, 0xBA09, 0xBA29, // 0x03C0 (960)
|
||||
0xB1C7, 0xA9C7, 0xB1C7, 0xB1E7, 0xB1E7, 0xB228, 0xBAEA, 0xDD92, 0xCD30, 0x8AE8, 0x7A26, 0x92E8, 0xB42D, 0xC4CF, 0xC4CE, 0xB42D, // 0x03D0 (976)
|
||||
0x9B8B, 0xBC8E, 0xBC4D, 0xCC8E, 0xE591, 0xF614, 0xF634, 0xFE75, 0xFE97, 0xFE97, 0xFE96, 0xF655, 0xF635, 0xFE56, 0xF655, 0xF655, // 0x03E0 (992)
|
||||
0xF614, 0xEDD3, 0xE551, 0xD4EF, 0xCC8E, 0xC4AF, 0xCD10, 0xDDB3, 0xE655, 0xE635, 0xEE55, 0xF697, 0xF6B7, 0xEE77, 0xEE35, 0xF655, // 0x03F0 (1008)
|
||||
0xFEB7, 0xF636, 0xE4F1, 0xBA8A, 0xBA49, 0xBA49, 0xBA29, 0xB229, 0xBA29, 0xBA29, 0xBA29, 0xBA29, 0xBA29, 0xBA29, 0xBA29, 0xBA29, // 0x0400 (1024)
|
||||
0xB1C7, 0xB1E7, 0xB1E7, 0xB1E7, 0xB207, 0xBA68, 0xC32A, 0xD531, 0xCD51, 0xB42D, 0x9B8B, 0x9329, 0xA38A, 0xABEC, 0xABEB, 0xABCB, // 0x0410 (1040)
|
||||
0x8AE8, 0x8AA7, 0x9B09, 0xAB8A, 0xD4CE, 0xEDF3, 0xF655, 0xFED7, 0xFED8, 0xFEB7, 0xFEB7, 0xFE96, 0xFE76, 0xFE76, 0xFE76, 0xFE76, // 0x0420 (1056)
|
||||
0xF634, 0xEDF3, 0xE592, 0xDD30, 0xCCAF, 0xC46E, 0xBC6E, 0xCD31, 0xD592, 0xE635, 0xE614, 0xEE97, 0xF6B8, 0xEE76, 0xEE14, 0xEE34, // 0x0430 (1072)
|
||||
0xFED8, 0xF636, 0xEDB4, 0xCAEB, 0xBA69, 0xBA69, 0xBA49, 0xBA29, 0xBA29, 0xBA49, 0xBA49, 0xBA29, 0xBA29, 0xBA49, 0xBA49, 0xBA29, // 0x0440 (1088)
|
||||
0xB1E7, 0xB1E7, 0xB1E7, 0xB1E7, 0xB227, 0xBAA9, 0xC32A, 0xC4AE, 0xBCAF, 0xB44E, 0xAC2D, 0x9B6A, 0xA3EC, 0x9349, 0x8AE8, 0x8AE8, // 0x0450 (1104)
|
||||
0x9309, 0x8246, 0x8A87, 0x9AC8, 0xC40C, 0xEE14, 0xFED7, 0xFF19, 0xFF19, 0xFEF8, 0xFED8, 0xFEB7, 0xFEB7, 0xFEB7, 0xFEB7, 0xFE76, // 0x0460 (1120)
|
||||
0xF635, 0xF5F4, 0xEDB2, 0xDD51, 0xD4EF, 0xC46E, 0xB42D, 0xBCAF, 0xD572, 0xE656, 0xDDD3, 0xD571, 0xDDD3, 0xE5F4, 0xE614, 0xF696, // 0x0470 (1136)
|
||||
0xFEF8, 0xF676, 0xEDD5, 0xCB2C, 0xC28A, 0xBA69, 0xBA69, 0xBA49, 0xBA49, 0xBA49, 0xBA49, 0xBA49, 0xBA49, 0xBA49, 0xBA49, 0xBA49, // 0x0480 (1152)
|
||||
0xB208, 0xB207, 0xB207, 0xB207, 0xBA48, 0xC2C9, 0xC32A, 0xB3CC, 0x9BAB, 0xAC4D, 0xA42D, 0x936A, 0xAC4D, 0xBCCF, 0xA3EC, 0xA3CC, // 0x0490 (1168)
|
||||
0xBC6D, 0xBC0C, 0xB3AB, 0xC42C, 0xE5B2, 0xFEB7, 0xFEF8, 0xFF19, 0xFF39, 0xFF19, 0xFEF8, 0xFED8, 0xFED8, 0xFED8, 0xFED8, 0xFE97, // 0x04A0 (1184)
|
||||
0xF634, 0xEDF3, 0xEDB2, 0xE551, 0xD4F0, 0xC46E, 0xB40D, 0xAC0D, 0xC4F0, 0xC531, 0xDDB3, 0xD551, 0xDD92, 0xE614, 0xEE76, 0xF6B7, // 0x04B0 (1200)
|
||||
0xF6B7, 0xF697, 0xEDD4, 0xCB4C, 0xC2AA, 0xBA8A, 0xBA69, 0xBA49, 0xBA69, 0xBA69, 0xBA49, 0xBA49, 0xBA49, 0xBA69, 0xC269, 0xC249, // 0x04C0 (1216)
|
||||
0xBA28, 0xBA28, 0xBA48, 0xBA47, 0xBA88, 0xC34A, 0xC3CC, 0xABAB, 0xA40C, 0xAC6E, 0xAC2D, 0x9BCC, 0xAC6E, 0xCD51, 0xCD31, 0xCD31, // 0x04D0 (1232)
|
||||
0xD50F, 0xD50F, 0xDD30, 0xEDF3, 0xFEB6, 0xFED7, 0xFEF8, 0xFF39, 0xFF3A, 0xFF3A, 0xFF19, 0xFEF8, 0xFEF9, 0xFF19, 0xFEF9, 0xFEB7, // 0x04E0 (1248)
|
||||
0xF655, 0xF5F4, 0xED92, 0xDD51, 0xD4F0, 0xC48E, 0xBC2E, 0xABCC, 0xB42D, 0xB48F, 0xD593, 0xDDF4, 0xD571, 0xDDB2, 0xDDD3, 0xEE34, // 0x04F0 (1264)
|
||||
0xF635, 0xF676, 0xE532, 0xCB0B, 0xC2AA, 0xC28A, 0xBA69, 0xBA69, 0xBA69, 0xBA69, 0xC269, 0xC26A, 0xC269, 0xC26A, 0xC26A, 0xC269, // 0x0500 (1280)
|
||||
0xBA48, 0xBA48, 0xBA48, 0xBA68, 0xC309, 0xC40C, 0xBC4C, 0xABEC, 0xB4AF, 0xBCCF, 0xAC4D, 0xA40C, 0xB4AF, 0xBCCF, 0xBCCF, 0xCD51, // 0x0510 (1296)
|
||||
0xC4AE, 0xD4EF, 0xEDD2, 0xF675, 0xFE96, 0xFEB7, 0xFEF8, 0xFF3A, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF3A, 0xFF3A, 0xFF3A, 0xFF1A, 0xFEF9, // 0x0520 (1312)
|
||||
0xFE96, 0xF635, 0xEDB2, 0xDD51, 0xD510, 0xCCAF, 0xC46E, 0xABED, 0xA3CC, 0xA3ED, 0xC511, 0xD572, 0xD551, 0xDDB2, 0xDD92, 0xE5F3, // 0x0530 (1328)
|
||||
0xEE14, 0xF635, 0xE4D1, 0xCB0B, 0xC2CA, 0xC28A, 0xC28A, 0xC26A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, // 0x0540 (1344)
|
||||
0xBA68, 0xBA68, 0xBA68, 0xC2A9, 0xC3CB, 0xC42C, 0xBC0C, 0xA3EC, 0xC531, 0xBCCF, 0xB46D, 0xB48E, 0xA42D, 0xB46E, 0x9BCB, 0xABCC, // 0x0550 (1360)
|
||||
0xC46E, 0xDD30, 0xEDF3, 0xEDF4, 0xDD92, 0xE5B2, 0xEE35, 0xF677, 0xF71A, 0xFF5B, 0xFF5B, 0xFF5A, 0xFF5A, 0xFF1A, 0xFF19, 0xFEF8, // 0x0560 (1376)
|
||||
0xF676, 0xEDF4, 0xDD31, 0xCCAF, 0xB40D, 0xABCC, 0xB40D, 0xB40D, 0xA3AC, 0x9B6B, 0xA3AC, 0xAC2D, 0xCD30, 0xDD92, 0xDD92, 0xE5F3, // 0x0570 (1392)
|
||||
0xEE35, 0xF635, 0xE4F1, 0xD38C, 0xCAEB, 0xC2AA, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC2AA, 0xC28A, 0xC28A, // 0x0580 (1408)
|
||||
0xBA68, 0xBA68, 0xC288, 0xC2E9, 0xCC8E, 0xCCCF, 0xB44C, 0xAC2D, 0xC510, 0xB48E, 0xBCCF, 0xC531, 0xAC2D, 0xA3CB, 0xA3EC, 0xBC4D, // 0x0590 (1424)
|
||||
0xD4CF, 0xDD30, 0xDD51, 0xABCC, 0xA38B, 0xABAB, 0xABAB, 0xABCC, 0xBC6E, 0xD551, 0xEE15, 0xFF19, 0xFF3A, 0xFEF9, 0xFEB7, 0xF697, // 0x05A0 (1440)
|
||||
0xE5B3, 0xBC4D, 0x930A, 0x8288, 0x7A47, 0x8288, 0x7A89, 0x936B, 0x9B8C, 0x8B0A, 0x9B6B, 0xA3AC, 0xC4CF, 0xE5F3, 0xE5D3, 0xE5F3, // 0x05B0 (1456)
|
||||
0xEE14, 0xF614, 0xED72, 0xDC2E, 0xCB0B, 0xC2AA, 0xC2AA, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC28A, 0xC2AA, 0xC2AA, 0xC28A, // 0x05C0 (1472)
|
||||
0xC288, 0xC289, 0xC2A9, 0xC30A, 0xD4CF, 0xD550, 0xB44C, 0xA42D, 0xBCEF, 0xB48E, 0xDDD3, 0xE676, 0xBCEF, 0xA3EC, 0xABEC, 0xBC2D, // 0x05D0 (1488)
|
||||
0xCC8E, 0xCC8E, 0xABAB, 0xCCAF, 0xE5B2, 0xE5D3, 0xDD51, 0xCCAE, 0xC44D, 0xC46E, 0xE592, 0xF697, 0xFEF8, 0xFEB8, 0xF635, 0xE592, // 0x05E0 (1504)
|
||||
0xC42D, 0xA32A, 0x9B0A, 0xB3EC, 0xCC8E, 0xCC6E, 0xB3ED, 0x8B4B, 0x936C, 0x82A9, 0x8B0A, 0x9B4A, 0xC4CF, 0xE614, 0xEE14, 0xE5F3, // 0x05F0 (1520)
|
||||
0xEE14, 0xEDD3, 0xEDD3, 0xED52, 0xD36C, 0xC2CB, 0xC2AA, 0xC2AA, 0xC2AA, 0xC2AA, 0xC28A, 0xC28A, 0xC2AA, 0xCACA, 0xC2AA, 0xC2AA, // 0x0600 (1536)
|
||||
0xC288, 0xC2A9, 0xC2A9, 0xC309, 0xD4AE, 0xD571, 0xB44D, 0xA40D, 0xBCCF, 0xC530, 0xD592, 0xC531, 0xA42D, 0x9BAB, 0x9B8B, 0xB3EC, // 0x0610 (1552)
|
||||
0xBC2D, 0xABCC, 0xC44D, 0xDD51, 0xEDB2, 0xEDD3, 0xEDB2, 0xDD51, 0xDD10, 0xD510, 0xE592, 0xF635, 0xFED8, 0xF697, 0xEDB3, 0xD4AF, // 0x0620 (1568)
|
||||
0xAB8B, 0xA34A, 0xBC2D, 0xD4AF, 0xD4AF, 0xCC4D, 0xB3CC, 0xAC0E, 0x9BCD, 0x7A48, 0x930A, 0x9B6A, 0xC4AF, 0xE5F4, 0xEE13, 0xE5D2, // 0x0630 (1584)
|
||||
0xEDF3, 0xEDB3, 0xED93, 0xF5F5, 0xD38C, 0xCACB, 0xC2CA, 0xC2AA, 0xC2AA, 0xC2AA, 0xC2AA, 0xC2AA, 0xC2AA, 0xC2AA, 0xC2AA, 0xC2AA, // 0x0640 (1600)
|
||||
0xC289, 0xC2A9, 0xC2A9, 0xC309, 0xC3AB, 0xBC6D, 0xB44D, 0x9C0C, 0xC530, 0xC530, 0xBCCF, 0xB48E, 0xA40C, 0x8B4A, 0x9B6A, 0xB3CC, // 0x0650 (1616)
|
||||
0xB3CC, 0xABAB, 0xCC6E, 0xD4CF, 0xE551, 0xF656, 0xFEB7, 0xF676, 0xEE14, 0xE5B3, 0xDD51, 0xF614, 0xFEB8, 0xFEB8, 0xE572, 0xB3EC, // 0x0660 (1632)
|
||||
0x9B2A, 0xD4F0, 0xF656, 0xF656, 0xE572, 0xBC0D, 0x9B0A, 0x9B4B, 0xAC4F, 0x7248, 0x9B4B, 0xA3AB, 0xCCCF, 0xDD92, 0xE5D2, 0xEDF3, // 0x0670 (1648)
|
||||
0xEDF3, 0xF5F4, 0xF5B3, 0xF5D4, 0xD38D, 0xCAEA, 0xCACA, 0xC2AA, 0xC2AA, 0xCAAA, 0xC2AA, 0xC2AA, 0xCAAA, 0xCACB, 0xCACA, 0xCACA, // 0x0680 (1664)
|
||||
0xC2A9, 0xC2C9, 0xC2C9, 0xC2E9, 0xC3AB, 0xAB8A, 0x9BAA, 0xA40D, 0xC531, 0xB46E, 0xB48E, 0xAC4D, 0x9BCB, 0x8309, 0x9B6B, 0xB3CC, // 0x0690 (1680)
|
||||
0xB3CC, 0xB3AB, 0xBC2D, 0xCC8E, 0xDD51, 0xDDB3, 0xCD52, 0xC4D0, 0xD531, 0xE5B3, 0xE5B3, 0xEDD3, 0xFE97, 0xFED8, 0xDD31, 0x9B2A, // 0x06A0 (1696)
|
||||
0xBC4F, 0xDD93, 0xC511, 0xAC2E, 0xABED, 0xABAC, 0x8AC9, 0x8AC9, 0xA40E, 0x7A68, 0x9B6B, 0xABEC, 0xC4AE, 0xDD71, 0xE5D3, 0xE5D2, // 0x06B0 (1712)
|
||||
0xEDF3, 0xF614, 0xF635, 0xEDB3, 0xD38C, 0xCAEA, 0xCACA, 0xC2CA, 0xC2CA, 0xCACA, 0xCACA, 0xCACA, 0xCACA, 0xCACB, 0xCACA, 0xCACA, // 0x06C0 (1728)
|
||||
0xC2C9, 0xC2E9, 0xCAE9, 0xC2E9, 0xC329, 0xB3AB, 0x9329, 0x8B6B, 0xAC6E, 0x8B4A, 0x9BCC, 0x9BCC, 0x936B, 0x8B09, 0x936A, 0xABCC, // 0x06D0 (1744)
|
||||
0xB3EC, 0xB3CC, 0xA38B, 0x930A, 0x7247, 0x5144, 0x4103, 0x6207, 0x934A, 0xC48F, 0xEE15, 0xEDF4, 0xF635, 0xFE97, 0xDD31, 0xA36B, // 0x06E0 (1760)
|
||||
0xC4B0, 0xA3ED, 0x7AEA, 0x4144, 0x38C2, 0x40E3, 0x59A6, 0x7268, 0xA3ED, 0x82C9, 0x936B, 0xABEC, 0xBC4C, 0xD530, 0xEE34, 0xEE34, // 0x06F0 (1776)
|
||||
0xEDF3, 0xEDD3, 0xF676, 0xEDB3, 0xD38C, 0xCAEB, 0xCAEA, 0xC2CA, 0xC2CA, 0xCACA, 0xCACA, 0xCACA, 0xCACA, 0xCACB, 0xCACB, 0xCACB, // 0x0700 (1792)
|
||||
0xC2C9, 0xCAE9, 0xCAEA, 0xCB0A, 0xCB0A, 0xBB09, 0x8A67, 0x7A88, 0x8B2A, 0x59A5, 0x7AC9, 0x9BEC, 0xA40C, 0x936A, 0x936B, 0xABEC, // 0x0710 (1808)
|
||||
0xC46E, 0xCCAF, 0xBC4E, 0x7A88, 0x6A06, 0x8B2A, 0xB46E, 0xCCF0, 0xDDB3, 0xEE56, 0xF656, 0xEE14, 0xEE14, 0xF656, 0xDD52, 0xB40D, // 0x0720 (1824)
|
||||
0xCCCF, 0xDD72, 0xDD72, 0xBC8F, 0xA3AC, 0x82C9, 0x6A07, 0x934B, 0xB44E, 0x938C, 0x934A, 0xAC0C, 0xBC4D, 0xC4AE, 0xDD51, 0xEE54, // 0x0730 (1840)
|
||||
0xF676, 0xEDD3, 0xF614, 0xED32, 0xD38C, 0xCB0B, 0xCAEB, 0xCAEA, 0xCACA, 0xCACA, 0xCACA, 0xCACA, 0xCACA, 0xCAEB, 0xCAEB, 0xCACB, // 0x0740 (1856)
|
||||
0xCAE9, 0xCAEA, 0xCB0A, 0xCB0A, 0xCB0A, 0xCB2A, 0xB32A, 0x7206, 0x7247, 0x61A5, 0x82E9, 0xAC0C, 0xAC4D, 0xA3CB, 0x9BAB, 0xBC4D, // 0x0750 (1872)
|
||||
0xD4EF, 0xE592, 0xEDF3, 0xEE14, 0xE5F4, 0xEE35, 0xEDF4, 0xEE55, 0xF6B8, 0xF6B7, 0xF676, 0xEE14, 0xEDD3, 0xEDF4, 0xE572, 0xCCB0, // 0x0760 (1888)
|
||||
0xC44E, 0xD510, 0xE592, 0xE592, 0xDD51, 0xDD51, 0xCCD0, 0xB40D, 0xBC6F, 0xB46F, 0x9BAB, 0xAC0C, 0xBC4D, 0xC4CF, 0xDD71, 0xE5F3, // 0x0770 (1904)
|
||||
0xFED8, 0xEDB2, 0xED72, 0xE4B0, 0xD34B, 0xCB0B, 0xCAEB, 0xCAEA, 0xCAEA, 0xCAEA, 0xCACA, 0xCACA, 0xCAEB, 0xCAEB, 0xCACB, 0xCAEB, // 0x0780 (1920)
|
||||
0xC2C9, 0xCAE9, 0xCB0A, 0xCB09, 0xCB09, 0xCB4A, 0xC3AB, 0x8267, 0x7247, 0x69E6, 0x6164, 0x9B4A, 0xBCAF, 0xB42C, 0xABEC, 0xBC6E, // 0x0790 (1936)
|
||||
0xDD51, 0xEDF3, 0xF676, 0xFEB7, 0xFEF8, 0xFED8, 0xFED8, 0xFEF8, 0xFEF8, 0xFEB7, 0xF656, 0xEDD3, 0xE571, 0xEDF4, 0xEDB3, 0xD511, // 0x07A0 (1952)
|
||||
0xBC2D, 0xCCCF, 0xE551, 0xE5B3, 0xEDD3, 0xE5B2, 0xE572, 0xD510, 0xCD11, 0xCD73, 0xA3CC, 0xA3AB, 0xB40C, 0xC4CE, 0xE5F3, 0xEE34, // 0x07B0 (1968)
|
||||
0xF696, 0xE530, 0xE4AF, 0xD3CD, 0xCB0B, 0xCB0B, 0xCAEB, 0xCAEB, 0xCAEA, 0xCAEB, 0xCACA, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, // 0x07C0 (1984)
|
||||
0xC2C9, 0xC2E9, 0xC2E9, 0xC2E9, 0xCB09, 0xCB4A, 0xBB6A, 0x8AC8, 0x82C8, 0x7226, 0x6984, 0x8247, 0xB44D, 0xBC6E, 0xB42D, 0xBC6E, // 0x07D0 (2000)
|
||||
0xD530, 0xE5B3, 0xF675, 0xFEB7, 0xFEF8, 0xFEF8, 0xFEF8, 0xFEF7, 0xFEF8, 0xFEB7, 0xF634, 0xE551, 0xDD31, 0xF677, 0xF656, 0xD4F0, // 0x07E0 (2016)
|
||||
0xBC6F, 0xCC8F, 0xE551, 0xE572, 0xED92, 0xE571, 0xDD31, 0xD4F0, 0xD552, 0xD593, 0xA3AB, 0xA38A, 0xB42D, 0xC4EF, 0xE614, 0xEE34, // 0x07F0 (2032)
|
||||
0xE5B2, 0xDCAF, 0xD3ED, 0xCB2B, 0xCB0B, 0xCB0B, 0xCAEB, 0xCAEA, 0xCAEA, 0xCAEA, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, 0xCACB, // 0x0800 (2048)
|
||||
0xC2E9, 0xCAE9, 0xCB09, 0xCB09, 0xCB2A, 0xB309, 0xBB8B, 0x82A8, 0x82C8, 0x82E8, 0x8267, 0xAB6A, 0xCCAE, 0xB3EC, 0xABCC, 0xB42D, // 0x0810 (2064)
|
||||
0xCCAF, 0xDD51, 0xEDF3, 0xF655, 0xFEB7, 0xFEF8, 0xFF39, 0xFF19, 0xFEF8, 0xF696, 0xE5B2, 0xD4CF, 0xBBEC, 0xC42D, 0xBC2D, 0x8AA8, // 0x0820 (2080)
|
||||
0x8AEA, 0xA3AC, 0xE551, 0xEDB2, 0xEDB2, 0xE572, 0xDCF0, 0xD4F0, 0xDDD4, 0xCD32, 0xA36B, 0xA3AB, 0xB42D, 0xCD30, 0xDD92, 0xE5F3, // 0x0830 (2096)
|
||||
0xDD10, 0xD3CC, 0xD34B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCAEB, 0xCAEA, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, 0xCAEB, // 0x0840 (2112)
|
||||
0xCB09, 0xCB09, 0xCB09, 0xC309, 0xBAE9, 0xB2E9, 0xB36A, 0x7A46, 0x8287, 0x8AC8, 0xABCB, 0xC44D, 0xDD2F, 0xAB6A, 0xA36A, 0xABAB, // 0x0850 (2128)
|
||||
0xB40D, 0xD4CF, 0xE571, 0xEDF3, 0xF655, 0xFEF8, 0xFF7B, 0xFF3A, 0xFED7, 0xF655, 0xDD10, 0xB38B, 0x7A06, 0x92C8, 0x71E6, 0x5103, // 0x0860 (2144)
|
||||
0x5103, 0x71E6, 0xD4CF, 0xEDD3, 0xEDF4, 0xE592, 0xDCD0, 0xD4F0, 0xE636, 0xB46F, 0x8AA8, 0x9329, 0xBC8E, 0xDDD3, 0xDD92, 0xE5B2, // 0x0870 (2160)
|
||||
0xE531, 0xD3CC, 0xCB2B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCAEB, 0xCAEB, 0xCAEA, 0xCAEB, 0xCB0B, 0xCAEB, 0xCB0B, 0xCAEB, 0xCAEB, 0xCAEB, // 0x0880 (2176)
|
||||
0xCB09, 0xCB0A, 0xCB0A, 0xCB09, 0xC2E9, 0x9A46, 0x8266, 0x71E5, 0x82A7, 0xABEB, 0xD551, 0xD550, 0xD4EE, 0xBBCB, 0xBC0C, 0xA34A, // 0x0890 (2192)
|
||||
0xA34A, 0xBC0C, 0xD4CF, 0xE530, 0xEDB2, 0xF696, 0xFF19, 0xFEF8, 0xF655, 0xF634, 0xE5B3, 0xC46E, 0xDD10, 0xD4D0, 0x9B2A, 0x8247, // 0x08A0 (2208)
|
||||
0x69A5, 0x7A27, 0xCC8E, 0xEDD3, 0xEDF4, 0xE571, 0xD48E, 0xCCAF, 0xD593, 0xA3AC, 0x8227, 0x8247, 0xAC0D, 0xC4CF, 0xCCEF, 0xDD30, // 0x08B0 (2224)
|
||||
0xE551, 0xD3ED, 0xCB2B, 0xCB2B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCAEB, 0xCAEB, 0xCAEB, 0xCB0B, 0xCB0B, 0xCB0B, 0xCAEB, 0xCAEB, 0xCAEB, // 0x08C0 (2240)
|
||||
0xCB09, 0xCB0A, 0xCB2A, 0xCB2A, 0xCB2A, 0x9A67, 0x6184, 0x7226, 0x8AC8, 0xABEB, 0xD571, 0xD571, 0xC46D, 0xD50F, 0xCC8E, 0xA34A, // 0x08D0 (2256)
|
||||
0x92E9, 0xAB8B, 0xC42C, 0xD4AE, 0xE530, 0xEDD3, 0xF675, 0xF675, 0xEE14, 0xF655, 0xF635, 0xF635, 0xF635, 0xEE14, 0xEDB3, 0xDD30, // 0x08E0 (2272)
|
||||
0xC46E, 0xC46E, 0xCCAF, 0xE551, 0xE592, 0xD4F0, 0xC40D, 0xB3EC, 0xBC8F, 0x9B6B, 0x7A07, 0x7A06, 0x9309, 0xB40C, 0xCCAE, 0xDD31, // 0x08F0 (2288)
|
||||
0xE531, 0xD3AC, 0xCB2B, 0xCB2B, 0xCB2B, 0xCB2B, 0xCB0B, 0xCAEB, 0xCAEA, 0xCAEB, 0xCB0B, 0xCB0B, 0xCB0B, 0xCAEB, 0xCAEB, 0xCAEB, // 0x0900 (2304)
|
||||
0xCB0A, 0xCB0A, 0xCB2A, 0xCB2A, 0xCB2A, 0xB2C8, 0x8206, 0x8B29, 0x934A, 0xB48E, 0xCD30, 0xC4EE, 0xBC4C, 0xD4EF, 0xDD71, 0xB3CB, // 0x0910 (2320)
|
||||
0x8AE9, 0x9B09, 0xB3CB, 0xC42C, 0xD4AE, 0xE550, 0xEDD2, 0xEE13, 0xEE14, 0xF635, 0xEE14, 0xED92, 0xEE14, 0xE551, 0xDCF0, 0xD44D, // 0x0920 (2336)
|
||||
0xB32A, 0xBBAB, 0xBC2D, 0xCC8E, 0xD4CF, 0xC42D, 0xB3AB, 0x9B4A, 0xA3CC, 0x9B4B, 0x71C6, 0x61A5, 0x8AC8, 0xABEC, 0xCCCF, 0xE571, // 0x0930 (2352)
|
||||
0xDCAF, 0xD36C, 0xCB2B, 0xCB2B, 0xCB2B, 0xCB2B, 0xCB0B, 0xCB0B, 0xCAEA, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCAEB, // 0x0940 (2368)
|
||||
0xCB0A, 0xCB0A, 0xCB2A, 0xCB2A, 0xCB4A, 0xCB4A, 0xBB09, 0x9AC8, 0x7A88, 0xA40C, 0xBCEF, 0xB44D, 0xABCA, 0xC44D, 0xDD30, 0xBC2C, // 0x0950 (2384)
|
||||
0x9309, 0x9B2A, 0xB3AB, 0xC40C, 0xD48D, 0xDD2F, 0xE591, 0xEDD2, 0xEDF3, 0xDD51, 0xB2E9, 0xAA26, 0xAA87, 0xA226, 0x99C5, 0x9184, // 0x0960 (2400)
|
||||
0x78C1, 0x70C1, 0x81E5, 0xABAB, 0xD4AF, 0xC44D, 0xAB8B, 0x930A, 0xA3CC, 0x8AEA, 0x4104, 0x5165, 0x92E9, 0xA38A, 0xBC0C, 0xCC6E, // 0x0970 (2416)
|
||||
0xCB6C, 0xCB2B, 0xCB2B, 0xD34C, 0xD34B, 0xCB2B, 0xCB2B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCAEB, // 0x0980 (2432)
|
||||
0xCB2A, 0xCB2A, 0xCB2A, 0xCB2A, 0xCB4A, 0xCB6A, 0xD38B, 0xC329, 0x79A5, 0x69E5, 0x7AC8, 0x8B08, 0x9308, 0xAB69, 0xB40C, 0xAC0C, // 0x0990 (2448)
|
||||
0x9B8B, 0x9B4A, 0xB3AB, 0xBC0B, 0xCC8D, 0xDD0F, 0xE571, 0xE571, 0xDD30, 0x9A05, 0x80E1, 0x9A47, 0xC490, 0xD594, 0xCD11, 0xBC8F, // 0x09A0 (2464)
|
||||
0x8A67, 0x60C2, 0x5860, 0x9288, 0xCC8E, 0xC46D, 0xABAB, 0x934B, 0xAC0D, 0x6AA9, 0x3125, 0x4986, 0x7268, 0x9B2A, 0xB3CB, 0xD46E, // 0x09B0 (2480)
|
||||
0xCB4B, 0xCB2B, 0xD34B, 0xD34C, 0xD34C, 0xD32B, 0xCB2B, 0xCB2B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB2B, 0xCB0B, 0xCB0B, 0xCB0B, // 0x09C0 (2496)
|
||||
0xCB2A, 0xCB2A, 0xCB2A, 0xCB4A, 0xCB4A, 0xD36B, 0xCB6B, 0xBAE9, 0x81A5, 0x50E2, 0x5984, 0x5984, 0x6184, 0x8AC8, 0x7288, 0x41E7, // 0x09D0 (2512)
|
||||
0x8B09, 0x934A, 0xABAB, 0xBC0C, 0xCC8D, 0xDD0F, 0xE571, 0xDD50, 0xC42C, 0x60A1, 0x6123, 0xA38C, 0xC4F1, 0xCD52, 0xCD52, 0xB44E, // 0x09E0 (2528)
|
||||
0x8AE9, 0x6185, 0x58C2, 0xB36A, 0xCCAE, 0xC46E, 0xABCC, 0xA3AC, 0xAC4E, 0x4985, 0x28C4, 0x3105, 0x7ACA, 0xA36A, 0xB3AB, 0xD40D, // 0x09F0 (2544)
|
||||
0xCB4B, 0xCB2B, 0xD34C, 0xD34C, 0xD34C, 0xD34B, 0xD32B, 0xCB2B, 0xCB0B, 0xCB0B, 0xCB0B, 0xCB0B, 0xD32B, 0xCB2B, 0xCB0B, 0xCB0B, // 0x0A00 (2560)
|
||||
0xCB4A, 0xCB4A, 0xCB4A, 0xCB4A, 0xCB4A, 0xD36A, 0xD36A, 0x8A06, 0x5923, 0x48E3, 0x5164, 0x5984, 0x5984, 0x49C6, 0x3965, 0x39C7, // 0x0A10 (2576)
|
||||
0x59E6, 0x832A, 0xABAB, 0xBC0C, 0xCC8E, 0xDD30, 0xE591, 0xEDD2, 0xE591, 0xA267, 0x9AA8, 0xCC8F, 0xD532, 0xDDB4, 0xD594, 0xBBEC, // 0x0A20 (2592)
|
||||
0x9206, 0x70E3, 0x91E5, 0xC44D, 0xCCAE, 0xC44D, 0xB3EC, 0xABEC, 0xB44E, 0x4186, 0x3146, 0x30C4, 0x8B2B, 0xB3CC, 0xCBCC, 0xD3AC, // 0x0A30 (2608)
|
||||
0xD34B, 0xD34B, 0xD34C, 0xD36C, 0xD34C, 0xD34B, 0xCB2B, 0xD32B, 0xCB2B, 0xCB0B, 0xCB0B, 0xCB2B, 0xD32B, 0xD32B, 0xCB0B, 0xCB0B, // 0x0A40 (2624)
|
||||
0xCB4A, 0xCB4A, 0xD36A, 0xCB4A, 0xCB4A, 0xCB6A, 0xCB6A, 0x79C5, 0x69C5, 0x7267, 0x61C5, 0x61A5, 0x5143, 0x2061, 0x3145, 0x20C3, // 0x0A50 (2640)
|
||||
0x2125, 0x6ACA, 0xA38B, 0xBC0C, 0xCC6D, 0xDD0F, 0xE591, 0xEDF3, 0xEE13, 0xDCF0, 0xAA46, 0xAA26, 0xC36B, 0xC36B, 0xBB09, 0xA1C5, // 0x0A60 (2656)
|
||||
0x88E2, 0x8984, 0xAB6A, 0xC44D, 0xC44D, 0xBC2D, 0xABED, 0xAC0D, 0x9BCD, 0x2041, 0x3925, 0x6228, 0xA36B, 0xCBAC, 0xD38C, 0xCB4B, // 0x0A70 (2672)
|
||||
0xCB4B, 0xD34B, 0xD34C, 0xD36C, 0xD34C, 0xD34C, 0xD34C, 0xD34B, 0xD32B, 0xCB2B, 0xCB2B, 0xD32B, 0xD34B, 0xD32B, 0xD32B, 0xD32B, // 0x0A80 (2688)
|
||||
0xCB4A, 0xCB4A, 0xD36A, 0xCB4A, 0xCB4A, 0xCB6A, 0xCB4A, 0x7184, 0x61A4, 0x7AA7, 0x6A26, 0x4902, 0x3061, 0x2925, 0x4208, 0x4A8A, // 0x0A90 (2704)
|
||||
0x20E4, 0x4165, 0x8309, 0xABCB, 0xC44D, 0xD4CE, 0xDD50, 0xE5D2, 0xEE13, 0xEE14, 0xDCCF, 0xB2C8, 0xA1E5, 0xA226, 0xA1E5, 0x8984, // 0x0AA0 (2720)
|
||||
0x9226, 0xAB4A, 0xBC0D, 0xBC0C, 0xBC0C, 0xB3EC, 0xABCC, 0xAC2D, 0x82EA, 0x4924, 0x5186, 0xAB6B, 0xCB8C, 0xCB6B, 0xD36B, 0xCB4B, // 0x0AB0 (2736)
|
||||
0xCB4B, 0xD34C, 0xD36C, 0xD36C, 0xD36C, 0xD36C, 0xD34C, 0xD34B, 0xCB2B, 0xD32B, 0xD34B, 0xD36C, 0xD36C, 0xD36C, 0xD34B, 0xD34C, // 0x0AC0 (2752)
|
||||
0xCB2A, 0xCB2A, 0xCB4A, 0xCB4A, 0xCB4A, 0xCB6A, 0xCB4A, 0x7143, 0x6184, 0x8B49, 0x938B, 0x8309, 0x40E2, 0x3082, 0x28E3, 0x41E8, // 0x0AD0 (2768)
|
||||
0x28E4, 0x30C2, 0x6A67, 0x936A, 0xB40C, 0xC46D, 0xD50F, 0xE591, 0xEDF3, 0xF634, 0xEE14, 0xEDD3, 0xE551, 0xDCF0, 0xD4AF, 0xD4AF, // 0x0AE0 (2784)
|
||||
0xCC8E, 0xCC6E, 0xC46E, 0xBC2D, 0xB3EC, 0xA3AB, 0xA38B, 0xA3EC, 0xA3CC, 0x7A68, 0xA36B, 0xCBCC, 0xCB6C, 0xD36B, 0xD36B, 0xD34B, // 0x0AF0 (2800)
|
||||
0xD34B, 0xD34C, 0xD36C, 0xD36C, 0xD38C, 0xDBEE, 0xE4B1, 0xE4D1, 0xDC6F, 0xDC6F, 0xE4B0, 0xE511, 0xED31, 0xE4F0, 0xE48F, 0xDC2E, // 0x0B00 (2816)
|
||||
0xCB2A, 0xCB2A, 0xCB4A, 0xCB4A, 0xCB4A, 0xCB6A, 0xCB6A, 0xAA87, 0x7184, 0x7226, 0x8B49, 0x936A, 0x7287, 0x48E2, 0x4144, 0x4164, // 0x0B10 (2832)
|
||||
0x2861, 0x30C3, 0x7267, 0x7AC9, 0x934A, 0xBC4D, 0xCCCE, 0xDD30, 0xE5B2, 0xEE14, 0xF655, 0xF655, 0xF676, 0xF676, 0xF614, 0xEDB3, // 0x0B20 (2848)
|
||||
0xDD10, 0xD4F0, 0xCC8E, 0xBC2D, 0xA3AB, 0x9B6B, 0x9B6B, 0x8B0A, 0xA3CC, 0x8B6B, 0x9B8C, 0xB3AD, 0xCBAC, 0xCB6B, 0xD36B, 0xD34B, // 0x0B30 (2864)
|
||||
0xD36C, 0xD3AC, 0xDC0E, 0xE4D1, 0xEE16, 0xF6FA, 0xF6B8, 0xF6B7, 0xFEB7, 0xFEB7, 0xFED8, 0xFED8, 0xFED8, 0xFE96, 0xF614, 0xED92, // 0x0B40 (2880)
|
||||
0xCB2A, 0xCB2A, 0xCB2A, 0xCB4A, 0xCB4A, 0xCB6A, 0xCB6A, 0xB2C8, 0x71A5, 0x71E6, 0x8287, 0x82E8, 0x7AA7, 0x7267, 0x8309, 0x51A4, // 0x0B50 (2896)
|
||||
0x38A1, 0x3881, 0x7AA8, 0x8B29, 0x6A47, 0x9B6A, 0xBC4C, 0xCCCE, 0xDD51, 0xEDD3, 0xF635, 0xF696, 0xFED8, 0xFEF9, 0xF655, 0xEDB3, // 0x0B60 (2912)
|
||||
0xDCF0, 0xD4EF, 0xC46E, 0xABEC, 0x9B6B, 0x8B2A, 0x7A68, 0x6A27, 0x936B, 0x8B6C, 0x834C, 0x7B2B, 0x9BED, 0xB3CD, 0xB34B, 0xB36C, // 0x0B70 (2928)
|
||||
0xC46F, 0xE5B5, 0xF71B, 0xFFDE, 0xFFDF, 0xF71A, 0xFF39, 0xFF3A, 0xFF3A, 0xFF39, 0xFF3A, 0xFF5A, 0xFF3A, 0xFF19, 0xFE97, 0xF634, // 0x0B80 (2944)
|
||||
0xCB2A, 0xCB2A, 0xCB4A, 0xCB4A, 0xCB6A, 0xD38B, 0xD38B, 0xC329, 0x81E5, 0x7226, 0x8B09, 0x8B08, 0x8AE8, 0x936A, 0x7AE9, 0x6A67, // 0x0B90 (2960)
|
||||
0x6206, 0x4103, 0x7AC9, 0xAC0C, 0x82C8, 0x59E6, 0x82E9, 0xABEC, 0xC48E, 0xDD50, 0xEDD3, 0xF655, 0xF696, 0xEE55, 0xE5D3, 0xEDD3, // 0x0BA0 (2976)
|
||||
0xDD30, 0xCC8E, 0xABCC, 0x934A, 0x82C9, 0x6A07, 0x5965, 0x5985, 0x6A07, 0x7B4B, 0x838D, 0x7B4C, 0x8BCD, 0x9C4F, 0xACB0, 0xAC90, // 0x0BB0 (2992)
|
||||
0xD636, 0xF75C, 0xFFDF, 0xFFFF, 0xF73B, 0xFF5A, 0xFF7B, 0xFF5A, 0xFF5A, 0xFF5A, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF5A, 0xFF18, 0xFE96, // 0x0BC0 (3008)
|
||||
0xCB4A, 0xCB4A, 0xCB4A, 0xD36A, 0xD36B, 0xD38B, 0xD3AB, 0xCB8B, 0x89E5, 0x5943, 0x7267, 0x8B09, 0x8B29, 0x8B6A, 0x8309, 0x9BEC, // 0x0BD0 (3024)
|
||||
0x834A, 0x51C5, 0x6A88, 0xAC2D, 0xAC0C, 0x6A27, 0x4923, 0x6227, 0x934A, 0xB40D, 0xCCCF, 0xD551, 0xD551, 0xD510, 0xCCAF, 0xCCF0, // 0x0BE0 (3040)
|
||||
0xB40D, 0x932A, 0x82C9, 0x7A88, 0x61E6, 0x5964, 0x5944, 0x5144, 0x5144, 0x49C6, 0x6289, 0x6ACA, 0x83AD, 0xBD74, 0xE6B9, 0xDE99, // 0x0BF0 (3056)
|
||||
0xEF1B, 0xFFDE, 0xFFFF, 0xFFDF, 0xF71A, 0xFF7B, 0xFF7B, 0xFF5A, 0xFF5A, 0xFF7B, 0xFF7B, 0xFF9B, 0xFF9B, 0xFF7B, 0xFF3A, 0xFED7, // 0x0C00 (3072)
|
||||
0xCB4A, 0xCB4A, 0xD36A, 0xD36B, 0xD36A, 0xD38B, 0xD3AB, 0xD3AB, 0xAA67, 0x50E2, 0x5964, 0x69E5, 0x7AC8, 0x834A, 0xA44D, 0xB4F0, // 0x0C10 (3088)
|
||||
0xC5B3, 0xA4B0, 0x8BAC, 0xAC2D, 0xC48E, 0xB42D, 0x7AA8, 0x4103, 0x4123, 0x6227, 0x7AA9, 0x8B2A, 0x8B09, 0x82A8, 0x7247, 0x7227, // 0x0C20 (3104)
|
||||
0x69E6, 0x6A06, 0x61C6, 0x5985, 0x5144, 0x5144, 0x5124, 0x5103, 0x48E3, 0x2041, 0x1800, 0x1800, 0x1820, 0x3124, 0x83CF, 0xBDF7, // 0x0C30 (3120)
|
||||
0xF77D, 0xFFDF, 0xFFFF, 0xF79D, 0xEED8, 0xFF9C, 0xFF9C, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF9C, 0xFF9C, 0xFF9B, 0xFF3A, 0xFEF8, // 0x0C40 (3136)
|
||||
0xCB4A, 0xD34B, 0xD36B, 0xD38B, 0xD36B, 0xD38B, 0xD3AB, 0xD38B, 0xB2C9, 0x7985, 0x71A5, 0x8267, 0x8B09, 0x8B4A, 0xBD10, 0xDE97, // 0x0C50 (3152)
|
||||
0xEF3B, 0xEF3B, 0xDE98, 0xBCF0, 0xC4AE, 0xC4CF, 0xB44D, 0x82A8, 0x5184, 0x4103, 0x4124, 0x4964, 0x5165, 0x5164, 0x5164, 0x5964, // 0x0C60 (3168)
|
||||
0x5964, 0x5944, 0x5144, 0x5124, 0x5124, 0x5144, 0x5124, 0x5103, 0x40C3, 0x2041, 0x1800, 0x1800, 0x1821, 0x1842, 0x2083, 0x3146, // 0x0C70 (3184)
|
||||
0x738E, 0xCE59, 0xF7BF, 0xE6B9, 0xEEB8, 0xFF9C, 0xFF9C, 0xFF7B, 0xFF7B, 0xFF7A, 0xFF7B, 0xFF9C, 0xFF9C, 0xFF7B, 0xFF39, 0xFED8, // 0x0C80 (3200)
|
||||
0xCB4A, 0xD34A, 0xD36B, 0xD36B, 0xCB6B, 0xD38B, 0xD3AB, 0xD38B, 0xC34A, 0x91E6, 0x8A26, 0x9AE9, 0x9B4A, 0x9BCB, 0xDE77, 0xEF1A, // 0x0C90 (3216)
|
||||
0xF79D, 0xFFDE, 0xFFBE, 0xD615, 0xBCCE, 0xCCEF, 0xCD10, 0xC4AE, 0x9B8B, 0x6206, 0x4964, 0x4124, 0x4924, 0x4923, 0x5144, 0x5144, // 0x0CA0 (3232)
|
||||
0x5124, 0x5944, 0x5944, 0x5124, 0x5124, 0x5144, 0x5944, 0x5124, 0x48E3, 0x2841, 0x1800, 0x1800, 0x1821, 0x1863, 0x1883, 0x1884, // 0x0CB0 (3248)
|
||||
0x20A4, 0x2925, 0x736E, 0xA42E, 0xF6F9, 0xFF7C, 0xFF9C, 0xFF9C, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF9B, 0xFF9B, 0xFF7B, 0xFF19, 0xFED7, // 0x0CC0 (3264)
|
||||
0xCB4A, 0xCB4B, 0xD36B, 0xD36B, 0xD36B, 0xD38B, 0xD3AB, 0xD3AC, 0xD3AB, 0xC34A, 0xB2E9, 0xBB4A, 0xC3EC, 0xDE36, 0xFFBE, 0xFFBE, // 0x0CD0 (3280)
|
||||
0xFFBE, 0xFFFF, 0xFFDE, 0xEF1A, 0xC510, 0xCD0F, 0xCD30, 0xD550, 0xC4CF, 0x9BAB, 0x7267, 0x5185, 0x4944, 0x4944, 0x5144, 0x5144, // 0x0CE0 (3296)
|
||||
0x5944, 0x5964, 0x5964, 0x5124, 0x5124, 0x5964, 0x5964, 0x5144, 0x4903, 0x3082, 0x1820, 0x1821, 0x1862, 0x1883, 0x1884, 0x1884, // 0x0CF0 (3312)
|
||||
0x1883, 0x2084, 0x20C4, 0x6269, 0xEE97, 0xFF5B, 0xFF7B, 0xFF9C, 0xFF9C, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF5A, 0xFF19, 0xF6B6, // 0x0D00 (3328)
|
||||
0xD36B, 0xD36B, 0xD36B, 0xD38B, 0xD38B, 0xD3AB, 0xD3AB, 0xD3AB, 0xD3AC, 0xD3CC, 0xD3CC, 0xD40D, 0xE5D5, 0xFFBE, 0xFFFF, 0xFFFF, // 0x0D10 (3344)
|
||||
0xFFFF, 0xFFFF, 0xFFDE, 0xF79D, 0xD5D4, 0xC510, 0xCD30, 0xD571, 0xD571, 0xCCEF, 0xA3EC, 0x7AA8, 0x59A5, 0x5164, 0x5164, 0x5164, // 0x0D20 (3360)
|
||||
0x5965, 0x5964, 0x5964, 0x5944, 0x5944, 0x5965, 0x5985, 0x5164, 0x5144, 0x4904, 0x4924, 0x30C3, 0x20A4, 0x20A4, 0x2084, 0x2084, // 0x0D30 (3376)
|
||||
0x1884, 0x1884, 0x1883, 0x28E4, 0x732C, 0xDE57, 0xFF5A, 0xFF7B, 0xFF9B, 0xFF7B, 0xFF7B, 0xFF7B, 0xFF5B, 0xFF3A, 0xFEF8, 0xF675, // 0x0D40 (3392)
|
||||
0xD36B, 0xD36B, 0xD38B, 0xD38B, 0xD38B, 0xD3AB, 0xD3AB, 0xD3AC, 0xD3CC, 0xD3CC, 0xD3ED, 0xDCB0, 0xF75C, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0D50 (3408)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xF79D, 0xDE77, 0xC510, 0xCD30, 0xD551, 0xD551, 0xD550, 0xC4CF, 0xABEC, 0x82C8, 0x61E6, 0x5985, 0x5985, // 0x0D60 (3424)
|
||||
0x5985, 0x5985, 0x5965, 0x5964, 0x5985, 0x5985, 0x5985, 0x5985, 0x5965, 0x69E6, 0x934A, 0x936B, 0x3946, 0x28C5, 0x20A4, 0x2084, // 0x0D70 (3440)
|
||||
0x1884, 0x1884, 0x1883, 0x1884, 0x20C4, 0x49E8, 0xACF2, 0xEEF9, 0xFF5B, 0xFF5A, 0xFF5A, 0xFF7B, 0xFF3A, 0xFF18, 0xF6B6, 0xEE34, // 0x0D80 (3456)
|
||||
0xD36B, 0xD38B, 0xD38B, 0xD38B, 0xD38B, 0xD38B, 0xD3AC, 0xD3CC, 0xD3CC, 0xD3CC, 0xDC0D, 0xE4F1, 0xFF9D, 0xFFDF, 0xFFFF, 0xFFFF, // 0x0D90 (3472)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFDE, 0xEF1A, 0xC530, 0xC50F, 0xD550, 0xD550, 0xD550, 0xCD30, 0xC4AE, 0xABEC, 0x8AE9, 0x7227, 0x69E6, // 0x0DA0 (3488)
|
||||
0x61A5, 0x61A5, 0x61A5, 0x5985, 0x5985, 0x61A5, 0x61A5, 0x61C6, 0x61E6, 0x9309, 0xBC4D, 0xD510, 0x8B8C, 0x3105, 0x20C5, 0x20A4, // 0x0DB0 (3504)
|
||||
0x2084, 0x1883, 0x1884, 0x1884, 0x1863, 0x20A4, 0x2905, 0x7B8D, 0xDE77, 0xFF39, 0xFF3A, 0xFF3A, 0xFF19, 0xFED7, 0xF696, 0xEE34, // 0x0DC0 (3520)
|
||||
0xD36B, 0xD38B, 0xD3AB, 0xD38B, 0xD38B, 0xD3AB, 0xD3AC, 0xD3CC, 0xD3CC, 0xD3EC, 0xDC0D, 0xDC6E, 0xF6D9, 0xF79D, 0xFFDF, 0xFFFF, // 0x0DD0 (3536)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF79D, 0xBCEF, 0xBCCE, 0xCD30, 0xD571, 0xD571, 0xCD50, 0xCD10, 0xC4AE, 0xB42C, 0x9B4A, 0x82C8, // 0x0DE0 (3552)
|
||||
0x7247, 0x6A06, 0x69E6, 0x61C6, 0x61A5, 0x61C5, 0x69E6, 0x7227, 0x82C8, 0xB40C, 0xCCEF, 0xDD92, 0xDD92, 0x832B, 0x28E5, 0x20A4, // 0x0DF0 (3568)
|
||||
0x20A4, 0x1884, 0x1884, 0x1884, 0x1884, 0x1863, 0x18A4, 0x20C4, 0x41A7, 0xB512, 0xEEB7, 0xF6F8, 0xFEF8, 0xF6B7, 0xF675, 0xEE34, // 0x0E00 (3584)
|
||||
0xCB6B, 0xD38B, 0xD3AB, 0xD3AB, 0xD38B, 0xD3AB, 0xD3CB, 0xD3CC, 0xD3CC, 0xD3EC, 0xD40D, 0xDC4D, 0xE572, 0xEF1A, 0xF79D, 0xFFDF, // 0x0E10 (3600)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xC551, 0xB46D, 0xC50F, 0xCD70, 0xD571, 0xD550, 0xCD10, 0xCCEF, 0xC4CE, 0xB44D, 0xA3AB, // 0x0E20 (3616)
|
||||
0x8B09, 0x82A8, 0x7A67, 0x7227, 0x6A06, 0x6A27, 0x7A88, 0x8AE9, 0xA3AB, 0xC4AE, 0xD551, 0xE5D3, 0xE614, 0xCD72, 0x41A7, 0x28E5, // 0x0E30 (3632)
|
||||
0x20C5, 0x18A4, 0x1884, 0x18A4, 0x1884, 0x1863, 0x1883, 0x1884, 0x18A4, 0x3146, 0x940F, 0xEEB7, 0xF6D7, 0xF6B6, 0xEE75, 0xEE34, // 0x0E40 (3648)
|
||||
0xCB6A, 0xD38B, 0xD38B, 0xD38B, 0xD38B, 0xD3AB, 0xD3CB, 0xD3CC, 0xD3EC, 0xD40C, 0xDC2D, 0xDC4E, 0xDC8E, 0xE615, 0xEF5B, 0xF7BE, // 0x0E50 (3664)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF1A, 0xB48E, 0xBCAE, 0xCD30, 0xD571, 0xD571, 0xCD50, 0xCD2F, 0xCD0F, 0xC4CE, 0xBC6D, // 0x0E60 (3680)
|
||||
0xA3EB, 0x9B6A, 0x9329, 0x8B09, 0x8B09, 0x936A, 0xA3CC, 0xB44D, 0xC4CE, 0xD550, 0xDDB2, 0xE613, 0xEE34, 0xEE55, 0xAC8F, 0x4187, // 0x0E70 (3696)
|
||||
0x2905, 0x20C4, 0x18A4, 0x18A4, 0x18A4, 0x18A4, 0x1884, 0x1083, 0x1883, 0x18A4, 0x20E5, 0x6B0B, 0xD5D4, 0xEE75, 0xEE54, 0xE614, // 0x0E80 (3712)
|
||||
0xCB6A, 0xD36B, 0xD38B, 0xD38B, 0xD38B, 0xD3AB, 0xD3CB, 0xD3CC, 0xD3EC, 0xDC2D, 0xDC4D, 0xDC6E, 0xDC8E, 0xEDF4, 0xEF7C, 0xF7BD, // 0x0E90 (3728)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xCDF5, 0xAC6D, 0xC50F, 0xCD70, 0xD571, 0xD571, 0xD550, 0xD550, 0xCD0F, 0xC4EE, // 0x0EA0 (3744)
|
||||
0xBC6D, 0xB42C, 0xAC0C, 0xAC0C, 0xB42C, 0xBC8E, 0xC4CF, 0xCD0F, 0xD571, 0xDDD2, 0xE613, 0xEE54, 0xEE55, 0xEE75, 0xE635, 0x9C0E, // 0x0EB0 (3760)
|
||||
0x3126, 0x20E5, 0x18C4, 0x18C5, 0x18C5, 0x18A4, 0x18A4, 0x18A4, 0x1084, 0x1883, 0x18A4, 0x20C4, 0x5229, 0xACD0, 0xDDF3, 0xE5F3, // 0x0EC0 (3776)
|
||||
0xCB6B, 0xD36B, 0xD38B, 0xD38B, 0xD38B, 0xD3AB, 0xD3CB, 0xD3EC, 0xD40C, 0xDC2D, 0xDC4D, 0xDC6E, 0xDC8E, 0xEE15, 0xF7BD, 0xF7DE, // 0x0ED0 (3792)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, 0xB4F0, 0xC52F, 0xD570, 0xD591, 0xD591, 0xD570, 0xD570, 0xD570, 0xD550, // 0x0EE0 (3808)
|
||||
0xCCEF, 0xC4CE, 0xC4AE, 0xC4CF, 0xCD10, 0xD571, 0xDDB2, 0xDDB2, 0xE5F2, 0xEE33, 0xEE54, 0xEE54, 0xEE75, 0xF695, 0xEE96, 0xE655, // 0x0EF0 (3824)
|
||||
0x5208, 0x2905, 0x20C4, 0x18C4, 0x18C5, 0x18A5, 0x1083, 0x18A4, 0x18A4, 0x10A4, 0x1083, 0x18A4, 0x18C4, 0x2905, 0x8B8C, 0xD591, // 0x0F00 (3840)
|
||||
0xCB4B, 0xCB6B, 0xD38B, 0xD38A, 0xD38B, 0xD3AB, 0xD3CB, 0xD3CC, 0xD3EC, 0xDC0C, 0xDC2D, 0xDC4D, 0xDC8E, 0xE635, 0xF7BE, 0xF7DE, // 0x0F10 (3856)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE6B9, 0xD592, 0xE5F2, 0xE613, 0xE613, 0xDDD2, 0xDDB1, 0xDDB1, 0xDD91, // 0x0F20 (3872)
|
||||
0xD570, 0xD570, 0xDD71, 0xDDB2, 0xE5F3, 0xE613, 0xEE34, 0xEE33, 0xEE34, 0xEE54, 0xEE54, 0xEE54, 0xF675, 0xF696, 0xF696, 0xEE96, // 0x0F30 (3888)
|
||||
0xA46F, 0x3166, 0x20E5, 0x18C4, 0x18C5, 0x18A5, 0x1083, 0x18A4, 0x18A4, 0x1084, 0x1084, 0x1083, 0x1083, 0x18A4, 0x20E5, 0x5228, // 0x0F40 (3904)
|
||||
0xCB4A, 0xCB4A, 0xCB6A, 0xD36A, 0xD38A, 0xD3AB, 0xD3AB, 0xD3CB, 0xD3EC, 0xD40C, 0xDC2D, 0xD46E, 0xD4EF, 0xE677, 0xF7BE, 0xFFFF, // 0x0F50 (3920)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, 0xE655, 0xEE74, 0xF675, 0xEE75, 0xEE54, 0xEE53, 0xE613, 0xE612, // 0x0F60 (3936)
|
||||
0xE5F2, 0xE5F3, 0xE613, 0xEE34, 0xF675, 0xF695, 0xF675, 0xEE75, 0xF675, 0xEE75, 0xEE75, 0xEE75, 0xF695, 0xF696, 0xF696, 0xF6B6, // 0x0F70 (3952)
|
||||
0xE635, 0x62CA, 0x2105, 0x18C4, 0x18A4, 0x18A5, 0x10A4, 0x1083, 0x18A4, 0x10A4, 0x1084, 0x1084, 0x1083, 0x1083, 0x1083, 0x1883, // 0x0F80 (3968)
|
||||
0xCB2A, 0xCB4A, 0xCB6A, 0xCB6A, 0xCB6A, 0xD38B, 0xD3AB, 0xD3CB, 0xD3EC, 0xD42D, 0xD4CE, 0xD571, 0xDE34, 0xF77C, 0xFFDF, 0xFFFF, // 0x0F90 (3984)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB594, 0xE654, 0xF6B6, 0xF6D6, 0xF6B6, 0xF695, 0xF695, 0xF695, // 0x0FA0 (4000)
|
||||
0xEE54, 0xEE54, 0xEE54, 0xF675, 0xF695, 0xF6B5, 0xF695, 0xF695, 0xF695, 0xEE75, 0xEE75, 0xEE75, 0xF695, 0xF696, 0xF6B6, 0xF6B7, // 0x0FB0 (4016)
|
||||
0xEE96, 0xB4F1, 0x2926, 0x20C5, 0x18A4, 0x18C5, 0x18A5, 0x1083, 0x10A4, 0x10A4, 0x1084, 0x1084, 0x1084, 0x1083, 0x1063, 0x1063, // 0x0FC0 (4032)
|
||||
0xCB2A, 0xCB4A, 0xCB4A, 0xCB6A, 0xCB6A, 0xD38B, 0xD3AB, 0xD3CB, 0xD44D, 0xD52F, 0xDDD2, 0xE654, 0xF75B, 0xFFDF, 0xFFFF, 0xFFFF, // 0x0FD0 (4048)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF9E, 0x73AE, 0xACAF, 0xF6B6, 0xF6F7, 0xF6B6, 0xF6B6, 0xF6D6, 0xF6B6, // 0x0FE0 (4064)
|
||||
0xF695, 0xF695, 0xF695, 0xF6B6, 0xF6B6, 0xF6D6, 0xF6D6, 0xF6B6, 0xF695, 0xF675, 0xF675, 0xEE75, 0xEE75, 0xF696, 0xF6B6, 0xF6B6, // 0x0FF0 (4080)
|
||||
0xEE96, 0xDDF4, 0x4A08, 0x20E5, 0x18A4, 0x18C5, 0x18A5, 0x1083, 0x1084, 0x10A4, 0x10A4, 0x10A4, 0x1084, 0x1063, 0x1063, 0x1043, // 0x1000 (4096)
|
||||
};
|
||||
|
||||
// Generated by : ImageConverter 565 v2.3
|
||||
// Generated from: tractor10.jpg
|
||||
// Time generated: 11-May-18 09:27:27
|
||||
// Dimensions : 96x64 pixels
|
||||
// Size : 12,288 Bytes
|
||||
|
||||
#include <avr/pgmspace.h>
|
||||
|
||||
const uint16_t tractor10_96x64[0x1800] PROGMEM ={
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0010 (16)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0020 (32)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0030 (48)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0040 (64)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0050 (80)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0060 (96)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0070 (112)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0080 (128)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0090 (144)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00A0 (160)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00B0 (176)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00C0 (192)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00D0 (208)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00E0 (224)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x00F0 (240)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, 0x9C71, 0x838D, 0x7B4C, 0x9410, 0xC5D6, 0xF79E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0100 (256)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0110 (272)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0120 (288)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0130 (304)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0140 (320)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0150 (336)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9430, 0xA4B2, 0xF77D, 0xACF3, 0xC5D7, 0xB575, 0x942F, 0xC5F7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0160 (352)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0170 (368)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0180 (384)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0190 (400)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x01A0 (416)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x01B0 (432)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x83AE, 0xEF3C, 0xFFFF, 0xDEDB, 0xCE38, 0xFFFF, 0xEF5C, 0x9C92, 0xAD34, 0xFFFF, 0xFFFF, 0xFFFF, // 0x01C0 (448)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x01D0 (464)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x01E0 (480)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x01F0 (496)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0200 (512)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0210 (528)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD34, 0xCE59, 0xFFFF, 0xFFFF, 0xB595, 0xF7BE, 0xFFFF, 0xFFFF, 0xACF3, 0xA4F3, 0xFFFF, 0xFFFF, // 0x0220 (544)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0230 (560)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0240 (576)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0250 (592)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, // 0x0260 (608)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0270 (624)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF9E, 0xBD96, 0xFFDF, 0xFFFF, 0xC5B7, 0x83CF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8B8E, 0xCE18, 0xFFFF, // 0x0280 (640)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0290 (656)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x02A0 (672)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x02B0 (688)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, // 0x02C0 (704)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEEDA, 0xDE38, 0xEFBE, 0xF77D, 0xF71B, 0xEE99, // 0x02D0 (720)
|
||||
0xEDD5, 0xE512, 0xE4B0, 0xE42E, 0xDB49, 0xCA25, 0xD3AC, 0xC533, 0x9268, 0x6922, 0xB34B, 0xC574, 0xE75D, 0xD659, 0x8C30, 0xFFFF, // 0x02E0 (736)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x02F0 (752)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0300 (768)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0310 (784)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, // 0x0320 (800)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xF75D, 0xF6FB, 0xEE38, 0xE553, 0xE4B0, 0xE44E, 0xCA25, 0xB921, 0xD265, 0xDA23, 0xD1E2, 0xD1A1, // 0x0330 (816)
|
||||
0xD160, 0xD920, 0xD920, 0xD920, 0xE180, 0xE180, 0xE1A0, 0xC161, 0x9901, 0xC982, 0xD940, 0xC900, 0xB2E9, 0xB574, 0x8451, 0xFFFF, // 0x0340 (832)
|
||||
0xFFFF, 0xFF9E, 0xFF5D, 0xFF5C, 0xFFBE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0350 (848)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0360 (864)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0370 (880)
|
||||
0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DF, 0xF77D, 0xF71B, 0xF699, 0xEDF6, 0xE532, // 0x0380 (896)
|
||||
0xE48F, 0xE3ED, 0xE329, 0xDA85, 0xD9E3, 0xD9C2, 0xD980, 0xD920, 0xD920, 0xD920, 0xE160, 0xE180, 0xE160, 0xE180, 0xE9A0, 0xF1C1, // 0x0390 (912)
|
||||
0xF243, 0xF264, 0xEA44, 0xF2A6, 0xEA86, 0xD204, 0xCA45, 0xAA04, 0x7142, 0x7963, 0x9163, 0xA961, 0xB141, 0x81E5, 0x9C30, 0xED93, // 0x03A0 (928)
|
||||
0xE40D, 0xD286, 0xD1E3, 0xD9E3, 0xD245, 0xCBAC, 0xEEBA, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF9D, 0xFF7D, 0xFFFF, // 0x03B0 (944)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03C0 (960)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x03D0 (976)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xF77C, 0xF71B, 0xEE78, 0xEDD5, 0xECF1, 0xE44F, 0xE3AB, 0xDAE7, 0xDA44, 0xE204, 0xE1C2, 0xE160, 0xE120, // 0x03E0 (992)
|
||||
0xE140, 0xE160, 0xE160, 0xE160, 0xE160, 0xE980, 0xE981, 0xE1A1, 0xE9C2, 0xEA03, 0xEA65, 0xF2A6, 0xEAA5, 0xEAE8, 0xE2C7, 0xD265, // 0x03F0 (1008)
|
||||
0xCA86, 0xBA45, 0xA1C3, 0x91A4, 0x8983, 0x6922, 0x6902, 0x7122, 0x7942, 0x7963, 0x7164, 0x5944, 0x5943, 0x8122, 0xD1A1, 0xE1A1, // 0x0400 (1024)
|
||||
0xE9E2, 0xE1A1, 0xD980, 0xE1A0, 0xD161, 0x80C0, 0xAA06, 0xFF9D, 0xFFFF, 0xFFFF, 0xF73C, 0xBCF3, 0x8ACA, 0x69C5, 0x69A4, 0x7A68, // 0x0410 (1040)
|
||||
0xA44F, 0xEF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0420 (1056)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0430 (1072)
|
||||
0xFED9, 0xD40E, 0xCAE8, 0xD224, 0xD9E2, 0xD9A1, 0xD960, 0xD940, 0xD940, 0xE140, 0xE180, 0xE180, 0xE181, 0xE980, 0xE980, 0xE9A0, // 0x0440 (1088)
|
||||
0xE9A1, 0xE9C2, 0xE9E2, 0xF264, 0xEAC6, 0xF2C6, 0xF307, 0xF38A, 0xEB08, 0xD2C7, 0xCAE8, 0xC287, 0x99C4, 0x9183, 0x9182, 0x6901, // 0x0450 (1104)
|
||||
0x6101, 0x68E1, 0x6102, 0x60E1, 0x7122, 0x8142, 0x8942, 0x9142, 0x9942, 0xB982, 0xB9A2, 0xA962, 0xD1A1, 0xE9C1, 0xE1A2, 0xD9A1, // 0x0460 (1120)
|
||||
0xE1A1, 0xD162, 0xD182, 0xD182, 0xB982, 0x8100, 0xBB29, 0xFFFF, 0xFFDE, 0xAC70, 0x5944, 0x4080, 0x68C1, 0x8901, 0x9941, 0x9920, // 0x0470 (1136)
|
||||
0x98E0, 0x8A27, 0xDEDB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0480 (1152)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE6DA, // 0x0490 (1168)
|
||||
0xB182, 0xC900, 0xD981, 0xE180, 0xE181, 0xE981, 0xE9A1, 0xE1C1, 0xE1C1, 0xE9C1, 0xE9C1, 0xE9E2, 0xEA64, 0xF2C7, 0xF2C6, 0xFAE7, // 0x04A0 (1184)
|
||||
0xFB69, 0xF3AB, 0xE2E8, 0xD308, 0xD2C8, 0xBA45, 0x99A4, 0x8983, 0x9142, 0x7102, 0x58E1, 0x68E1, 0x68E2, 0x48E2, 0x60E1, 0x8942, // 0x04B0 (1200)
|
||||
0x8162, 0x8962, 0xA162, 0xB182, 0xB982, 0xC9C2, 0xD1C2, 0xD9A1, 0xC9C2, 0xB181, 0xC981, 0xE1C1, 0xD9A0, 0xD9A1, 0xD1A1, 0xD1A1, // 0x04C0 (1216)
|
||||
0xD1A1, 0xC981, 0xC981, 0xB181, 0x9121, 0x91A5, 0xFF9E, 0xEEDB, 0x7227, 0x4840, 0x8901, 0xC182, 0xD9C2, 0xD1C2, 0xE9A1, 0xE981, // 0x04D0 (1232)
|
||||
0xE181, 0xC0E0, 0xA267, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x04E0 (1248)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD38C, // 0x04F0 (1264)
|
||||
0x98E0, 0xE1C1, 0xE1A1, 0xE9C1, 0xF1C1, 0xE9E2, 0xEA02, 0xE9C1, 0xE9A1, 0xF1E2, 0xF3AA, 0xEBAA, 0xF34A, 0xEB4A, 0xCAC7, 0xCA44, // 0x0500 (1280)
|
||||
0xB1C4, 0xA183, 0x8121, 0x70E1, 0xB121, 0x70E1, 0x7902, 0x70E2, 0x6902, 0x6901, 0x7922, 0x7901, 0x9AC9, 0xA4F2, 0x49C6, 0x99C3, // 0x0510 (1296)
|
||||
0xD1A2, 0xD1A2, 0xD9C2, 0xD9C2, 0xD9C1, 0xD9A2, 0xD9C2, 0xE1A1, 0xC9A1, 0xA981, 0xB981, 0xD1A1, 0xE1C1, 0xE9C2, 0xE9C1, 0xE1A2, // 0x0520 (1312)
|
||||
0xE9A1, 0xE9A1, 0xD182, 0xA141, 0x6102, 0xD617, 0xE6DA, 0x8184, 0x80C0, 0xC982, 0xD982, 0xD9A1, 0xD160, 0xE181, 0xD9C2, 0xA286, // 0x0530 (1328)
|
||||
0xA225, 0x89C4, 0x6922, 0xA4B1, 0xF79E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0540 (1344)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7FF, 0xDBED, // 0x0550 (1360)
|
||||
0xB920, 0xE9E1, 0xE9C1, 0xE9C1, 0xE9A1, 0xEAC7, 0xEBAA, 0xE9C1, 0xE9E2, 0xE9E2, 0xEA03, 0xE9C2, 0xE1A0, 0xD981, 0x88E1, 0x8922, // 0x0560 (1376)
|
||||
0x6902, 0x7102, 0x7122, 0x7122, 0x8902, 0x58C1, 0x48E1, 0x58E1, 0x58A1, 0x48A1, 0x8122, 0x9900, 0xB44E, 0xE6FA, 0x52CB, 0x48E1, // 0x0570 (1392)
|
||||
0xD9A2, 0xD9A1, 0xE1C2, 0xD9A2, 0xD9A1, 0xD9C2, 0xD1C3, 0xD1E3, 0xB981, 0xB981, 0x7122, 0x7142, 0x7941, 0x9941, 0xB961, 0xB981, // 0x0580 (1408)
|
||||
0xB982, 0xA142, 0x6921, 0x40E2, 0x6142, 0xBBAD, 0x81E5, 0xB100, 0xE1A2, 0xD9A1, 0xD981, 0xC182, 0xBAA8, 0xA941, 0x59E5, 0x52AA, // 0x0590 (1424)
|
||||
0x52AA, 0x4248, 0x52EB, 0x41E7, 0x5269, 0xAD33, 0xF79D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x05A0 (1440)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xC36B, // 0x05B0 (1456)
|
||||
0xB120, 0xE1C1, 0xE1C1, 0xD9A1, 0xE9C1, 0xF1C1, 0xE9C2, 0xD9C1, 0xC1A2, 0xC9A2, 0xD182, 0xD1A1, 0xD9A1, 0xC9A2, 0x8922, 0x7102, // 0x05C0 (1472)
|
||||
0x58E1, 0x50C1, 0x48C2, 0x3082, 0x2061, 0x1861, 0x2041, 0xA9A4, 0xE284, 0xB962, 0x8921, 0xA921, 0x9BAC, 0xF75C, 0x52CB, 0x60E1, // 0x05D0 (1488)
|
||||
0xEA22, 0xCA24, 0xC9E3, 0xD203, 0xCA03, 0xC9C3, 0xC1E2, 0xC9E2, 0xC182, 0xB961, 0x38E2, 0x5902, 0x6102, 0x40E2, 0x7102, 0x7143, // 0x05E0 (1504)
|
||||
0x38C2, 0x40A1, 0x6922, 0x8122, 0xC181, 0x88C0, 0xC141, 0xD9A1, 0xD181, 0xE181, 0xE981, 0xA143, 0x6B2C, 0x6289, 0x4A89, 0x5269, // 0x05F0 (1520)
|
||||
0x5248, 0x5289, 0x5269, 0x3185, 0x3185, 0x4227, 0x41E7, 0xAD55, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0600 (1536)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0x9A88, // 0x0610 (1552)
|
||||
0x90E0, 0xC981, 0xC182, 0xC182, 0xC182, 0xD245, 0xD265, 0xC182, 0xB161, 0xA962, 0xA982, 0xB162, 0xC982, 0x8921, 0x2861, 0x2061, // 0x0620 (1568)
|
||||
0x1861, 0x1881, 0x1061, 0x3061, 0x6102, 0x48A1, 0x3860, 0x6102, 0x8984, 0x5922, 0x7122, 0xE9A1, 0xB1C3, 0x7B8D, 0x3985, 0x40E2, // 0x0630 (1584)
|
||||
0x91A3, 0xD203, 0xD1C2, 0xD9C2, 0xD9A2, 0xE1A1, 0xE9C1, 0x9141, 0x9141, 0xD182, 0x40C2, 0x38A2, 0x5902, 0x7923, 0x6921, 0xA942, // 0x0640 (1600)
|
||||
0xA1C3, 0xA309, 0x9182, 0xD1A1, 0xA942, 0xB982, 0xE9A1, 0xD9A1, 0xCA03, 0x71C5, 0x91C4, 0x832A, 0x4A89, 0x5269, 0x5268, 0x5269, // 0x0650 (1616)
|
||||
0x5249, 0x4208, 0x5269, 0x3165, 0x20E4, 0x4207, 0x2103, 0x2924, 0xB595, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0660 (1632)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAB4B, // 0x0670 (1648)
|
||||
0x8102, 0x5902, 0x40A1, 0x48C1, 0x48A1, 0x5903, 0x5103, 0x50A1, 0xA962, 0xC1A2, 0xC9A2, 0xC9A2, 0xE1C2, 0x9941, 0x1841, 0x3881, // 0x0680 (1664)
|
||||
0x7122, 0x9122, 0x8942, 0x8941, 0xB9C3, 0xDCF2, 0x9BAD, 0x48E2, 0xA143, 0x6122, 0xA962, 0xE1C2, 0xC9A2, 0x48C1, 0x38C3, 0x30C2, // 0x0690 (1680)
|
||||
0x9162, 0xE1C1, 0xE1A1, 0xE1C1, 0xE1A1, 0xE9C1, 0xC9A2, 0x40C2, 0x8141, 0xD9C2, 0x9162, 0x38E2, 0x6102, 0x7922, 0x6902, 0x7902, // 0x06A0 (1696)
|
||||
0xE182, 0x9AC8, 0xA9A4, 0xC181, 0x8942, 0xC962, 0xD981, 0xE160, 0xD2A7, 0x7BCF, 0x2986, 0x4A48, 0x5228, 0x734C, 0x8C0F, 0x5248, // 0x06B0 (1712)
|
||||
0x20E3, 0x2924, 0x2924, 0x2924, 0x2103, 0x2124, 0x2104, 0x2904, 0x39A6, 0xEF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x06C0 (1728)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB3EE, // 0x06D0 (1744)
|
||||
0x8122, 0x5903, 0x2840, 0x3881, 0x4081, 0x40E2, 0x38C2, 0x4081, 0xB162, 0xC982, 0xC9A2, 0xD1A2, 0xE1C1, 0x9941, 0x2060, 0xA9A2, // 0x06E0 (1760)
|
||||
0xD204, 0xB162, 0xB182, 0xA142, 0xA941, 0xCC90, 0xDE9A, 0x7207, 0xB1A2, 0xA142, 0xD1A2, 0xD1A2, 0xE9C2, 0xA962, 0x3902, 0x7142, // 0x06F0 (1776)
|
||||
0xD981, 0xE1C2, 0xD9E2, 0xDA43, 0xD204, 0xD9A1, 0x9962, 0x38E2, 0x7122, 0xC9A1, 0xC161, 0x8142, 0x9982, 0xC161, 0x6122, 0x38E2, // 0x0700 (1792)
|
||||
0xA141, 0xB982, 0x8142, 0xA941, 0x6122, 0xA161, 0xF1A1, 0xF181, 0xA1C4, 0x83EE, 0x39A6, 0x5AA9, 0x8C0F, 0xAD13, 0x9C91, 0x5AA9, // 0x0710 (1808)
|
||||
0x3185, 0x20E3, 0x2104, 0x2104, 0x18E3, 0x18E3, 0x18C3, 0x2924, 0x18A2, 0x9491, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0720 (1824)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB470, // 0x0730 (1840)
|
||||
0x7902, 0x6923, 0x3881, 0x4881, 0x48A0, 0x50E2, 0x48C2, 0x60C1, 0xC982, 0xC9A2, 0xD1A2, 0xD1A2, 0xE1C1, 0xA161, 0x30A1, 0xB983, // 0x0740 (1856)
|
||||
0x9942, 0x8942, 0x8121, 0xB182, 0xC981, 0xA962, 0xCD34, 0x9C70, 0xBA04, 0xA121, 0xD1A2, 0xD1C2, 0xE1C2, 0xE1C2, 0xC9A3, 0xCA04, // 0x0750 (1872)
|
||||
0xD203, 0xD244, 0xD204, 0xD204, 0xE1E2, 0xA142, 0x4102, 0x40E3, 0x5922, 0xB9C2, 0xB9A2, 0xA162, 0x9162, 0xB162, 0x5922, 0x38C2, // 0x0760 (1888)
|
||||
0x5901, 0xC9A2, 0xA962, 0x8941, 0x38E3, 0x7102, 0x9942, 0x8162, 0x4164, 0x62EB, 0x736C, 0x6B2C, 0x7BAD, 0x5A69, 0x39A6, 0x2944, // 0x0770 (1904)
|
||||
0x2104, 0x20E3, 0x20C3, 0x20C3, 0x18E3, 0x18C3, 0x18A2, 0x20E3, 0x18A2, 0x2945, 0xD6BA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0780 (1920)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC4F3, // 0x0790 (1936)
|
||||
0x70E1, 0x6123, 0x4061, 0x48A1, 0x48A1, 0x48E2, 0x48C2, 0x68C1, 0xC9C1, 0xD1C2, 0xD1C1, 0xD9C2, 0xE1C1, 0xA922, 0x48E2, 0x4144, // 0x07A0 (1952)
|
||||
0x28C2, 0x8942, 0xA182, 0x8121, 0x8963, 0x7901, 0x6A07, 0xC618, 0xA2C9, 0xB961, 0xC9C2, 0xD9E2, 0xDA85, 0xC9C3, 0xD9E2, 0xD9E2, // 0x07B0 (1968)
|
||||
0xD9C2, 0xD9A1, 0xE1C2, 0xE9A1, 0xD182, 0x4902, 0x38E3, 0x38E3, 0x6123, 0xB9C3, 0xB9A2, 0x9942, 0x6143, 0x5122, 0x8922, 0x5902, // 0x07C0 (1984)
|
||||
0x5902, 0x9983, 0x8942, 0x6921, 0x40C2, 0x5164, 0x4A68, 0x4248, 0x83AF, 0x5A69, 0x62EA, 0x6B0B, 0x5269, 0x3165, 0x2924, 0x20E3, // 0x07D0 (2000)
|
||||
0x18C3, 0x18C2, 0x31A5, 0x4A28, 0x41E7, 0x20E3, 0x18A2, 0x20C3, 0x20C3, 0x18C2, 0x736D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x07E0 (2016)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD595, // 0x07F0 (2032)
|
||||
0x8101, 0x7164, 0x4881, 0x50A1, 0x4080, 0x40C2, 0x40A2, 0x70E2, 0xD1A2, 0xD9C2, 0xD9C2, 0xE1C2, 0xE9E2, 0xB161, 0x3922, 0x2965, // 0x0800 (2048)
|
||||
0x2104, 0x2103, 0x30A2, 0x3081, 0xBA05, 0x68C1, 0x80E0, 0xDD53, 0xA4D2, 0xA1A2, 0x9942, 0xE1C2, 0xE1E2, 0xE9A1, 0xE9C1, 0xE9C1, // 0x0810 (2064)
|
||||
0xE9C1, 0xE9E1, 0xE9C2, 0xE1C2, 0x7142, 0x30E3, 0x6143, 0x5922, 0x9962, 0xD9C3, 0xC9A2, 0xA182, 0x9162, 0x8122, 0x9142, 0x9162, // 0x0820 (2080)
|
||||
0x9143, 0x4902, 0x6122, 0x7922, 0x48E2, 0x5185, 0x734C, 0x3986, 0x41E7, 0x6B0C, 0xBDB5, 0xD678, 0x8C30, 0x39A6, 0x2924, 0x18C3, // 0x0830 (2096)
|
||||
0x2924, 0x632C, 0x736D, 0x7BAD, 0x83CF, 0x7B8E, 0x39A6, 0x1082, 0x18C3, 0x18A2, 0x9492, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0840 (2112)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDE37, // 0x0850 (2128)
|
||||
0x98E1, 0x6122, 0x4081, 0x4861, 0x3860, 0x38C2, 0x30A1, 0x8101, 0xD9A1, 0xD9C2, 0xD9C2, 0xE1C2, 0xF1E1, 0xA982, 0x2165, 0x5248, // 0x0860 (2144)
|
||||
0x4A48, 0x4208, 0x5185, 0xA142, 0xCA44, 0x8102, 0xD960, 0xD265, 0xC5F8, 0x830B, 0x78E1, 0xE1A1, 0xF1C1, 0xE9C1, 0xE1C2, 0xD1A2, // 0x0870 (2160)
|
||||
0xC162, 0x9943, 0x8142, 0x6122, 0x30E3, 0x5903, 0xB1A3, 0xB182, 0xB9A2, 0xB1A3, 0xA182, 0x9963, 0x9183, 0xB9A3, 0xA982, 0x9942, // 0x0880 (2176)
|
||||
0x8942, 0x9962, 0xA982, 0xC1C3, 0x6902, 0x38C2, 0x838D, 0x4A48, 0x5AAA, 0x9C90, 0xBD94, 0x9470, 0x4A08, 0x20E3, 0x18A2, 0x2904, // 0x0890 (2192)
|
||||
0xB5F7, 0xB470, 0x80C0, 0x7207, 0x630B, 0x7B8D, 0x83CE, 0x2924, 0x18C3, 0x1081, 0x630B, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x08A0 (2208)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEEFB, // 0x08B0 (2224)
|
||||
0xA163, 0x6922, 0x40A1, 0x3881, 0x3060, 0x30A1, 0x3082, 0x9121, 0xE1C2, 0xE1C1, 0xE1C2, 0xE9E1, 0xF9E2, 0xB182, 0x18C3, 0x18E3, // 0x08C0 (2240)
|
||||
0x18E3, 0x18E3, 0x18C2, 0x6101, 0xD203, 0x9122, 0xD181, 0xD940, 0xCC2D, 0x8C51, 0x5923, 0x9121, 0x8962, 0x7122, 0x50E2, 0x6164, // 0x08D0 (2256)
|
||||
0x7964, 0x40E2, 0x6923, 0x7122, 0x7142, 0x8183, 0xA162, 0xB163, 0x9962, 0xA1C3, 0xD285, 0xDA44, 0xE265, 0xF223, 0xC9A2, 0xB183, // 0x08E0 (2272)
|
||||
0xC9A2, 0xD182, 0xA162, 0xB962, 0x7122, 0x3924, 0x5A89, 0x5A89, 0x83AD, 0xAD13, 0x9450, 0x2945, 0x2104, 0x20E3, 0x18A2, 0xAD75, // 0x08F0 (2288)
|
||||
0xFF5C, 0xD266, 0x8080, 0xC513, 0xB5D7, 0x62EB, 0x9450, 0x6B0B, 0x18A2, 0x18E3, 0x18C3, 0xB5B6, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0900 (2304)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF77E, // 0x0910 (2320)
|
||||
0xA1C5, 0x7922, 0x3881, 0x3081, 0x3081, 0x38C2, 0x3082, 0x9921, 0xE1A1, 0xE1C1, 0xE9C1, 0xE9C1, 0xF9E1, 0xB161, 0x18E3, 0x2924, // 0x0920 (2336)
|
||||
0x2104, 0x2104, 0x28C2, 0x8123, 0xA9E3, 0x8941, 0xB9A2, 0xE9A1, 0xD1A1, 0xC595, 0xA32C, 0x68E0, 0x38E2, 0x58E3, 0x7942, 0x9205, // 0x0930 (2352)
|
||||
0x6943, 0xD1A2, 0xC9C2, 0xC9A1, 0xC9C2, 0x8983, 0x9962, 0xE9C2, 0xC9A1, 0xC182, 0xE9A2, 0xF1C2, 0xE9A1, 0xE1C1, 0xA963, 0x9182, // 0x0940 (2368)
|
||||
0xC9C2, 0xC9A2, 0xA962, 0x9182, 0x41C6, 0x3186, 0x41E7, 0x9450, 0x83CD, 0x5AAA, 0x41C6, 0x3986, 0x2924, 0x1061, 0x7BAE, 0xFFFF, // 0x0950 (2384)
|
||||
0xE3CE, 0xC8C0, 0xA0C0, 0xCCD1, 0xFFFF, 0x8C30, 0x9471, 0x9C71, 0x2945, 0x20E3, 0x0861, 0x8C51, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0960 (2400)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF79E, // 0x0970 (2416)
|
||||
0x91C6, 0x8101, 0x40A1, 0x3060, 0x3861, 0x38C2, 0x38A2, 0xA162, 0xE1C1, 0xE9C1, 0xF1C1, 0xF1C1, 0xF9E1, 0xB161, 0x20A2, 0x40E2, // 0x0980 (2432)
|
||||
0x48E1, 0x48E2, 0x60C1, 0xB1A2, 0xDA03, 0xB1C3, 0xB1C3, 0xC203, 0xF308, 0xC34A, 0xC5B4, 0xB9A3, 0x9100, 0xF1E2, 0xE203, 0x81C5, // 0x0990 (2448)
|
||||
0x9982, 0xE1E2, 0xC161, 0xC9A2, 0xB1A3, 0x9942, 0xB1A2, 0xF1C2, 0xD1A2, 0x9962, 0xB982, 0xC9C2, 0xE9C2, 0xD982, 0xB181, 0xC1A3, // 0x09A0 (2464)
|
||||
0xB9C3, 0xC9A3, 0xD182, 0xB204, 0x4A49, 0x5AAA, 0x8C0E, 0x5AA9, 0x736C, 0xC5D5, 0x83EF, 0x3165, 0x20E3, 0x2945, 0xD699, 0xD69A, // 0x09B0 (2480)
|
||||
0x9183, 0xB1A3, 0xD940, 0xAA47, 0xFFFF, 0xCE38, 0xA4B1, 0xB554, 0x4207, 0x1061, 0x4208, 0xF79D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x09C0 (2496)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, // 0x09D0 (2512)
|
||||
0x9227, 0x88E1, 0x4081, 0x3861, 0x3881, 0x38E2, 0x38A2, 0xA941, 0xE1C1, 0xE9C1, 0xF1E1, 0xF1C1, 0xF9E1, 0xA161, 0x3081, 0xC9A2, // 0x09E0 (2528)
|
||||
0xD9C1, 0xE1C2, 0xE1C2, 0xC204, 0xAA05, 0x6142, 0x60E1, 0xB2C8, 0xDC0D, 0x98E0, 0xB4D2, 0xCDB4, 0x9A46, 0xE160, 0xB1E4, 0x7163, // 0x09F0 (2544)
|
||||
0xD9C3, 0xB1C2, 0xB9C3, 0xB1A3, 0xB9A3, 0xD1E2, 0xD9A2, 0xE9C1, 0xD1A1, 0xA142, 0x5922, 0x9962, 0xF1C1, 0xE9A1, 0xE1A1, 0xEA24, // 0x0A00 (2560)
|
||||
0xE1E3, 0xC9A2, 0xB982, 0x7963, 0x6AEA, 0x41E8, 0x5248, 0x6B2B, 0xC5B5, 0xCE16, 0x62CB, 0x20C3, 0x10C3, 0x6A48, 0xB266, 0x8142, // 0x0A10 (2576)
|
||||
0x9921, 0xD9C3, 0xE9A1, 0xA100, 0xD639, 0xF79D, 0xAD13, 0xCDF6, 0x6B0B, 0x0821, 0x5269, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0A20 (2592)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0A30 (2608)
|
||||
0xAAC9, 0x80C1, 0x48A1, 0x2880, 0x3861, 0x40E2, 0x48C2, 0xB961, 0xE9C1, 0xE9C1, 0xF1E1, 0xF1C1, 0xF9E1, 0xB161, 0x7101, 0xE1C2, // 0x0A40 (2624)
|
||||
0xE9E2, 0xE1C1, 0xE1E2, 0xC1A2, 0x8121, 0xA141, 0x8100, 0xCB6B, 0xEC4E, 0x90E0, 0x8142, 0x8B6D, 0xC5F6, 0xD3ED, 0x7122, 0xB960, // 0x0A50 (2640)
|
||||
0xF9E2, 0xB9A2, 0xD1C2, 0xCA03, 0xA982, 0xB9A2, 0xA162, 0xA982, 0xA982, 0xA962, 0x9962, 0xC182, 0xF1C1, 0xD9A2, 0xE1A1, 0xE1E3, // 0x0A60 (2656)
|
||||
0xD1A2, 0xE9A2, 0xA982, 0x38A1, 0x730A, 0x5269, 0x41C7, 0x62CA, 0x83CE, 0x6B0B, 0x3165, 0x20C4, 0x2966, 0xAA46, 0xF140, 0xE160, // 0x0A70 (2672)
|
||||
0xF1A1, 0xC182, 0xC1A2, 0xD0E0, 0xB3EE, 0xF7FF, 0xB574, 0xD678, 0x83CE, 0x1082, 0x18C3, 0xBDF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0A80 (2688)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0A90 (2704)
|
||||
0xBBAD, 0x88C1, 0x48C2, 0x2861, 0x3840, 0x40C2, 0x48E2, 0xC182, 0xE1E2, 0xE9C1, 0xF1C1, 0xF1C1, 0xF9C1, 0xC1C3, 0xAA66, 0xA942, // 0x0AA0 (2720)
|
||||
0xF1C1, 0xC1C3, 0xA162, 0xF1C2, 0xF1C2, 0xF9E1, 0xC141, 0xB2A7, 0xAB4A, 0x78E1, 0xA961, 0x9900, 0x7A06, 0xAD74, 0xBCB1, 0xE224, // 0x0AB0 (2736)
|
||||
0xC961, 0x9101, 0xB962, 0xC9E2, 0x8121, 0x50A2, 0x7142, 0x8142, 0xA982, 0xA183, 0xC982, 0x8941, 0xB162, 0xD9E2, 0xC981, 0xC182, // 0x0AC0 (2752)
|
||||
0xA962, 0xE1C1, 0x9162, 0x4123, 0x5228, 0x732C, 0x3985, 0x5269, 0x734C, 0x39A6, 0x2924, 0x20C4, 0x31A6, 0x9983, 0xE9A1, 0xE9A1, // 0x0AD0 (2768)
|
||||
0xE9A1, 0xD161, 0xC182, 0xB921, 0x9205, 0xD638, 0xCDF7, 0xE6D9, 0x8C2F, 0x18C3, 0x1061, 0x840F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0AE0 (2784)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0AF0 (2800)
|
||||
0xBC51, 0x90C0, 0x50C1, 0x2881, 0x2840, 0x30E2, 0x40E2, 0xC982, 0xD9E2, 0xE9E1, 0xF1C1, 0xF1C1, 0xF1E1, 0xBA24, 0x89E5, 0xA163, // 0x0B00 (2816)
|
||||
0xF9E2, 0xC1E3, 0xC1A2, 0xE9C1, 0xE9C1, 0xE9C1, 0xF1E1, 0xE181, 0xA100, 0xA162, 0xC182, 0xC182, 0xB141, 0x7903, 0x93CE, 0xC574, // 0x0B10 (2832)
|
||||
0x9B0B, 0x92EA, 0xB205, 0xB920, 0x8247, 0x8AEA, 0x90E0, 0x9921, 0xB182, 0xB982, 0xB9A2, 0x7122, 0xA162, 0xC9A1, 0xC181, 0xC9A2, // 0x0B20 (2848)
|
||||
0xB181, 0xC9A2, 0x8962, 0x31C6, 0x31A6, 0x3165, 0x5AAA, 0x6B0B, 0x62CA, 0x4A28, 0x3165, 0x18C3, 0x62A9, 0x6963, 0xB961, 0xE9A1, // 0x0B30 (2864)
|
||||
0xE9A1, 0xE9E3, 0xA162, 0x8122, 0x9101, 0x8121, 0xCD74, 0xF75B, 0x8C0F, 0x18A3, 0x10A2, 0xBDF7, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0B40 (2880)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0B50 (2896)
|
||||
0xBCD2, 0x98A0, 0xB981, 0xA161, 0xA142, 0x99C4, 0xA1A3, 0xD9A2, 0xD9A2, 0xE9C1, 0xF1C1, 0xF1C1, 0xF9E1, 0xA9E3, 0x71C5, 0xA1A2, // 0x0B60 (2912)
|
||||
0xE9C2, 0xE1A1, 0xE9C1, 0xF1E1, 0xF1E1, 0xF1C1, 0xF1C1, 0xD9A1, 0xD1A2, 0xB182, 0xB9A1, 0xA983, 0x9941, 0x6080, 0x938E, 0xBD54, // 0x0B70 (2928)
|
||||
0xB513, 0xE6DB, 0xE658, 0xCC50, 0xF75D, 0xF71B, 0xC533, 0xAC70, 0xB1E4, 0x9920, 0xA183, 0xD1C2, 0xE1A1, 0xE1C1, 0xE1C1, 0xE181, // 0x0B80 (2944)
|
||||
0xD1A2, 0xB142, 0x6963, 0x4207, 0x4A28, 0x5269, 0x5249, 0x5A89, 0xA4D2, 0x5269, 0x2103, 0x18C2, 0xB554, 0x8A48, 0x88E1, 0xE9A1, // 0x0B90 (2960)
|
||||
0xE9A1, 0xDA24, 0xA941, 0xB961, 0xB942, 0x932B, 0xEED9, 0xEF3B, 0x734C, 0x0841, 0x8C51, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0BA0 (2976)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0BB0 (2992)
|
||||
0xDD74, 0xA0E0, 0xD1A2, 0xF1C1, 0xF9C1, 0xF9E2, 0xF1E2, 0xD9A1, 0xD9A2, 0xE9C1, 0xF1E2, 0xF1E2, 0xF9E1, 0xA962, 0x8944, 0xA182, // 0x0BC0 (3008)
|
||||
0xD9C2, 0xD9C1, 0xC9A1, 0xD1A2, 0xD9C2, 0xB9A2, 0x9942, 0x7102, 0x5101, 0x5901, 0xA163, 0x58C1, 0x38E3, 0x5164, 0xE6B9, 0xFFFF, // 0x0BD0 (3024)
|
||||
0xCDD7, 0xA491, 0xCDB6, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD40E, 0x90C0, 0x9142, 0x9101, 0x9962, 0xB162, 0x8942, 0x7A26, // 0x0BE0 (3040)
|
||||
0x89C4, 0x7268, 0x49C7, 0x5A48, 0x4A29, 0x5269, 0x39A6, 0x62CB, 0x6B2C, 0x39A6, 0x2924, 0x20E3, 0xBDB6, 0xAA46, 0x9901, 0xD9A1, // 0x0BF0 (3056)
|
||||
0xD181, 0xA920, 0xB141, 0xA982, 0xA122, 0xD4B0, 0xF79C, 0xE6FA, 0x5269, 0x0820, 0x9CB2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0C00 (3072)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0C10 (3088)
|
||||
0xEE37, 0xB941, 0xC982, 0xE1C1, 0xE9C1, 0xE9C1, 0xE9C1, 0xD9A1, 0xD1A1, 0xE9C1, 0xF1C1, 0xF1E1, 0xD9A2, 0xB961, 0xB1A2, 0xA9A3, // 0x0C20 (3104)
|
||||
0xB182, 0xD9E3, 0xB982, 0x7942, 0x5122, 0x4103, 0x40A1, 0x38A1, 0x50C1, 0x7942, 0x6123, 0x4902, 0xD679, 0xF79D, 0xFFFF, 0xFFFF, // 0x0C30 (3120)
|
||||
0xFFFF, 0xEF1C, 0xB513, 0xB533, 0xDE78, 0xFFDF, 0xFFFF, 0xFFFF, 0xF7BF, 0xCE17, 0xBC2F, 0xC42F, 0xA450, 0x8A47, 0xB575, 0xD6FB, // 0x0C40 (3136)
|
||||
0xBAE9, 0xB3CD, 0xD679, 0x9CD3, 0x2924, 0x3165, 0x3986, 0x41C7, 0x41C7, 0x41E7, 0x2924, 0x2145, 0xB34B, 0xE181, 0xC961, 0xB962, // 0x0C50 (3152)
|
||||
0xB181, 0x8901, 0x78E2, 0x78C0, 0x8247, 0xE657, 0xF77C, 0xD678, 0x3986, 0x1061, 0x4A28, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0C60 (3168)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE73C, 0xA4D3, // 0x0C70 (3184)
|
||||
0x7ACA, 0xC9A2, 0xC981, 0xE1C2, 0xE9E1, 0xE9C1, 0xE9C1, 0xD1A1, 0xD1C1, 0xE9C1, 0xF1C1, 0xF1C1, 0xB982, 0xCA03, 0xC1E2, 0x8961, // 0x0C80 (3200)
|
||||
0x6903, 0x8142, 0x7121, 0x48C2, 0x60A1, 0xA100, 0xCB4A, 0xD5D5, 0xA1A3, 0x8921, 0x6060, 0x8B6D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, // 0x0C90 (3216)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xD659, 0xB4F3, 0xCD96, 0xEEFB, 0xEF3C, 0xDE79, 0xC595, 0xACD2, 0xB5B6, 0xD554, 0xC32A, 0xC5F7, 0xA4D1, // 0x0CA0 (3232)
|
||||
0x91A3, 0xA309, 0xCE18, 0x5AEB, 0x39A6, 0x2924, 0x3144, 0x41E7, 0x41E7, 0x2104, 0x20E3, 0x2186, 0xA9A3, 0xC9A2, 0xE1A2, 0xD961, // 0x0CB0 (3248)
|
||||
0xD181, 0xB161, 0x70A0, 0x81C6, 0xEF5C, 0xF75C, 0xF77B, 0xB553, 0x2924, 0x1082, 0x630C, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0CC0 (3264)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDD6, 0x6B4C, 0x71E6, // 0x0CD0 (3280)
|
||||
0x7183, 0xB9C2, 0xD1C2, 0xE9E1, 0xF1C1, 0xF223, 0xEA03, 0xD9C1, 0xD9C1, 0xF1C1, 0xE9E2, 0xC9A2, 0xD1A1, 0xDA03, 0xB1A2, 0x8123, // 0x0CE0 (3296)
|
||||
0x8963, 0xB1E3, 0x7983, 0x79E4, 0xC287, 0xB2C8, 0xC533, 0xDD54, 0xA962, 0xA100, 0xA205, 0xE69A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0CF0 (3312)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF3C, 0xB554, 0x9C71, 0xACF3, 0xC596, 0xCDF7, 0xAC91, 0xB4D2, 0x8AA9, 0x9A26, 0xB40F, 0xC450, // 0x0D00 (3328)
|
||||
0xD574, 0xFF1C, 0xB535, 0x18C3, 0x3165, 0x2924, 0x3986, 0x4A08, 0x3986, 0x2945, 0x2924, 0x2966, 0x89C4, 0xD980, 0xE140, 0xD181, // 0x0D10 (3344)
|
||||
0xB161, 0xB161, 0xA121, 0xDE17, 0xF7BD, 0xEF1A, 0xEF5A, 0x738C, 0x1081, 0x8410, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0D20 (3360)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD34, 0x5A89, 0x41E7, 0x69E6, // 0x0D30 (3376)
|
||||
0x9162, 0x8942, 0x9962, 0xC1A2, 0xB961, 0xC285, 0xC224, 0xB961, 0xB982, 0xB182, 0x8142, 0x9962, 0xD9C2, 0x8942, 0x3060, 0x78C1, // 0x0D40 (3392)
|
||||
0x79E4, 0x930A, 0x8A68, 0x8ACA, 0x93CD, 0x93CF, 0xABEE, 0xD4B0, 0xCD74, 0x91E5, 0xBC2F, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0D50 (3408)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE73C, 0xEF5C, 0xFFDF, 0xFFFF, 0xFF9D, 0xDDD6, 0xDDB6, 0xF6FA, 0xFFBE, 0xFFFF, // 0x0D60 (3424)
|
||||
0xFFFF, 0xFFFF, 0xD6DB, 0x39C7, 0x2924, 0x3165, 0x39A6, 0x2945, 0x41C7, 0x3165, 0x2945, 0x2165, 0x71A4, 0xB901, 0xBA87, 0x91A4, // 0x0D70 (3440)
|
||||
0x9141, 0xC900, 0xC3AC, 0xF7DF, 0xE6D9, 0xEF3B, 0xCE17, 0x39A6, 0x18C2, 0xD69A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0D80 (3456)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD54, 0x4A48, 0x4A07, 0x5269, 0x2965, // 0x0D90 (3472)
|
||||
0x3904, 0x7A06, 0x7983, 0xA162, 0x9942, 0x91C4, 0x9183, 0x9142, 0x8141, 0x8142, 0x8162, 0xA9A2, 0x8942, 0x6184, 0x9BAE, 0x92C8, // 0x0DA0 (3488)
|
||||
0x99C4, 0xC4F2, 0xE6FA, 0xFFBE, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDD75, 0xC3CC, 0xF6FC, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0DB0 (3504)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0DC0 (3520)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0x7BAE, 0x3165, 0x2945, 0x2104, 0x3165, 0x39A6, 0x4208, 0x3986, 0x20E4, 0x6ACA, 0xE6BA, 0xF7FF, 0xB4D2, // 0x0DD0 (3536)
|
||||
0x98E0, 0xA182, 0xD638, 0xEF3B, 0xE6D9, 0xEF1A, 0x83CF, 0x2904, 0x0840, 0xAD55, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0DE0 (3552)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDEDA, 0x5248, 0x3986, 0x5289, 0x39A6, 0x3A08, // 0x0DF0 (3568)
|
||||
0x934C, 0x9B4B, 0x9A47, 0x8921, 0xA961, 0x9962, 0xB181, 0xD9C2, 0xB981, 0xA162, 0xB181, 0xC182, 0x99C3, 0xE6BA, 0xFFFF, 0xFFFF, // 0x0E00 (3584)
|
||||
0xE5F6, 0xC3ED, 0xCC0E, 0xE658, 0xFFFF, 0xFFFF, 0xEF5C, 0xB3CD, 0xB36B, 0xF77D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0E10 (3600)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0E20 (3616)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xA514, 0x2124, 0x2103, 0x2924, 0x2924, 0x39A6, 0x41C7, 0x2924, 0x2924, 0x5ACA, 0xFFDF, 0xFFFF, 0xF7BE, // 0x0E30 (3632)
|
||||
0xB1E5, 0x8901, 0xC554, 0xE6FA, 0xE6FA, 0xB574, 0x41E7, 0x20C3, 0x18C2, 0xAD55, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0E40 (3648)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8C30, 0x3985, 0x41E7, 0x41E7, 0x39E8, 0xAC2F, // 0x0E50 (3664)
|
||||
0xDA03, 0xB141, 0xA961, 0xAA46, 0xB3AD, 0xC981, 0x9121, 0x8121, 0x7142, 0x60C0, 0xA100, 0xD9A1, 0xD1E1, 0xEB69, 0xEDD5, 0xFFFF, // 0x0E60 (3680)
|
||||
0xFFFF, 0xFFFF, 0xDE58, 0x9A27, 0xA30A, 0xCCF2, 0xA246, 0x99C4, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0E70 (3696)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0E80 (3712)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0x9CB2, 0x18C3, 0x3186, 0x2924, 0x2924, 0x3186, 0x2104, 0x2904, 0x3165, 0x39C6, 0x9CB2, 0xE71C, 0xDEFB, // 0x0E90 (3728)
|
||||
0xBD13, 0xA36B, 0xD616, 0xE6FA, 0xC5D6, 0x5ACA, 0x20E3, 0x5269, 0xDEDA, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0EA0 (3744)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE73C, 0x4A49, 0x3165, 0x39A6, 0x2924, 0x8C0F, 0xE265, // 0x0EB0 (3760)
|
||||
0xE1A1, 0x9162, 0xC181, 0x9942, 0x8C30, 0xC1E3, 0x81A4, 0x4944, 0x50C1, 0xA3AC, 0xCBED, 0xB161, 0xD140, 0xE980, 0xEA65, 0xE349, // 0x0EC0 (3776)
|
||||
0xD46F, 0xF79C, 0xEF7C, 0xC267, 0x7880, 0x8983, 0x81A3, 0x8944, 0xEF3C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0ED0 (3792)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0EE0 (3808)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xE73C, 0x3186, 0x2103, 0x3145, 0x3165, 0x2945, 0x2904, 0x2904, 0x3145, 0x39C6, 0x5A8A, 0xB554, 0xCE17, // 0x0EF0 (3824)
|
||||
0xCE57, 0xD658, 0xDE79, 0xBD75, 0x734C, 0x3986, 0x20C3, 0xD699, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0F00 (3840)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xAD75, 0x2904, 0x2944, 0x20E3, 0x4A28, 0xB40F, 0xB941, // 0x0F10 (3856)
|
||||
0xB981, 0xA9C3, 0xB1A2, 0x80E1, 0x6269, 0xBCF2, 0xC553, 0x4207, 0x0841, 0xB5B6, 0xFFFF, 0xE679, 0xAB4B, 0xA942, 0xD1C3, 0xEB07, // 0x0F20 (3872)
|
||||
0xCA04, 0xBA67, 0xA1C4, 0xB961, 0x9206, 0xDEBA, 0xEF3B, 0xDDB5, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0F30 (3888)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0F40 (3904)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xA514, 0x1882, 0x3165, 0x2924, 0x20E3, 0x2924, 0x3186, 0x2924, 0x3165, 0x4A28, 0x6B2B, 0xA4F2, // 0x0F50 (3920)
|
||||
0xBDB5, 0xB553, 0x9471, 0x732C, 0x41C7, 0x18A2, 0x1082, 0xD69A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0F60 (3936)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x7BCE, 0x1062, 0x20C3, 0x1081, 0x738E, 0xD329, 0xB940, // 0x0F70 (3952)
|
||||
0xA982, 0xB9C2, 0xB9A3, 0x70E1, 0x6227, 0xE6FA, 0xE6F9, 0x41A6, 0x1061, 0xB5B6, 0xFFFF, 0xFFFF, 0xFFFF, 0xDE78, 0xAB6A, 0xB141, // 0x0F80 (3968)
|
||||
0x9982, 0xA9E4, 0xB224, 0xC9A1, 0xB30A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0F90 (3984)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0FA0 (4000)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x62EB, 0x18A2, 0x20E3, 0x20E3, 0x3165, 0x3186, 0x20E3, 0x2924, 0x39A6, 0x5269, 0x6B2B, // 0x0FB0 (4016)
|
||||
0x7BAD, 0x736C, 0x62CA, 0x39A6, 0x1882, 0x5269, 0x8430, 0xDEFB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0FC0 (4032)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x738E, 0x0821, 0x18A2, 0x1082, 0x8430, 0xDB49, 0xD960, // 0x0FD0 (4048)
|
||||
0x9962, 0x8142, 0xC182, 0x68E1, 0x7902, 0xEDF5, 0xD678, 0x3144, 0x20E3, 0xD699, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE679, // 0x0FE0 (4064)
|
||||
0xA288, 0x8901, 0xBA04, 0xCAA6, 0x8AA8, 0xA4B1, 0x8C10, 0x9451, 0xAD34, 0xEF3C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x0FF0 (4080)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1000 (4096)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD69A, 0x20C3, 0x20C3, 0x2904, 0x2924, 0x20E3, 0x20E3, 0x2945, 0x2924, 0x3145, 0x41E7, // 0x1010 (4112)
|
||||
0x4A28, 0x41A6, 0x2924, 0x18A2, 0x41C7, 0xEF7D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1020 (4128)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x83EF, 0x0820, 0x18C3, 0x1082, 0x7C0F, 0xDB8B, 0xB100, // 0x1030 (4144)
|
||||
0x9983, 0x8942, 0x80A0, 0x71C5, 0xC574, 0xF73A, 0xACF2, 0x18A2, 0x41C7, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1040 (4160)
|
||||
0xED94, 0x9942, 0x8AC9, 0x9C2F, 0x8BEF, 0x62A9, 0x41C6, 0x41C6, 0x3145, 0x4A07, 0xA4F3, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1050 (4176)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1060 (4192)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9CB3, 0x1882, 0x20E3, 0x28E3, 0x20C3, 0x2924, 0x3165, 0x20E3, 0x2924, 0x2944, // 0x1070 (4208)
|
||||
0x2904, 0x20E3, 0x1882, 0x18A2, 0x5249, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1080 (4224)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB575, 0x1021, 0x18C3, 0x1081, 0x4A28, 0x9A88, 0x8183, // 0x1090 (4240)
|
||||
0xA941, 0xC1C3, 0xB32A, 0xD5D6, 0xE75B, 0xE6FA, 0x5AAA, 0x0820, 0x8C30, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x10A0 (4256)
|
||||
0xC5F7, 0x93CD, 0x9C90, 0x7BAE, 0x39E6, 0x3164, 0x3145, 0x2924, 0x2924, 0x2104, 0x18A2, 0x7BCF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x10B0 (4272)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x10C0 (4288)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDB6, 0x3145, 0x1041, 0x18A2, 0x2924, 0x2104, 0x18C3, 0x3165, 0x18C3, // 0x10D0 (4304)
|
||||
0x1882, 0x18C2, 0x8C71, 0xCE58, 0xBDB6, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x10E0 (4320)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF5D, 0x2924, 0x1082, 0x18C3, 0x2904, 0x736D, 0xC5B6, // 0x10F0 (4336)
|
||||
0xD594, 0xD658, 0xE73C, 0xE73B, 0xEEFA, 0x8C2F, 0x2104, 0x2945, 0xEF5D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC5F7, // 0x1100 (4352)
|
||||
0x7BAD, 0x83CE, 0x630B, 0x3986, 0x2924, 0x2124, 0x18A3, 0x18C2, 0x18A2, 0x18C3, 0x2924, 0x1882, 0xA514, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1110 (4368)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1120 (4384)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE73C, 0x7BCF, 0x3165, 0x18A2, 0x20E3, 0x2904, 0x1061, 0x6B2C, // 0x1130 (4400)
|
||||
0x94B2, 0x39E7, 0xDEFB, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1140 (4416)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8C30, 0x0000, 0x18C3, 0x18C3, 0x39C6, 0x9491, // 0x1150 (4432)
|
||||
0xCE78, 0xD678, 0xD657, 0xCE16, 0x8C0F, 0x39A6, 0x1061, 0xB596, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xD6BA, 0x62CA, // 0x1160 (4448)
|
||||
0x6B0B, 0x5A89, 0x3185, 0x2944, 0x20E3, 0x39A6, 0x736D, 0x8C2F, 0x83CE, 0x39A7, 0x18C3, 0x20E3, 0x39C7, 0xEF7D, 0xFFFF, 0xFFFF, // 0x1170 (4464)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1180 (4480)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE71C, 0xB575, 0xB596, 0xB596, 0x630C, 0xE75D, // 0x1190 (4496)
|
||||
0xFFFF, 0xEF7D, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x11A0 (4512)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, 0x5249, 0x0000, 0x20C3, 0x2924, 0x4A08, // 0x11B0 (4528)
|
||||
0x736D, 0x8BCE, 0x83AE, 0x5AAA, 0x2924, 0x0861, 0x9CD2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0x738E, 0x41E7, // 0x11C0 (4544)
|
||||
0x4A48, 0x39A6, 0x2945, 0x20E3, 0x6B8D, 0xD6DA, 0xEF9E, 0xEF7D, 0xD658, 0xC5D6, 0x4A28, 0x18A2, 0x18A2, 0xAD75, 0xFFFF, 0xFFFF, // 0x11D0 (4560)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x11E0 (4576)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x11F0 (4592)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1200 (4608)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF7D, 0x528A, 0x0861, 0x0841, 0x1882, // 0x1210 (4624)
|
||||
0x20E3, 0x2904, 0x18C3, 0x0841, 0x3186, 0xB596, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDD7, 0x3185, 0x41E7, // 0x1220 (4640)
|
||||
0x39C7, 0x2924, 0x2904, 0x7C0F, 0xBCB1, 0xE3AA, 0xDAE8, 0xE4F2, 0xD679, 0xDEB9, 0xBD94, 0x2903, 0x18A2, 0x8410, 0xFFFF, 0xFFFF, // 0x1230 (4656)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1240 (4672)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1250 (4688)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1260 (4704)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB5B6, 0x6B4D, 0x4A28, // 0x1270 (4720)
|
||||
0x39C6, 0x4207, 0x5ACA, 0x9CD3, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x630C, 0x2924, 0x3986, // 0x1280 (4736)
|
||||
0x2945, 0x20C3, 0x630B, 0xB554, 0x936C, 0xD100, 0xF1A1, 0xE120, 0xDBCC, 0xDF3C, 0xE6B9, 0x5AAA, 0x1061, 0x62EC, 0xFFFF, 0xFFFF, // 0x1290 (4752)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x12A0 (4768)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x12B0 (4784)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x12C0 (4800)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, // 0x12D0 (4816)
|
||||
0xF7BE, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDEFB, 0x3165, 0x2944, 0x3165, // 0x12E0 (4832)
|
||||
0x20E3, 0x4A8A, 0xD554, 0xC9C4, 0xB203, 0xDA02, 0xE1E1, 0xE9A2, 0xD9E3, 0xCD53, 0xCE58, 0x7BAD, 0x0841, 0x528A, 0xFFFF, 0xFFFF, // 0x12F0 (4848)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1300 (4864)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1310 (4880)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1320 (4896)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, // 0x1330 (4912)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9CD3, 0x18C2, 0x3145, 0x2924, // 0x1340 (4928)
|
||||
0x1882, 0x94D3, 0xFC4D, 0xF140, 0xF2A6, 0xE4CF, 0xCA66, 0xC982, 0xE1E3, 0xA3CD, 0xC637, 0x8C0F, 0x0820, 0x528A, 0xFFFF, 0xFFFF, // 0x1350 (4944)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1360 (4960)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1370 (4976)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1380 (4992)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, // 0x1390 (5008)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6B4C, 0x1082, 0x2924, 0x20E3, // 0x13A0 (5024)
|
||||
0x2945, 0xC5D6, 0xEA44, 0xF1A1, 0xE224, 0xE285, 0xE2C7, 0xB1C3, 0xB163, 0xB4F1, 0xDED9, 0x7B8D, 0x1041, 0x738E, 0xFFFF, 0xFFFF, // 0x13B0 (5040)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x13C0 (5056)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x13D0 (5072)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x13E0 (5088)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, // 0x13F0 (5104)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x62EB, 0x1082, 0x2924, 0x20E3, // 0x1400 (5120)
|
||||
0x41E7, 0xDE99, 0xDA24, 0xF1E1, 0xD9A2, 0xB962, 0xDA86, 0xA9C4, 0x99E5, 0xFF9D, 0xF77C, 0x4A48, 0x0841, 0xA514, 0xFFFF, 0xFFFF, // 0x1410 (5136)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1420 (5152)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1430 (5168)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1440 (5184)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, // 0x1450 (5200)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x62EB, 0x1082, 0x2124, 0x18C3, // 0x1460 (5216)
|
||||
0x41E8, 0xDE99, 0xD246, 0xF1E2, 0xE9E2, 0xB9A3, 0x9162, 0x88C0, 0xCC90, 0xFFFF, 0xCE17, 0x2944, 0x2103, 0xD69A, 0xFFFF, 0xFFFF, // 0x1470 (5232)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1480 (5248)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1490 (5264)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x14A0 (5280)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, // 0x14B0 (5296)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x738E, 0x1081, 0x2124, 0x18C2, // 0x14C0 (5312)
|
||||
0x31A6, 0xD69A, 0xD328, 0xF180, 0xF1C1, 0xF202, 0xD141, 0xCB8B, 0xEFBD, 0xFFDD, 0x7BAD, 0x1081, 0x5ACB, 0xFFFF, 0xFFFF, 0xFFFF, // 0x14D0 (5328)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x14E0 (5344)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x14F0 (5360)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1500 (5376)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1510 (5392)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9492, 0x0861, 0x2104, 0x20E3, // 0x1520 (5408)
|
||||
0x2924, 0xBE18, 0xE595, 0xC9E3, 0xCA44, 0xD182, 0xCB6A, 0xE75B, 0xFFFE, 0xBDD5, 0x3165, 0x18A2, 0xC5F7, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1530 (5424)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1540 (5440)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1550 (5456)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1560 (5472)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1570 (5488)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE79, 0x10A2, 0x20E3, 0x2104, // 0x1580 (5504)
|
||||
0x20E3, 0x7BCE, 0xDE58, 0xB40E, 0x83EF, 0xB513, 0xDF1A, 0xFFBD, 0xCE57, 0x4A48, 0x1061, 0x630C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1590 (5520)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x15A0 (5536)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x15B0 (5552)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x15C0 (5568)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x15D0 (5584)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4A49, 0x1081, 0x2103, // 0x15E0 (5600)
|
||||
0x20E3, 0x3165, 0x9CB1, 0xBDB5, 0xAD14, 0xE71B, 0xE6FA, 0xB553, 0x5A89, 0x18A2, 0x39A6, 0xEF3C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x15F0 (5616)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1600 (5632)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1610 (5648)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1620 (5664)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1630 (5680)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xCE38, 0x1082, 0x18A2, // 0x1640 (5696)
|
||||
0x20E3, 0x2124, 0x39A6, 0x7B6D, 0x9450, 0x9450, 0x7B8E, 0x4207, 0x20C3, 0x2104, 0xD679, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1650 (5712)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1660 (5728)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1670 (5744)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1680 (5760)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1690 (5776)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xA534, 0x18C3, // 0x16A0 (5792)
|
||||
0x1082, 0x18C2, 0x2104, 0x3165, 0x39A6, 0x39A6, 0x2944, 0x1061, 0x3165, 0xC638, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x16B0 (5808)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x16C0 (5824)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x16D0 (5840)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x16E0 (5856)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x16F0 (5872)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xB5B6, // 0x1700 (5888)
|
||||
0x4A28, 0x2104, 0x1061, 0x0820, 0x0820, 0x1061, 0x2944, 0x7BAE, 0xEF5C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1710 (5904)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1720 (5920)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1730 (5936)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1740 (5952)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1750 (5968)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1760 (5984)
|
||||
0xFFDF, 0xD6BA, 0xB596, 0x9CD3, 0x9CD3, 0xB596, 0xEF3C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1770 (6000)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1780 (6016)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1790 (6032)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x17A0 (6048)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x17B0 (6064)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x17C0 (6080)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x17D0 (6096)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x17E0 (6112)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7DE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x17F0 (6128)
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, // 0x1800 (6144)
|
||||
};
|
||||
|
||||
343
examples/drawBitmap_kbv/bitmap_mono.h
Normal file
343
examples/drawBitmap_kbv/bitmap_mono.h
Normal file
@@ -0,0 +1,343 @@
|
||||
// http://skaarhoj.com/FreeStuff/GraphicDisplayImageConverter.php
|
||||
|
||||
// width x height = 64,64
|
||||
static const uint8_t magnify_inv_64x64[] PROGMEM = {
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xfc,0x03,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xe0,0x00,0x7f,0xff,0xff,0xff,
|
||||
0xff,0xff,0x80,0x00,0x1f,0xff,0xff,0xff,
|
||||
0xff,0xff,0x00,0x00,0x0f,0xff,0xff,0xff,
|
||||
0xff,0xfc,0x00,0x00,0x03,0xff,0xff,0xff,
|
||||
0xff,0xf8,0x00,0x00,0x01,0xff,0xff,0xff,
|
||||
0xff,0xf0,0x00,0x40,0x01,0xff,0xff,0xff,
|
||||
0xff,0xf0,0x07,0xfe,0x00,0xff,0xff,0xff,
|
||||
0xff,0xe0,0x0f,0xff,0x00,0x7f,0xff,0xff,
|
||||
0xff,0xc0,0x3f,0xff,0xc0,0x7f,0xff,0xff,
|
||||
0xff,0xc0,0x7f,0xff,0xc0,0x3f,0xff,0xff,
|
||||
0xff,0xc0,0x7f,0xff,0xe0,0x3f,0xff,0xff,
|
||||
0xff,0x80,0xff,0xff,0xf0,0x1f,0xff,0xff,
|
||||
0xff,0x80,0xff,0xff,0xf0,0x1f,0xff,0xff,
|
||||
0xff,0x81,0xff,0xff,0xf8,0x1f,0xff,0xff,
|
||||
0xff,0x81,0xff,0xff,0xf8,0x1f,0xff,0xff,
|
||||
0xff,0x01,0xff,0xff,0xf8,0x1f,0xff,0xff,
|
||||
0xff,0x01,0xff,0xff,0xf8,0x1f,0xff,0xff,
|
||||
0xff,0x01,0xff,0xff,0xf8,0x1f,0xff,0xff,
|
||||
0xff,0x81,0xff,0xff,0xf8,0x1f,0xff,0xff,
|
||||
0xff,0x81,0xff,0xff,0xf8,0x1f,0xff,0xff,
|
||||
0xff,0x80,0xff,0xff,0xf0,0x1f,0xff,0xff,
|
||||
0xff,0x80,0xff,0xff,0xf0,0x1f,0xff,0xff,
|
||||
0xff,0x80,0x7f,0xff,0xe0,0x3f,0xff,0xff,
|
||||
0xff,0xc0,0x7f,0xff,0xe0,0x3f,0xff,0xff,
|
||||
0xff,0xc0,0x3f,0xff,0xc0,0x7f,0xff,0xff,
|
||||
0xff,0xe0,0x1f,0xff,0x00,0x7f,0xff,0xff,
|
||||
0xff,0xf0,0x07,0xfe,0x00,0x7f,0xff,0xff,
|
||||
0xff,0xf0,0x00,0xf0,0x00,0x7f,0xff,0xff,
|
||||
0xff,0xf8,0x00,0x00,0x00,0x3f,0xff,0xff,
|
||||
0xff,0xfc,0x00,0x00,0x00,0x1f,0xff,0xff,
|
||||
0xff,0xfe,0x00,0x00,0x00,0x0f,0xff,0xff,
|
||||
0xff,0xff,0x80,0x00,0x10,0x07,0xff,0xff,
|
||||
0xff,0xff,0xe0,0x00,0x78,0x03,0xff,0xff,
|
||||
0xff,0xff,0xfc,0x03,0xfc,0x01,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xfe,0x00,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0x00,0x7f,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xc0,0x1f,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xe0,0x0f,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xf0,0x07,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xf8,0x03,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xfc,0x01,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x7f,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
};
|
||||
|
||||
// width x height = 64,64
|
||||
static const uint8_t magnify_64x64[] PROGMEM = {
|
||||
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,0x03,0xfc,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x1f,0xff,0x80,0x00,0x00,0x00,
|
||||
0x00,0x00,0x7f,0xff,0xe0,0x00,0x00,0x00,
|
||||
0x00,0x00,0xff,0xff,0xf0,0x00,0x00,0x00,
|
||||
0x00,0x03,0xff,0xff,0xfc,0x00,0x00,0x00,
|
||||
0x00,0x07,0xff,0xff,0xfe,0x00,0x00,0x00,
|
||||
0x00,0x0f,0xff,0xbf,0xfe,0x00,0x00,0x00,
|
||||
0x00,0x0f,0xf8,0x01,0xff,0x00,0x00,0x00,
|
||||
0x00,0x1f,0xf0,0x00,0xff,0x80,0x00,0x00,
|
||||
0x00,0x3f,0xc0,0x00,0x3f,0x80,0x00,0x00,
|
||||
0x00,0x3f,0x80,0x00,0x3f,0xc0,0x00,0x00,
|
||||
0x00,0x3f,0x80,0x00,0x1f,0xc0,0x00,0x00,
|
||||
0x00,0x7f,0x00,0x00,0x0f,0xe0,0x00,0x00,
|
||||
0x00,0x7f,0x00,0x00,0x0f,0xe0,0x00,0x00,
|
||||
0x00,0x7e,0x00,0x00,0x07,0xe0,0x00,0x00,
|
||||
0x00,0x7e,0x00,0x00,0x07,0xe0,0x00,0x00,
|
||||
0x00,0xfe,0x00,0x00,0x07,0xe0,0x00,0x00,
|
||||
0x00,0xfe,0x00,0x00,0x07,0xe0,0x00,0x00,
|
||||
0x00,0xfe,0x00,0x00,0x07,0xe0,0x00,0x00,
|
||||
0x00,0x7e,0x00,0x00,0x07,0xe0,0x00,0x00,
|
||||
0x00,0x7e,0x00,0x00,0x07,0xe0,0x00,0x00,
|
||||
0x00,0x7f,0x00,0x00,0x0f,0xe0,0x00,0x00,
|
||||
0x00,0x7f,0x00,0x00,0x0f,0xe0,0x00,0x00,
|
||||
0x00,0x7f,0x80,0x00,0x1f,0xc0,0x00,0x00,
|
||||
0x00,0x3f,0x80,0x00,0x1f,0xc0,0x00,0x00,
|
||||
0x00,0x3f,0xc0,0x00,0x3f,0x80,0x00,0x00,
|
||||
0x00,0x1f,0xe0,0x00,0xff,0x80,0x00,0x00,
|
||||
0x00,0x0f,0xf8,0x01,0xff,0x80,0x00,0x00,
|
||||
0x00,0x0f,0xff,0x0f,0xff,0x80,0x00,0x00,
|
||||
0x00,0x07,0xff,0xff,0xff,0xc0,0x00,0x00,
|
||||
0x00,0x03,0xff,0xff,0xff,0xe0,0x00,0x00,
|
||||
0x00,0x01,0xff,0xff,0xff,0xf0,0x00,0x00,
|
||||
0x00,0x00,0x7f,0xff,0xef,0xf8,0x00,0x00,
|
||||
0x00,0x00,0x1f,0xff,0x87,0xfc,0x00,0x00,
|
||||
0x00,0x00,0x03,0xfc,0x03,0xfe,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x01,0xff,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0xff,0x80,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x7f,0xc0,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x3f,0xe0,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x1f,0xf0,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x0f,0xf8,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x07,0xfc,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x03,0xfe,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x01,0xff,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x80,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xc0,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x80,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,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,
|
||||
};
|
||||
|
||||
// width x height = 96,64 (768 bytes)
|
||||
static const uint8_t camera_96x64[] PROGMEM = {
|
||||
0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x07,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x01,0xff,0x00,0x0f,0xff,
|
||||
0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x0f,0xff,
|
||||
0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,0x7f,0x00,0x0f,0xff,
|
||||
0x00,0x00,0x00,0x00,0x01,0xff,0xff,0x80,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xfe,0x00,0x00,0x00,0x00,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xf0,0x3f,0xff,0xff,0xfc,0x3f,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xf0,0x3f,0xff,0xff,0xc0,0x03,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xf0,0x3f,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xf0,0x3f,0xff,0xfc,0x00,0x00,0x3f,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xf0,0x3f,0xff,0xf8,0x00,0x00,0x1f,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xf0,0x3f,0xff,0xf0,0x00,0x00,0x0f,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xf0,0x7f,0xff,0xe0,0x00,0x00,0x07,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xc0,0x1f,0xf8,0x03,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0x80,0x3f,0xfc,0x01,0xff,0xff,0xff,0xc0,
|
||||
0x01,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0x80,
|
||||
0x00,0x00,0x00,0x00,0x01,0xff,0xff,0x80,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x03,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x07,0xff,0xff,0xe0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,
|
||||
0x03,0xff,0xff,0xfc,0x0f,0xff,0xff,0xf0,0x3f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfc,0x0f,0xff,0xff,0xf0,0x3f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfc,0x0f,0xff,0xff,0xf0,0x3f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfc,0x0f,0xff,0xff,0xf0,0x3f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfc,0x0f,0xff,0xff,0xf0,0x3f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfc,0x0f,0xff,0xff,0xf0,0x3f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfc,0x07,0xff,0xff,0xe0,0x3f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfe,0x07,0xff,0xff,0xe0,0x7f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfe,0x03,0xff,0xff,0xc0,0x7f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xfe,0x03,0xff,0xff,0xc0,0x7f,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0x01,0xff,0xff,0x80,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0x00,0xff,0xff,0x00,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0x80,0x7f,0xfe,0x01,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0x80,0x1f,0xf8,0x01,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xc0,0x03,0xc0,0x03,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xe0,0x00,0x00,0x07,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xf0,0x00,0x00,0x0f,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xf8,0x00,0x00,0x1f,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xfe,0x00,0x00,0x7f,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0x80,0x01,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xf0,0x0f,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,
|
||||
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,
|
||||
};
|
||||
|
||||
// width x height = 96,64
|
||||
static const uint8_t camera_inv_96x64[] PROGMEM = {
|
||||
0x00,0x00,0x00,0x00,0x0f,0xff,0xff,0xf0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x1f,0xff,0xff,0xf8,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x3f,0xff,0xff,0xfc,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x7f,0xff,0xff,0xfe,0x00,0xff,0xf0,0x00,
|
||||
0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0xf0,0x00,
|
||||
0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0x80,0xff,0xf0,0x00,
|
||||
0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xe0,0x00,0x00,0x07,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x01,0xff,0xff,0xff,0xff,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x0f,0xc0,0x00,0x00,0x03,0xc0,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x0f,0xc0,0x00,0x00,0x3f,0xfc,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x0f,0xc0,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x0f,0xc0,0x00,0x03,0xff,0xff,0xc0,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x0f,0xc0,0x00,0x07,0xff,0xff,0xe0,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x0f,0xc0,0x00,0x0f,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x0f,0x80,0x00,0x1f,0xff,0xff,0xf8,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x3f,0xe0,0x07,0xfc,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x7f,0xc0,0x03,0xfe,0x00,0x00,0x00,0x3f,
|
||||
0xfe,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x7f,
|
||||
0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x3f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x1f,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x0f,0xff,0xff,0xff,0xff,
|
||||
0xfc,0x00,0x00,0x03,0xf0,0x00,0x00,0x0f,0xc0,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x03,0xf0,0x00,0x00,0x0f,0xc0,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x03,0xf0,0x00,0x00,0x0f,0xc0,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x03,0xf0,0x00,0x00,0x0f,0xc0,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x03,0xf0,0x00,0x00,0x0f,0xc0,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x03,0xf0,0x00,0x00,0x0f,0xc0,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x03,0xf8,0x00,0x00,0x1f,0xc0,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x01,0xf8,0x00,0x00,0x1f,0x80,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x01,0xfc,0x00,0x00,0x3f,0x80,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x01,0xfc,0x00,0x00,0x3f,0x80,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0xfe,0x00,0x00,0x7f,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x7f,0x80,0x01,0xfe,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x7f,0xe0,0x07,0xfe,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x3f,0xfc,0x3f,0xfc,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x1f,0xff,0xff,0xf8,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x0f,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x07,0xff,0xff,0xe0,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x01,0xff,0xff,0x80,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x7f,0xfe,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
};
|
||||
|
||||
// width x height = 128,64 (1024 bytes)
|
||||
static const uint8_t tractor_128x64[] PROGMEM = {
|
||||
0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x31,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x28,0x70,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x24,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x23,0x38,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x23,0xec,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x1f,0x84,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x03,0xf8,0x7c,0x00,0x00,0x00,0x1b,0x84,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x0f,0xff,0xff,0xfc,0x00,0x00,0x0e,0x44,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x1c,0x80,0x00,0x1f,0xff,0xfc,0x06,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x39,0x00,0x00,0x00,0x30,0x1e,0x6f,0x9f,0xc0,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x39,0x00,0x00,0x00,0x00,0x01,0xfc,0xff,0xe0,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x79,0x00,0x09,0x00,0x08,0x00,0xf8,0xff,0x80,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xf9,0x80,0xf0,0x12,0x4a,0x22,0xf1,0xfe,0x07,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x01,0x7c,0x04,0x28,0x00,0x08,0x00,0xf3,0xf3,0xfd,0xc0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x01,0x7f,0xf2,0x09,0xff,0xc8,0x00,0xf3,0xf0,0x0c,0xf0,0x00,0x00,0x00,0x00,
|
||||
0x00,0x01,0x7c,0x01,0x2f,0xff,0xef,0xff,0x67,0xeb,0xe4,0x78,0x00,0x00,0x00,0x00,
|
||||
0x00,0x01,0xff,0xfd,0xbf,0xff,0xc0,0x00,0x7f,0x0f,0xe0,0x38,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x7f,0xfd,0x7f,0xff,0xcf,0xff,0xff,0x90,0x20,0x1c,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x3c,0x01,0x3f,0xff,0xef,0xff,0xff,0x81,0x00,0x0e,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x3f,0xfd,0x3c,0x03,0xef,0xff,0xff,0x67,0x0f,0xce,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x7f,0xfc,0x3f,0xff,0xef,0xf0,0xfc,0x5f,0x9f,0xe6,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x1c,0x00,0x3f,0xff,0xef,0xc1,0x3c,0x70,0x3f,0xe7,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x3f,0xfc,0x3f,0xff,0xff,0x87,0xbe,0xc0,0x70,0x73,0x80,0x00,0x00,0x00,
|
||||
0x00,0x00,0x3f,0xfc,0xbf,0xff,0xff,0x87,0xde,0x00,0x67,0xb3,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x1c,0x00,0x9b,0x80,0xe0,0x07,0xdc,0x0e,0xef,0xdf,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x1c,0x00,0x83,0x80,0xe0,0x07,0x59,0xbc,0xdf,0xef,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x3f,0xfc,0x93,0xc0,0xe0,0x77,0x50,0x70,0xe1,0xef,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x1c,0x00,0x9f,0xff,0xe0,0x77,0xd8,0xe0,0x80,0xdf,0x80,0x00,0x00,0x00,
|
||||
0x00,0x00,0x5f,0xe0,0x9f,0xff,0xe0,0x7a,0xd9,0x80,0x80,0xd7,0xc0,0x00,0x00,0x00,
|
||||
0x00,0x01,0xbf,0xfc,0x9f,0xff,0xe0,0xfa,0xbd,0x08,0x80,0xd7,0x80,0x00,0x00,0x00,
|
||||
0x00,0x02,0xfc,0x00,0x1f,0xe0,0xf3,0xfc,0x7c,0x1c,0x80,0x77,0x80,0x00,0x00,0x00,
|
||||
0x00,0x05,0x3f,0xff,0xdf,0xb0,0x37,0xff,0xf2,0xb8,0x00,0x7f,0x80,0x00,0x00,0x00,
|
||||
0x00,0x0a,0x7c,0x00,0x03,0x40,0x1f,0xff,0xf1,0xf0,0x04,0x6f,0x80,0x00,0x00,0x00,
|
||||
0x00,0x14,0xfe,0x00,0x06,0x90,0x0f,0xff,0xf1,0x60,0x06,0x6f,0x80,0x00,0x00,0x00,
|
||||
0x00,0x15,0xff,0x00,0x0d,0x07,0x8f,0xfe,0xf0,0xc0,0x04,0x63,0xc0,0x00,0x00,0x00,
|
||||
0x00,0x2b,0xff,0xff,0xfc,0x4f,0xc7,0xf9,0xf9,0x80,0x04,0x77,0xc0,0x00,0x00,0x00,
|
||||
0x00,0x2b,0x9f,0xff,0xfa,0x98,0x67,0xc7,0xfd,0x0c,0x40,0x77,0x80,0x00,0x00,0x00,
|
||||
0x00,0x27,0x1f,0xff,0xfa,0xb7,0x34,0x3f,0xfe,0x1c,0x00,0xf7,0x80,0x00,0x00,0x00,
|
||||
0x00,0x37,0x01,0xff,0xf8,0x2f,0xb3,0xff,0xfa,0x3c,0x00,0xd7,0x80,0x00,0x00,0x00,
|
||||
0x00,0x37,0x00,0xff,0x9c,0x39,0xdb,0xff,0xf9,0x3c,0x00,0xc7,0x80,0x00,0x00,0x00,
|
||||
0x00,0x36,0x1c,0xff,0x9c,0x20,0xdb,0xff,0xfc,0x78,0x21,0xaf,0x80,0x00,0x00,0x00,
|
||||
0x00,0x36,0x1e,0x3f,0x9c,0x40,0xdb,0xff,0xfe,0xf0,0x13,0x0f,0x80,0x00,0x00,0x00,
|
||||
0x00,0x36,0x1f,0xff,0x9c,0x42,0x5b,0xff,0xe6,0xf2,0x1e,0x5f,0x00,0x00,0x00,0x00,
|
||||
0x00,0x36,0x1f,0xff,0xfc,0x41,0x5b,0xff,0xc3,0x67,0x00,0x1e,0x00,0x00,0x00,0x00,
|
||||
0x00,0x26,0x1f,0xff,0xfc,0x0f,0x5b,0xff,0xc7,0xee,0x00,0x37,0x00,0x00,0x00,0x00,
|
||||
0x00,0x27,0x02,0xff,0xfd,0x0e,0x5b,0xff,0xc3,0xfe,0x07,0xe7,0x00,0x00,0x00,0x00,
|
||||
0x00,0x37,0x44,0xe0,0x1d,0x00,0xd7,0xff,0x81,0xfc,0xc3,0xc6,0x00,0x00,0x00,0x00,
|
||||
0x00,0x1b,0x38,0xe0,0x19,0x00,0x97,0xff,0x80,0xfc,0xc0,0x0c,0x00,0x00,0x00,0x00,
|
||||
0x00,0x13,0x81,0xe0,0x1b,0x20,0xb7,0xff,0x00,0xfd,0x80,0x18,0x00,0x00,0x00,0x00,
|
||||
0x00,0x1b,0xc3,0xc0,0x0a,0x33,0x27,0xff,0xfc,0xff,0x90,0x3f,0xe0,0x00,0x00,0x00,
|
||||
0x00,0x0f,0xff,0xc0,0x0e,0x1e,0x6f,0xff,0xff,0xff,0xb8,0xff,0xe0,0x00,0x00,0x00,
|
||||
0x00,0x3f,0xff,0x80,0x0d,0x98,0xcf,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,
|
||||
0x03,0xff,0xff,0xff,0xfd,0x8f,0x9f,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x7f,0xff,0xff,0xff,0xff,0xc0,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x0f,0xff,0xff,0x83,0xff,0xc0,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x07,0xe0,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
};
|
||||
|
||||
|
||||
160
examples/drawBitmap_kbv/drawBitmap_kbv.ino
Normal file
160
examples/drawBitmap_kbv/drawBitmap_kbv.ino
Normal file
@@ -0,0 +1,160 @@
|
||||
#include "MCUFRIEND_kbv.h"
|
||||
MCUFRIEND_kbv tft;
|
||||
|
||||
#define LOWFLASH (defined(__AVR_ATmega328P__) && defined(MCUFRIEND_KBV_H_))
|
||||
|
||||
#include "bitmap_mono.h"
|
||||
#include "bitmap_RGB.h"
|
||||
|
||||
#define BLACK 0x0000
|
||||
#define BLUE 0x001F
|
||||
#define RED 0xF800
|
||||
#define GREEN 0x07E0
|
||||
#define CYAN 0x07FF
|
||||
#define MAGENTA 0xF81F
|
||||
#define YELLOW 0xFFE0
|
||||
#define WHITE 0xFFFF
|
||||
#define GREY 0x8410
|
||||
#define ORANGE 0xE880
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(9600);
|
||||
uint16_t ID = tft.readID();
|
||||
|
||||
Serial.print(F("ID = 0x"));
|
||||
Serial.println(ID, HEX);
|
||||
|
||||
Serial.println(F("GFX drawBitmap() plots one mono pixel at a time"));
|
||||
Serial.println(F("it defaults to transparent plotting"));
|
||||
Serial.println(F("unless you specify foreground and background colours"));
|
||||
Serial.println(F("it can plot a monochrome bitmap from Flash or SRAM"));
|
||||
|
||||
Serial.println(F(""));
|
||||
Serial.println(F("GFX drawGrayscaleBitmap() is not relevant for OLED, TFT"));
|
||||
Serial.println(F("GFX drawRGBBitmap() plots one colour pixel at a time"));
|
||||
Serial.println(F("from Flash or SRAM and with a monochrome transparent bitmask"));
|
||||
Serial.println(F(""));
|
||||
Serial.println(F("Using the hardware pushColors() methods is faster"));
|
||||
Serial.println(F("pushColors() expects uint16 array in SRAM"));
|
||||
Serial.println(F("for any runtime generated images"));
|
||||
Serial.println(F("but it expects uint8_t array of serialised bytes in Flash"));
|
||||
Serial.println(F(""));
|
||||
|
||||
Serial.println(F("Colour TFTs are natively big-endian"));
|
||||
Serial.println(F("Many microcontrollers and Tools are little-endian"));
|
||||
Serial.println(F("you can use the optional argument to select big-end"));
|
||||
tft.begin(ID);
|
||||
// invertmap(betty_1_bmp + 62, 8960);
|
||||
// while (1);
|
||||
}
|
||||
|
||||
// GFX drawBitmap() expects each row to be on 8-bit boundary. i.e. pad = 7
|
||||
// Mono BMP rows are on 32-bit boundary. i.e. pad = 31, rows are in RVS order.
|
||||
// FreeFont bitmaps have no padding. i.e. pad = 0. e.g. 5x4 bitmap is in 3 bytes
|
||||
void showbgd(int x, int y, const uint8_t *bmp, int w, int h, uint16_t color, uint16_t bg, uint8_t pad = 7)
|
||||
{
|
||||
int yy, xx;
|
||||
uint8_t first = 1, RVS = pad & 0x80;
|
||||
uint16_t pixel;
|
||||
pad &= 31;
|
||||
uint16_t wid = (w + pad) & ~pad; //bits per row
|
||||
tft.setAddrWindow(x, y, x + w - 1, y + h - 1); //
|
||||
for (yy = 0; yy < h; yy++) {
|
||||
uint32_t ofs = (RVS ? (h - yy - 1) : yy) * wid; //bit offset
|
||||
const uint8_t *p = bmp + (ofs >> 3); //flash address
|
||||
uint8_t mask = 0x80 >> (ofs & 7); //bit mask
|
||||
uint8_t c = pgm_read_byte(p++);
|
||||
for (xx = 0; xx < w; xx++) {
|
||||
if (mask == 0) {
|
||||
c = pgm_read_byte(p++);
|
||||
mask = 0x80;
|
||||
}
|
||||
pixel = (c & mask) ? color : bg;
|
||||
tft.pushColors(&pixel, 1, first);
|
||||
first = 0;
|
||||
mask >>= 1;
|
||||
}
|
||||
}
|
||||
tft.setAddrWindow(0, 0, tft.width() - 1, tft.height() - 1);
|
||||
}
|
||||
|
||||
void msg_time(int x, int y, String msg, uint32_t t)
|
||||
{
|
||||
t = millis() - t;
|
||||
tft.setCursor(x, y);
|
||||
tft.print(msg);
|
||||
tft.print(t);
|
||||
tft.print(F("ms"));
|
||||
}
|
||||
|
||||
void loop(void)
|
||||
{
|
||||
int x = 5, y, w = 128, h = 64;
|
||||
uint32_t t;
|
||||
const int SZ = w * h / 8;
|
||||
uint8_t sram[SZ];
|
||||
memcpy_P(sram, tractor_128x64, SZ);
|
||||
|
||||
tft.fillScreen(BLACK);
|
||||
y = 0; t = millis();
|
||||
tft.drawBitmap(x, y, tractor_128x64, 128, 64, BLUE);
|
||||
msg_time(0, y + 66, F("drawBitmap() transparent flash "), t);
|
||||
y = 80; t = millis();
|
||||
tft.drawBitmap(x, y, tractor_128x64, 128, 64, RED, YELLOW);
|
||||
msg_time(0, y + 66, F("drawBitmap() background flash "), t);
|
||||
y = 160; t = millis();
|
||||
tft.fillRect(x, y, w, h, GREY);
|
||||
tft.drawBitmap(x, y, sram, 128, 64, GREEN);
|
||||
msg_time(0, y + 66, F("drawBitmap() fill bgd SRAM "), t);
|
||||
y = 240; t = millis();
|
||||
showbgd(x, y, tractor_128x64, 128, 64, MAGENTA, YELLOW);
|
||||
msg_time(0, y + 66, F("pushColors() background flash "), t);
|
||||
delay(5000);
|
||||
|
||||
tft.fillScreen(BLACK);
|
||||
y = 0; t = millis();
|
||||
tft.drawRGBBitmap(x, y, marilyn_64x64, 64, 64);
|
||||
msg_time(0, y + 66, "drawRGBBitmap() flash ", t);
|
||||
y = 80; t = millis();
|
||||
tft.setAddrWindow(x, y, x + 64 - 1, y + 64 - 1);
|
||||
tft.pushColors((const uint8_t*)marilyn_64x64, 64 * 64, 1, false);
|
||||
tft.setAddrWindow(0, 0, tft.width() - 1, tft.height() - 1);
|
||||
msg_time(0, y + 66, F("pushColors() flash "), t);
|
||||
y = 160; t = millis();
|
||||
w = 64;
|
||||
tft.fillRect(x, y, w, h, GREY);
|
||||
tft.drawRGBBitmap(x, y, marilyn_64x64, magnify_64x64, 64, 64);
|
||||
msg_time(0, y + 66, F("drawRGBBitmap() with mask "), t);
|
||||
y = 240; t = millis();
|
||||
w = 64;
|
||||
tft.fillRect(x, y, w, h, GREY);
|
||||
tft.drawRGBBitmap(x, y, marilyn_64x64, magnify_inv_64x64, 64, 64);
|
||||
msg_time(0, y + 66, F("drawRGBBitmap() with mask "), t);
|
||||
delay(5000);
|
||||
|
||||
#if !LOWFLASH
|
||||
tft.fillScreen(BLACK);
|
||||
y = 0; t = millis();
|
||||
tft.drawRGBBitmap(x, y, tractor10_96x64, 96, 64);
|
||||
msg_time(0, y + 66, "drawRGBBitmap() flash ", t);
|
||||
y = 80; t = millis();
|
||||
tft.setAddrWindow(x, y, x + 96 - 1, y + 64 - 1);
|
||||
tft.pushColors((const uint8_t*)tractor10_96x64, 96 * 64, 1, false);
|
||||
tft.setAddrWindow(0, 0, tft.width() - 1, tft.height() - 1);
|
||||
msg_time(0, y + 66, F("pushColors() flash "), t);
|
||||
y = 160; t = millis();
|
||||
w = 96;
|
||||
tft.fillRect(x, y, w, h, GREY);
|
||||
tft.drawRGBBitmap(x, y, tractor10_96x64, camera_96x64, 96, 64);
|
||||
msg_time(0, y + 66, F("drawRGBBitmap() with mask "), t);
|
||||
y = 240; t = millis();
|
||||
w = 96;
|
||||
tft.fillRect(x, y, w, h, GREY);
|
||||
tft.drawRGBBitmap(x, y, tractor10_96x64, camera_inv_96x64, 96, 64);
|
||||
msg_time(0, y + 66, F("drawRGBBitmap() with mask "), t);
|
||||
delay(5000);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,14 @@
|
||||
9. Any Adafruit sketch should work with the MCUFRIEND_kbv constructor() but should allow extra ID values
|
||||
An Adafruit constructor(cs, rs, wr, rd, rst) IGNORES any arguments. i.e. it only uses the shield control pins
|
||||
|
||||
MCUFRIEND_kbv inherits all the methods from
|
||||
the Adafruit_GFX class: https://learn.adafruit.com/adafruit-gfx-graphics-library/overview
|
||||
and Print class: https://www.arduino.cc/en/Serial/Print
|
||||
|
||||
The only "new" methods are hardware related:
|
||||
vertScroll(), readGRAM(), readPixel(), setAddrWindow(), pushColors(), readID(), begin()
|
||||
readReg(), pushCommand(), WriteCmdData() access the controller registers
|
||||
|
||||
10. It currently supports UNO shields with "mcufriend.com" pcbs with controllers:
|
||||
HX8347-A 240x320 ID=0x8347 #define SUPPORT_8347A *** Untested ***
|
||||
HX8347-D 240x320 ID=0x4747 #define SUPPORT_8347D
|
||||
@@ -60,7 +68,7 @@ R61580 240x320 ID=0x1580 #define SUPPORT_1580 *** Untested ***
|
||||
R61581 320x480 ID=0x1581
|
||||
RM68090 240x320 ID=0x6809
|
||||
RM68140 320x480 ID=0x6814 #define SUPPORT_68140
|
||||
S6D0139 240x320 ID=0x0139 #define SUPPORT_0139 *** Untested ***
|
||||
S6D0139 240x320 ID=0x0139 #define SUPPORT_0139 (no Band Scroll)
|
||||
S6D0154 240x320 ID=0x0154 #define SUPPORT_0154
|
||||
SPFD5408 240x320 ID=0x5408
|
||||
SPFD5420 240x400 ID=0x5420 #define SUPPORT_9326_5420
|
||||
@@ -109,4 +117,9 @@ It also runs on NUCLEO-F103 and TEENSY3.2 with Sparkfun Adapter
|
||||
|
||||
18. Please run LCD_ID_readreg.ino to verify your non-standard wiring. Paste the defines to a Forum message.
|
||||
|
||||
19. OPEN-SMART Shields have different wiring to regular Uno Shields:
|
||||
Edit mcufriend_shield.h: #define USE_SPECIAL
|
||||
Edit mcufriend_special.h: #define USE_OPENSMART_SHIELD_PINOUT
|
||||
Edit MCUFRIEND_kbv.cpp: #define SUPPORT_8352B
|
||||
|
||||
CHANGE HISTORY: is now in "mcufriend_history.txt"
|
||||
|
||||
85
license.txt
Normal file
85
license.txt
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* MCUFRIEND_kbv class inherits from Adafruit_GFX class and the Arduino Print class.
|
||||
* Any use of MCUFRIEND_kbv class and examples is dependent on Adafruit and Arduino licenses
|
||||
* The license texts are in the accompanying license.txt file
|
||||
*/
|
||||
|
||||
|
||||
ADAFRUIT: Adafruit_GFX library
|
||||
|
||||
Software License Agreement (BSD License)
|
||||
|
||||
Copyright (c) 2012 Adafruit Industries. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
ARDUINO: Print class
|
||||
/*
|
||||
Copyright (c) 2014 Arduino. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
|
||||
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvStartvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
|
||||
Software License Agreement (FreeBSD License)
|
||||
|
||||
Copyright (c) 2018 David Prentice (https://github.com/prenticedavid/MCUFRIEND_kbv/)
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
The views and conclusions contained in the software and documentation are those
|
||||
of the authors and should not be interpreted as representing official policies,
|
||||
either expressed or implied, of the FreeBSD Project.
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^End^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -41,7 +41,7 @@
|
||||
#define RD_STROBE RD_IDLE, RD_ACTIVE, RD_ACTIVE, RD_ACTIVE //PWLR=TRDL=150ns
|
||||
|
||||
#if defined(TEENSY) || defined(__ARM_ARCH_7EM__) // -O2: F411@100MHz = 1.44s
|
||||
#define WRITE_DELAY { WR_ACTIVE; WR_ACTIVE; WR_ACTIVE; }
|
||||
#define WRITE_DELAY { WR_ACTIVE; WR_ACTIVE; WR_ACTIVE; WR_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#elif defined(__ARM_ARCH_7M__) // -O2: F103@72MHz = 2.68s
|
||||
#define WRITE_DELAY { }
|
||||
@@ -51,9 +51,9 @@
|
||||
#define READ_DELAY { }
|
||||
#endif
|
||||
|
||||
#define write8(x) { write_8(x); WRITE_DELAY; WR_STROBE; }
|
||||
#define write8(x) { write_8(x); WRITE_DELAY; WR_STROBE; WR_IDLE; }
|
||||
#define write16(x) { uint8_t h = (x)>>8, l = x; write8(h); write8(l); }
|
||||
#define READ_8(dst) { RD_STROBE; READ_DELAY; dst = read_8(); RD_IDLE; } // read 250ns after RD_ACTIVE goes low
|
||||
#define READ_8(dst) { RD_STROBE; READ_DELAY; dst = read_8(); RD_IDLE; RD_IDLE; } // read 250ns after RD_ACTIVE goes low
|
||||
#define READ_16(dst) { uint8_t hi; READ_8(hi); READ_8(dst); dst |= (hi << 8); }
|
||||
|
||||
#define CTL_INIT() { RD_OUTPUT; WR_OUTPUT; CD_OUTPUT; CS_OUTPUT; RESET_OUTPUT; }
|
||||
|
||||
@@ -345,7 +345,8 @@ void write_8(uint8_t x)
|
||||
|| defined(ARDUINO_NUCLEO_F030R8) || defined(ARDUINO_NUCLEO_F091RC) \
|
||||
|| defined(ARDUINO_NUCLEO_F103RB) || defined(ARDUINO_NUCLEO_F303RE) \
|
||||
|| defined(ARDUINO_NUCLEO_F401RE) || defined(ARDUINO_NUCLEO_F411RE) \
|
||||
|| defined(ARDUINO_NUCLEO_L053R8) || defined(ARDUINO_NUCLEO_L476RG) \
|
||||
|| defined(ARDUINO_NUCLEO_F446RE) || defined(ARDUINO_NUCLEO_L053R8) \
|
||||
|| defined(ARDUINO_NUCLEO_L152RE) || defined(ARDUINO_NUCLEO_L476RG) \
|
||||
)
|
||||
// F1xx, F4xx, L4xx have different registers and styles. General Macros
|
||||
#if defined(__STM32F1__) //weird Maple Core
|
||||
@@ -402,13 +403,19 @@ void write_8(uint8_t x)
|
||||
|
||||
#elif defined(STM32F401xE)
|
||||
#define WRITE_DELAY { WR_ACTIVE; WR_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#define GPIO_INIT() { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN | RCC_AHB1ENR_GPIOCEN; }
|
||||
#define PIN_OUTPUT(port, pin) PIN_MODE2((port)->MODER, pin, 0x1)
|
||||
|
||||
#elif defined(STM32F411xE)
|
||||
#define WRITE_DELAY { WR_ACTIVE; WR_ACTIVE; WR_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#define GPIO_INIT() { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN | RCC_AHB1ENR_GPIOCEN; }
|
||||
#define PIN_OUTPUT(port, pin) PIN_MODE2((port)->MODER, pin, 0x1)
|
||||
|
||||
#elif defined(STM32F446xx)
|
||||
#define WRITE_DELAY { WR_ACTIVE; WR_ACTIVE; WR_ACTIVE; WR_ACTIVE; WR_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#define GPIO_INIT() { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN | RCC_AHB1ENR_GPIOCEN; }
|
||||
#define PIN_OUTPUT(port, pin) PIN_MODE2((port)->MODER, pin, 0x1)
|
||||
|
||||
@@ -418,9 +425,15 @@ void write_8(uint8_t x)
|
||||
#define GPIO_INIT() { RCC->IOPENR |= RCC_IOPENR_GPIOAEN | RCC_IOPENR_GPIOBEN | RCC_IOPENR_GPIOCEN; }
|
||||
#define PIN_OUTPUT(port, pin) PIN_MODE2((port)->MODER, pin, 0x1)
|
||||
|
||||
#elif defined(STM32L152xE)
|
||||
#define WRITE_DELAY { }
|
||||
#define READ_DELAY { RD_ACTIVE; }
|
||||
#define GPIO_INIT() { RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN; }
|
||||
#define PIN_OUTPUT(port, pin) PIN_MODE2((port)->MODER, pin, 0x1)
|
||||
|
||||
#elif defined(STM32L476xx)
|
||||
#define WRITE_DELAY { WR_ACTIVE; WR_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#define READ_DELAY { RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; RD_ACTIVE; }
|
||||
#define GPIO_INIT() { RCC->AHB2ENR |= RCC_AHB2ENR_GPIOAEN | RCC_AHB2ENR_GPIOBEN | RCC_AHB2ENR_GPIOCEN; }
|
||||
#define PIN_OUTPUT(port, pin) PIN_MODE2((port)->MODER, pin, 0x1)
|
||||
|
||||
@@ -543,9 +556,9 @@ void write_8(uint8_t x)
|
||||
#error REGS group
|
||||
#endif
|
||||
|
||||
#define write8(x) { write_8(x); WRITE_DELAY; WR_STROBE; }
|
||||
#define write8(x) { write_8(x); WRITE_DELAY; WR_STROBE; WR_IDLE; }
|
||||
#define write16(x) { uint8_t h = (x)>>8, l = x; write8(h); write8(l); }
|
||||
#define READ_8(dst) { RD_STROBE; READ_DELAY; dst = read_8(); RD_IDLE; }
|
||||
#define READ_8(dst) { RD_STROBE; READ_DELAY; dst = read_8(); RD_IDLE; RD_IDLE; }
|
||||
#define READ_16(dst) { uint8_t hi; READ_8(hi); READ_8(dst); dst |= (hi << 8); }
|
||||
|
||||
//################################### ESP32 ##############################
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
#define PIN_INPUT(port, pin) {if (pin > 7) PIN_MODE4((port)->CRH, (pin&7), 0x4); else PIN_MODE4((port)->CRL, pin, 0x4); } //input
|
||||
|
||||
|
||||
#elif defined(NUCLEO) || defined(TARGET_NUCLEO_F072RB) || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L476RG)
|
||||
#elif defined(NUCLEO) || defined(TARGET_NUCLEO_F072RB) || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L476RG) || defined(TARGET_NUCLEO_F446RE)
|
||||
#define PIN_MODE2(reg, pin, mode) reg=(reg&~(0x3<<((pin)<<1)))|(mode<<((pin)<<1))
|
||||
#if __MBED__
|
||||
#warning MBED knows everything
|
||||
@@ -196,7 +196,7 @@
|
||||
#endif
|
||||
#elif defined(STM32L476xx)
|
||||
#include <STM32L4XX.h>
|
||||
#elif defined(STM32F401xE) || defined(STM32F411xE)
|
||||
#elif defined(STM32F401xE) || defined(STM32F411xE) || defined(STM32F446xx)
|
||||
#include <STM32F4XX.h>
|
||||
#endif
|
||||
#define D0_PORT GPIOA
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
#define setWriteDir() {GP_OUT(GPIOA, CRH, 0xFFF); GP_OUT(GPIOA, CRL, 0xFF); GP_OUT(GPIOB, CRL, 0xFFF00000); }
|
||||
#define setReadDir() {GP_INP(GPIOA, CRH, 0xFFF); GP_INP(GPIOA, CRL, 0xFF); GP_INP(GPIOB, CRL, 0xFFF00000); }
|
||||
|
||||
#elif defined(NUCLEO) || defined(TARGET_NUCLEO_F072RB) || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L476RG)
|
||||
#elif defined(NUCLEO) || defined(TARGET_NUCLEO_F072RB) || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L476RG) || defined(TARGET_NUCLEO_F446RE)
|
||||
#if __MBED__
|
||||
#warning MBED knows everything
|
||||
#elif defined(STM32F072xB)
|
||||
@@ -96,7 +96,7 @@
|
||||
#endif
|
||||
#elif defined(STM32L476xx)
|
||||
#include <STM32L4XX.h>
|
||||
#elif defined(STM32F401xE) || defined(STM32F411xE)
|
||||
#elif defined(STM32F401xE) || defined(STM32F411xE) || defined(STM32F446xx)
|
||||
#include <STM32F4XX.h>
|
||||
#endif
|
||||
// configure macros for the data pins. -00=10.06, -O1=7.85, -O1t=7.21, -O2=7.87, -O3=7.45, -O3t=7.03
|
||||
|
||||
Reference in New Issue
Block a user