Parcourir la source

Added new programs 2.7inch V2 e-Paper routine.

SSYYL il y a 3 ans
Parent
commit
ae96a23767
34 fichiers modifiés avec 22446 ajouts et 831 suppressions
  1. 585 0
      Arduino/epd2in7_V2/epd2in7_V2.cpp
  2. 75 0
      Arduino/epd2in7_V2/epd2in7_V2.h
  3. 114 0
      Arduino/epd2in7_V2/epd2in7_V2.ino
  4. 64 0
      Arduino/epd2in7_V2/epdif.cpp
  5. 51 0
      Arduino/epd2in7_V2/epdif.h
  6. 342 0
      Arduino/epd2in7_V2/epdpaint.cpp
  7. 75 0
      Arduino/epd2in7_V2/epdpaint.h
  8. 1385 0
      Arduino/epd2in7_V2/font12.cpp
  9. 1765 0
      Arduino/epd2in7_V2/font16.cpp
  10. 2143 0
      Arduino/epd2in7_V2/font20.cpp
  11. 2521 0
      Arduino/epd2in7_V2/font24.cpp
  12. 1005 0
      Arduino/epd2in7_V2/font8.cpp
  13. 65 0
      Arduino/epd2in7_V2/fonts.h
  14. 1125 0
      Arduino/epd2in7_V2/imagedata.cpp
  15. 32 0
      Arduino/epd2in7_V2/imagedata.h
  16. 128 20
      RaspberryPi_JetsonNano/c/examples/EPD_2in7_V2_test.c
  17. 306 95
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in7_V2.c
  18. 8 4
      RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in7_V2.h
  19. 158 0
      RaspberryPi_JetsonNano/python/examples/epd_2in7_V2_test.py
  20. 519 0
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.py
  21. 97 0
      STM32/STM32-F103ZET6/MDK-ARM/DebugConfig/EPD_2in7_V2_test_STM32F103ZE.dbgconf
  22. 20 0
      STM32/STM32-F103ZET6/MDK-ARM/RTE/_EPD_2in7_V2_test/RTE_Components.h
  23. 0 1
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian
  24. 306 47
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx
  25. 7165 114
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx
  26. 43 43
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm
  27. 542 476
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm
  28. 955 24
      STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map
  29. 5 5
      STM32/STM32-F103ZET6/MDK-ARM/startup_stm32f103xe.lst
  30. 265 0
      STM32/STM32-F103ZET6/User/Examples/EPD_2in7_V2_test.c
  31. 526 0
      STM32/STM32-F103ZET6/User/e-Paper/EPD_2in7_V2.c
  32. 52 0
      STM32/STM32-F103ZET6/User/e-Paper/EPD_2in7_V2.h
  33. 2 1
      Version_CN.txt
  34. 2 1
      Version_EN.txt

+ 585 - 0
Arduino/epd2in7_V2/epd2in7_V2.cpp

@@ -0,0 +1,585 @@
+/**
+ *  @filename   :   epd2in7_V2.cpp
+ *  @brief      :   Implements for e-paper library
+ *  @author     :   Waveshare
+ *
+ *  Copyright (C) Waveshare     September 20 2022
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <stdlib.h>
+#include "epd2in7_V2.h"
+
+static const unsigned char LUT_DATA_4Gray[159] =
+{
+0x40,	0x48,	0x80,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x8,	0x48,	0x10,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x2,	0x48,	0x4,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x20,	0x48,	0x1,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0xA,	0x19,	0x0,	0x3,	0x8,	0x0,	0x0,					
+0x14,	0x1,	0x0,	0x14,	0x1,	0x0,	0x3,					
+0xA,	0x3,	0x0,	0x8,	0x19,	0x0,	0x0,					
+0x1,	0x0,	0x0,	0x0,	0x0,	0x0,	0x1,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x22,	0x22,	0x22,	0x22,	0x22,	0x22,	0x0,	0x0,	0x0,			
+0x22,	0x17,	0x41,	0x0,	0x32,	0x1C
+};
+
+
+
+Epd::~Epd() {
+};
+
+Epd::Epd() {
+    reset_pin = RST_PIN;
+    dc_pin = DC_PIN;
+    cs_pin = CS_PIN;
+    busy_pin = BUSY_PIN;
+    WIDTH = EPD_WIDTH;
+    HEIGHT = EPD_HEIGHT;
+};
+
+int Epd::Init(void) {
+    /* this calls the peripheral hardware interface, see epdif */
+    if (IfInit() != 0) {
+        return -1;
+    }
+
+    Reset();
+    ReadBusy();
+
+    SendCommand(0x12); //SWRESET
+    ReadBusy();
+
+    SendCommand(0x45); //set Ram-Y address start/end position          
+    SendData(0x00);
+    SendData(0x00);
+    SendData(0x07); //0x0107-->(263+1)=264
+    SendData(0x01);
+
+    SendCommand(0x4F);   // set RAM y address count to 0;    
+    SendData(0x00);
+    SendData(0x00);
+
+    SendCommand(0x11);   // data entry mode
+    SendData(0x03);
+    return 0;
+}
+
+int Epd::Init_Fast(void) {
+    /* this calls the peripheral hardware interface, see epdif */
+    if (IfInit() != 0) {
+        return -1;
+    }
+
+    Reset();
+    ReadBusy();
+
+    SendCommand(0x12); //SWRESET
+    ReadBusy();
+
+    SendCommand(0x18); //Read built-in temperature sensor
+	SendData(0x80);	
+
+	SendCommand(0x22); // Load temperature value
+	SendData(0xB1);		
+	SendCommand(0x20);	
+	ReadBusy();
+
+	SendCommand(0x1A); // Write to temperature register
+	SendData(0x64);		
+	SendData(0x00);	
+
+	SendCommand(0x45); //set Ram-Y address start/end position          
+	SendData(0x00);   
+	SendData(0x00);
+	SendData(0x07); //0x0107-->(263+1)=264
+	SendData(0x01);
+
+	SendCommand(0x4F);   // set RAM y address count to 0;    
+	SendData(0x00);
+	SendData(0x00);
+
+	SendCommand(0x11);   // data entry mode      
+	SendData(0x03);
+							
+	SendCommand(0x22); // Load temperature value
+	SendData(0x91);		
+	SendCommand(0x20);	
+	ReadBusy(); 
+    return 0;
+}
+
+void Epd::Init_4Gray(void)
+{
+    Reset();
+
+	ReadBusy();
+	SendCommand(0x12); // soft reset
+	ReadBusy();
+
+	SendCommand(0x74); //set analog block control       
+	SendData(0x54);
+	SendCommand(0x7E); //set digital block control          
+	SendData(0x3B);
+
+	SendCommand(0x01); //Driver output control      
+	SendData(0x07);
+	SendData(0x01);
+	SendData(0x00);
+
+	SendCommand(0x11); //data entry mode       
+	SendData(0x03);
+
+	SendCommand(0x44); //set Ram-X address start/end position   
+	SendData(0x00);
+	SendData(0x15);    //0x15-->(21+1)*8=176
+
+	SendCommand(0x45); //set Ram-Y address start/end position          
+	SendData(0x00);
+	SendData(0x00);
+	SendData(0x07);//0x0107-->(263+1)=264
+	SendData(0x01);
+
+
+	SendCommand(0x3C); //BorderWavefrom
+	SendData(0x00);	
+
+
+	SendCommand(0x2C);     //VCOM Voltage
+	SendData(LUT_DATA_4Gray[158]);    //0x1C
+
+
+	SendCommand(0x3F); //EOPQ    
+	SendData(LUT_DATA_4Gray[153]);
+	
+	SendCommand(0x03); //VGH      
+	SendData(LUT_DATA_4Gray[154]);
+
+	SendCommand(0x04); //      
+	SendData(LUT_DATA_4Gray[155]); //VSH1   
+	SendData(LUT_DATA_4Gray[156]); //VSH2   
+	SendData(LUT_DATA_4Gray[157]); //VSL   
+   
+	Lut(); //LUT
+
+	
+	SendCommand(0x4E);   // set RAM x address count to 0;
+	SendData(0x00);
+	SendCommand(0x4F);   // set RAM y address count to 0X199;    
+	SendData(0x00);
+	SendData(0x00);
+    ReadBusy();
+}
+
+
+/**
+ *  @brief: basic function for sending commands
+ */
+void Epd::SendCommand(unsigned char command) {
+    DigitalWrite(dc_pin, LOW);
+    SpiTransfer(command);
+}
+
+/**
+ *  @brief: basic function for sending data
+ */
+void Epd::SendData(unsigned char data) {
+    DigitalWrite(dc_pin, HIGH);
+    SpiTransfer(data);
+}
+
+/**
+ *  @brief: Wait until the busy_pin goes HIGH
+ */
+void Epd::ReadBusy(void) {
+    Serial.print("e-Paper busy\r\n");
+    while(DigitalRead(busy_pin) == 1) {      //1: busy, 0: idle
+        DelayMs(100);
+    }      
+    Serial.print("e-Paper busy release\r\n");
+}
+
+/**
+ *  @brief: module reset. 
+ *          often used to awaken the module in deep sleep, 
+ *          see Epd::Sleep();
+ */
+void Epd::Reset(void) {
+    DigitalWrite(reset_pin, HIGH);
+    DelayMs(200);   
+    DigitalWrite(reset_pin, LOW);
+    DelayMs(2);
+    DigitalWrite(reset_pin, HIGH);
+    DelayMs(200);   
+}
+
+/**
+ *  @brief: set the look-up tables
+ */
+void Epd::Lut(void) {
+    unsigned int count;
+    SendCommand(0x32); //vcom
+    for(count = 0; count < 153; count++) {
+        SendData(LUT_DATA_4Gray[count]);
+    }
+}
+
+/******************************************************************************
+function :	Turn on display
+parameter:
+******************************************************************************/
+void Epd::TurnOnDisplay(void)
+{
+	SendCommand(0x22); //Display Update Control
+	SendData(0xF7);
+	SendCommand(0x20); //Activate Display Update Sequence
+	ReadBusy();
+}
+
+void Epd::TurnOnDisplay_Fast(void)
+{
+	SendCommand(0x22); //Display Update Control
+	SendData(0xC7);
+	SendCommand(0x20); //Activate Display Update Sequence
+	ReadBusy();
+}
+
+void Epd::TurnOnDisplay_Partial(void)
+{
+	SendCommand(0x22);
+	SendData(0xFF);
+	SendCommand(0x20);
+	ReadBusy();
+}
+
+void Epd::TurnOnDisplay_4GRAY(void)
+{
+	SendCommand(0x22);
+	SendData(0xC7);
+	SendCommand(0x20);
+	ReadBusy();
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void Epd::Clear(void)
+{
+    unsigned int Width, Height;
+    Width = (WIDTH % 8 == 0)? (WIDTH / 8 ): (WIDTH / 8 + 1);
+    Height = HEIGHT;
+
+    SendCommand(0x24);
+    for (unsigned int j = 0; j < Height; j++) {
+        for (unsigned int i = 0; i < Width; i++) {
+            SendData(0XFF);
+        }
+    }
+	TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void Epd::Display(const unsigned char* Image)
+{
+	unsigned int Width, Height;
+	Width = (WIDTH % 8 == 0)? (WIDTH / 8 ): (WIDTH / 8 + 1);
+	Height = HEIGHT;
+
+	SendCommand(0x24);
+	for (unsigned int j = 0; j < Height; j++) {
+			for (unsigned int i = 0; i < Width; i++) {
+					SendData(pgm_read_byte(&Image[i + j * Width]));
+			}
+	}
+	TurnOnDisplay();
+}
+
+void Epd::Display_Fast(const unsigned char* Image)
+{
+	unsigned int Width, Height;
+	Width = (WIDTH % 8 == 0)? (WIDTH / 8 ): (WIDTH / 8 + 1);
+	Height = HEIGHT;
+
+	SendCommand(0x24);
+	for (unsigned int j = 0; j < Height; j++) {
+			for (unsigned int i = 0; i < Width; i++) {
+					SendData(pgm_read_byte(&Image[i + j * Width]));
+			}
+	}
+	TurnOnDisplay_Fast();
+}
+
+void Epd::Display_Base(const unsigned char* Image)
+{
+	unsigned int Width, Height;
+	Width = (WIDTH % 8 == 0)? (WIDTH / 8 ): (WIDTH / 8 + 1);
+	Height = HEIGHT;
+
+	SendCommand(0x24);   //Write Black and White image to RAM
+	for (unsigned int j = 0; j < Height; j++) {
+			for (unsigned int i = 0; i < Width; i++) {
+					SendData(pgm_read_byte(&Image[i + j * Width]));
+			}
+	}
+	SendCommand(0x26);   //Write Black and White image to RAM
+	for (unsigned int j = 0; j < Height; j++) {
+			for (unsigned int i = 0; i < Width; i++) {
+					SendData(pgm_read_byte(&Image[i + j * Width]));
+			}
+	}
+	TurnOnDisplay();	
+}
+
+void Epd::Display_Base_color(unsigned char color)
+{
+	unsigned int Width, Height;
+	Width = (WIDTH % 8 == 0)? (WIDTH / 8 ): (WIDTH / 8 + 1);
+	Height = HEIGHT;
+
+	SendCommand(0x24);   //Write Black and White image to RAM
+	for (unsigned int j = 0; j < Height; j++) {
+			for (unsigned int i = 0; i < Width; i++) {
+					SendData(color);
+			}
+	}
+	SendCommand(0x26);   //Write Black and White image to RAM
+	for (unsigned int j = 0; j < Height; j++) {
+			for (unsigned int i = 0; i < Width; i++) {
+					SendData(color);
+			}
+	}
+	// TurnOnDisplay();	
+}
+
+void Epd::Display_Partial(unsigned char* Image, unsigned int  Xstart, unsigned int  Ystart, unsigned int  Xend, unsigned int  Yend)
+{
+
+    unsigned int  i, Width;
+    unsigned int  IMAGE_COUNTER;
+
+    if((Xstart % 8 + Xend % 8 == 8 && Xstart % 8 > Xend % 8) || Xstart % 8 + Xend % 8 == 0 || (Xend - Xstart)%8 == 0)
+	{
+        Xstart = Xstart / 8 ;
+        Xend = Xend / 8;
+	}
+	else
+	{
+        Xstart = Xstart / 8 ;
+        Xend = Xend % 8 == 0 ? Xend / 8 : Xend / 8 + 1;
+	}
+	
+	Width = Xend -  Xstart;
+	IMAGE_COUNTER = Width * (Yend-Ystart);
+    Serial.println(IMAGE_COUNTER);
+
+	Xend -= 1;
+	Yend -= 1;	
+	//Reset
+	Reset();
+
+	SendCommand(0x3C); //BorderWavefrom
+	SendData(0x80);	
+	//	    
+	SendCommand(0x44);       // set RAM x address start/end, in page 35
+	SendData(Xstart & 0xff);    // RAM x address start at 00h;
+	SendData(Xend & 0xff);    // RAM x address end at 0fh(15+1)*8->128 
+	SendCommand(0x45);       // set RAM y address start/end, in page 35
+	SendData(Ystart & 0xff);    // RAM y address start at 0127h;
+	SendData((Ystart>>8) & 0x01);    // RAM y address start at 0127h;
+	SendData(Yend & 0xff);    // RAM y address end at 00h;
+	SendData((Yend>>8) & 0x01); 
+
+	SendCommand(0x4E);   // set RAM x address count to 0;
+	SendData(Xstart & 0xff); 
+	SendCommand(0x4F);   // set RAM y address count to 0X127;    
+	SendData(Ystart & 0xff);
+	SendData((Ystart>>8) & 0x01);
+
+
+	SendCommand(0x24);   //Write Black and White image to RAM
+	for (i = 0; i < IMAGE_COUNTER; i++) {
+		SendData(Image[i]);
+	}
+	TurnOnDisplay_Partial();
+}
+
+void Epd::Display_Partial_Not_refresh(unsigned char* Image, unsigned int  Xstart, unsigned int  Ystart, unsigned int  Xend, unsigned int  Yend)
+{
+
+    unsigned int  i, Width;
+    unsigned int  IMAGE_COUNTER;
+
+    if((Xstart % 8 + Xend % 8 == 8 && Xstart % 8 > Xend % 8) || Xstart % 8 + Xend % 8 == 0 || (Xend - Xstart)%8 == 0)
+	{
+        Xstart = Xstart / 8 ;
+        Xend = Xend / 8;
+	}
+	else
+	{
+        Xstart = Xstart / 8 ;
+        Xend = Xend % 8 == 0 ? Xend / 8 : Xend / 8 + 1;
+	}
+	
+	Width = Xend -  Xstart;
+	IMAGE_COUNTER = Width * (Yend-Ystart);
+    Serial.println(IMAGE_COUNTER);
+
+	Xend -= 1;
+	Yend -= 1;	
+	//Reset
+	Reset();
+
+	SendCommand(0x3C); //BorderWavefrom
+	SendData(0x80);	
+	//	    
+	SendCommand(0x44);       // set RAM x address start/end, in page 35
+	SendData(Xstart & 0xff);    // RAM x address start at 00h;
+	SendData(Xend & 0xff);    // RAM x address end at 0fh(15+1)*8->128 
+	SendCommand(0x45);       // set RAM y address start/end, in page 35
+	SendData(Ystart & 0xff);    // RAM y address start at 0127h;
+	SendData((Ystart>>8) & 0x01);    // RAM y address start at 0127h;
+	SendData(Yend & 0xff);    // RAM y address end at 00h;
+	SendData((Yend>>8) & 0x01); 
+
+	SendCommand(0x4E);   // set RAM x address count to 0;
+	SendData(Xstart & 0xff); 
+	SendCommand(0x4F);   // set RAM y address count to 0X127;    
+	SendData(Ystart & 0xff);
+	SendData((Ystart>>8) & 0x01);
+
+
+	SendCommand(0x24);   //Write Black and White image to RAM
+	for (i = 0; i < IMAGE_COUNTER; i++) {
+		SendData(Image[i]);
+	}
+	// TurnOnDisplay_Partial();
+}
+
+void Epd::Display4Gray(const unsigned char *Image)
+{
+    int i,j,k;
+    unsigned char temp1,temp2,temp3;
+
+    SendCommand(0x24);	       
+    for(i=0;i<5808;i++)	               //5808*4  46464
+    {
+        temp3=0;
+        for(j=0;j<2;j++)	
+        {
+            temp1 = pgm_read_byte(&Image[i*2+j]);
+            for(k=0;k<2;k++)	
+            {
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)
+                    temp3 |= 0x00;//white
+                else if(temp2 == 0x00)
+                    temp3 |= 0x01;  //black
+                else if(temp2 == 0x80) 
+                    temp3 |= 0x01;  //gray1
+                else //0x40
+                    temp3 |= 0x00; //gray2
+                temp3 <<= 1;	
+                
+                temp1 <<= 2;
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)  //white
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00) //black
+                    temp3 |= 0x01;
+                else if(temp2 == 0x80)
+                    temp3 |= 0x01; //gray1
+                else    //0x40
+                        temp3 |= 0x00;	//gray2	
+                if(j!=1 || k!=1)				
+                    temp3 <<= 1;
+                
+                temp1 <<= 2;
+            }
+            
+         }
+        SendData(temp3);			
+    }
+    // new  data
+    SendCommand(0x26);	       
+    for(i=0;i<5808;i++)	               //5808*4  46464
+    {
+        temp3=0;
+        for(j=0;j<2;j++)	
+        {
+            temp1 = pgm_read_byte(&Image[i*2+j]);
+            for(k=0;k<2;k++)	
+            {
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)
+                    temp3 |= 0x00;//white
+                else if(temp2 == 0x00)
+                    temp3 |= 0x01;  //black
+                else if(temp2 == 0x80) 
+                    temp3 |= 0x00;  //gray1
+                else //0x40
+                    temp3 |= 0x01; //gray2
+                temp3 <<= 1;	
+                
+                temp1 <<= 2;
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)  //white
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00) //black
+                    temp3 |= 0x01;
+                else if(temp2 == 0x80)
+                    temp3 |= 0x00; //gray1
+                else    //0x40
+                        temp3 |= 0x01;	//gray2
+                if(j!=1 || k!=1)					
+                    temp3 <<= 1;
+                
+                temp1 <<= 2;
+            }
+            
+         }
+        SendData(temp3);	
+    }
+
+    TurnOnDisplay_4GRAY();
+}
+
+/**
+ * @brief: After this command is transmitted, the chip would enter the deep-sleep mode to save power. 
+ *         The deep sleep mode would return to standby by hardware reset. The only one parameter is a 
+ *         check code, the command would be executed if check code = 0xA5. 
+ *         You can use Epd::Reset() to awaken and use Epd::Init() to initialize.
+ */
+void Epd::Sleep() {
+  SendCommand(0X10);
+  SendData(0x01);
+}

+ 75 - 0
Arduino/epd2in7_V2/epd2in7_V2.h

@@ -0,0 +1,75 @@
+/**
+ *  @filename   :   epd2in7_V2.h
+ *  @brief      :   Header file for e-paper library epd2in7_V2.cpp
+ *  @author     :   Waveshare
+ *  
+ *  Copyright (C) Waveshare     September 20 2022
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef EPD2IN7_V2_H
+#define EPD2IN7_V2_H
+
+#include "epdif.h"
+
+// Display resolution
+#define EPD_WIDTH       176
+#define EPD_HEIGHT      264
+
+
+class Epd : EpdIf {
+public:
+    unsigned int WIDTH;
+    unsigned int HEIGHT;
+
+    Epd();
+    ~Epd();
+    int  Init(void);
+    int  Init_Fast(void);
+    void Init_4Gray(void);
+    void SendCommand(unsigned char command);
+    void SendData(unsigned char data);
+    void ReadBusy(void);
+    void Reset(void);
+    void Lut(void);
+    void TurnOnDisplay(void);
+    void TurnOnDisplay_Fast(void);
+    void TurnOnDisplay_Partial(void);
+    void TurnOnDisplay_4GRAY(void);
+    void Clear(void);
+    void Display(const unsigned char* Image);
+    void Display_Fast(const unsigned char* Image);
+    void Display_Base(const unsigned char* Image);
+    void Display_Base_color(unsigned char color);
+    void Display_Partial(unsigned char* Image, unsigned int  Xstart, unsigned int  Ystart, unsigned int  Xend, unsigned int  Yend);
+    void Display_Partial_Not_refresh(unsigned char* Image, unsigned int  Xstart, unsigned int  Ystart, unsigned int  Xend, unsigned int  Yend);
+    void Display4Gray(const unsigned char *Image);
+    void Sleep(void);
+
+private:
+    unsigned int reset_pin;
+    unsigned int dc_pin;
+    unsigned int cs_pin;
+    unsigned int busy_pin;
+};
+
+#endif /* EPD2IN7_H */
+
+/* END OF FILE */

+ 114 - 0
Arduino/epd2in7_V2/epd2in7_V2.ino

@@ -0,0 +1,114 @@
+/**
+    @filename   :   epd2in7_V2-demo.ino
+    @brief      :   2.7inch e-paper display demo
+    @author     :   Waveshare
+
+    Copyright (C) Waveshare     September 20 2022
+
+   Permission is hereby granted, free of charge, to any person obtaining a copy
+   of this software and associated documnetation files (the "Software"), to deal
+   in the Software without restriction, including without limitation the rights
+   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+   copies of the Software, and to permit persons to  whom the Software is
+   furished to do so, subject to the following conditions:
+
+   The above copyright notice and this permission notice shall be included in
+   all copies or substantial portions of the Software.
+
+   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+   FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+   LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+   THE SOFTWARE.
+*/
+
+#include <SPI.h>
+#include "epd2in7_V2.h"
+#include "imagedata.h"
+#include "epdpaint.h"
+
+#define COLORED     0
+#define UNCOLORED   1
+
+void setup() {
+  // put your setup code here, to run once:
+  Serial.begin(115200);
+  Epd epd;
+
+  Serial.print("e-Paper init\r\n");
+  if (epd.Init() != 0) {
+    Serial.print("e-Paper init failed\r\n");
+    return;
+  }
+
+  /* This clears the SRAM of the e-paper display */
+  epd.Clear();
+
+  /**
+      Due to RAM not enough in Arduino UNO, a frame buffer is not allowed.
+      In this case, a smaller image buffer is allocated and you have to
+      update a partial display several times.
+      1 byte = 8 pixels, therefore you have to set 8*N pixels at a time.
+  */
+#if 1
+  epd.Display_Base_color(0xff);
+  unsigned char image[1024];
+  Paint paint(image, 176, 24);    //width should be the multiple of 8
+
+  paint.Clear(UNCOLORED);
+  paint.DrawStringAt(20, 5, "e-Paper Demo", &Font16, COLORED);
+  epd.Display_Partial_Not_refresh(paint.GetImage(), 0, 32, 0+paint.GetWidth(), 32+paint.GetHeight());
+
+  paint.Clear(COLORED);
+  paint.DrawStringAt(20, 5, "Hello world!", &Font16, UNCOLORED);
+  epd.Display_Partial_Not_refresh(paint.GetImage(), 0, 64, 0+paint.GetWidth(), 64+paint.GetHeight());
+
+  paint.SetWidth(64);
+  paint.SetHeight(64);
+
+  paint.Clear(UNCOLORED);
+  paint.DrawRectangle(0, 0, 40, 50, COLORED);
+  paint.DrawLine(0, 0, 40, 50, COLORED);
+  paint.DrawLine(40, 0, 0, 50, COLORED);
+  epd.Display_Partial_Not_refresh(paint.GetImage(), 10, 130, 10+paint.GetWidth(), 130+paint.GetHeight());
+
+  paint.Clear(UNCOLORED);
+  paint.DrawCircle(32, 32, 30, COLORED);
+  epd.Display_Partial_Not_refresh(paint.GetImage(), 90, 120, 90+paint.GetWidth(), 120+paint.GetHeight());
+
+  paint.Clear(UNCOLORED);
+  paint.DrawFilledRectangle(0, 0, 40, 50, COLORED);
+  epd.Display_Partial_Not_refresh(paint.GetImage(), 10, 200, 10+paint.GetWidth(), 200+paint.GetHeight());
+
+  paint.Clear(UNCOLORED);
+  paint.DrawFilledCircle(32, 32, 30, COLORED);
+  epd.Display_Partial(paint.GetImage(), 90, 190, 90+paint.GetWidth(), 190+paint.GetHeight());
+
+  delay(1000);
+#endif
+  
+#if 1
+  /* This displays an image */
+  epd.Init();
+  Serial.print("show 2-gray image\r\n");
+  epd.Display(IMAGE_DATA);
+  delay(1000);
+#endif
+
+#if 1
+  Serial.print("show 4-gray image\r\n");
+  epd.Init_4Gray();
+  epd.Display4Gray(IMAGE_DATA_4Gray);
+#endif
+
+  /* Deep sleep */
+  Serial.print("sleep...");
+  epd.Sleep();
+}
+
+void loop() {
+  // put your main code here, to run repeatedly:
+
+}

+ 64 - 0
Arduino/epd2in7_V2/epdif.cpp

@@ -0,0 +1,64 @@
+/**
+ *  @filename   :   epdif.cpp
+ *  @brief      :   Implements EPD interface functions
+ *                  Users have to implement all the functions in epdif.cpp
+ *  @author     :   Yehui from Waveshare
+ *
+ *  Copyright (C) Waveshare     August 10 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "epdif.h"
+#include <SPI.h>
+
+EpdIf::EpdIf() {
+};
+
+EpdIf::~EpdIf() {
+};
+
+void EpdIf::DigitalWrite(int pin, int value) {
+    digitalWrite(pin, value);
+}
+
+int EpdIf::DigitalRead(int pin) {
+    return digitalRead(pin);
+}
+
+void EpdIf::DelayMs(unsigned int delaytime) {
+    delay(delaytime);
+}
+
+void EpdIf::SpiTransfer(unsigned char data) {
+    digitalWrite(CS_PIN, LOW);
+    SPI.transfer(data);
+    digitalWrite(CS_PIN, HIGH);
+}
+
+int EpdIf::IfInit(void) {
+    pinMode(CS_PIN, OUTPUT);
+    pinMode(RST_PIN, OUTPUT);
+    pinMode(DC_PIN, OUTPUT);
+    pinMode(BUSY_PIN, INPUT); 
+    SPI.begin();
+    SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
+    return 0;
+}
+

+ 51 - 0
Arduino/epd2in7_V2/epdif.h

@@ -0,0 +1,51 @@
+/**
+ *  @filename   :   epdif.h
+ *  @brief      :   Header file of epdif.cpp providing EPD interface functions
+ *                  Users have to implement all the functions in epdif.cpp
+ *  @author     :   Yehui from Waveshare
+ *
+ *  Copyright (C) Waveshare     August 10 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef EPDIF_H
+#define EPDIF_H
+
+#include <Arduino.h>
+
+// Pin definition
+#define RST_PIN         8
+#define DC_PIN          9
+#define CS_PIN          10
+#define BUSY_PIN        7
+
+class EpdIf {
+public:
+    EpdIf(void);
+    ~EpdIf(void);
+
+    static int  IfInit(void);
+    static void DigitalWrite(int pin, int value); 
+    static int  DigitalRead(int pin);
+    static void DelayMs(unsigned int delaytime);
+    static void SpiTransfer(unsigned char data);
+};
+
+#endif

+ 342 - 0
Arduino/epd2in7_V2/epdpaint.cpp

@@ -0,0 +1,342 @@
+/**
+ *  @filename   :   epdpaint.cpp
+ *  @brief      :   Paint tools
+ *  @author     :   Yehui from Waveshare
+ *  
+ *  Copyright (C) Waveshare     September 9 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <avr/pgmspace.h>
+#include "epdpaint.h"
+
+Paint::Paint(unsigned char* image, int width, int height) {
+    this->rotate = ROTATE_0;
+    this->image = image;
+    /* 1 byte = 8 pixels, so the width should be the multiple of 8 */
+    this->width = width % 8 ? width + 8 - (width % 8) : width;
+    this->height = height;
+}
+
+Paint::~Paint() {
+}
+
+/**
+ *  @brief: clear the image
+ */
+void Paint::Clear(int colored) {
+    for (int x = 0; x < this->width; x++) {
+        for (int y = 0; y < this->height; y++) {
+            DrawAbsolutePixel(x, y, colored);
+        }
+    }
+}
+
+/**
+ *  @brief: this draws a pixel by absolute coordinates.
+ *          this function won't be affected by the rotate parameter.
+ */
+void Paint::DrawAbsolutePixel(int x, int y, int colored) {
+    if (x < 0 || x >= this->width || y < 0 || y >= this->height) {
+        return;
+    }
+    if (IF_INVERT_COLOR) {
+        if (colored) {
+            image[(x + y * this->width) / 8] |= 0x80 >> (x % 8);
+        } else {
+            image[(x + y * this->width) / 8] &= ~(0x80 >> (x % 8));
+        }
+    } else {
+        if (colored) {
+            image[(x + y * this->width) / 8] &= ~(0x80 >> (x % 8));
+        } else {
+            image[(x + y * this->width) / 8] |= 0x80 >> (x % 8);
+        }
+    }
+}
+
+/**
+ *  @brief: Getters and Setters
+ */
+unsigned char* Paint::GetImage(void) {
+    return this->image;
+}
+
+int Paint::GetWidth(void) {
+    return this->width;
+}
+
+void Paint::SetWidth(int width) {
+    this->width = width % 8 ? width + 8 - (width % 8) : width;
+}
+
+int Paint::GetHeight(void) {
+    return this->height;
+}
+
+void Paint::SetHeight(int height) {
+    this->height = height;
+}
+
+int Paint::GetRotate(void) {
+    return this->rotate;
+}
+
+void Paint::SetRotate(int rotate){
+    this->rotate = rotate;
+}
+
+/**
+ *  @brief: this draws a pixel by the coordinates
+ */
+void Paint::DrawPixel(int x, int y, int colored) {
+    int point_temp;
+    if (this->rotate == ROTATE_0) {
+        if(x < 0 || x >= this->width || y < 0 || y >= this->height) {
+            return;
+        }
+        DrawAbsolutePixel(x, y, colored);
+    } else if (this->rotate == ROTATE_90) {
+        if(x < 0 || x >= this->height || y < 0 || y >= this->width) {
+          return;
+        }
+        point_temp = x;
+        x = this->width - y;
+        y = point_temp;
+        DrawAbsolutePixel(x, y, colored);
+    } else if (this->rotate == ROTATE_180) {
+        if(x < 0 || x >= this->width || y < 0 || y >= this->height) {
+          return;
+        }
+        x = this->width - x;
+        y = this->height - y;
+        DrawAbsolutePixel(x, y, colored);
+    } else if (this->rotate == ROTATE_270) {
+        if(x < 0 || x >= this->height || y < 0 || y >= this->width) {
+          return;
+        }
+        point_temp = x;
+        x = y;
+        y = this->height - point_temp;
+        DrawAbsolutePixel(x, y, colored);
+    }
+}
+
+/**
+ *  @brief: this draws a charactor on the frame buffer but not refresh
+ */
+void Paint::DrawCharAt(int x, int y, char ascii_char, sFONT* font, int colored) {
+    int i, j;
+    unsigned int char_offset = (ascii_char - ' ') * font->Height * (font->Width / 8 + (font->Width % 8 ? 1 : 0));
+    const unsigned char* ptr = &font->table[char_offset];
+
+    for (j = 0; j < font->Height; j++) {
+        for (i = 0; i < font->Width; i++) {
+            if (pgm_read_byte(ptr) & (0x80 >> (i % 8))) {
+                DrawPixel(x + i, y + j, colored);
+            }
+            if (i % 8 == 7) {
+                ptr++;
+            }
+        }
+        if (font->Width % 8 != 0) {
+            ptr++;
+        }
+    }
+}
+
+/**
+*  @brief: this displays a string on the frame buffer but not refresh
+*/
+void Paint::DrawStringAt(int x, int y, const char* text, sFONT* font, int colored) {
+    const char* p_text = text;
+    unsigned int counter = 0;
+    int refcolumn = x;
+    
+    /* Send the string character by character on EPD */
+    while (*p_text != 0) {
+        /* Display one character on EPD */
+        DrawCharAt(refcolumn, y, *p_text, font, colored);
+        /* Decrement the column position by 16 */
+        refcolumn += font->Width;
+        /* Point on the next character */
+        p_text++;
+        counter++;
+    }
+}
+
+/**
+*  @brief: this draws a line on the frame buffer
+*/
+void Paint::DrawLine(int x0, int y0, int x1, int y1, int colored) {
+    /* Bresenham algorithm */
+    int dx = x1 - x0 >= 0 ? x1 - x0 : x0 - x1;
+    int sx = x0 < x1 ? 1 : -1;
+    int dy = y1 - y0 <= 0 ? y1 - y0 : y0 - y1;
+    int sy = y0 < y1 ? 1 : -1;
+    int err = dx + dy;
+
+    while((x0 != x1) && (y0 != y1)) {
+        DrawPixel(x0, y0 , colored);
+        if (2 * err >= dy) {     
+            err += dy;
+            x0 += sx;
+        }
+        if (2 * err <= dx) {
+            err += dx; 
+            y0 += sy;
+        }
+    }
+}
+
+/**
+*  @brief: this draws a horizontal line on the frame buffer
+*/
+void Paint::DrawHorizontalLine(int x, int y, int line_width, int colored) {
+    int i;
+    for (i = x; i < x + line_width; i++) {
+        DrawPixel(i, y, colored);
+    }
+}
+
+/**
+*  @brief: this draws a vertical line on the frame buffer
+*/
+void Paint::DrawVerticalLine(int x, int y, int line_height, int colored) {
+    int i;
+    for (i = y; i < y + line_height; i++) {
+        DrawPixel(x, i, colored);
+    }
+}
+
+/**
+*  @brief: this draws a rectangle
+*/
+void Paint::DrawRectangle(int x0, int y0, int x1, int y1, int colored) {
+    int min_x, min_y, max_x, max_y;
+    min_x = x1 > x0 ? x0 : x1;
+    max_x = x1 > x0 ? x1 : x0;
+    min_y = y1 > y0 ? y0 : y1;
+    max_y = y1 > y0 ? y1 : y0;
+    
+    DrawHorizontalLine(min_x, min_y, max_x - min_x + 1, colored);
+    DrawHorizontalLine(min_x, max_y, max_x - min_x + 1, colored);
+    DrawVerticalLine(min_x, min_y, max_y - min_y + 1, colored);
+    DrawVerticalLine(max_x, min_y, max_y - min_y + 1, colored);
+}
+
+/**
+*  @brief: this draws a filled rectangle
+*/
+void Paint::DrawFilledRectangle(int x0, int y0, int x1, int y1, int colored) {
+    int min_x, min_y, max_x, max_y;
+    int i;
+    min_x = x1 > x0 ? x0 : x1;
+    max_x = x1 > x0 ? x1 : x0;
+    min_y = y1 > y0 ? y0 : y1;
+    max_y = y1 > y0 ? y1 : y0;
+    
+    for (i = min_x; i <= max_x; i++) {
+      DrawVerticalLine(i, min_y, max_y - min_y + 1, colored);
+    }
+}
+
+/**
+*  @brief: this draws a circle
+*/
+void Paint::DrawCircle(int x, int y, int radius, int colored) {
+    /* Bresenham algorithm */
+    int x_pos = -radius;
+    int y_pos = 0;
+    int err = 2 - 2 * radius;
+    int e2;
+
+    do {
+        DrawPixel(x - x_pos, y + y_pos, colored);
+        DrawPixel(x + x_pos, y + y_pos, colored);
+        DrawPixel(x + x_pos, y - y_pos, colored);
+        DrawPixel(x - x_pos, y - y_pos, colored);
+        e2 = err;
+        if (e2 <= y_pos) {
+            err += ++y_pos * 2 + 1;
+            if(-x_pos == y_pos && e2 <= x_pos) {
+              e2 = 0;
+            }
+        }
+        if (e2 > x_pos) {
+            err += ++x_pos * 2 + 1;
+        }
+    } while (x_pos <= 0);
+}
+
+/**
+*  @brief: this draws a filled circle
+*/
+void Paint::DrawFilledCircle(int x, int y, int radius, int colored) {
+    /* Bresenham algorithm */
+    int x_pos = -radius;
+    int y_pos = 0;
+    int err = 2 - 2 * radius;
+    int e2;
+
+    do {
+        DrawPixel(x - x_pos, y + y_pos, colored);
+        DrawPixel(x + x_pos, y + y_pos, colored);
+        DrawPixel(x + x_pos, y - y_pos, colored);
+        DrawPixel(x - x_pos, y - y_pos, colored);
+        DrawHorizontalLine(x + x_pos, y + y_pos, 2 * (-x_pos) + 1, colored);
+        DrawHorizontalLine(x + x_pos, y - y_pos, 2 * (-x_pos) + 1, colored);
+        e2 = err;
+        if (e2 <= y_pos) {
+            err += ++y_pos * 2 + 1;
+            if(-x_pos == y_pos && e2 <= x_pos) {
+                e2 = 0;
+            }
+        }
+        if(e2 > x_pos) {
+            err += ++x_pos * 2 + 1;
+        }
+    } while(x_pos <= 0);
+}
+
+/* END OF FILE */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 75 - 0
Arduino/epd2in7_V2/epdpaint.h

@@ -0,0 +1,75 @@
+/**
+ *  @filename   :   epdpaint.h
+ *  @brief      :   Header file for epdpaint.cpp
+ *  @author     :   Yehui from Waveshare
+ *  
+ *  Copyright (C) Waveshare     July 28 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef EPDPAINT_H
+#define EPDPAINT_H
+
+// Display orientation
+#define ROTATE_0            0
+#define ROTATE_90           1
+#define ROTATE_180          2
+#define ROTATE_270          3
+
+// Color inverse. 1 or 0 = set or reset a bit if set a colored pixel
+#define IF_INVERT_COLOR     1
+
+#include "fonts.h"
+
+class Paint {
+public:
+    Paint(unsigned char* image, int width, int height);
+    ~Paint();
+    void Clear(int colored);
+    int  GetWidth(void);
+    void SetWidth(int width);
+    int  GetHeight(void);
+    void SetHeight(int height);
+    int  GetRotate(void);
+    void SetRotate(int rotate);
+    unsigned char* GetImage(void);
+    void DrawAbsolutePixel(int x, int y, int colored);
+    void DrawPixel(int x, int y, int colored);
+    void DrawCharAt(int x, int y, char ascii_char, sFONT* font, int colored);
+    void DrawStringAt(int x, int y, const char* text, sFONT* font, int colored);
+    void DrawLine(int x0, int y0, int x1, int y1, int colored);
+    void DrawHorizontalLine(int x, int y, int width, int colored);
+    void DrawVerticalLine(int x, int y, int height, int colored);
+    void DrawRectangle(int x0, int y0, int x1, int y1, int colored);
+    void DrawFilledRectangle(int x0, int y0, int x1, int y1, int colored);
+    void DrawCircle(int x, int y, int radius, int colored);
+    void DrawFilledCircle(int x, int y, int radius, int colored);
+
+private:
+    unsigned char* image;
+    int width;
+    int height;
+    int rotate;
+};
+
+#endif
+
+/* END OF FILE */
+

+ 1385 - 0
Arduino/epd2in7_V2/font12.cpp

@@ -0,0 +1,1385 @@
+/**
+  ******************************************************************************
+  * @file    Font12.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text Font12. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * Redistribution and use in source and binary forms, with or without modification,
+  * are permitted provided that the following conditions are met:
+  *   1. Redistributions of source code must retain the above copyright notice,
+  *      this list of conditions and the following disclaimer.
+  *   2. Redistributions in binary form must reproduce the above copyright notice,
+  *      this list of conditions and the following disclaimer in the documentation
+  *      and/or other materials provided with the distribution.
+  *   3. Neither the name of STMicroelectronics nor the names of its contributors
+  *      may be used to endorse or promote products derived from this software
+  *      without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include <avr/pgmspace.h>
+
+// 
+//  Font data for Courier New 12pt
+// 
+
+const uint8_t Font12_Table[] PROGMEM = 
+{
+	// @0 ' ' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @12 '!' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @24 '"' (7 pixels wide)
+	0x00, //        
+	0x6C, //  ## ## 
+	0x48, //  #  #  
+	0x48, //  #  #  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @36 '#' (7 pixels wide)
+	0x00, //        
+	0x14, //    # # 
+	0x14, //    # # 
+	0x28, //   # #  
+	0x7C, //  ##### 
+	0x28, //   # #  
+	0x7C, //  ##### 
+	0x28, //   # #  
+	0x50, //  # #   
+	0x50, //  # #   
+	0x00, //        
+	0x00, //        
+
+	// @48 '$' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x38, //   ###  
+	0x40, //  #     
+	0x40, //  #     
+	0x38, //   ###  
+	0x48, //  #  #  
+	0x70, //  ###   
+	0x10, //    #   
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+
+	// @60 '%' (7 pixels wide)
+	0x00, //        
+	0x20, //   #    
+	0x50, //  # #   
+	0x20, //   #    
+	0x0C, //     ## 
+	0x70, //  ###   
+	0x08, //     #  
+	0x14, //    # # 
+	0x08, //     #  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @72 '&' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x18, //    ##  
+	0x20, //   #    
+	0x20, //   #    
+	0x54, //  # # # 
+	0x48, //  #  #  
+	0x34, //   ## # 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @84 ''' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @96 '(' (7 pixels wide)
+	0x00, //        
+	0x08, //     #  
+	0x08, //     #  
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x08, //     #  
+	0x08, //     #  
+	0x00, //        
+
+	// @108 ')' (7 pixels wide)
+	0x00, //        
+	0x20, //   #    
+	0x20, //   #    
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x20, //   #    
+	0x20, //   #    
+	0x00, //        
+
+	// @120 '*' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x7C, //  ##### 
+	0x10, //    #   
+	0x28, //   # #  
+	0x28, //   # #  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @132 '+' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0xFE, // #######
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @144 ',' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x18, //    ##  
+	0x10, //    #   
+	0x30, //   ##   
+	0x20, //   #    
+	0x00, //        
+
+	// @156 '-' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @168 '.' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x30, //   ##   
+	0x30, //   ##   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @180 '/' (7 pixels wide)
+	0x00, //        
+	0x04, //      # 
+	0x04, //      # 
+	0x08, //     #  
+	0x08, //     #  
+	0x10, //    #   
+	0x10, //    #   
+	0x20, //   #    
+	0x20, //   #    
+	0x40, //  #     
+	0x00, //        
+	0x00, //        
+
+	// @192 '0' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @204 '1' (7 pixels wide)
+	0x00, //        
+	0x30, //   ##   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @216 '2' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x04, //      # 
+	0x08, //     #  
+	0x10, //    #   
+	0x20, //   #    
+	0x44, //  #   # 
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @228 '3' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x04, //      # 
+	0x18, //    ##  
+	0x04, //      # 
+	0x04, //      # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @240 '4' (7 pixels wide)
+	0x00, //        
+	0x0C, //     ## 
+	0x14, //    # # 
+	0x14, //    # # 
+	0x24, //   #  # 
+	0x44, //  #   # 
+	0x7E, //  ######
+	0x04, //      # 
+	0x0E, //     ###
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @252 '5' (7 pixels wide)
+	0x00, //        
+	0x3C, //   #### 
+	0x20, //   #    
+	0x20, //   #    
+	0x38, //   ###  
+	0x04, //      # 
+	0x04, //      # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @264 '6' (7 pixels wide)
+	0x00, //        
+	0x1C, //    ### 
+	0x20, //   #    
+	0x40, //  #     
+	0x78, //  ####  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @276 '7' (7 pixels wide)
+	0x00, //        
+	0x7C, //  ##### 
+	0x44, //  #   # 
+	0x04, //      # 
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x10, //    #   
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @288 '8' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @300 '9' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x3C, //   #### 
+	0x04, //      # 
+	0x08, //     #  
+	0x70, //  ###   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @312 ':' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x30, //   ##   
+	0x30, //   ##   
+	0x00, //        
+	0x00, //        
+	0x30, //   ##   
+	0x30, //   ##   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @324 ';' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x18, //    ##  
+	0x18, //    ##  
+	0x00, //        
+	0x00, //        
+	0x18, //    ##  
+	0x30, //   ##   
+	0x20, //   #    
+	0x00, //        
+	0x00, //        
+
+	// @336 '<' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x0C, //     ## 
+	0x10, //    #   
+	0x60, //  ##    
+	0x80, // #      
+	0x60, //  ##    
+	0x10, //    #   
+	0x0C, //     ## 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @348 '=' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x7C, //  ##### 
+	0x00, //        
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @360 '>' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0xC0, // ##     
+	0x20, //   #    
+	0x18, //    ##  
+	0x04, //      # 
+	0x18, //    ##  
+	0x20, //   #    
+	0xC0, // ##     
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @372 '?' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x18, //    ##  
+	0x24, //   #  # 
+	0x04, //      # 
+	0x08, //     #  
+	0x10, //    #   
+	0x00, //        
+	0x30, //   ##   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @384 '@' (7 pixels wide)
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x4C, //  #  ## 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x4C, //  #  ## 
+	0x40, //  #     
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+
+	// @396 'A' (7 pixels wide)
+	0x00, //        
+	0x30, //   ##   
+	0x10, //    #   
+	0x28, //   # #  
+	0x28, //   # #  
+	0x28, //   # #  
+	0x7C, //  ##### 
+	0x44, //  #   # 
+	0xEE, // ### ###
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @408 'B' (7 pixels wide)
+	0x00, //        
+	0xF8, // #####  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x78, //  ####  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0xF8, // #####  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @420 'C' (7 pixels wide)
+	0x00, //        
+	0x3C, //   #### 
+	0x44, //  #   # 
+	0x40, //  #     
+	0x40, //  #     
+	0x40, //  #     
+	0x40, //  #     
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @432 'D' (7 pixels wide)
+	0x00, //        
+	0xF0, // ####   
+	0x48, //  #  #  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x48, //  #  #  
+	0xF0, // ####   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @444 'E' (7 pixels wide)
+	0x00, //        
+	0xFC, // ###### 
+	0x44, //  #   # 
+	0x50, //  # #   
+	0x70, //  ###   
+	0x50, //  # #   
+	0x40, //  #     
+	0x44, //  #   # 
+	0xFC, // ###### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @456 'F' (7 pixels wide)
+	0x00, //        
+	0x7E, //  ######
+	0x22, //   #   #
+	0x28, //   # #  
+	0x38, //   ###  
+	0x28, //   # #  
+	0x20, //   #    
+	0x20, //   #    
+	0x70, //  ###   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @468 'G' (7 pixels wide)
+	0x00, //        
+	0x3C, //   #### 
+	0x44, //  #   # 
+	0x40, //  #     
+	0x40, //  #     
+	0x4E, //  #  ###
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @480 'H' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x7C, //  ##### 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0xEE, // ### ###
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @492 'I' (7 pixels wide)
+	0x00, //        
+	0x7C, //  ##### 
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @504 'J' (7 pixels wide)
+	0x00, //        
+	0x3C, //   #### 
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x48, //  #  #  
+	0x48, //  #  #  
+	0x48, //  #  #  
+	0x30, //   ##   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @516 'K' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x48, //  #  #  
+	0x50, //  # #   
+	0x70, //  ###   
+	0x48, //  #  #  
+	0x44, //  #   # 
+	0xE6, // ###  ##
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @528 'L' (7 pixels wide)
+	0x00, //        
+	0x70, //  ###   
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x24, //   #  # 
+	0x24, //   #  # 
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @540 'M' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x6C, //  ## ## 
+	0x6C, //  ## ## 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0xEE, // ### ###
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @552 'N' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x64, //  ##  # 
+	0x64, //  ##  # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x4C, //  #  ## 
+	0xEC, // ### ## 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @564 'O' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @576 'P' (7 pixels wide)
+	0x00, //        
+	0x78, //  ####  
+	0x24, //   #  # 
+	0x24, //   #  # 
+	0x24, //   #  # 
+	0x38, //   ###  
+	0x20, //   #    
+	0x20, //   #    
+	0x70, //  ###   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @588 'Q' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x1C, //    ### 
+	0x00, //        
+	0x00, //        
+
+	// @600 'R' (7 pixels wide)
+	0x00, //        
+	0xF8, // #####  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x78, //  ####  
+	0x48, //  #  #  
+	0x44, //  #   # 
+	0xE2, // ###   #
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @612 'S' (7 pixels wide)
+	0x00, //        
+	0x34, //   ## # 
+	0x4C, //  #  ## 
+	0x40, //  #     
+	0x38, //   ###  
+	0x04, //      # 
+	0x04, //      # 
+	0x64, //  ##  # 
+	0x58, //  # ##  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @624 'T' (7 pixels wide)
+	0x00, //        
+	0xFE, // #######
+	0x92, // #  #  #
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @636 'U' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @648 'V' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x28, //   # #  
+	0x28, //   # #  
+	0x28, //   # #  
+	0x10, //    #   
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @660 'W' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x28, //   # #  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @672 'X' (7 pixels wide)
+	0x00, //        
+	0xC6, // ##   ##
+	0x44, //  #   # 
+	0x28, //   # #  
+	0x10, //    #   
+	0x10, //    #   
+	0x28, //   # #  
+	0x44, //  #   # 
+	0xC6, // ##   ##
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @684 'Y' (7 pixels wide)
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x28, //   # #  
+	0x28, //   # #  
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @696 'Z' (7 pixels wide)
+	0x00, //        
+	0x7C, //  ##### 
+	0x44, //  #   # 
+	0x08, //     #  
+	0x10, //    #   
+	0x10, //    #   
+	0x20, //   #    
+	0x44, //  #   # 
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @708 '[' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x38, //   ###  
+	0x00, //        
+
+	// @720 '\' (7 pixels wide)
+	0x00, //        
+	0x40, //  #     
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x10, //    #   
+	0x10, //    #   
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x00, //        
+	0x00, //        
+
+	// @732 ']' (7 pixels wide)
+	0x00, //        
+	0x38, //   ###  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x38, //   ###  
+	0x00, //        
+
+	// @744 '^' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x10, //    #   
+	0x28, //   # #  
+	0x44, //  #   # 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @756 '_' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xFE, // #######
+
+	// @768 '`' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x08, //     #  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @780 'a' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x3C, //   #### 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x3E, //   #####
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @792 'b' (7 pixels wide)
+	0x00, //        
+	0xC0, // ##     
+	0x40, //  #     
+	0x58, //  # ##  
+	0x64, //  ##  # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0xF8, // #####  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @804 'c' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x3C, //   #### 
+	0x44, //  #   # 
+	0x40, //  #     
+	0x40, //  #     
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @816 'd' (7 pixels wide)
+	0x00, //        
+	0x0C, //     ## 
+	0x04, //      # 
+	0x34, //   ## # 
+	0x4C, //  #  ## 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x3E, //   #####
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @828 'e' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x7C, //  ##### 
+	0x40, //  #     
+	0x40, //  #     
+	0x3C, //   #### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @840 'f' (7 pixels wide)
+	0x00, //        
+	0x1C, //    ### 
+	0x20, //   #    
+	0x7C, //  ##### 
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @852 'g' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x36, //   ## ##
+	0x4C, //  #  ## 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x3C, //   #### 
+	0x04, //      # 
+	0x38, //   ###  
+	0x00, //        
+
+	// @864 'h' (7 pixels wide)
+	0x00, //        
+	0xC0, // ##     
+	0x40, //  #     
+	0x58, //  # ##  
+	0x64, //  ##  # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0xEE, // ### ###
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @876 'i' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x00, //        
+	0x70, //  ###   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @888 'j' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x00, //        
+	0x78, //  ####  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x08, //     #  
+	0x70, //  ###   
+	0x00, //        
+
+	// @900 'k' (7 pixels wide)
+	0x00, //        
+	0xC0, // ##     
+	0x40, //  #     
+	0x5C, //  # ### 
+	0x48, //  #  #  
+	0x70, //  ###   
+	0x50, //  # #   
+	0x48, //  #  #  
+	0xDC, // ## ### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @912 'l' (7 pixels wide)
+	0x00, //        
+	0x30, //   ##   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @924 'm' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xE8, // ### #  
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0xFE, // #######
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @936 'n' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xD8, // ## ##  
+	0x64, //  ##  # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0xEE, // ### ###
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @948 'o' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x38, //   ###  
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @960 'p' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xD8, // ## ##  
+	0x64, //  ##  # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x78, //  ####  
+	0x40, //  #     
+	0xE0, // ###    
+	0x00, //        
+
+	// @972 'q' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x36, //   ## ##
+	0x4C, //  #  ## 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x3C, //   #### 
+	0x04, //      # 
+	0x0E, //     ###
+	0x00, //        
+
+	// @984 'r' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x6C, //  ## ## 
+	0x30, //   ##   
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @996 's' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x3C, //   #### 
+	0x44, //  #   # 
+	0x38, //   ###  
+	0x04, //      # 
+	0x44, //  #   # 
+	0x78, //  ####  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @1008 't' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x20, //   #    
+	0x7C, //  ##### 
+	0x20, //   #    
+	0x20, //   #    
+	0x20, //   #    
+	0x22, //   #   #
+	0x1C, //    ### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @1020 'u' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xCC, // ##  ## 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x4C, //  #  ## 
+	0x36, //   ## ##
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @1032 'v' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x44, //  #   # 
+	0x28, //   # #  
+	0x28, //   # #  
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @1044 'w' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x54, //  # # # 
+	0x28, //   # #  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @1056 'x' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xCC, // ##  ## 
+	0x48, //  #  #  
+	0x30, //   ##   
+	0x30, //   ##   
+	0x48, //  #  #  
+	0xCC, // ##  ## 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @1068 'y' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0xEE, // ### ###
+	0x44, //  #   # 
+	0x24, //   #  # 
+	0x28, //   # #  
+	0x18, //    ##  
+	0x10, //    #   
+	0x10, //    #   
+	0x78, //  ####  
+	0x00, //        
+
+	// @1080 'z' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x7C, //  ##### 
+	0x48, //  #  #  
+	0x10, //    #   
+	0x20, //   #    
+	0x44, //  #   # 
+	0x7C, //  ##### 
+	0x00, //        
+	0x00, //        
+	0x00, //        
+
+	// @1092 '{' (7 pixels wide)
+	0x00, //        
+	0x08, //     #  
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x20, //   #    
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x08, //     #  
+	0x00, //        
+
+	// @1104 '|' (7 pixels wide)
+	0x00, //        
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x00, //        
+	0x00, //        
+
+	// @1116 '}' (7 pixels wide)
+	0x00, //        
+	0x20, //   #    
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x08, //     #  
+	0x10, //    #   
+	0x10, //    #   
+	0x10, //    #   
+	0x20, //   #    
+	0x00, //        
+
+	// @1128 '~' (7 pixels wide)
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x24, //   #  # 
+	0x58, //  # ##  
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+	0x00, //        
+};
+
+sFONT Font12 = {
+  Font12_Table,
+  7, /* Width */
+  12, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 1765 - 0
Arduino/epd2in7_V2/font16.cpp

@@ -0,0 +1,1765 @@
+/**
+  ******************************************************************************
+  * @file    font16.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text font16. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * Redistribution and use in source and binary forms, with or without modification,
+  * are permitted provided that the following conditions are met:
+  *   1. Redistributions of source code must retain the above copyright notice,
+  *      this list of conditions and the following disclaimer.
+  *   2. Redistributions in binary form must reproduce the above copyright notice,
+  *      this list of conditions and the following disclaimer in the documentation
+  *      and/or other materials provided with the distribution.
+  *   3. Neither the name of STMicroelectronics nor the names of its contributors
+  *      may be used to endorse or promote products derived from this software
+  *      without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include <avr/pgmspace.h>
+
+// 
+//  Font data for Courier New 12pt
+// 
+
+const uint8_t Font16_Table[] PROGMEM = 
+{
+	// @0 ' ' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @32 '!' (11 pixels wide)
+	0x00, 0x00, //            
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @64 '"' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1D, 0xC0, //    ### ### 
+	0x1D, 0xC0, //    ### ### 
+	0x08, 0x80, //     #   #  
+	0x08, 0x80, //     #   #  
+	0x08, 0x80, //     #   #  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @96 '#' (11 pixels wide)
+	0x00, 0x00, //            
+	0x0D, 0x80, //     ## ##  
+	0x0D, 0x80, //     ## ##  
+	0x0D, 0x80, //     ## ##  
+	0x0D, 0x80, //     ## ##  
+	0x3F, 0xC0, //   ######## 
+	0x1B, 0x00, //    ## ##   
+	0x3F, 0xC0, //   ######## 
+	0x1B, 0x00, //    ## ##   
+	0x1B, 0x00, //    ## ##   
+	0x1B, 0x00, //    ## ##   
+	0x1B, 0x00, //    ## ##   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @128 '$' (11 pixels wide)
+	0x04, 0x00, //      #     
+	0x1F, 0x80, //    ######  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x38, 0x00, //   ###      
+	0x1E, 0x00, //    ####    
+	0x0F, 0x00, //     ####   
+	0x03, 0x80, //       ###  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x3F, 0x00, //   ######   
+	0x04, 0x00, //      #     
+	0x04, 0x00, //      #     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @160 '%' (11 pixels wide)
+	0x00, 0x00, //            
+	0x18, 0x00, //    ##      
+	0x24, 0x00, //   #  #     
+	0x24, 0x00, //   #  #     
+	0x18, 0xC0, //    ##   ## 
+	0x07, 0x80, //      ####  
+	0x1E, 0x00, //    ####    
+	0x31, 0x80, //   ##   ##  
+	0x02, 0x40, //       #  # 
+	0x02, 0x40, //       #  # 
+	0x01, 0x80, //        ##  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @192 '&' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x0F, 0x00, //     ####   
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x0C, 0x00, //     ##     
+	0x1D, 0x80, //    ### ##  
+	0x37, 0x00, //   ## ###   
+	0x33, 0x00, //   ##  ##   
+	0x1D, 0x80, //    ### ##  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @224 ''' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x07, 0x00, //      ###   
+	0x07, 0x00, //      ###   
+	0x02, 0x00, //       #    
+	0x02, 0x00, //       #    
+	0x02, 0x00, //       #    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @256 '(' (11 pixels wide)
+	0x00, 0x00, //            
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x06, 0x00, //      ##    
+	0x0E, 0x00, //     ###    
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0E, 0x00, //     ###    
+	0x06, 0x00, //      ##    
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @288 ')' (11 pixels wide)
+	0x00, 0x00, //            
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x0C, 0x00, //     ##     
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x0C, 0x00, //     ##     
+	0x1C, 0x00, //    ###     
+	0x18, 0x00, //    ##      
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @320 '*' (11 pixels wide)
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x3F, 0xC0, //   ######## 
+	0x3F, 0xC0, //   ######## 
+	0x0F, 0x00, //     ####   
+	0x1F, 0x80, //    ######  
+	0x19, 0x80, //    ##  ##  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @352 '+' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x04, 0x00, //      #     
+	0x04, 0x00, //      #     
+	0x04, 0x00, //      #     
+	0x3F, 0x80, //   #######  
+	0x04, 0x00, //      #     
+	0x04, 0x00, //      #     
+	0x04, 0x00, //      #     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @384 ',' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x04, 0x00, //      #     
+	0x0C, 0x00, //     ##     
+	0x08, 0x00, //     #      
+	0x08, 0x00, //     #      
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @416 '-' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x3F, 0x80, //   #######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @448 '.' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @480 '/' (11 pixels wide)
+	0x00, 0xC0, //         ## 
+	0x00, 0xC0, //         ## 
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x06, 0x00, //      ##    
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @512 '0' (11 pixels wide)
+	0x00, 0x00, //            
+	0x0E, 0x00, //     ###    
+	0x1B, 0x00, //    ## ##   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x1B, 0x00, //    ## ##   
+	0x0E, 0x00, //     ###    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @544 '1' (11 pixels wide)
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x3E, 0x00, //   #####    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x3F, 0xC0, //   ######## 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @576 '2' (11 pixels wide)
+	0x00, 0x00, //            
+	0x0F, 0x00, //     ####   
+	0x19, 0x80, //    ##  ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x03, 0x00, //       ##   
+	0x06, 0x00, //      ##    
+	0x0C, 0x00, //     ##     
+	0x18, 0x00, //    ##      
+	0x30, 0x00, //   ##       
+	0x3F, 0x80, //   #######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @608 '3' (11 pixels wide)
+	0x00, 0x00, //            
+	0x3F, 0x00, //   ######   
+	0x61, 0x80, //  ##    ##  
+	0x01, 0x80, //        ##  
+	0x03, 0x00, //       ##   
+	0x1F, 0x00, //    #####   
+	0x03, 0x80, //       ###  
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x61, 0x80, //  ##    ##  
+	0x3F, 0x00, //   ######   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @640 '4' (11 pixels wide)
+	0x00, 0x00, //            
+	0x07, 0x00, //      ###   
+	0x07, 0x00, //      ###   
+	0x0F, 0x00, //     ####   
+	0x0B, 0x00, //     # ##   
+	0x1B, 0x00, //    ## ##   
+	0x13, 0x00, //    #  ##   
+	0x33, 0x00, //   ##  ##   
+	0x3F, 0x80, //   #######  
+	0x03, 0x00, //       ##   
+	0x0F, 0x80, //     #####  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @672 '5' (11 pixels wide)
+	0x00, 0x00, //            
+	0x1F, 0x80, //    ######  
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x1F, 0x00, //    #####   
+	0x11, 0x80, //    #   ##  
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x21, 0x80, //   #    ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @704 '6' (11 pixels wide)
+	0x00, 0x00, //            
+	0x07, 0x80, //      ####  
+	0x1C, 0x00, //    ###     
+	0x18, 0x00, //    ##      
+	0x30, 0x00, //   ##       
+	0x37, 0x00, //   ## ###   
+	0x39, 0x80, //   ###  ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x19, 0x80, //    ##  ##  
+	0x0F, 0x00, //     ####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @736 '7' (11 pixels wide)
+	0x00, 0x00, //            
+	0x7F, 0x00, //  #######   
+	0x43, 0x00, //  #    ##   
+	0x03, 0x00, //       ##   
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @768 '8' (11 pixels wide)
+	0x00, 0x00, //            
+	0x1F, 0x00, //    #####   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @800 '9' (11 pixels wide)
+	0x00, 0x00, //            
+	0x1E, 0x00, //    ####    
+	0x33, 0x00, //   ##  ##   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x33, 0x80, //   ##  ###  
+	0x1D, 0x80, //    ### ##  
+	0x01, 0x80, //        ##  
+	0x03, 0x00, //       ##   
+	0x07, 0x00, //      ###   
+	0x3C, 0x00, //   ####     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @832 ':' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @864 ';' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x04, 0x00, //      #     
+	0x08, 0x00, //     #      
+	0x08, 0x00, //     #      
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @896 '<' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0xC0, //         ## 
+	0x03, 0x00, //       ##   
+	0x04, 0x00, //      #     
+	0x18, 0x00, //    ##      
+	0x60, 0x00, //  ##        
+	0x18, 0x00, //    ##      
+	0x04, 0x00, //      #     
+	0x03, 0x00, //       ##   
+	0x00, 0xC0, //         ## 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @928 '=' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0xC0, //  ######### 
+	0x00, 0x00, //            
+	0x7F, 0xC0, //  ######### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @960 '>' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x60, 0x00, //  ##        
+	0x18, 0x00, //    ##      
+	0x04, 0x00, //      #     
+	0x03, 0x00, //       ##   
+	0x00, 0xC0, //         ## 
+	0x03, 0x00, //       ##   
+	0x04, 0x00, //      #     
+	0x18, 0x00, //    ##      
+	0x60, 0x00, //  ##        
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @992 '?' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x00, //    #####   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x01, 0x80, //        ##  
+	0x07, 0x00, //      ###   
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1024 '@' (11 pixels wide)
+	0x00, 0x00, //            
+	0x0E, 0x00, //     ###    
+	0x11, 0x00, //    #   #   
+	0x21, 0x00, //   #    #   
+	0x21, 0x00, //   #    #   
+	0x27, 0x00, //   #  ###   
+	0x29, 0x00, //   # #  #   
+	0x29, 0x00, //   # #  #   
+	0x27, 0x00, //   #  ###   
+	0x20, 0x00, //   #        
+	0x11, 0x00, //    #   #   
+	0x0E, 0x00, //     ###    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1056 'A' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x3F, 0x00, //   ######   
+	0x0F, 0x00, //     ####   
+	0x09, 0x00, //     #  #   
+	0x19, 0x80, //    ##  ##  
+	0x19, 0x80, //    ##  ##  
+	0x1F, 0x80, //    ######  
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x79, 0xE0, //  ####  ####
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1088 'B' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0x00, //  #######   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x3F, 0x00, //   ######   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x7F, 0x00, //  #######   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1120 'C' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x40, //    ##### # 
+	0x30, 0xC0, //   ##    ## 
+	0x60, 0x40, //  ##      # 
+	0x60, 0x00, //  ##        
+	0x60, 0x00, //  ##        
+	0x60, 0x00, //  ##        
+	0x60, 0x40, //  ##      # 
+	0x30, 0x80, //   ##    #  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1152 'D' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0x00, //  #######   
+	0x31, 0x80, //   ##   ##  
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x31, 0x80, //   ##   ##  
+	0x7F, 0x00, //  #######   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1184 'E' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0x80, //  ########  
+	0x30, 0x80, //   ##    #  
+	0x30, 0x80, //   ##    #  
+	0x32, 0x00, //   ##  #    
+	0x3E, 0x00, //   #####    
+	0x32, 0x00, //   ##  #    
+	0x30, 0x80, //   ##    #  
+	0x30, 0x80, //   ##    #  
+	0x7F, 0x80, //  ########  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1216 'F' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0xC0, //  ######### 
+	0x30, 0x40, //   ##     # 
+	0x30, 0x40, //   ##     # 
+	0x32, 0x00, //   ##  #    
+	0x3E, 0x00, //   #####    
+	0x32, 0x00, //   ##  #    
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x7C, 0x00, //  #####     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1248 'G' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1E, 0x80, //    #### #  
+	0x31, 0x80, //   ##   ##  
+	0x60, 0x80, //  ##     #  
+	0x60, 0x00, //  ##        
+	0x60, 0x00, //  ##        
+	0x67, 0xC0, //  ##  ##### 
+	0x61, 0x80, //  ##    ##  
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1280 'H' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0xC0, //  #### #### 
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x3F, 0x80, //   #######  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x7B, 0xC0, //  #### #### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1312 'I' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x3F, 0xC0, //   ######## 
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x3F, 0xC0, //   ######## 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1344 'J' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0xC0, //    ####### 
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x63, 0x00, //  ##   ##   
+	0x63, 0x00, //  ##   ##   
+	0x63, 0x00, //  ##   ##   
+	0x3E, 0x00, //   #####    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1376 'K' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0xC0, //  #### #### 
+	0x31, 0x80, //   ##   ##  
+	0x33, 0x00, //   ##  ##   
+	0x36, 0x00, //   ## ##    
+	0x3C, 0x00, //   ####     
+	0x3E, 0x00, //   #####    
+	0x33, 0x00, //   ##  ##   
+	0x31, 0x80, //   ##   ##  
+	0x79, 0xC0, //  ####  ### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1408 'L' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7E, 0x00, //  ######    
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x40, //    ##    # 
+	0x18, 0x40, //    ##    # 
+	0x18, 0x40, //    ##    # 
+	0x7F, 0xC0, //  ######### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1440 'M' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0xE0, 0xE0, // ###     ###
+	0x60, 0xC0, //  ##     ## 
+	0x71, 0xC0, //  ###   ### 
+	0x7B, 0xC0, //  #### #### 
+	0x6A, 0xC0, //  ## # # ## 
+	0x6E, 0xC0, //  ## ### ## 
+	0x64, 0xC0, //  ##  #  ## 
+	0x60, 0xC0, //  ##     ## 
+	0xFB, 0xE0, // ##### #####
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1472 'N' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x73, 0xC0, //  ###  #### 
+	0x31, 0x80, //   ##   ##  
+	0x39, 0x80, //   ###  ##  
+	0x3D, 0x80, //   #### ##  
+	0x35, 0x80, //   ## # ##  
+	0x37, 0x80, //   ## ####  
+	0x33, 0x80, //   ##  ###  
+	0x31, 0x80, //   ##   ##  
+	0x79, 0x80, //  ####  ##  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1504 'O' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x00, //    #####   
+	0x31, 0x80, //   ##   ##  
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1536 'P' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0x00, //  #######   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x3F, 0x00, //   ######   
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x7E, 0x00, //  ######    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1568 'Q' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x00, //    #####   
+	0x31, 0x80, //   ##   ##  
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x0C, 0xC0, //     ##  ## 
+	0x1F, 0x80, //    ######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1600 'R' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0x00, //  #######   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x3E, 0x00, //   #####    
+	0x33, 0x00, //   ##  ##   
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x7C, 0xE0, //  #####  ###
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1632 'S' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x80, //    ######  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x38, 0x00, //   ###      
+	0x1F, 0x00, //    #####   
+	0x03, 0x80, //       ###  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x3F, 0x00, //   ######   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1664 'T' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0x80, //  ########  
+	0x4C, 0x80, //  #  ##  #  
+	0x4C, 0x80, //  #  ##  #  
+	0x4C, 0x80, //  #  ##  #  
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x3F, 0x00, //   ######   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1696 'U' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0xC0, //  #### #### 
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1728 'V' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0xC0, //  #### #### 
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x1B, 0x00, //    ## ##   
+	0x1B, 0x00, //    ## ##   
+	0x1B, 0x00, //    ## ##   
+	0x0A, 0x00, //     # #    
+	0x0E, 0x00, //     ###    
+	0x0E, 0x00, //     ###    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1760 'W' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0xFB, 0xE0, // ##### #####
+	0x60, 0xC0, //  ##     ## 
+	0x64, 0xC0, //  ##  #  ## 
+	0x6E, 0xC0, //  ## ### ## 
+	0x6E, 0xC0, //  ## ### ## 
+	0x2A, 0x80, //   # # # #  
+	0x3B, 0x80, //   ### ###  
+	0x3B, 0x80, //   ### ###  
+	0x31, 0x80, //   ##   ##  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1792 'X' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0xC0, //  #### #### 
+	0x31, 0x80, //   ##   ##  
+	0x1B, 0x00, //    ## ##   
+	0x0E, 0x00, //     ###    
+	0x0E, 0x00, //     ###    
+	0x0E, 0x00, //     ###    
+	0x1B, 0x00, //    ## ##   
+	0x31, 0x80, //   ##   ##  
+	0x7B, 0xC0, //  #### #### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1824 'Y' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x79, 0xE0, //  ####  ####
+	0x30, 0xC0, //   ##    ## 
+	0x19, 0x80, //    ##  ##  
+	0x0F, 0x00, //     ####   
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x1F, 0x80, //    ######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1856 'Z' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x3F, 0x80, //   #######  
+	0x21, 0x80, //   #    ##  
+	0x23, 0x00, //   #   ##   
+	0x06, 0x00, //      ##    
+	0x04, 0x00, //      #     
+	0x0C, 0x00, //     ##     
+	0x18, 0x80, //    ##   #  
+	0x30, 0x80, //   ##    #  
+	0x3F, 0x80, //   #######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1888 '[' (11 pixels wide)
+	0x00, 0x00, //            
+	0x07, 0x80, //      ####  
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x07, 0x80, //      ####  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1920 '\' (11 pixels wide)
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x06, 0x00, //      ##    
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x00, 0xC0, //         ## 
+	0x00, 0xC0, //         ## 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1952 ']' (11 pixels wide)
+	0x00, 0x00, //            
+	0x1E, 0x00, //    ####    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x1E, 0x00, //    ####    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @1984 '^' (11 pixels wide)
+	0x04, 0x00, //      #     
+	0x0A, 0x00, //     # #    
+	0x0A, 0x00, //     # #    
+	0x11, 0x00, //    #   #   
+	0x20, 0x80, //   #     #  
+	0x20, 0x80, //   #     #  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2016 '_' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0xFF, 0xE0, // ###########
+
+	// @2048 '`' (11 pixels wide)
+	0x08, 0x00, //     #      
+	0x04, 0x00, //      #     
+	0x02, 0x00, //       #    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2080 'a' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x00, //    #####   
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x1F, 0x80, //    ######  
+	0x31, 0x80, //   ##   ##  
+	0x33, 0x80, //   ##  ###  
+	0x1D, 0xC0, //    ### ### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2112 'b' (11 pixels wide)
+	0x00, 0x00, //            
+	0x70, 0x00, //  ###       
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x37, 0x00, //   ## ###   
+	0x39, 0x80, //   ###  ##  
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x39, 0x80, //   ###  ##  
+	0x77, 0x00, //  ### ###   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2144 'c' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1E, 0x80, //    #### #  
+	0x31, 0x80, //   ##   ##  
+	0x60, 0x80, //  ##     #  
+	0x60, 0x00, //  ##        
+	0x60, 0x80, //  ##     #  
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2176 'd' (11 pixels wide)
+	0x00, 0x00, //            
+	0x03, 0x80, //       ###  
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x1D, 0x80, //    ### ##  
+	0x33, 0x80, //   ##  ###  
+	0x61, 0x80, //  ##    ##  
+	0x61, 0x80, //  ##    ##  
+	0x61, 0x80, //  ##    ##  
+	0x33, 0x80, //   ##  ###  
+	0x1D, 0xC0, //    ### ### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2208 'e' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x00, //    #####   
+	0x31, 0x80, //   ##   ##  
+	0x60, 0xC0, //  ##     ## 
+	0x7F, 0xC0, //  ######### 
+	0x60, 0x00, //  ##        
+	0x30, 0xC0, //   ##    ## 
+	0x1F, 0x80, //    ######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2240 'f' (11 pixels wide)
+	0x00, 0x00, //            
+	0x07, 0xE0, //      ######
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x3F, 0x80, //   #######  
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x3F, 0x80, //   #######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2272 'g' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1D, 0xC0, //    ### ### 
+	0x33, 0x80, //   ##  ###  
+	0x61, 0x80, //  ##    ##  
+	0x61, 0x80, //  ##    ##  
+	0x61, 0x80, //  ##    ##  
+	0x33, 0x80, //   ##  ###  
+	0x1D, 0x80, //    ### ##  
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2304 'h' (11 pixels wide)
+	0x00, 0x00, //            
+	0x70, 0x00, //  ###       
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x37, 0x00, //   ## ###   
+	0x39, 0x80, //   ###  ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x7B, 0xC0, //  #### #### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2336 'i' (11 pixels wide)
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x00, 0x00, //            
+	0x1E, 0x00, //    ####    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x3F, 0xC0, //   ######## 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2368 'j' (11 pixels wide)
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x00, 0x00, //            
+	0x3F, 0x00, //   ######   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x03, 0x00, //       ##   
+	0x3E, 0x00, //   #####    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2400 'k' (11 pixels wide)
+	0x00, 0x00, //            
+	0x70, 0x00, //  ###       
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x37, 0x80, //   ## ####  
+	0x36, 0x00, //   ## ##    
+	0x3C, 0x00, //   ####     
+	0x3C, 0x00, //   ####     
+	0x36, 0x00, //   ## ##    
+	0x33, 0x00, //   ##  ##   
+	0x77, 0xC0, //  ### ##### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2432 'l' (11 pixels wide)
+	0x00, 0x00, //            
+	0x1E, 0x00, //    ####    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x3F, 0xC0, //   ######## 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2464 'm' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7F, 0x80, //  ########  
+	0x36, 0xC0, //   ## ## ## 
+	0x36, 0xC0, //   ## ## ## 
+	0x36, 0xC0, //   ## ## ## 
+	0x36, 0xC0, //   ## ## ## 
+	0x36, 0xC0, //   ## ## ## 
+	0x76, 0xE0, //  ### ## ###
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2496 'n' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x77, 0x00, //  ### ###   
+	0x39, 0x80, //   ###  ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x7B, 0xC0, //  #### #### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2528 'o' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x00, //    #####   
+	0x31, 0x80, //   ##   ##  
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x60, 0xC0, //  ##     ## 
+	0x31, 0x80, //   ##   ##  
+	0x1F, 0x00, //    #####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2560 'p' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x77, 0x00, //  ### ###   
+	0x39, 0x80, //   ###  ##  
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x30, 0xC0, //   ##    ## 
+	0x39, 0x80, //   ###  ##  
+	0x37, 0x00, //   ## ###   
+	0x30, 0x00, //   ##       
+	0x30, 0x00, //   ##       
+	0x7C, 0x00, //  #####     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2592 'q' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1D, 0xC0, //    ### ### 
+	0x33, 0x80, //   ##  ###  
+	0x61, 0x80, //  ##    ##  
+	0x61, 0x80, //  ##    ##  
+	0x61, 0x80, //  ##    ##  
+	0x33, 0x80, //   ##  ###  
+	0x1D, 0x80, //    ### ##  
+	0x01, 0x80, //        ##  
+	0x01, 0x80, //        ##  
+	0x07, 0xC0, //      ##### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2624 'r' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0x80, //  #### ###  
+	0x1C, 0xC0, //    ###  ## 
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x7F, 0x00, //  #######   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2656 's' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x1F, 0x80, //    ######  
+	0x31, 0x80, //   ##   ##  
+	0x3C, 0x00, //   ####     
+	0x1F, 0x00, //    #####   
+	0x03, 0x80, //       ###  
+	0x31, 0x80, //   ##   ##  
+	0x3F, 0x00, //   ######   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2688 't' (11 pixels wide)
+	0x00, 0x00, //            
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x7F, 0x00, //  #######   
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x00, //    ##      
+	0x18, 0x80, //    ##   #  
+	0x0F, 0x00, //     ####   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2720 'u' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x73, 0x80, //  ###  ###  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x33, 0x80, //   ##  ###  
+	0x1D, 0xC0, //    ### ### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2752 'v' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0xC0, //  #### #### 
+	0x31, 0x80, //   ##   ##  
+	0x31, 0x80, //   ##   ##  
+	0x1B, 0x00, //    ## ##   
+	0x1B, 0x00, //    ## ##   
+	0x0E, 0x00, //     ###    
+	0x0E, 0x00, //     ###    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2784 'w' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0xF1, 0xE0, // ####   ####
+	0x60, 0xC0, //  ##     ## 
+	0x64, 0xC0, //  ##  #  ## 
+	0x6E, 0xC0, //  ## ### ## 
+	0x3B, 0x80, //   ### ###  
+	0x3B, 0x80, //   ### ###  
+	0x31, 0x80, //   ##   ##  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2816 'x' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x7B, 0xC0, //  #### #### 
+	0x1B, 0x00, //    ## ##   
+	0x0E, 0x00, //     ###    
+	0x0E, 0x00, //     ###    
+	0x0E, 0x00, //     ###    
+	0x1B, 0x00, //    ## ##   
+	0x7B, 0xC0, //  #### #### 
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2848 'y' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x79, 0xE0, //  ####  ####
+	0x30, 0xC0, //   ##    ## 
+	0x19, 0x80, //    ##  ##  
+	0x19, 0x80, //    ##  ##  
+	0x0B, 0x00, //     # ##   
+	0x0F, 0x00, //     ####   
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x0C, 0x00, //     ##     
+	0x3E, 0x00, //   #####    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2880 'z' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x3F, 0x80, //   #######  
+	0x21, 0x80, //   #    ##  
+	0x03, 0x00, //       ##   
+	0x0E, 0x00, //     ###    
+	0x18, 0x00, //    ##      
+	0x30, 0x80, //   ##    #  
+	0x3F, 0x80, //   #######  
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2912 '{' (11 pixels wide)
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x18, 0x00, //    ##      
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x0C, 0x00, //     ##     
+	0x06, 0x00, //      ##    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2944 '|' (11 pixels wide)
+	0x00, 0x00, //            
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @2976 '}' (11 pixels wide)
+	0x00, 0x00, //            
+	0x0C, 0x00, //     ##     
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x03, 0x00, //       ##   
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x06, 0x00, //      ##    
+	0x0C, 0x00, //     ##     
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+
+	// @3008 '~' (11 pixels wide)
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x18, 0x00, //    ##      
+	0x24, 0x80, //   #  #  #  
+	0x03, 0x00, //       ##   
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+	0x00, 0x00, //            
+};
+
+sFONT Font16 = {
+  Font16_Table,
+  11, /* Width */
+  16, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 2143 - 0
Arduino/epd2in7_V2/font20.cpp

@@ -0,0 +1,2143 @@
+/**
+  ******************************************************************************
+  * @file    font20.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text font20. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * Redistribution and use in source and binary forms, with or without modification,
+  * are permitted provided that the following conditions are met:
+  *   1. Redistributions of source code must retain the above copyright notice,
+  *      this list of conditions and the following disclaimer.
+  *   2. Redistributions in binary form must reproduce the above copyright notice,
+  *      this list of conditions and the following disclaimer in the documentation
+  *      and/or other materials provided with the distribution.
+  *   3. Neither the name of STMicroelectronics nor the names of its contributors
+  *      may be used to endorse or promote products derived from this software
+  *      without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include <avr/pgmspace.h>
+
+// Character bitmaps for Courier New 15pt
+const uint8_t Font20_Table[] PROGMEM = 
+{
+	// @0 ' ' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @40 '!' (14 pixels wide)
+	0x00, 0x00, //               
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x02, 0x00, //       #       
+	0x02, 0x00, //       #       
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @80 '"' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x1C, 0xE0, //    ###  ###   
+	0x1C, 0xE0, //    ###  ###   
+	0x1C, 0xE0, //    ###  ###   
+	0x08, 0x40, //     #    #    
+	0x08, 0x40, //     #    #    
+	0x08, 0x40, //     #    #    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @120 '#' (14 pixels wide)
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @160 '$' (14 pixels wide)
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x07, 0xE0, //      ######   
+	0x0F, 0xE0, //     #######   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x00, //    ##         
+	0x1F, 0x00, //    #####      
+	0x0F, 0xC0, //     ######    
+	0x00, 0xE0, //         ###   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x1F, 0xC0, //    #######    
+	0x1F, 0x80, //    ######     
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @200 '%' (14 pixels wide)
+	0x00, 0x00, //               
+	0x1C, 0x00, //    ###        
+	0x22, 0x00, //   #   #       
+	0x22, 0x00, //   #   #       
+	0x22, 0x00, //   #   #       
+	0x1C, 0x60, //    ###   ##   
+	0x01, 0xE0, //        ####   
+	0x0F, 0x80, //     #####     
+	0x3C, 0x00, //   ####        
+	0x31, 0xC0, //   ##   ###    
+	0x02, 0x20, //       #   #   
+	0x02, 0x20, //       #   #   
+	0x02, 0x20, //       #   #   
+	0x01, 0xC0, //        ###    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @240 '&' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0xE0, //       #####   
+	0x0F, 0xE0, //     #######   
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x06, 0x00, //      ##       
+	0x0F, 0x30, //     ####  ##  
+	0x1F, 0xF0, //    #########  
+	0x19, 0xE0, //    ##  ####   
+	0x18, 0xC0, //    ##   ##    
+	0x1F, 0xF0, //    #########  
+	0x07, 0xB0, //      #### ##  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @280 ''' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x01, 0x00, //        #      
+	0x01, 0x00, //        #      
+	0x01, 0x00, //        #      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @320 '(' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @360 ')' (14 pixels wide)
+	0x00, 0x00, //               
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @400 '*' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x1B, 0x60, //    ## ## ##   
+	0x1F, 0xE0, //    ########   
+	0x07, 0x80, //      ####     
+	0x07, 0x80, //      ####     
+	0x0F, 0xC0, //     ######    
+	0x0C, 0xC0, //     ##  ##    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @440 '+' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @480 ',' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0x80, //       ###     
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x04, 0x00, //      #        
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @520 '-' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0xE0, //   #########   
+	0x3F, 0xE0, //   #########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @560 '.' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @600 '/' (14 pixels wide)
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x18, 0x00, //    ##         
+	0x18, 0x00, //    ##         
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @640 '0' (14 pixels wide)
+	0x00, 0x00, //               
+	0x0F, 0x80, //     #####     
+	0x1F, 0xC0, //    #######    
+	0x18, 0xC0, //    ##   ##    
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x18, 0xC0, //    ##   ##    
+	0x1F, 0xC0, //    #######    
+	0x0F, 0x80, //     #####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @680 '1' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0x00, //       ##      
+	0x1F, 0x00, //    #####      
+	0x1F, 0x00, //    #####      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @720 '2' (14 pixels wide)
+	0x00, 0x00, //               
+	0x0F, 0x80, //     #####     
+	0x1F, 0xC0, //    #######    
+	0x38, 0xE0, //   ###   ###   
+	0x30, 0x60, //   ##     ##   
+	0x00, 0x60, //          ##   
+	0x00, 0xC0, //         ##    
+	0x01, 0x80, //        ##     
+	0x03, 0x00, //       ##      
+	0x06, 0x00, //      ##       
+	0x0C, 0x00, //     ##        
+	0x18, 0x00, //    ##         
+	0x3F, 0xE0, //   #########   
+	0x3F, 0xE0, //   #########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @760 '3' (14 pixels wide)
+	0x00, 0x00, //               
+	0x0F, 0x80, //     #####     
+	0x3F, 0xC0, //   ########    
+	0x30, 0xE0, //   ##    ###   
+	0x00, 0x60, //          ##   
+	0x00, 0xE0, //         ###   
+	0x07, 0xC0, //      #####    
+	0x07, 0xC0, //      #####    
+	0x00, 0xE0, //         ###   
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x60, 0xE0, //  ##     ###   
+	0x7F, 0xC0, //  #########    
+	0x3F, 0x80, //   #######     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @800 '4' (14 pixels wide)
+	0x00, 0x00, //               
+	0x01, 0xC0, //        ###    
+	0x03, 0xC0, //       ####    
+	0x03, 0xC0, //       ####    
+	0x06, 0xC0, //      ## ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x18, 0xC0, //    ##   ##    
+	0x30, 0xC0, //   ##    ##    
+	0x3F, 0xE0, //   #########   
+	0x3F, 0xE0, //   #########   
+	0x00, 0xC0, //         ##    
+	0x03, 0xE0, //       #####   
+	0x03, 0xE0, //       #####   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @840 '5' (14 pixels wide)
+	0x00, 0x00, //               
+	0x1F, 0xC0, //    #######    
+	0x1F, 0xC0, //    #######    
+	0x18, 0x00, //    ##         
+	0x18, 0x00, //    ##         
+	0x1F, 0x80, //    ######     
+	0x1F, 0xC0, //    #######    
+	0x18, 0xE0, //    ##   ###   
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x30, 0xE0, //   ##    ###   
+	0x3F, 0xC0, //   ########    
+	0x1F, 0x80, //    ######     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @880 '6' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0xE0, //       #####   
+	0x0F, 0xE0, //     #######   
+	0x1E, 0x00, //    ####       
+	0x18, 0x00, //    ##         
+	0x38, 0x00, //   ###         
+	0x37, 0x80, //   ## ####     
+	0x3F, 0xC0, //   ########    
+	0x38, 0xE0, //   ###   ###   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x18, 0xE0, //    ##   ###   
+	0x1F, 0xC0, //    #######    
+	0x07, 0x80, //      ####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @920 '7' (14 pixels wide)
+	0x00, 0x00, //               
+	0x3F, 0xE0, //   #########   
+	0x3F, 0xE0, //   #########   
+	0x30, 0x60, //   ##     ##   
+	0x00, 0x60, //          ##   
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @960 '8' (14 pixels wide)
+	0x00, 0x00, //               
+	0x0F, 0x80, //     #####     
+	0x1F, 0xC0, //    #######    
+	0x38, 0xE0, //   ###   ###   
+	0x30, 0x60, //   ##     ##   
+	0x38, 0xE0, //   ###   ###   
+	0x1F, 0xC0, //    #######    
+	0x1F, 0xC0, //    #######    
+	0x38, 0xE0, //   ###   ###   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x38, 0xE0, //   ###   ###   
+	0x1F, 0xC0, //    #######    
+	0x0F, 0x80, //     #####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1000 '9' (14 pixels wide)
+	0x00, 0x00, //               
+	0x0F, 0x00, //     ####      
+	0x1F, 0xC0, //    #######    
+	0x38, 0xC0, //   ###   ##    
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x38, 0xE0, //   ###   ###   
+	0x1F, 0xE0, //    ########   
+	0x0F, 0x60, //     #### ##   
+	0x00, 0xE0, //         ###   
+	0x00, 0xC0, //         ##    
+	0x03, 0xC0, //       ####    
+	0x3F, 0x80, //   #######     
+	0x3E, 0x00, //   #####       
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1040 ':' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x03, 0x80, //       ###     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1080 ';' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x01, 0xC0, //        ###    
+	0x01, 0xC0, //        ###    
+	0x01, 0xC0, //        ###    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0x80, //       ###     
+	0x03, 0x00, //       ##      
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x04, 0x00, //      #        
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1120 '<' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x30, //           ##  
+	0x00, 0xF0, //         ####  
+	0x03, 0xC0, //       ####    
+	0x07, 0x00, //      ###      
+	0x1C, 0x00, //    ###        
+	0x78, 0x00, //  ####         
+	0x1C, 0x00, //    ###        
+	0x07, 0x00, //      ###      
+	0x03, 0xC0, //       ####    
+	0x00, 0xF0, //         ####  
+	0x00, 0x30, //           ##  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1160 '=' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x7F, 0xF0, //  ###########  
+	0x7F, 0xF0, //  ###########  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x7F, 0xF0, //  ###########  
+	0x7F, 0xF0, //  ###########  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1200 '>' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x30, 0x00, //   ##          
+	0x3C, 0x00, //   ####        
+	0x0F, 0x00, //     ####      
+	0x03, 0x80, //       ###     
+	0x00, 0xE0, //         ###   
+	0x00, 0x78, //          #### 
+	0x00, 0xE0, //         ###   
+	0x03, 0x80, //       ###     
+	0x0F, 0x00, //     ####      
+	0x3C, 0x00, //   ####        
+	0x30, 0x00, //   ##          
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1240 '?' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x0F, 0x80, //     #####     
+	0x1F, 0xC0, //    #######    
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x00, 0x60, //          ##   
+	0x01, 0xC0, //        ###    
+	0x03, 0x80, //       ###     
+	0x03, 0x00, //       ##      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1280 '@' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0x80, //       ###     
+	0x0C, 0x80, //     ##  #     
+	0x08, 0x40, //     #    #    
+	0x10, 0x40, //    #     #    
+	0x10, 0x40, //    #     #    
+	0x11, 0xC0, //    #   ###    
+	0x12, 0x40, //    #  #  #    
+	0x12, 0x40, //    #  #  #    
+	0x12, 0x40, //    #  #  #    
+	0x11, 0xC0, //    #   ###    
+	0x10, 0x00, //    #          
+	0x08, 0x00, //     #         
+	0x08, 0x40, //     #    #    
+	0x07, 0x80, //      ####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1320 'A' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x1F, 0x80, //    ######     
+	0x1F, 0x80, //    ######     
+	0x03, 0x80, //       ###     
+	0x06, 0xC0, //      ## ##    
+	0x06, 0xC0, //      ## ##    
+	0x0C, 0xC0, //     ##  ##    
+	0x0C, 0x60, //     ##   ##   
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x30, 0x30, //   ##      ##  
+	0x78, 0x78, //  ####    #### 
+	0x78, 0x78, //  ####    #### 
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1360 'B' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0x80, //   #######     
+	0x3F, 0xC0, //   ########    
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0xE0, //    ##   ###   
+	0x1F, 0xC0, //    #######    
+	0x1F, 0xE0, //    ########   
+	0x18, 0x70, //    ##    ###  
+	0x18, 0x30, //    ##     ##  
+	0x18, 0x30, //    ##     ##  
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xE0, //   #########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1400 'C' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0xB0, //      #### ##  
+	0x0F, 0xF0, //     ########  
+	0x1C, 0x70, //    ###   ###  
+	0x38, 0x30, //   ###     ##  
+	0x30, 0x00, //   ##          
+	0x30, 0x00, //   ##          
+	0x30, 0x00, //   ##          
+	0x30, 0x00, //   ##          
+	0x38, 0x30, //   ###     ##  
+	0x1C, 0x70, //    ###   ###  
+	0x0F, 0xE0, //     #######   
+	0x07, 0xC0, //      #####    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1440 'D' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x7F, 0x80, //  ########     
+	0x7F, 0xC0, //  #########    
+	0x30, 0xE0, //   ##    ###   
+	0x30, 0x70, //   ##     ###  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x70, //   ##     ###  
+	0x30, 0xE0, //   ##    ###   
+	0x7F, 0xC0, //  #########    
+	0x7F, 0x80, //  ########     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1480 'E' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x18, 0x30, //    ##     ##  
+	0x18, 0x30, //    ##     ##  
+	0x19, 0x80, //    ##  ##     
+	0x1F, 0x80, //    ######     
+	0x1F, 0x80, //    ######     
+	0x19, 0x80, //    ##  ##     
+	0x18, 0x30, //    ##     ##  
+	0x18, 0x30, //    ##     ##  
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1520 'F' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x18, 0x30, //    ##     ##  
+	0x18, 0x30, //    ##     ##  
+	0x19, 0x80, //    ##  ##     
+	0x1F, 0x80, //    ######     
+	0x1F, 0x80, //    ######     
+	0x19, 0x80, //    ##  ##     
+	0x18, 0x00, //    ##         
+	0x18, 0x00, //    ##         
+	0x3F, 0x00, //   ######      
+	0x3F, 0x00, //   ######      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1560 'G' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0xB0, //      #### ##  
+	0x1F, 0xF0, //    #########  
+	0x18, 0x70, //    ##    ###  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x00, //   ##          
+	0x30, 0x00, //   ##          
+	0x31, 0xF8, //   ##   ###### 
+	0x31, 0xF8, //   ##   ###### 
+	0x30, 0x30, //   ##      ##  
+	0x18, 0x30, //    ##     ##  
+	0x1F, 0xF0, //    #########  
+	0x07, 0xC0, //      #####    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1600 'H' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1640 'I' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1680 'J' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x03, 0xF8, //       ####### 
+	0x03, 0xF8, //       ####### 
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x30, 0xE0, //   ##    ###   
+	0x3F, 0xC0, //   ########    
+	0x0F, 0x80, //     #####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1720 'K' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3E, 0xF8, //   ##### ##### 
+	0x3E, 0xF8, //   ##### ##### 
+	0x18, 0xE0, //    ##   ###   
+	0x19, 0x80, //    ##  ##     
+	0x1B, 0x00, //    ## ##      
+	0x1F, 0x00, //    #####      
+	0x1D, 0x80, //    ### ##     
+	0x18, 0xC0, //    ##   ##    
+	0x18, 0xC0, //    ##   ##    
+	0x18, 0x60, //    ##    ##   
+	0x3E, 0x78, //   #####  #### 
+	0x3E, 0x38, //   #####   ### 
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1760 'L' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0x00, //   ######      
+	0x3F, 0x00, //   ######      
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x30, //     ##    ##  
+	0x0C, 0x30, //     ##    ##  
+	0x0C, 0x30, //     ##    ##  
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1800 'M' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x78, 0x78, //  ####    #### 
+	0x78, 0x78, //  ####    #### 
+	0x38, 0x70, //   ###    ###  
+	0x3C, 0xF0, //   ####  ####  
+	0x34, 0xB0, //   ## #  # ##  
+	0x37, 0xB0, //   ## #### ##  
+	0x37, 0xB0, //   ## #### ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x30, 0x30, //   ##      ##  
+	0x7C, 0xF8, //  #####  ##### 
+	0x7C, 0xF8, //  #####  ##### 
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1840 'N' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x39, 0xF0, //   ###  #####  
+	0x3D, 0xF0, //   #### #####  
+	0x1C, 0x60, //    ###   ##   
+	0x1E, 0x60, //    ####  ##   
+	0x1E, 0x60, //    ####  ##   
+	0x1B, 0x60, //    ## ## ##   
+	0x1B, 0x60, //    ## ## ##   
+	0x19, 0xE0, //    ##  ####   
+	0x19, 0xE0, //    ##  ####   
+	0x18, 0xE0, //    ##   ###   
+	0x3E, 0xE0, //   ##### ###   
+	0x3E, 0x60, //   #####  ##   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1880 'O' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0x80, //      ####     
+	0x0F, 0xC0, //     ######    
+	0x1C, 0xE0, //    ###  ###   
+	0x38, 0x70, //   ###    ###  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x38, 0x70, //   ###    ###  
+	0x1C, 0xE0, //    ###  ###   
+	0x0F, 0xC0, //     ######    
+	0x07, 0x80, //      ####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1920 'P' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0xC0, //   ########    
+	0x3F, 0xE0, //   #########   
+	0x18, 0x70, //    ##    ###  
+	0x18, 0x30, //    ##     ##  
+	0x18, 0x30, //    ##     ##  
+	0x18, 0x70, //    ##    ###  
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xC0, //    #######    
+	0x18, 0x00, //    ##         
+	0x18, 0x00, //    ##         
+	0x3F, 0x00, //   ######      
+	0x3F, 0x00, //   ######      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @1960 'Q' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0x80, //      ####     
+	0x0F, 0xC0, //     ######    
+	0x1C, 0xE0, //    ###  ###   
+	0x38, 0x70, //   ###    ###  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x38, 0x70, //   ###    ###  
+	0x1C, 0xE0, //    ###  ###   
+	0x0F, 0xC0, //     ######    
+	0x07, 0x80, //      ####     
+	0x07, 0xB0, //      #### ##  
+	0x0F, 0xF0, //     ########  
+	0x0C, 0xE0, //     ##  ###   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2000 'R' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0xC0, //   ########    
+	0x3F, 0xE0, //   #########   
+	0x18, 0x70, //    ##    ###  
+	0x18, 0x30, //    ##     ##  
+	0x18, 0x70, //    ##    ###  
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xC0, //    #######    
+	0x18, 0xE0, //    ##   ###   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x70, //    ##    ###  
+	0x3E, 0x38, //   #####   ### 
+	0x3E, 0x18, //   #####    ## 
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2040 'S' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x0F, 0xB0, //     ##### ##  
+	0x1F, 0xF0, //    #########  
+	0x38, 0x70, //   ###    ###  
+	0x30, 0x30, //   ##      ##  
+	0x38, 0x00, //   ###         
+	0x1F, 0x80, //    ######     
+	0x07, 0xE0, //      ######   
+	0x00, 0x70, //          ###  
+	0x30, 0x30, //   ##      ##  
+	0x38, 0x70, //   ###    ###  
+	0x3F, 0xE0, //   #########   
+	0x37, 0xC0, //   ## #####    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2080 'T' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x33, 0x30, //   ##  ##  ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x0F, 0xC0, //     ######    
+	0x0F, 0xC0, //     ######    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2120 'U' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x1C, 0xE0, //    ###  ###   
+	0x0F, 0xC0, //     ######    
+	0x07, 0x80, //      ####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2160 'V' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x78, 0xF0, //  ####   ####  
+	0x78, 0xF0, //  ####   ####  
+	0x30, 0x60, //   ##     ##   
+	0x30, 0x60, //   ##     ##   
+	0x18, 0xC0, //    ##   ##    
+	0x18, 0xC0, //    ##   ##    
+	0x0D, 0x80, //     ## ##     
+	0x0D, 0x80, //     ## ##     
+	0x0D, 0x80, //     ## ##     
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2200 'W' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x7C, 0x7C, //  #####   #####
+	0x7C, 0x7C, //  #####   #####
+	0x30, 0x18, //   ##       ## 
+	0x33, 0x98, //   ##  ###  ## 
+	0x33, 0x98, //   ##  ###  ## 
+	0x33, 0x98, //   ##  ###  ## 
+	0x36, 0xD8, //   ## ## ## ## 
+	0x16, 0xD0, //    # ## ## #  
+	0x1C, 0x70, //    ###   ###  
+	0x1C, 0x70, //    ###   ###  
+	0x1C, 0x70, //    ###   ###  
+	0x18, 0x30, //    ##     ##  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2240 'X' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x78, 0xF0, //  ####   ####  
+	0x78, 0xF0, //  ####   ####  
+	0x30, 0x60, //   ##     ##   
+	0x18, 0xC0, //    ##   ##    
+	0x0D, 0x80, //     ## ##     
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x0D, 0x80, //     ## ##     
+	0x18, 0xC0, //    ##   ##    
+	0x30, 0x60, //   ##     ##   
+	0x78, 0xF0, //  ####   ####  
+	0x78, 0xF0, //  ####   ####  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2280 'Y' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x18, 0x60, //    ##    ##   
+	0x0C, 0xC0, //     ##  ##    
+	0x07, 0x80, //      ####     
+	0x07, 0x80, //      ####     
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x0F, 0xC0, //     ######    
+	0x0F, 0xC0, //     ######    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2320 'Z' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0xC0, //    ##   ##    
+	0x01, 0x80, //        ##     
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x06, 0x00, //      ##       
+	0x0C, 0x60, //     ##   ##   
+	0x18, 0x60, //    ##    ##   
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2360 '[' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0xC0, //       ####    
+	0x03, 0xC0, //       ####    
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0xC0, //       ####    
+	0x03, 0xC0, //       ####    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2400 '\' (14 pixels wide)
+	0x18, 0x00, //    ##         
+	0x18, 0x00, //    ##         
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x01, 0x80, //        ##     
+	0x01, 0x80, //        ##     
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0x60, //          ##   
+	0x00, 0x60, //          ##   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2440 ']' (14 pixels wide)
+	0x00, 0x00, //               
+	0x0F, 0x00, //     ####      
+	0x0F, 0x00, //     ####      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x0F, 0x00, //     ####      
+	0x0F, 0x00, //     ####      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2480 '^' (14 pixels wide)
+	0x00, 0x00, //               
+	0x02, 0x00, //       #       
+	0x07, 0x00, //      ###      
+	0x0D, 0x80, //     ## ##     
+	0x18, 0xC0, //    ##   ##    
+	0x30, 0x60, //   ##     ##   
+	0x20, 0x20, //   #       #   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2520 '_' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0xFF, 0xFC, // ##############
+	0xFF, 0xFC, // ##############
+
+	// @2560 '`' (14 pixels wide)
+	0x00, 0x00, //               
+	0x04, 0x00, //      #        
+	0x03, 0x00, //       ##      
+	0x00, 0x80, //         #     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2600 'a' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x0F, 0xC0, //     ######    
+	0x1F, 0xE0, //    ########   
+	0x00, 0x60, //          ##   
+	0x0F, 0xE0, //     #######   
+	0x1F, 0xE0, //    ########   
+	0x38, 0x60, //   ###    ##   
+	0x30, 0xE0, //   ##    ###   
+	0x3F, 0xF0, //   ##########  
+	0x1F, 0x70, //    ##### ###  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2640 'b' (14 pixels wide)
+	0x00, 0x00, //               
+	0x70, 0x00, //  ###          
+	0x70, 0x00, //  ###          
+	0x30, 0x00, //   ##          
+	0x30, 0x00, //   ##          
+	0x37, 0x80, //   ## ####     
+	0x3F, 0xE0, //   #########   
+	0x38, 0x60, //   ###    ##   
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x38, 0x60, //   ###    ##   
+	0x7F, 0xE0, //  ##########   
+	0x77, 0x80, //  ### ####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2680 'c' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0xB0, //      #### ##  
+	0x1F, 0xF0, //    #########  
+	0x18, 0x30, //    ##     ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x00, //   ##          
+	0x30, 0x00, //   ##          
+	0x38, 0x30, //   ###     ##  
+	0x1F, 0xF0, //    #########  
+	0x0F, 0xC0, //     ######    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2720 'd' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x70, //          ###  
+	0x00, 0x70, //          ###  
+	0x00, 0x30, //           ##  
+	0x00, 0x30, //           ##  
+	0x07, 0xB0, //      #### ##  
+	0x1F, 0xF0, //    #########  
+	0x18, 0x70, //    ##    ###  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x38, 0x70, //   ###    ###  
+	0x1F, 0xF8, //    ########## 
+	0x07, 0xB8, //      #### ### 
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2760 'e' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0x80, //      ####     
+	0x1F, 0xE0, //    ########   
+	0x18, 0x60, //    ##    ##   
+	0x3F, 0xF0, //   ##########  
+	0x3F, 0xF0, //   ##########  
+	0x30, 0x00, //   ##          
+	0x18, 0x30, //    ##     ##  
+	0x1F, 0xF0, //    #########  
+	0x07, 0xC0, //      #####    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2800 'f' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0xF0, //       ######  
+	0x07, 0xF0, //      #######  
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2840 'g' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0xB8, //      #### ### 
+	0x1F, 0xF8, //    ########## 
+	0x18, 0x70, //    ##    ###  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x18, 0x70, //    ##    ###  
+	0x1F, 0xF0, //    #########  
+	0x07, 0xB0, //      #### ##  
+	0x00, 0x30, //           ##  
+	0x00, 0x70, //          ###  
+	0x0F, 0xE0, //     #######   
+	0x0F, 0xC0, //     ######    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2880 'h' (14 pixels wide)
+	0x00, 0x00, //               
+	0x38, 0x00, //   ###         
+	0x38, 0x00, //   ###         
+	0x18, 0x00, //    ##         
+	0x18, 0x00, //    ##         
+	0x1B, 0xC0, //    ## ####    
+	0x1F, 0xE0, //    ########   
+	0x1C, 0x60, //    ###   ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2920 'i' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x1F, 0x00, //    #####      
+	0x1F, 0x00, //    #####      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @2960 'j' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x1F, 0xC0, //    #######    
+	0x1F, 0xC0, //    #######    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x00, 0xC0, //         ##    
+	0x01, 0xC0, //        ###    
+	0x3F, 0x80, //   #######     
+	0x3F, 0x00, //   ######      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3000 'k' (14 pixels wide)
+	0x00, 0x00, //               
+	0x38, 0x00, //   ###         
+	0x38, 0x00, //   ###         
+	0x18, 0x00, //    ##         
+	0x18, 0x00, //    ##         
+	0x1B, 0xE0, //    ## #####   
+	0x1B, 0xE0, //    ## #####   
+	0x1B, 0x00, //    ## ##      
+	0x1E, 0x00, //    ####       
+	0x1E, 0x00, //    ####       
+	0x1B, 0x00, //    ## ##      
+	0x19, 0x80, //    ##  ##     
+	0x39, 0xF0, //   ###  #####  
+	0x39, 0xF0, //   ###  #####  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3040 'l' (14 pixels wide)
+	0x00, 0x00, //               
+	0x1F, 0x00, //    #####      
+	0x1F, 0x00, //    #####      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3080 'm' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x7E, 0xE0, //  ###### ###   
+	0x7F, 0xF0, //  ###########  
+	0x33, 0x30, //   ##  ##  ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x33, 0x30, //   ##  ##  ##  
+	0x7B, 0xB8, //  #### ### ### 
+	0x7B, 0xB8, //  #### ### ### 
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3120 'n' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3B, 0xC0, //   ### ####    
+	0x3F, 0xE0, //   #########   
+	0x1C, 0x60, //    ###   ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3160 'o' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0x80, //      ####     
+	0x1F, 0xE0, //    ########   
+	0x18, 0x60, //    ##    ##   
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x18, 0x60, //    ##    ##   
+	0x1F, 0xE0, //    ########   
+	0x07, 0x80, //      ####     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3200 'p' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x77, 0x80, //  ### ####     
+	0x7F, 0xE0, //  ##########   
+	0x38, 0x60, //   ###    ##   
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x38, 0x60, //   ###    ##   
+	0x3F, 0xE0, //   #########   
+	0x37, 0x80, //   ## ####     
+	0x30, 0x00, //   ##          
+	0x30, 0x00, //   ##          
+	0x7C, 0x00, //  #####        
+	0x7C, 0x00, //  #####        
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3240 'q' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0xB8, //      #### ### 
+	0x1F, 0xF8, //    ########## 
+	0x18, 0x70, //    ##    ###  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x30, 0x30, //   ##      ##  
+	0x18, 0x70, //    ##    ###  
+	0x1F, 0xF0, //    #########  
+	0x07, 0xB0, //      #### ##  
+	0x00, 0x30, //           ##  
+	0x00, 0x30, //           ##  
+	0x00, 0xF8, //         ##### 
+	0x00, 0xF8, //         ##### 
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3280 'r' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3C, 0xE0, //   ####  ###   
+	0x3D, 0xF0, //   #### #####  
+	0x0F, 0x30, //     ####  ##  
+	0x0E, 0x00, //     ###       
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x3F, 0xC0, //   ########    
+	0x3F, 0xC0, //   ########    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3320 's' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x07, 0xE0, //      ######   
+	0x1F, 0xE0, //    ########   
+	0x18, 0x60, //    ##    ##   
+	0x1E, 0x00, //    ####       
+	0x0F, 0xC0, //     ######    
+	0x01, 0xE0, //        ####   
+	0x18, 0x60, //    ##    ##   
+	0x1F, 0xE0, //    ########   
+	0x1F, 0x80, //    ######     
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3360 't' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x3F, 0xE0, //   #########   
+	0x3F, 0xE0, //   #########   
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x00, //     ##        
+	0x0C, 0x30, //     ##    ##  
+	0x0F, 0xF0, //     ########  
+	0x07, 0xC0, //      #####    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3400 'u' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x38, 0xE0, //   ###   ###   
+	0x38, 0xE0, //   ###   ###   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0x60, //    ##    ##   
+	0x18, 0xE0, //    ##   ###   
+	0x1F, 0xF0, //    #########  
+	0x0F, 0x70, //     #### ###  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3440 'v' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x78, 0xF0, //  ####   ####  
+	0x78, 0xF0, //  ####   ####  
+	0x30, 0x60, //   ##     ##   
+	0x18, 0xC0, //    ##   ##    
+	0x18, 0xC0, //    ##   ##    
+	0x0D, 0x80, //     ## ##     
+	0x0D, 0x80, //     ## ##     
+	0x07, 0x00, //      ###      
+	0x07, 0x00, //      ###      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3480 'w' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x78, 0xF0, //  ####   ####  
+	0x78, 0xF0, //  ####   ####  
+	0x32, 0x60, //   ##  #  ##   
+	0x32, 0x60, //   ##  #  ##   
+	0x37, 0xE0, //   ## ######   
+	0x1D, 0xC0, //    ### ###    
+	0x1D, 0xC0, //    ### ###    
+	0x18, 0xC0, //    ##   ##    
+	0x18, 0xC0, //    ##   ##    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3520 'x' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x0C, 0xC0, //     ##  ##    
+	0x07, 0x80, //      ####     
+	0x03, 0x00, //       ##      
+	0x07, 0x80, //      ####     
+	0x0C, 0xC0, //     ##  ##    
+	0x3C, 0xF0, //   ####  ####  
+	0x3C, 0xF0, //   ####  ####  
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3560 'y' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x78, 0xF0, //  ####   ####  
+	0x78, 0xF0, //  ####   ####  
+	0x30, 0x60, //   ##     ##   
+	0x18, 0xC0, //    ##   ##    
+	0x18, 0xC0, //    ##   ##    
+	0x0D, 0x80, //     ## ##     
+	0x0F, 0x80, //     #####     
+	0x07, 0x00, //      ###      
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x0C, 0x00, //     ##        
+	0x7F, 0x00, //  #######      
+	0x7F, 0x00, //  #######      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3600 'z' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x18, 0xC0, //    ##   ##    
+	0x01, 0x80, //        ##     
+	0x03, 0x00, //       ##      
+	0x06, 0x00, //      ##       
+	0x0C, 0x60, //     ##   ##   
+	0x1F, 0xE0, //    ########   
+	0x1F, 0xE0, //    ########   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3640 '{' (14 pixels wide)
+	0x00, 0x00, //               
+	0x01, 0xC0, //        ###    
+	0x03, 0xC0, //       ####    
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x07, 0x00, //      ###      
+	0x0E, 0x00, //     ###       
+	0x07, 0x00, //      ###      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0xC0, //       ####    
+	0x01, 0xC0, //        ###    
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3680 '|' (14 pixels wide)
+	0x00, 0x00, //               
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x03, 0x00, //       ##      
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3720 '}' (14 pixels wide)
+	0x00, 0x00, //               
+	0x1C, 0x00, //    ###        
+	0x1E, 0x00, //    ####       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x07, 0x00, //      ###      
+	0x03, 0x80, //       ###     
+	0x07, 0x00, //      ###      
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x06, 0x00, //      ##       
+	0x1E, 0x00, //    ####       
+	0x1C, 0x00, //    ###        
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+
+	// @3760 '~' (14 pixels wide)
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x0E, 0x00, //     ###       
+	0x3F, 0x30, //   ######  ##  
+	0x33, 0xF0, //   ##  ######  
+	0x01, 0xE0, //        ####   
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+	0x00, 0x00, //               
+};
+
+
+sFONT Font20 = {
+  Font20_Table,
+  14, /* Width */
+  20, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 2521 - 0
Arduino/epd2in7_V2/font24.cpp

@@ -0,0 +1,2521 @@
+/**
+  ******************************************************************************
+  * @file    font24.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text font24. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * Redistribution and use in source and binary forms, with or without modification,
+  * are permitted provided that the following conditions are met:
+  *   1. Redistributions of source code must retain the above copyright notice,
+  *      this list of conditions and the following disclaimer.
+  *   2. Redistributions in binary form must reproduce the above copyright notice,
+  *      this list of conditions and the following disclaimer in the documentation
+  *      and/or other materials provided with the distribution.
+  *   3. Neither the name of STMicroelectronics nor the names of its contributors
+  *      may be used to endorse or promote products derived from this software
+  *      without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include <avr/pgmspace.h>
+
+const uint8_t Font24_Table [] PROGMEM = 
+{
+	// @0 ' ' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @72 '!' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x01, 0x00, 0x00, //        #         
+	0x01, 0x00, 0x00, //        #         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @144 '"' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x0E, 0x70, 0x00, //     ###  ###     
+	0x0E, 0x70, 0x00, //     ###  ###     
+	0x0E, 0x70, 0x00, //     ###  ###     
+	0x04, 0x20, 0x00, //      #    #      
+	0x04, 0x20, 0x00, //      #    #      
+	0x04, 0x20, 0x00, //      #    #      
+	0x04, 0x20, 0x00, //      #    #      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @216 '#' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @288 '$' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x07, 0xB0, 0x00, //      #### ##     
+	0x0F, 0xF0, 0x00, //     ########     
+	0x18, 0x70, 0x00, //    ##    ###     
+	0x18, 0x70, 0x00, //    ##    ###     
+	0x1C, 0x00, 0x00, //    ###           
+	0x0F, 0x80, 0x00, //     #####        
+	0x07, 0xE0, 0x00, //      ######      
+	0x00, 0xF0, 0x00, //         ####     
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x1C, 0x30, 0x00, //    ###    ##     
+	0x1C, 0x70, 0x00, //    ###   ###     
+	0x1F, 0xE0, 0x00, //    ########      
+	0x1B, 0xC0, 0x00, //    ## ####       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @360 '%' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0x80, 0x00, //      ####        
+	0x0F, 0xC0, 0x00, //     ######       
+	0x1C, 0xE0, 0x00, //    ###  ###      
+	0x18, 0x60, 0x00, //    ##    ##      
+	0x18, 0x60, 0x00, //    ##    ##      
+	0x1C, 0xE0, 0x00, //    ###  ###      
+	0x0F, 0xF8, 0x00, //     #########    
+	0x07, 0xE0, 0x00, //      ######      
+	0x1F, 0xF0, 0x00, //    #########     
+	0x07, 0x38, 0x00, //      ###  ###    
+	0x06, 0x18, 0x00, //      ##    ##    
+	0x06, 0x18, 0x00, //      ##    ##    
+	0x07, 0x38, 0x00, //      ###  ###    
+	0x03, 0xF0, 0x00, //       ######     
+	0x01, 0xE0, 0x00, //        ####      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @432 '&' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xF0, 0x00, //       ######     
+	0x07, 0xF0, 0x00, //      #######     
+	0x0C, 0x60, 0x00, //     ##   ##      
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x06, 0x00, 0x00, //      ##          
+	0x07, 0x00, 0x00, //      ###         
+	0x0F, 0x9C, 0x00, //     #####  ###   
+	0x1D, 0xFC, 0x00, //    ### #######   
+	0x18, 0xF0, 0x00, //    ##   ####     
+	0x18, 0x70, 0x00, //    ##    ###     
+	0x0F, 0xFC, 0x00, //     ##########   
+	0x07, 0xDC, 0x00, //      ##### ###   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @504 ''' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x01, 0x00, 0x00, //        #         
+	0x01, 0x00, 0x00, //        #         
+	0x01, 0x00, 0x00, //        #         
+	0x01, 0x00, 0x00, //        #         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @576 '(' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x38, 0x00, //           ###    
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0xF0, 0x00, //         ####     
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0xE0, 0x00, //         ###      
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0xC0, 0x00, //        ###       
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0x38, 0x00, //           ###    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @648 ')' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x18, 0x00, 0x00, //    ##            
+	0x1C, 0x00, 0x00, //    ###           
+	0x0E, 0x00, 0x00, //     ###          
+	0x0E, 0x00, 0x00, //     ###          
+	0x07, 0x00, 0x00, //      ###         
+	0x07, 0x00, 0x00, //      ###         
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x80, 0x00, //       ###        
+	0x07, 0x00, 0x00, //      ###         
+	0x07, 0x00, 0x00, //      ###         
+	0x0F, 0x00, 0x00, //     ####         
+	0x0E, 0x00, 0x00, //     ###          
+	0x1C, 0x00, 0x00, //    ###           
+	0x18, 0x00, 0x00, //    ##            
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @720 '*' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x1D, 0xB8, 0x00, //    ### ## ###    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x07, 0xE0, 0x00, //      ######      
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @792 '+' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x3F, 0xFC, 0x00, //   ############   
+	0x3F, 0xFC, 0x00, //   ############   
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @864 ',' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0xC0, 0x00, //         ##       
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0x00, 0x00, //       ##         
+	0x03, 0x00, 0x00, //       ##         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @936 '-' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1008 '.' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1080 '/' (17 pixels wide)
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x38, 0x00, //           ###    
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0x60, 0x00, //          ##      
+	0x00, 0x60, 0x00, //          ##      
+	0x00, 0xC0, 0x00, //         ##       
+	0x00, 0xC0, 0x00, //         ##       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0x00, 0x00, //       ##         
+	0x03, 0x00, 0x00, //       ##         
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x0E, 0x00, 0x00, //     ###          
+	0x0C, 0x00, 0x00, //     ##           
+	0x1C, 0x00, 0x00, //    ###           
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1152 '0' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x07, 0xE0, 0x00, //      ######      
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x07, 0xE0, 0x00, //      ######      
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1224 '1' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x80, 0x00, //         #        
+	0x07, 0x80, 0x00, //      ####        
+	0x1F, 0x80, 0x00, //    ######        
+	0x1D, 0x80, 0x00, //    ### ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1296 '2' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xC0, 0x00, //      #####       
+	0x1F, 0xF0, 0x00, //    #########     
+	0x38, 0x30, 0x00, //   ###     ##     
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x60, 0x00, //          ##      
+	0x01, 0xC0, 0x00, //        ###       
+	0x03, 0x80, 0x00, //       ###        
+	0x06, 0x00, 0x00, //      ##          
+	0x0C, 0x00, 0x00, //     ##           
+	0x18, 0x00, 0x00, //    ##            
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1368 '3' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x0F, 0xE0, 0x00, //     #######      
+	0x0C, 0x70, 0x00, //     ##   ###     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x60, 0x00, //          ##      
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xE0, 0x00, //       #####      
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x1F, 0xF0, 0x00, //    #########     
+	0x0F, 0xC0, 0x00, //     ######       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1440 '4' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0xE0, 0x00, //         ###      
+	0x01, 0xE0, 0x00, //        ####      
+	0x01, 0xE0, 0x00, //        ####      
+	0x03, 0x60, 0x00, //       ## ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x0C, 0x60, 0x00, //     ##   ##      
+	0x0C, 0x60, 0x00, //     ##   ##      
+	0x18, 0x60, 0x00, //    ##    ##      
+	0x30, 0x60, 0x00, //   ##     ##      
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x00, 0x60, 0x00, //          ##      
+	0x03, 0xF8, 0x00, //       #######    
+	0x03, 0xF8, 0x00, //       #######    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1512 '5' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1F, 0xF0, 0x00, //    #########     
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x1B, 0xC0, 0x00, //    ## ####       
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1C, 0x30, 0x00, //    ###    ##     
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x30, 0x30, 0x00, //   ##      ##     
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x0F, 0xC0, 0x00, //     ######       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1584 '6' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0xF8, 0x00, //         #####    
+	0x03, 0xF8, 0x00, //       #######    
+	0x07, 0x00, 0x00, //      ###         
+	0x0E, 0x00, 0x00, //     ###          
+	0x0C, 0x00, 0x00, //     ##           
+	0x18, 0x00, 0x00, //    ##            
+	0x1B, 0xC0, 0x00, //    ## ####       
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1C, 0x30, 0x00, //    ###    ##     
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x38, 0x00, //     ##    ###    
+	0x0F, 0xF0, 0x00, //     ########     
+	0x03, 0xE0, 0x00, //       #####      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1656 '7' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0x60, 0x00, //          ##      
+	0x00, 0x60, 0x00, //          ##      
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0xC0, 0x00, //         ##       
+	0x00, 0xC0, 0x00, //         ##       
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1728 '8' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xE0, 0x00, //      ######      
+	0x0F, 0xF0, 0x00, //     ########     
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x07, 0xE0, 0x00, //      ######      
+	0x07, 0xE0, 0x00, //      ######      
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x0F, 0xF0, 0x00, //     ########     
+	0x07, 0xE0, 0x00, //      ######      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1800 '9' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xC0, 0x00, //      #####       
+	0x0F, 0xF0, 0x00, //     ########     
+	0x1C, 0x30, 0x00, //    ###    ##     
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x38, 0x00, //     ##    ###    
+	0x0F, 0xF8, 0x00, //     #########    
+	0x03, 0xD8, 0x00, //       #### ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0xE0, 0x00, //         ###      
+	0x1F, 0xC0, 0x00, //    #######       
+	0x1F, 0x00, 0x00, //    #####         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1872 ':' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @1944 ';' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0xF0, 0x00, //         ####     
+	0x00, 0xF0, 0x00, //         ####     
+	0x00, 0xF0, 0x00, //         ####     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0xE0, 0x00, //         ###      
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0x00, 0x00, //       ##         
+	0x02, 0x00, 0x00, //       #          
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2016 '<' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x1C, 0x00, //            ###   
+	0x00, 0x3C, 0x00, //           ####   
+	0x00, 0xF0, 0x00, //         ####     
+	0x03, 0xC0, 0x00, //       ####       
+	0x0F, 0x00, 0x00, //     ####         
+	0x3C, 0x00, 0x00, //   ####           
+	0xF0, 0x00, 0x00, // ####             
+	0x3C, 0x00, 0x00, //   ####           
+	0x0F, 0x00, 0x00, //     ####         
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0xF0, 0x00, //         ####     
+	0x00, 0x3C, 0x00, //           ####   
+	0x00, 0x1C, 0x00, //            ###   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2088 '=' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0xFC, 0x00, //  #############   
+	0x7F, 0xFC, 0x00, //  #############   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0xFC, 0x00, //  #############   
+	0x7F, 0xFC, 0x00, //  #############   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2160 '>' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x70, 0x00, 0x00, //  ###             
+	0x78, 0x00, 0x00, //  ####            
+	0x1E, 0x00, 0x00, //    ####          
+	0x07, 0x80, 0x00, //      ####        
+	0x01, 0xE0, 0x00, //        ####      
+	0x00, 0x78, 0x00, //          ####    
+	0x00, 0x1E, 0x00, //            ####  
+	0x00, 0x78, 0x00, //          ####    
+	0x01, 0xE0, 0x00, //        ####      
+	0x07, 0x80, 0x00, //      ####        
+	0x1E, 0x00, 0x00, //    ####          
+	0x78, 0x00, 0x00, //  ####            
+	0x70, 0x00, 0x00, //  ###             
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2232 '?' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xC0, 0x00, //      #####       
+	0x0F, 0xE0, 0x00, //     #######      
+	0x18, 0x70, 0x00, //    ##    ###     
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0xE0, 0x00, //         ###      
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0x80, 0x00, //       ###        
+	0x03, 0x00, 0x00, //       ##         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0x00, 0x00, //      ###         
+	0x07, 0x00, 0x00, //      ###         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2304 '@' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xE0, 0x00, //       #####      
+	0x07, 0xF0, 0x00, //      #######     
+	0x0E, 0x38, 0x00, //     ###   ###    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x18, 0x78, 0x00, //    ##    ####    
+	0x18, 0xF8, 0x00, //    ##   #####    
+	0x19, 0xD8, 0x00, //    ##  ### ##    
+	0x19, 0x98, 0x00, //    ##  ##  ##    
+	0x19, 0x98, 0x00, //    ##  ##  ##    
+	0x19, 0x98, 0x00, //    ##  ##  ##    
+	0x18, 0xF8, 0x00, //    ##   #####    
+	0x18, 0x78, 0x00, //    ##    ####    
+	0x18, 0x00, 0x00, //    ##            
+	0x0C, 0x00, 0x00, //     ##           
+	0x0E, 0x18, 0x00, //     ###    ##    
+	0x07, 0xF8, 0x00, //      ########    
+	0x03, 0xE0, 0x00, //       #####      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2376 'A' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0x80, 0x00, //    ######        
+	0x1F, 0xC0, 0x00, //    #######       
+	0x01, 0xC0, 0x00, //        ###       
+	0x03, 0x60, 0x00, //       ## ##      
+	0x03, 0x60, 0x00, //       ## ##      
+	0x06, 0x30, 0x00, //      ##   ##     
+	0x06, 0x30, 0x00, //      ##   ##     
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x0F, 0xF8, 0x00, //     #########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0xFC, 0x7F, 0x00, // ######   ####### 
+	0xFC, 0x7F, 0x00, // ######   ####### 
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2448 'B' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0xE0, 0x00, //  ##########      
+	0x7F, 0xF0, 0x00, //  ###########     
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x1C, 0x00, //    ##      ###   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x7F, 0xF8, 0x00, //  ############    
+	0x7F, 0xF0, 0x00, //  ###########     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2520 'C' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xEC, 0x00, //       ##### ##   
+	0x0F, 0xFC, 0x00, //     ##########   
+	0x1C, 0x1C, 0x00, //    ###     ###   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0x00, 0x00, //   ##             
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x1C, 0x1C, 0x00, //    ###     ###   
+	0x0F, 0xF8, 0x00, //     #########    
+	0x03, 0xF0, 0x00, //       ######     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2592 'D' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0xC0, 0x00, //  #########       
+	0x7F, 0xF0, 0x00, //  ###########     
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x7F, 0xF0, 0x00, //  ###########     
+	0x7F, 0xE0, 0x00, //  ##########      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2664 'E' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0xF8, 0x00, //  ############    
+	0x7F, 0xF8, 0x00, //  ############    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x19, 0x98, 0x00, //    ##  ##  ##    
+	0x19, 0x80, 0x00, //    ##  ##        
+	0x1F, 0x80, 0x00, //    ######        
+	0x1F, 0x80, 0x00, //    ######        
+	0x19, 0x80, 0x00, //    ##  ##        
+	0x19, 0x98, 0x00, //    ##  ##  ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x7F, 0xF8, 0x00, //  ############    
+	0x7F, 0xF8, 0x00, //  ############    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2736 'F' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x3F, 0xFC, 0x00, //   ############   
+	0x3F, 0xFC, 0x00, //   ############   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0xCC, 0x00, //     ##  ##  ##   
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0F, 0xC0, 0x00, //     ######       
+	0x0F, 0xC0, 0x00, //     ######       
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x3F, 0xC0, 0x00, //   ########       
+	0x3F, 0xC0, 0x00, //   ########       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2808 'G' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xEC, 0x00, //       ##### ##   
+	0x0F, 0xFC, 0x00, //     ##########   
+	0x1C, 0x1C, 0x00, //    ###     ###   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0xFE, 0x00, //   ##    #######  
+	0x30, 0xFE, 0x00, //   ##    #######  
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x38, 0x0C, 0x00, //   ###       ##   
+	0x1C, 0x1C, 0x00, //    ###     ###   
+	0x0F, 0xFC, 0x00, //     ##########   
+	0x03, 0xF0, 0x00, //       ######     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2880 'H' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @2952 'I' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3024 'J' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xFE, 0x00, //      ##########  
+	0x07, 0xFE, 0x00, //      ##########  
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x30, 0x30, 0x00, //   ##      ##     
+	0x30, 0x30, 0x00, //   ##      ##     
+	0x30, 0x30, 0x00, //   ##      ##     
+	0x30, 0x30, 0x00, //   ##      ##     
+	0x30, 0x60, 0x00, //   ##     ##      
+	0x3F, 0xE0, 0x00, //   #########      
+	0x0F, 0x80, 0x00, //     #####        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3096 'K' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0x3E, 0x00, //  #######  #####  
+	0x7F, 0x3E, 0x00, //  #######  #####  
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x18, 0x60, 0x00, //    ##    ##      
+	0x18, 0xC0, 0x00, //    ##   ##       
+	0x19, 0x80, 0x00, //    ##  ##        
+	0x1B, 0x80, 0x00, //    ## ###        
+	0x1F, 0xC0, 0x00, //    #######       
+	0x1C, 0xE0, 0x00, //    ###  ###      
+	0x18, 0x70, 0x00, //    ##    ###     
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x7F, 0x1F, 0x00, //  #######   ##### 
+	0x7F, 0x1F, 0x00, //  #######   ##### 
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3168 'L' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0x80, 0x00, //  ########        
+	0x7F, 0x80, 0x00, //  ########        
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x7F, 0xFC, 0x00, //  #############   
+	0x7F, 0xFC, 0x00, //  #############   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3240 'M' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0xF0, 0x0F, 0x00, // ####        #### 
+	0xF8, 0x1F, 0x00, // #####      ##### 
+	0x38, 0x1C, 0x00, //   ###      ###   
+	0x3C, 0x3C, 0x00, //   ####    ####   
+	0x3C, 0x3C, 0x00, //   ####    ####   
+	0x36, 0x6C, 0x00, //   ## ##  ## ##   
+	0x36, 0x6C, 0x00, //   ## ##  ## ##   
+	0x33, 0xCC, 0x00, //   ##  ####  ##   
+	0x33, 0xCC, 0x00, //   ##  ####  ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0xFE, 0x7F, 0x00, // #######  ####### 
+	0xFE, 0x7F, 0x00, // #######  ####### 
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3312 'N' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x78, 0xFE, 0x00, //  ####   #######  
+	0x78, 0xFE, 0x00, //  ####   #######  
+	0x1C, 0x18, 0x00, //    ###     ##    
+	0x1E, 0x18, 0x00, //    ####    ##    
+	0x1F, 0x18, 0x00, //    #####   ##    
+	0x1B, 0x18, 0x00, //    ## ##   ##    
+	0x1B, 0x98, 0x00, //    ## ###  ##    
+	0x19, 0xD8, 0x00, //    ##  ### ##    
+	0x18, 0xD8, 0x00, //    ##   ## ##    
+	0x18, 0xF8, 0x00, //    ##   #####    
+	0x18, 0x78, 0x00, //    ##    ####    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x7F, 0x18, 0x00, //  #######   ##    
+	0x7F, 0x18, 0x00, //  #######   ##    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3384 'O' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x0F, 0xF0, 0x00, //     ########     
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x38, 0x1C, 0x00, //   ###      ###   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x38, 0x1C, 0x00, //   ###      ###   
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x0F, 0xF0, 0x00, //     ########     
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3456 'P' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x0C, 0x1C, 0x00, //     ##     ###   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0x0C, 0x00, //     ##      ##   
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x0F, 0xF8, 0x00, //     #########    
+	0x0F, 0xE0, 0x00, //     #######      
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x3F, 0xC0, 0x00, //   ########       
+	0x3F, 0xC0, 0x00, //   ########       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3528 'Q' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x0F, 0xF0, 0x00, //     ########     
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x38, 0x1C, 0x00, //   ###      ###   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x38, 0x1C, 0x00, //   ###      ###   
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x0F, 0xF0, 0x00, //     ########     
+	0x07, 0xC0, 0x00, //      #####       
+	0x07, 0xCC, 0x00, //      #####  ##   
+	0x0F, 0xFC, 0x00, //     ##########   
+	0x0C, 0x38, 0x00, //     ##    ###    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3600 'R' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0xE0, 0x00, //  ##########      
+	0x7F, 0xF0, 0x00, //  ###########     
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1F, 0xC0, 0x00, //    #######       
+	0x18, 0xE0, 0x00, //    ##   ###      
+	0x18, 0x70, 0x00, //    ##    ###     
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x7F, 0x1E, 0x00, //  #######   ####  
+	0x7F, 0x0E, 0x00, //  #######    ###  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3672 'S' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xD8, 0x00, //      ##### ##    
+	0x0F, 0xF8, 0x00, //     #########    
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x1E, 0x00, 0x00, //    ####          
+	0x0F, 0xC0, 0x00, //     ######       
+	0x03, 0xF0, 0x00, //       ######     
+	0x00, 0x78, 0x00, //          ####    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1B, 0xE0, 0x00, //    ## #####      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3744 'T' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x3F, 0xFC, 0x00, //   ############   
+	0x3F, 0xFC, 0x00, //   ############   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x0F, 0xF0, 0x00, //     ########     
+	0x0F, 0xF0, 0x00, //     ########     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3816 'U' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x0F, 0xF0, 0x00, //     ########     
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3888 'V' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7F, 0x7F, 0x00, //  ####### ####### 
+	0x7F, 0x7F, 0x00, //  ####### ####### 
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x06, 0x30, 0x00, //      ##   ##     
+	0x06, 0x30, 0x00, //      ##   ##     
+	0x03, 0x60, 0x00, //       ## ##      
+	0x03, 0x60, 0x00, //       ## ##      
+	0x03, 0x60, 0x00, //       ## ##      
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0xC0, 0x00, //        ###       
+	0x00, 0x80, 0x00, //         #        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @3960 'W' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0xFE, 0x3F, 0x80, // #######   #######
+	0xFE, 0x3F, 0x80, // #######   #######
+	0x30, 0x06, 0x00, //   ##         ##  
+	0x30, 0x06, 0x00, //   ##         ##  
+	0x30, 0x86, 0x00, //   ##    #    ##  
+	0x19, 0xCC, 0x00, //    ##  ###  ##   
+	0x19, 0xCC, 0x00, //    ##  ###  ##   
+	0x1B, 0x6C, 0x00, //    ## ## ## ##   
+	0x1B, 0x6C, 0x00, //    ## ## ## ##   
+	0x1E, 0x7C, 0x00, //    ####  #####   
+	0x0E, 0x38, 0x00, //     ###   ###    
+	0x0E, 0x38, 0x00, //     ###   ###    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4032 'X' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x03, 0xC0, 0x00, //       ####       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0xC0, 0x00, //       ####       
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4104 'Y' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7C, 0x7E, 0x00, //  #####   ######  
+	0x7C, 0x7E, 0x00, //  #####   ######  
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x03, 0xC0, 0x00, //       ####       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x0F, 0xF0, 0x00, //     ########     
+	0x0F, 0xF0, 0x00, //     ########     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4176 'Z' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x18, 0x60, 0x00, //    ##    ##      
+	0x18, 0xC0, 0x00, //    ##   ##       
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0x00, 0x00, //       ##         
+	0x06, 0x18, 0x00, //      ##    ##    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4248 '[' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x01, 0xF0, 0x00, //        #####     
+	0x01, 0xF0, 0x00, //        #####     
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0xF0, 0x00, //        #####     
+	0x01, 0xF0, 0x00, //        #####     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4320 '\' (17 pixels wide)
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x1C, 0x00, 0x00, //    ###           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0E, 0x00, 0x00, //     ###          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x03, 0x00, 0x00, //       ##         
+	0x03, 0x00, 0x00, //       ##         
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x00, 0xC0, 0x00, //         ##       
+	0x00, 0xC0, 0x00, //         ##       
+	0x00, 0x60, 0x00, //          ##      
+	0x00, 0x60, 0x00, //          ##      
+	0x00, 0x70, 0x00, //          ###     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x38, 0x00, //           ###    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4392 ']' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x0F, 0x80, 0x00, //     #####        
+	0x0F, 0x80, 0x00, //     #####        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x0F, 0x80, 0x00, //     #####        
+	0x0F, 0x80, 0x00, //     #####        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4464 '^' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x80, 0x00, //         #        
+	0x01, 0xC0, 0x00, //        ###       
+	0x03, 0xE0, 0x00, //       #####      
+	0x07, 0x70, 0x00, //      ### ###     
+	0x06, 0x30, 0x00, //      ##   ##     
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x10, 0x04, 0x00, //    #         #   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4536 '_' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0xFF, 0xFF, 0x00, // ################ 
+	0xFF, 0xFF, 0x00, // ################ 
+
+	// @4608 '`' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x03, 0x00, 0x00, //       ##         
+	0x03, 0x80, 0x00, //       ###        
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0x60, 0x00, //          ##      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4680 'a' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x0F, 0xC0, 0x00, //     ######       
+	0x1F, 0xE0, 0x00, //    ########      
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x07, 0xF0, 0x00, //      #######     
+	0x1F, 0xF0, 0x00, //    #########     
+	0x38, 0x30, 0x00, //   ###     ##     
+	0x30, 0x30, 0x00, //   ##      ##     
+	0x30, 0x70, 0x00, //   ##     ###     
+	0x1F, 0xFC, 0x00, //    ###########   
+	0x0F, 0xBC, 0x00, //     ##### ####   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4752 'b' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x78, 0x00, 0x00, //  ####            
+	0x78, 0x00, 0x00, //  ####            
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x1B, 0xE0, 0x00, //    ## #####      
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1C, 0x18, 0x00, //    ###     ##    
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x1C, 0x18, 0x00, //    ###     ##    
+	0x7F, 0xF8, 0x00, //  ############    
+	0x7B, 0xE0, 0x00, //  #### #####      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4824 'c' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xEC, 0x00, //       ##### ##   
+	0x0F, 0xFC, 0x00, //     ##########   
+	0x1C, 0x1C, 0x00, //    ###     ###   
+	0x38, 0x0C, 0x00, //   ###       ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0x00, 0x00, //   ##             
+	0x38, 0x0C, 0x00, //   ###       ##   
+	0x1C, 0x1C, 0x00, //    ###     ###   
+	0x0F, 0xF8, 0x00, //     #########    
+	0x03, 0xF0, 0x00, //       ######     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4896 'd' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x78, 0x00, //          ####    
+	0x00, 0x78, 0x00, //          ####    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x07, 0xD8, 0x00, //      ##### ##    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x1F, 0xFE, 0x00, //    ############  
+	0x07, 0xDE, 0x00, //      ##### ####  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @4968 'e' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xE0, 0x00, //      ######      
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x3F, 0xFC, 0x00, //   ############   
+	0x3F, 0xFC, 0x00, //   ############   
+	0x30, 0x00, 0x00, //   ##             
+	0x30, 0x00, 0x00, //   ##             
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x1F, 0xFC, 0x00, //    ###########   
+	0x07, 0xF0, 0x00, //      #######     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5040 'f' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x01, 0xFC, 0x00, //        #######   
+	0x03, 0xFC, 0x00, //       ########   
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x3F, 0xF8, 0x00, //   ###########    
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5112 'g' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xDE, 0x00, //      ##### ####  
+	0x1F, 0xFE, 0x00, //    ############  
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x07, 0xD8, 0x00, //      ##### ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x38, 0x00, //           ###    
+	0x0F, 0xF0, 0x00, //     ########     
+	0x0F, 0xC0, 0x00, //     ######       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5184 'h' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x78, 0x00, 0x00, //  ####            
+	0x78, 0x00, 0x00, //  ####            
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x1B, 0xE0, 0x00, //    ## #####      
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5256 'i' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0x80, 0x00, //    ######        
+	0x1F, 0x80, 0x00, //    ######        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x3F, 0xFC, 0x00, //   ############   
+	0x3F, 0xFC, 0x00, //   ############   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5328 'j' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0xC0, 0x00, //         ##       
+	0x00, 0xC0, 0x00, //         ##       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1F, 0xF0, 0x00, //    #########     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x30, 0x00, //           ##     
+	0x00, 0x70, 0x00, //          ###     
+	0x1F, 0xE0, 0x00, //    ########      
+	0x1F, 0x80, 0x00, //    ######        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5400 'k' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x3C, 0x00, 0x00, //   ####           
+	0x3C, 0x00, 0x00, //   ####           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0xF8, 0x00, //     ##  #####    
+	0x0C, 0xF8, 0x00, //     ##  #####    
+	0x0C, 0xC0, 0x00, //     ##  ##       
+	0x0D, 0x80, 0x00, //     ## ##        
+	0x0F, 0x80, 0x00, //     #####        
+	0x0F, 0x00, 0x00, //     ####         
+	0x0F, 0x80, 0x00, //     #####        
+	0x0D, 0xC0, 0x00, //     ## ###       
+	0x0C, 0xE0, 0x00, //     ##  ###      
+	0x3C, 0x7C, 0x00, //   ####   #####   
+	0x3C, 0x7C, 0x00, //   ####   #####   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5472 'l' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0x80, 0x00, //    ######        
+	0x1F, 0x80, 0x00, //    ######        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x3F, 0xFC, 0x00, //   ############   
+	0x3F, 0xFC, 0x00, //   ############   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5544 'm' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0xF7, 0x78, 0x00, // #### ### ####    
+	0xFF, 0xFC, 0x00, // ##############   
+	0x39, 0xCC, 0x00, //   ###  ###  ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0x31, 0x8C, 0x00, //   ##   ##   ##   
+	0xFD, 0xEF, 0x00, // ###### #### #### 
+	0xFD, 0xEF, 0x00, // ###### #### #### 
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5616 'n' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7B, 0xE0, 0x00, //  #### #####      
+	0x7F, 0xF0, 0x00, //  ###########     
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x7E, 0x7E, 0x00, //  ######  ######  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5688 'o' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x03, 0xC0, 0x00, //       ####       
+	0x0F, 0xF0, 0x00, //     ########     
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x38, 0x1C, 0x00, //   ###      ###   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x30, 0x0C, 0x00, //   ##        ##   
+	0x38, 0x1C, 0x00, //   ###      ###   
+	0x1C, 0x38, 0x00, //    ###    ###    
+	0x0F, 0xF0, 0x00, //     ########     
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5760 'p' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7B, 0xE0, 0x00, //  #### #####      
+	0x7F, 0xF8, 0x00, //  ############    
+	0x1C, 0x18, 0x00, //    ###     ##    
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x1C, 0x18, 0x00, //    ###     ##    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1B, 0xE0, 0x00, //    ## #####      
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x18, 0x00, 0x00, //    ##            
+	0x7F, 0x00, 0x00, //  #######         
+	0x7F, 0x00, 0x00, //  #######         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5832 'q' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xDE, 0x00, //      ##### ####  
+	0x1F, 0xFE, 0x00, //    ############  
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x30, 0x18, 0x00, //   ##       ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x07, 0xD8, 0x00, //      ##### ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0x18, 0x00, //            ##    
+	0x00, 0xFE, 0x00, //         #######  
+	0x00, 0xFE, 0x00, //         #######  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5904 'r' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x3E, 0x78, 0x00, //   #####  ####    
+	0x3E, 0xFC, 0x00, //   ##### ######   
+	0x07, 0xCC, 0x00, //      #####  ##   
+	0x07, 0x00, 0x00, //      ###         
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x06, 0x00, 0x00, //      ##          
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @5976 's' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0xF8, 0x00, //      ########    
+	0x0F, 0xF8, 0x00, //     #########    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x1F, 0x80, 0x00, //    ######        
+	0x0F, 0xF0, 0x00, //     ########     
+	0x00, 0xF8, 0x00, //         #####    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x1F, 0xF0, 0x00, //    #########     
+	0x1F, 0xE0, 0x00, //    ########      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6048 't' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x3F, 0xF0, 0x00, //   ##########     
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x00, 0x00, //     ##           
+	0x0C, 0x1C, 0x00, //     ##     ###   
+	0x07, 0xFC, 0x00, //      #########   
+	0x03, 0xF0, 0x00, //       ######     
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6120 'u' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x78, 0x78, 0x00, //  ####    ####    
+	0x78, 0x78, 0x00, //  ####    ####    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x38, 0x00, //    ##     ###    
+	0x0F, 0xFE, 0x00, //     ###########  
+	0x07, 0xDE, 0x00, //      ##### ####  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6192 'v' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7C, 0x3E, 0x00, //  #####    #####  
+	0x7C, 0x3E, 0x00, //  #####    #####  
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x18, 0x18, 0x00, //    ##      ##    
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x07, 0xE0, 0x00, //      ######      
+	0x03, 0xC0, 0x00, //       ####       
+	0x03, 0xC0, 0x00, //       ####       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6264 'w' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x78, 0x3C, 0x00, //  ####     ####   
+	0x78, 0x3C, 0x00, //  ####     ####   
+	0x31, 0x18, 0x00, //   ##   #   ##    
+	0x33, 0x98, 0x00, //   ##  ###  ##    
+	0x33, 0x98, 0x00, //   ##  ###  ##    
+	0x1A, 0xB0, 0x00, //    ## # # ##     
+	0x1E, 0xF0, 0x00, //    #### ####     
+	0x1E, 0xF0, 0x00, //    #### ####     
+	0x1C, 0x60, 0x00, //    ###   ##      
+	0x0C, 0x60, 0x00, //     ##   ##      
+	0x0C, 0x60, 0x00, //     ##   ##      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6336 'x' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x3E, 0x7C, 0x00, //   #####  #####   
+	0x3E, 0x7C, 0x00, //   #####  #####   
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x03, 0xC0, 0x00, //       ####       
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0xC0, 0x00, //       ####       
+	0x06, 0x60, 0x00, //      ##  ##      
+	0x0C, 0x30, 0x00, //     ##    ##     
+	0x3E, 0x7C, 0x00, //   #####  #####   
+	0x3E, 0x7C, 0x00, //   #####  #####   
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6408 'y' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x7E, 0x1F, 0x00, //  ######    ##### 
+	0x7E, 0x1F, 0x00, //  ######    ##### 
+	0x18, 0x0C, 0x00, //    ##       ##   
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x06, 0x30, 0x00, //      ##   ##     
+	0x06, 0x30, 0x00, //      ##   ##     
+	0x03, 0x60, 0x00, //       ## ##      
+	0x03, 0xE0, 0x00, //       #####      
+	0x01, 0xC0, 0x00, //        ###       
+	0x00, 0xC0, 0x00, //         ##       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0x00, 0x00, //       ##         
+	0x3F, 0xC0, 0x00, //   ########       
+	0x3F, 0xC0, 0x00, //   ########       
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6480 'z' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x18, 0x30, 0x00, //    ##     ##     
+	0x18, 0x60, 0x00, //    ##    ##      
+	0x00, 0xC0, 0x00, //         ##       
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0x00, 0x00, //       ##         
+	0x06, 0x18, 0x00, //      ##    ##    
+	0x0C, 0x18, 0x00, //     ##     ##    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x1F, 0xF8, 0x00, //    ##########    
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6552 '{' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0xE0, 0x00, //         ###      
+	0x01, 0xE0, 0x00, //        ####      
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x03, 0x80, 0x00, //       ###        
+	0x07, 0x00, 0x00, //      ###         
+	0x03, 0x80, 0x00, //       ###        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0xE0, 0x00, //        ####      
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6624 '|' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6696 '}' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x07, 0x00, 0x00, //      ###         
+	0x07, 0x80, 0x00, //      ####        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0xC0, 0x00, //        ###       
+	0x00, 0xE0, 0x00, //         ###      
+	0x01, 0xC0, 0x00, //        ###       
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x01, 0x80, 0x00, //        ##        
+	0x07, 0x80, 0x00, //      ####        
+	0x07, 0x00, 0x00, //      ###         
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+
+	// @6768 '~' (17 pixels wide)
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x0E, 0x00, 0x00, //     ###          
+	0x1F, 0x18, 0x00, //    #####   ##    
+	0x3B, 0xB8, 0x00, //   ### ### ###    
+	0x31, 0xF0, 0x00, //   ##   #####     
+	0x00, 0xE0, 0x00, //         ###      
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+	0x00, 0x00, 0x00, //                  
+};
+
+sFONT Font24 = {
+  Font24_Table,
+  17, /* Width */
+  24, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 1005 - 0
Arduino/epd2in7_V2/font8.cpp

@@ -0,0 +1,1005 @@
+/**
+  ******************************************************************************
+  * @file    Font8.cpp
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   This file provides text Font8. 
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * Redistribution and use in source and binary forms, with or without modification,
+  * are permitted provided that the following conditions are met:
+  *   1. Redistributions of source code must retain the above copyright notice,
+  *      this list of conditions and the following disclaimer.
+  *   2. Redistributions in binary form must reproduce the above copyright notice,
+  *      this list of conditions and the following disclaimer in the documentation
+  *      and/or other materials provided with the distribution.
+  *   3. Neither the name of STMicroelectronics nor the names of its contributors
+  *      may be used to endorse or promote products derived from this software
+  *      without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "fonts.h"
+#include <avr/pgmspace.h>
+
+// 
+//  Font data for Courier New 12pt
+// 
+
+const uint8_t Font8_Table[] PROGMEM = 
+{
+	// @0 ' ' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @8 '!' (5 pixels wide)
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x00, //      
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @16 '"' (5 pixels wide)
+	0x50, //  # # 
+	0x50, //  # # 
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @24 '#' (5 pixels wide)
+	0x28, //   # #
+	0x50, //  # # 
+	0xF8, // #####
+	0x50, //  # # 
+	0xF8, // #####
+	0x50, //  # # 
+	0xA0, // # #  
+	0x00, //      
+
+	// @32 '$' (5 pixels wide)
+	0x20, //   #  
+	0x30, //   ## 
+	0x60, //  ##  
+	0x30, //   ## 
+	0x10, //    # 
+	0x60, //  ##  
+	0x20, //   #  
+	0x00, //      
+
+	// @40 '%' (5 pixels wide)
+	0x20, //   #  
+	0x20, //   #  
+	0x18, //    ##
+	0x60, //  ##  
+	0x10, //    # 
+	0x10, //    # 
+	0x00, //      
+	0x00, //      
+
+	// @48 '&' (5 pixels wide)
+	0x00, //      
+	0x38, //   ###
+	0x20, //   #  
+	0x60, //  ##  
+	0x50, //  # # 
+	0x78, //  ####
+	0x00, //      
+	0x00, //      
+
+	// @56 ''' (5 pixels wide)
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @64 '(' (5 pixels wide)
+	0x10, //    # 
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x10, //    # 
+	0x00, //      
+
+	// @72 ')' (5 pixels wide)
+	0x40, //  #   
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x40, //  #   
+	0x00, //      
+
+	// @80 '*' (5 pixels wide)
+	0x20, //   #  
+	0x70, //  ### 
+	0x20, //   #  
+	0x50, //  # # 
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @88 '+' (5 pixels wide)
+	0x00, //      
+	0x20, //   #  
+	0x20, //   #  
+	0xF8, // #####
+	0x20, //   #  
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @96 ',' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x10, //    # 
+	0x20, //   #  
+	0x20, //   #  
+	0x00, //      
+
+	// @104 '-' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @112 '.' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @120 '/' (5 pixels wide)
+	0x10, //    # 
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x40, //  #   
+	0x40, //  #   
+	0x80, // #    
+	0x00, //      
+
+	// @128 '0' (5 pixels wide)
+	0x20, //   #  
+	0x50, //  # # 
+	0x50, //  # # 
+	0x50, //  # # 
+	0x50, //  # # 
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @136 '1' (5 pixels wide)
+	0x60, //  ##  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0xF8, // #####
+	0x00, //      
+	0x00, //      
+
+	// @144 '2' (5 pixels wide)
+	0x20, //   #  
+	0x50, //  # # 
+	0x20, //   #  
+	0x20, //   #  
+	0x40, //  #   
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @152 '3' (5 pixels wide)
+	0x20, //   #  
+	0x50, //  # # 
+	0x10, //    # 
+	0x20, //   #  
+	0x10, //    # 
+	0x60, //  ##  
+	0x00, //      
+	0x00, //      
+
+	// @160 '4' (5 pixels wide)
+	0x10, //    # 
+	0x30, //   ## 
+	0x50, //  # # 
+	0x78, //  ####
+	0x10, //    # 
+	0x38, //   ###
+	0x00, //      
+	0x00, //      
+
+	// @168 '5' (5 pixels wide)
+	0x70, //  ### 
+	0x40, //  #   
+	0x60, //  ##  
+	0x10, //    # 
+	0x50, //  # # 
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @176 '6' (5 pixels wide)
+	0x30, //   ## 
+	0x40, //  #   
+	0x60, //  ##  
+	0x50, //  # # 
+	0x50, //  # # 
+	0x60, //  ##  
+	0x00, //      
+	0x00, //      
+
+	// @184 '7' (5 pixels wide)
+	0x70, //  ### 
+	0x50, //  # # 
+	0x10, //    # 
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @192 '8' (5 pixels wide)
+	0x20, //   #  
+	0x50, //  # # 
+	0x20, //   #  
+	0x50, //  # # 
+	0x50, //  # # 
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @200 '9' (5 pixels wide)
+	0x30, //   ## 
+	0x50, //  # # 
+	0x50, //  # # 
+	0x30, //   ## 
+	0x10, //    # 
+	0x60, //  ##  
+	0x00, //      
+	0x00, //      
+
+	// @208 ':' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @216 ';' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x10, //    # 
+	0x00, //      
+	0x10, //    # 
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @224 '<' (5 pixels wide)
+	0x00, //      
+	0x10, //    # 
+	0x20, //   #  
+	0xC0, // ##   
+	0x20, //   #  
+	0x10, //    # 
+	0x00, //      
+	0x00, //      
+
+	// @232 '=' (5 pixels wide)
+	0x00, //      
+	0x70, //  ### 
+	0x00, //      
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @240 '>' (5 pixels wide)
+	0x00, //      
+	0x40, //  #   
+	0x20, //   #  
+	0x18, //    ##
+	0x20, //   #  
+	0x40, //  #   
+	0x00, //      
+	0x00, //      
+
+	// @248 '?' (5 pixels wide)
+	0x20, //   #  
+	0x50, //  # # 
+	0x10, //    # 
+	0x20, //   #  
+	0x00, //      
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @256 '@' (5 pixels wide)
+	0x30, //   ## 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x58, //  # ##
+	0x48, //  #  #
+	0x40, //  #   
+	0x38, //   ###
+	0x00, //      
+
+	// @264 'A' (5 pixels wide)
+	0x60, //  ##  
+	0x20, //   #  
+	0x50, //  # # 
+	0x70, //  ### 
+	0x88, // #   #
+	0xD8, // ## ##
+	0x00, //      
+	0x00, //      
+
+	// @272 'B' (5 pixels wide)
+	0xF0, // #### 
+	0x48, //  #  #
+	0x70, //  ### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0xF0, // #### 
+	0x00, //      
+	0x00, //      
+
+	// @280 'C' (5 pixels wide)
+	0x70, //  ### 
+	0x50, //  # # 
+	0x40, //  #   
+	0x40, //  #   
+	0x40, //  #   
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @288 'D' (5 pixels wide)
+	0xF0, // #### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0xF0, // #### 
+	0x00, //      
+	0x00, //      
+
+	// @296 'E' (5 pixels wide)
+	0xF8, // #####
+	0x48, //  #  #
+	0x60, //  ##  
+	0x40, //  #   
+	0x48, //  #  #
+	0xF8, // #####
+	0x00, //      
+	0x00, //      
+
+	// @304 'F' (5 pixels wide)
+	0xF8, // #####
+	0x48, //  #  #
+	0x60, //  ##  
+	0x40, //  #   
+	0x40, //  #   
+	0xE0, // ###  
+	0x00, //      
+	0x00, //      
+
+	// @312 'G' (5 pixels wide)
+	0x70, //  ### 
+	0x40, //  #   
+	0x40, //  #   
+	0x58, //  # ##
+	0x50, //  # # 
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @320 'H' (5 pixels wide)
+	0xE8, // ### #
+	0x48, //  #  #
+	0x78, //  ####
+	0x48, //  #  #
+	0x48, //  #  #
+	0xE8, // ### #
+	0x00, //      
+	0x00, //      
+
+	// @328 'I' (5 pixels wide)
+	0x70, //  ### 
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @336 'J' (5 pixels wide)
+	0x38, //   ###
+	0x10, //    # 
+	0x10, //    # 
+	0x50, //  # # 
+	0x50, //  # # 
+	0x20, //   #  
+	0x00, //      
+	0x00, //      
+
+	// @344 'K' (5 pixels wide)
+	0xD8, // ## ##
+	0x50, //  # # 
+	0x60, //  ##  
+	0x70, //  ### 
+	0x50, //  # # 
+	0xD8, // ## ##
+	0x00, //      
+	0x00, //      
+
+	// @352 'L' (5 pixels wide)
+	0xE0, // ###  
+	0x40, //  #   
+	0x40, //  #   
+	0x40, //  #   
+	0x48, //  #  #
+	0xF8, // #####
+	0x00, //      
+	0x00, //      
+
+	// @360 'M' (5 pixels wide)
+	0xD8, // ## ##
+	0xD8, // ## ##
+	0xD8, // ## ##
+	0xA8, // # # #
+	0x88, // #   #
+	0xD8, // ## ##
+	0x00, //      
+	0x00, //      
+
+	// @368 'N' (5 pixels wide)
+	0xD8, // ## ##
+	0x68, //  ## #
+	0x68, //  ## #
+	0x58, //  # ##
+	0x58, //  # ##
+	0xE8, // ### #
+	0x00, //      
+	0x00, //      
+
+	// @376 'O' (5 pixels wide)
+	0x30, //   ## 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @384 'P' (5 pixels wide)
+	0xF0, // #### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x70, //  ### 
+	0x40, //  #   
+	0xE0, // ###  
+	0x00, //      
+	0x00, //      
+
+	// @392 'Q' (5 pixels wide)
+	0x30, //   ## 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0x30, //   ## 
+	0x18, //    ##
+	0x00, //      
+
+	// @400 'R' (5 pixels wide)
+	0xF0, // #### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x70, //  ### 
+	0x48, //  #  #
+	0xE8, // ### #
+	0x00, //      
+	0x00, //      
+
+	// @408 'S' (5 pixels wide)
+	0x70, //  ### 
+	0x50, //  # # 
+	0x20, //   #  
+	0x10, //    # 
+	0x50, //  # # 
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @416 'T' (5 pixels wide)
+	0xF8, // #####
+	0xA8, // # # #
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @424 'U' (5 pixels wide)
+	0xD8, // ## ##
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0x48, //  #  #
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @432 'V' (5 pixels wide)
+	0xD8, // ## ##
+	0x88, // #   #
+	0x48, //  #  #
+	0x50, //  # # 
+	0x50, //  # # 
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @440 'W' (5 pixels wide)
+	0xD8, // ## ##
+	0x88, // #   #
+	0xA8, // # # #
+	0xA8, // # # #
+	0xA8, // # # #
+	0x50, //  # # 
+	0x00, //      
+	0x00, //      
+
+	// @448 'X' (5 pixels wide)
+	0xD8, // ## ##
+	0x50, //  # # 
+	0x20, //   #  
+	0x20, //   #  
+	0x50, //  # # 
+	0xD8, // ## ##
+	0x00, //      
+	0x00, //      
+
+	// @456 'Y' (5 pixels wide)
+	0xD8, // ## ##
+	0x88, // #   #
+	0x50, //  # # 
+	0x20, //   #  
+	0x20, //   #  
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @464 'Z' (5 pixels wide)
+	0x78, //  ####
+	0x48, //  #  #
+	0x10, //    # 
+	0x20, //   #  
+	0x48, //  #  #
+	0x78, //  ####
+	0x00, //      
+	0x00, //      
+
+	// @472 '[' (5 pixels wide)
+	0x30, //   ## 
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x30, //   ## 
+	0x00, //      
+
+	// @480 '\' (5 pixels wide)
+	0x80, // #    
+	0x40, //  #   
+	0x40, //  #   
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x10, //    # 
+	0x00, //      
+
+	// @488 ']' (5 pixels wide)
+	0x60, //  ##  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x60, //  ##  
+	0x00, //      
+
+	// @496 '^' (5 pixels wide)
+	0x20, //   #  
+	0x20, //   #  
+	0x50, //  # # 
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @504 '_' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0xF8, // #####
+
+	// @512 '`' (5 pixels wide)
+	0x20, //   #  
+	0x10, //    # 
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x00, //      
+
+	// @520 'a' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x30, //   ## 
+	0x10, //    # 
+	0x70, //  ### 
+	0x78, //  ####
+	0x00, //      
+	0x00, //      
+
+	// @528 'b' (5 pixels wide)
+	0xC0, // ##   
+	0x40, //  #   
+	0x70, //  ### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0xF0, // #### 
+	0x00, //      
+	0x00, //      
+
+	// @536 'c' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x70, //  ### 
+	0x40, //  #   
+	0x40, //  #   
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @544 'd' (5 pixels wide)
+	0x18, //    ##
+	0x08, //     #
+	0x38, //   ###
+	0x48, //  #  #
+	0x48, //  #  #
+	0x38, //   ###
+	0x00, //      
+	0x00, //      
+
+	// @552 'e' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x70, //  ### 
+	0x70, //  ### 
+	0x40, //  #   
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @560 'f' (5 pixels wide)
+	0x10, //    # 
+	0x20, //   #  
+	0x70, //  ### 
+	0x20, //   #  
+	0x20, //   #  
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @568 'g' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x38, //   ###
+	0x48, //  #  #
+	0x48, //  #  #
+	0x38, //   ###
+	0x08, //     #
+	0x30, //   ## 
+
+	// @576 'h' (5 pixels wide)
+	0xC0, // ##   
+	0x40, //  #   
+	0x70, //  ### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0xE8, // ### #
+	0x00, //      
+	0x00, //      
+
+	// @584 'i' (5 pixels wide)
+	0x20, //   #  
+	0x00, //      
+	0x60, //  ##  
+	0x20, //   #  
+	0x20, //   #  
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @592 'j' (5 pixels wide)
+	0x20, //   #  
+	0x00, //      
+	0x70, //  ### 
+	0x10, //    # 
+	0x10, //    # 
+	0x10, //    # 
+	0x10, //    # 
+	0x70, //  ### 
+
+	// @600 'k' (5 pixels wide)
+	0xC0, // ##   
+	0x40, //  #   
+	0x58, //  # ##
+	0x70, //  ### 
+	0x50, //  # # 
+	0xD8, // ## ##
+	0x00, //      
+	0x00, //      
+
+	// @608 'l' (5 pixels wide)
+	0x60, //  ##  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @616 'm' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0xD0, // ## # 
+	0xA8, // # # #
+	0xA8, // # # #
+	0xA8, // # # #
+	0x00, //      
+	0x00, //      
+
+	// @624 'n' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0xF0, // #### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0xC8, // ##  #
+	0x00, //      
+	0x00, //      
+
+	// @632 'o' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x30, //   ## 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @640 'p' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0xF0, // #### 
+	0x48, //  #  #
+	0x48, //  #  #
+	0x70, //  ### 
+	0x40, //  #   
+	0xE0, // ###  
+
+	// @648 'q' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x38, //   ###
+	0x48, //  #  #
+	0x48, //  #  #
+	0x38, //   ###
+	0x08, //     #
+	0x18, //    ##
+
+	// @656 'r' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x78, //  ####
+	0x20, //   #  
+	0x20, //   #  
+	0x70, //  ### 
+	0x00, //      
+	0x00, //      
+
+	// @664 's' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x30, //   ## 
+	0x20, //   #  
+	0x10, //    # 
+	0x60, //  ##  
+	0x00, //      
+	0x00, //      
+
+	// @672 't' (5 pixels wide)
+	0x00, //      
+	0x40, //  #   
+	0xF0, // #### 
+	0x40, //  #   
+	0x48, //  #  #
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @680 'u' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0xD8, // ## ##
+	0x48, //  #  #
+	0x48, //  #  #
+	0x38, //   ###
+	0x00, //      
+	0x00, //      
+
+	// @688 'v' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0xC8, // ##  #
+	0x48, //  #  #
+	0x30, //   ## 
+	0x30, //   ## 
+	0x00, //      
+	0x00, //      
+
+	// @696 'w' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0xD8, // ## ##
+	0xA8, // # # #
+	0xA8, // # # #
+	0x50, //  # # 
+	0x00, //      
+	0x00, //      
+
+	// @704 'x' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x48, //  #  #
+	0x30, //   ## 
+	0x30, //   ## 
+	0x48, //  #  #
+	0x00, //      
+	0x00, //      
+
+	// @712 'y' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0xD8, // ## ##
+	0x50, //  # # 
+	0x50, //  # # 
+	0x20, //   #  
+	0x20, //   #  
+	0x60, //  ##  
+
+	// @720 'z' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x78, //  ####
+	0x50, //  # # 
+	0x28, //   # #
+	0x78, //  ####
+	0x00, //      
+	0x00, //      
+
+	// @728 '{' (5 pixels wide)
+	0x10, //    # 
+	0x20, //   #  
+	0x20, //   #  
+	0x60, //  ##  
+	0x20, //   #  
+	0x20, //   #  
+	0x10, //    # 
+	0x00, //      
+
+	// @736 '|' (5 pixels wide)
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x20, //   #  
+	0x00, //      
+
+	// @744 '}' (5 pixels wide)
+	0x40, //  #   
+	0x20, //   #  
+	0x20, //   #  
+	0x30, //   ## 
+	0x20, //   #  
+	0x20, //   #  
+	0x40, //  #   
+	0x00, //      
+
+	// @752 '~' (5 pixels wide)
+	0x00, //      
+	0x00, //      
+	0x00, //      
+	0x28, //   # #
+	0x50, //  # # 
+	0x00, //      
+	0x00, //      
+	0x00, //      
+};
+
+sFONT Font8 = {
+  Font8_Table,
+  5, /* Width */
+  8, /* Height */
+};
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 65 - 0
Arduino/epd2in7_V2/fonts.h

@@ -0,0 +1,65 @@
+/**
+  ******************************************************************************
+  * @file    fonts.h
+  * @author  MCD Application Team
+  * @version V1.0.0
+  * @date    18-February-2014
+  * @brief   Header for fonts.c file
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * Redistribution and use in source and binary forms, with or without modification,
+  * are permitted provided that the following conditions are met:
+  *   1. Redistributions of source code must retain the above copyright notice,
+  *      this list of conditions and the following disclaimer.
+  *   2. Redistributions in binary form must reproduce the above copyright notice,
+  *      this list of conditions and the following disclaimer in the documentation
+  *      and/or other materials provided with the distribution.
+  *   3. Neither the name of STMicroelectronics nor the names of its contributors
+  *      may be used to endorse or promote products derived from this software
+  *      without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __FONTS_H
+#define __FONTS_H
+
+/* Max size of bitmap will based on a font24 (17x24) */
+#define MAX_HEIGHT_FONT         24
+#define MAX_WIDTH_FONT          17
+#define OFFSET_BITMAP           54
+
+/* Includes ------------------------------------------------------------------*/
+#include <stdint.h>
+
+struct sFONT {
+  const uint8_t *table;
+  uint16_t Width;
+  uint16_t Height;
+};
+
+extern sFONT Font24;
+extern sFONT Font20;
+extern sFONT Font16;
+extern sFONT Font12;
+extern sFONT Font8;
+
+#endif /* __FONTS_H */
+ 
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

+ 1125 - 0
Arduino/epd2in7_V2/imagedata.cpp

@@ -0,0 +1,1125 @@
+/**
+ *  @filename   :   imagedata.cpp
+ *  @brief      :   data file for epd demo
+ *
+ *  Copyright (C) Waveshare     August 18 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "imagedata.h"
+#include <avr/pgmspace.h>
+
+const unsigned char IMAGE_DATA[5808] PROGMEM = { 
+/* 0X00,0X01,0XB0,0X00,0X08,0X01, */
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X80,0X00,0X00,0X00,0X00,0X03,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X80,0X00,0X00,0X00,
+0X00,0X03,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0X80,0X00,0X00,0X00,0X00,0X03,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X80,0X00,0X00,0X00,0X00,0X03,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFE,0X1F,0X80,0X00,
+0X00,0X00,0X00,0X03,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,
+0X1F,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X0F,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0X83,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X0E,0X07,0XFF,0XFE,0X1F,
+0X83,0XFF,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XF8,0X3F,0X83,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,
+0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF1,0XFF,
+0XFE,0X1F,0X83,0XFF,0XC0,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X01,0XFF,0XF1,0XFF,0XFE,0X1F,0X83,0X00,0X00,0X00,0X01,0X83,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X01,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,
+0X00,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,
+0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X00,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X7F,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X00,0X00,0X01,0X83,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,
+0X83,0X01,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,
+0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X3F,0XFF,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XC7,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X07,0XFF,
+0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XF0,0XFF,
+0XFE,0X1F,0X83,0XE0,0X00,0X7F,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X8F,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFE,0X00,0X0F,0XFF,0X83,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,
+0XE0,0X03,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,
+0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XFE,0X03,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XE0,0X03,0XFF,0X83,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,
+0X83,0XFE,0X00,0X03,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,
+0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XE0,0X00,0X1F,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X01,0XFF,
+0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X87,0XFF,0XFF,0XF0,0XFF,
+0XFE,0X1F,0X83,0X00,0X1F,0XFF,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC3,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF9,0XC1,0XFF,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,
+0X00,0X00,0X1F,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0XE0,0XFF,0XFF,
+0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X00,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X70,0X1F,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X00,0X00,0X01,0X83,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X38,0X1F,0XFF,0XF0,0XFF,0XFE,0X1F,
+0X83,0X00,0X00,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3E,
+0X1F,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XC0,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0X1F,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,
+0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0XBE,0X1F,0XFF,0XF0,0XFF,
+0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X0F,0X1E,0X1F,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XE1,0X83,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X82,0X0E,0X1F,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,
+0XFF,0XFF,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1E,0X1F,0XFF,
+0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XF0,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X3F,0X0F,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0X80,0X01,0X83,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0X07,0XFF,0XF0,0XFF,0XFE,0X1F,
+0X83,0XFF,0XF8,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X7F,
+0X81,0XFF,0XF0,0XFF,0XFE,0X1F,0X83,0XFF,0XC0,0X00,0X01,0X83,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XC0,0X0F,0XF0,0XFF,0XFE,0X1F,0X83,0XFC,0X00,0X00,
+0X07,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X7F,0XE0,0X1F,0XF0,0XFF,
+0XFE,0X1F,0X83,0XE0,0X00,0X00,0X7F,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,
+0X00,0X7F,0XFC,0X1F,0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X00,0X00,0X7F,0X83,0XE1,0XFF,
+0XFF,0XFE,0X3F,0XFF,0XFF,0XFF,0XFC,0X7F,0XFE,0X1F,0XF0,0XFF,0XFE,0X1F,0X83,0X00,
+0X00,0X70,0X7F,0X83,0XE1,0XFF,0XFF,0XFC,0X1F,0XFF,0XFF,0XFF,0XFC,0X3F,0XFE,0X1F,
+0XF0,0XFF,0XFE,0X1F,0X83,0X00,0X07,0XF0,0X7F,0X83,0XE1,0XFF,0XFF,0XFC,0X1F,0XFF,
+0XFF,0XFF,0XFC,0X1F,0XFF,0X1F,0XF1,0XFF,0XFE,0X1F,0X83,0X00,0X7F,0XF0,0X7F,0X83,
+0XE1,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,0XFF,0XF8,0X0F,0XFF,0X0F,0XE1,0XFF,0XFE,0X1F,
+0X83,0X07,0XFF,0XF0,0X7F,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X01,
+0X0F,0X83,0XC1,0XFF,0XFE,0X1F,0X83,0X00,0X7F,0XF0,0X7F,0X83,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XC3,0X80,0X07,0X80,0X03,0XFF,0XFE,0X1F,0X83,0X00,0X0F,0XF0,
+0X7F,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XC0,0X03,0XC0,0X07,0XFF,
+0XFE,0X1F,0X83,0X00,0X00,0XF0,0X7F,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X9F,0XC0,0X19,0XF0,0X1F,0XFF,0XFE,0X1F,0X83,0X80,0X00,0X10,0X7F,0X83,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X9E,0X7C,0XFC,0X7F,0XFF,0XFE,0X1F,0X83,0XF0,
+0X00,0X00,0X7F,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X9F,0X7C,0X7F,
+0XFF,0XFF,0XFE,0X1F,0X83,0XFE,0X00,0X00,0X3F,0X83,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X3F,0X7E,0X7F,0XFF,0XFF,0XFE,0X1F,0X83,0XFF,0XE0,0X00,0X03,0X83,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0X7F,0X3F,0XFF,0XFF,0XFE,0X1F,
+0X83,0XFF,0XFC,0X00,0X01,0X83,0XE1,0XFF,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFE,0X7F,
+0X3F,0XBF,0XFF,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XC0,0X01,0X83,0XE1,0XFF,0X00,0X00,
+0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XF8,
+0X01,0X83,0XE1,0XFF,0XF8,0XFC,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0XFF,0XFF,0XFF,
+0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0X01,0X83,0XE1,0XFF,0XF9,0XFE,0X3F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XF1,0X83,0XE1,0XFF,
+0XF9,0XFF,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X83,0XFF,
+0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XF9,0XFF,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XF9,0XFF,0X9F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0X83,
+0XE1,0XFF,0XFC,0XFF,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0X83,0XFF,0XFF,0XFF,0XFF,0X83,0XE1,0XFF,0XFC,0X7F,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X80,0X00,0X00,0X00,0X00,0X03,0XE1,0XFF,0XFE,0X00,
+0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X80,0X00,0X00,0X00,
+0X00,0X03,0XE1,0XFF,0XFF,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0X80,0X00,0X00,0X00,0X00,0X03,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X80,0X00,0X00,0X00,0X00,0X03,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0X80,0X00,
+0X00,0X00,0X00,0X03,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0X07,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFE,0X07,0XBF,0XFF,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFC,0X67,
+0X9F,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XF8,0XE7,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XF9,0XE7,0X9F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XF9,0XE7,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XF9,0XE7,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XF9,0XE7,0X1F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFC,0XE7,0X3F,0XFF,0XFF,0XF8,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFC,0X00,0X3F,0XFF,0XFF,0XF0,0X01,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFE,0X00,
+0X7F,0XFF,0XFF,0XC1,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XFF,0X81,0XFF,0XFF,0XFF,0X0F,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,
+0XFF,0X07,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X38,0X63,0X83,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0X80,0X1F,0XFF,0XFF,0XF8,0X70,0X31,0XC1,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0X80,0X00,0X1F,0XFF,
+0XF0,0X60,0X30,0XC1,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFC,0X00,0X03,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFC,0X1F,0XFF,0XE0,0X60,0X30,0X40,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XC0,0X00,0X00,0X7F,0XFF,0XE1,0XFF,0XFF,0XFE,0X1F,0XFF,0XE0,0X60,0X30,0X60,
+0X00,0X00,0X00,0X01,0XFE,0X1F,0XFF,0X00,0X00,0X00,0X1F,0XFF,0XE1,0XFF,0XFF,0XF0,
+0X7F,0XFF,0XC0,0X70,0X30,0X60,0X00,0X00,0X00,0X01,0XFE,0X1F,0XFE,0X00,0X00,0X00,
+0X07,0XFF,0XE1,0XFF,0XFF,0X83,0XFF,0XFF,0XC0,0X30,0X70,0X60,0X00,0X00,0X00,0X01,
+0XFE,0X1F,0XFC,0X00,0X00,0X00,0X03,0XFF,0XE1,0XFF,0XFE,0X1F,0XFF,0XFF,0X80,0X3F,
+0XE0,0X60,0X00,0X00,0X00,0X01,0XFE,0X1F,0XF8,0X00,0X3F,0XFC,0X01,0XFF,0XE1,0XFF,
+0XFE,0X0F,0XFF,0XFF,0X80,0X1F,0XC0,0X00,0X00,0X00,0X00,0X01,0XFE,0X1F,0XF0,0X18,
+0X1F,0XFF,0X80,0XFF,0XE1,0XFF,0XFF,0XC1,0XFF,0XFF,0X80,0X03,0X00,0X00,0X00,0X00,
+0X00,0X01,0XFE,0X1F,0XE0,0X7C,0X0F,0XFF,0XE0,0XFF,0XE1,0XFF,0XFF,0XF8,0X3F,0XFF,
+0X80,0X00,0X00,0X00,0X1F,0XFF,0XF0,0X01,0XFE,0X1F,0XE0,0XFE,0X07,0XFF,0XF0,0X7F,
+0XE1,0XFF,0XFF,0XFF,0X1F,0XFF,0X80,0X00,0X00,0X00,0X1F,0XFF,0XE0,0X01,0XFE,0X1F,
+0XE1,0XFF,0X07,0XFF,0XF8,0X7F,0XE1,0XFF,0XE0,0X00,0X1F,0XFF,0X80,0X00,0X00,0X00,
+0X1F,0XFF,0XC0,0X01,0XFE,0X1F,0XC1,0XFF,0X03,0XFF,0XF8,0X7F,0XE1,0XFF,0X80,0X00,
+0X1F,0XFF,0X80,0X07,0XFC,0X00,0X1F,0XFF,0X80,0X01,0XFE,0X1F,0XC3,0XFF,0X81,0XFF,
+0XFC,0X3F,0XE1,0XFF,0X83,0XFF,0XFF,0XFF,0X80,0X1F,0XFF,0X00,0X1F,0XFF,0X00,0X01,
+0XFE,0X1F,0XC3,0XFF,0XC0,0XFF,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X3C,
+0X67,0X80,0X1F,0XFE,0X00,0X81,0XFE,0X1F,0XC3,0XFF,0XE0,0XFF,0XFC,0X3F,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X80,0X30,0X21,0XC0,0X1F,0XFC,0X01,0X81,0XFE,0X1F,0XC3,0XFF,
+0XE0,0X7F,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X60,0X30,0XC0,0X3F,0XF8,
+0X03,0X81,0XFE,0X1F,0XC3,0XFF,0XF0,0X3F,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XC0,0X60,0X30,0XC0,0X7F,0XF0,0X0F,0X81,0XFE,0X1F,0XE1,0XFF,0XF8,0X3F,0XF8,0X3F,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X60,0X30,0X60,0X7F,0XE0,0X1F,0X81,0XFE,0X1F,
+0XE1,0XFF,0XFC,0X1F,0XF8,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X60,0X30,0X60,
+0XFF,0XC0,0X3F,0X81,0XFE,0X1F,0XE0,0XFF,0XFC,0X0F,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE0,0X30,0X70,0X60,0XFF,0X80,0X7F,0X81,0XFE,0X1F,0XF0,0X7F,0XFE,0X07,
+0XC0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X38,0XE0,0X61,0XFE,0X00,0XFF,0X81,
+0XFE,0X1F,0XF0,0X1F,0XFF,0X07,0X80,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X1F,
+0XE0,0X61,0XFC,0X01,0XFF,0X81,0XFE,0X1F,0XF8,0X03,0XFF,0X00,0X01,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X0F,0X80,0X00,0XF8,0X03,0XFF,0X81,0XFE,0X1F,0XFC,0X00,
+0X00,0X00,0X01,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X70,0X07,
+0XFF,0X81,0XFE,0X1F,0XFE,0X00,0X00,0X00,0X07,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X00,0X00,0X20,0X0F,0XFF,0X81,0XFE,0X1F,0XFF,0X80,0X00,0X00,0X0F,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X60,0X00,0X1F,0XFF,0X81,0XFE,0X1F,
+0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X01,0XF0,
+0X00,0X3F,0XFF,0X81,0XFE,0X1F,0XFF,0XFC,0X00,0X03,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X81,0XFF,0XF8,0X00,0XFF,0XFF,0X81,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0XFC,0X01,0XFF,0XFF,0X81,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,
+0XFF,0XFE,0X01,0XFF,0XFF,0X81,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0XFE,0X01,0XFF,0XFF,0X81,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0X81,0XFF,0XFF,0X00,0XFF,
+0XFF,0X81,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0X9F,0X80,0X3F,0XFF,
+0XFF,0X81,0XFF,0XFF,0X80,0X7F,0XFF,0X81,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0X9F,0X9E,0X3F,0XFF,0XFF,0X81,0XFF,0XFF,0XC0,0X3F,0XFF,0X81,0XFE,0X1F,
+0XFF,0XFC,0X00,0X03,0XFF,0XFF,0XE1,0XFF,0X9F,0X3F,0X1F,0XFF,0XFF,0X81,0XFF,0XFF,
+0XE0,0X1F,0XFF,0X81,0XFE,0X1F,0XFF,0XC0,0X00,0X00,0X7F,0XFF,0XE1,0XFF,0X9F,0X3F,
+0X9F,0XFF,0XFF,0X81,0XFF,0XFF,0XF0,0X0F,0XFF,0X81,0XFE,0X1F,0XFF,0X00,0X00,0X00,
+0X1F,0XFF,0XE1,0XFF,0X9F,0X3F,0X9F,0XFF,0XFF,0X81,0XFF,0XFF,0XF8,0X0F,0XFF,0X81,
+0XFE,0X1F,0XFE,0X00,0X00,0X00,0X07,0XFF,0XE1,0XFF,0XCF,0X3F,0X9F,0XFF,0XFF,0X81,
+0XFF,0XFF,0XFC,0X07,0XFF,0X81,0XFE,0X1F,0XFC,0X00,0X00,0X00,0X03,0XFF,0XE1,0XFF,
+0XCF,0X3F,0X9F,0XFF,0XFF,0X81,0XFF,0XFF,0XFE,0X03,0XFF,0X81,0XFE,0X1F,0XF8,0X00,
+0X3F,0XFC,0X01,0XFF,0XE1,0XFF,0XE3,0X9F,0X3F,0XFF,0XFF,0X81,0XFF,0XFF,0XFE,0X03,
+0XFF,0X81,0XFE,0X1F,0XF0,0X18,0X1F,0XFF,0X80,0XFF,0XE1,0XFF,0XF0,0X00,0X3F,0XFF,
+0XFF,0X81,0XFF,0XFF,0XFC,0X03,0XFF,0X81,0XFE,0X1F,0XE0,0X7C,0X0F,0XFF,0XE0,0XFF,
+0XE1,0XFF,0XF8,0X00,0X7F,0XFF,0XFF,0X81,0XFF,0XFF,0XF8,0X07,0XFF,0X81,0XFE,0X1F,
+0XE0,0XFE,0X07,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0X03,0XFF,0XFF,0XFF,0X81,0XFF,0XFF,
+0XF0,0X0F,0XFF,0X81,0XFE,0X1F,0XE1,0XFF,0X07,0XFF,0XF8,0X7F,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X81,0XFF,0XFF,0XE0,0X1F,0XFF,0X81,0XFE,0X1F,0XC1,0XFF,0X03,0XFF,
+0XF8,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFF,0XFF,0XC0,0X3F,0XFF,0X81,
+0XFE,0X1F,0XC3,0XFF,0X81,0XFF,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,
+0XFF,0XFF,0XC0,0X7F,0XFF,0X81,0XFE,0X1F,0XC3,0XFF,0XC0,0XFF,0XFC,0X3F,0XE1,0XFF,
+0XFF,0XFF,0X9F,0XFF,0XFF,0X81,0XFF,0XFF,0X80,0XFF,0XFF,0X81,0XFE,0X1F,0XC3,0XFF,
+0XE0,0XFF,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0X9F,0XFF,0XFF,0X81,0XFF,0XFF,0X01,0XFF,
+0XFF,0X81,0XFE,0X1F,0XC3,0XFF,0XE0,0X7F,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0X9F,0XFF,
+0XFF,0X81,0XFF,0XFE,0X01,0XFF,0XFF,0X81,0XFE,0X1F,0XC3,0XFF,0XF0,0X3F,0XFC,0X3F,
+0XE1,0XFF,0XFF,0XFF,0X9F,0XFF,0XFF,0X81,0XFF,0XFC,0X01,0XFF,0XFF,0X81,0XFE,0X1F,
+0XE1,0XFF,0XF8,0X3F,0XF8,0X3F,0XE1,0XFF,0X80,0X00,0X1F,0XFF,0XFF,0X81,0XFF,0XF8,
+0X00,0XFF,0XFF,0X81,0XFE,0X1F,0XE1,0XFF,0XFC,0X1F,0XF8,0X7F,0XE1,0XFF,0X80,0X00,
+0X1F,0XFF,0XFF,0X81,0XFF,0XF0,0X00,0X7F,0XFF,0X81,0XFE,0X1F,0XE0,0XFF,0XFC,0X0F,
+0XF0,0X7F,0XE1,0XFF,0X80,0X00,0X1F,0XFF,0XFF,0X81,0XFF,0XE0,0X00,0X3F,0XFF,0X81,
+0XFE,0X1F,0XF0,0X7F,0XFE,0X07,0XC0,0X7F,0XE1,0XFF,0XDF,0XFF,0X9F,0XFF,0XFF,0X81,
+0XFF,0XE0,0X00,0X1F,0XFF,0X81,0XFE,0X1F,0XF0,0X1F,0XFF,0X07,0X80,0XFF,0XE1,0XFF,
+0XCF,0XFF,0X9F,0XFF,0XFF,0X81,0XFF,0XC0,0X70,0X0F,0XFF,0X81,0XFE,0X1F,0XF8,0X03,
+0XFF,0X00,0X01,0XFF,0XE1,0XFF,0XE7,0XFF,0X9F,0XFF,0XFF,0X81,0XFF,0X80,0XF8,0X07,
+0XFF,0X81,0XFE,0X1F,0XFC,0X00,0X00,0X00,0X01,0XFF,0XE1,0XFF,0XE7,0XFF,0X9F,0XFF,
+0XFF,0X81,0XFF,0X01,0XFC,0X01,0XFF,0X81,0XFE,0X1F,0XFE,0X00,0X00,0X00,0X07,0XFF,
+0XE1,0XFF,0XF7,0XFF,0X9F,0XFF,0XFF,0X81,0XFE,0X01,0XFE,0X00,0XFF,0X81,0XFE,0X1F,
+0XFF,0X80,0X00,0X00,0X0F,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XFC,0X03,
+0XFF,0X00,0X7F,0X81,0XFE,0X1F,0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X81,0XF8,0X07,0XFF,0X80,0X3F,0X81,0XFE,0X1F,0XFF,0XFC,0X00,0X03,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XF0,0X0F,0XFF,0XC0,0X1F,0X81,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,
+0XE0,0X1F,0XFF,0XE0,0X0F,0X81,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XE0,0X3F,0XFF,0XF0,0X07,0X81,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0XC0,0X7F,0XFF,0XFC,
+0X03,0X81,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X81,0X80,0XFF,0XFF,0XFE,0X01,0X81,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X81,0X00,0XFF,0XFF,0XFF,0X00,0X81,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X01,0XFF,
+0XFF,0XFF,0X80,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X80,0X03,0XFF,0XFF,0XFF,0XC0,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X07,0XFF,0XFF,0XFF,0XE0,0X01,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,
+0X0F,0XFF,0XFF,0XFF,0XF0,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X0F,0XFF,0XFF,0XFF,0XF0,0X01,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,
+0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X01,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,
+0X00,0X00,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X01,0XFE,0X1F,0XFF,0XFC,0X7F,0XFF,
+0XF1,0XFF,0XE1,0XFF,0XF9,0XFF,0XE7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XF0,0X1F,0XFF,0XC0,0X7F,0XE1,0XFF,0XF9,0XFF,0XC3,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XF0,0X1F,0XFF,0XC0,0X7F,0XE1,0XFF,
+0XF8,0X0F,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XE0,
+0X0F,0XFF,0X80,0X3F,0XE1,0XFF,0XF8,0X07,0X99,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XE0,0X0F,0XFF,0X80,0X3F,0XE1,0XFF,0XF8,0XE7,0X9C,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XE0,0X0F,0XFF,0X80,0X3F,
+0XE1,0XFF,0XF9,0XF3,0X9C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XF0,0X1F,0XFF,0XC0,0X7F,0XE1,0XFF,0XF9,0XF3,0X9C,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XF0,0X1F,0XFF,0XC0,0X7F,0XE1,0XFF,0XF9,0XF3,
+0X9C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFC,0X7F,0XFF,
+0XF1,0XFF,0XE1,0XFF,0XF9,0XF3,0X9C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFC,0XE7,0X9C,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFC,0X00,0X09,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFE,0X08,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFC,0X61,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XF8,0X00,0X1F,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XF8,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFE,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0X3F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFC,0X00,0X03,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0X9F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XC0,0X00,0X00,0X7F,0XFF,0XE1,0XFF,0XFF,0XFC,0X1F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0X00,0X00,0X00,0X1F,0XFF,0XE1,0XFF,
+0XF8,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFE,0X00,
+0X00,0X00,0X07,0XFF,0XE1,0XFF,0XF8,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFC,0X00,0X00,0X00,0X03,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X01,0XFE,0X1F,0XF8,0X00,0X3F,0XFC,0X01,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X00,0X01,0XFE,0X1F,
+0XF0,0X18,0X1F,0XFF,0X80,0XFF,0XE1,0XFF,0XFF,0XFF,0XDF,0XFF,0XFF,0XFF,0XFE,0X00,
+0X00,0X00,0X00,0X01,0XFE,0X1F,0XE0,0X7C,0X0F,0XFF,0XE0,0XFF,0XE1,0XFF,0XFF,0XFE,
+0X1F,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X01,0XFE,0X1F,0XE0,0XFE,0X07,0XFF,
+0XF0,0X7F,0XE1,0XFF,0XFF,0XF0,0X1F,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X01,
+0XFE,0X1F,0XE1,0XFF,0X07,0XFF,0XF8,0X7F,0XE1,0XFF,0XFF,0X80,0X7F,0XFF,0XFF,0XFF,
+0XC0,0X00,0X00,0X80,0X00,0X01,0XFE,0X1F,0XC1,0XFF,0X03,0XFF,0XF8,0X7F,0XE1,0XFF,
+0XFC,0X01,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X03,0XE0,0X00,0X01,0XFE,0X1F,0XC3,0XFF,
+0X81,0XFF,0XFC,0X3F,0XE1,0XFF,0XE0,0X39,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X0F,0XF8,
+0X00,0X01,0XFE,0X1F,0XC3,0XFF,0XC0,0XFF,0XFC,0X3F,0XE1,0XFF,0X81,0XF9,0XFF,0XFF,
+0XFF,0XFE,0X00,0X00,0X3F,0XFE,0X00,0X01,0XFE,0X1F,0XC3,0XFF,0XE0,0XFF,0XFC,0X3F,
+0XE1,0XFF,0X8F,0XF9,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XFF,0XE0,0X01,0XFE,0X1F,
+0XC3,0XFF,0XE0,0X7F,0XFC,0X3F,0XE1,0XFF,0X87,0XF9,0XFF,0XFF,0XFF,0XF8,0X00,0X03,
+0XFC,0X0F,0XF0,0X01,0XFE,0X1F,0XC3,0XFF,0XF0,0X3F,0XFC,0X3F,0XE1,0XFF,0X80,0XF9,
+0XFF,0XFF,0XFF,0XF0,0X00,0X0F,0XF0,0X03,0XF0,0X01,0XFE,0X1F,0XE1,0XFF,0XF8,0X3F,
+0XF8,0X3F,0XE1,0XFF,0XF0,0X19,0XFF,0XFF,0XFF,0XF0,0X00,0X1F,0XF0,0X00,0XF8,0X01,
+0XFE,0X1F,0XE1,0XFF,0XFC,0X1F,0XF8,0X7F,0XE1,0XFF,0XFE,0X01,0XFF,0XFF,0XFF,0XE0,
+0X00,0X1F,0XF0,0X00,0XFC,0X01,0XFE,0X1F,0XE0,0XFF,0XFC,0X0F,0XF0,0X7F,0XE1,0XFF,
+0XFF,0XC0,0X3F,0XFF,0XFF,0XE0,0X00,0X0F,0XF8,0X00,0X00,0X01,0XFE,0X1F,0XF0,0X7F,
+0XFE,0X07,0XC0,0X7F,0XE1,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XC0,0X00,0X03,0XFE,0X00,
+0X00,0X01,0XFE,0X1F,0XF0,0X1F,0XFF,0X07,0X80,0XFF,0XE1,0XFF,0XFF,0XFF,0X9F,0XFF,
+0XFF,0XC0,0X00,0X00,0XFF,0X80,0X00,0X01,0XFE,0X1F,0XF8,0X03,0XFF,0X00,0X01,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X3F,0XE0,0X00,0X01,0XFE,0X1F,
+0XFC,0X00,0X00,0X00,0X01,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,
+0X07,0XFC,0X00,0X01,0XFE,0X1F,0XFE,0X00,0X00,0X00,0X07,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X80,0X00,0X00,0X03,0XFC,0X00,0X01,0XFE,0X1F,0XFF,0X80,0X00,0X00,
+0X0F,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X1F,0XC0,0X03,0XFC,0X00,0X01,
+0XFE,0X1F,0XFF,0XE0,0X00,0X00,0X3F,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
+0X0F,0XC0,0X03,0XFC,0X00,0X01,0XFE,0X1F,0XFF,0XFC,0X00,0X03,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X07,0XF8,0X1F,0XF0,0X00,0X01,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XFE,0X3F,0X00,
+0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X01,0XFF,0XFE,0X00,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XFE,0X00,0X00,0X01,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X03,
+0XFE,0X00,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X00,0X00,0X00,0XFF,0X80,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XE0,0X00,0X01,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
+0X00,0X00,0X1F,0XFC,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X1F,0XFC,0X00,0X01,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X1F,0XFC,
+0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X00,0X00,0XFF,0XE0,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X07,0XFF,0X00,0X00,0X01,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X1F,
+0XFC,0X00,0X00,0X01,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XF0,0X00,0X00,0X03,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XF0,0X00,0X00,0X03,
+0XFE,0X1F,0XE0,0X00,0X00,0X00,0X00,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
+0X00,0X0F,0XF0,0X00,0X00,0X03,0XFE,0X1F,0XE0,0X00,0X00,0X00,0X00,0X7F,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X01,0XFE,0X00,0X00,0X07,0XFE,0X1F,0XE0,0X00,
+0X00,0X00,0X00,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XC0,
+0X00,0X07,0XFE,0X1F,0XE0,0X00,0X00,0X00,0X00,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X00,0X00,0X3F,0XF8,0X00,0X0F,0XFE,0X1F,0XE0,0X00,0X00,0X00,0X00,0X7F,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFC,0X00,0X0F,0XFE,0X1F,
+0XE0,0X00,0X00,0X00,0X00,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,
+0X7F,0XFC,0X00,0X1F,0XFE,0X1F,0XF0,0XFF,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X00,0X00,0X03,0XFF,0XF8,0X00,0X3F,0XFE,0X1F,0XF8,0X7F,0XFF,0XFF,
+0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X0F,0XFF,0XC0,0X00,0X3F,
+0XFE,0X1F,0XF8,0X3F,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
+0X00,0X1F,0XFE,0X00,0X00,0X7F,0XFE,0X1F,0XFC,0X3F,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X1F,0XF0,0X00,0X00,0XFF,0XFE,0X1F,0XFC,0X1F,
+0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X1F,0X80,0X00,
+0X01,0XFF,0XFE,0X1F,0XFE,0X0F,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X00,0X1C,0X00,0X00,0X03,0XFF,0XFE,0X1F,0XFE,0X0F,0XFF,0XFF,0XF0,0X7F,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0XFE,0X1F,
+0XFF,0X07,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,
+0X00,0X00,0X1F,0XFF,0XFE,0X1F,0XFF,0X83,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFE,0X1F,0XFF,0X87,0XFF,0XFF,
+0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XDF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,
+};
+
+
+const unsigned char IMAGE_DATA_4Gray[11616] PROGMEM = { /* 0X00,0X02,0XB0,0X00,0X08,0X01, */
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,
+0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,0X55,0X55,0X55,0X55,
+0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,
+0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,
+0X03,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0XA8,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X0A,0XAA,0X80,0X0F,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X2A,0XAA,
+0XA8,0X03,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0XAA,0XAA,0XAA,0X03,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XF5,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X00,0X02,0XAA,0XAA,0XAA,0X03,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
+0X00,0X02,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,
+0X55,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X0A,0XAA,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X55,0X55,0X55,
+0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X2A,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFC,0X00,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0X55,0X57,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0A,
+0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,
+0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X2A,0XAA,0XAA,0XAA,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X7F,0XFF,0XFF,
+0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X2A,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFD,0X55,0X55,0X55,0X7F,0XFF,0XFF,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XC0,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFD,0X55,0X55,0X55,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,
+0XFD,0X55,0X55,0X5F,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFD,0X55,0X5F,
+0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFD,0X55,0X55,0X5F,0XFF,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XC0,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFD,0X55,0X55,0X55,0X5F,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFD,0X55,
+0X55,0X55,0X57,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X2A,0XAA,0XAA,0XAA,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X57,0XFF,0XFF,
+0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X2A,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X57,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XF0,0X0A,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0X55,0X55,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XF0,0X02,
+0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,
+0X55,0X55,0X55,0X55,0X57,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFC,0X00,0XAA,0XAA,0XAA,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X55,0X55,0X55,
+0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X0F,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XFC,
+0X02,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,
+0XF5,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCF,0XFC,0X02,0XAA,0XAA,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0X0F,0XFF,0XCF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0X00,0XFF,0X03,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFD,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XC0,0X0C,0X00,0XFC,
+0X02,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XFC,0X02,0XAA,0XAA,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0X55,
+0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0X00,0XAA,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XD5,0X55,0X55,0X57,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XF0,0X0F,0XFF,0X00,0X2A,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFF,0XFF,0XD5,0X55,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,
+0XC0,0X02,0XAA,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,
+0XF5,0X55,0X55,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0XF0,0X00,0X00,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XF5,0X55,0X55,0X55,0X55,
+0X55,0X7F,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X02,0XAA,0XAA,0X00,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFD,0X55,0X55,0X55,0X55,0X55,0X7F,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XF0,
+0X00,0X00,0X3F,0XFF,0XFF,0XF0,0X02,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0X55,0X55,0X55,0X55,0X55,0X55,0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XA8,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,
+0XFF,0XFC,0X02,0XAA,0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,
+0X55,0X55,0X7F,0X55,0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA0,
+0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFF,0XFC,0X02,0XAA,
+0XAA,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X7F,0XFF,0X55,
+0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA0,0X02,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XFF,0X02,0XAA,0XAA,0X03,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X7F,0XFF,0XFF,0X55,0X7F,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA8,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0X00,0XAA,0XA8,0X03,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0X55,0X7F,0XFF,0XFF,0XFF,0X55,0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X03,
+0X00,0XFF,0XC0,0X0A,0XA0,0X03,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,
+0X7F,0XFF,0XFF,0X55,0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XC0,0X00,0X00,0X3F,0XC0,0X00,
+0X00,0X0F,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0XFF,0XFF,0X55,
+0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF0,0X00,0X00,0X0F,0XF0,0X00,0X00,0X3F,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0X55,0X55,0X55,0X55,0XFF,0X55,0X7F,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XC3,0XFF,0XF0,0X00,0X03,0XC3,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XD5,0X55,0X55,0X55,0X57,0X55,0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XFC,
+0X3F,0XF0,0XFF,0XF0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0X55,
+0X55,0X55,0X55,0X55,0X7F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XFF,0X3F,0XF0,0X3F,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFD,0X55,0X55,0X55,0X55,
+0X5F,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XFF,0X3F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFD,0X55,0X55,0X55,0X55,0X5F,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0X0F,0XFF,0X3F,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFF,0XFF,0XF5,0X55,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0X00,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,
+0X0F,0XFF,0XCF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,
+0XFF,0XFF,0XF5,0X55,0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0X00,0X00,0X00,0X00,
+0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,
+0X55,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0X80,0XAA,0XA0,0X2A,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X55,0X57,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0XA8,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X57,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0X82,0XAA,0XAA,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,
+0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XA0,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X5F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD5,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XA0,0X2A,0XAA,0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,
+0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XA8,0X00,0X00,
+0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,0X55,0X55,0X55,0X55,
+0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X2A,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XD5,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XD5,0X55,0X55,0X55,
+0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X5F,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0X2A,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XA8,0X00,0X2A,0X8A,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XA0,0X28,0X2A,
+0X82,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X80,0XA8,0X2A,0X82,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XA8,0X2A,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0X82,0XA8,0X2A,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XA8,0X2A,
+0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XA8,0X2A,0X02,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XA0,0XA8,0X2A,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XC0,
+0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XA0,0X00,0X00,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0X00,0X00,0X03,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XA8,0X00,0X00,
+0X2A,0XAA,0XAA,0XAA,0XFF,0XFF,0XF0,0X03,0XFC,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X02,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFC,0X0F,0XFF,
+0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XF0,0X0F,0XC0,0X3C,0X0F,0XC0,0X0F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X00,0X02,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XC0,0X3F,0X00,0X0F,0X03,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,
+0XFF,0X00,0X3C,0X00,0X0F,0X00,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA0,0X02,0XAA,0XAA,0XAA,0XFC,0X00,0X3C,0X00,
+0X0F,0X00,0X30,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XA8,0X02,0XAA,0XAA,0XAA,0XFC,0X00,0X3C,0X00,0X0F,0X00,0X3C,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,
+0X2A,0XAA,0XAA,0XAA,0XF0,0X00,0X3F,0X00,0X0F,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X0A,0XAA,0XAA,0XAA,0XAA,
+0XF0,0X00,0X0F,0X00,0X3F,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XA8,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XC0,0X00,0X0F,0XFF,
+0XFC,0X00,0X3C,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XC0,0X00,0X00,0X0F,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XA8,0X00,0XAA,0XAA,0XAA,0XAA,0XAA,0XC0,0X00,0X03,0XFF,0XF0,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X03,0XC0,
+0X03,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XA0,0X02,
+0XAA,0XAA,0XAA,0XAA,0XC0,0X00,0X00,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X00,0X3F,0XF0,0X00,0XFF,0XFF,0XFF,
+0XFC,0X00,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0X80,0X0A,0XAA,0XAA,0XAA,
+0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFC,0X00,0XFF,0XFC,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X02,0XAA,0XAA,0XAA,0XC0,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,0XA8,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFC,0X03,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XA8,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X02,0XAA,0XAA,0XAA,0XA0,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X03,0XFF,0XFF,
+0X00,0X0F,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X00,0X00,0X00,
+0X02,0XAA,0XAA,0XAA,0XC0,0X00,0X00,0X3F,0XFF,0XF0,0X00,0X00,0X02,0XAA,0XAA,0XAA,
+0X80,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XC0,0X03,0XFF,0XFF,
+0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X0A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XC0,0X00,0X03,0XFF,0XFF,0XFF,0X00,0X00,0X02,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XC0,0X00,0X0F,0XF0,
+0X3C,0X3F,0XC0,0X00,0X02,0XAA,0XAA,0XA8,0X00,0X00,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XF0,0X0F,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XC0,0X00,0X0F,0X00,0X0C,0X03,0XF0,0X00,
+0X02,0XAA,0XAA,0XA0,0X00,0X02,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,
+0XFC,0X00,0X3F,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XF0,0X00,0X3C,0X00,0X0F,0X00,0XF0,0X00,0X0A,0XAA,0XAA,0X80,
+0X00,0X0A,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XFF,0X00,0X0F,0XFF,
+0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XF0,0X00,0X3C,0X00,0X0F,0X00,0XF0,0X00,0X2A,0XAA,0XAA,0X00,0X00,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XC0,0X0F,0XFF,0XFF,0XC0,0X0F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XF0,0X00,0X3C,0X00,
+0X0F,0X00,0X3C,0X00,0X2A,0XAA,0XA8,0X00,0X02,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFC,0X03,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XC0,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFC,0X00,0X3C,0X00,0X0F,0X00,0X3C,0X00,
+0XAA,0XAA,0XA0,0X00,0X0A,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X00,0XFF,0XFF,
+0XFF,0XF0,0X00,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFC,0X00,0X0F,0X00,0X3F,0X00,0X3C,0X00,0XAA,0XAA,0X80,0X00,
+0X2A,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFC,0X00,0X3F,
+0XF0,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0X00,0X0F,0XC0,0XFC,0X00,0X3C,0X02,0XAA,0XA8,0X00,0X00,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0X00,0X3F,0XC0,0X00,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XC0,0X03,0XFF,
+0XFC,0X00,0X3C,0X02,0XAA,0XA0,0X00,0X02,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XC0,0X00,0X0F,0XFF,0XFF,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XF0,0X00,0XFF,0XC0,0X00,0X00,0X00,
+0XAA,0X80,0X00,0X0A,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XF0,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X2A,0X00,0X00,0X2A,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X08,0X00,0X00,0XAA,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,
+0X00,0X00,0X28,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X02,0XAA,0X00,
+0X00,0X00,0X0A,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,
+0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0X80,0X00,0X00,0XAA,0XAA,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XA0,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XAA,0XAA,0XA8,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XA8,
+0X00,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XA0,0X00,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0XAA,0XAA,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0X82,0XAA,0X80,0X00,0X0A,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X00,0X2A,0XAA,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0X82,0XAA,0X82,0XA8,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XAA,0XAA,0XAA,0XA0,0X00,0X0A,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0X82,0XAA,0X0A,0XAA,0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,
+0XA8,0X00,0X02,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XF0,0X00,
+0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0X82,0XAA,0X0A,0XAA,
+0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0XAA,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,
+0X03,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0X82,0XAA,0X0A,0XAA,0X82,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0X80,0X00,0XAA,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XA0,0XAA,0X0A,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XA0,0X00,0X2A,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XA0,0XAA,0X0A,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XA8,0X00,0X0A,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XC0,0X00,0X00,
+0X0F,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XA8,0X0A,0X82,0XAA,
+0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA8,0X00,0X0A,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X03,0XC0,0X03,0XFF,0XFF,0XFF,
+0XC0,0X00,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X0A,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA0,0X00,0X0A,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFC,0X00,0X3F,0XF0,0X00,0XFF,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0X80,0X00,0X00,0X2A,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XAA,0XAA,0XAA,0XAA,0X80,0X00,0X2A,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFC,0X00,0XFF,0XFC,0X00,0X3F,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0X00,0X0A,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,
+0XAA,0X00,0X00,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X03,0XFF,0XFF,
+0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0XA8,0X00,0X02,0XAA,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X03,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,
+0XFF,0XC0,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0XA0,0X00,0X0A,0XAA,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XC0,0X03,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XAA,0XAA,0XAA,0XA0,0X00,0X2A,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XF0,0X0F,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,
+0X80,0X00,0XAA,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,
+0XFC,0X00,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XAA,0X00,0X02,0XAA,0XAA,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XFC,0X00,0X3F,0XFF,
+0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0XA8,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XF0,0X0F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XAA,0XAA,0XA0,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFC,0X03,0XFF,0XFF,0XFF,0XC0,0X0F,0XFF,0XFF,0XC0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,
+0X80,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0X80,
+0X00,0X00,0XAA,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X03,0XFF,0XFF,
+0XFF,0XF0,0X03,0XFF,0XFF,0XC0,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X00,0X00,0X00,
+0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X2A,0XAA,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XF0,0X00,0XFF,
+0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XA8,0X00,0X00,0X00,0X0A,0XAA,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFC,0X00,0X3F,0XF0,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XA2,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XAA,0XA8,0X00,0X00,0X00,0X02,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0X00,0X03,0XFF,0XFF,0XFF,0X00,0X3F,0XC0,0X00,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XA0,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0XA0,0X00,
+0X2A,0X00,0X00,0XAA,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XC0,0X00,0X0F,
+0XFF,0XFF,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XA8,0X2A,0XAA,0XAA,
+0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0X80,0X00,0XAA,0X80,0X00,0X2A,
+0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XA8,0X2A,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0XAA,0X00,0X02,0XAA,0XA0,0X00,0X02,0XAA,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0X2A,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XAA,0XA8,0X00,0X02,0XAA,0XA8,0X00,0X00,0XAA,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0XA0,0X00,0X0A,
+0XAA,0XAA,0X00,0X00,0X2A,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XAA,0X80,0X00,0X2A,0XAA,0XAA,0X80,0X00,
+0X0A,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X0F,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0XAA,0X00,0X00,0XAA,0XAA,0XAA,0XA0,0X00,0X02,0XAA,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0XA8,0X00,0X02,0XAA,0XAA,0XAA,0XA8,0X00,0X00,0XAA,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XA8,0X00,0X0A,0XAA,
+0XAA,0XAA,0XAA,0X00,0X00,0X2A,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,0XA0,0X00,0X2A,0XAA,0XAA,0XAA,0XAA,0XA0,
+0X00,0X0A,0X80,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X02,0X80,0X00,0XAA,0XAA,0XAA,0XAA,0XAA,0XA8,0X00,0X02,0X80,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X02,
+0X00,0X00,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X80,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0X80,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X0A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XA0,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X00,0X00,0X2A,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XA8,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,
+0X00,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0XFF,0XFF,
+0XFF,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XA8,0X2A,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XA0,0X0A,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0X80,0X00,0XAA,0X80,0X02,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFC,0X00,
+0X00,0XFF,0XFF,0XFF,0XC0,0X00,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X80,0X00,0X2A,
+0X82,0X82,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XFF,0XFF,
+0XC0,0X00,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X80,0XA8,0X2A,0X82,0XA0,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XFF,0XFF,0XC0,0X00,0X0F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0X0A,0X82,0XA0,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0X82,0XAA,0X0A,0X82,0XA0,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0X00,
+0X03,0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0X0A,
+0X82,0XA0,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0XFF,0XFF,
+0XFF,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X82,0XAA,0X0A,0X82,0XA0,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XA0,0XA8,0X2A,0X82,0XA0,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XA0,0X00,0X00,0X00,0X82,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XA8,0X00,0X80,
+0X00,0X02,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA0,0X28,0X02,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0X80,0X00,0X00,0X02,0XAA,0XAA,0XAA,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0X80,0X00,0X00,0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA8,
+0X2A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X0A,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0X82,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X0F,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA0,0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0X80,0X00,0X00,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X80,0X00,0X00,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X0F,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XC0,0X00,0X00,0X0F,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0X00,0X03,0XC0,0X03,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XA2,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X00,0X3F,0XF0,
+0X00,0XFF,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XA8,
+0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X00,0XFF,0XFC,0X00,0X3F,0XFF,0XFF,
+0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0X00,0X02,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0X80,0X00,0X2A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XF0,0X00,0X00,0X00,0X00,0X00,0XC0,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XF0,0X03,0XFF,0XFF,0X00,0X0F,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XA0,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,
+0X00,0X0F,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,
+0XC0,0X03,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XA8,0X00,0X0A,0X82,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XC0,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,
+0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X02,0XAA,0X82,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,
+0XFC,0X02,0XAA,0XAA,0X80,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XF0,
+0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XF0,0X0F,0XFF,0XFF,0XFC,0X00,0X3F,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,
+0X80,0X2A,0XAA,0X82,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X0F,
+0XFF,0XF0,0X00,0XFF,0XFF,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XF0,0X0F,0XFF,0XFF,
+0XFF,0X00,0X0F,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0X80,0X00,0XAA,0X82,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0XFF,0XFF,0X00,0X00,0X0F,
+0XFF,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XC0,0X0F,0XFF,
+0XFF,0XC0,0X0F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0X00,0X02,0X82,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0X00,0X00,0X00,0X03,0XFF,0XFF,0X00,0X00,0X00,0XFF,0XC0,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XC0,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XA8,0X00,0X02,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFC,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0X00,0X00,0X00,0XFF,0XF0,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFC,0X00,0XFF,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XA0,0X00,0X0A,0XAA,0XAA,0XAA,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0XFF,
+0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X3F,0XFF,
+0XFF,0XFC,0X00,0X3F,0XF0,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0X80,
+0X02,0XAA,0XAA,0XAA,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFC,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0X00,0X3F,
+0XC0,0X00,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0X82,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XC0,0X00,0X0F,0XFF,0XFF,0X00,0X00,0X00,0X03,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,
+0X00,0X00,0X00,0X00,0X0F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,
+0X00,0X3F,0XFF,0XF0,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XF0,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,
+0X00,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X03,0XFF,0XF0,0X00,0X00,0X0F,0XFF,0XF0,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0XFF,0XF0,0X00,0X00,0X0F,0XFF,0XF0,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X3F,0XFF,0XC0,
+0X03,0XFF,0XFF,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X0F,0XFF,0XFC,0X0F,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X0F,
+0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XC0,0X00,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,
+0X03,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XF0,
+0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X03,0XFF,
+0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0X00,0X00,0X00,
+0X00,0X00,0X00,0X0F,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,
+0XFF,0XFC,0X03,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X00,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFC,0X03,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X03,
+0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X03,0XFF,0XFC,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XF0,0X00,
+0X00,0X00,0X00,0X3F,0XFF,0XFC,0X03,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XC0,0X00,0X00,0X00,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XF0,0X00,0X00,0X00,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,
+0X3F,0XFF,0XFF,0XF0,0X00,0X00,0X03,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0X00,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XC0,
+0X00,0X00,0X0F,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XC0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X0F,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XC0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0XFC,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X03,0XFF,
+0XFF,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XF0,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X03,0XFF,0XC0,0X00,0X00,0X00,
+0X00,0X03,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X03,0XF0,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XC0,0X0F,
+0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
+0X0F,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XC0,0X3F,0XFF,0XFF,0XFF,0XFF,
+0XFF,0X00,0X3F,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XF3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,
+0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,
+0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+0XAA,0XAA,0XAA,0XAA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
+0XFF,0XFF,0XFF,0XFF,0XFC,0X02,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,
+};
+

+ 32 - 0
Arduino/epd2in7_V2/imagedata.h

@@ -0,0 +1,32 @@
+/**
+ *  @filename   :   imagedata.h
+ *  @brief      :   head file for imagedata.cpp
+ *
+ *  Copyright (C) Waveshare     August 18 2017
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documnetation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to  whom the Software is
+ * furished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+extern const unsigned char IMAGE_DATA[];
+extern const unsigned char IMAGE_DATA_4Gray[];
+
+/* END OF FILE*/
+
+
+

+ 128 - 20
RaspberryPi_JetsonNano/c/examples/EPD_2in7_V2_test.c

@@ -5,7 +5,7 @@
 * | Info        :
 *----------------
 * |	This version:   V1.0
-* | Date        :   2021-04-22
+* | Date        :   2022-08-18
 * | Info        :
 * -----------------------------------------------------------------------------
 #
@@ -60,7 +60,6 @@ int EPD_2in7_V2_test(void)
 	Paint_Clear(WHITE);
 	
 #if 1   // show bmp
-	Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);
     printf("show window BMP-----------------\r\n");
     Paint_SelectImage(BlackImage);
     GUI_ReadBmp("./pic/100x100.bmp", 10, 10);
@@ -72,27 +71,76 @@ int EPD_2in7_V2_test(void)
     GUI_ReadBmp("./pic/2in7.bmp", 0, 0);
     EPD_2IN7_V2_Display(BlackImage);
     DEV_Delay_ms(3000);
+
 #endif
 
-#if 1  //show image for array  
-    Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);  
-    printf("show image for array\r\n");
+#if 1  // Drawing on the image
+	Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);  	
+    printf("Drawing\r\n");
+    //1.Select Image
     Paint_SelectImage(BlackImage);
     Paint_Clear(WHITE);
-    Paint_DrawBitMap(gImage_2in7);
+	
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
 
-    EPD_2IN7_V2_Display(BlackImage);
+    Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+
+    Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+
+    Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
+    Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
+
+    Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
+    Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
+
+    Paint_DrawString_CN(130, 0,"ÄãºÃabc", &Font12CN, BLACK, WHITE);
+    Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
+
+    EPD_2IN7_V2_Display_Base(BlackImage);
     DEV_Delay_ms(3000);
 #endif
 
-#if 1  // Drawing on the image
+#if 1  // Fast Drawing on the image
+    // Fast refresh
+    printf("This is followed by a quick refresh demo\r\n");
+    printf("First, clear the screen\r\n");
+    EPD_2IN7_V2_Init();
+    EPD_2IN7_V2_Clear();
+
+    printf("e-Paper Init Fast\r\n");
+    EPD_2IN7_V2_Init_Fast();
 	Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);  	
     printf("Drawing\r\n");
     //1.Select Image
     Paint_SelectImage(BlackImage);
     Paint_Clear(WHITE);
-	
+
+    printf("show window BMP-----------------\r\n");
+    Paint_SelectImage(BlackImage);
+    GUI_ReadBmp("./pic/100x100.bmp", 10, 10);
+    EPD_2IN7_V2_Display_Fast(BlackImage);
+    DEV_Delay_ms(3000);
+
+    printf("show bmp------------------------\r\n");
+    Paint_SelectImage(BlackImage);
+    GUI_ReadBmp("./pic/2in7.bmp", 0, 0);
+    EPD_2IN7_V2_Display_Fast(BlackImage);
+    DEV_Delay_ms(3000);
+
     // 2.Drawing on the image
+    Paint_Clear(WHITE);
     printf("Drawing:BlackImage\r\n");
     Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
     Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
@@ -116,23 +164,34 @@ int EPD_2in7_V2_test(void)
     Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
     Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
 
-    Paint_DrawString_CN(130, 0,"你好abc", &Font12CN, BLACK, WHITE);
-    Paint_DrawString_CN(130, 20, "微雪电�", &Font24CN, WHITE, BLACK);
+    Paint_DrawString_CN(130, 0,"ÄãºÃabc", &Font12CN, BLACK, WHITE);
+    Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
 
-    EPD_2IN7_V2_Display_Base(BlackImage);
+    EPD_2IN7_V2_Display_Fast(BlackImage);
     DEV_Delay_ms(3000);
+
+    
+
 #endif
 
-#if 1   //Partial refresh, example shows time    		
-	Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);  
+#if 1   //Partial refresh, example shows time    	
+    // If you didn't use the EPD_2IN7_V2_Display_Base() function to refresh the image before,
+    // use the EPD_2IN7_V2_Display_Base_color() function to refresh the background color, 
+    // otherwise the background color will be garbled 
+    EPD_2IN7_V2_Init();
+    // EPD_2IN7_V2_Display_Base_color(WHITE);
+	Paint_NewImage(BlackImage, 50, 120, 90, WHITE);
+    
     printf("Partial refresh\r\n");
     Paint_SelectImage(BlackImage);
-	
+	Paint_SetScale(2);
+    Paint_Clear(WHITE);
+    
     PAINT_TIME sPaint_time;
     sPaint_time.Hour = 12;
     sPaint_time.Min = 34;
     sPaint_time.Sec = 56;
-    UBYTE num = 10;
+    UBYTE num = 15;
     for (;;) {
         sPaint_time.Sec = sPaint_time.Sec + 1;
         if (sPaint_time.Sec == 60) {
@@ -148,16 +207,65 @@ int EPD_2in7_V2_test(void)
                 }
             }
         }
-        Paint_ClearWindows(150, 80, 150 + Font20.Width * 7, 80 + Font20.Height, WHITE);
-        Paint_DrawTime(150, 80, &sPaint_time, &Font20, WHITE, BLACK);
+        
+        Paint_Clear(WHITE);
+		Paint_DrawRectangle(1, 1, 120, 50, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+        Paint_DrawTime(10, 15, &sPaint_time, &Font20, WHITE, BLACK);
 
         num = num - 1;
         if(num == 0) {
             break;
         }
-		EPD_2IN7_V2_Display_Partial(BlackImage);
-        DEV_Delay_ms(500);//Analog clock 1s
+		printf("Part refresh...\r\n");
+        EPD_2IN7_V2_Display_Partial(BlackImage, 60, 134, 110, 254); // Xstart must be a multiple of 8
+        DEV_Delay_ms(500);
+    }
+#endif
+
+#if 1 // show image for array
+    free(BlackImage);
+    printf("show Gray------------------------\r\n");
+    Imagesize = ((EPD_2IN7_V2_WIDTH % 4 == 0)? (EPD_2IN7_V2_WIDTH / 4 ): (EPD_2IN7_V2_WIDTH / 4 + 1)) * EPD_2IN7_V2_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
     }
+    EPD_2IN7_V2_Init_4GRAY();
+    printf("4 grayscale display\r\n");
+    Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);
+    Paint_SetScale(4);
+    Paint_Clear(0xff);
+    
+    Paint_DrawPoint(10, 80, GRAY4, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, GRAY4, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, GRAY4, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, GRAY4, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, GRAY4, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, GRAY4, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, GRAY2, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "waveshare", &Font16, GRAY4, GRAY1);
+    Paint_DrawString_EN(10, 20, "hello world", &Font12, GRAY3, GRAY1);
+    Paint_DrawNum(10, 33, 123456789, &Font12, GRAY4, GRAY2);
+    Paint_DrawNum(10, 50, 987654321, &Font16, GRAY1, GRAY4);
+    Paint_DrawString_CN(150, 0,"ÄãºÃabc", &Font12CN, GRAY4, GRAY1);
+    Paint_DrawString_CN(150, 20,"ÄãºÃabc", &Font12CN, GRAY3, GRAY2);
+    Paint_DrawString_CN(150, 40,"ÄãºÃabc", &Font12CN, GRAY2, GRAY3);
+    Paint_DrawString_CN(150, 60,"ÄãºÃabc", &Font12CN, GRAY1, GRAY4);
+    Paint_DrawString_CN(10, 130, "΢ѩµç×Ó", &Font24CN, GRAY1, GRAY4);
+    EPD_2IN7_V2_4GrayDisplay(BlackImage);
+    DEV_Delay_ms(3000);
+
+    Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 0, WHITE);
+    Paint_SetScale(4);
+    Paint_Clear(WHITE);
+    GUI_ReadBmp_4Gray("./pic/2in7_Scale.bmp", 0, 0);
+    EPD_2IN7_V2_4GrayDisplay(BlackImage);
+    DEV_Delay_ms(3000);
+
 #endif
 
 	printf("Clear...\r\n");

+ 306 - 95
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in7_V2.c

@@ -5,7 +5,7 @@
 * | Info        :
 *----------------
 * |	This version:   V1.0
-* | Date        :   2021-04-22
+* | Date        :   2022-08-18
 * | Info        :
 * -----------------------------------------------------------------------------
 #
@@ -31,27 +31,27 @@
 #include "EPD_2in7_V2.h"
 #include "Debug.h"
 
-UBYTE WF_PARTIAL_2in7_V2[159] =
+UBYTE LUT_DATA_4Gray[159] =
 {
-0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0xF,0x0,0x0,0x0,0x0,0x0,0x1,
-0x1,0x1,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0,
-0x22,0x17,0x41,0xB0,0x32,0x32,
+0x40,	0x48,	0x80,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x8,	0x48,	0x10,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x2,	0x48,	0x4,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x20,	0x48,	0x1,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0xA,	0x19,	0x0,	0x3,	0x8,	0x0,	0x0,					
+0x14,	0x1,	0x0,	0x14,	0x1,	0x0,	0x3,					
+0xA,	0x3,	0x0,	0x8,	0x19,	0x0,	0x0,					
+0x1,	0x0,	0x0,	0x0,	0x0,	0x0,	0x1,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x22,	0x22,	0x22,	0x22,	0x22,	0x22,	0x0,	0x0,	0x0,			
+0x22,	0x17,	0x41,	0x0,	0x32,	0x1C
 };
 
 /******************************************************************************
@@ -115,84 +115,173 @@ parameter:
 ******************************************************************************/
 static void EPD_2IN7_V2_TurnOnDisplay(void)
 {
-	EPD_2IN7_V2_SendCommand(0x20);
+	EPD_2IN7_V2_SendCommand(0x22); //Display Update Control
+    EPD_2IN7_V2_SendData(0xF7);
+	EPD_2IN7_V2_SendCommand(0x20); //Activate Display Update Sequence
+    EPD_2IN7_V2_ReadBusy();
+}
+
+static void EPD_2IN7_V2_TurnOnDisplay_Fast(void)
+{
+	EPD_2IN7_V2_SendCommand(0x22); //Display Update Control
+    EPD_2IN7_V2_SendData(0xC7);
+	EPD_2IN7_V2_SendCommand(0x20); //Activate Display Update Sequence
     EPD_2IN7_V2_ReadBusy();
 }
 
 static void EPD_2IN7_V2_TurnOnDisplay_Partial(void)
 {
     EPD_2IN7_V2_SendCommand(0x22);
-    EPD_2IN7_V2_SendData(0x0f);
+    EPD_2IN7_V2_SendData(0xFF);
 	EPD_2IN7_V2_SendCommand(0x20);
     EPD_2IN7_V2_ReadBusy();
 }
 
+static void EPD_2IN7_V2_TurnOnDisplay_4GRAY(void)
+{
+    EPD_2IN7_V2_SendCommand(0x22);
+    EPD_2IN7_V2_SendData(0xC7);
+	EPD_2IN7_V2_SendCommand(0x20);
+    EPD_2IN7_V2_ReadBusy();
+}
 /******************************************************************************
 function :	set the look-up tables
 parameter:
 ******************************************************************************/
-static void EPD_2IN7_V2_SetLut(void)
+static void EPD_2IN7_V2_Lut(void)
 {
     unsigned int count;
     EPD_2IN7_V2_SendCommand(0x32); //vcom
     for(count = 0; count < 153; count++) {
-        EPD_2IN7_V2_SendData(WF_PARTIAL_2in7_V2[count]);
+        EPD_2IN7_V2_SendData(LUT_DATA_4Gray[count]);
     }
 }
 
+
 /******************************************************************************
-function :	Setting the display window
+function :	Initialize the e-Paper register
 parameter:
 ******************************************************************************/
-static void EPD_2IN7_V2_SetWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend)
+void EPD_2IN7_V2_Init(void)
 {
-    EPD_2IN7_V2_SendCommand(0x44); // SET_RAM_X_ADDRESS_START_END_POSITION
-    EPD_2IN7_V2_SendData((Xstart>>3) & 0xFF);
-    EPD_2IN7_V2_SendData((Xend>>3) & 0xFF);
+    EPD_2IN7_V2_Reset();
+	EPD_2IN7_V2_ReadBusy();
 	
-    EPD_2IN7_V2_SendCommand(0x45); // SET_RAM_Y_ADDRESS_START_END_POSITION
-    EPD_2IN7_V2_SendData(Ystart & 0xFF);
-    EPD_2IN7_V2_SendData((Ystart >> 8) & 0xFF);
-    EPD_2IN7_V2_SendData(Yend & 0xFF);
-    EPD_2IN7_V2_SendData((Yend >> 8) & 0xFF);
-}
+	EPD_2IN7_V2_SendCommand(0x12); //SWRESET
+	EPD_2IN7_V2_ReadBusy();
 
-/******************************************************************************
-function :	Set Cursor
-parameter:
-******************************************************************************/
-static void EPD_2IN7_V2_SetCursor(UWORD Xstart, UWORD Ystart)
-{
-    EPD_2IN7_V2_SendCommand(0x4E); // SET_RAM_X_ADDRESS_COUNTER
-    EPD_2IN7_V2_SendData(Xstart & 0xFF);
+    EPD_2IN7_V2_SendCommand(0x45); //set Ram-Y address start/end position          
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x07); //0x0107-->(263+1)=264
+	EPD_2IN7_V2_SendData(0x01);
 
-    EPD_2IN7_V2_SendCommand(0x4F); // SET_RAM_Y_ADDRESS_COUNTER
-    EPD_2IN7_V2_SendData(Ystart & 0xFF);
-    EPD_2IN7_V2_SendData((Ystart >> 8) & 0xFF);
-}
+    EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0;    
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
 
-/******************************************************************************
-function :	Initialize the e-Paper register
-parameter:
-******************************************************************************/
-void EPD_2IN7_V2_Init(void)
+    EPD_2IN7_V2_SendCommand(0x11);   // data entry mode
+	EPD_2IN7_V2_SendData(0x03);
+
+}
+void EPD_2IN7_V2_Init_Fast(void)
 {
     EPD_2IN7_V2_Reset();
+    EPD_2IN7_V2_ReadBusy();
+
+    EPD_2IN7_V2_SendCommand(0x12); //SWRESET
+    EPD_2IN7_V2_ReadBusy();
+
+    EPD_2IN7_V2_SendCommand(0x18); //Read built-in temperature sensor
+    EPD_2IN7_V2_SendData(0x80);	
+
+    EPD_2IN7_V2_SendCommand(0x22); // Load temperature value
+    EPD_2IN7_V2_SendData(0xB1);		
+    EPD_2IN7_V2_SendCommand(0x20);	
+    EPD_2IN7_V2_ReadBusy();
+
+    EPD_2IN7_V2_SendCommand(0x1A); // Write to temperature register
+    EPD_2IN7_V2_SendData(0x64);		
+    EPD_2IN7_V2_SendData(0x00);	
+
+    EPD_2IN7_V2_SendCommand(0x45); //set Ram-Y address start/end position          
+	EPD_2IN7_V2_SendData(0x00);   
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x07); //0x0107-->(263+1)=264
+	EPD_2IN7_V2_SendData(0x01);
+
+    EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0;    
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+
+    EPD_2IN7_V2_SendCommand(0x11);   // data entry mode      
+	EPD_2IN7_V2_SendData(0x03);
+                
+    EPD_2IN7_V2_SendCommand(0x22); // Load temperature value
+    EPD_2IN7_V2_SendData(0x91);		
+    EPD_2IN7_V2_SendCommand(0x20);	
+    EPD_2IN7_V2_ReadBusy(); 
+}
+void EPD_2IN7_V2_Init_4GRAY(void)
+{
+	EPD_2IN7_V2_Reset();
+
 	EPD_2IN7_V2_ReadBusy();
-	
-	EPD_2IN7_V2_SendCommand(0x12);
+	EPD_2IN7_V2_SendCommand(0x12); // soft reset
 	EPD_2IN7_V2_ReadBusy();
 
+	EPD_2IN7_V2_SendCommand(0x74); //set analog block control       
+	EPD_2IN7_V2_SendData(0x54);
+	EPD_2IN7_V2_SendCommand(0x7E); //set digital block control          
+	EPD_2IN7_V2_SendData(0x3B);
+
 	EPD_2IN7_V2_SendCommand(0x01); //Driver output control      
-	EPD_2IN7_V2_SendData(0x27);
+	EPD_2IN7_V2_SendData(0x07);
 	EPD_2IN7_V2_SendData(0x01);
 	EPD_2IN7_V2_SendData(0x00);
-	
+
 	EPD_2IN7_V2_SendCommand(0x11); //data entry mode       
 	EPD_2IN7_V2_SendData(0x03);
+
+	EPD_2IN7_V2_SendCommand(0x44); //set Ram-X address start/end position   
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x15);    //0x15-->(21+1)*8=176
+
+	EPD_2IN7_V2_SendCommand(0x45); //set Ram-Y address start/end position          
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x07);//0x0107-->(263+1)=264
+	EPD_2IN7_V2_SendData(0x01);
+
+
+	EPD_2IN7_V2_SendCommand(0x3C); //BorderWavefrom
+	EPD_2IN7_V2_SendData(0x00);	
+
+
+	EPD_2IN7_V2_SendCommand(0x2C);     //VCOM Voltage
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[158]);    //0x1C
+
+
+	EPD_2IN7_V2_SendCommand(0x3F); //EOPQ    
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[153]);
 	
-	EPD_2IN7_V2_SetWindows(0, 0, EPD_2IN7_V2_WIDTH-1, EPD_2IN7_V2_HEIGHT-1);
-	EPD_2IN7_V2_SetCursor(0, 0);
+	EPD_2IN7_V2_SendCommand(0x03); //VGH      
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[154]);
+
+	EPD_2IN7_V2_SendCommand(0x04); //      
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[155]); //VSH1   
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[156]); //VSH2   
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[157]); //VSL   
+   
+	EPD_2IN7_V2_Lut(); //LUT
+
+	
+	EPD_2IN7_V2_SendCommand(0x4E);   // set RAM x address count to 0;
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0X199;    
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+    EPD_2IN7_V2_ReadBusy();
 }
 
 /******************************************************************************
@@ -212,12 +301,6 @@ void EPD_2IN7_V2_Clear(void)
         }
     }
 
-    EPD_2IN7_V2_SendCommand(0x26);
-    for (UWORD j = 0; j < Height; j++) {
-        for (UWORD i = 0; i < Width; i++) {
-            EPD_2IN7_V2_SendData(0X00);
-        }
-    }
 	EPD_2IN7_V2_TurnOnDisplay();
 }
 
@@ -241,6 +324,21 @@ void EPD_2IN7_V2_Display(UBYTE *Image)
 	EPD_2IN7_V2_TurnOnDisplay();
 }
 
+void EPD_2IN7_V2_Display_Fast(UBYTE *Image)
+{
+    UWORD Width, Height;
+    Width = (EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1);
+    Height = EPD_2IN7_V2_HEIGHT;
+	
+    EPD_2IN7_V2_SendCommand(0x24);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_2IN7_V2_SendData(Image[i + j * Width]);
+        }
+    }
+	EPD_2IN7_V2_TurnOnDisplay_Fast();
+}
+
 void EPD_2IN7_V2_Display_Base(UBYTE *Image)
 {
     UWORD Width, Height;
@@ -262,48 +360,161 @@ void EPD_2IN7_V2_Display_Base(UBYTE *Image)
 	EPD_2IN7_V2_TurnOnDisplay();	
 }
 
-void EPD_2IN7_V2_Display_Partial(UBYTE *Image)
+void EPD_2IN7_V2_Display_Base_color(UBYTE color)
 {
     UWORD Width, Height;
     Width = (EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1);
     Height = EPD_2IN7_V2_HEIGHT;
 
-    DEV_Digital_Write(EPD_RST_PIN, 0);
-    DEV_Delay_ms(1);
-    DEV_Digital_Write(EPD_RST_PIN, 1);
-	
-	EPD_2IN7_V2_ReadBusy();
-	EPD_2IN7_V2_SetLut();
-	EPD_2IN7_V2_SendCommand(0x37);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x40);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x00);
-	EPD_2IN7_V2_SendData(0x00);
-
-	EPD_2IN7_V2_SendCommand(0x3c);
-	EPD_2IN7_V2_SendData(0x80);
-	
-	EPD_2IN7_V2_SendCommand(0x22);
-	EPD_2IN7_V2_SendData(0xc0);
-	EPD_2IN7_V2_SendCommand(0x20);
-	EPD_2IN7_V2_ReadBusy();
-
-    EPD_2IN7_V2_SendCommand(0x24);
+	EPD_2IN7_V2_SendCommand(0x24);   //Write Black and White image to RAM
     for (UWORD j = 0; j < Height; j++) {
         for (UWORD i = 0; i < Width; i++) {
-            EPD_2IN7_V2_SendData(Image[i + j * Width]);
+            EPD_2IN7_V2_SendData(color);
         }
     }
-	
+	EPD_2IN7_V2_SendCommand(0x26);   //Write Black and White image to RAM
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_2IN7_V2_SendData(color);
+        }
+    }
+	// EPD_2IN7_V2_TurnOnDisplay();	
+}
+
+void EPD_2IN7_V2_Display_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend)
+{
+    if((Xstart % 8 + Xend % 8 == 8 && Xstart % 8 > Xend % 8) || Xstart % 8 + Xend % 8 == 0 || (Xend - Xstart)%8 == 0)
+    {
+        Xstart = Xstart / 8 ;
+        Xend = Xend / 8;
+    }
+    else
+    {
+        Xstart = Xstart / 8 ;
+        Xend = Xend % 8 == 0 ? Xend / 8 : Xend / 8 + 1;
+    }
+    
+
+    UWORD i, Width;
+	Width = Xend -  Xstart;
+	UWORD IMAGE_COUNTER = Width * (Yend-Ystart);
+
+	Xend -= 1;
+	Yend -= 1;	
+    //Reset
+    EPD_2IN7_V2_Reset();
+
+    EPD_2IN7_V2_SendCommand(0x3C); //BorderWavefrom
+    EPD_2IN7_V2_SendData(0x80);	
+    //	
+    EPD_2IN7_V2_SendCommand(0x44);       // set RAM x address start/end, in page 35
+    EPD_2IN7_V2_SendData(Xstart & 0xff);    // RAM x address start at 00h;
+    EPD_2IN7_V2_SendData(Xend & 0xff);    // RAM x address end at 0fh(15+1)*8->128 
+    EPD_2IN7_V2_SendCommand(0x45);       // set RAM y address start/end, in page 35
+    EPD_2IN7_V2_SendData(Ystart & 0xff);    // RAM y address start at 0127h;
+    EPD_2IN7_V2_SendData((Ystart>>8) & 0x01);    // RAM y address start at 0127h;
+    EPD_2IN7_V2_SendData(Yend & 0xff);    // RAM y address end at 00h;
+    EPD_2IN7_V2_SendData((Yend>>8) & 0x01); 
+
+    EPD_2IN7_V2_SendCommand(0x4E);   // set RAM x address count to 0;
+    EPD_2IN7_V2_SendData(Xstart & 0xff); 
+    EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0X127;    
+    EPD_2IN7_V2_SendData(Ystart & 0xff);
+    EPD_2IN7_V2_SendData((Ystart>>8) & 0x01);
+
+
+    EPD_2IN7_V2_SendCommand(0x24);   //Write Black and White image to RAM
+    for (i = 0; i < IMAGE_COUNTER; i++) {
+	    EPD_2IN7_V2_SendData(Image[i]);
+	}
 	EPD_2IN7_V2_TurnOnDisplay_Partial();
 }
 
+
+void EPD_2IN7_V2_4GrayDisplay(UBYTE *Image)
+{
+    UDOUBLE i,j,k;
+    UBYTE temp1,temp2,temp3;
+
+    // old  data
+    EPD_2IN7_V2_SendCommand(0x24);
+    for(i=0; i<5808; i++) {             //5808*4  46464
+        temp3=0;
+        for(j=0; j<2; j++) {
+            temp1 = Image[i*2+j];
+            for(k=0; k<2; k++) {
+                temp2 = temp1&0xC0;
+                if(temp2 == 0xC0)
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00)
+                    temp3 |= 0x01; 
+                else if(temp2 == 0x80)
+                    temp3 |= 0x01; 
+                else //0x40
+                    temp3 |= 0x00; 
+                temp3 <<= 1;
+
+                temp1 <<= 2;
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0) 
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00) 
+                    temp3 |= 0x01;
+                else if(temp2 == 0x80)
+                    temp3 |= 0x01; 
+                else    //0x40
+                    temp3 |= 0x00;	
+                if(j!=1 || k!=1)
+                    temp3 <<= 1;
+
+                temp1 <<= 2;
+            }
+
+        }
+        EPD_2IN7_V2_SendData(temp3);
+        // printf("%x",temp3);
+    }
+
+    EPD_2IN7_V2_SendCommand(0x26);   //write RAM for black(0)/white (1)
+    for(i=0; i<5808; i++) {             //5808*4  46464
+        temp3=0;
+        for(j=0; j<2; j++) {
+            temp1 = Image[i*2+j];
+            for(k=0; k<2; k++) {
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)
+                    temp3 |= 0x00;//white
+                else if(temp2 == 0x00)
+                    temp3 |= 0x01;  //black
+                else if(temp2 == 0x80)
+                    temp3 |= 0x00;  //gray1
+                else //0x40
+                    temp3 |= 0x01; //gray2
+                temp3 <<= 1;
+
+                temp1 <<= 2;
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)  //white
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00) //black
+                    temp3 |= 0x01;
+                else if(temp2 == 0x80)
+                    temp3 |= 0x00; //gray1
+                else    //0x40
+                    temp3 |= 0x01;	//gray2
+                if(j!=1 || k!=1)
+                    temp3 <<= 1;
+
+                temp1 <<= 2;
+            }
+        }
+        EPD_2IN7_V2_SendData(temp3);
+        // printf("%x",temp3);
+    }
+
+    EPD_2IN7_V2_TurnOnDisplay_4GRAY();
+}
+
 /******************************************************************************
 function :	Enter sleep mode
 parameter:

+ 8 - 4
RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_2in7_V2.h

@@ -5,7 +5,7 @@
 * | Info        :
 *----------------
 * |	This version:   V1.0
-* | Date        :   2021-04-22
+* | Date        :   2022-08-18
 * | Info        :
 * -----------------------------------------------------------------------------
 #
@@ -38,11 +38,15 @@
 #define EPD_2IN7_V2_HEIGHT      264
 
 void EPD_2IN7_V2_Init(void);
+void EPD_2IN7_V2_Init_Fast(void);
+void EPD_2IN7_V2_Init_4GRAY(void);
 void EPD_2IN7_V2_Clear(void);
 void EPD_2IN7_V2_Display(UBYTE *Image);
-void EPD_2IN7_V2_Sleep(void);
-
+void EPD_2IN7_V2_Display_Fast(UBYTE *Image);
 void EPD_2IN7_V2_Display_Base(UBYTE *Image);
-void EPD_2IN7_V2_Display_Partial(UBYTE *Image);
+void EPD_2IN7_V2_Display_Base_color(UBYTE color);
+void EPD_2IN7_V2_Display_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yende);
+void EPD_2IN7_V2_4GrayDisplay(UBYTE *Image);
+void EPD_2IN7_V2_Sleep(void);
 
 #endif

+ 158 - 0
RaspberryPi_JetsonNano/python/examples/epd_2in7_V2_test.py

@@ -0,0 +1,158 @@
+#!/usr/bin/python
+# -*- coding:utf-8 -*-
+import sys
+import os
+picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
+libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
+if os.path.exists(libdir):
+    sys.path.append(libdir)
+
+import logging
+from waveshare_epd import epd2in7_V2
+import time
+from PIL import Image,ImageDraw,ImageFont
+import traceback
+
+logging.basicConfig(level=logging.DEBUG)
+
+try:
+
+    logging.info("epd2in7 Demo")   
+    epd = epd2in7_V2.EPD()
+    
+    '''2Gray(Black and white) display'''
+    logging.info("init and Clear")
+    epd.init()
+    epd.clear()
+    font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24)
+    font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18)
+    font35 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 35)
+    
+    # Quick refresh
+    logging.info("Quick refresh demo")
+    epd.init_Fast()
+    # Drawing on the Vertical image
+    logging.info("1.Drawing on the Vertical image...")
+    Limage = Image.new('1', (epd.width, epd.height), 255)  # 255: clear the frame
+    draw = ImageDraw.Draw(Limage)
+    draw.text((2, 0), 'hello world', font = font18, fill = 0)
+    draw.text((20, 50), u'微雪电子', font = font18, fill = 0)
+    draw.line((10, 90, 60, 140), fill = 0)
+    draw.line((60, 90, 10, 140), fill = 0)
+    draw.rectangle((10, 90, 60, 140), outline = 0)
+    draw.line((95, 90, 95, 140), fill = 0)
+    draw.line((70, 115, 120, 115), fill = 0)
+    draw.arc((70, 90, 120, 140), 0, 360, fill = 0)
+    draw.rectangle((10, 150, 60, 200), fill = 0)
+    draw.chord((70, 150, 120, 200), 0, 360, fill = 0)
+    epd.display_Fast(epd.getbuffer(Limage))
+    time.sleep(2)
+    
+    logging.info("2.read bmp file")
+    Himage = Image.open(os.path.join(picdir, '2in7.bmp'))
+    epd.display_Fast(epd.getbuffer(Himage))
+    time.sleep(2)
+    
+    # Normal refresh
+    logging.info("Normal refresh demo")
+    epd.init()
+    logging.info("3.read bmp file on window")
+    Himage2 = Image.new('1', (epd.height, epd.width), 255)  # 255: clear the frame
+    bmp = Image.open(os.path.join(picdir, '100x100.bmp'))
+    Himage2.paste(bmp, (50,10))
+    epd.display(epd.getbuffer(Himage2))
+    time.sleep(2)
+    
+    # Drawing on the Horizontal image
+    logging.info("4.Drawing on the Horizontal image...")
+    Himage = Image.new('1', (epd.height, epd.width), 255)  # 255: clear the frame
+    draw = ImageDraw.Draw(Himage)
+    draw.text((10, 0), 'hello world', font = font24, fill = 0)
+    draw.text((150, 0), u'微雪电子', font = font24, fill = 0)    
+    draw.line((20, 50, 70, 100), fill = 0)
+    draw.line((70, 50, 20, 100), fill = 0)
+    draw.rectangle((20, 50, 70, 100), outline = 0)
+    draw.line((165, 50, 165, 100), fill = 0)
+    draw.line((140, 75, 190, 75), fill = 0)
+    draw.arc((140, 50, 190, 100), 0, 360, fill = 0)
+    draw.rectangle((80, 50, 130, 100), fill = 0)
+    draw.chord((200, 50, 250, 100), 0, 360, fill = 0)
+    epd.display_Base(epd.getbuffer(Himage))
+    time.sleep(2)
+    
+    # partial update
+    logging.info("5.show time")
+    epd.init()   
+    '''
+    # If you didn't use the EPD_2IN7_V2_Display_Base() function to refresh the image before,
+    # use the EPD_2IN7_V2_Display_Base_color() function to refresh the background color, 
+    # otherwise the background color will be garbled 
+    '''
+    # epd.display_Base_color(0xff)
+    # Himage = Image.new('1', (epd.height ,epd.width), 0xff)
+    # draw = ImageDraw.Draw(time_image)
+    num = 0
+    while (True):
+        draw.rectangle((10, 110, 120, 150), fill = 255)
+        draw.text((10, 110), time.strftime('%H:%M:%S'), font = font24, fill = 0)
+        newimage = Himage.crop([10, 110, 120, 150])
+        Himage.paste(newimage, (10,110)) 
+        epd.display_Partial(epd.getbuffer(Himage),110, epd.height - 120, 150, epd.height - 10)
+        num = num + 1
+        if(num == 10):
+            break
+    
+    # epd.init() 
+    # epd.clear()
+    # epd.display_Base_color(0xff)
+    # Himage = Image.new('1', (epd.width ,epd.height), 0xff)
+    # draw = ImageDraw.Draw(Himage)
+    # num = 0
+    # while (True):
+        # draw.rectangle((10, 10, 120, 50), fill = 255)
+        # draw.text((10, 10), time.strftime('%H:%M:%S'), font = font24, fill = 0)
+        # newimage = Himage.crop([10, 10, 120, 50])
+        # Himage.paste(newimage, (10,10)) 
+        # epd.display_Partial(epd.getbuffer(Himage),10, 10, 120, 50)
+        # num = num + 1
+        # if(num == 10):
+            # break
+    
+    '''4Gray display'''
+    logging.info("4Gray display--------------------------------")
+    epd.Init_4Gray()
+    
+    Limage = Image.new('L', (epd.width, epd.height), 0)  # 255: clear the frame
+    draw = ImageDraw.Draw(Limage)
+    draw.text((20, 0), u'微雪电子', font = font35, fill = epd.GRAY1)
+    draw.text((20, 35), u'微雪电子', font = font35, fill = epd.GRAY2)
+    draw.text((20, 70), u'微雪电子', font = font35, fill = epd.GRAY3)
+    draw.text((40, 110), 'hello world', font = font18, fill = epd.GRAY1)
+    draw.line((10, 140, 60, 190), fill = epd.GRAY1)
+    draw.line((60, 140, 10, 190), fill = epd.GRAY1)
+    draw.rectangle((10, 140, 60, 190), outline = epd.GRAY1)
+    draw.line((95, 140, 95, 190), fill = epd.GRAY1)
+    draw.line((70, 165, 120, 165), fill = epd.GRAY1)
+    draw.arc((70, 140, 120, 190), 0, 360, fill = epd.GRAY1)
+    draw.rectangle((10, 200, 60, 250), fill = epd.GRAY1)
+    draw.chord((70, 200, 120, 250), 0, 360, fill = epd.GRAY1)
+    epd.display_4Gray(epd.getbuffer_4Gray(Limage))
+    time.sleep(2)
+    
+    #display 4Gra bmp
+    Himage = Image.open(os.path.join(picdir, '2in7_Scale.bmp'))
+    epd.display_4Gray(epd.getbuffer_4Gray(Himage))
+    time.sleep(2)
+
+    logging.info("Clear...")
+    epd.clear()
+    logging.info("Goto Sleep...")
+    epd.sleep()
+        
+except IOError as e:
+    logging.info(e)
+    
+except KeyboardInterrupt:    
+    logging.info("ctrl + c:")
+    epd2in7.epdconfig.module_exit()
+    exit()

+ 519 - 0
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.py

@@ -0,0 +1,519 @@
+# *****************************************************************************
+# * | File        :	  epd2in7_V2.py
+# * | Author      :   Waveshare team
+# * | Function    :   Electronic paper driver
+# * | Info        :
+# *----------------
+# * | This version:   V1.0
+# * | Date        :   2022-09-17
+# # | Info        :   python demo
+# -----------------------------------------------------------------------------
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to  whom the Software is
+# furished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+
+import logging
+from . import epdconfig
+
+# Display resolution
+EPD_WIDTH       = 176
+EPD_HEIGHT      = 264
+
+GRAY1  = 0xff #white
+GRAY2  = 0xC0
+GRAY3  = 0x80 #gray
+GRAY4  = 0x00 #Blackest
+
+logger = logging.getLogger(__name__)
+
+class EPD:
+    def __init__(self):
+        self.reset_pin = epdconfig.RST_PIN
+        self.dc_pin = epdconfig.DC_PIN
+        self.busy_pin = epdconfig.BUSY_PIN
+        self.cs_pin = epdconfig.CS_PIN
+        self.width = EPD_WIDTH
+        self.height = EPD_HEIGHT
+        self.GRAY1  = GRAY1 #white
+        self.GRAY2  = GRAY2
+        self.GRAY3  = GRAY3 #gray
+        self.GRAY4  = GRAY4 #Blackest
+
+    LUT_DATA_4Gray = [
+        0x40,0x48,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+        0x8,0x48,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+        0x2,0x48,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+        0x20,0x48,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+        0xA,0x19,0x0,0x3,0x8,0x0,0x0,					
+        0x14,0x1,0x0,0x14,0x1,0x0,0x3,					
+        0xA,0x3,0x0,0x8,0x19,0x0,0x0,					
+        0x1,0x0,0x0,0x0,0x0,0x0,0x1,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x0,0x0,0x0,0x0,0x0,0x0,0x0,					
+        0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0,			
+        0x22,0x17,0x41,0x0,0x32,0x1C,
+        ]
+    
+    # Hardware reset
+    def reset(self):
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200) 
+        epdconfig.digital_write(self.reset_pin, 0)
+        epdconfig.delay_ms(2)
+        epdconfig.digital_write(self.reset_pin, 1)
+        epdconfig.delay_ms(200)   
+
+    def send_command(self, command):
+        epdconfig.digital_write(self.dc_pin, 0)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([command])
+        epdconfig.digital_write(self.cs_pin, 1)
+
+    def send_data(self, data):
+        epdconfig.digital_write(self.dc_pin, 1)
+        epdconfig.digital_write(self.cs_pin, 0)
+        epdconfig.spi_writebyte([data])
+        epdconfig.digital_write(self.cs_pin, 1)
+        
+    def ReadBusy(self):        
+        logger.debug("e-Paper busy")
+        while(epdconfig.digital_read(self.busy_pin) == 1):      #  1: idle, 0: busy
+            epdconfig.delay_ms(20)                
+        logger.debug("e-Paper busy release")
+    
+    def TurnOnDisplay(self):
+        self.send_command(0x22) #Display Update Control
+        self.send_data(0xF7)
+        self.send_command(0x20) #Activate Display Update Sequence
+        self.ReadBusy()
+        
+    def TurnOnDisplay_Fast(self):
+        self.send_command(0x22) #Display Update Control
+        self.send_data(0xC7)
+        self.send_command(0x20) #Activate Display Update Sequence
+        self.ReadBusy()
+        
+    def TurnOnDisplay_Partial(self):
+        self.send_command(0x22) #Display Update Control
+        self.send_data(0xFF)
+        self.send_command(0x20) #Activate Display Update Sequence
+        self.ReadBusy()
+        
+    def TurnOnDisplay_4GRAY(self):
+        self.send_command(0x22) #Display Update Control
+        self.send_data(0xC7)
+        self.send_command(0x20) #Activate Display Update Sequence
+        self.ReadBusy()
+        
+    def Lut(self):
+        self.send_command(0x32)
+        for i in range(159):
+            self.send_data(self.LUT_DATA_4Gray[i])
+    
+    def init(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+            
+        # EPD hardware init start
+        self.reset()
+        self.ReadBusy()
+
+        self.send_command(0x12) #SWRESET
+        self.ReadBusy()
+
+        self.send_command(0x45) #set Ram-Y address start/end position          
+        self.send_data(0x00)
+        self.send_data(0x00)
+        self.send_data(0x07) #0x0107-->(263+1)=264
+        self.send_data(0x01)
+
+        self.send_command(0x4F)   # set RAM y address count to 0;    
+        self.send_data(0x00)
+        self.send_data(0x00)
+
+        self.send_command(0x11)  # data entry mode
+        self.send_data(0x03)
+        return 0
+        
+    def init_Fast(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+            
+        # EPD hardware init start
+        self.reset()
+        self.ReadBusy()
+
+        self.send_command(0x12) #SWRESET
+        self.ReadBusy()
+
+        self.send_command(0x12) #SWRESET
+        self.ReadBusy()
+
+        self.send_command(0x18) #Read built-in temperature sensor
+        self.send_data(0x80)	
+
+        self.send_command(0x22) # Load temperature value
+        self.send_data(0xB1)	
+        self.send_command(0x20)	
+        self.ReadBusy()
+
+        self.send_command(0x1A) # Write to temperature register
+        self.send_data(0x64)	
+        self.send_data(0x00)	
+
+        self.send_command(0x45) #set Ram-Y address start/end position          
+        self.send_data(0x00)   
+        self.send_data(0x00)
+        self.send_data(0x07) #0x0107-->(263+1)=264
+        self.send_data(0x01)
+
+        self.send_command(0x4F)   # set RAM y address count to 0;    
+        self.send_data(0x00)
+        self.send_data(0x00)
+
+        self.send_command(0x11)   # data entry mode      
+        self.send_data(0x03)
+
+        self.send_command(0x22) # Load temperature value
+        self.send_data(0x91)	
+        self.send_command(0x20)	
+        self.ReadBusy()
+        return 0
+
+    def Init_4Gray(self):
+        if (epdconfig.module_init() != 0):
+            return -1
+        self.reset()
+        
+        self.send_command(0x12) # soft reset
+        self.ReadBusy();
+
+        self.send_command(0x74) #set analog block control       
+        self.send_data(0x54)
+        self.send_command(0x7E) #set digital block control          
+        self.send_data(0x3B)
+        
+        self.send_command(0x01) #Driver output control      
+        self.send_data(0x07)
+        self.send_data(0x01)
+        self.send_data(0x00) 
+        
+        self.send_command(0x11) #data entry mode       
+        self.send_data(0x03)
+
+        self.send_command(0x44) #set Ram-X address start/end position   
+        self.send_data(0x00)
+        self.send_data(0x15)   #0x15-->(21+1)*8=176
+
+        self.send_command(0x45) #set Ram-Y address start/end position          
+        self.send_data(0x00)
+        self.send_data(0x00)
+        self.send_data(0x07) #0x0107-->(263+1)=264
+        self.send_data(0x01)
+
+
+        self.send_command(0x3C) #BorderWavefrom
+        self.send_data(0x00)	
+
+
+        self.send_command(0x2C)     #VCOM Voltage
+        self.send_data(self.LUT_DATA_4Gray[158])    #0x1C
+
+
+        self.send_command(0x3F) #EOPQ    
+        self.send_data(self.LUT_DATA_4Gray[153])
+
+        self.send_command(0x03) #VGH      
+        self.send_data(self.LUT_DATA_4Gray[154])
+
+        self.send_command(0x04) #      
+        self.send_data(self.LUT_DATA_4Gray[155]) #VSH1   
+        self.send_data(self.LUT_DATA_4Gray[156]) #VSH2   
+        self.send_data(self.LUT_DATA_4Gray[157]) #VSL   
+
+        self.Lut() #LUT
+
+
+        self.send_command(0x4E)   # set RAM x address count to 0;
+        self.send_data(0x00)
+        self.send_command(0x4F)  # set RAM y address count to 0X199;    
+        self.send_data(0x00)
+        self.send_data(0x00)
+        self.ReadBusy()
+        return 0
+
+    def getbuffer(self, image):
+        # logger.debug("bufsiz = ",int(self.width/8) * self.height)
+        buf = [0xFF] * (int(self.width/8) * self.height)
+        image_monocolor = image.convert('1')
+        imwidth, imheight = image_monocolor.size
+        pixels = image_monocolor.load()
+        # logger.debug("imwidth = %d, imheight = %d",imwidth,imheight)
+        if(imwidth == self.width and imheight == self.height):
+            logger.debug("Vertical")
+            for y in range(imheight):
+                for x in range(imwidth):
+                    # Set the bits for the column of pixels at the current position.
+                    if pixels[x, y] == 0:
+                        buf[int((x + y * self.width) / 8)] &= ~(0x80 >> (x % 8))
+        elif(imwidth == self.height and imheight == self.width):
+            logger.debug("Horizontal")
+            for y in range(imheight):
+                for x in range(imwidth):
+                    newx = y
+                    newy = self.height - x - 1
+                    if pixels[x, y] == 0:
+                        buf[int((newx + newy*self.width) / 8)] &= ~(0x80 >> (y % 8))
+        return buf
+    
+    def getbuffer_4Gray(self, image):
+        # logger.debug("bufsiz = ",int(self.width/8) * self.height)
+        buf = [0xFF] * (int(self.width / 4) * self.height)
+        image_monocolor = image.convert('L')
+        imwidth, imheight = image_monocolor.size
+        pixels = image_monocolor.load()
+        i=0
+        # logger.debug("imwidth = %d, imheight = %d",imwidth,imheight)
+        if(imwidth == self.width and imheight == self.height):
+            logger.debug("Vertical")
+            for y in range(imheight):
+                for x in range(imwidth):
+                    # Set the bits for the column of pixels at the current position.
+                    if(pixels[x, y] == 0xC0):
+                        pixels[x, y] = 0x80
+                    elif (pixels[x, y] == 0x80):
+                        pixels[x, y] = 0x40
+                    i= i+1
+                    if(i%4 == 0):
+                        buf[int((x + (y * self.width))/4)] = ((pixels[x-3, y]&0xc0) | (pixels[x-2, y]&0xc0)>>2 | (pixels[x-1, y]&0xc0)>>4 | (pixels[x, y]&0xc0)>>6)
+                        
+        elif(imwidth == self.height and imheight == self.width):
+            logger.debug("Horizontal")
+            for x in range(imwidth):
+                for y in range(imheight):
+                    newx = y
+                    newy = self.height - x - 1
+                    if(pixels[x, y] == 0xC0):
+                        pixels[x, y] = 0x80
+                    elif (pixels[x, y] == 0x80):
+                        pixels[x, y] = 0x40
+                    i= i+1
+                    if(i%4 == 0):
+                        buf[int((newx + (newy * self.width))/4)] = ((pixels[x, y-3]&0xc0) | (pixels[x, y-2]&0xc0)>>2 | (pixels[x, y-1]&0xc0)>>4 | (pixels[x, y]&0xc0)>>6) 
+        return buf
+    
+    def clear(self):
+        if(self.width % 8 == 0):
+            Width = self.width // 8
+        else:
+            Width = self.width // 8 +1
+        Height = self.height
+        self.send_command(0x24)
+        for j in range(Height):
+            for i in range(Width):
+                self.send_data(0XFF)
+        self.TurnOnDisplay()
+    
+    def display(self, image):
+        if(self.width % 8 == 0):
+            Width = self.width // 8
+        else:
+            Width = self.width // 8 +1
+        Height = self.height
+        self.send_command(0x24)
+        for j in range(Height):
+            for i in range(Width):
+                self.send_data(image[i + j * Width])
+        self.TurnOnDisplay()
+        
+    def display_Fast(self, image):
+        if(self.width % 8 == 0):
+            Width = self.width // 8
+        else:
+            Width = self.width // 8 +1
+        Height = self.height
+        self.send_command(0x24)
+        for j in range(Height):
+            for i in range(Width):
+                self.send_data(image[i + j * Width])
+        self.TurnOnDisplay_Fast()
+        
+    def display_Base(self, image):
+        if(self.width % 8 == 0):
+            Width = self.width // 8
+        else:
+            Width = self.width // 8 +1
+        Height = self.height
+        self.send_command(0x24)   #Write Black and White image to RAM
+        for j in range(Height):
+            for i in range(Width):
+                self.send_data(image[i + j * Width])
+                
+        self.send_command(0x26)  #Write Black and White image to RAM
+        for j in range(Height):
+            for i in range(Width):
+                self.send_data(image[i + j * Width])
+        self.TurnOnDisplay()
+        
+    def display_Base_color(self, color):
+        if(self.width % 8 == 0):
+            Width = self.width // 8
+        else:
+            Width = self.width // 8 +1
+        Height = self.height
+        self.send_command(0x24)   #Write Black and White image to RAM
+        for j in range(Height):
+            for i in range(Width):
+                self.send_data(color)
+                
+        self.send_command(0x26)  #Write Black and White image to RAM
+        for j in range(Height):
+            for i in range(Width):
+                self.send_data(color)
+        # self.TurnOnDisplay()
+    
+    def display_Partial(self, Image, Xstart, Ystart, Xend, Yend):
+        if((Xstart % 8 + Xend % 8 == 8 & Xstart % 8 > Xend % 8) | Xstart % 8 + Xend % 8 == 0 | (Xend - Xstart)%8 == 0):
+            Xstart = Xstart // 8
+            Xend = Xend // 8
+        else:
+            Xstart = Xstart // 8 
+            if Xend % 8 == 0:
+                Xend = Xend // 8
+            else:
+                Xend = Xend // 8 + 1
+                
+        if(self.width % 8 == 0):
+            Width = self.width // 8
+        else:
+            Width = self.width // 8 +1
+        Height = self.height
+
+        Xend -= 1
+        Yend -= 1
+        
+        # Reset
+        self.reset()
+
+        self.send_command(0x3C) #BorderWavefrom
+        self.send_data(0x80)
+	
+        self.send_command(0x44)       # set RAM x address start/end, in page 35
+        self.send_data(Xstart & 0xff)    # RAM x address start at 00h;
+        self.send_data(Xend & 0xff)    # RAM x address end at 0fh(15+1)*8->128 
+        self.send_command(0x45)       # set RAM y address start/end, in page 35
+        self.send_data(Ystart & 0xff)    # RAM y address start at 0127h;
+        self.send_data((Ystart>>8) & 0x01)    # RAM y address start at 0127h;
+        self.send_data(Yend & 0xff)    # RAM y address end at 00h;
+        self.send_data((Yend>>8) & 0x01)   
+
+        self.send_command(0x4E)   # set RAM x address count to 0;
+        self.send_data(Xstart & 0xff)
+        self.send_command(0x4F)   # set RAM y address count to 0X127;    
+        self.send_data(Ystart & 0xff)
+        self.send_data((Ystart>>8) & 0x01)
+
+        self.send_command(0x24)   #Write Black and White image to RAM
+        for j in range(Height):
+            for i in range(Width):
+                if((j > Ystart-1) & (j < (Yend + 1)) & (i > Xstart-1) & (i < (Xend + 1))):
+                    self.send_data(Image[i + j * Width])
+        self.TurnOnDisplay_Partial()
+  
+    def display_4Gray(self, image):
+        self.send_command(0x24)
+        for i in range(0, 5808):                     #5808*4  46464
+            temp3=0
+            for j in range(0, 2):
+                temp1 = image[i*2+j]
+                for k in range(0, 2):
+                    temp2 = temp1&0xC0 
+                    if(temp2 == 0xC0):
+                        temp3 |= 0x00
+                    elif(temp2 == 0x00):
+                        temp3 |= 0x01  
+                    elif(temp2 == 0x80): 
+                        temp3 |= 0x01 
+                    else: #0x40
+                        temp3 |= 0x00 
+                    temp3 <<= 1	
+                    
+                    temp1 <<= 2
+                    temp2 = temp1&0xC0 
+                    if(temp2 == 0xC0): 
+                        temp3 |= 0x00
+                    elif(temp2 == 0x00): 
+                        temp3 |= 0x01
+                    elif(temp2 == 0x80):
+                        temp3 |= 0x01
+                    else :   #0x40
+                        temp3 |= 0x00	
+                    if(j!=1 or k!=1):				
+                        temp3 <<= 1
+                    temp1 <<= 2
+            self.send_data(temp3)
+            
+        self.send_command(0x26)	       
+        for i in range(0, 5808):                #5808*4  46464
+            temp3=0
+            for j in range(0, 2):
+                temp1 = image[i*2+j]
+                for k in range(0, 2):
+                    temp2 = temp1&0xC0 
+                    if(temp2 == 0xC0):
+                        temp3 |= 0x00
+                    elif(temp2 == 0x00):
+                        temp3 |= 0x01
+                    elif(temp2 == 0x80):
+                        temp3 |= 0x00
+                    else: #0x40
+                        temp3 |= 0x01 
+                    temp3 <<= 1	
+                    
+                    temp1 <<= 2
+                    temp2 = temp1&0xC0 
+                    if(temp2 == 0xC0): 
+                        temp3 |= 0x00
+                    elif(temp2 == 0x00): 
+                        temp3 |= 0x01
+                    elif(temp2 == 0x80):
+                        temp3 |= 0x00 
+                    else:    #0x40
+                            temp3 |= 0x01	
+                    if(j!=1 or k!=1):					
+                        temp3 <<= 1
+                    temp1 <<= 2
+            self.send_data(temp3)
+        
+        self.TurnOnDisplay_4GRAY()
+
+    def sleep(self):
+        self.send_command(0X10)
+        self.send_data(0x01)
+        
+        epdconfig.delay_ms(2000)
+        epdconfig.module_exit()
+### END OF FILE ###
+

+ 97 - 0
STM32/STM32-F103ZET6/MDK-ARM/DebugConfig/EPD_2in7_V2_test_STM32F103ZE.dbgconf

@@ -0,0 +1,97 @@
+// <<< Use Configuration Wizard in Context Menu >>>
+// <h> Debug MCU Configuration
+//   <o0.0>    DBG_SLEEP
+// <i> Debug Sleep Mode
+// <i> 0: (FCLK=On, HCLK=Off) FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled
+// <i> 1: (FCLK=On, HCLK=On) HCLK is fed by the same clock that is provided to FCLK
+//   <o0.1>    DBG_STOP
+// <i> Debug Stop Mode
+// <i> 0: (FCLK=Off, HCLK=Off) Clock controller disables all clocks
+// <i> 1: (FCLK=On, HCLK=On) FCLK and HCLK are provided by the internal RC oscillator which remains active
+//   <o0.2>    DBG_STANDBY
+// <i> Debug Standby Mode
+// <i> 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered.
+// <i> 1: (FCLK=On, HCLK=On) Digital part is powered and FCLK and HCLK are provided by the internal RC oscillator which remains active
+//   <o0.8>    DBG_IWDG_STOP
+// <i> Debug independent watchdog stopped when core is halted
+// <i> 0: The watchdog counter clock continues even if the core is halted
+// <i> 1: The watchdog counter clock is stopped when the core is halted
+//   <o0.9>    DBG_WWDG_STOP
+// <i> Debug window watchdog stopped when core is halted
+// <i> 0: The window watchdog counter clock continues even if the core is halted
+// <i> 1: The window watchdog counter clock is stopped when the core is halted
+//   <o0.10>   DBG_TIM1_STOP
+// <i> Timer 1 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.11>   DBG_TIM2_STOP
+// <i> Timer 2 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.12>   DBG_TIM3_STOP
+// <i> Timer 3 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.13>   DBG_TIM4_STOP
+// <i> Timer 4 counter stopped when core is halted
+// <i> 0: The clock of the involved Timer Counter is fed even if the core is halted
+// <i> 1: The clock of the involved Timer counter is stopped when the core is halted
+//   <o0.14>   DBG_CAN1_STOP
+// <i> Debug CAN1 stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: CAN1 receive registers are frozen
+//   <o0.15>   DBG_I2C1_SMBUS_TIMEOUT
+// <i> I2C1 SMBUS timeout mode stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: The SMBUS timeout is frozen
+//   <o0.16>   DBG_I2C2_SMBUS_TIMEOUT
+// <i> I2C2 SMBUS timeout mode stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: The SMBUS timeout is frozen
+//   <o0.17>   DBG_TIM8_STOP
+// <i> Timer 8 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.18>   DBG_TIM5_STOP
+// <i> Timer 5 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.19>   DBG_TIM6_STOP
+// <i> Timer 6 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.20>   DBG_TIM7_STOP
+// <i> Timer 7 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.21>   DBG_CAN2_STOP
+// <i> Debug CAN2 stopped when Core is halted
+// <i> 0: Same behavior as in normal mode
+// <i> 1: CAN2 receive registers are frozen
+//   <o0.25>   DBG_TIM12_STOP
+// <i> Timer 12 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.26>   DBG_TIM13_STOP
+// <i> Timer 13 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.27>   DBG_TIM14_STOP
+// <i> Timer 14 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.28>   DBG_TIM9_STOP
+// <i> Timer 9 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.29>   DBG_TIM10_STOP
+// <i> Timer 10 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+//   <o0.30>   DBG_TIM11_STOP
+// <i> Timer 11 counter stopped when core is halted
+// <i> 0: The clock of the involved timer counter is fed even if the core is halted, and the outputs behave normally.
+// <i> 1: The clock of the involved timer counter is stopped when the core is halted, and the outputs are disabled (as if there were an emergency stop in response to a break event).
+// </h>
+DbgMCU_CR = 0x00000007;
+// <<< end of configuration section >>>

+ 20 - 0
STM32/STM32-F103ZET6/MDK-ARM/RTE/_EPD_2in7_V2_test/RTE_Components.h

@@ -0,0 +1,20 @@
+
+/*
+ * Auto generated Run-Time-Environment Component Configuration File
+ *      *** Do not modify ! ***
+ *
+ * Project: 'epd-demo' 
+ * Target:  'EPD_2in7_V2_test' 
+ */
+
+#ifndef RTE_COMPONENTS_H
+#define RTE_COMPONENTS_H
+
+
+/*
+ * Define the Device Header File: 
+ */
+#define CMSIS_device_header "stm32f10x.h"
+
+
+#endif /* RTE_COMPONENTS_H */

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 1
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian


Fichier diff supprimé car celui-ci est trop grand
+ 306 - 47
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx


Fichier diff supprimé car celui-ci est trop grand
+ 7165 - 114
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx


+ 43 - 43
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm

@@ -3,92 +3,92 @@
 <pre>
 <h1>µVision Build Log</h1>
 <h2>Tool Versions:</h2>
-IDE-Version: ¦ÌVision V5.25.2.0
+IDE-Version: ¦ÌVision V5.26.2.0
 Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
-License Information: ass ass, ass, LIC=JL2UH-W872P-CJR6Z-JYZTW-ESB48-R6YF4
+License Information:  ,  , LIC=RC93N-YLJYL-JJH6S-LI3Z1-D1AV2-99PL8
  
 Tool Versions:
-Toolchain:       MDK-ARM Plus  Version: 5.25.2.0
-Toolchain Path:  D:\Program Files\keil5\ARM\ARMCC\Bin
+Toolchain:       MDK-ARM Plus  Version: 5.26.2.0
+Toolchain Path:  D:\KEIL\azwz\ARM\ARMCC\Bin
 C Compiler:      Armcc.exe V5.06 update 6 (build 750)
 Assembler:       Armasm.exe V5.06 update 6 (build 750)
 Linker/Locator:  ArmLink.exe V5.06 update 6 (build 750)
 Library Manager: ArmAr.exe V5.06 update 6 (build 750)
 Hex Converter:   FromElf.exe V5.06 update 6 (build 750)
-CPU DLL:         SARMCM3.DLL V5.25.2.0
-Dialog DLL:      DCM.DLL V1.17.1.0
-Target DLL:      STLink\ST-LINKIII-KEIL_SWO.dll V3.0.1.0
-Dialog DLL:      TCM.DLL V1.35.1.0
+CPU DLL:         SARMCM3.DLL V5.26.2.0
+Dialog DLL:      DCM.DLL V1.17.2.0
+Target DLL:      STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
+Dialog DLL:      TCM.DLL V1.36.1.0
  
 <h2>Project:</h2>
-E:\github\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
-Project File Date:  10/20/2022
+E:\ÏîÄ¿\e-Paper\Code\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
+Project File Date:  10/27/2022
 
 <h2>Output:</h2>
-*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\keil5\ARM\ARMCC\Bin'
-Build target 'epd-demo'
+*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\KEIL\azwz\ARM\ARMCC\Bin'
+Build target 'EPD_2in7_V2_test'
 assembling startup_stm32f103xe.s...
-compiling spi.c...
-compiling usart.c...
 compiling gpio.c...
-compiling stm32f1xx_hal_msp.c...
-compiling DEV_Config.c...
+compiling usart.c...
 compiling stm32f1xx_it.c...
 compiling main.c...
+compiling spi.c...
+compiling ImageData.c...
+compiling DEV_Config.c...
+compiling stm32f1xx_hal_msp.c...
 compiling font8.c...
+compiling EPD_2in7_V2.c...
 compiling font12.c...
+compiling EPD_2in7_V2_test.c...
 compiling font12CN.c...
 compiling font16.c...
-compiling font24CN.c...
 compiling font20.c...
-compiling GUI_Paint.c...
 compiling font24.c...
-compiling system_stm32f1xx.c...
-compiling stm32f1xx_hal_gpio.c...
+compiling font24CN.c...
+compiling GUI_Paint.c...
 compiling stm32f1xx_hal_gpio_ex.c...
-compiling stm32f1xx_hal.c...
+compiling system_stm32f1xx.c...
 compiling stm32f1xx_hal_spi.c...
+compiling stm32f1xx_hal.c...
+compiling stm32f1xx_hal_rcc.c...
+compiling stm32f1xx_hal_pwr.c...
+compiling stm32f1xx_hal_cortex.c...
 compiling stm32f1xx_hal_rcc_ex.c...
 compiling stm32f1xx_hal_dma.c...
-compiling stm32f1xx_hal_rcc.c...
-compiling stm32f1xx_hal_flash.c...
+compiling stm32f1xx_hal_gpio.c...
 compiling stm32f1xx_hal_tim.c...
-compiling stm32f1xx_hal_exti.c...
 compiling stm32f1xx_hal_tim_ex.c...
-compiling stm32f1xx_hal_pwr.c...
-compiling stm32f1xx_hal_cortex.c...
+compiling stm32f1xx_hal_exti.c...
 compiling stm32f1xx_hal_flash_ex.c...
+compiling stm32f1xx_hal_flash.c...
 compiling stm32f1xx_hal_uart.c...
 linking...
-epd-demo\epd-demo.axf: Error: L6218E: Undefined symbol EPD_test (referred from main.o).
-Not enough information to list image symbols.
-Not enough information to list load addresses in the image map.
-Finished: 2 information, 0 warning and 1 error messages.
-"epd-demo\epd-demo.axf" - 1 Error(s), 0 Warning(s).
+Program Size: Code=27652 RO-data=31976 RW-data=236 ZI-data=53428  
+FromELF: creating hex file...
+"epd-demo\epd-demo.axf" - 0 Error(s), 0 Warning(s).
 
 <h2>Software Packages used:</h2>
 
 Package Vendor: ARM
-                http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack
-                ARM.CMSIS.5.7.0
-                CMSIS (Cortex Microcontroller Software Interface Standard)
-   * Component: CORE Version: 5.4.0
+                http://www.keil.com/pack/ARM.CMSIS.5.9.0.pack
+                ARM.CMSIS.5.9.0
+                CMSIS (Common Microcontroller Software Interface Standard)
+   * Component: CORE Version: 5.6.0
 
 Package Vendor: Keil
-                http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.3.0.pack
-                Keil.STM32F1xx_DFP.2.3.0
+                http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack
+                Keil.STM32F1xx_DFP.2.1.0
                 STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
 
 <h2>Collection of Component include folders:</h2>
-  .\RTE\_epd-demo
-  D:\Program Files\keil5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\Core\Include
-  D:\Program Files\keil5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include
+  .\RTE\_EPD_2in7_V2_test
+  D:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Include
+  D:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include
 
 <h2>Collection of Component Files used:</h2>
 
-   * Component: ARM::CMSIS:CORE:5.4.0
-Target not created.
-Build Time Elapsed:  00:00:15
+   * Component: ARM::CMSIS:CORE:5.6.0
+Build Time Elapsed:  00:00:13
 </pre>
 </body>
 </html>

Fichier diff supprimé car celui-ci est trop grand
+ 542 - 476
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm


+ 955 - 24
STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map

@@ -16,6 +16,7 @@ Section Cross References
     main.o(.text) refers to gpio.o(.text) for MX_GPIO_Init
     main.o(.text) refers to usart.o(.text) for MX_USART1_UART_Init
     main.o(.text) refers to spi.o(.text) for MX_SPI1_Init
+    main.o(.text) refers to epd_2in7_v2_test.o(.text) for EPD_test
     gpio.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
     spi.o(.text) refers to stm32f1xx_hal_spi.o(.text) for HAL_SPI_Init
     spi.o(.text) refers to main.o(.text) for Error_Handler
@@ -27,6 +28,25 @@ Section Cross References
     usart.o(.text) refers to usart.o(.bss) for .bss
     stm32f1xx_it.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
     stm32f1xx_it.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_IncTick
+    epd_2in7_v2_test.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
+    epd_2in7_v2_test.o(.text) refers to dev_config.o(.text) for DEV_Module_Init
+    epd_2in7_v2_test.o(.text) refers to epd_2in7_v2.o(.text) for EPD_2IN7_V2_Init
+    epd_2in7_v2_test.o(.text) refers to malloc.o(i.malloc) for malloc
+    epd_2in7_v2_test.o(.text) refers to gui_paint.o(.text) for Paint_NewImage
+    epd_2in7_v2_test.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
+    epd_2in7_v2_test.o(.text) refers to font16.o(.data) for Font16
+    epd_2in7_v2_test.o(.text) refers to font12.o(.data) for Font12
+    epd_2in7_v2_test.o(.text) refers to font12cn.o(.data) for Font12CN
+    epd_2in7_v2_test.o(.text) refers to font24cn.o(.data) for Font24CN
+    epd_2in7_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in7
+    epd_2in7_v2_test.o(.text) refers to malloc.o(i.free) for free
+    epd_2in7_v2_test.o(.text) refers to font20.o(.data) for Font20
+    epd_2in7_v2_test.o(.text) refers to imagedata.o(.constdata) for gImage_2in7_4Gray
+    epd_2in7_v2.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
+    epd_2in7_v2.o(.text) refers to stm32f1xx_hal.o(.text) for HAL_Delay
+    epd_2in7_v2.o(.text) refers to epd_2in7_v2.o(.data) for .data
+    epd_2in7_v2.o(.text) refers to dev_config.o(.text) for DEV_SPI_WriteByte
+    epd_2in7_v2.o(.text) refers to printf3.o(i.__0printf$3) for __2printf
     dev_config.o(.text) refers to stm32f1xx_hal_spi.o(.text) for HAL_SPI_Transmit
     dev_config.o(.text) refers to stm32f1xx_hal_gpio.o(.text) for HAL_GPIO_WritePin
     dev_config.o(.text) refers to spi.o(.bss) for hspi1
@@ -320,6 +340,38 @@ Section Cross References
     printfa.o(i._printf_pre_padding) refers (Special) to iusefp.o(.text) for __I$use$fp
     printfa.o(i._snputc) refers (Special) to iusefp.o(.text) for __I$use$fp
     printfa.o(i._sputc) refers (Special) to iusefp.o(.text) for __I$use$fp
+    malloc.o(i.free) refers to mvars.o(.data) for __microlib_freelist
+    malloc.o(i.malloc) refers to mvars.o(.data) for __microlib_freelist_initialised
+    malloc.o(i.malloc) refers to mvars.o(.data) for __microlib_freelist
+    malloc.o(i.malloc) refers to startup_stm32f103xe.o(HEAP) for __heap_base
+    mallocr.o(i.__free$realloc) refers to mvars.o(.data) for __microlib_freelist
+    mallocr.o(i.__malloc$realloc) refers to mallocr.o(i.internal_alloc) for internal_alloc
+    mallocr.o(i.__malloc$realloc) refers to mvars.o(.data) for __microlib_freelist_initialised
+    mallocr.o(i.__malloc$realloc) refers to startup_stm32f103xe.o(HEAP) for __heap_base
+    mallocr.o(i.__malloc$realloc) refers to mvars.o(.data) for __microlib_freelist
+    mallocr.o(i.internal_alloc) refers to memcpya.o(.text) for __aeabi_memcpy
+    mallocr.o(i.internal_alloc) refers to mvars.o(.data) for __microlib_freelist
+    mallocr.o(i.realloc) refers to mallocr.o(i.__free$realloc) for __free$realloc
+    mallocr.o(i.realloc) refers to mallocr.o(i.internal_alloc) for internal_alloc
+    mallocr.o(i.realloc) refers to mallocr.o(i.__malloc$realloc) for __malloc$realloc
+    mallocr.o(i.realloc) refers to mvars.o(.data) for __microlib_freelist
+    malloca.o(i.__aligned_malloc) refers to mvars.o(.data) for __microlib_freelist_initialised
+    malloca.o(i.__aligned_malloc) refers to mvars.o(.data) for __microlib_freelist
+    malloca.o(i.__aligned_malloc) refers to startup_stm32f103xe.o(HEAP) for __heap_base
+    malloca.o(i.__free$memalign) refers to mvars.o(.data) for __microlib_freelist
+    malloca.o(i.__malloc$memalign) refers to malloca.o(i.__aligned_malloc) for __aligned_malloc
+    mallocra.o(i.__aligned_malloc$realloc) refers to mallocra.o(i.internal_alloc) for internal_alloc
+    mallocra.o(i.__aligned_malloc$realloc) refers to mvars.o(.data) for __microlib_freelist_initialised
+    mallocra.o(i.__aligned_malloc$realloc) refers to startup_stm32f103xe.o(HEAP) for __heap_base
+    mallocra.o(i.__aligned_malloc$realloc) refers to mvars.o(.data) for __microlib_freelist
+    mallocra.o(i.__free$realloc$memalign) refers to mvars.o(.data) for __microlib_freelist
+    mallocra.o(i.__malloc$realloc$memalign) refers to mallocra.o(i.__aligned_malloc$realloc) for __aligned_malloc$realloc
+    mallocra.o(i.__realloc$memalign) refers to mallocra.o(i.__free$realloc$memalign) for __free$realloc$memalign
+    mallocra.o(i.__realloc$memalign) refers to mallocra.o(i.internal_alloc) for internal_alloc
+    mallocra.o(i.__realloc$memalign) refers to mallocra.o(i.__malloc$realloc$memalign) for __malloc$realloc$memalign
+    mallocra.o(i.__realloc$memalign) refers to mvars.o(.data) for __microlib_freelist
+    mallocra.o(i.internal_alloc) refers to memcpya.o(.text) for __aeabi_memcpy
+    mallocra.o(i.internal_alloc) refers to mvars.o(.data) for __microlib_freelist
     fmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
     dadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp
     dadd.o(.text) refers to llshl.o(.text) for __aeabi_llsl
@@ -354,7 +406,6 @@ Section Cross References
 
 Removing Unused input sections from the image.
 
-    Removing startup_stm32f103xe.o(HEAP), (49152 bytes).
     Removing main.o(.rev16_text), (4 bytes).
     Removing main.o(.revsh_text), (4 bytes).
     Removing main.o(.rrx_text), (6 bytes).
@@ -373,30 +424,65 @@ Removing Unused input sections from the image.
     Removing stm32f1xx_hal_msp.o(.rev16_text), (4 bytes).
     Removing stm32f1xx_hal_msp.o(.revsh_text), (4 bytes).
     Removing stm32f1xx_hal_msp.o(.rrx_text), (6 bytes).
+    Removing imagedata.o(.constdata), (656 bytes).
+    Removing imagedata.o(.constdata), (2560 bytes).
+    Removing imagedata.o(.constdata), (5000 bytes).
+    Removing imagedata.o(.constdata), (5000 bytes).
+    Removing imagedata.o(.constdata), (5000 bytes).
+    Removing imagedata.o(.constdata), (2888 bytes).
+    Removing imagedata.o(.constdata), (2888 bytes).
+    Removing imagedata.o(.constdata), (5808 bytes).
+    Removing imagedata.o(.constdata), (5808 bytes).
+    Removing imagedata.o(.constdata), (5808 bytes).
+    Removing imagedata.o(.constdata), (5808 bytes).
+    Removing imagedata.o(.constdata), (4736 bytes).
+    Removing imagedata.o(.constdata), (4736 bytes).
+    Removing imagedata.o(.constdata), (4736 bytes).
+    Removing imagedata.o(.constdata), (4000 bytes).
+    Removing imagedata.o(.constdata), (2756 bytes).
+    Removing imagedata.o(.constdata), (2756 bytes).
+    Removing imagedata.o(.constdata), (2756 bytes).
+    Removing imagedata.o(.constdata), (2756 bytes).
+    Removing imagedata.o(.constdata), (2756 bytes).
+    Removing imagedata.o(.constdata), (5630 bytes).
+    Removing imagedata.o(.constdata), (5630 bytes).
+    Removing imagedata.o(.constdata), (5630 bytes).
+    Removing imagedata.o(.constdata), (10800 bytes).
+    Removing imagedata.o(.constdata), (33606 bytes).
+    Removing imagedata.o(.constdata), (128000 bytes).
+    Removing imagedata.o(.constdata), (15000 bytes).
+    Removing imagedata.o(.constdata), (30000 bytes).
+    Removing imagedata.o(.constdata), (15000 bytes).
+    Removing imagedata.o(.constdata), (15000 bytes).
+    Removing imagedata.o(.constdata), (13728 bytes).
+    Removing imagedata.o(.constdata), (33600 bytes).
+    Removing imagedata.o(.constdata), (38886 bytes).
+    Removing imagedata.o(.constdata), (33600 bytes).
+    Removing imagedata.o(.constdata), (33600 bytes).
+    Removing imagedata.o(.constdata), (38886 bytes).
+    Removing imagedata.o(.constdata), (38886 bytes).
+    Removing imagedata.o(.constdata), (30720 bytes).
+    Removing imagedata.o(.constdata), (48000 bytes).
+    Removing imagedata.o(.constdata), (30720 bytes).
+    Removing imagedata.o(.constdata), (30720 bytes).
+    Removing imagedata.o(.constdata), (48000 bytes).
+    Removing imagedata.o(.constdata), (48000 bytes).
+    Removing epd_2in7_v2_test.o(.rev16_text), (4 bytes).
+    Removing epd_2in7_v2_test.o(.revsh_text), (4 bytes).
+    Removing epd_2in7_v2_test.o(.rrx_text), (6 bytes).
+    Removing epd_2in7_v2.o(.rev16_text), (4 bytes).
+    Removing epd_2in7_v2.o(.revsh_text), (4 bytes).
+    Removing epd_2in7_v2.o(.rrx_text), (6 bytes).
     Removing dev_config.o(.rev16_text), (4 bytes).
     Removing dev_config.o(.revsh_text), (4 bytes).
     Removing dev_config.o(.rrx_text), (6 bytes).
-    Removing dev_config.o(.text), (104 bytes).
     Removing gui_paint.o(.rev16_text), (4 bytes).
     Removing gui_paint.o(.revsh_text), (4 bytes).
     Removing gui_paint.o(.rrx_text), (6 bytes).
-    Removing gui_paint.o(.text), (4020 bytes).
-    Removing gui_paint.o(.bss), (24 bytes).
-    Removing gui_paint.o(.conststring), (236 bytes).
     Removing font8.o(.constdata), (760 bytes).
     Removing font8.o(.data), (8 bytes).
-    Removing font12.o(.constdata), (1140 bytes).
-    Removing font12.o(.data), (8 bytes).
-    Removing font12cn.o(.constdata), (1494 bytes).
-    Removing font12cn.o(.data), (12 bytes).
-    Removing font16.o(.constdata), (3040 bytes).
-    Removing font16.o(.data), (8 bytes).
-    Removing font20.o(.constdata), (3800 bytes).
-    Removing font20.o(.data), (8 bytes).
     Removing font24.o(.constdata), (6840 bytes).
     Removing font24.o(.data), (8 bytes).
-    Removing font24cn.o(.constdata), (4482 bytes).
-    Removing font24cn.o(.data), (12 bytes).
     Removing system_stm32f1xx.o(.rev16_text), (4 bytes).
     Removing system_stm32f1xx.o(.revsh_text), (4 bytes).
     Removing system_stm32f1xx.o(.rrx_text), (6 bytes).
@@ -452,17 +538,862 @@ Removing Unused input sections from the image.
     Removing stm32f1xx_hal_uart.o(.rev16_text), (4 bytes).
     Removing stm32f1xx_hal_uart.o(.revsh_text), (4 bytes).
     Removing stm32f1xx_hal_uart.o(.rrx_text), (6 bytes).
-    Removing fmul.o(.text), (100 bytes).
-    Removing dadd.o(.text), (334 bytes).
-    Removing dflti.o(.text), (34 bytes).
-    Removing ffixi.o(.text), (50 bytes).
-    Removing dfixi.o(.text), (62 bytes).
-    Removing d2f.o(.text), (56 bytes).
-    Removing fepilogue.o(.text), (110 bytes).
-    Removing depilogue.o(.text), (186 bytes).
     Removing dmul.o(.text), (228 bytes).
     Removing ddiv.o(.text), (222 bytes).
     Removing dfixul.o(.text), (48 bytes).
     Removing cdrcmple.o(.text), (48 bytes).
 
-110 unused section(s) (total 80782 bytes) removed from the image.
+136 unused section(s) (total 823192 bytes) removed from the image.
+
+==============================================================================
+
+Image Symbol Table
+
+    Local Symbols
+
+    Symbol Name                              Value     Ov Type        Size  Object(Section)
+
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c 0x00000000   Number         0  stm32f1xx_hal.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c 0x00000000   Number         0  stm32f1xx_hal_cortex.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c 0x00000000   Number         0  stm32f1xx_hal_dma.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c 0x00000000   Number         0  stm32f1xx_hal_exti.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c 0x00000000   Number         0  stm32f1xx_hal_flash.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c 0x00000000   Number         0  stm32f1xx_hal_flash_ex.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c 0x00000000   Number         0  stm32f1xx_hal_gpio.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c 0x00000000   Number         0  stm32f1xx_hal_gpio_ex.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c 0x00000000   Number         0  stm32f1xx_hal_pwr.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c 0x00000000   Number         0  stm32f1xx_hal_rcc.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c 0x00000000   Number         0  stm32f1xx_hal_rcc_ex.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c 0x00000000   Number         0  stm32f1xx_hal_spi.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c 0x00000000   Number         0  stm32f1xx_hal_tim.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c 0x00000000   Number         0  stm32f1xx_hal_tim_ex.o ABSOLUTE
+    ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c 0x00000000   Number         0  stm32f1xx_hal_uart.o ABSOLUTE
+    ../Src/gpio.c                            0x00000000   Number         0  gpio.o ABSOLUTE
+    ../Src/main.c                            0x00000000   Number         0  main.o ABSOLUTE
+    ../Src/spi.c                             0x00000000   Number         0  spi.o ABSOLUTE
+    ../Src/stm32f1xx_hal_msp.c               0x00000000   Number         0  stm32f1xx_hal_msp.o ABSOLUTE
+    ../Src/stm32f1xx_it.c                    0x00000000   Number         0  stm32f1xx_it.o ABSOLUTE
+    ../Src/system_stm32f1xx.c                0x00000000   Number         0  system_stm32f1xx.o ABSOLUTE
+    ../Src/usart.c                           0x00000000   Number         0  usart.o ABSOLUTE
+    ../clib/microlib/division.c              0x00000000   Number         0  uidiv.o ABSOLUTE
+    ../clib/microlib/division.c              0x00000000   Number         0  uldiv.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry8b.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry11b.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry8a.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry11a.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry7b.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry10a.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry9b.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry7a.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry5.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry10b.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry2.o ABSOLUTE
+    ../clib/microlib/init/entry.s            0x00000000   Number         0  entry9a.o ABSOLUTE
+    ../clib/microlib/longlong.c              0x00000000   Number         0  llushr.o ABSOLUTE
+    ../clib/microlib/longlong.c              0x00000000   Number         0  llshl.o ABSOLUTE
+    ../clib/microlib/longlong.c              0x00000000   Number         0  llsshr.o ABSOLUTE
+    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  malloc.o ABSOLUTE
+    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  mallocr.o ABSOLUTE
+    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  malloca.o ABSOLUTE
+    ../clib/microlib/malloc/malloc.c         0x00000000   Number         0  mallocra.o ABSOLUTE
+    ../clib/microlib/malloc/mvars.c          0x00000000   Number         0  mvars.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf6.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printfa.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf8.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf7.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf5.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf4.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf3.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf2.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf1.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printf0.o ABSOLUTE
+    ../clib/microlib/printf/printf.c         0x00000000   Number         0  printfb.o ABSOLUTE
+    ../clib/microlib/printf/stubs.s          0x00000000   Number         0  stubs.o ABSOLUTE
+    ../clib/microlib/stdio/streams.c         0x00000000   Number         0  stdout.o ABSOLUTE
+    ../clib/microlib/string/memcpy.c         0x00000000   Number         0  memcpya.o ABSOLUTE
+    ../clib/microlib/string/memcpy.c         0x00000000   Number         0  memcpyb.o ABSOLUTE
+    ../clib/microlib/string/memset.c         0x00000000   Number         0  memseta.o ABSOLUTE
+    ../clib/microlib/stubs.s                 0x00000000   Number         0  iusefp.o ABSOLUTE
+    ../fplib/microlib/d2f.c                  0x00000000   Number         0  d2f.o ABSOLUTE
+    ../fplib/microlib/fpadd.c                0x00000000   Number         0  dadd.o ABSOLUTE
+    ../fplib/microlib/fpdiv.c                0x00000000   Number         0  ddiv.o ABSOLUTE
+    ../fplib/microlib/fpepilogue.c           0x00000000   Number         0  depilogue.o ABSOLUTE
+    ../fplib/microlib/fpepilogue.c           0x00000000   Number         0  fepilogue.o ABSOLUTE
+    ../fplib/microlib/fpfix.c                0x00000000   Number         0  dfixi.o ABSOLUTE
+    ../fplib/microlib/fpfix.c                0x00000000   Number         0  ffixi.o ABSOLUTE
+    ../fplib/microlib/fpfix.c                0x00000000   Number         0  dfixul.o ABSOLUTE
+    ../fplib/microlib/fpflt.c                0x00000000   Number         0  dflti.o ABSOLUTE
+    ../fplib/microlib/fpmul.c                0x00000000   Number         0  fmul.o ABSOLUTE
+    ../fplib/microlib/fpmul.c                0x00000000   Number         0  dmul.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c 0x00000000   Number         0  stm32f1xx_hal.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c 0x00000000   Number         0  stm32f1xx_hal_cortex.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c 0x00000000   Number         0  stm32f1xx_hal_dma.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c 0x00000000   Number         0  stm32f1xx_hal_exti.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c 0x00000000   Number         0  stm32f1xx_hal_flash.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c 0x00000000   Number         0  stm32f1xx_hal_flash_ex.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c 0x00000000   Number         0  stm32f1xx_hal_gpio.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c 0x00000000   Number         0  stm32f1xx_hal_gpio_ex.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c 0x00000000   Number         0  stm32f1xx_hal_pwr.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c 0x00000000   Number         0  stm32f1xx_hal_rcc.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c 0x00000000   Number         0  stm32f1xx_hal_rcc_ex.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c 0x00000000   Number         0  stm32f1xx_hal_spi.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c 0x00000000   Number         0  stm32f1xx_hal_tim.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c 0x00000000   Number         0  stm32f1xx_hal_tim_ex.o ABSOLUTE
+    ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c 0x00000000   Number         0  stm32f1xx_hal_uart.o ABSOLUTE
+    ..\Src\gpio.c                            0x00000000   Number         0  gpio.o ABSOLUTE
+    ..\Src\main.c                            0x00000000   Number         0  main.o ABSOLUTE
+    ..\Src\spi.c                             0x00000000   Number         0  spi.o ABSOLUTE
+    ..\Src\stm32f1xx_hal_msp.c               0x00000000   Number         0  stm32f1xx_hal_msp.o ABSOLUTE
+    ..\Src\stm32f1xx_it.c                    0x00000000   Number         0  stm32f1xx_it.o ABSOLUTE
+    ..\Src\system_stm32f1xx.c                0x00000000   Number         0  system_stm32f1xx.o ABSOLUTE
+    ..\Src\usart.c                           0x00000000   Number         0  usart.o ABSOLUTE
+    ..\User\Config\DEV_Config.c              0x00000000   Number         0  dev_config.o ABSOLUTE
+    ..\User\Examples\EPD_2in7_V2_test.c      0x00000000   Number         0  epd_2in7_v2_test.o ABSOLUTE
+    ..\User\Examples\ImageData.c             0x00000000   Number         0  imagedata.o ABSOLUTE
+    ..\User\Fonts\font12.c                   0x00000000   Number         0  font12.o ABSOLUTE
+    ..\User\Fonts\font12CN.c                 0x00000000   Number         0  font12cn.o ABSOLUTE
+    ..\User\Fonts\font16.c                   0x00000000   Number         0  font16.o ABSOLUTE
+    ..\User\Fonts\font20.c                   0x00000000   Number         0  font20.o ABSOLUTE
+    ..\User\Fonts\font24.c                   0x00000000   Number         0  font24.o ABSOLUTE
+    ..\User\Fonts\font24CN.c                 0x00000000   Number         0  font24cn.o ABSOLUTE
+    ..\User\Fonts\font8.c                    0x00000000   Number         0  font8.o ABSOLUTE
+    ..\User\GUI\GUI_Paint.c                  0x00000000   Number         0  gui_paint.o ABSOLUTE
+    ..\User\e-Paper\EPD_2in7_V2.c            0x00000000   Number         0  epd_2in7_v2.o ABSOLUTE
+    ..\\User\\Config\\DEV_Config.c           0x00000000   Number         0  dev_config.o ABSOLUTE
+    ..\\User\\Examples\\EPD_2in7_V2_test.c   0x00000000   Number         0  epd_2in7_v2_test.o ABSOLUTE
+    ..\\User\\GUI\\GUI_Paint.c               0x00000000   Number         0  gui_paint.o ABSOLUTE
+    ..\\User\\e-Paper\\EPD_2in7_V2.c         0x00000000   Number         0  epd_2in7_v2.o ABSOLUTE
+    cdrcmple.s                               0x00000000   Number         0  cdrcmple.o ABSOLUTE
+    dc.s                                     0x00000000   Number         0  dc.o ABSOLUTE
+    handlers.s                               0x00000000   Number         0  handlers.o ABSOLUTE
+    init.s                                   0x00000000   Number         0  init.o ABSOLUTE
+    startup_stm32f103xe.s                    0x00000000   Number         0  startup_stm32f103xe.o ABSOLUTE
+    RESET                                    0x08000000   Section      304  startup_stm32f103xe.o(RESET)
+    .ARM.Collect$$$$00000000                 0x08000130   Section        0  entry.o(.ARM.Collect$$$$00000000)
+    .ARM.Collect$$$$00000001                 0x08000130   Section        4  entry2.o(.ARM.Collect$$$$00000001)
+    .ARM.Collect$$$$00000004                 0x08000134   Section        4  entry5.o(.ARM.Collect$$$$00000004)
+    .ARM.Collect$$$$00000008                 0x08000138   Section        0  entry7b.o(.ARM.Collect$$$$00000008)
+    .ARM.Collect$$$$0000000A                 0x08000138   Section        0  entry8b.o(.ARM.Collect$$$$0000000A)
+    .ARM.Collect$$$$0000000B                 0x08000138   Section        8  entry9a.o(.ARM.Collect$$$$0000000B)
+    .ARM.Collect$$$$0000000D                 0x08000140   Section        0  entry10a.o(.ARM.Collect$$$$0000000D)
+    .ARM.Collect$$$$0000000F                 0x08000140   Section        0  entry11a.o(.ARM.Collect$$$$0000000F)
+    .ARM.Collect$$$$00002712                 0x08000140   Section        4  entry2.o(.ARM.Collect$$$$00002712)
+    __lit__00000000                          0x08000140   Data           4  entry2.o(.ARM.Collect$$$$00002712)
+    .text                                    0x08000144   Section       36  startup_stm32f103xe.o(.text)
+    .text                                    0x08000168   Section        0  main.o(.text)
+    .text                                    0x08000200   Section        0  gpio.o(.text)
+    .text                                    0x08000260   Section        0  spi.o(.text)
+    .text                                    0x0800031c   Section        0  usart.o(.text)
+    .text                                    0x080003f4   Section        0  stm32f1xx_it.o(.text)
+    .text                                    0x08000424   Section        0  stm32f1xx_hal_msp.o(.text)
+    .text                                    0x08000460   Section        0  epd_2in7_v2_test.o(.text)
+    .text                                    0x08000cac   Section        0  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Reset                        0x08000cad   Thumb Code    56  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_SendCommand                  0x08001237   Thumb Code    46  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_SendData                     0x08001265   Thumb Code    46  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_ReadBusy                     0x08001293   Thumb Code    38  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_TurnOnDisplay                0x080012b9   Thumb Code    26  epd_2in7_v2.o(.text)
+    .text                                    0x08001310   Section        0  dev_config.o(.text)
+    .text                                    0x08001378   Section        0  gui_paint.o(.text)
+    .text                                    0x0800232c   Section        0  system_stm32f1xx.o(.text)
+    .text                                    0x080023f0   Section        0  stm32f1xx_hal_spi.o(.text)
+    SPI_WaitFlagStateUntilTimeout            0x080024d9   Thumb Code   210  stm32f1xx_hal_spi.o(.text)
+    SPI_EndRxTxTransaction                   0x080025ab   Thumb Code    36  stm32f1xx_hal_spi.o(.text)
+    SPI_EndRxTransaction                     0x0800276b   Thumb Code   112  stm32f1xx_hal_spi.o(.text)
+    SPI_CloseTx_ISR                          0x08002b4b   Thumb Code   130  stm32f1xx_hal_spi.o(.text)
+    SPI_TxISR_8BIT                           0x08002bcd   Thumb Code    30  stm32f1xx_hal_spi.o(.text)
+    SPI_TxISR_16BIT                          0x08002beb   Thumb Code    30  stm32f1xx_hal_spi.o(.text)
+    SPI_CloseRx_ISR                          0x08002cad   Thumb Code    76  stm32f1xx_hal_spi.o(.text)
+    SPI_RxISR_8BIT                           0x08002cf9   Thumb Code    30  stm32f1xx_hal_spi.o(.text)
+    SPI_RxISR_16BIT                          0x08002d17   Thumb Code    30  stm32f1xx_hal_spi.o(.text)
+    SPI_CloseRxTx_ISR                        0x08002d37   Thumb Code   158  stm32f1xx_hal_spi.o(.text)
+    SPI_2linesTxISR_8BIT                     0x08002dd5   Thumb Code    46  stm32f1xx_hal_spi.o(.text)
+    SPI_2linesRxISR_8BIT                     0x08002e03   Thumb Code    46  stm32f1xx_hal_spi.o(.text)
+    SPI_2linesTxISR_16BIT                    0x08002e31   Thumb Code    46  stm32f1xx_hal_spi.o(.text)
+    SPI_2linesRxISR_16BIT                    0x08002e5f   Thumb Code    46  stm32f1xx_hal_spi.o(.text)
+    SPI_DMAError                             0x08002ff9   Thumb Code    34  stm32f1xx_hal_spi.o(.text)
+    SPI_DMATransmitCplt                      0x0800301b   Thumb Code   102  stm32f1xx_hal_spi.o(.text)
+    SPI_DMAHalfTransmitCplt                  0x08003083   Thumb Code    10  stm32f1xx_hal_spi.o(.text)
+    SPI_DMAReceiveCplt                       0x0800315d   Thumb Code   110  stm32f1xx_hal_spi.o(.text)
+    SPI_DMAHalfReceiveCplt                   0x080031cd   Thumb Code    10  stm32f1xx_hal_spi.o(.text)
+    SPI_DMATransmitReceiveCplt               0x080031d7   Thumb Code    92  stm32f1xx_hal_spi.o(.text)
+    SPI_DMAHalfTransmitReceiveCplt           0x08003235   Thumb Code    10  stm32f1xx_hal_spi.o(.text)
+    SPI_AbortRx_ISR                          0x08003483   Thumb Code    82  stm32f1xx_hal_spi.o(.text)
+    SPI_AbortTx_ISR                          0x080034d5   Thumb Code    28  stm32f1xx_hal_spi.o(.text)
+    SPI_DMARxAbortCallback                   0x08003615   Thumb Code    98  stm32f1xx_hal_spi.o(.text)
+    SPI_DMATxAbortCallback                   0x08003677   Thumb Code   114  stm32f1xx_hal_spi.o(.text)
+    SPI_DMAAbortOnError                      0x080038c1   Thumb Code    16  stm32f1xx_hal_spi.o(.text)
+    .text                                    0x080039d8   Section        0  stm32f1xx_hal.o(.text)
+    .text                                    0x08003b60   Section        0  stm32f1xx_hal_rcc.o(.text)
+    RCC_Delay                                0x08003c5b   Thumb Code    32  stm32f1xx_hal_rcc.o(.text)
+    .text                                    0x08004428   Section        0  stm32f1xx_hal_gpio.o(.text)
+    .text                                    0x080047fc   Section        0  stm32f1xx_hal_dma.o(.text)
+    DMA_SetConfig                            0x0800490b   Thumb Code    56  stm32f1xx_hal_dma.o(.text)
+    .text                                    0x08005444   Section        0  stm32f1xx_hal_cortex.o(.text)
+    .text                                    0x08005668   Section        0  stm32f1xx_hal_uart.o(.text)
+    UART_SetConfig                           0x08005669   Thumb Code   194  stm32f1xx_hal_uart.o(.text)
+    UART_WaitOnFlagUntilTimeout              0x08005949   Thumb Code   120  stm32f1xx_hal_uart.o(.text)
+    UART_EndRxTransfer                       0x08005bf9   Thumb Code    28  stm32f1xx_hal_uart.o(.text)
+    UART_EndTxTransfer                       0x08005c15   Thumb Code    18  stm32f1xx_hal_uart.o(.text)
+    UART_DMAError                            0x08005c27   Thumb Code    74  stm32f1xx_hal_uart.o(.text)
+    UART_DMATxHalfCplt                       0x08005c73   Thumb Code    10  stm32f1xx_hal_uart.o(.text)
+    UART_DMATransmitCplt                     0x08005c7f   Thumb Code    48  stm32f1xx_hal_uart.o(.text)
+    UART_DMARxHalfCplt                       0x08005d3b   Thumb Code    10  stm32f1xx_hal_uart.o(.text)
+    UART_DMAReceiveCplt                      0x08005d47   Thumb Code    62  stm32f1xx_hal_uart.o(.text)
+    UART_DMARxAbortCallback                  0x0800607b   Thumb Code    44  stm32f1xx_hal_uart.o(.text)
+    UART_DMATxAbortCallback                  0x080060a7   Thumb Code    66  stm32f1xx_hal_uart.o(.text)
+    UART_DMATxOnlyAbortCallback              0x0800619d   Thumb Code    20  stm32f1xx_hal_uart.o(.text)
+    UART_DMARxOnlyAbortCallback              0x08006211   Thumb Code    20  stm32f1xx_hal_uart.o(.text)
+    UART_EndTransmit_IT                      0x0800628d   Thumb Code    26  stm32f1xx_hal_uart.o(.text)
+    UART_Transmit_IT                         0x080062a7   Thumb Code    94  stm32f1xx_hal_uart.o(.text)
+    UART_DMAAbortOnError                     0x08006305   Thumb Code    16  stm32f1xx_hal_uart.o(.text)
+    UART_Receive_IT                          0x08006315   Thumb Code   146  stm32f1xx_hal_uart.o(.text)
+    .text                                    0x08006604   Section        0  llushr.o(.text)
+    .text                                    0x08006624   Section        0  memseta.o(.text)
+    .text                                    0x08006648   Section        0  fmul.o(.text)
+    .text                                    0x080066ac   Section        0  dadd.o(.text)
+    .text                                    0x080067fa   Section        0  dflti.o(.text)
+    .text                                    0x0800681c   Section        0  ffixi.o(.text)
+    .text                                    0x0800684e   Section        0  dfixi.o(.text)
+    .text                                    0x0800688c   Section        0  d2f.o(.text)
+    .text                                    0x080068c4   Section        0  uidiv.o(.text)
+    .text                                    0x080068f0   Section        0  llshl.o(.text)
+    .text                                    0x0800690e   Section        0  llsshr.o(.text)
+    .text                                    0x08006932   Section        0  fepilogue.o(.text)
+    .text                                    0x08006932   Section        0  iusefp.o(.text)
+    .text                                    0x080069a0   Section        0  depilogue.o(.text)
+    .text                                    0x08006a5c   Section       36  init.o(.text)
+    i.__0printf$3                            0x08006a80   Section        0  printf3.o(i.__0printf$3)
+    i.__scatterload_copy                     0x08006aa0   Section       14  handlers.o(i.__scatterload_copy)
+    i.__scatterload_null                     0x08006aae   Section        2  handlers.o(i.__scatterload_null)
+    i.__scatterload_zeroinit                 0x08006ab0   Section       14  handlers.o(i.__scatterload_zeroinit)
+    i._printf_core                           0x08006ac0   Section        0  printf3.o(i._printf_core)
+    _printf_core                             0x08006ac1   Thumb Code   436  printf3.o(i._printf_core)
+    i.free                                   0x08006c78   Section        0  malloc.o(i.free)
+    i.malloc                                 0x08006cc8   Section        0  malloc.o(i.malloc)
+    .constdata                               0x08006d34   Section     5808  imagedata.o(.constdata)
+    .constdata                               0x080083e4   Section    11616  imagedata.o(.constdata)
+    .constdata                               0x0800b144   Section     1140  font12.o(.constdata)
+    .constdata                               0x0800b5b8   Section     1494  font12cn.o(.constdata)
+    .constdata                               0x0800bb8e   Section     3040  font16.o(.constdata)
+    .constdata                               0x0800c76e   Section     3800  font20.o(.constdata)
+    .constdata                               0x0800d646   Section     4482  font24cn.o(.constdata)
+    .constdata                               0x0800e7c8   Section       16  system_stm32f1xx.o(.constdata)
+    .constdata                               0x0800e7d8   Section        8  system_stm32f1xx.o(.constdata)
+    .conststring                             0x0800e7e0   Section      233  gui_paint.o(.conststring)
+    .data                                    0x20000000   Section      159  epd_2in7_v2.o(.data)
+    .data                                    0x200000a0   Section        8  font12.o(.data)
+    .data                                    0x200000a8   Section       12  font12cn.o(.data)
+    .data                                    0x200000b4   Section        8  font16.o(.data)
+    .data                                    0x200000bc   Section        8  font20.o(.data)
+    .data                                    0x200000c4   Section       12  font24cn.o(.data)
+    .data                                    0x200000d0   Section        4  system_stm32f1xx.o(.data)
+    .data                                    0x200000d4   Section       12  stm32f1xx_hal.o(.data)
+    .data                                    0x200000e0   Section        4  stdout.o(.data)
+    .data                                    0x200000e4   Section        4  mvars.o(.data)
+    .data                                    0x200000e8   Section        4  mvars.o(.data)
+    .bss                                     0x200000ec   Section       88  spi.o(.bss)
+    .bss                                     0x20000144   Section       64  usart.o(.bss)
+    .bss                                     0x20000184   Section       24  gui_paint.o(.bss)
+    HEAP                                     0x200001a0   Section    49152  startup_stm32f103xe.o(HEAP)
+    STACK                                    0x2000c1a0   Section     4096  startup_stm32f103xe.o(STACK)
+
+    Global Symbols
+
+    Symbol Name                              Value     Ov Type        Size  Object(Section)
+
+    BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000   Number         0  anon$$obj.o ABSOLUTE
+    __ARM_use_no_argv                        0x00000000   Number         0  main.o ABSOLUTE
+    _printf_a                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_c                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_charcount                        0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_d                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_e                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_f                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_flags                            0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_fp_dec                           0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_fp_hex                           0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_g                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_i                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_int_dec                          0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_l                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_lc                               0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_ll                               0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_lld                              0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_lli                              0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_llo                              0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_llu                              0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_llx                              0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_longlong_dec                     0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_longlong_hex                     0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_longlong_oct                     0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_ls                               0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_mbtowc                           0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_n                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_o                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_p                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_percent                          0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_pre_padding                      0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_return_value                     0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_s                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_sizespec                         0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_str                              0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_truncate_signed                  0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_truncate_unsigned                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_u                                0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_wc                               0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_wctomb                           0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_widthprec                        0x00000000   Number         0  stubs.o ABSOLUTE
+    _printf_x                                0x00000000   Number         0  stubs.o ABSOLUTE
+    __cpp_initialize__aeabi_                  - Undefined Weak Reference
+    __cxa_finalize                            - Undefined Weak Reference
+    __decompress                              - Undefined Weak Reference
+    _clock_init                               - Undefined Weak Reference
+    _microlib_exit                            - Undefined Weak Reference
+    __Vectors_Size                           0x00000130   Number         0  startup_stm32f103xe.o ABSOLUTE
+    __Vectors                                0x08000000   Data           4  startup_stm32f103xe.o(RESET)
+    __Vectors_End                            0x08000130   Data           0  startup_stm32f103xe.o(RESET)
+    __main                                   0x08000131   Thumb Code     0  entry.o(.ARM.Collect$$$$00000000)
+    _main_stk                                0x08000131   Thumb Code     0  entry2.o(.ARM.Collect$$$$00000001)
+    _main_scatterload                        0x08000135   Thumb Code     0  entry5.o(.ARM.Collect$$$$00000004)
+    __main_after_scatterload                 0x08000139   Thumb Code     0  entry5.o(.ARM.Collect$$$$00000004)
+    _main_clock                              0x08000139   Thumb Code     0  entry7b.o(.ARM.Collect$$$$00000008)
+    _main_cpp_init                           0x08000139   Thumb Code     0  entry8b.o(.ARM.Collect$$$$0000000A)
+    _main_init                               0x08000139   Thumb Code     0  entry9a.o(.ARM.Collect$$$$0000000B)
+    __rt_final_cpp                           0x08000141   Thumb Code     0  entry10a.o(.ARM.Collect$$$$0000000D)
+    __rt_final_exit                          0x08000141   Thumb Code     0  entry11a.o(.ARM.Collect$$$$0000000F)
+    Reset_Handler                            0x08000145   Thumb Code     8  startup_stm32f103xe.o(.text)
+    ADC1_2_IRQHandler                        0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    ADC3_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    CAN1_RX1_IRQHandler                      0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    CAN1_SCE_IRQHandler                      0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA1_Channel1_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA1_Channel2_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA1_Channel3_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA1_Channel4_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA1_Channel5_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA1_Channel6_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA1_Channel7_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA2_Channel1_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA2_Channel2_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA2_Channel3_IRQHandler                 0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    DMA2_Channel4_5_IRQHandler               0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    EXTI0_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    EXTI15_10_IRQHandler                     0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    EXTI1_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    EXTI2_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    EXTI3_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    EXTI4_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    EXTI9_5_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    FLASH_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    FSMC_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    I2C1_ER_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    I2C1_EV_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    I2C2_ER_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    I2C2_EV_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    PVD_IRQHandler                           0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    RCC_IRQHandler                           0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    RTC_Alarm_IRQHandler                     0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    RTC_IRQHandler                           0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    SDIO_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    SPI1_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    SPI2_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    SPI3_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TAMPER_IRQHandler                        0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM1_BRK_IRQHandler                      0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM1_CC_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM1_TRG_COM_IRQHandler                  0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM1_UP_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM2_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM3_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM4_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM5_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM6_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM7_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM8_BRK_IRQHandler                      0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM8_CC_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM8_TRG_COM_IRQHandler                  0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    TIM8_UP_IRQHandler                       0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    UART4_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    UART5_IRQHandler                         0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    USART1_IRQHandler                        0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    USART2_IRQHandler                        0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    USART3_IRQHandler                        0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    USBWakeUp_IRQHandler                     0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    USB_HP_CAN1_TX_IRQHandler                0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    USB_LP_CAN1_RX0_IRQHandler               0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    WWDG_IRQHandler                          0x0800015f   Thumb Code     0  startup_stm32f103xe.o(.text)
+    Error_Handler                            0x08000169   Thumb Code     8  main.o(.text)
+    SystemClock_Config                       0x08000171   Thumb Code    88  main.o(.text)
+    main                                     0x080001c9   Thumb Code    36  main.o(.text)
+    MX_GPIO_Init                             0x08000201   Thumb Code    86  gpio.o(.text)
+    MX_SPI1_Init                             0x08000261   Thumb Code    62  spi.o(.text)
+    HAL_SPI_MspInit                          0x0800029f   Thumb Code    80  spi.o(.text)
+    HAL_SPI_MspDeInit                        0x080002ef   Thumb Code    28  spi.o(.text)
+    MX_USART1_UART_Init                      0x0800031d   Thumb Code    48  usart.o(.text)
+    HAL_UART_MspInit                         0x0800034d   Thumb Code   100  usart.o(.text)
+    HAL_UART_MspDeInit                       0x080003b1   Thumb Code    30  usart.o(.text)
+    fputc                                    0x080003cf   Thumb Code    20  usart.o(.text)
+    NMI_Handler                              0x080003f5   Thumb Code     2  stm32f1xx_it.o(.text)
+    HardFault_Handler                        0x080003f7   Thumb Code     8  stm32f1xx_it.o(.text)
+    MemManage_Handler                        0x080003ff   Thumb Code     2  stm32f1xx_it.o(.text)
+    BusFault_Handler                         0x08000401   Thumb Code     2  stm32f1xx_it.o(.text)
+    UsageFault_Handler                       0x08000403   Thumb Code     2  stm32f1xx_it.o(.text)
+    SVC_Handler                              0x08000405   Thumb Code     2  stm32f1xx_it.o(.text)
+    DebugMon_Handler                         0x08000407   Thumb Code     2  stm32f1xx_it.o(.text)
+    PendSV_Handler                           0x08000409   Thumb Code     2  stm32f1xx_it.o(.text)
+    SysTick_Handler                          0x0800040b   Thumb Code     4  stm32f1xx_it.o(.text)
+    HAL_MspInit                              0x08000425   Thumb Code    52  stm32f1xx_hal_msp.o(.text)
+    EPD_test                                 0x08000461   Thumb Code  1898  epd_2in7_v2_test.o(.text)
+    EPD_2IN7_V2_Init                         0x08000ce5   Thumb Code    84  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Init_Fast                    0x08000d39   Thumb Code   158  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Init_4GRAY                   0x08000dd7   Thumb Code   266  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Clear                        0x08000ee1   Thumb Code    50  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Display                      0x08000f13   Thumb Code    60  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Display_Fast                 0x08000f4f   Thumb Code    78  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Display_Base                 0x08000f9d   Thumb Code   100  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Display_Base_color           0x08001001   Thumb Code    80  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Display_Partial              0x08001051   Thumb Code   226  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_4GrayDisplay                 0x08001133   Thumb Code   242  epd_2in7_v2.o(.text)
+    EPD_2IN7_V2_Sleep                        0x08001225   Thumb Code    18  epd_2in7_v2.o(.text)
+    DEV_SPI_WriteByte                        0x08001311   Thumb Code    18  dev_config.o(.text)
+    DEV_Module_Init                          0x08001323   Thumb Code    38  dev_config.o(.text)
+    DEV_Module_Exit                          0x08001349   Thumb Code    38  dev_config.o(.text)
+    Paint_NewImage                           0x08001379   Thumb Code    56  gui_paint.o(.text)
+    Paint_SelectImage                        0x080013b1   Thumb Code     6  gui_paint.o(.text)
+    Paint_SetRotate                          0x080013b7   Thumb Code    44  gui_paint.o(.text)
+    Paint_SetScale                           0x080013e3   Thumb Code    80  gui_paint.o(.text)
+    Paint_SetMirroring                       0x08001433   Thumb Code    62  gui_paint.o(.text)
+    Paint_SetPixel                           0x08001471   Thumb Code   238  gui_paint.o(.text)
+    Paint_Clear                              0x0800155f   Thumb Code   156  gui_paint.o(.text)
+    Paint_ClearWindows                       0x080015fb   Thumb Code    52  gui_paint.o(.text)
+    Paint_DrawPoint                          0x0800162f   Thumb Code   180  gui_paint.o(.text)
+    Paint_DrawLine                           0x080016e3   Thumb Code   662  gui_paint.o(.text)
+    Paint_DrawRectangle                      0x08001979   Thumb Code   170  gui_paint.o(.text)
+    Paint_DrawCircle                         0x08001a23   Thumb Code   528  gui_paint.o(.text)
+    Paint_DrawChar                           0x08001c33   Thumb Code   172  gui_paint.o(.text)
+    Paint_DrawString_EN                      0x08001cdf   Thumb Code   116  gui_paint.o(.text)
+    Paint_DrawString_CN                      0x08001d53   Thumb Code   518  gui_paint.o(.text)
+    Paint_DrawNum                            0x08001f59   Thumb Code   140  gui_paint.o(.text)
+    Paint_DrawNumDecimals                    0x08001fe5   Thumb Code   258  gui_paint.o(.text)
+    Paint_DrawTime                           0x080020e7   Thumb Code   282  gui_paint.o(.text)
+    Paint_DrawBitMap                         0x08002201   Thumb Code    44  gui_paint.o(.text)
+    Paint_DrawBitMap_Paste                   0x0800222d   Thumb Code   198  gui_paint.o(.text)
+    Paint_DrawBitMap_Block                   0x080022f3   Thumb Code    54  gui_paint.o(.text)
+    SystemInit                               0x0800232d   Thumb Code    60  system_stm32f1xx.o(.text)
+    SystemCoreClockUpdate                    0x08002369   Thumb Code   108  system_stm32f1xx.o(.text)
+    HAL_SPI_Init                             0x080023f3   Thumb Code   180  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_DeInit                           0x080024a9   Thumb Code    48  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Transmit                         0x080025cf   Thumb Code   412  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_TransmitReceive                  0x080027db   Thumb Code   510  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Receive                          0x080029d9   Thumb Code   366  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_TxCpltCallback                   0x08002b47   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_ErrorCallback                    0x08002b49   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Transmit_IT                      0x08002c09   Thumb Code   162  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_RxCpltCallback                   0x08002cab   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_TxRxCpltCallback                 0x08002d35   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_TransmitReceive_IT               0x08002e8d   Thumb Code   188  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Receive_IT                       0x08002f49   Thumb Code   176  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_TxHalfCpltCallback               0x08003081   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Transmit_DMA                     0x0800308d   Thumb Code   208  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_RxHalfCpltCallback               0x080031cb   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_TxRxHalfCpltCallback             0x08003233   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_TransmitReceive_DMA              0x0800323f   Thumb Code   302  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Receive_DMA                      0x0800336d   Thumb Code   278  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Abort                            0x080034f1   Thumb Code   290  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_AbortCpltCallback                0x08003613   Thumb Code     2  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_Abort_IT                         0x080036e9   Thumb Code   328  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_DMAPause                         0x08003831   Thumb Code    38  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_DMAResume                        0x08003857   Thumb Code    38  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_DMAStop                          0x0800387d   Thumb Code    68  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_IRQHandler                       0x080038d1   Thumb Code   250  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_GetState                         0x080039cb   Thumb Code     6  stm32f1xx_hal_spi.o(.text)
+    HAL_SPI_GetError                         0x080039d1   Thumb Code     4  stm32f1xx_hal_spi.o(.text)
+    HAL_InitTick                             0x080039db   Thumb Code    58  stm32f1xx_hal.o(.text)
+    HAL_Init                                 0x08003a15   Thumb Code    32  stm32f1xx_hal.o(.text)
+    HAL_MspDeInit                            0x08003a35   Thumb Code     2  stm32f1xx_hal.o(.text)
+    HAL_DeInit                               0x08003a37   Thumb Code    26  stm32f1xx_hal.o(.text)
+    HAL_IncTick                              0x08003a51   Thumb Code    12  stm32f1xx_hal.o(.text)
+    HAL_GetTick                              0x08003a5d   Thumb Code     6  stm32f1xx_hal.o(.text)
+    HAL_GetTickPrio                          0x08003a63   Thumb Code     6  stm32f1xx_hal.o(.text)
+    HAL_SetTickFreq                          0x08003a69   Thumb Code    30  stm32f1xx_hal.o(.text)
+    HAL_GetTickFreq                          0x08003a87   Thumb Code     6  stm32f1xx_hal.o(.text)
+    HAL_Delay                                0x08003a8d   Thumb Code    34  stm32f1xx_hal.o(.text)
+    HAL_SuspendTick                          0x08003aaf   Thumb Code    14  stm32f1xx_hal.o(.text)
+    HAL_ResumeTick                           0x08003abd   Thumb Code    14  stm32f1xx_hal.o(.text)
+    HAL_GetHalVersion                        0x08003acb   Thumb Code     4  stm32f1xx_hal.o(.text)
+    HAL_GetREVID                             0x08003acf   Thumb Code     8  stm32f1xx_hal.o(.text)
+    HAL_GetDEVID                             0x08003ad7   Thumb Code    10  stm32f1xx_hal.o(.text)
+    HAL_GetUIDw0                             0x08003ae1   Thumb Code     6  stm32f1xx_hal.o(.text)
+    HAL_GetUIDw1                             0x08003ae7   Thumb Code     6  stm32f1xx_hal.o(.text)
+    HAL_GetUIDw2                             0x08003aed   Thumb Code     6  stm32f1xx_hal.o(.text)
+    HAL_DBGMCU_EnableDBGSleepMode            0x08003af3   Thumb Code    12  stm32f1xx_hal.o(.text)
+    HAL_DBGMCU_DisableDBGSleepMode           0x08003aff   Thumb Code    12  stm32f1xx_hal.o(.text)
+    HAL_DBGMCU_EnableDBGStopMode             0x08003b0b   Thumb Code    12  stm32f1xx_hal.o(.text)
+    HAL_DBGMCU_DisableDBGStopMode            0x08003b17   Thumb Code    12  stm32f1xx_hal.o(.text)
+    HAL_DBGMCU_EnableDBGStandbyMode          0x08003b23   Thumb Code    12  stm32f1xx_hal.o(.text)
+    HAL_DBGMCU_DisableDBGStandbyMode         0x08003b2f   Thumb Code    12  stm32f1xx_hal.o(.text)
+    HAL_RCC_DeInit                           0x08003b61   Thumb Code   250  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_OscConfig                        0x08003c7b   Thumb Code  1080  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_GetSysClockFreq                  0x080040b3   Thumb Code    88  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_ClockConfig                      0x0800410b   Thumb Code   364  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_MCOConfig                        0x08004277   Thumb Code    64  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_EnableCSS                        0x080042b7   Thumb Code     8  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_DisableCSS                       0x080042bf   Thumb Code     8  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_GetHCLKFreq                      0x080042c7   Thumb Code     6  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_GetPCLK1Freq                     0x080042cd   Thumb Code    22  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_GetPCLK2Freq                     0x080042e3   Thumb Code    22  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_GetOscConfig                     0x080042f9   Thumb Code   168  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_GetClockConfig                   0x080043a1   Thumb Code    52  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_CSSCallback                      0x080043d5   Thumb Code     2  stm32f1xx_hal_rcc.o(.text)
+    HAL_RCC_NMI_IRQHandler                   0x080043d7   Thumb Code    22  stm32f1xx_hal_rcc.o(.text)
+    HAL_GPIO_Init                            0x08004429   Thumb Code   524  stm32f1xx_hal_gpio.o(.text)
+    HAL_GPIO_DeInit                          0x08004635   Thumb Code   320  stm32f1xx_hal_gpio.o(.text)
+    HAL_GPIO_ReadPin                         0x08004775   Thumb Code    14  stm32f1xx_hal_gpio.o(.text)
+    HAL_GPIO_WritePin                        0x08004783   Thumb Code    14  stm32f1xx_hal_gpio.o(.text)
+    HAL_GPIO_TogglePin                       0x08004791   Thumb Code    16  stm32f1xx_hal_gpio.o(.text)
+    HAL_GPIO_LockPin                         0x080047a1   Thumb Code    42  stm32f1xx_hal_gpio.o(.text)
+    HAL_GPIO_EXTI_Callback                   0x080047cb   Thumb Code     2  stm32f1xx_hal_gpio.o(.text)
+    HAL_GPIO_EXTI_IRQHandler                 0x080047cd   Thumb Code    18  stm32f1xx_hal_gpio.o(.text)
+    HAL_DMA_Init                             0x080047fd   Thumb Code   144  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_DeInit                           0x0800488d   Thumb Code   126  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_Start                            0x08004943   Thumb Code    88  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_Start_IT                         0x0800499b   Thumb Code   124  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_Abort                            0x08004a17   Thumb Code    72  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_Abort_IT                         0x08004a5f   Thumb Code   318  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_PollForTransfer                  0x08004b9d   Thumb Code  1316  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_IRQHandler                       0x080050c1   Thumb Code   672  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_RegisterCallback                 0x08005361   Thumb Code    80  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_UnRegisterCallback               0x080053b1   Thumb Code    86  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_GetState                         0x08005407   Thumb Code     6  stm32f1xx_hal_dma.o(.text)
+    HAL_DMA_GetError                         0x0800540d   Thumb Code     4  stm32f1xx_hal_dma.o(.text)
+    HAL_NVIC_SetPriorityGrouping             0x08005445   Thumb Code    30  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_SetPriority                     0x08005463   Thumb Code    98  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_EnableIRQ                       0x080054c5   Thumb Code    28  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_DisableIRQ                      0x080054e1   Thumb Code    36  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_SystemReset                     0x08005505   Thumb Code    26  stm32f1xx_hal_cortex.o(.text)
+    HAL_SYSTICK_Config                       0x0800551f   Thumb Code    36  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_GetPriorityGrouping             0x08005543   Thumb Code    10  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_GetPriority                     0x0800554d   Thumb Code    94  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_SetPendingIRQ                   0x080055ab   Thumb Code    28  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_GetPendingIRQ                   0x080055c7   Thumb Code    42  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_ClearPendingIRQ                 0x080055f1   Thumb Code    28  stm32f1xx_hal_cortex.o(.text)
+    HAL_NVIC_GetActive                       0x0800560d   Thumb Code    42  stm32f1xx_hal_cortex.o(.text)
+    HAL_SYSTICK_CLKSourceConfig              0x08005637   Thumb Code    28  stm32f1xx_hal_cortex.o(.text)
+    HAL_SYSTICK_Callback                     0x08005653   Thumb Code     2  stm32f1xx_hal_cortex.o(.text)
+    HAL_SYSTICK_IRQHandler                   0x08005655   Thumb Code     8  stm32f1xx_hal_cortex.o(.text)
+    HAL_UART_Init                            0x0800572d   Thumb Code   100  stm32f1xx_hal_uart.o(.text)
+    HAL_HalfDuplex_Init                      0x08005791   Thumb Code   110  stm32f1xx_hal_uart.o(.text)
+    HAL_LIN_Init                             0x080057ff   Thumb Code   130  stm32f1xx_hal_uart.o(.text)
+    HAL_MultiProcessor_Init                  0x08005881   Thumb Code   146  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_DeInit                          0x08005915   Thumb Code    52  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Transmit                        0x080059c1   Thumb Code   202  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Receive                         0x08005a8b   Thumb Code   212  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Transmit_IT                     0x08005b5f   Thumb Code    66  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Receive_IT                      0x08005ba1   Thumb Code    86  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_ErrorCallback                   0x08005bf7   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_TxHalfCpltCallback              0x08005c71   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_TxCpltCallback                  0x08005c7d   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Transmit_DMA                    0x08005caf   Thumb Code   138  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_RxHalfCpltCallback              0x08005d39   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_RxCpltCallback                  0x08005d45   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Receive_DMA                     0x08005d85   Thumb Code   150  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_DMAPause                        0x08005e1b   Thumb Code   102  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_DMAResume                       0x08005e81   Thumb Code    98  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_DMAStop                         0x08005ee3   Thumb Code    88  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Abort                           0x08005f3b   Thumb Code   148  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_AbortTransmit                   0x08005fcf   Thumb Code    80  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_AbortReceive                    0x0800601f   Thumb Code    90  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_AbortCpltCallback               0x08006079   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_Abort_IT                        0x080060e9   Thumb Code   178  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_AbortTransmitCpltCallback       0x0800619b   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_AbortTransmit_IT                0x080061b1   Thumb Code    94  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_AbortReceiveCpltCallback        0x0800620f   Thumb Code     2  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_AbortReceive_IT                 0x08006225   Thumb Code   104  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_IRQHandler                      0x080063a7   Thumb Code   312  stm32f1xx_hal_uart.o(.text)
+    HAL_LIN_SendBreak                        0x080064df   Thumb Code    70  stm32f1xx_hal_uart.o(.text)
+    HAL_MultiProcessor_EnterMuteMode         0x08006525   Thumb Code    50  stm32f1xx_hal_uart.o(.text)
+    HAL_MultiProcessor_ExitMuteMode          0x08006557   Thumb Code    50  stm32f1xx_hal_uart.o(.text)
+    HAL_HalfDuplex_EnableTransmitter         0x08006589   Thumb Code    54  stm32f1xx_hal_uart.o(.text)
+    HAL_HalfDuplex_EnableReceiver            0x080065bf   Thumb Code    54  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_GetState                        0x080065f5   Thumb Code    12  stm32f1xx_hal_uart.o(.text)
+    HAL_UART_GetError                        0x08006601   Thumb Code     4  stm32f1xx_hal_uart.o(.text)
+    __aeabi_llsr                             0x08006605   Thumb Code    32  llushr.o(.text)
+    _ll_ushift_r                             0x08006605   Thumb Code     0  llushr.o(.text)
+    __aeabi_memset                           0x08006625   Thumb Code    14  memseta.o(.text)
+    __aeabi_memset4                          0x08006625   Thumb Code     0  memseta.o(.text)
+    __aeabi_memset8                          0x08006625   Thumb Code     0  memseta.o(.text)
+    __aeabi_memclr                           0x08006633   Thumb Code     4  memseta.o(.text)
+    __aeabi_memclr4                          0x08006633   Thumb Code     0  memseta.o(.text)
+    __aeabi_memclr8                          0x08006633   Thumb Code     0  memseta.o(.text)
+    _memset$wrapper                          0x08006637   Thumb Code    18  memseta.o(.text)
+    __aeabi_fmul                             0x08006649   Thumb Code   100  fmul.o(.text)
+    __aeabi_dadd                             0x080066ad   Thumb Code   322  dadd.o(.text)
+    __aeabi_dsub                             0x080067ef   Thumb Code     6  dadd.o(.text)
+    __aeabi_drsub                            0x080067f5   Thumb Code     6  dadd.o(.text)
+    __aeabi_i2d                              0x080067fb   Thumb Code    34  dflti.o(.text)
+    __aeabi_f2iz                             0x0800681d   Thumb Code    50  ffixi.o(.text)
+    __aeabi_d2iz                             0x0800684f   Thumb Code    62  dfixi.o(.text)
+    __aeabi_d2f                              0x0800688d   Thumb Code    56  d2f.o(.text)
+    __aeabi_uidiv                            0x080068c5   Thumb Code     0  uidiv.o(.text)
+    __aeabi_uidivmod                         0x080068c5   Thumb Code    44  uidiv.o(.text)
+    __aeabi_llsl                             0x080068f1   Thumb Code    30  llshl.o(.text)
+    _ll_shift_l                              0x080068f1   Thumb Code     0  llshl.o(.text)
+    __aeabi_lasr                             0x0800690f   Thumb Code    36  llsshr.o(.text)
+    _ll_sshift_r                             0x0800690f   Thumb Code     0  llsshr.o(.text)
+    __I$use$fp                               0x08006933   Thumb Code     0  iusefp.o(.text)
+    _float_round                             0x08006933   Thumb Code    18  fepilogue.o(.text)
+    _float_epilogue                          0x08006945   Thumb Code    92  fepilogue.o(.text)
+    _double_round                            0x080069a1   Thumb Code    30  depilogue.o(.text)
+    _double_epilogue                         0x080069bf   Thumb Code   156  depilogue.o(.text)
+    __scatterload                            0x08006a5d   Thumb Code    28  init.o(.text)
+    __scatterload_rt2                        0x08006a5d   Thumb Code     0  init.o(.text)
+    __0printf$3                              0x08006a81   Thumb Code    22  printf3.o(i.__0printf$3)
+    __1printf$3                              0x08006a81   Thumb Code     0  printf3.o(i.__0printf$3)
+    __2printf                                0x08006a81   Thumb Code     0  printf3.o(i.__0printf$3)
+    __scatterload_copy                       0x08006aa1   Thumb Code    14  handlers.o(i.__scatterload_copy)
+    __scatterload_null                       0x08006aaf   Thumb Code     2  handlers.o(i.__scatterload_null)
+    __scatterload_zeroinit                   0x08006ab1   Thumb Code    14  handlers.o(i.__scatterload_zeroinit)
+    free                                     0x08006c79   Thumb Code    76  malloc.o(i.free)
+    malloc                                   0x08006cc9   Thumb Code    92  malloc.o(i.malloc)
+    gImage_2in7                              0x08006d34   Data        5808  imagedata.o(.constdata)
+    gImage_2in7_4Gray                        0x080083e4   Data       11616  imagedata.o(.constdata)
+    Font12_Table                             0x0800b144   Data        1140  font12.o(.constdata)
+    Font12CN_Table                           0x0800b5b8   Data        1494  font12cn.o(.constdata)
+    Font16_Table                             0x0800bb8e   Data        3040  font16.o(.constdata)
+    Font20_Table                             0x0800c76e   Data        3800  font20.o(.constdata)
+    Font24CN_Table                           0x0800d646   Data        4482  font24cn.o(.constdata)
+    AHBPrescTable                            0x0800e7c8   Data          16  system_stm32f1xx.o(.constdata)
+    APBPrescTable                            0x0800e7d8   Data           8  system_stm32f1xx.o(.constdata)
+    Region$$Table$$Base                      0x0800e8cc   Number         0  anon$$obj.o(Region$$Table)
+    Region$$Table$$Limit                     0x0800e8ec   Number         0  anon$$obj.o(Region$$Table)
+    LUT_DATA_4Gray                           0x20000000   Data         159  epd_2in7_v2.o(.data)
+    Font12                                   0x200000a0   Data           8  font12.o(.data)
+    Font12CN                                 0x200000a8   Data          12  font12cn.o(.data)
+    Font16                                   0x200000b4   Data           8  font16.o(.data)
+    Font20                                   0x200000bc   Data           8  font20.o(.data)
+    Font24CN                                 0x200000c4   Data          12  font24cn.o(.data)
+    SystemCoreClock                          0x200000d0   Data           4  system_stm32f1xx.o(.data)
+    uwTickFreq                               0x200000d4   Data           1  stm32f1xx_hal.o(.data)
+    uwTickPrio                               0x200000d8   Data           4  stm32f1xx_hal.o(.data)
+    uwTick                                   0x200000dc   Data           4  stm32f1xx_hal.o(.data)
+    __stdout                                 0x200000e0   Data           4  stdout.o(.data)
+    __microlib_freelist                      0x200000e4   Data           4  mvars.o(.data)
+    __microlib_freelist_initialised          0x200000e8   Data           4  mvars.o(.data)
+    hspi1                                    0x200000ec   Data          88  spi.o(.bss)
+    huart1                                   0x20000144   Data          64  usart.o(.bss)
+    Paint                                    0x20000184   Data          24  gui_paint.o(.bss)
+    __heap_base                              0x200001a0   Data           0  startup_stm32f103xe.o(HEAP)
+    __heap_limit                             0x2000c1a0   Data           0  startup_stm32f103xe.o(HEAP)
+    __initial_sp                             0x2000d1a0   Data           0  startup_stm32f103xe.o(STACK)
+
+
+
+==============================================================================
+
+Memory Map of the image
+
+  Image Entry point : 0x08000131
+
+  Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000e9d8, Max: 0x00080000, ABSOLUTE)
+
+    Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000e8ec, Max: 0x00080000, ABSOLUTE)
+
+    Exec Addr    Load Addr    Size         Type   Attr      Idx    E Section Name        Object
+
+    0x08000000   0x08000000   0x00000130   Data   RO            3    RESET               startup_stm32f103xe.o
+    0x08000130   0x08000130   0x00000000   Code   RO          964  * .ARM.Collect$$$$00000000  mc_w.l(entry.o)
+    0x08000130   0x08000130   0x00000004   Code   RO         1272    .ARM.Collect$$$$00000001  mc_w.l(entry2.o)
+    0x08000134   0x08000134   0x00000004   Code   RO         1275    .ARM.Collect$$$$00000004  mc_w.l(entry5.o)
+    0x08000138   0x08000138   0x00000000   Code   RO         1277    .ARM.Collect$$$$00000008  mc_w.l(entry7b.o)
+    0x08000138   0x08000138   0x00000000   Code   RO         1279    .ARM.Collect$$$$0000000A  mc_w.l(entry8b.o)
+    0x08000138   0x08000138   0x00000008   Code   RO         1280    .ARM.Collect$$$$0000000B  mc_w.l(entry9a.o)
+    0x08000140   0x08000140   0x00000000   Code   RO         1282    .ARM.Collect$$$$0000000D  mc_w.l(entry10a.o)
+    0x08000140   0x08000140   0x00000000   Code   RO         1284    .ARM.Collect$$$$0000000F  mc_w.l(entry11a.o)
+    0x08000140   0x08000140   0x00000004   Code   RO         1273    .ARM.Collect$$$$00002712  mc_w.l(entry2.o)
+    0x08000144   0x08000144   0x00000024   Code   RO            4    .text               startup_stm32f103xe.o
+    0x08000168   0x08000168   0x00000098   Code   RO           13    .text               main.o
+    0x08000200   0x08000200   0x00000060   Code   RO          162    .text               gpio.o
+    0x08000260   0x08000260   0x000000bc   Code   RO          186    .text               spi.o
+    0x0800031c   0x0800031c   0x000000d8   Code   RO          216    .text               usart.o
+    0x080003f4   0x080003f4   0x00000030   Code   RO          246    .text               stm32f1xx_it.o
+    0x08000424   0x08000424   0x0000003c   Code   RO          273    .text               stm32f1xx_hal_msp.o
+    0x08000460   0x08000460   0x0000084c   Code   RO          354    .text               epd_2in7_v2_test.o
+    0x08000cac   0x08000cac   0x00000664   Code   RO          384    .text               epd_2in7_v2.o
+    0x08001310   0x08001310   0x00000068   Code   RO          411    .text               dev_config.o
+    0x08001378   0x08001378   0x00000fb4   Code   RO          436    .text               gui_paint.o
+    0x0800232c   0x0800232c   0x000000c4   Code   RO          573    .text               system_stm32f1xx.o
+    0x080023f0   0x080023f0   0x000015e8   Code   RO          629    .text               stm32f1xx_hal_spi.o
+    0x080039d8   0x080039d8   0x00000188   Code   RO          653    .text               stm32f1xx_hal.o
+    0x08003b60   0x08003b60   0x000008c8   Code   RO          683    .text               stm32f1xx_hal_rcc.o
+    0x08004428   0x08004428   0x000003d4   Code   RO          731    .text               stm32f1xx_hal_gpio.o
+    0x080047fc   0x080047fc   0x00000c48   Code   RO          755    .text               stm32f1xx_hal_dma.o
+    0x08005444   0x08005444   0x00000224   Code   RO          779    .text               stm32f1xx_hal_cortex.o
+    0x08005668   0x08005668   0x00000f9c   Code   RO          943    .text               stm32f1xx_hal_uart.o
+    0x08006604   0x08006604   0x00000020   Code   RO          967    .text               mc_w.l(llushr.o)
+    0x08006624   0x08006624   0x00000024   Code   RO          969    .text               mc_w.l(memseta.o)
+    0x08006648   0x08006648   0x00000064   Code   RO         1260    .text               mf_w.l(fmul.o)
+    0x080066ac   0x080066ac   0x0000014e   Code   RO         1262    .text               mf_w.l(dadd.o)
+    0x080067fa   0x080067fa   0x00000022   Code   RO         1264    .text               mf_w.l(dflti.o)
+    0x0800681c   0x0800681c   0x00000032   Code   RO         1266    .text               mf_w.l(ffixi.o)
+    0x0800684e   0x0800684e   0x0000003e   Code   RO         1268    .text               mf_w.l(dfixi.o)
+    0x0800688c   0x0800688c   0x00000038   Code   RO         1270    .text               mf_w.l(d2f.o)
+    0x080068c4   0x080068c4   0x0000002c   Code   RO         1287    .text               mc_w.l(uidiv.o)
+    0x080068f0   0x080068f0   0x0000001e   Code   RO         1291    .text               mc_w.l(llshl.o)
+    0x0800690e   0x0800690e   0x00000024   Code   RO         1293    .text               mc_w.l(llsshr.o)
+    0x08006932   0x08006932   0x00000000   Code   RO         1301    .text               mc_w.l(iusefp.o)
+    0x08006932   0x08006932   0x0000006e   Code   RO         1302    .text               mf_w.l(fepilogue.o)
+    0x080069a0   0x080069a0   0x000000ba   Code   RO         1304    .text               mf_w.l(depilogue.o)
+    0x08006a5a   0x08006a5a   0x00000002   PAD
+    0x08006a5c   0x08006a5c   0x00000024   Code   RO         1314    .text               mc_w.l(init.o)
+    0x08006a80   0x08006a80   0x00000020   Code   RO         1060    i.__0printf$3       mc_w.l(printf3.o)
+    0x08006aa0   0x08006aa0   0x0000000e   Code   RO         1318    i.__scatterload_copy  mc_w.l(handlers.o)
+    0x08006aae   0x08006aae   0x00000002   Code   RO         1319    i.__scatterload_null  mc_w.l(handlers.o)
+    0x08006ab0   0x08006ab0   0x0000000e   Code   RO         1320    i.__scatterload_zeroinit  mc_w.l(handlers.o)
+    0x08006abe   0x08006abe   0x00000002   PAD
+    0x08006ac0   0x08006ac0   0x000001b8   Code   RO         1067    i._printf_core      mc_w.l(printf3.o)
+    0x08006c78   0x08006c78   0x00000050   Code   RO         1232    i.free              mc_w.l(malloc.o)
+    0x08006cc8   0x08006cc8   0x0000006c   Code   RO         1233    i.malloc            mc_w.l(malloc.o)
+    0x08006d34   0x08006d34   0x000016b0   Data   RO          301    .constdata          imagedata.o
+    0x080083e4   0x080083e4   0x00002d60   Data   RO          306    .constdata          imagedata.o
+    0x0800b144   0x0800b144   0x00000474   Data   RO          486    .constdata          font12.o
+    0x0800b5b8   0x0800b5b8   0x000005d6   Data   RO          500    .constdata          font12cn.o
+    0x0800bb8e   0x0800bb8e   0x00000be0   Data   RO          514    .constdata          font16.o
+    0x0800c76e   0x0800c76e   0x00000ed8   Data   RO          528    .constdata          font20.o
+    0x0800d646   0x0800d646   0x00001182   Data   RO          556    .constdata          font24cn.o
+    0x0800e7c8   0x0800e7c8   0x00000010   Data   RO          574    .constdata          system_stm32f1xx.o
+    0x0800e7d8   0x0800e7d8   0x00000008   Data   RO          575    .constdata          system_stm32f1xx.o
+    0x0800e7e0   0x0800e7e0   0x000000e9   Data   RO          438    .conststring        gui_paint.o
+    0x0800e8c9   0x0800e8c9   0x00000003   PAD
+    0x0800e8cc   0x0800e8cc   0x00000020   Data   RO         1316    Region$$Table       anon$$obj.o
+
+
+    Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800e8ec, Size: 0x0000d1a0, Max: 0x00010000, ABSOLUTE)
+
+    Exec Addr    Load Addr    Size         Type   Attr      Idx    E Section Name        Object
+
+    0x20000000   0x0800e8ec   0x0000009f   Data   RW          385    .data               epd_2in7_v2.o
+    0x2000009f   0x0800e98b   0x00000001   PAD
+    0x200000a0   0x0800e98c   0x00000008   Data   RW          487    .data               font12.o
+    0x200000a8   0x0800e994   0x0000000c   Data   RW          501    .data               font12cn.o
+    0x200000b4   0x0800e9a0   0x00000008   Data   RW          515    .data               font16.o
+    0x200000bc   0x0800e9a8   0x00000008   Data   RW          529    .data               font20.o
+    0x200000c4   0x0800e9b0   0x0000000c   Data   RW          557    .data               font24cn.o
+    0x200000d0   0x0800e9bc   0x00000004   Data   RW          576    .data               system_stm32f1xx.o
+    0x200000d4   0x0800e9c0   0x0000000c   Data   RW          654    .data               stm32f1xx_hal.o
+    0x200000e0   0x0800e9cc   0x00000004   Data   RW         1286    .data               mc_w.l(stdout.o)
+    0x200000e4   0x0800e9d0   0x00000004   Data   RW         1299    .data               mc_w.l(mvars.o)
+    0x200000e8   0x0800e9d4   0x00000004   Data   RW         1300    .data               mc_w.l(mvars.o)
+    0x200000ec        -       0x00000058   Zero   RW          187    .bss                spi.o
+    0x20000144        -       0x00000040   Zero   RW          217    .bss                usart.o
+    0x20000184        -       0x00000018   Zero   RW          437    .bss                gui_paint.o
+    0x2000019c   0x0800e9d8   0x00000004   PAD
+    0x200001a0        -       0x0000c000   Zero   RW            2    HEAP                startup_stm32f103xe.o
+    0x2000c1a0        -       0x00001000   Zero   RW            1    STACK               startup_stm32f103xe.o
+
+
+==============================================================================
+
+Image component sizes
+
+
+      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Object Name
+
+       104         10          0          0          0        792   dev_config.o
+      1636         70          0        159          0       6179   epd_2in7_v2.o
+      2124        554          0          0          0       1899   epd_2in7_v2_test.o
+         0          0       1140          8          0       1389   font12.o
+         0          0       1494         12          0       1391   font12cn.o
+         0          0       3040          8          0       1389   font16.o
+         0          0       3800          8          0       1389   font20.o
+         0          0       4482         12          0       1391   font24cn.o
+        96         10          0          0          0        827   gpio.o
+      4020        670        233          0         24      15754   gui_paint.o
+         0          0      17424          0          0       3193   imagedata.o
+       152         20          0          0          0     463520   main.o
+       188         18          0          0         88       1473   spi.o
+        36          8        304          0      53248        804   startup_stm32f103xe.o
+       392         38          0         12          0       7697   stm32f1xx_hal.o
+       548         12          0          0          0      30706   stm32f1xx_hal_cortex.o
+      3144        164          0          0          0       7133   stm32f1xx_hal_dma.o
+       980         30          0          0          0       4415   stm32f1xx_hal_gpio.o
+        60          8          0          0          0        854   stm32f1xx_hal_msp.o
+      2248         88          0          0          0       6583   stm32f1xx_hal_rcc.o
+      5608        106          0          0          0      19649   stm32f1xx_hal_spi.o
+      3996         46          0          0          0      17460   stm32f1xx_hal_uart.o
+        48         22          0          0          0       1258   stm32f1xx_it.o
+       196         28         24          4          0       1553   system_stm32f1xx.o
+       216         18          0          0         64       1777   usart.o
+
+    ----------------------------------------------------------------------
+     25792       1920      31976        224      53428     600475   Object Totals
+         0          0         32          0          0          0   (incl. Generated)
+         0          0          3          1          4          0   (incl. Padding)
+
+    ----------------------------------------------------------------------
+
+      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Library Member Name
+
+         0          0          0          0          0          0   entry.o
+         0          0          0          0          0          0   entry10a.o
+         0          0          0          0          0          0   entry11a.o
+         8          4          0          0          0          0   entry2.o
+         4          0          0          0          0          0   entry5.o
+         0          0          0          0          0          0   entry7b.o
+         0          0          0          0          0          0   entry8b.o
+         8          4          0          0          0          0   entry9a.o
+        30          0          0          0          0          0   handlers.o
+        36          8          0          0          0         68   init.o
+         0          0          0          0          0          0   iusefp.o
+        30          0          0          0          0         68   llshl.o
+        36          0          0          0          0         68   llsshr.o
+        32          0          0          0          0         68   llushr.o
+       188         20          0          0          0        160   malloc.o
+        36          0          0          0          0        108   memseta.o
+         0          0          0          8          0          0   mvars.o
+       472         14          0          0          0        184   printf3.o
+         0          0          0          4          0          0   stdout.o
+        44          0          0          0          0         80   uidiv.o
+        56          0          0          0          0         88   d2f.o
+       334          0          0          0          0        148   dadd.o
+       186          0          0          0          0        176   depilogue.o
+        62          0          0          0          0         80   dfixi.o
+        34          0          0          0          0         76   dflti.o
+       110          0          0          0          0        168   fepilogue.o
+        50          0          0          0          0         68   ffixi.o
+       100          0          0          0          0         76   fmul.o
+
+    ----------------------------------------------------------------------
+      1860         50          0         12          0       1684   Library Totals
+         4          0          0          0          0          0   (incl. Padding)
+
+    ----------------------------------------------------------------------
+
+      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Library Name
+
+       924         50          0         12          0        804   mc_w.l
+       932          0          0          0          0        880   mf_w.l
+
+    ----------------------------------------------------------------------
+      1860         50          0         12          0       1684   Library Totals
+
+    ----------------------------------------------------------------------
+
+==============================================================================
+
+
+      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   
+
+     27652       1970      31976        236      53428     599815   Grand Totals
+     27652       1970      31976        236      53428     599815   ELF Image Totals
+     27652       1970      31976        236          0          0   ROM Totals
+
+==============================================================================
+
+    Total RO  Size (Code + RO Data)                59628 (  58.23kB)
+    Total RW  Size (RW Data + ZI Data)             53664 (  52.41kB)
+    Total ROM Size (Code + RO Data + RW Data)      59864 (  58.46kB)
+
+==============================================================================
+

+ 5 - 5
STM32/STM32-F103ZET6/MDK-ARM/startup_stm32f103xe.lst

@@ -580,17 +580,17 @@ ARM Macro Assembler    Page 9
               00000000 
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=epd-demo\startup_stm32f103xe.d -oepd-demo\startup_stm32f103xe.o -I
-.\RTE\_epd-demo -I"D:\Program Files\keil5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\Core\I
-nclude" -I"D:\Program Files\keil5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Incl
-ude" --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 525" -
+.\RTE\_EPD_2in7_V2_test -ID:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\Core\Incl
+ude -ID:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include --predefine
+="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 526" --predefine="_RTE
 
 
 
 ARM Macro Assembler    Page 10 
 
 
--predefine="_RTE_ SETA 1" --predefine="STM32F10X_HD SETA 1" --list=startup_stm3
-2f103xe.lst startup_stm32f103xe.s
+_ SETA 1" --predefine="STM32F10X_HD SETA 1" --list=startup_stm32f103xe.lst star
+tup_stm32f103xe.s
 
 
 

+ 265 - 0
STM32/STM32-F103ZET6/User/Examples/EPD_2in7_V2_test.c

@@ -0,0 +1,265 @@
+/*****************************************************************************
+* | File      	:   EPD_2in7_V2.c
+* | Author      :   Waveshare team
+* | Function    :   2.7inch V2 e-paper
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-09-17
+* | Info        :
+* -----------------------------------------------------------------------------
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to  whom the Software is
+# furished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+******************************************************************************/
+#include "EPD_Test.h"
+#include "EPD_2in7_V2.h"
+#include <time.h> 
+
+int EPD_test(void)
+{
+    printf("EPD_2IN7_V2_test Demo\r\n");
+    if(DEV_Module_Init()!=0){
+        return -1;
+    }
+
+    printf("e-Paper Init and Clear...\r\n");
+		EPD_2IN7_V2_Init();
+
+    EPD_2IN7_V2_Clear();
+
+    //Create a new image cache
+    UBYTE *BlackImage;
+    UWORD Imagesize = ((EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1)) * EPD_2IN7_V2_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    printf("Paint_NewImage\r\n");
+    Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);
+		Paint_Clear(WHITE);
+
+
+#if 1  // Fast Drawing on the image
+    // Fast refresh
+    printf("This is followed by a quick refresh demo\r\n");
+    printf("First, clear the screen\r\n");
+    EPD_2IN7_V2_Init();
+    EPD_2IN7_V2_Clear();
+
+    printf("e-Paper Init Fast\r\n");
+    EPD_2IN7_V2_Init_Fast();
+		Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);  	
+    printf("Drawing\r\n");
+    //1.Select Image
+    Paint_SelectImage(BlackImage);
+
+    // 2.Drawing on the image
+    Paint_Clear(WHITE);
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+
+    Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+
+    Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+
+    Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
+    Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
+
+    Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
+    Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
+
+    Paint_DrawString_CN(130, 0,"ÄãºÃabc", &Font12CN, BLACK, WHITE);
+    Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
+
+    EPD_2IN7_V2_Display_Fast(BlackImage);
+    DEV_Delay_ms(3000);
+
+#endif		
+
+#if 1   // show bmp
+
+    printf("show window BMP-----------------\r\n");
+		EPD_2IN7_V2_Init();
+		Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+    Paint_DrawBitMap(gImage_2in7);
+    EPD_2IN7_V2_Display(BlackImage);
+    DEV_Delay_ms(3000);
+
+#endif
+
+#if 1  // Drawing on the image
+		Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);  	
+    printf("Drawing\r\n");
+    //1.Select Image
+		EPD_2IN7_V2_Init();
+    Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+	
+    // 2.Drawing on the image
+    printf("Drawing:BlackImage\r\n");
+    Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+
+    Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+
+    Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+
+    Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+
+    Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE);
+    Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
+
+    Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
+    Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
+
+    Paint_DrawString_CN(130, 0,"ÄãºÃabc", &Font12CN, BLACK, WHITE);
+    Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
+
+    EPD_2IN7_V2_Display_Base(BlackImage);
+    DEV_Delay_ms(3000);
+#endif
+
+
+
+#if 1   //Partial refresh, example shows time    	
+    // If you didn't use the EPD_2IN7_V2_Display_Base() function to refresh the image before,
+    // use the EPD_2IN7_V2_Display_Base_color() function to refresh the background color, 
+    // otherwise the background color will be garbled 
+    EPD_2IN7_V2_Init();
+    // EPD_2IN7_V2_Display_Base_color(WHITE);
+		Paint_NewImage(BlackImage, 50, 120, 90, WHITE);
+    
+    printf("Partial refresh\r\n");
+    Paint_SelectImage(BlackImage);
+		Paint_SetScale(2);
+    Paint_Clear(WHITE);
+    
+    PAINT_TIME sPaint_time;
+    sPaint_time.Hour = 12;
+    sPaint_time.Min = 34;
+    sPaint_time.Sec = 56;
+    UBYTE num = 15;
+    for (;;) {
+        sPaint_time.Sec = sPaint_time.Sec + 1;
+        if (sPaint_time.Sec == 60) {
+            sPaint_time.Min = sPaint_time.Min + 1;
+            sPaint_time.Sec = 0;
+            if (sPaint_time.Min == 60) {
+                sPaint_time.Hour =  sPaint_time.Hour + 1;
+                sPaint_time.Min = 0;
+                if (sPaint_time.Hour == 24) {
+                    sPaint_time.Hour = 0;
+                    sPaint_time.Min = 0;
+                    sPaint_time.Sec = 0;
+                }
+            }
+        }
+        
+        Paint_Clear(WHITE);
+				Paint_DrawRectangle(1, 1, 120, 50, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+        Paint_DrawTime(10, 15, &sPaint_time, &Font20, WHITE, BLACK);
+
+        num = num - 1;
+        if(num == 0) {
+            break;
+        }
+				printf("Part refresh...\r\n");
+        EPD_2IN7_V2_Display_Partial(BlackImage, 60, 134, 110, 254); // Xstart must be a multiple of 8
+        DEV_Delay_ms(500);
+    }
+#endif
+
+#if 1 // show image for array
+		free(BlackImage);
+    printf("show Gray------------------------\r\n");
+    Imagesize = ((EPD_2IN7_V2_WIDTH % 4 == 0)? (EPD_2IN7_V2_WIDTH / 4 ): (EPD_2IN7_V2_WIDTH / 4 + 1)) * EPD_2IN7_V2_HEIGHT;
+    if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
+        printf("Failed to apply for black memory...\r\n");
+        return -1;
+    }
+    EPD_2IN7_V2_Init_4GRAY();
+    printf("4 grayscale display\r\n");
+    Paint_NewImage(BlackImage, EPD_2IN7_V2_WIDTH, EPD_2IN7_V2_HEIGHT, 90, WHITE);
+    Paint_SetScale(4);
+    Paint_Clear(0xff);
+    
+    Paint_DrawPoint(10, 80, GRAY4, DOT_PIXEL_1X1, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 90, GRAY4, DOT_PIXEL_2X2, DOT_STYLE_DFT);
+    Paint_DrawPoint(10, 100, GRAY4, DOT_PIXEL_3X3, DOT_STYLE_DFT);
+    Paint_DrawLine(20, 70, 70, 120, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawLine(70, 70, 20, 120, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_SOLID);
+    Paint_DrawRectangle(20, 70, 70, 120, GRAY4, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawRectangle(80, 70, 130, 120, GRAY4, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawCircle(45, 95, 20, GRAY4, DOT_PIXEL_1X1, DRAW_FILL_EMPTY);
+    Paint_DrawCircle(105, 95, 20, GRAY2, DOT_PIXEL_1X1, DRAW_FILL_FULL);
+    Paint_DrawLine(85, 95, 125, 95, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawLine(105, 75, 105, 115, GRAY4, DOT_PIXEL_1X1, LINE_STYLE_DOTTED);
+    Paint_DrawString_EN(10, 0, "waveshare", &Font16, GRAY4, GRAY1);
+    Paint_DrawString_EN(10, 20, "hello world", &Font12, GRAY3, GRAY1);
+    Paint_DrawNum(10, 33, 123456789, &Font12, GRAY4, GRAY2);
+    Paint_DrawNum(10, 50, 987654321, &Font16, GRAY1, GRAY4);
+    Paint_DrawString_CN(150, 0,"ÄãºÃabc", &Font12CN, GRAY4, GRAY1);
+    Paint_DrawString_CN(150, 20,"ÄãºÃabc", &Font12CN, GRAY3, GRAY2);
+    Paint_DrawString_CN(150, 40,"ÄãºÃabc", &Font12CN, GRAY2, GRAY3);
+    Paint_DrawString_CN(150, 60,"ÄãºÃabc", &Font12CN, GRAY1, GRAY4);
+    Paint_DrawString_CN(10, 130, "΢ѩµç×Ó", &Font24CN, GRAY1, GRAY4);
+    EPD_2IN7_V2_4GrayDisplay(BlackImage);
+    DEV_Delay_ms(3000);
+		
+		Paint_SelectImage(BlackImage);
+    Paint_Clear(WHITE);
+    Paint_DrawBitMap(gImage_2in7_4Gray);
+    EPD_2IN7_V2_4GrayDisplay(BlackImage);
+    DEV_Delay_ms(3000);
+
+#endif
+
+		printf("Clear...\r\n");
+		EPD_2IN7_V2_Init();
+    EPD_2IN7_V2_Clear();
+	
+    printf("Goto Sleep...\r\n");
+    EPD_2IN7_V2_Sleep();
+    free(BlackImage);
+    BlackImage = NULL;
+    DEV_Delay_ms(2000);//important, at least 2s
+    // close 5V
+    printf("close 5V, Module enters 0 power consumption ...\r\n");
+    DEV_Module_Exit();
+    return 0;
+}

+ 526 - 0
STM32/STM32-F103ZET6/User/e-Paper/EPD_2in7_V2.c

@@ -0,0 +1,526 @@
+/*****************************************************************************
+* | File      	:   EPD_2in7_V2.c
+* | Author      :   Waveshare team
+* | Function    :   2.7inch V2 e-paper
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-08-18
+* | Info        :
+* -----------------------------------------------------------------------------
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to  whom the Software is
+# furished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+******************************************************************************/
+#include "EPD_2in7_V2.h"
+#include "Debug.h"
+
+UBYTE LUT_DATA_4Gray[159] =
+{
+0x40,	0x48,	0x80,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x8,	0x48,	0x10,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x2,	0x48,	0x4,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x20,	0x48,	0x1,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,
+0xA,	0x19,	0x0,	0x3,	0x8,	0x0,	0x0,					
+0x14,	0x1,	0x0,	0x14,	0x1,	0x0,	0x3,					
+0xA,	0x3,	0x0,	0x8,	0x19,	0x0,	0x0,					
+0x1,	0x0,	0x0,	0x0,	0x0,	0x0,	0x1,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x0,	0x0,	0x0,	0x0,	0x0,	0x0,	0x0,					
+0x22,	0x22,	0x22,	0x22,	0x22,	0x22,	0x0,	0x0,	0x0,			
+0x22,	0x17,	0x41,	0x0,	0x32,	0x1C
+};
+
+/******************************************************************************
+function :	Software reset
+parameter:
+******************************************************************************/
+static void EPD_2IN7_V2_Reset(void)
+{
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+    DEV_Digital_Write(EPD_RST_PIN, 0);
+    DEV_Delay_ms(2);
+    DEV_Digital_Write(EPD_RST_PIN, 1);
+    DEV_Delay_ms(20);
+}
+
+/******************************************************************************
+function :	send command
+parameter:
+     Reg : Command register
+******************************************************************************/
+static void EPD_2IN7_V2_SendCommand(UBYTE Reg)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 0);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Reg);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	send data
+parameter:
+    Data : Write data
+******************************************************************************/
+static void EPD_2IN7_V2_SendData(UBYTE Data)
+{
+    DEV_Digital_Write(EPD_DC_PIN, 1);
+    DEV_Digital_Write(EPD_CS_PIN, 0);
+    DEV_SPI_WriteByte(Data);
+    DEV_Digital_Write(EPD_CS_PIN, 1);
+}
+
+/******************************************************************************
+function :	Wait until the busy_pin goes LOW
+parameter:
+******************************************************************************/
+static void EPD_2IN7_V2_ReadBusy(void)
+{
+    Debug("e-Paper busy\r\n");
+    do {
+        if(DEV_Digital_Read(EPD_BUSY_PIN) == 0)
+			break;
+    } while(1);
+    DEV_Delay_ms(20);
+    Debug("e-Paper busy release\r\n");
+}
+
+/******************************************************************************
+function :	Turn on display
+parameter:
+******************************************************************************/
+static void EPD_2IN7_V2_TurnOnDisplay(void)
+{
+	EPD_2IN7_V2_SendCommand(0x22); //Display Update Control
+	EPD_2IN7_V2_SendData(0xF7);
+	EPD_2IN7_V2_SendCommand(0x20); //Activate Display Update Sequence
+	EPD_2IN7_V2_ReadBusy();
+}
+
+static void EPD_2IN7_V2_TurnOnDisplay_Fast(void)
+{
+	EPD_2IN7_V2_SendCommand(0x22); //Display Update Control
+	EPD_2IN7_V2_SendData(0xC7);
+	EPD_2IN7_V2_SendCommand(0x20); //Activate Display Update Sequence
+	EPD_2IN7_V2_ReadBusy();
+}
+
+static void EPD_2IN7_V2_TurnOnDisplay_Partial(void)
+{
+	EPD_2IN7_V2_SendCommand(0x22);
+	EPD_2IN7_V2_SendData(0xFF);
+	EPD_2IN7_V2_SendCommand(0x20);
+	EPD_2IN7_V2_ReadBusy();
+}
+
+static void EPD_2IN7_V2_TurnOnDisplay_4GRAY(void)
+{
+	EPD_2IN7_V2_SendCommand(0x22);
+	EPD_2IN7_V2_SendData(0xC7);
+	EPD_2IN7_V2_SendCommand(0x20);
+	EPD_2IN7_V2_ReadBusy();
+}
+/******************************************************************************
+function :	set the look-up tables
+parameter:
+******************************************************************************/
+static void EPD_2IN7_V2_Lut(void)
+{
+    unsigned int count;
+    EPD_2IN7_V2_SendCommand(0x32); //vcom
+    for(count = 0; count < 153; count++) {
+        EPD_2IN7_V2_SendData(LUT_DATA_4Gray[count]);
+    }
+}
+
+
+/******************************************************************************
+function :	Initialize the e-Paper register
+parameter:
+******************************************************************************/
+void EPD_2IN7_V2_Init(void)
+{
+  EPD_2IN7_V2_Reset();
+	EPD_2IN7_V2_ReadBusy();
+	
+	EPD_2IN7_V2_SendCommand(0x12); //SWRESET
+	EPD_2IN7_V2_ReadBusy();
+
+  EPD_2IN7_V2_SendCommand(0x45); //set Ram-Y address start/end position          
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x07); //0x0107-->(263+1)=264
+	EPD_2IN7_V2_SendData(0x01);
+
+  EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0;    
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+
+	EPD_2IN7_V2_SendCommand(0x11);   // data entry mode
+	EPD_2IN7_V2_SendData(0x03);
+
+}
+void EPD_2IN7_V2_Init_Fast(void)
+{
+	EPD_2IN7_V2_Reset();
+	EPD_2IN7_V2_ReadBusy();
+
+	EPD_2IN7_V2_SendCommand(0x12); //SWRESET
+	EPD_2IN7_V2_ReadBusy();
+
+	EPD_2IN7_V2_SendCommand(0x18); //Read built-in temperature sensor
+	EPD_2IN7_V2_SendData(0x80);	
+
+	EPD_2IN7_V2_SendCommand(0x22); // Load temperature value
+	EPD_2IN7_V2_SendData(0xB1);		
+	EPD_2IN7_V2_SendCommand(0x20);	
+	EPD_2IN7_V2_ReadBusy();
+
+	EPD_2IN7_V2_SendCommand(0x1A); // Write to temperature register
+	EPD_2IN7_V2_SendData(0x64);		
+	EPD_2IN7_V2_SendData(0x00);	
+
+	EPD_2IN7_V2_SendCommand(0x45); //set Ram-Y address start/end position          
+	EPD_2IN7_V2_SendData(0x00);   
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x07); //0x0107-->(263+1)=264
+	EPD_2IN7_V2_SendData(0x01);
+
+	EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0;    
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+
+	EPD_2IN7_V2_SendCommand(0x11);   // data entry mode      
+	EPD_2IN7_V2_SendData(0x03);
+							
+	EPD_2IN7_V2_SendCommand(0x22); // Load temperature value
+	EPD_2IN7_V2_SendData(0x91);		
+	EPD_2IN7_V2_SendCommand(0x20);	
+	EPD_2IN7_V2_ReadBusy(); 
+}
+void EPD_2IN7_V2_Init_4GRAY(void)
+{
+	EPD_2IN7_V2_Reset();
+
+	EPD_2IN7_V2_ReadBusy();
+	EPD_2IN7_V2_SendCommand(0x12); // soft reset
+	EPD_2IN7_V2_ReadBusy();
+
+	EPD_2IN7_V2_SendCommand(0x74); //set analog block control       
+	EPD_2IN7_V2_SendData(0x54);
+	EPD_2IN7_V2_SendCommand(0x7E); //set digital block control          
+	EPD_2IN7_V2_SendData(0x3B);
+
+	EPD_2IN7_V2_SendCommand(0x01); //Driver output control      
+	EPD_2IN7_V2_SendData(0x07);
+	EPD_2IN7_V2_SendData(0x01);
+	EPD_2IN7_V2_SendData(0x00);
+
+	EPD_2IN7_V2_SendCommand(0x11); //data entry mode       
+	EPD_2IN7_V2_SendData(0x03);
+
+	EPD_2IN7_V2_SendCommand(0x44); //set Ram-X address start/end position   
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x15);    //0x15-->(21+1)*8=176
+
+	EPD_2IN7_V2_SendCommand(0x45); //set Ram-Y address start/end position          
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x07);//0x0107-->(263+1)=264
+	EPD_2IN7_V2_SendData(0x01);
+
+
+	EPD_2IN7_V2_SendCommand(0x3C); //BorderWavefrom
+	EPD_2IN7_V2_SendData(0x00);	
+
+
+	EPD_2IN7_V2_SendCommand(0x2C);     //VCOM Voltage
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[158]);    //0x1C
+
+
+	EPD_2IN7_V2_SendCommand(0x3F); //EOPQ    
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[153]);
+	
+	EPD_2IN7_V2_SendCommand(0x03); //VGH      
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[154]);
+
+	EPD_2IN7_V2_SendCommand(0x04); //      
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[155]); //VSH1   
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[156]); //VSH2   
+	EPD_2IN7_V2_SendData(LUT_DATA_4Gray[157]); //VSL   
+   
+	EPD_2IN7_V2_Lut(); //LUT
+
+	
+	EPD_2IN7_V2_SendCommand(0x4E);   // set RAM x address count to 0;
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0X199;    
+	EPD_2IN7_V2_SendData(0x00);
+	EPD_2IN7_V2_SendData(0x00);
+  EPD_2IN7_V2_ReadBusy();
+}
+
+/******************************************************************************
+function :	Clear screen
+parameter:
+******************************************************************************/
+void EPD_2IN7_V2_Clear(void)
+{
+    UWORD Width, Height;
+    Width = (EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1);
+    Height = EPD_2IN7_V2_HEIGHT;
+
+    EPD_2IN7_V2_SendCommand(0x24);
+    for (UWORD j = 0; j < Height; j++) {
+        for (UWORD i = 0; i < Width; i++) {
+            EPD_2IN7_V2_SendData(0XFF);
+        }
+    }
+
+	EPD_2IN7_V2_TurnOnDisplay();
+}
+
+/******************************************************************************
+function :	Sends the image buffer in RAM to e-Paper and displays
+parameter:
+******************************************************************************/
+void EPD_2IN7_V2_Display(UBYTE *Image)
+{
+	UWORD Width, Height;
+	Width = (EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1);
+	Height = EPD_2IN7_V2_HEIGHT;
+
+	EPD_2IN7_V2_SendCommand(0x24);
+	for (UWORD j = 0; j < Height; j++) {
+			for (UWORD i = 0; i < Width; i++) {
+					EPD_2IN7_V2_SendData(Image[i + j * Width]);
+			}
+	}
+
+	EPD_2IN7_V2_TurnOnDisplay();
+}
+
+void EPD_2IN7_V2_Display_Fast(UBYTE *Image)
+{
+	UWORD Width, Height;
+	Width = (EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1);
+	Height = EPD_2IN7_V2_HEIGHT;
+
+	EPD_2IN7_V2_SendCommand(0x24);
+	for (UWORD j = 0; j < Height; j++) {
+			for (UWORD i = 0; i < Width; i++) {
+					EPD_2IN7_V2_SendData(Image[i + j * Width]);
+			}
+	}
+	EPD_2IN7_V2_TurnOnDisplay_Fast();
+}
+
+void EPD_2IN7_V2_Display_Base(UBYTE *Image)
+{
+	UWORD Width, Height;
+	Width = (EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1);
+	Height = EPD_2IN7_V2_HEIGHT;
+
+	EPD_2IN7_V2_SendCommand(0x24);   //Write Black and White image to RAM
+	for (UWORD j = 0; j < Height; j++) {
+			for (UWORD i = 0; i < Width; i++) {
+					EPD_2IN7_V2_SendData(Image[i + j * Width]);
+			}
+	}
+	EPD_2IN7_V2_SendCommand(0x26);   //Write Black and White image to RAM
+	for (UWORD j = 0; j < Height; j++) {
+			for (UWORD i = 0; i < Width; i++) {
+					EPD_2IN7_V2_SendData(Image[i + j * Width]);
+			}
+	}
+	EPD_2IN7_V2_TurnOnDisplay();	
+}
+
+void EPD_2IN7_V2_Display_Base_color(UBYTE color)
+{
+	UWORD Width, Height;
+	Width = (EPD_2IN7_V2_WIDTH % 8 == 0)? (EPD_2IN7_V2_WIDTH / 8 ): (EPD_2IN7_V2_WIDTH / 8 + 1);
+	Height = EPD_2IN7_V2_HEIGHT;
+
+	EPD_2IN7_V2_SendCommand(0x24);   //Write Black and White image to RAM
+	for (UWORD j = 0; j < Height; j++) {
+			for (UWORD i = 0; i < Width; i++) {
+					EPD_2IN7_V2_SendData(color);
+			}
+	}
+	EPD_2IN7_V2_SendCommand(0x26);   //Write Black and White image to RAM
+	for (UWORD j = 0; j < Height; j++) {
+			for (UWORD i = 0; i < Width; i++) {
+					EPD_2IN7_V2_SendData(color);
+			}
+	}
+	// EPD_2IN7_V2_TurnOnDisplay();	
+}
+
+void EPD_2IN7_V2_Display_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend)
+{
+	if((Xstart % 8 + Xend % 8 == 8 && Xstart % 8 > Xend % 8) || Xstart % 8 + Xend % 8 == 0 || (Xend - Xstart)%8 == 0)
+	{
+			Xstart = Xstart / 8 ;
+			Xend = Xend / 8;
+	}
+	else
+	{
+			Xstart = Xstart / 8 ;
+			Xend = Xend % 8 == 0 ? Xend / 8 : Xend / 8 + 1;
+	}
+
+
+	UWORD i, Width;
+	Width = Xend -  Xstart;
+	UWORD IMAGE_COUNTER = Width * (Yend-Ystart);
+
+	Xend -= 1;
+	Yend -= 1;	
+	//Reset
+	EPD_2IN7_V2_Reset();
+
+	EPD_2IN7_V2_SendCommand(0x3C); //BorderWavefrom
+	EPD_2IN7_V2_SendData(0x80);	
+	//	
+	EPD_2IN7_V2_SendCommand(0x44);       // set RAM x address start/end, in page 35
+	EPD_2IN7_V2_SendData(Xstart & 0xff);    // RAM x address start at 00h;
+	EPD_2IN7_V2_SendData(Xend & 0xff);    // RAM x address end at 0fh(15+1)*8->128 
+	EPD_2IN7_V2_SendCommand(0x45);       // set RAM y address start/end, in page 35
+	EPD_2IN7_V2_SendData(Ystart & 0xff);    // RAM y address start at 0127h;
+	EPD_2IN7_V2_SendData((Ystart>>8) & 0x01);    // RAM y address start at 0127h;
+	EPD_2IN7_V2_SendData(Yend & 0xff);    // RAM y address end at 00h;
+	EPD_2IN7_V2_SendData((Yend>>8) & 0x01); 
+
+	EPD_2IN7_V2_SendCommand(0x4E);   // set RAM x address count to 0;
+	EPD_2IN7_V2_SendData(Xstart & 0xff); 
+	EPD_2IN7_V2_SendCommand(0x4F);   // set RAM y address count to 0X127;    
+	EPD_2IN7_V2_SendData(Ystart & 0xff);
+	EPD_2IN7_V2_SendData((Ystart>>8) & 0x01);
+
+
+	EPD_2IN7_V2_SendCommand(0x24);   //Write Black and White image to RAM
+	for (i = 0; i < IMAGE_COUNTER; i++) {
+		EPD_2IN7_V2_SendData(Image[i]);
+	}
+	EPD_2IN7_V2_TurnOnDisplay_Partial();
+}
+
+
+void EPD_2IN7_V2_4GrayDisplay(UBYTE *Image)
+{
+    UDOUBLE i,j,k;
+    UBYTE temp1,temp2,temp3;
+
+    // old  data
+    EPD_2IN7_V2_SendCommand(0x24);
+    for(i=0; i<5808; i++) {             //5808*4  46464
+        temp3=0;
+        for(j=0; j<2; j++) {
+            temp1 = Image[i*2+j];
+            for(k=0; k<2; k++) {
+                temp2 = temp1&0xC0;
+                if(temp2 == 0xC0)
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00)
+                    temp3 |= 0x01; 
+                else if(temp2 == 0x80)
+                    temp3 |= 0x01; 
+                else //0x40
+                    temp3 |= 0x00; 
+                temp3 <<= 1;
+
+                temp1 <<= 2;
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0) 
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00) 
+                    temp3 |= 0x01;
+                else if(temp2 == 0x80)
+                    temp3 |= 0x01; 
+                else    //0x40
+                    temp3 |= 0x00;	
+                if(j!=1 || k!=1)
+                    temp3 <<= 1;
+
+                temp1 <<= 2;
+            }
+
+        }
+        EPD_2IN7_V2_SendData(temp3);
+        // printf("%x",temp3);
+    }
+
+    EPD_2IN7_V2_SendCommand(0x26);   //write RAM for black(0)/white (1)
+    for(i=0; i<5808; i++) {             //5808*4  46464
+        temp3=0;
+        for(j=0; j<2; j++) {
+            temp1 = Image[i*2+j];
+            for(k=0; k<2; k++) {
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)
+                    temp3 |= 0x00;//white
+                else if(temp2 == 0x00)
+                    temp3 |= 0x01;  //black
+                else if(temp2 == 0x80)
+                    temp3 |= 0x00;  //gray1
+                else //0x40
+                    temp3 |= 0x01; //gray2
+                temp3 <<= 1;
+
+                temp1 <<= 2;
+                temp2 = temp1&0xC0 ;
+                if(temp2 == 0xC0)  //white
+                    temp3 |= 0x00;
+                else if(temp2 == 0x00) //black
+                    temp3 |= 0x01;
+                else if(temp2 == 0x80)
+                    temp3 |= 0x00; //gray1
+                else    //0x40
+                    temp3 |= 0x01;	//gray2
+                if(j!=1 || k!=1)
+                    temp3 <<= 1;
+
+                temp1 <<= 2;
+            }
+        }
+        EPD_2IN7_V2_SendData(temp3);
+        // printf("%x",temp3);
+    }
+
+    EPD_2IN7_V2_TurnOnDisplay_4GRAY();
+}
+
+/******************************************************************************
+function :	Enter sleep mode
+parameter:
+******************************************************************************/
+void EPD_2IN7_V2_Sleep(void)
+{
+    EPD_2IN7_V2_SendCommand(0X10);
+    EPD_2IN7_V2_SendData(0x01);
+}

+ 52 - 0
STM32/STM32-F103ZET6/User/e-Paper/EPD_2in7_V2.h

@@ -0,0 +1,52 @@
+/*****************************************************************************
+* | File      	:   EPD_2in7_V2.h
+* | Author      :   Waveshare team
+* | Function    :   2.7inch V2 e-paper
+* | Info        :
+*----------------
+* |	This version:   V1.0
+* | Date        :   2022-08-18
+* | Info        :
+* -----------------------------------------------------------------------------
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documnetation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to  whom the Software is
+# furished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+#
+******************************************************************************/
+#ifndef __EPD_2IN7_V2_H_
+#define __EPD_2IN7_V2_H_
+
+#include "DEV_Config.h"
+
+// Display resolution
+#define EPD_2IN7_V2_WIDTH       176
+#define EPD_2IN7_V2_HEIGHT      264
+
+void EPD_2IN7_V2_Init(void);
+void EPD_2IN7_V2_Init_Fast(void);
+void EPD_2IN7_V2_Init_4GRAY(void);
+void EPD_2IN7_V2_Clear(void);
+void EPD_2IN7_V2_Display(UBYTE *Image);
+void EPD_2IN7_V2_Display_Fast(UBYTE *Image);
+void EPD_2IN7_V2_Display_Base(UBYTE *Image);
+void EPD_2IN7_V2_Display_Base_color(UBYTE color);
+void EPD_2IN7_V2_Display_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yende);
+void EPD_2IN7_V2_4GrayDisplay(UBYTE *Image);
+void EPD_2IN7_V2_Sleep(void);
+
+#endif

+ 2 - 1
Version_CN.txt

@@ -33,4 +33,5 @@
 2022-07-22:添加新程序3.52inch e-Paper例程。
 2022-08-16:添加新程序4.37inch e-Paper (G)例程。
 2022-08-17:添加新程序2.36inch e-Paper (G)例程。
-2022-10-22:添加新程序7.3inch e-Paper (F)例程。
+2022-10-22:添加新程序7.3inch e-Paper (F)例程。
+2022-10-27:添加新程序2.7inch V2 e-Paper 例程。

+ 2 - 1
Version_EN.txt

@@ -32,4 +32,5 @@
 2022-07-22: Added new programs 3.52inch e-Paper routine.
 2022-08-16: Added new programs 4.37inch e-Paper (G) routine.
 2022-08-17: Added new programs 2.36inch e-Paper (G) routine.
-2022-10-22: Added new programs 7.3inch e-Paper (F) routine.
+2022-10-22: Added new programs 7.3inch e-Paper (F) routine.
+2022-10-27: Added new programs 2.7inch V2 e-Paper routine.

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff