Files
2017-05-07 20:48:04 -04:00

697 lines
40 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//////////////////////////////////////////////////////////////////////////////
//
// Filename: Screen.c
// Version:
// Data:
//
// Author: Liu, Zemin
// Company: JYE Tech Ltd.
// Web: www.jyetech.com
//
//-----------------------------------------------------------------------------
//
// Target: STM32F103C8
// Tool chain: CodeSourcery G++
//
//-----------------------------------------------------------------------------
// Required files:
//
//-----------------------------------------------------------------------------
// Notes:
//
//
//-----------------------------------------------------------------------------
// Revision History:
//
///////////////////////////////////////////////////////////////////////////////
//
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include "Common.h"
#include "Board.h"
#include "Screen.h"
// ==========================================================
// File Scope Variables
// ==========================================================
//
const U8 DSO_font[(112/8) * 35] = {
/*------------------------------------------------------------------------------
; 源文件 / 文字 : DSO
; 宽×高(像素): 110×56
------------------------------------------------------------------------------*/
0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0x00,0x00,0x03,0xFE,0x00,0x00,0x3F,0xFF,
0xFF,0x00,0x00,0x00,0xFF,0xFC,0x60,0x00,0x1F,0xFF,0xC0,0x00,0x3F,0xFF,0xFF,0xF0,
0x00,0x01,0xFC,0x1F,0xE0,0x00,0x7F,0x07,0xF0,0x00,0x07,0xFE,0x03,0xFC,0x00,0x03,
0xF0,0x0F,0xE0,0x00,0xFC,0x01,0xF8,0x00,0x01,0xFE,0x00,0xFF,0x00,0x07,0xF0,0x07,
0xE0,0x03,0xF8,0x00,0xFE,0x00,0x01,0xFE,0x00,0x7F,0x80,0x0F,0xE0,0x03,0xE0,0x07,
0xF8,0x00,0x7F,0x00,0x01,0xFE,0x00,0x3F,0xC0,0x0F,0xE0,0x01,0xE0,0x07,0xF0,0x00,
0x7F,0x80,0x01,0xFE,0x00,0x1F,0xE0,0x1F,0xE0,0x01,0xE0,0x0F,0xF0,0x00,0x3F,0x80,
0x01,0xFE,0x00,0x1F,0xE0,0x1F,0xE0,0x00,0xE0,0x1F,0xE0,0x00,0x3F,0xC0,0x01,0xFE,
0x00,0x0F,0xF0,0x1F,0xF0,0x00,0xE0,0x1F,0xE0,0x00,0x3F,0xC0,0x01,0xFE,0x00,0x0F,
0xF8,0x1F,0xF0,0x00,0xE0,0x3F,0xE0,0x00,0x3F,0xE0,0x01,0xFE,0x00,0x0F,0xF8,0x1F,
0xFC,0x00,0x60,0x3F,0xC0,0x00,0x1F,0xE0,0x01,0xFE,0x00,0x07,0xF8,0x1F,0xFF,0x00,
0x00,0x3F,0xC0,0x00,0x1F,0xE0,0x01,0xFE,0x00,0x07,0xFC,0x0F,0xFF,0xC0,0x00,0x7F,
0xC0,0x00,0x1F,0xF0,0x01,0xFE,0x00,0x07,0xFC,0x0F,0xFF,0xF8,0x00,0x7F,0xC0,0x00,
0x1F,0xF0,0x01,0xFE,0x00,0x07,0xFC,0x07,0xFF,0xFE,0x00,0x7F,0xC0,0x00,0x1F,0xF0,
0x01,0xFE,0x00,0x07,0xFC,0x03,0xFF,0xFF,0x80,0x7F,0xC0,0x00,0x1F,0xF0,0x01,0xFE,
0x00,0x07,0xFC,0x01,0xFF,0xFF,0xC0,0x7F,0xC0,0x00,0x1F,0xF0,0x01,0xFE,0x00,0x07,
0xFC,0x00,0x7F,0xFF,0xE0,0x7F,0xC0,0x00,0x1F,0xF0,0x01,0xFE,0x00,0x07,0xFC,0x00,
0x1F,0xFF,0xF0,0x7F,0xC0,0x00,0x1F,0xF0,0x01,0xFE,0x00,0x07,0xFC,0x00,0x03,0xFF,
0xF0,0x7F,0xC0,0x00,0x1F,0xF0,0x01,0xFE,0x00,0x07,0xFC,0x00,0x00,0x7F,0xF8,0x7F,
0xC0,0x00,0x1F,0xF0,0x01,0xFE,0x00,0x07,0xF8,0x30,0x00,0x1F,0xF8,0x3F,0xC0,0x00,
0x1F,0xE0,0x01,0xFE,0x00,0x07,0xF8,0x38,0x00,0x0F,0xF8,0x3F,0xC0,0x00,0x1F,0xE0,
0x01,0xFE,0x00,0x0F,0xF8,0x38,0x00,0x0F,0xF8,0x3F,0xE0,0x00,0x3F,0xE0,0x01,0xFE,
0x00,0x0F,0xF0,0x3C,0x00,0x07,0xF8,0x1F,0xE0,0x00,0x3F,0xC0,0x01,0xFE,0x00,0x0F,
0xE0,0x3C,0x00,0x07,0xF8,0x1F,0xE0,0x00,0x3F,0xC0,0x01,0xFE,0x00,0x1F,0xE0,0x3E,
0x00,0x07,0xF0,0x0F,0xF0,0x00,0x7F,0x80,0x01,0xFE,0x00,0x1F,0xC0,0x3E,0x00,0x07,
0xF0,0x0F,0xF0,0x00,0x7F,0x80,0x01,0xFE,0x00,0x3F,0x80,0x3F,0x00,0x07,0xF0,0x07,
0xF0,0x00,0x7F,0x00,0x01,0xFF,0x00,0x7E,0x00,0x3F,0x80,0x0F,0xE0,0x03,0xF8,0x00,
0xFE,0x00,0x03,0xFF,0x81,0xFC,0x00,0x3F,0xC0,0x1F,0xC0,0x00,0xFC,0x01,0xFC,0x00,
0x3F,0xFF,0xFF,0xE0,0x00,0x3B,0xF0,0x3F,0x80,0x00,0x7F,0x07,0xF0,0x00,0x3F,0xFF,
0xFF,0x00,0x00,0x30,0xFF,0xFE,0x00,0x00,0x1F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xF0,0x00,0x00,0x03,0xFE,0x00,0x00
};
FONT DSOm = {
(U8*)DSO_font,
112,
35,
112,
35,
0
};
const U8 Shell_font[(120/8) * 36] = {
/*------------------------------------------------------------------------------
; 源文件 / 文字 : Shell
; 宽×高(像素): 119×57
------------------------------------------------------------------------------*/
0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0xE0,0x0F,0x00,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x0F,0xE0,0x03,0x00,
0x01,0xC0,0x0C,0x60,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x0C,0x60,0x0E,0x00,0x00,
0xE0,0x0C,0x60,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x0C,0x60,0x0C,0x00,0x00,0x70,
0x0C,0x60,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x0C,0x60,0x18,0x1F,0xF0,0x38,0x0C,
0x60,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x0C,0x60,0x18,0x70,0x1E,0x18,0x0C,0x60,
0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x0C,0x60,0x30,0xC0,0x07,0x1C,0x0C,0x60,0x00,
0x00,0x00,0x00,0x00,0x03,0x18,0x0C,0x60,0x31,0x80,0x03,0x0C,0x0C,0x60,0x00,0x00,
0x00,0x00,0x00,0x03,0x18,0x0C,0x60,0x31,0x80,0x01,0x8C,0x0C,0x60,0x00,0x00,0x00,
0x00,0x00,0x03,0x18,0x0C,0x60,0x31,0x80,0x01,0xFC,0x0C,0x63,0xFC,0x00,0x00,0x7F,
0xC0,0x03,0x18,0x0C,0x60,0x31,0xC0,0x00,0x00,0x0C,0x6E,0x07,0x00,0x01,0xC0,0x70,
0x03,0x18,0x0C,0x60,0x30,0xE0,0x00,0x00,0x0C,0x78,0x03,0x80,0x07,0x00,0x1C,0x03,
0x18,0x0C,0x60,0x38,0x3C,0x00,0x00,0x0C,0x70,0x00,0xC0,0x0E,0x00,0x0E,0x03,0x18,
0x0C,0x60,0x18,0x07,0xE0,0x00,0x0C,0x60,0x00,0xC0,0x1C,0x00,0x07,0x03,0x18,0x0C,
0x60,0x1C,0x00,0x3E,0x00,0x0C,0xC7,0xF0,0x60,0x18,0x3F,0x83,0x03,0x18,0x0C,0x60,
0x0E,0x00,0x07,0x80,0x0C,0x1C,0x38,0x60,0x30,0xE0,0xE1,0x83,0x18,0x0C,0x60,0x03,
0x80,0x00,0xE0,0x0C,0x18,0x18,0x60,0x31,0x80,0x31,0x83,0x18,0x0C,0x60,0x00,0xF0,
0x00,0x38,0x0C,0x30,0x0C,0x60,0x31,0x80,0x31,0x83,0x18,0x0C,0x60,0x00,0x3F,0x00,
0x1C,0x0C,0x30,0x0C,0x60,0x63,0x00,0x18,0xC3,0x18,0x0C,0x60,0x00,0x01,0xF0,0x0C,
0x0C,0x60,0x0C,0x60,0x63,0x00,0x18,0xC3,0x18,0x0C,0x60,0x00,0x00,0x1C,0x0E,0x0C,
0x60,0x0C,0x60,0x63,0xFF,0xF8,0xC3,0x18,0x0C,0x60,0x00,0x00,0x07,0x06,0x0C,0x60,
0x0C,0x60,0x60,0x00,0x00,0xC3,0x18,0x0C,0x60,0x00,0x00,0x01,0x86,0x0C,0x60,0x0C,
0x60,0x60,0x00,0x00,0xC3,0x18,0x0C,0x60,0x7F,0x80,0x00,0xC6,0x0C,0x60,0x0C,0x60,
0x60,0x00,0x00,0xC3,0x18,0x0C,0x60,0x71,0x80,0x00,0xC6,0x0C,0x60,0x0C,0x60,0x63,
0xFF,0xFF,0xC3,0x18,0x0C,0x60,0x71,0xC0,0x00,0xC6,0x0C,0x60,0x0C,0x60,0x63,0x00,
0x00,0x03,0x18,0x0C,0x60,0x70,0xC0,0x01,0xC6,0x0C,0x60,0x0C,0x60,0x33,0x00,0x00,
0x03,0x18,0x0C,0x60,0x38,0x60,0x01,0x8C,0x0C,0x60,0x0C,0x60,0x31,0x80,0x00,0x03,
0x18,0x0C,0x60,0x38,0x38,0x0F,0x0C,0x0C,0x60,0x0C,0x60,0x30,0xE0,0x3F,0xC3,0x18,
0x0C,0x60,0x1C,0x0F,0xF8,0x1C,0x0C,0x60,0x0C,0x60,0x18,0x3F,0xF1,0x83,0x18,0x0C,
0x60,0x1E,0x00,0x00,0x18,0x0C,0x60,0x0C,0x60,0x1C,0x00,0x03,0x83,0x18,0x0C,0x60,
0x0F,0x00,0x00,0x70,0x0C,0x60,0x0C,0x60,0x0E,0x00,0x07,0x03,0x18,0x0C,0x60,0x03,
0x80,0x00,0xE0,0x0C,0x60,0x0C,0x60,0x07,0x00,0x0E,0x03,0x18,0x0C,0x60,0x01,0xF0,
0x07,0x80,0x0C,0x60,0x0C,0x60,0x01,0xC0,0x78,0x03,0x18,0x0C,0x60,0x00,0x3F,0xFC,
0x00,0x0F,0xE0,0x0F,0xE0,0x00,0x7F,0xC0,0x03,0xF8,0x0F,0xE0
};
FONT Shell = {
(U8*)Shell_font,
120,
36,
120,
36,
0
};
const U8 DSO_Shell_font[(88/8) * 12] = {
/*------------------------------------------------------------------------------
; 源文件 / 文字 : DSO Shell
; 宽×高(像素): 85×22
------------------------------------------------------------------------------*/
0xFF,0x80,0x7A,0x03,0xE0,0x00,0xF4,0xF0,0x00,0x1E,0xF0,0x38,0xE0,0xC6,0x0E,0x38,
0x01,0x8C,0x70,0x00,0x0E,0x70,0x38,0x71,0xC2,0x1C,0x1C,0x03,0x84,0x70,0x00,0x0E,
0x70,0x38,0x31,0xC2,0x18,0x0C,0x03,0x84,0x77,0x07,0x0E,0x70,0x38,0x39,0xE0,0x38,
0x0E,0x03,0xC0,0x7B,0x8D,0x8E,0x70,0x38,0x38,0xF8,0x38,0x0E,0x01,0xF0,0x73,0x9D,
0xCE,0x70,0x38,0x38,0x3E,0x38,0x0E,0x00,0x7C,0x73,0x9F,0xCE,0x70,0x38,0x39,0x0F,
0x38,0x0E,0x02,0x1E,0x73,0x9C,0x0E,0x70,0x38,0x39,0x07,0x18,0x0C,0x02,0x0E,0x73,
0x9C,0x0E,0x70,0x38,0x71,0x87,0x1C,0x1C,0x03,0x0E,0x73,0x9C,0x0E,0x70,0x38,0xE1,
0xC6,0x0E,0x38,0x03,0x8C,0x73,0x8E,0x4E,0x70,0xFF,0x81,0x3C,0x03,0xE0,0x02,0x78,
0xFB,0xC7,0x9F,0xF8
};
FONT DSO_Shell = {
(U8*)DSO_Shell_font,
88,
12,
88,
12,
0
};
#define ASC8X16_Use_Display_Char_Only
const U8 Font_ASC8X16[128*16] = {
#ifndef ASC8X16_Use_Display_Char_Only
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x00
0x00,0x00,0x7E,0x81,0xA5,0x81,0x81,0xBD,0x99,0x81,0x81,0x7E,0x00,0x00,0x00,0x00, //0x01
0x00,0x00,0x7E,0xFF,0xDB,0xFF,0xFF,0xC3,0xE7,0xFF,0xFF,0x7E,0x00,0x00,0x00,0x00, //0x02
0x00,0x00,0x00,0x00,0x6C,0xFE,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00, //0x03
0x00,0x00,0x00,0x00,0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00,0x00, //0x04
0x00,0x00,0x00,0x18,0x3C,0x3C,0xE7,0xE7,0xE7,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x05
0x00,0x00,0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x06
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00,0x00,0x00, //0x07
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //0x08
0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,0x00,0x00,0x00,0x00, //0x09
0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF, //0x0A
0x00,0x00,0x1E,0x0E,0x1A,0x32,0x78,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00,0x00,0x00, //0x0B
0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00, //0x0C
0x00,0x00,0x3F,0x33,0x3F,0x30,0x30,0x30,0x30,0x70,0xF0,0xE0,0x00,0x00,0x00,0x00, //0x0D
0x00,0x00,0x7F,0x63,0x7F,0x63,0x63,0x63,0x63,0x67,0xE7,0xE6,0xC0,0x00,0x00,0x00, //0x0E
0x00,0x00,0x00,0x18,0x18,0xDB,0x3C,0xE7,0x3C,0xDB,0x18,0x18,0x00,0x00,0x00,0x00, //0x0F
0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFE,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00, //0x10
0x00,0x02,0x06,0x0E,0x1E,0x3E,0xFE,0x3E,0x1E,0x0E,0x06,0x02,0x00,0x00,0x00,0x00, //0x11
0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00,0x00, //0x12
0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x66,0x00,0x00,0x00,0x00, //0x13
0x00,0x00,0x7F,0xDB,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00, //0x14
0x00,0x7C,0xC6,0x60,0x38,0x6C,0xC6,0xC6,0x6C,0x38,0x0C,0xC6,0x7C,0x00,0x00,0x00, //0x15
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00, //0x16
0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x7E,0x00,0x00,0x00,0x00, //0x17
0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, //0x18
0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00, //0x19
0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00,0x00,0x00,0x00,0x00, //0x1A
0x00,0x00,0x00,0x00,0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x00, //0x1B
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, //0x1C
0x00,0x00,0x00,0x00,0x00,0x28,0x6C,0xFE,0x6C,0x28,0x00,0x00,0x00,0x00,0x00,0x00, //0x1D
0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x7C,0x7C,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00, //0x1E
0x00,0x00,0x00,0x00,0xFE,0xFE,0x7C,0x7C,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00, //0x1F
#endif
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x20' '
0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00, //0x21'!'
0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x22'"'
0x00,0x00,0x00,0x6C,0x6C,0xFE,0x6C,0x6C,0x6C,0xFE,0x6C,0x6C,0x00,0x00,0x00,0x00, //0x23'#'
0x18,0x18,0x7C,0xC6,0xC2,0xC0,0x7C,0x06,0x06,0x86,0xC6,0x7C,0x18,0x18,0x00,0x00, //0x24'$'
0x00,0x00,0x00,0x00,0xC2,0xC6,0x0C,0x18,0x30,0x60,0xC6,0x86,0x00,0x00,0x00,0x00, //0x25'%'
0x00,0x00,0x38,0x6C,0x6C,0x38,0x76,0xDC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x26'&'
0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x27'''
0x00,0x00,0x0C,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0x0C,0x00,0x00,0x00,0x00, //0x28'('
0x00,0x00,0x30,0x18,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x18,0x30,0x00,0x00,0x00,0x00, //0x29')'
0x00,0x00,0x00,0x00,0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00, //0x2A'*'
0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00, //0x2B'+'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00,0x00, //0x2C','
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x2D'-'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, //0x2E'.'
0x00,0x00,0x00,0x00,0x02,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00, //0x2F'/'
0x00,0x00,0x38,0x6C,0xC6,0xC6,0xD6,0xD6,0xC6,0xC6,0x6C,0x38,0x00,0x00,0x00,0x00, //0x30'0'
0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00, //0x31'1'
0x00,0x00,0x7C,0xC6,0x06,0x0C,0x18,0x30,0x60,0xC0,0xC6,0xFE,0x00,0x00,0x00,0x00, //0x32'2'
0x00,0x00,0x7C,0xC6,0x06,0x06,0x3C,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x33'3'
0x00,0x00,0x0C,0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00, //0x34'4'
0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xFC,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x35'5'
0x00,0x00,0x38,0x60,0xC0,0xC0,0xFC,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x36'6'
0x00,0x00,0xFE,0xC6,0x06,0x06,0x0C,0x18,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00, //0x37'7'
0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7C,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x38'8'
0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x7E,0x06,0x06,0x06,0x0C,0x78,0x00,0x00,0x00,0x00, //0x39'9'
0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00, //0x3A':'
0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00, //0x3B';'
0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,0x00,0x00, //0x3C'<'
0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x3D'='
0x00,0x00,0x00,0x60,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x60,0x00,0x00,0x00,0x00, //0x3E'>'
0x00,0x00,0x7C,0xC6,0xC6,0x0C,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00, //0x3F'?'
0x00,0x00,0x00,0x7C,0xC6,0xC6,0xDE,0xDE,0xDE,0xDC,0xC0,0x7C,0x00,0x00,0x00,0x00, //0x40'@'
0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0x41'A'
0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x66,0x66,0x66,0x66,0xFC,0x00,0x00,0x00,0x00, //0x42'B'
0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x00,0x00,0x00,0x00, //0x43'C'
0x00,0x00,0xF8,0x6C,0x66,0x66,0x66,0x66,0x66,0x66,0x6C,0xF8,0x00,0x00,0x00,0x00, //0x44'D'
0x00,0x00,0xFE,0x66,0x62,0x68,0x78,0x68,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00, //0x45'E'
0x00,0x00,0xFE,0x66,0x62,0x68,0x78,0x68,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00, //0x46'F'
0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xDE,0xC6,0xC6,0x66,0x3A,0x00,0x00,0x00,0x00, //0x47'G'
0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0x48'H'
0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x49'I'
0x00,0x00,0x1E,0x0C,0x0C,0x0C,0x0C,0x0C,0xCC,0xCC,0xCC,0x78,0x00,0x00,0x00,0x00, //0x4A'J'
0x00,0x00,0xE6,0x66,0x66,0x6C,0x78,0x78,0x6C,0x66,0x66,0xE6,0x00,0x00,0x00,0x00, //0x4B'K'
0x00,0x00,0xF0,0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00, //0x4C'L'
0x00,0x00,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0x4D'M'
0x00,0x00,0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0x4E'N'
0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x4F'O'
0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00, //0x50'P'
0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xD6,0xDE,0x7C,0x0C,0x0E,0x00,0x00, //0x51'Q'
0x00,0x00,0xFC,0x66,0x66,0x66,0x7C,0x6C,0x66,0x66,0x66,0xE6,0x00,0x00,0x00,0x00, //0x52'R'
0x00,0x00,0x7C,0xC6,0xC6,0x60,0x38,0x0C,0x06,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x53'S'
0x00,0x00,0x7E,0x7E,0x5A,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x54'T'
0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x55'U'
0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x10,0x00,0x00,0x00,0x00, //0x56'V'
0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0xEE,0x6C,0x00,0x00,0x00,0x00, //0x57'W'
0x00,0x00,0xC6,0xC6,0x6C,0x7C,0x38,0x38,0x7C,0x6C,0xC6,0xC6,0x00,0x00,0x00,0x00, //0x58'X'
0x00,0x00,0x66,0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x59'Y'
0x00,0x00,0xFE,0xC6,0x86,0x0C,0x18,0x30,0x60,0xC2,0xC6,0xFE,0x00,0x00,0x00,0x00, //0x5A'Z'
0x00,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,0x00,0x00,0x00, //0x5B'['
0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x06,0x02,0x00,0x00,0x00,0x00, //0x5C'\'
0x00,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,0x00,0x00,0x00, //0x5D']'
0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x5E'^'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00, //0x5F'_'
0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x60'`'
0x00,0x00,0x00,0x00,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x61'a'
0x00,0x00,0xE0,0x60,0x60,0x78,0x6C,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,0x00,0x00, //0x62'b'
0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC0,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x63'c'
0x00,0x00,0x1C,0x0C,0x0C,0x3C,0x6C,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x64'd'
0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x65'e'
0x00,0x00,0x38,0x6C,0x64,0x60,0xF0,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00, //0x66'f'
0x00,0x00,0x00,0x00,0x00,0x76,0xCC,0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0xCC,0x78,0x00, //0x67'g'
0x00,0x00,0xE0,0x60,0x60,0x6C,0x76,0x66,0x66,0x66,0x66,0xE6,0x00,0x00,0x00,0x00, //0x68'h'
0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x69'i'
0x00,0x00,0x06,0x06,0x00,0x0E,0x06,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3C,0x00, //0x6A'j'
0x00,0x00,0xE0,0x60,0x60,0x66,0x6C,0x78,0x78,0x6C,0x66,0xE6,0x00,0x00,0x00,0x00, //0x6B'k'
0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x6C'l'
0x00,0x00,0x00,0x00,0x00,0xEC,0xFE,0xD6,0xD6,0xD6,0xD6,0xC6,0x00,0x00,0x00,0x00, //0x6D'm'
0x00,0x00,0x00,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, //0x6E'n'
0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x6F'o'
0x00,0x00,0x00,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00, //0x70'p'
0x00,0x00,0x00,0x00,0x00,0x76,0xCC,0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0x0C,0x1E,0x00, //0x71'q'
0x00,0x00,0x00,0x00,0x00,0xDC,0x76,0x66,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00, //0x72'r'
0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0x60,0x38,0x0C,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x73's'
0x00,0x00,0x10,0x30,0x30,0xFC,0x30,0x30,0x30,0x30,0x36,0x1C,0x00,0x00,0x00,0x00, //0x74't'
0x00,0x00,0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x75'u'
0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,0x00,0x00,0x00, //0x76'v'
0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0x6C,0x00,0x00,0x00,0x00, //0x77'w'
0x00,0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x38,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00, //0x78'x'
0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0xF8,0x00, //0x79'y'
0x00,0x00,0x00,0x00,0x00,0xFE,0xCC,0x18,0x30,0x60,0xC6,0xFE,0x00,0x00,0x00,0x00, //0x7A'z'
0x00,0x00,0x0E,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0E,0x00,0x00,0x00,0x00, //0x7B''
0x00,0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, //0x7C'|'
0x00,0x00,0x70,0x18,0x18,0x18,0x0E,0x18,0x18,0x18,0x18,0x70,0x00,0x00,0x00,0x00, //0x7D''
0x00,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x7E'~'
// 0x00,0x00,0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0x00,0x00,0x00,0x00,0x00, //0x7F''
0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7E,0x62,0x60,0x60,0xC0,
// 0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xC0,0x00,0x00,0x00, //0xE6 -- Greek (u)
#ifdef ASC8X16_USE_EXTEND_CHARACTER_SET
0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x0C,0x06,0x7C,0x00,0x00, //0x80
0x00,0x00,0xCC,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x81
0x00,0x0C,0x18,0x30,0x00,0x7C,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x82
0x00,0x10,0x38,0x6C,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x83
0x00,0x00,0xCC,0x00,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x84
0x00,0x60,0x30,0x18,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x85
0x00,0x38,0x6C,0x38,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x86
0x00,0x00,0x00,0x00,0x3C,0x66,0x60,0x60,0x66,0x3C,0x0C,0x06,0x3C,0x00,0x00,0x00, //0x87
0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x88
0x00,0x00,0xC6,0x00,0x00,0x7C,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x89
0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x8A
0x00,0x00,0x66,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x8B
0x00,0x18,0x3C,0x66,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x8C
0x00,0x60,0x30,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0x8D
0x00,0xC6,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0x8E
0x38,0x6C,0x38,0x00,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0x8F
0x18,0x30,0x60,0x00,0xFE,0x66,0x60,0x7C,0x60,0x60,0x66,0xFE,0x00,0x00,0x00,0x00, //0x90
0x00,0x00,0x00,0x00,0x00,0xCC,0x76,0x36,0x7E,0xD8,0xD8,0x6E,0x00,0x00,0x00,0x00, //0x91
0x00,0x00,0x3E,0x6C,0xCC,0xCC,0xFE,0xCC,0xCC,0xCC,0xCC,0xCE,0x00,0x00,0x00,0x00, //0x92
0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x93
0x00,0x00,0xC6,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x94
0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x95
0x00,0x30,0x78,0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x96
0x00,0x60,0x30,0x18,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0x97
0x00,0x00,0xC6,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00, //0x98
0x00,0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x99
0x00,0xC6,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0x9A
0x00,0x18,0x18,0x3C,0x66,0x60,0x60,0x60,0x66,0x3C,0x18,0x18,0x00,0x00,0x00,0x00, //0x9B
0x00,0x38,0x6C,0x64,0x60,0xF0,0x60,0x60,0x60,0x60,0xE6,0xFC,0x00,0x00,0x00,0x00, //0x9C
0x00,0x00,0x66,0x66,0x3C,0x18,0x7E,0x18,0x7E,0x18,0x18,0x18,0x00,0x00,0x00,0x00, //0x9D
0x00,0xF8,0xCC,0xCC,0xF8,0xC4,0xCC,0xDE,0xCC,0xCC,0xCC,0xC6,0x00,0x00,0x00,0x00, //0x9E
0x00,0x0E,0x1B,0x18,0x18,0x18,0x7E,0x18,0x18,0x18,0x18,0x18,0xD8,0x70,0x00,0x00, //0x9F
0x00,0x18,0x30,0x60,0x00,0x78,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0xA0
0x00,0x0C,0x18,0x30,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00, //0xA1
0x00,0x18,0x30,0x60,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0xA2
0x00,0x18,0x30,0x60,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00, //0xA3
0x00,0x00,0x76,0xDC,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, //0xA4
0x76,0xDC,0x00,0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0xA5
0x00,0x3C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xA6
0x00,0x38,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xA7
0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60,0xC0,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00, //0xA8
0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, //0xA9
0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00, //0xAA
0x00,0xC0,0xC0,0xC2,0xC6,0xCC,0x18,0x30,0x60,0xDC,0x86,0x0C,0x18,0x3E,0x00,0x00, //0xAB
0x00,0xC0,0xC0,0xC2,0xC6,0xCC,0x18,0x30,0x66,0xCE,0x9E,0x3E,0x06,0x06,0x00,0x00, //0xAC
0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x18,0x3C,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00, //0xAD
0x00,0x00,0x00,0x00,0x00,0x36,0x6C,0xD8,0x6C,0x36,0x00,0x00,0x00,0x00,0x00,0x00, //0xAE
0x00,0x00,0x00,0x00,0x00,0xD8,0x6C,0x36,0x6C,0xD8,0x00,0x00,0x00,0x00,0x00,0x00, //0xAF
0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44, //0xB0
0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA, //0xB1
0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77,0xDD,0x77, //0xB2
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xB3
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xB4
0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xB5
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xB6
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xB7
0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xB8
0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xB9
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xBA
0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xBB
0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xBC
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xBD
0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xBE
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xBF
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xC0
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xC1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xC2
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xC3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xC4
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xC5
0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xC6
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xC7
0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xC8
0x00,0x00,0x00,0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xC9
0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xCA
0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xCB
0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xCC
0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xCD
0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xCE
0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xCF
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xD0
0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xD1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xD2
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xD3
0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xD4
0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xD5
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xD6
0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, //0xD7
0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xD8
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xD9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xDA
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //0xDB
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //0xDC
0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, //0xDD
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, //0xDE
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xDF
0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0xD8,0xD8,0xD8,0xDC,0x76,0x00,0x00,0x00,0x00, //0xE0
0x00,0x00,0x78,0xCC,0xCC,0xCC,0xD8,0xCC,0xC6,0xC6,0xC6,0xCC,0x00,0x00,0x00,0x00, //0xE1
0x00,0x00,0xFE,0xC6,0xC6,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00, //0xE2
0x00,0x00,0x00,0x00,0xFE,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00, //0xE3
0x00,0x00,0x00,0xFE,0xC6,0x60,0x30,0x18,0x30,0x60,0xC6,0xFE,0x00,0x00,0x00,0x00, //0xE4
0x00,0x00,0x00,0x00,0x00,0x7E,0xD8,0xD8,0xD8,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00, //0xE5
0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xC0,0x00,0x00,0x00, //0xE6 -- (u) micro
0x00,0x00,0x00,0x00,0x76,0xDC,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, //0xE7
0x00,0x00,0x00,0x7E,0x18,0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x00,0x00,0x00,0x00, //0xE8
0x00,0x00,0x00,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0x6C,0x38,0x00,0x00,0x00,0x00, //0xE9
0x00,0x00,0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x6C,0x6C,0x6C,0xEE,0x00,0x00,0x00,0x00, //0xEA
0x00,0x00,0x1E,0x30,0x18,0x0C,0x3E,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00, //0xEB
0x00,0x00,0x00,0x00,0x00,0x7E,0xDB,0xDB,0xDB,0x7E,0x00,0x00,0x00,0x00,0x00,0x00, //0xEC
0x00,0x00,0x00,0x03,0x06,0x7E,0xDB,0xDB,0xF3,0x7E,0x60,0xC0,0x00,0x00,0x00,0x00, //0xED
0x00,0x00,0x1C,0x30,0x60,0x60,0x7C,0x60,0x60,0x60,0x30,0x1C,0x00,0x00,0x00,0x00, //0xEE
0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00, //0xEF
0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00, //0xF0
0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0xFF,0x00,0x00,0x00,0x00, //0xF1
0x00,0x00,0x00,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00,0x7E,0x00,0x00,0x00,0x00, //0xF2
0x00,0x00,0x00,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00,0x7E,0x00,0x00,0x00,0x00, //0xF3
0x00,0x00,0x0E,0x1B,0x1B,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, //0xF4
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xD8,0xD8,0xD8,0x70,0x00,0x00,0x00,0x00, //0xF5
0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00, //0xF6
0x00,0x00,0x00,0x00,0x00,0x76,0xDC,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00, //0xF7
0x00,0x38,0x6C,0x6C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xF8
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xF9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xFA
0x00,0x0F,0x0C,0x0C,0x0C,0x0C,0x0C,0xEC,0x6C,0x6C,0x3C,0x1C,0x00,0x00,0x00,0x00, //0xFB
0x00,0xD8,0x6C,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xFC
0x00,0x70,0xD8,0x30,0x60,0xC8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0xFD
0x00,0x00,0x00,0x00,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00, //0xFE
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 //0xFF
#endif
};
FONT ASC8X16 = {
(U8 *)Font_ASC8X16,
8,
16,
8,
16,
0x20
};
// ===== Function Definitions ==================
//
// ==========================================
// Clear screen
void ClrScreen(void)
{
FillRect(ScreenX0, ScreenY0, ScreenXsize, ScreenYsize, clBlack);
}
void SetWindow(U16 x, U16 xsize, U16 y, U16 ysize)
{
write_comm(0x2A);
write_data(x >> 8);
write_data(x);
x = x + xsize - 1;
write_data(x >> 8);
write_data(x);
write_comm(0x2B);
write_data(y >> 8);
write_data(y);
y = y + ysize - 1;
write_data(y >> 8);
write_data(y);
}
// ==========================================
// Fill rectangle area with given color
void FillRect_9325(S16 x, S16 y, S16 xsize, S16 ysize, U16 color)
{
U32 tmp;
// Set X start and end address
TFT_CmdWrite(TFT_VAddressStart, x);
TFT_CmdWrite(TFT_VAddressEnd, x + xsize - 1);
// Set Y start and end address
TFT_CmdWrite(TFT_HAddressStart, y);
TFT_CmdWrite(TFT_HAddressEnd, y + ysize - 1);
// Set data start address in GRAM
TFT_CmdWrite(TFT_DramHAddress, y);
TFT_CmdWrite(TFT_DramVAddress, x);
// Delay(200);
// Fill with bgcolor
TFT_AccessGRAM();
tmp = (U32)xsize * (U32)ysize;
// Set up to access Data Register (RS == 1)
SetToHigh(TFT_RS_Port, (1 << TFT_RS_Bit));
while(tmp) {
TFT_Port = (TFT_Port & 0xFF00) | (color >> 8);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
TFT_Port = (TFT_Port & 0xFF00) | (color & 0x00FF);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
tmp--;
}
// sei();
TFT_AccessGRAM_End();
// Set LCD_nCS high
// BitSet8(LCD_nCS_Port, (1 << LCD_nCS_Bit));
}
// Put at (x, y) a 15X16 character [ch] with [f_color] and [b_color]
//
void PutcGenic_9325(U16 x, U16 y, U8 ch, U16 fgcolor, U16 bgcolor, FONT *font)
{
U8 tmp, tmp2;
U16 tmp1, tmp3;
U8 *ptmp;
// Font address
ptmp = (U8 *)font->Array + (ch - font->IndexOfs) * ((font->Xsize + 7)/8) * font->Ysize;
// Set X start and end address
TFT_CmdWrite(TFT_VAddressStart, x);
TFT_CmdWrite(TFT_VAddressEnd, x + font->Xsize - 1);
// Set Y start and end address
TFT_CmdWrite(TFT_HAddressStart, y);
TFT_CmdWrite(TFT_HAddressEnd, y + font->Ysize - 1);
// Set data start address in GRAM
TFT_CmdWrite(TFT_DramVAddress, x);
TFT_CmdWrite(TFT_DramHAddress, y);
TFT_AccessGRAM();
// Set up to access Data Register (RS == 1)
SetToHigh(TFT_RS_Port, (1 << TFT_RS_Bit));
tmp1 = (font->Xsize * font->Ysize)/8;
while(tmp1) {
tmp = *ptmp;
tmp2 = 8;
while(tmp2) {
tmp3 = (tmp & 0x80) ? fgcolor : bgcolor;
TFT_Port = (TFT_Port & 0xFF00) | (tmp3 >> 8);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
TFT_Port = (TFT_Port & 0xFF00) | (tmp3 & 0x00FF);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
tmp <<= 1;
tmp2--;
}
ptmp++;
tmp1--;
}
TFT_AccessGRAM_End();
}
// ==========================================
// Fill rectangle area with given color
void FillRect_9341(S16 x, S16 y, S16 xsize, S16 ysize, U16 color)
{
U32 tmp;
SetWindow(x, xsize, y, ysize);
// Delay(200);
SetToLow(TFT_nCS_Port, (1 << TFT_nCS_Bit));
SetToLow(TFT_RS_Port, (1 << TFT_RS_Bit));
// Delay(2);
TFT_Port = (TFT_Port & 0xFF00) | 0x2C;
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
tmp = (U32)xsize * (U32)ysize;
// Set up to access Index Register (RS == 1)
SetToHigh(TFT_RS_Port, (1 << TFT_RS_Bit));
while(tmp) {
TFT_Port = (TFT_Port & 0xFF00) | (color >> 8);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
TFT_Port = (TFT_Port & 0xFF00) | (color & 0x00FF);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
tmp--;
}
// Set TFT_nCS high
SetToHigh(TFT_nCS_Port, (1 << TFT_nCS_Bit));
}
// Put at (x, y) a 15X16 character [ch] with [f_color] and [b_color]
//
void PutcGenic_9341(U16 x, U16 y, U8 ch, U16 fgcolor, U16 bgcolor, FONT *font)
{
U8 tmp, tmp2;
U16 tmp1, tmp3;
U8 *ptmp;
// Font address
ptmp = (U8 *)font->Array + (ch - font->IndexOfs) * ((font->Xsize + 7)/8) * font->Ysize;
SetWindow(x, font->Xsize, y, font->Ysize);
SetToLow(TFT_nCS_Port, (1 << TFT_nCS_Bit));
SetToLow(TFT_RS_Port, (1 << TFT_RS_Bit));
// Delay(2);
TFT_Port = (TFT_Port & 0xFF00) | 0x2C;
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_RS_Port, (1 << TFT_RS_Bit));
tmp1 = (font->Xsize * font->Ysize)/8;
while(tmp1) {
tmp = *ptmp;
tmp2 = 8;
while(tmp2) {
tmp3 = (tmp & 0x80) ? fgcolor : bgcolor;
TFT_Port = (TFT_Port & 0xFF00) | (tmp3 >> 8);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
TFT_Port = (TFT_Port & 0xFF00) | (tmp3 & 0x00FF);
SetToLow(TFT_nWR_Port, (1 << TFT_nWR_Bit));
SetToHigh(TFT_nWR_Port, (1 << TFT_nWR_Bit));
tmp <<= 1;
tmp2--;
}
ptmp++;
tmp1--;
}
SetToHigh(TFT_nCS_Port, (1 << TFT_nCS_Bit));
}
void FillRect(S16 x, S16 y, S16 xsize, S16 ysize, U16 color)
{
if(TFT_Controller == 0x9341) {
FillRect_9341(x, y, xsize, ysize, color);
}
else {
FillRect_9325(x, y, xsize, ysize, color);
}
}
void PutsGenic(U16 x, U16 y, U8 *str, U16 fgcolor, U16 bgcolor, FONT *font)
{
U8 tmp;
if(TFT_Controller == 0x9341) {
while((tmp = *str++)) {
PutcGenic_9341(x, y, tmp, fgcolor, bgcolor, font);
x += font->CharPitch;
if(x >= ScreenXsize) {
y += font->LinePitch;
x = 0;
}
}
}
else {
while((tmp = *str++)) {
PutcGenic_9325(x, y, tmp, fgcolor, bgcolor, font);
x += font->CharPitch;
if(x >= ScreenXsize) {
y += font->LinePitch;
x = 0;
}
}
}
}
void PutcGenic(U16 x, U16 y, U8 ch, U16 fgcolor, U16 bgcolor, FONT *font)
{
if(TFT_Controller == 0x9341) {
PutcGenic_9341(x, y, ch, fgcolor, bgcolor, font);
}
else {
PutcGenic_9325(x, y, ch, fgcolor, bgcolor, font);
}
}