mirror of https://github.com/sqfmi/Watchy.git
Added Watchy basic example
parent
1455aa4b39
commit
80c448c32b
|
@ -0,0 +1,69 @@
|
||||||
|
app/bin/
|
||||||
|
app/pde.jar
|
||||||
|
build/macosx/work/
|
||||||
|
arduino-core/bin/
|
||||||
|
arduino-core/arduino-core.jar
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Descriptors.o
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Descriptors.lst
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Caterina.sym
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Caterina.o
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Caterina.map
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Caterina.lst
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Caterina.lss
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Caterina.elf
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/Caterina.eep
|
||||||
|
hardware/arduino/bootloaders/caterina_LUFA/.dep/
|
||||||
|
build/*.zip
|
||||||
|
build/*.tar.bz2
|
||||||
|
build/windows/work/
|
||||||
|
build/windows/*.zip
|
||||||
|
build/windows/*.tgz
|
||||||
|
build/windows/*.tar.bz2
|
||||||
|
build/windows/libastylej*
|
||||||
|
build/windows/liblistSerials*
|
||||||
|
build/windows/arduino-*.zip
|
||||||
|
build/windows/dist/*.tar.gz
|
||||||
|
build/windows/dist/*.tar.bz2
|
||||||
|
build/windows/launch4j-*.tgz
|
||||||
|
build/windows/launch4j-*.zip
|
||||||
|
build/windows/launcher/launch4j
|
||||||
|
build/windows/WinAVR-*.zip
|
||||||
|
build/macosx/arduino-*.zip
|
||||||
|
build/macosx/dist/*.tar.gz
|
||||||
|
build/macosx/dist/*.tar.bz2
|
||||||
|
build/macosx/*.tar.bz2
|
||||||
|
build/macosx/libastylej*
|
||||||
|
build/macosx/appbundler*.jar
|
||||||
|
build/macosx/appbundler*.zip
|
||||||
|
build/macosx/appbundler
|
||||||
|
build/macosx/appbundler-1.0ea-arduino?
|
||||||
|
build/macosx/appbundler-1.0ea-arduino*.zip
|
||||||
|
build/macosx/appbundler-1.0ea-upstream*.zip
|
||||||
|
build/linux/work/
|
||||||
|
build/linux/dist/*.tar.gz
|
||||||
|
build/linux/dist/*.tar.bz2
|
||||||
|
build/linux/*.tgz
|
||||||
|
build/linux/*.tar.xz
|
||||||
|
build/linux/*.tar.bz2
|
||||||
|
build/linux/*.zip
|
||||||
|
build/linux/libastylej*
|
||||||
|
build/linux/liblistSerials*
|
||||||
|
build/shared/reference*.zip
|
||||||
|
build/shared/Edison*.zip
|
||||||
|
build/shared/Galileo*.zip
|
||||||
|
build/shared/WiFi101-Updater-ArduinoIDE-Plugin*.zip
|
||||||
|
test-bin
|
||||||
|
*.iml
|
||||||
|
.idea
|
||||||
|
.DS_Store
|
||||||
|
.directory
|
||||||
|
hardware/arduino/avr/libraries/Bridge/examples/XivelyClient/passwords.h
|
||||||
|
avr-toolchain-*.zip
|
||||||
|
/app/nbproject/private/
|
||||||
|
/arduino-core/nbproject/private/
|
||||||
|
/app/build/
|
||||||
|
/arduino-core/build/
|
||||||
|
|
||||||
|
manifest.mf
|
||||||
|
nbbuild.xml
|
||||||
|
nbproject
|
|
@ -0,0 +1,73 @@
|
||||||
|
#include <DS3232RTC.h>
|
||||||
|
#include <GxEPD.h>
|
||||||
|
#include <GxIO/GxIO_SPI/GxIO_SPI.h>
|
||||||
|
#include <GxIO/GxIO.h>
|
||||||
|
#include "GxGDEH0154D67.h"
|
||||||
|
#include "DSEG7_Classic_Bold_48.h"
|
||||||
|
|
||||||
|
DS3232RTC RTC(false);
|
||||||
|
GxIO_Class io(SPI, /*CS=5*/ SS, /*DC=*/ 17, /*RST=*/ 16); // arbitrary selection of 17, 16
|
||||||
|
GxEPD_Class display(io, /*RST=*/ 16, /*BUSY=*/ 4); // arbitrary selection of (16), 4
|
||||||
|
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
esp_sleep_enable_ext0_wakeup(GPIO_NUM_33,0); //enable deep sleep wake on RTC interrupt
|
||||||
|
RTC.begin();
|
||||||
|
if(RTC.oscStopped(false)){ //check if RTC has been stopped
|
||||||
|
RTC.squareWave(SQWAVE_NONE); //disable square wave output
|
||||||
|
RTC.set(compileTime()); //set RTC time to compile time
|
||||||
|
RTC.setAlarm(ALM2_EVERY_MINUTE, 0, 0, 0, 1); //set alarm to every minute
|
||||||
|
RTC.alarmInterrupt(ALARM_2, true); //enable alarm interrupt
|
||||||
|
}
|
||||||
|
RTC.alarm(ALARM_2); //resets the alarm flag in the RTC
|
||||||
|
showTime();
|
||||||
|
esp_deep_sleep_start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop(){}
|
||||||
|
|
||||||
|
void showTime()
|
||||||
|
{
|
||||||
|
display.init();
|
||||||
|
display.fillScreen(GxEPD_BLACK);
|
||||||
|
display.setTextColor(GxEPD_WHITE);
|
||||||
|
display.setFont(&DSEG7_Classic_Bold_48);
|
||||||
|
display.setCursor(15, 120);
|
||||||
|
|
||||||
|
tmElements_t currentTime;
|
||||||
|
RTC.read(currentTime);
|
||||||
|
if(currentTime.Hour < 10){
|
||||||
|
display.print('0');
|
||||||
|
}
|
||||||
|
display.print(currentTime.Hour);
|
||||||
|
display.print(':');
|
||||||
|
if(currentTime.Minute < 10){
|
||||||
|
display.print('0');
|
||||||
|
}
|
||||||
|
display.print(currentTime.Minute);
|
||||||
|
display.update();
|
||||||
|
display.deepSleep();
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t compileTime()
|
||||||
|
{
|
||||||
|
const time_t FUDGE(10); //fudge factor to allow for upload time, etc. (seconds, YMMV)
|
||||||
|
const char *compDate = __DATE__, *compTime = __TIME__, *months = "JanFebMarAprMayJunJulAugSepOctNovDec";
|
||||||
|
char compMon[3], *m;
|
||||||
|
|
||||||
|
strncpy(compMon, compDate, 3);
|
||||||
|
compMon[3] = '\0';
|
||||||
|
m = strstr(months, compMon);
|
||||||
|
|
||||||
|
tmElements_t tm;
|
||||||
|
tm.Month = ((m - months) / 3 + 1);
|
||||||
|
tm.Day = atoi(compDate + 4);
|
||||||
|
tm.Year = atoi(compDate + 7) - 1970;
|
||||||
|
tm.Hour = atoi(compTime);
|
||||||
|
tm.Minute = atoi(compTime + 3);
|
||||||
|
tm.Second = atoi(compTime + 6);
|
||||||
|
|
||||||
|
time_t t = makeTime(tm);
|
||||||
|
return t + FUDGE; //add fudge factor to allow for compile time
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
name=Watchy
|
||||||
|
version=1.0.0
|
||||||
|
author=SQFMI
|
||||||
|
maintainer=SQFMI
|
||||||
|
sentence=Watchy - An Open Source E-Ink SmartWatch by SQFMI
|
||||||
|
paragraph=This library contains code samples for Watchy
|
||||||
|
category=Other
|
||||||
|
url=https://github.com/sqfmi/Watchy
|
|
@ -0,0 +1,199 @@
|
||||||
|
// Created by http://oleddisplay.squix.ch/ Consider a donation
|
||||||
|
// In case of problems make sure that you are using the font file with the correct version!
|
||||||
|
const uint8_t DSEG7_Classic_Bold_48Bitmaps[] PROGMEM = {
|
||||||
|
|
||||||
|
// Bitmap Data:
|
||||||
|
0x00, // ' '
|
||||||
|
0x00, // '!'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '"'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '#'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '$'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '%'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '&'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '''
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '('
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // ')'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '*'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '+'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // ','
|
||||||
|
0x1F,0xFF,0xF0,0x3F,0xFF,0xF8,0x7F,0xFF,0xFC,0x7F,0xFF,0xFC,0x3F,0xFF,0xF8,0x1F,0xFF,0xF0, // '-'
|
||||||
|
0x79,0xFB,0xF7,0xEF,0xCF,0x00, // '.'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '/'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xE0,0x00,0x01,0xEF,0x00,0x00,0x03,0xB8,0x00,0x00,0x06,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xEF,0x80,0x00,0x07,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0xBF,0xFF,0xE7,0xBD,0xFF,0xFF,0xCE,0xEF,0xFF,0xFF,0x99,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // '0'
|
||||||
|
0x00,0x18,0x71,0xE7,0xDF,0xBF,0x7E,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7E,0xFD,0xF9,0xF1,0xE1,0xC1,0x80,0x0E,0x3C,0xFB,0xF7,0xEF,0xDF,0xBF,0x7E,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x3E,0x3C,0x38,0x30,0x00, // '1'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFC,0x03,0xFF,0xFF,0xE6,0x07,0xFF,0xFF,0x38,0x0F,0xFF,0xF9,0xE0,0x00,0x00,0x0F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0xF8,0x0F,0xFF,0xF9,0xE0,0x7F,0xFF,0xF3,0x83,0xFF,0xFF,0xE6,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0x0F,0xBF,0xFF,0xE0,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0x3D,0xFF,0xFF,0xC0,0xEF,0xFF,0xFF,0x81,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // '2'
|
||||||
|
0x7F,0xFF,0xFF,0x0F,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xE6,0x1F,0xFF,0xFC,0xE0,0xFF,0xFF,0x9E,0x00,0x00,0x03,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x03,0xE0,0xFF,0xFF,0x9E,0x1F,0xFF,0xFC,0xE3,0xFF,0xFF,0xE6,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xCE,0x0F,0xFF,0xF9,0xE0,0x00,0x00,0x3E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x00,0x07,0xE0,0x00,0x00,0x3E,0x0F,0xFF,0xF9,0xE1,0xFF,0xFF,0xCE,0x3F,0xFF,0xFE,0x67,0xFF,0xFF,0xF0,0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xF0, // '3'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0xFF,0xFF,0x9E,0xF7,0xFF,0xFF,0x3B,0xBF,0xFF,0xFE,0x60,0xFF,0xFF,0xF8,0x01,0xFF,0xFF,0xCE,0x03,0xFF,0xFE,0x78,0x00,0x00,0x03,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x3E,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xE0,0x00,0x00,0x01,0x80,0x00,0x00,0x00, // '4'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x03,0xEF,0xFF,0xF8,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xEF,0xFF,0xF8,0x0F,0x7F,0xFF,0xF0,0x3B,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0x80,0x1F,0xFF,0xFC,0xE0,0x3F,0xFF,0xE7,0x80,0x00,0x00,0x3E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x03,0xE0,0x3F,0xFF,0xE7,0x81,0xFF,0xFF,0xCE,0x0F,0xFF,0xFF,0x98,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // '5'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x03,0xEF,0xFF,0xF8,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xEF,0xFF,0xF8,0x0F,0x7F,0xFF,0xF0,0x3B,0xFF,0xFF,0xE0,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0xEF,0xBF,0xFF,0xE7,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0xBF,0xFF,0xE7,0xBD,0xFF,0xFF,0xCE,0xEF,0xFF,0xFF,0x99,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // '6'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xE0,0x00,0x01,0xEF,0x00,0x00,0x03,0xB8,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x07,0x80,0x00,0x00,0x3E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x03,0xE0,0x00,0x00,0x07,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00, // '7'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0xEF,0xBF,0xFF,0xE7,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0xBF,0xFF,0xE7,0xBD,0xFF,0xFF,0xCE,0xEF,0xFF,0xFF,0x99,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // '8'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0x0F,0xFF,0xFF,0x80,0x1F,0xFF,0xFC,0xE0,0x3F,0xFF,0xE7,0x80,0x00,0x00,0x3E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x03,0xE0,0x3F,0xFF,0xE7,0x81,0xFF,0xFF,0xCE,0x0F,0xFF,0xFF,0x98,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // '9'
|
||||||
|
0x79,0xF3,0xF7,0xEF,0x86,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x9F,0xBF,0x7E,0x78, // ':'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // ';'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '<'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '='
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '>'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '?'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '@'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0xEF,0xBF,0xFF,0xE7,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0x80,0x00,0x07,0xBC,0x00,0x00,0x0E,0xE0,0x00,0x00,0x19,0x00,0x00,0x00,0x00, // 'A'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3E,0xFF,0xFF,0x80,0xF7,0xFF,0xFF,0x03,0xBF,0xFF,0xFE,0x0E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'B'
|
||||||
|
0x03,0xFF,0xFE,0x00,0x7F,0xFF,0xF0,0x0F,0xFF,0xFF,0x8E,0xFF,0xFF,0xF8,0xF7,0xFF,0xFF,0x0F,0xBF,0xFF,0xE0,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0x5F,0xFF,0xFF,0xC3,0xFF,0xFF,0xFE,0x1F,0xFF,0xFF,0xC0, // 'C'
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x0F,0x80,0xFF,0xFF,0x9E,0x07,0xFF,0xFF,0x38,0x3F,0xFF,0xFE,0x6E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'D'
|
||||||
|
0x1F,0xFF,0xFF,0xC3,0xFF,0xFF,0xFE,0x5F,0xFF,0xFF,0xCE,0xFF,0xFF,0xF8,0xF7,0xFF,0xFF,0x0F,0xBF,0xFF,0xE0,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0xEF,0xFF,0xFF,0x8F,0x7F,0xFF,0xF0,0xFB,0xFF,0xFE,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFB,0xFF,0xFE,0x0F,0x7F,0xFF,0xF0,0xEF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xE1,0xFF,0xFF,0xFC, // 'E'
|
||||||
|
0x1F,0xFF,0xFF,0xC3,0xFF,0xFF,0xFE,0x5F,0xFF,0xFF,0xCE,0xFF,0xFF,0xF8,0xF7,0xFF,0xFF,0x0F,0xBF,0xFF,0xE0,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0xEF,0xFF,0xFF,0x8F,0x7F,0xFF,0xF0,0xFB,0xFF,0xFE,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xF8,0x00,0x00,0x0F,0x00,0x00,0x00,0xE0,0x00,0x00,0x04,0x00,0x00,0x00, // 'F'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x03,0xEF,0xFF,0xF8,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xE0,0x00,0x00,0x0F,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xEF,0x80,0x00,0x07,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0xBF,0xFF,0xE7,0xBD,0xFF,0xFF,0xCE,0xEF,0xFF,0xFF,0x99,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // 'G'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3E,0xFF,0xFF,0x80,0xF7,0xFF,0xFF,0x03,0xBF,0xFF,0xFE,0x0E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xF8,0x00,0x00,0x7B,0xC0,0x00,0x00,0xEE,0x00,0x00,0x01,0x90,0x00,0x00,0x00, // 'H'
|
||||||
|
0x1C,0x79,0xF7,0xEF,0xDF,0xBF,0x7E,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7E,0x7C,0x78,0x70,0x60,0x00, // 'I'
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x0F,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x6E,0x00,0x00,0x00,0x3C,0x00,0x00,0x0E,0xF8,0x00,0x00,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'J'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x03,0xEF,0xFF,0xF8,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xEF,0xFF,0xF8,0x0F,0x7F,0xFF,0xF0,0x3B,0xFF,0xFF,0xE0,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0xEF,0xBF,0xFF,0xE7,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0x80,0x00,0x07,0xBC,0x00,0x00,0x0E,0xE0,0x00,0x00,0x19,0x00,0x00,0x00,0x00, // 'K'
|
||||||
|
0x40,0x00,0x00,0x0E,0x00,0x00,0x00,0xF0,0x00,0x00,0x0F,0x80,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0x80,0x00,0x00,0xF0,0x00,0x00,0x0E,0x00,0x00,0x00,0xE0,0x00,0x00,0x0F,0x00,0x00,0x00,0xF8,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFB,0xFF,0xFE,0x0F,0x7F,0xFF,0xF0,0xEF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xE1,0xFF,0xFF,0xFC, // 'L'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xE0,0x00,0x01,0xEF,0x00,0x00,0x03,0xB8,0x00,0x00,0x06,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xEF,0x80,0x00,0x07,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0x80,0x00,0x07,0xBC,0x00,0x00,0x0E,0xE0,0x00,0x00,0x19,0x00,0x00,0x00,0x00, // 'M'
|
||||||
|
0x03,0xFF,0xFE,0x00,0x1F,0xFF,0xFC,0x00,0xFF,0xFF,0xF8,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xE0,0x00,0x01,0xEF,0x00,0x00,0x03,0xB8,0x00,0x00,0x06,0x40,0x00,0x00,0x00, // 'N'
|
||||||
|
0x03,0xFF,0xFE,0x00,0x1F,0xFF,0xFC,0x00,0xFF,0xFF,0xF8,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0x5F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFC,0x00, // 'O'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0x0F,0xBF,0xFF,0xE0,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0x80,0x00,0x00,0x3C,0x00,0x00,0x00,0xE0,0x00,0x00,0x01,0x00,0x00,0x00,0x00, // 'P'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0x0F,0xFF,0xFF,0x80,0x1F,0xFF,0xFC,0xE0,0x3F,0xFF,0xE7,0x80,0x00,0x00,0x3E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x03,0xE0,0x00,0x00,0x07,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00, // 'Q'
|
||||||
|
0x03,0xFF,0xFE,0x00,0xFF,0xFF,0xE0,0x3F,0xFF,0xFE,0x77,0xFF,0xFF,0xCF,0x7F,0xFF,0xF1,0xF7,0xFF,0xFC,0x3F,0x00,0x00,0x07,0xE0,0x00,0x00,0xFC,0x00,0x00,0x1F,0x80,0x00,0x03,0xF0,0x00,0x00,0x7E,0x00,0x00,0x0F,0xC0,0x00,0x01,0xF8,0x00,0x00,0x3F,0x00,0x00,0x07,0xE0,0x00,0x00,0xFC,0x00,0x00,0x1F,0x80,0x00,0x03,0xF0,0x00,0x00,0x7E,0x00,0x00,0x0F,0xC0,0x00,0x01,0xF0,0x00,0x00,0x3C,0x00,0x00,0x07,0x00,0x00,0x00,0x40,0x00,0x00,0x00, // 'R'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3E,0xFF,0xFF,0x80,0xF7,0xFF,0xFF,0x03,0xBF,0xFF,0xFE,0x00,0xFF,0xFF,0xF8,0x01,0xFF,0xFF,0xCE,0x03,0xFF,0xFE,0x78,0x00,0x00,0x03,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x3E,0x03,0xFF,0xFE,0x78,0x1F,0xFF,0xFC,0xE0,0xFF,0xFF,0xF9,0x87,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'S'
|
||||||
|
0x40,0x00,0x00,0x0E,0x00,0x00,0x00,0xF0,0x00,0x00,0x0F,0x80,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0xEF,0xFF,0xFF,0x8F,0x7F,0xFF,0xF0,0xFB,0xFF,0xFE,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFB,0xFF,0xFE,0x0F,0x7F,0xFF,0xF0,0xEF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xE1,0xFF,0xFF,0xFC, // 'T'
|
||||||
|
0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xEF,0x80,0x00,0x07,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0xBF,0xFF,0xE7,0xBD,0xFF,0xFF,0xCE,0xEF,0xFF,0xFF,0x99,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // 'U'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0x00,0x00,0x1E,0xF0,0x00,0x00,0x3B,0x80,0x00,0x00,0x6E,0x00,0x00,0x00,0x3C,0x00,0x00,0x0E,0xF8,0x00,0x00,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'V'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0xFF,0xFF,0x9E,0xF7,0xFF,0xFF,0x3B,0xBF,0xFF,0xFE,0x6E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'W'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0xFF,0xFF,0x9E,0xF7,0xFF,0xFF,0x3B,0xBF,0xFF,0xFE,0x6E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xF8,0x00,0x00,0x7B,0xC0,0x00,0x00,0xEE,0x00,0x00,0x01,0x90,0x00,0x00,0x00, // 'X'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0xFF,0xFF,0x9E,0xF7,0xFF,0xFF,0x3B,0xBF,0xFF,0xFE,0x60,0xFF,0xFF,0xF8,0x01,0xFF,0xFF,0xCE,0x03,0xFF,0xFE,0x78,0x00,0x00,0x03,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x3E,0x03,0xFF,0xFE,0x78,0x1F,0xFF,0xFC,0xE0,0xFF,0xFF,0xF9,0x87,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'Y'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFC,0x03,0xFF,0xFF,0xE6,0x07,0xFF,0xFF,0x38,0x0F,0xFF,0xF9,0xE0,0x00,0x00,0x0F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0xF8,0x00,0x00,0x01,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x06,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0x0F,0x80,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0x3D,0xFF,0xFF,0xC0,0xEF,0xFF,0xFF,0x81,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // 'Z'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '['
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '\'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // ']'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '^'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '_'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '`'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0xEF,0xBF,0xFF,0xE7,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0x80,0x00,0x07,0xBC,0x00,0x00,0x0E,0xE0,0x00,0x00,0x19,0x00,0x00,0x00,0x00, // 'a'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3E,0xFF,0xFF,0x80,0xF7,0xFF,0xFF,0x03,0xBF,0xFF,0xFE,0x0E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'b'
|
||||||
|
0x03,0xFF,0xFE,0x00,0x7F,0xFF,0xF0,0x0F,0xFF,0xFF,0x8E,0xFF,0xFF,0xF8,0xF7,0xFF,0xFF,0x0F,0xBF,0xFF,0xE0,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0x5F,0xFF,0xFF,0xC3,0xFF,0xFF,0xFE,0x1F,0xFF,0xFF,0xC0, // 'c'
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x0F,0x80,0xFF,0xFF,0x9E,0x07,0xFF,0xFF,0x38,0x3F,0xFF,0xFE,0x6E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'd'
|
||||||
|
0x1F,0xFF,0xFF,0xC3,0xFF,0xFF,0xFE,0x5F,0xFF,0xFF,0xCE,0xFF,0xFF,0xF8,0xF7,0xFF,0xFF,0x0F,0xBF,0xFF,0xE0,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0xEF,0xFF,0xFF,0x8F,0x7F,0xFF,0xF0,0xFB,0xFF,0xFE,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFB,0xFF,0xFE,0x0F,0x7F,0xFF,0xF0,0xEF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xE1,0xFF,0xFF,0xFC, // 'e'
|
||||||
|
0x1F,0xFF,0xFF,0xC3,0xFF,0xFF,0xFE,0x5F,0xFF,0xFF,0xCE,0xFF,0xFF,0xF8,0xF7,0xFF,0xFF,0x0F,0xBF,0xFF,0xE0,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0xEF,0xFF,0xFF,0x8F,0x7F,0xFF,0xF0,0xFB,0xFF,0xFE,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xF8,0x00,0x00,0x0F,0x00,0x00,0x00,0xE0,0x00,0x00,0x04,0x00,0x00,0x00, // 'f'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x03,0xEF,0xFF,0xF8,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xE0,0x00,0x00,0x0F,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xEF,0x80,0x00,0x07,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0xBF,0xFF,0xE7,0xBD,0xFF,0xFF,0xCE,0xEF,0xFF,0xFF,0x99,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // 'g'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3E,0xFF,0xFF,0x80,0xF7,0xFF,0xFF,0x03,0xBF,0xFF,0xFE,0x0E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xF8,0x00,0x00,0x7B,0xC0,0x00,0x00,0xEE,0x00,0x00,0x01,0x90,0x00,0x00,0x00, // 'h'
|
||||||
|
0x1C,0x79,0xF7,0xEF,0xDF,0xBF,0x7E,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7E,0x7C,0x78,0x70,0x60,0x00, // 'i'
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x03,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x0F,0x80,0x00,0x00,0x1E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x6E,0x00,0x00,0x00,0x3C,0x00,0x00,0x0E,0xF8,0x00,0x00,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'j'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x03,0xEF,0xFF,0xF8,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xEF,0xFF,0xF8,0x0F,0x7F,0xFF,0xF0,0x3B,0xFF,0xFF,0xE0,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0xEF,0xBF,0xFF,0xE7,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0x80,0x00,0x07,0xBC,0x00,0x00,0x0E,0xE0,0x00,0x00,0x19,0x00,0x00,0x00,0x00, // 'k'
|
||||||
|
0x40,0x00,0x00,0x0E,0x00,0x00,0x00,0xF0,0x00,0x00,0x0F,0x80,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0x80,0x00,0x00,0xF0,0x00,0x00,0x0E,0x00,0x00,0x00,0xE0,0x00,0x00,0x0F,0x00,0x00,0x00,0xF8,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFB,0xFF,0xFE,0x0F,0x7F,0xFF,0xF0,0xEF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xE1,0xFF,0xFF,0xFC, // 'l'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xE0,0x00,0x01,0xEF,0x00,0x00,0x03,0xB8,0x00,0x00,0x06,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xEF,0x80,0x00,0x07,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0x80,0x00,0x07,0xBC,0x00,0x00,0x0E,0xE0,0x00,0x00,0x19,0x00,0x00,0x00,0x00, // 'm'
|
||||||
|
0x03,0xFF,0xFE,0x00,0x1F,0xFF,0xFC,0x00,0xFF,0xFF,0xF8,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xE0,0x00,0x01,0xEF,0x00,0x00,0x03,0xB8,0x00,0x00,0x06,0x40,0x00,0x00,0x00, // 'n'
|
||||||
|
0x03,0xFF,0xFE,0x00,0x1F,0xFF,0xFC,0x00,0xFF,0xFF,0xF8,0x3B,0xFF,0xFF,0xE0,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0x5F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFC,0x00, // 'o'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0xEF,0xFF,0xFF,0x83,0xDF,0xFF,0xFC,0x0F,0xBF,0xFF,0xE0,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0x80,0x00,0x00,0x3C,0x00,0x00,0x00,0xE0,0x00,0x00,0x01,0x00,0x00,0x00,0x00, // 'p'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3B,0xFF,0xFF,0xE6,0xF7,0xFF,0xFF,0x3B,0xEF,0xFF,0xF9,0xEF,0xC0,0x00,0x0F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x00,0xFB,0xEF,0xFF,0xF9,0xEF,0x7F,0xFF,0xF3,0xBB,0xFF,0xFF,0xE6,0x0F,0xFF,0xFF,0x80,0x1F,0xFF,0xFC,0xE0,0x3F,0xFF,0xE7,0x80,0x00,0x00,0x3E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x03,0xE0,0x00,0x00,0x07,0x80,0x00,0x00,0x0E,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00, // 'q'
|
||||||
|
0x03,0xFF,0xFE,0x00,0xFF,0xFF,0xE0,0x3F,0xFF,0xFE,0x77,0xFF,0xFF,0xCF,0x7F,0xFF,0xF1,0xF7,0xFF,0xFC,0x3F,0x00,0x00,0x07,0xE0,0x00,0x00,0xFC,0x00,0x00,0x1F,0x80,0x00,0x03,0xF0,0x00,0x00,0x7E,0x00,0x00,0x0F,0xC0,0x00,0x01,0xF8,0x00,0x00,0x3F,0x00,0x00,0x07,0xE0,0x00,0x00,0xFC,0x00,0x00,0x1F,0x80,0x00,0x03,0xF0,0x00,0x00,0x7E,0x00,0x00,0x0F,0xC0,0x00,0x01,0xF0,0x00,0x00,0x3C,0x00,0x00,0x07,0x00,0x00,0x00,0x40,0x00,0x00,0x00, // 'r'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3E,0xFF,0xFF,0x80,0xF7,0xFF,0xFF,0x03,0xBF,0xFF,0xFE,0x00,0xFF,0xFF,0xF8,0x01,0xFF,0xFF,0xCE,0x03,0xFF,0xFE,0x78,0x00,0x00,0x03,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x3E,0x03,0xFF,0xFE,0x78,0x1F,0xFF,0xFC,0xE0,0xFF,0xFF,0xF9,0x87,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 's'
|
||||||
|
0x40,0x00,0x00,0x0E,0x00,0x00,0x00,0xF0,0x00,0x00,0x0F,0x80,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0xF7,0xFF,0xFF,0x0E,0xFF,0xFF,0xF8,0xEF,0xFF,0xFF,0x8F,0x7F,0xFF,0xF0,0xFB,0xFF,0xFE,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFC,0x00,0x00,0x0F,0xC0,0x00,0x00,0xFB,0xFF,0xFE,0x0F,0x7F,0xFF,0xF0,0xEF,0xFF,0xFF,0x85,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xE1,0xFF,0xFF,0xFC, // 't'
|
||||||
|
0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xEF,0x80,0x00,0x07,0xBF,0x00,0x00,0x3E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x03,0xEF,0xBF,0xFF,0xE7,0xBD,0xFF,0xFF,0xCE,0xEF,0xFF,0xFF,0x99,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // 'u'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0x00,0x00,0x1E,0xF0,0x00,0x00,0x3B,0x80,0x00,0x00,0x6E,0x00,0x00,0x00,0x3C,0x00,0x00,0x0E,0xF8,0x00,0x00,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'v'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0xFF,0xFF,0x9E,0xF7,0xFF,0xFF,0x3B,0xBF,0xFF,0xFE,0x6E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xFB,0xFF,0xFE,0x7B,0xDF,0xFF,0xFC,0xEE,0xFF,0xFF,0xF9,0x97,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'w'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0xFF,0xFF,0x9E,0xF7,0xFF,0xFF,0x3B,0xBF,0xFF,0xFE,0x6E,0xFF,0xFF,0xF8,0x3D,0xFF,0xFF,0xCE,0xFB,0xFF,0xFE,0x7B,0xF0,0x00,0x03,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x3E,0xF8,0x00,0x00,0x7B,0xC0,0x00,0x00,0xEE,0x00,0x00,0x01,0x90,0x00,0x00,0x00, // 'x'
|
||||||
|
0x40,0x00,0x00,0x03,0x80,0x00,0x00,0x6F,0x00,0x00,0x03,0xBE,0x00,0x00,0x1E,0xFC,0x00,0x00,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x1F,0xBF,0x00,0x00,0x7E,0xFC,0x00,0x01,0xFB,0xF0,0x00,0x07,0xEF,0xC0,0x00,0x0F,0xBE,0xFF,0xFF,0x9E,0xF7,0xFF,0xFF,0x3B,0xBF,0xFF,0xFE,0x60,0xFF,0xFF,0xF8,0x01,0xFF,0xFF,0xCE,0x03,0xFF,0xFE,0x78,0x00,0x00,0x03,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x3E,0x03,0xFF,0xFE,0x78,0x1F,0xFF,0xFC,0xE0,0xFF,0xFF,0xF9,0x87,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0x00, // 'y'
|
||||||
|
0x1F,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFC,0x03,0xFF,0xFF,0xE6,0x07,0xFF,0xFF,0x38,0x0F,0xFF,0xF9,0xE0,0x00,0x00,0x0F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x00,0x00,0xF8,0x00,0x00,0x01,0xE0,0x00,0x00,0x03,0x80,0x00,0x00,0x06,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0x0F,0x80,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00,0x00,0x00,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x0F,0xBF,0xFF,0xE0,0x3D,0xFF,0xFF,0xC0,0xEF,0xFF,0xFF,0x81,0x7F,0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xF0, // 'z'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '{'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE, // '|'
|
||||||
|
0xFF,0xFB,0xFF,0xEC,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6C,0x01,0xB0,0x06,0xC0,0x1B,0x00,0x6F,0xFF,0xBF,0xFE // '}'
|
||||||
|
};
|
||||||
|
const GFXglyph DSEG7_Classic_Bold_48Glyphs[] PROGMEM = {
|
||||||
|
// bitmapOffset, width, height, xAdvance, xOffset, yOffset
|
||||||
|
{ 0, 1, 1, 11, 0, 0 }, // ' '
|
||||||
|
{ 1, 1, 1, 40, 0, 0 }, // '!'
|
||||||
|
{ 2, 14, 32, 18, 2, -32 }, // '"'
|
||||||
|
{ 58, 14, 32, 18, 2, -32 }, // '#'
|
||||||
|
{ 114, 14, 32, 18, 2, -32 }, // '$'
|
||||||
|
{ 170, 14, 32, 18, 2, -32 }, // '%'
|
||||||
|
{ 226, 14, 32, 18, 2, -32 }, // '&'
|
||||||
|
{ 282, 14, 32, 18, 2, -32 }, // '''
|
||||||
|
{ 338, 14, 32, 18, 2, -32 }, // '('
|
||||||
|
{ 394, 14, 32, 18, 2, -32 }, // ')'
|
||||||
|
{ 450, 14, 32, 18, 2, -32 }, // '*'
|
||||||
|
{ 506, 14, 32, 18, 2, -32 }, // '+'
|
||||||
|
{ 562, 14, 32, 18, 2, -32 }, // ','
|
||||||
|
{ 618, 24, 6, 40, 8, -27 }, // '-'
|
||||||
|
{ 636, 7, 6, 1, -3, -6 }, // '.'
|
||||||
|
{ 642, 14, 32, 18, 2, -32 }, // '/'
|
||||||
|
{ 698, 30, 48, 40, 5, -48 }, // '0'
|
||||||
|
{ 878, 7, 44, 40, 28, -46 }, // '1'
|
||||||
|
{ 917, 30, 48, 40, 5, -48 }, // '2'
|
||||||
|
{ 1097, 28, 48, 40, 7, -48 }, // '3'
|
||||||
|
{ 1265, 30, 44, 40, 5, -46 }, // '4'
|
||||||
|
{ 1430, 30, 48, 40, 5, -48 }, // '5'
|
||||||
|
{ 1610, 30, 48, 40, 5, -48 }, // '6'
|
||||||
|
{ 1790, 30, 46, 40, 5, -48 }, // '7'
|
||||||
|
{ 1963, 30, 48, 40, 5, -48 }, // '8'
|
||||||
|
{ 2143, 30, 48, 40, 5, -48 }, // '9'
|
||||||
|
{ 2323, 7, 25, 11, 2, -36 }, // ':'
|
||||||
|
{ 2345, 14, 32, 18, 2, -32 }, // ';'
|
||||||
|
{ 2401, 14, 32, 18, 2, -32 }, // '<'
|
||||||
|
{ 2457, 14, 32, 18, 2, -32 }, // '='
|
||||||
|
{ 2513, 14, 32, 18, 2, -32 }, // '>'
|
||||||
|
{ 2569, 14, 32, 18, 2, -32 }, // '?'
|
||||||
|
{ 2625, 14, 32, 18, 2, -32 }, // '@'
|
||||||
|
{ 2681, 30, 46, 40, 5, -48 }, // 'A'
|
||||||
|
{ 2854, 30, 46, 40, 5, -46 }, // 'B'
|
||||||
|
{ 3027, 28, 27, 40, 5, -27 }, // 'C'
|
||||||
|
{ 3122, 30, 46, 40, 5, -46 }, // 'D'
|
||||||
|
{ 3295, 28, 48, 40, 5, -48 }, // 'E'
|
||||||
|
{ 3463, 28, 46, 40, 5, -48 }, // 'F'
|
||||||
|
{ 3624, 30, 48, 40, 5, -48 }, // 'G'
|
||||||
|
{ 3804, 30, 44, 40, 5, -46 }, // 'H'
|
||||||
|
{ 3969, 7, 21, 40, 28, -23 }, // 'I'
|
||||||
|
{ 3988, 30, 46, 40, 5, -46 }, // 'J'
|
||||||
|
{ 4161, 30, 46, 40, 5, -48 }, // 'K'
|
||||||
|
{ 4334, 28, 46, 40, 5, -46 }, // 'L'
|
||||||
|
{ 4495, 30, 46, 40, 5, -48 }, // 'M'
|
||||||
|
{ 4668, 30, 25, 40, 5, -27 }, // 'N'
|
||||||
|
{ 4762, 30, 27, 40, 5, -27 }, // 'O'
|
||||||
|
{ 4864, 30, 46, 40, 5, -48 }, // 'P'
|
||||||
|
{ 5037, 30, 46, 40, 5, -48 }, // 'Q'
|
||||||
|
{ 5210, 27, 25, 40, 5, -27 }, // 'R'
|
||||||
|
{ 5295, 30, 46, 40, 5, -46 }, // 'S'
|
||||||
|
{ 5468, 28, 46, 40, 5, -46 }, // 'T'
|
||||||
|
{ 5629, 30, 24, 40, 5, -24 }, // 'U'
|
||||||
|
{ 5719, 30, 46, 40, 5, -46 }, // 'V'
|
||||||
|
{ 5892, 30, 46, 40, 5, -46 }, // 'W'
|
||||||
|
{ 6065, 30, 44, 40, 5, -46 }, // 'X'
|
||||||
|
{ 6230, 30, 46, 40, 5, -46 }, // 'Y'
|
||||||
|
{ 6403, 30, 48, 40, 5, -48 }, // 'Z'
|
||||||
|
{ 6583, 14, 32, 18, 2, -32 }, // '['
|
||||||
|
{ 6639, 14, 32, 18, 2, -32 }, // '\'
|
||||||
|
{ 6695, 14, 32, 18, 2, -32 }, // ']'
|
||||||
|
{ 6751, 14, 32, 18, 2, -32 }, // '^'
|
||||||
|
{ 6807, 14, 32, 18, 2, -32 }, // '_'
|
||||||
|
{ 6863, 14, 32, 18, 2, -32 }, // '`'
|
||||||
|
{ 6919, 30, 46, 40, 5, -48 }, // 'a'
|
||||||
|
{ 7092, 30, 46, 40, 5, -46 }, // 'b'
|
||||||
|
{ 7265, 28, 27, 40, 5, -27 }, // 'c'
|
||||||
|
{ 7360, 30, 46, 40, 5, -46 }, // 'd'
|
||||||
|
{ 7533, 28, 48, 40, 5, -48 }, // 'e'
|
||||||
|
{ 7701, 28, 46, 40, 5, -48 }, // 'f'
|
||||||
|
{ 7862, 30, 48, 40, 5, -48 }, // 'g'
|
||||||
|
{ 8042, 30, 44, 40, 5, -46 }, // 'h'
|
||||||
|
{ 8207, 7, 21, 40, 28, -23 }, // 'i'
|
||||||
|
{ 8226, 30, 46, 40, 5, -46 }, // 'j'
|
||||||
|
{ 8399, 30, 46, 40, 5, -48 }, // 'k'
|
||||||
|
{ 8572, 28, 46, 40, 5, -46 }, // 'l'
|
||||||
|
{ 8733, 30, 46, 40, 5, -48 }, // 'm'
|
||||||
|
{ 8906, 30, 25, 40, 5, -27 }, // 'n'
|
||||||
|
{ 9000, 30, 27, 40, 5, -27 }, // 'o'
|
||||||
|
{ 9102, 30, 46, 40, 5, -48 }, // 'p'
|
||||||
|
{ 9275, 30, 46, 40, 5, -48 }, // 'q'
|
||||||
|
{ 9448, 27, 25, 40, 5, -27 }, // 'r'
|
||||||
|
{ 9533, 30, 46, 40, 5, -46 }, // 's'
|
||||||
|
{ 9706, 28, 46, 40, 5, -46 }, // 't'
|
||||||
|
{ 9867, 30, 24, 40, 5, -24 }, // 'u'
|
||||||
|
{ 9957, 30, 46, 40, 5, -46 }, // 'v'
|
||||||
|
{ 10130, 30, 46, 40, 5, -46 }, // 'w'
|
||||||
|
{ 10303, 30, 44, 40, 5, -46 }, // 'x'
|
||||||
|
{ 10468, 30, 46, 40, 5, -46 }, // 'y'
|
||||||
|
{ 10641, 30, 48, 40, 5, -48 }, // 'z'
|
||||||
|
{ 10821, 14, 32, 18, 2, -32 }, // '{'
|
||||||
|
{ 10877, 14, 32, 18, 2, -32 }, // '|'
|
||||||
|
{ 10933, 14, 32, 18, 2, -32 } // '}'
|
||||||
|
};
|
||||||
|
const GFXfont DSEG7_Classic_Bold_48 PROGMEM = {
|
||||||
|
(uint8_t *)DSEG7_Classic_Bold_48Bitmaps,(GFXglyph *)DSEG7_Classic_Bold_48Glyphs,0x20, 0x7E, 53};
|
|
@ -0,0 +1,875 @@
|
||||||
|
// class GxGDEH0154D67 : Display class for GDEH0154D67 e-Paper from Dalian Good Display Co., Ltd.: www.good-display.com
|
||||||
|
//
|
||||||
|
// Author : SQFMI
|
||||||
|
//
|
||||||
|
// Version : see library.properties
|
||||||
|
//
|
||||||
|
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||||
|
//
|
||||||
|
// Library: https://github.com/sqfmi/GxEPD
|
||||||
|
|
||||||
|
#include "GxGDEH0154D67.h"
|
||||||
|
|
||||||
|
//#define DISABLE_DIAGNOSTIC_OUTPUT
|
||||||
|
|
||||||
|
#if defined(ESP8266) || defined(ESP32)
|
||||||
|
#include <pgmspace.h>
|
||||||
|
#else
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Partial Update Delay, may have an influence on degradation
|
||||||
|
#define GxGDEH0154D67_PU_DELAY 300
|
||||||
|
|
||||||
|
/*const uint8_t GxGDEH0154D67::LUTDefault_full[] =
|
||||||
|
{
|
||||||
|
0x32, // command
|
||||||
|
0x50, 0xAA, 0x55, 0xAA, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint8_t GxGDEH0154D67::LUTDefault_part[] =
|
||||||
|
{
|
||||||
|
0x32, // command
|
||||||
|
0x10, 0x18, 0x18, 0x08, 0x18, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x44, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint8_t GxGDEH0154D67::GDOControl[] = {0x01, (GxGDEH0154D67_Y_PIXELS - 1) % 256, (GxGDEH0154D67_Y_PIXELS - 1) / 256, 0x00}; //for 1.54inch
|
||||||
|
const uint8_t GxGDEH0154D67::softstart[] = {0x0c, 0xd7, 0xd6, 0x9d};
|
||||||
|
const uint8_t GxGDEH0154D67::VCOMVol[] = {0x2c, 0x9b}; // VCOM 7c
|
||||||
|
const uint8_t GxGDEH0154D67::DummyLine[] = {0x3a, 0x1a}; // 4 dummy line per gate
|
||||||
|
const uint8_t GxGDEH0154D67::Gatetime[] = {0x3b, 0x08}; // 2us per line*/
|
||||||
|
|
||||||
|
GxGDEH0154D67::GxGDEH0154D67(GxIO& io, int8_t rst, int8_t busy) :
|
||||||
|
GxEPD(GxGDEH0154D67_WIDTH, GxGDEH0154D67_HEIGHT), IO(io),
|
||||||
|
_current_page(-1), _using_partial_mode(false), _diag_enabled(false),
|
||||||
|
_rst(rst), _busy(busy)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPixel(int16_t x, int16_t y, uint16_t color)
|
||||||
|
{
|
||||||
|
if ((x < 0) || (x >= width()) || (y < 0) || (y >= height())) return;
|
||||||
|
|
||||||
|
// check rotation, move pixel around if necessary
|
||||||
|
switch (getRotation())
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
swap(x, y);
|
||||||
|
x = GxGDEH0154D67_WIDTH - x - 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
x = GxGDEH0154D67_WIDTH - x - 1;
|
||||||
|
y = GxGDEH0154D67_HEIGHT - y - 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
swap(x, y);
|
||||||
|
y = GxGDEH0154D67_HEIGHT - y - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
uint16_t i = x / 8 + y * GxGDEH0154D67_WIDTH / 8;
|
||||||
|
if (_current_page < 1)
|
||||||
|
{
|
||||||
|
if (i >= sizeof(_buffer)) return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
y -= _current_page * GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
if ((y < 0) || (y >= GxGDEH0154D67_PAGE_HEIGHT)) return;
|
||||||
|
i = x / 8 + y * GxGDEH0154D67_WIDTH / 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!color)
|
||||||
|
_buffer[i] = (_buffer[i] | (1 << (7 - x % 8)));
|
||||||
|
else
|
||||||
|
_buffer[i] = (_buffer[i] & (0xFF ^ (1 << (7 - x % 8))));
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::init(uint32_t serial_diag_bitrate)
|
||||||
|
{
|
||||||
|
if (serial_diag_bitrate > 0)
|
||||||
|
{
|
||||||
|
Serial.begin(serial_diag_bitrate);
|
||||||
|
_diag_enabled = true;
|
||||||
|
}
|
||||||
|
IO.init();
|
||||||
|
IO.setFrequency(4000000); // 4MHz
|
||||||
|
if (_rst >= 0)
|
||||||
|
{
|
||||||
|
digitalWrite(_rst, HIGH);
|
||||||
|
pinMode(_rst, OUTPUT);
|
||||||
|
}
|
||||||
|
if (_busy >= 0) pinMode(_busy, INPUT);
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
_current_page = -1;
|
||||||
|
_using_partial_mode = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::fillScreen(uint16_t color)
|
||||||
|
{
|
||||||
|
uint8_t data = (color == GxEPD_BLACK) ? 0xFF : 0x00;
|
||||||
|
for (uint16_t x = 0; x < sizeof(_buffer); x++)
|
||||||
|
{
|
||||||
|
_buffer[x] = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::update(void)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_using_partial_mode = false;
|
||||||
|
_Init_Full(0x03);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint16_t y = 0; y < GxGDEH0154D67_HEIGHT; y++)
|
||||||
|
{
|
||||||
|
for (uint16_t x = 0; x < GxGDEH0154D67_WIDTH / 8; x++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y * (GxGDEH0154D67_WIDTH / 8) + x;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawBitmap(const uint8_t *bitmap, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color, int16_t mode)
|
||||||
|
{
|
||||||
|
if (mode & bm_default) mode |= bm_flip_x | bm_invert;
|
||||||
|
drawBitmapBM(bitmap, x, y, w, h, color, mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawBitmap(const uint8_t *bitmap, uint32_t size, int16_t mode)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
// example bitmaps are made for y-decrement, x-increment, for origin on opposite corner
|
||||||
|
// bm_flip_x for normal display (bm_flip_y would be rotated)
|
||||||
|
if (mode & bm_default) mode |= bm_flip_x;
|
||||||
|
uint8_t ram_entry_mode = 0x03; // y-increment, x-increment for normal mode
|
||||||
|
if ((mode & bm_flip_y) && (mode & bm_flip_x)) ram_entry_mode = 0x00; // y-decrement, x-decrement
|
||||||
|
else if (mode & bm_flip_y) ram_entry_mode = 0x01; // y-decrement, x-increment
|
||||||
|
else if (mode & bm_flip_x) ram_entry_mode = 0x02; // y-increment, x-decrement
|
||||||
|
if (mode & bm_partial_update)
|
||||||
|
{
|
||||||
|
_using_partial_mode = true; // remember
|
||||||
|
_Init_Part(ram_entry_mode);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint32_t i = 0; i < GxGDEH0154D67_BUFFER_SIZE; i++)
|
||||||
|
{
|
||||||
|
uint8_t data = 0xFF; // white is 0xFF on device
|
||||||
|
if (i < size)
|
||||||
|
{
|
||||||
|
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||||
|
data = pgm_read_byte(&bitmap[i]);
|
||||||
|
#else
|
||||||
|
data = bitmap[i];
|
||||||
|
#endif
|
||||||
|
if (mode & bm_invert) data = ~data;
|
||||||
|
}
|
||||||
|
_writeData(data);
|
||||||
|
}
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint32_t i = 0; i < GxGDEH0154D67_BUFFER_SIZE; i++)
|
||||||
|
{
|
||||||
|
uint8_t data = 0xFF; // white is 0xFF on device
|
||||||
|
if (i < size)
|
||||||
|
{
|
||||||
|
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||||
|
data = pgm_read_byte(&bitmap[i]);
|
||||||
|
#else
|
||||||
|
data = bitmap[i];
|
||||||
|
#endif
|
||||||
|
if (mode & bm_invert) data = ~data;
|
||||||
|
}
|
||||||
|
_writeData(data);
|
||||||
|
}
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_using_partial_mode = false; // remember
|
||||||
|
_Init_Full(ram_entry_mode);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint32_t i = 0; i < GxGDEH0154D67_BUFFER_SIZE; i++)
|
||||||
|
{
|
||||||
|
uint8_t data = 0xFF; // white is 0xFF on device
|
||||||
|
if (i < size)
|
||||||
|
{
|
||||||
|
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||||
|
data = pgm_read_byte(&bitmap[i]);
|
||||||
|
#else
|
||||||
|
data = bitmap[i];
|
||||||
|
#endif
|
||||||
|
if (mode & bm_invert) data = ~data;
|
||||||
|
}
|
||||||
|
_writeData(data);
|
||||||
|
}
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::eraseDisplay(bool using_partial_update)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
if (using_partial_update)
|
||||||
|
{
|
||||||
|
_using_partial_mode = true; // remember
|
||||||
|
_Init_Part(0x01);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint32_t i = 0; i < GxGDEH0154D67_BUFFER_SIZE; i++)
|
||||||
|
{
|
||||||
|
_writeData(0xFF);
|
||||||
|
}
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint32_t i = 0; i < GxGDEH0154D67_BUFFER_SIZE; i++)
|
||||||
|
{
|
||||||
|
_writeData(0xFF);
|
||||||
|
}
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_using_partial_mode = false; // remember
|
||||||
|
_Init_Full(0x01);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint32_t i = 0; i < GxGDEH0154D67_BUFFER_SIZE; i++)
|
||||||
|
{
|
||||||
|
_writeData(0xFF);
|
||||||
|
}
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::updateWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h, bool using_rotation)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
if (using_rotation) _rotate(x, y, w, h);
|
||||||
|
if (x >= GxGDEH0154D67_WIDTH) return;
|
||||||
|
if (y >= GxGDEH0154D67_HEIGHT) return;
|
||||||
|
uint16_t xe = gx_uint16_min(GxGDEH0154D67_WIDTH, x + w) - 1;
|
||||||
|
uint16_t ye = gx_uint16_min(GxGDEH0154D67_HEIGHT, y + h) - 1;
|
||||||
|
uint16_t xs_d8 = x / 8;
|
||||||
|
uint16_t xe_d8 = xe / 8;
|
||||||
|
_Init_Part(0x03);
|
||||||
|
_SetRamArea(xs_d8, xe_d8, y % 256, y / 256, ye % 256, ye / 256); // X-source area,Y-gate area
|
||||||
|
_SetRamPointer(xs_d8, y % 256, y / 256); // set ram
|
||||||
|
_waitWhileBusy(0, 100); // needed ?
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (int16_t y1 = y; y1 <= ye; y1++)
|
||||||
|
{
|
||||||
|
for (int16_t x1 = xs_d8; x1 <= xe_d8; x1++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y1 * (GxGDEH0154D67_WIDTH / 8) + x1;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
_SetRamArea(xs_d8, xe_d8, y % 256, y / 256, ye % 256, ye / 256); // X-source area,Y-gate area
|
||||||
|
_SetRamPointer(xs_d8, y % 256, y / 256); // set ram
|
||||||
|
_waitWhileBusy(0, 100); // needed ?
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (int16_t y1 = y; y1 <= ye; y1++)
|
||||||
|
{
|
||||||
|
for (int16_t x1 = xs_d8; x1 <= xe_d8; x1++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y1 * (GxGDEH0154D67_WIDTH / 8) + x1;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_writeToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h)
|
||||||
|
{
|
||||||
|
//Serial.printf("_writeToWindow(%d, %d, %d, %d, %d, %d)\n", xs, ys, xd, yd, w, h);
|
||||||
|
// the screen limits are the hard limits
|
||||||
|
if (xs >= GxGDEH0154D67_WIDTH) return;
|
||||||
|
if (ys >= GxGDEH0154D67_HEIGHT) return;
|
||||||
|
if (xd >= GxGDEH0154D67_WIDTH) return;
|
||||||
|
if (yd >= GxGDEH0154D67_HEIGHT) return;
|
||||||
|
w = gx_uint16_min(w, GxGDEH0154D67_WIDTH - xs);
|
||||||
|
w = gx_uint16_min(w, GxGDEH0154D67_WIDTH - xd);
|
||||||
|
h = gx_uint16_min(h, GxGDEH0154D67_HEIGHT - ys);
|
||||||
|
h = gx_uint16_min(h, GxGDEH0154D67_HEIGHT - yd);
|
||||||
|
uint16_t xds_d8 = xd / 8;
|
||||||
|
uint16_t xde_d8 = (xd + w - 1) / 8;
|
||||||
|
uint16_t yde = yd + h - 1;
|
||||||
|
// soft limits, must send as many bytes as set by _SetRamArea
|
||||||
|
uint16_t xse_d8 = xs / 8 + xde_d8 - xds_d8;
|
||||||
|
uint16_t yse = ys + h - 1;
|
||||||
|
_SetRamArea(xds_d8, xde_d8, yd % 256, yd / 256, yde % 256, yde / 256); // X-source area,Y-gate area
|
||||||
|
_SetRamPointer(xds_d8, yd % 256, yd / 256); // set ram
|
||||||
|
_waitWhileBusy(0, 100); // needed ?
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (int16_t y1 = ys; y1 <= yse; y1++)
|
||||||
|
{
|
||||||
|
for (int16_t x1 = xs / 8; x1 <= xse_d8; x1++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y1 * (GxGDEH0154D67_WIDTH / 8) + x1;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::updateToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h, bool using_rotation)
|
||||||
|
{
|
||||||
|
if (using_rotation)
|
||||||
|
{
|
||||||
|
switch (getRotation())
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
swap(xs, ys);
|
||||||
|
swap(xd, yd);
|
||||||
|
swap(w, h);
|
||||||
|
xs = GxGDEH0154D67_WIDTH - xs - w - 1;
|
||||||
|
xd = GxGDEH0154D67_WIDTH - xd - w - 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
xs = GxGDEH0154D67_WIDTH - xs - w - 1;
|
||||||
|
ys = GxGDEH0154D67_HEIGHT - ys - h - 1;
|
||||||
|
xd = GxGDEH0154D67_WIDTH - xd - w - 1;
|
||||||
|
yd = GxGDEH0154D67_HEIGHT - yd - h - 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
swap(xs, ys);
|
||||||
|
swap(xd, yd);
|
||||||
|
swap(w, h);
|
||||||
|
ys = GxGDEH0154D67_HEIGHT - ys - h - 1;
|
||||||
|
yd = GxGDEH0154D67_HEIGHT - yd - h - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Init_Part(0x03);
|
||||||
|
_writeToWindow(xs, ys, xd, yd, w, h);
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
_writeToWindow(xs, ys, xd, yd, w, h);
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::powerDown()
|
||||||
|
{
|
||||||
|
_using_partial_mode = false;
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::deepSleep()
|
||||||
|
{
|
||||||
|
_writeCommand(0x10); //enter deep sleep
|
||||||
|
_writeData(0x01);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_writeCommand(uint8_t command)
|
||||||
|
{
|
||||||
|
if ((_busy >= 0) && digitalRead(_busy))
|
||||||
|
{
|
||||||
|
String str = String("command 0x") + String(command, HEX);
|
||||||
|
_waitWhileBusy(str.c_str(), 100); // needed?
|
||||||
|
}
|
||||||
|
IO.writeCommandTransaction(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_writeData(uint8_t data)
|
||||||
|
{
|
||||||
|
IO.writeDataTransaction(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_writeCommandData(const uint8_t* pCommandData, uint8_t datalen)
|
||||||
|
{
|
||||||
|
if ((_busy >= 0) && digitalRead(_busy))
|
||||||
|
{
|
||||||
|
String str = String("command 0x") + String(pCommandData[0], HEX);
|
||||||
|
_waitWhileBusy(str.c_str(), 100); // needed?
|
||||||
|
}
|
||||||
|
IO.startTransaction();
|
||||||
|
IO.writeCommand(*pCommandData++);
|
||||||
|
for (uint8_t i = 0; i < datalen - 1; i++) // sub the command
|
||||||
|
{
|
||||||
|
IO.writeData(*pCommandData++);
|
||||||
|
}
|
||||||
|
IO.endTransaction();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_waitWhileBusy(const char* comment, uint16_t busy_time)
|
||||||
|
{
|
||||||
|
if (_busy >= 0)
|
||||||
|
{
|
||||||
|
unsigned long start = micros();
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
if (!digitalRead(_busy)) break;
|
||||||
|
delay(1);
|
||||||
|
if (micros() - start > 10000000)
|
||||||
|
{
|
||||||
|
if (_diag_enabled) Serial.println("Busy Timeout!");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (comment)
|
||||||
|
{
|
||||||
|
#if !defined(DISABLE_DIAGNOSTIC_OUTPUT)
|
||||||
|
if (_diag_enabled)
|
||||||
|
{
|
||||||
|
unsigned long elapsed = micros() - start;
|
||||||
|
Serial.print(comment);
|
||||||
|
Serial.print(" : ");
|
||||||
|
Serial.println(elapsed);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
(void) start;
|
||||||
|
}
|
||||||
|
else delay(busy_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_setRamDataEntryMode(uint8_t em)
|
||||||
|
{
|
||||||
|
const uint16_t xPixelsPar = GxGDEH0154D67_X_PIXELS - 1;
|
||||||
|
const uint16_t yPixelsPar = GxGDEH0154D67_Y_PIXELS - 1;
|
||||||
|
em = gx_uint16_min(em, 0x03);
|
||||||
|
_writeCommand(0x11);
|
||||||
|
_writeData(em);
|
||||||
|
switch (em)
|
||||||
|
{
|
||||||
|
case 0x00: // x decrease, y decrease
|
||||||
|
_SetRamArea(xPixelsPar / 8, 0x00, yPixelsPar % 256, yPixelsPar / 256, 0x00, 0x00); // X-source area,Y-gate area
|
||||||
|
_SetRamPointer(xPixelsPar / 8, yPixelsPar % 256, yPixelsPar / 256); // set ram
|
||||||
|
break;
|
||||||
|
case 0x01: // x increase, y decrease : as in demo code
|
||||||
|
_SetRamArea(0x00, xPixelsPar / 8, yPixelsPar % 256, yPixelsPar / 256, 0x00, 0x00); // X-source area,Y-gate area
|
||||||
|
_SetRamPointer(0x00, yPixelsPar % 256, yPixelsPar / 256); // set ram
|
||||||
|
break;
|
||||||
|
case 0x02: // x decrease, y increase
|
||||||
|
_SetRamArea(xPixelsPar / 8, 0x00, 0x00, 0x00, yPixelsPar % 256, yPixelsPar / 256); // X-source area,Y-gate area
|
||||||
|
_SetRamPointer(xPixelsPar / 8, 0x00, 0x00); // set ram
|
||||||
|
break;
|
||||||
|
case 0x03: // x increase, y increase : normal mode
|
||||||
|
_SetRamArea(0x00, xPixelsPar / 8, 0x00, 0x00, yPixelsPar % 256, yPixelsPar / 256); // X-source area,Y-gate area
|
||||||
|
_SetRamPointer(0x00, 0x00, 0x00); // set ram
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_SetRamArea(uint8_t Xstart, uint8_t Xend, uint8_t Ystart, uint8_t Ystart1, uint8_t Yend, uint8_t Yend1)
|
||||||
|
{
|
||||||
|
_writeCommand(0x44);
|
||||||
|
_writeData(Xstart);
|
||||||
|
_writeData(Xend);
|
||||||
|
_writeCommand(0x45);
|
||||||
|
_writeData(Ystart);
|
||||||
|
_writeData(Ystart1);
|
||||||
|
_writeData(Yend);
|
||||||
|
_writeData(Yend1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_SetRamPointer(uint8_t addrX, uint8_t addrY, uint8_t addrY1)
|
||||||
|
{
|
||||||
|
_writeCommand(0x4e);
|
||||||
|
_writeData(addrX);
|
||||||
|
_writeCommand(0x4f);
|
||||||
|
_writeData(addrY);
|
||||||
|
_writeData(addrY1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_PowerOn(void)
|
||||||
|
{
|
||||||
|
_writeCommand(0x22);
|
||||||
|
_writeData(0xc0);
|
||||||
|
_writeCommand(0x20);
|
||||||
|
_waitWhileBusy("_PowerOn", power_on_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_PowerOff(void)
|
||||||
|
{
|
||||||
|
_writeCommand(0x22);
|
||||||
|
_writeData(0xc3);
|
||||||
|
_writeCommand(0x20);
|
||||||
|
_waitWhileBusy("_PowerOff", power_off_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_InitDisplay(uint8_t em)
|
||||||
|
{
|
||||||
|
_writeCommand(0x12);
|
||||||
|
_waitWhileBusy("_SWReset", power_on_time);
|
||||||
|
|
||||||
|
_writeCommand(0x01);
|
||||||
|
_writeData(0xC7);
|
||||||
|
_writeData(0x00);
|
||||||
|
_writeData(0x00);
|
||||||
|
|
||||||
|
_writeCommand(0x3C);
|
||||||
|
_writeData(0x05);
|
||||||
|
_writeCommand(0x18);
|
||||||
|
_writeData(0x80);
|
||||||
|
|
||||||
|
/*_writeCommandData(GDOControl, sizeof(GDOControl)); // Pannel configuration, Gate selection
|
||||||
|
_writeCommandData(softstart, sizeof(softstart)); // X decrease, Y decrease
|
||||||
|
_writeCommandData(VCOMVol, sizeof(VCOMVol)); // VCOM setting
|
||||||
|
_writeCommandData(DummyLine, sizeof(DummyLine)); // dummy line per gate
|
||||||
|
_writeCommandData(Gatetime, sizeof(Gatetime)); // Gate time setting*/
|
||||||
|
_setRamDataEntryMode(em);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_Init_Full(uint8_t em)
|
||||||
|
{
|
||||||
|
_InitDisplay(em);
|
||||||
|
//_writeCommandData(LUTDefault_full, sizeof(LUTDefault_full));
|
||||||
|
_PowerOn();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_Init_Part(uint8_t em)
|
||||||
|
{
|
||||||
|
_InitDisplay(em);
|
||||||
|
//_writeCommandData(LUTDefault_part, sizeof(LUTDefault_part));
|
||||||
|
_PowerOn();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_Update_Full(void)
|
||||||
|
{
|
||||||
|
_writeCommand(0x22);
|
||||||
|
_writeData(0xf7);
|
||||||
|
_writeCommand(0x20);
|
||||||
|
_waitWhileBusy("_Update_Full", full_refresh_time);
|
||||||
|
//_writeCommand(0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_Update_Part(void)
|
||||||
|
{
|
||||||
|
_writeCommand(0x22);
|
||||||
|
_writeData(0xff);
|
||||||
|
_writeCommand(0x20);
|
||||||
|
_waitWhileBusy("_Update_Part", partial_refresh_time);
|
||||||
|
//_writeCommand(0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPaged(void (*drawCallback)(void))
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_using_partial_mode = false;
|
||||||
|
_Init_Full(0x03);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback();
|
||||||
|
for (int16_t y1 = 0; y1 < GxGDEH0154D67_PAGE_HEIGHT; y1++)
|
||||||
|
{
|
||||||
|
for (int16_t x1 = 0; x1 < GxGDEH0154D67_WIDTH / 8; x1++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y1 * (GxGDEH0154D67_WIDTH / 8) + x1;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_current_page = -1;
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPaged(void (*drawCallback)(uint32_t), uint32_t p)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_using_partial_mode = false;
|
||||||
|
_Init_Full(0x03);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p);
|
||||||
|
for (int16_t y1 = 0; y1 < GxGDEH0154D67_PAGE_HEIGHT; y1++)
|
||||||
|
{
|
||||||
|
for (int16_t x1 = 0; x1 < GxGDEH0154D67_WIDTH / 8; x1++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y1 * (GxGDEH0154D67_WIDTH / 8) + x1;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_current_page = -1;
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPaged(void (*drawCallback)(const void*), const void* p)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_using_partial_mode = false;
|
||||||
|
_Init_Full(0x03);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p);
|
||||||
|
for (int16_t y1 = 0; y1 < GxGDEH0154D67_PAGE_HEIGHT; y1++)
|
||||||
|
{
|
||||||
|
for (int16_t x1 = 0; x1 < GxGDEH0154D67_WIDTH / 8; x1++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y1 * (GxGDEH0154D67_WIDTH / 8) + x1;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_current_page = -1;
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPaged(void (*drawCallback)(const void*, const void*), const void* p1, const void* p2)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_using_partial_mode = false;
|
||||||
|
_Init_Full(0x03);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p1, p2);
|
||||||
|
for (int16_t y1 = 0; y1 < GxGDEH0154D67_PAGE_HEIGHT; y1++)
|
||||||
|
{
|
||||||
|
for (int16_t x1 = 0; x1 < GxGDEH0154D67_WIDTH / 8; x1++)
|
||||||
|
{
|
||||||
|
uint16_t idx = y1 * (GxGDEH0154D67_WIDTH / 8) + x1;
|
||||||
|
uint8_t data = (idx < sizeof(_buffer)) ? _buffer[idx] : 0x00;
|
||||||
|
_writeData(~data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_current_page = -1;
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::_rotate(uint16_t& x, uint16_t& y, uint16_t& w, uint16_t& h)
|
||||||
|
{
|
||||||
|
switch (getRotation())
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
swap(x, y);
|
||||||
|
swap(w, h);
|
||||||
|
x = GxGDEH0154D67_WIDTH - x - w - 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
x = GxGDEH0154D67_WIDTH - x - w - 1;
|
||||||
|
y = GxGDEH0154D67_HEIGHT - y - h - 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
swap(x, y);
|
||||||
|
swap(w, h);
|
||||||
|
y = GxGDEH0154D67_HEIGHT - y - h - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPagedToWindow(void (*drawCallback)(void), uint16_t x, uint16_t y, uint16_t w, uint16_t h)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_rotate(x, y, w, h);
|
||||||
|
if (!_using_partial_mode)
|
||||||
|
{
|
||||||
|
eraseDisplay(false);
|
||||||
|
eraseDisplay(true);
|
||||||
|
}
|
||||||
|
_using_partial_mode = true;
|
||||||
|
_Init_Part(0x03);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback();
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback();
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
_current_page = -1;
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPagedToWindow(void (*drawCallback)(uint32_t), uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint32_t p)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_rotate(x, y, w, h);
|
||||||
|
if (!_using_partial_mode)
|
||||||
|
{
|
||||||
|
eraseDisplay(false);
|
||||||
|
eraseDisplay(true);
|
||||||
|
}
|
||||||
|
_using_partial_mode = true;
|
||||||
|
_Init_Part(0x03);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p);
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p);
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
_current_page = -1;
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPagedToWindow(void (*drawCallback)(const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void* p)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_rotate(x, y, w, h);
|
||||||
|
if (!_using_partial_mode)
|
||||||
|
{
|
||||||
|
eraseDisplay(false);
|
||||||
|
eraseDisplay(true);
|
||||||
|
}
|
||||||
|
_using_partial_mode = true;
|
||||||
|
_Init_Part(0x03);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p);
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p);
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
_current_page = -1;
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawPagedToWindow(void (*drawCallback)(const void*, const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void* p1, const void* p2)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_rotate(x, y, w, h);
|
||||||
|
if (!_using_partial_mode)
|
||||||
|
{
|
||||||
|
eraseDisplay(false);
|
||||||
|
eraseDisplay(true);
|
||||||
|
}
|
||||||
|
_using_partial_mode = true;
|
||||||
|
_Init_Part(0x03);
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p1, p2);
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Update_Part();
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
// update erase buffer
|
||||||
|
for (_current_page = 0; _current_page < GxGDEH0154D67_PAGES; _current_page++)
|
||||||
|
{
|
||||||
|
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEH0154D67_PAGE_HEIGHT);
|
||||||
|
if (yde > yds)
|
||||||
|
{
|
||||||
|
fillScreen(GxEPD_WHITE);
|
||||||
|
drawCallback(p1, p2);
|
||||||
|
uint16_t ys = yds % GxGDEH0154D67_PAGE_HEIGHT;
|
||||||
|
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delay(GxGDEH0154D67_PU_DELAY);
|
||||||
|
_current_page = -1;
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GxGDEH0154D67::drawCornerTest(uint8_t em)
|
||||||
|
{
|
||||||
|
if (_current_page != -1) return;
|
||||||
|
_Init_Full(em);
|
||||||
|
_writeCommand(0x24);
|
||||||
|
for (uint32_t y = 0; y < GxGDEH0154D67_HEIGHT; y++)
|
||||||
|
{
|
||||||
|
for (uint32_t x = 0; x < GxGDEH0154D67_WIDTH / 8; x++)
|
||||||
|
{
|
||||||
|
uint8_t data = 0xFF;
|
||||||
|
if ((x < 1) && (y < 8)) data = 0x00;
|
||||||
|
if ((x > GxGDEH0154D67_WIDTH / 8 - 3) && (y < 16)) data = 0x00;
|
||||||
|
if ((x > GxGDEH0154D67_WIDTH / 8 - 4) && (y > GxGDEH0154D67_HEIGHT - 25)) data = 0x00;
|
||||||
|
if ((x < 4) && (y > GxGDEH0154D67_HEIGHT - 33)) data = 0x00;
|
||||||
|
_writeData(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_Update_Full();
|
||||||
|
_PowerOff();
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
// class GxGDEH0154D67 : Display class for GDEP015OC1 e-Paper from Dalian Good Display Co., Ltd.: www.good-display.com
|
||||||
|
//
|
||||||
|
// based on Demo Example from Good Display, available here: http://www.good-display.com/download_detail/downloadsId=515.html
|
||||||
|
// Controller : IL3829 : http://www.good-display.com/download_detail/downloadsId=534.html
|
||||||
|
//
|
||||||
|
// Author : J-M Zingg
|
||||||
|
//
|
||||||
|
// Version : see library.properties
|
||||||
|
//
|
||||||
|
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||||
|
//
|
||||||
|
// Library: https://github.com/ZinggJM/GxEPD
|
||||||
|
|
||||||
|
#ifndef _GxGDEH0154D67_H_
|
||||||
|
#define _GxGDEH0154D67_H_
|
||||||
|
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include <GxEPD.h>
|
||||||
|
|
||||||
|
// the physical number of pixels (for controller parameter)
|
||||||
|
#define GxGDEH0154D67_X_PIXELS 200
|
||||||
|
#define GxGDEH0154D67_Y_PIXELS 200
|
||||||
|
|
||||||
|
#define GxGDEH0154D67_WIDTH GxGDEH0154D67_X_PIXELS
|
||||||
|
#define GxGDEH0154D67_HEIGHT GxGDEH0154D67_Y_PIXELS
|
||||||
|
|
||||||
|
#define GxGDEH0154D67_BUFFER_SIZE (uint32_t(GxGDEH0154D67_WIDTH) * uint32_t(GxGDEH0154D67_HEIGHT) / 8)
|
||||||
|
|
||||||
|
// divisor for AVR, should be factor of GxGDEH0154D67_HEIGHT
|
||||||
|
#define GxGDEH0154D67_PAGES 5
|
||||||
|
|
||||||
|
#define GxGDEH0154D67_PAGE_HEIGHT (GxGDEH0154D67_HEIGHT / GxGDEH0154D67_PAGES)
|
||||||
|
#define GxGDEH0154D67_PAGE_SIZE (GxGDEH0154D67_BUFFER_SIZE / GxGDEH0154D67_PAGES)
|
||||||
|
|
||||||
|
class GxGDEH0154D67 : public GxEPD
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
#if defined(ESP8266)
|
||||||
|
//GxGDEH0154D67(GxIO& io, int8_t rst = D4, int8_t busy = D2);
|
||||||
|
// use pin numbers, other ESP8266 than Wemos may not use Dx names
|
||||||
|
GxGDEH0154D67(GxIO& io, int8_t rst = 2, int8_t busy = 4);
|
||||||
|
#else
|
||||||
|
GxGDEH0154D67(GxIO& io, int8_t rst = 9, int8_t busy = 7);
|
||||||
|
#endif
|
||||||
|
void drawPixel(int16_t x, int16_t y, uint16_t color);
|
||||||
|
void init(uint32_t serial_diag_bitrate = 0); // = 0 : disabled
|
||||||
|
void fillScreen(uint16_t color); // 0x0 black, >0x0 white, to buffer
|
||||||
|
void update(void);
|
||||||
|
// to buffer, may be cropped, drawPixel() used, update needed
|
||||||
|
void drawBitmap(const uint8_t *bitmap, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color, int16_t mode = bm_normal);
|
||||||
|
// to full screen, filled with white if size is less, no update needed
|
||||||
|
void drawBitmap(const uint8_t *bitmap, uint32_t size, int16_t mode = bm_normal); // only bm_normal, bm_invert, bm_partial_update modes implemented
|
||||||
|
void eraseDisplay(bool using_partial_update = false);
|
||||||
|
// partial update of rectangle from buffer to screen, does not power off
|
||||||
|
void updateWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h, bool using_rotation = true);
|
||||||
|
// partial update of rectangle at (xs,ys) from buffer to screen at (xd,yd), does not power off
|
||||||
|
void updateToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h, bool using_rotation = true);
|
||||||
|
// terminate cleanly updateWindow or updateToWindow before removing power or long delays
|
||||||
|
void powerDown();
|
||||||
|
void deepSleep();
|
||||||
|
// paged drawing, for limited RAM, drawCallback() is called GxGDEH0154D67_PAGES times
|
||||||
|
// each call of drawCallback() should draw the same
|
||||||
|
void drawPaged(void (*drawCallback)(void));
|
||||||
|
void drawPaged(void (*drawCallback)(uint32_t), uint32_t);
|
||||||
|
void drawPaged(void (*drawCallback)(const void*), const void*);
|
||||||
|
void drawPaged(void (*drawCallback)(const void*, const void*), const void*, const void*);
|
||||||
|
// paged drawing to screen rectangle at (x,y) using partial update
|
||||||
|
void drawPagedToWindow(void (*drawCallback)(void), uint16_t x, uint16_t y, uint16_t w, uint16_t h);
|
||||||
|
void drawPagedToWindow(void (*drawCallback)(uint32_t), uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint32_t);
|
||||||
|
void drawPagedToWindow(void (*drawCallback)(const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void*);
|
||||||
|
void drawPagedToWindow(void (*drawCallback)(const void*, const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void*, const void*);
|
||||||
|
void drawCornerTest(uint8_t em = 0x01);
|
||||||
|
private:
|
||||||
|
template <typename T> static inline void
|
||||||
|
swap(T& a, T& b)
|
||||||
|
{
|
||||||
|
T t = a;
|
||||||
|
a = b;
|
||||||
|
b = t;
|
||||||
|
}
|
||||||
|
void _writeToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h);
|
||||||
|
void _writeData(uint8_t data);
|
||||||
|
void _writeCommand(uint8_t command);
|
||||||
|
void _writeCommandData(const uint8_t* pCommandData, uint8_t datalen);
|
||||||
|
void _SetRamPointer(uint8_t addrX, uint8_t addrY, uint8_t addrY1);
|
||||||
|
void _SetRamArea(uint8_t Xstart, uint8_t Xend, uint8_t Ystart, uint8_t Ystart1, uint8_t Yend, uint8_t Yend1);
|
||||||
|
void _PowerOn(void);
|
||||||
|
void _PowerOff(void);
|
||||||
|
void _waitWhileBusy(const char* comment, uint16_t busy_time);
|
||||||
|
void _setRamDataEntryMode(uint8_t em);
|
||||||
|
void _InitDisplay(uint8_t em);
|
||||||
|
void _Init_Full(uint8_t em);
|
||||||
|
void _Init_Part(uint8_t em);
|
||||||
|
void _Update_Full(void);
|
||||||
|
void _Update_Part(void);
|
||||||
|
void _rotate(uint16_t& x, uint16_t& y, uint16_t& w, uint16_t& h);
|
||||||
|
protected:
|
||||||
|
#if defined(__AVR)
|
||||||
|
uint8_t _buffer[GxGDEH0154D67_PAGE_SIZE];
|
||||||
|
#else
|
||||||
|
uint8_t _buffer[GxGDEH0154D67_BUFFER_SIZE];
|
||||||
|
#endif
|
||||||
|
private:
|
||||||
|
GxIO& IO;
|
||||||
|
int16_t _current_page;
|
||||||
|
bool _using_partial_mode;
|
||||||
|
bool _diag_enabled;
|
||||||
|
int8_t _rst;
|
||||||
|
int8_t _busy;
|
||||||
|
static const uint16_t power_on_time = 80; // ms, e.g. 73508us
|
||||||
|
static const uint16_t power_off_time = 80; // ms, e.g. 68982us
|
||||||
|
static const uint16_t full_refresh_time = 4200; // ms, e.g. 1113273us
|
||||||
|
static const uint16_t partial_refresh_time = 300; // ms, e.g. 290867us
|
||||||
|
#if defined(ESP8266) || defined(ESP32)
|
||||||
|
public:
|
||||||
|
// the compiler of these packages has a problem with signature matching to base classes
|
||||||
|
void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)
|
||||||
|
{
|
||||||
|
Adafruit_GFX::drawBitmap(x, y, bitmap, w, h, color);
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef GxEPD_Class
|
||||||
|
#define GxEPD_Class GxGDEH0154D67
|
||||||
|
#define GxEPD_WIDTH GxGDEH0154D67_WIDTH
|
||||||
|
#define GxEPD_HEIGHT GxGDEH0154D67_HEIGHT
|
||||||
|
#define GxEPD_BitmapExamples <GxGDEH0154D67/BitmapExamples.h>
|
||||||
|
#define GxEPD_BitmapExamplesQ "GxGDEH0154D67/BitmapExamples.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue