Display
Display
* File: display.c
* Author: Sanket
*/
#include "display.h"
#include "timer.h"
//#define DISP_USE_MONOSPACE_FONT
#if DISP_PANELS == 1U
#define DISP_ROW_SIZE (2)
#define DISP_COL_SIZE (32)
#elif DISP_PANELS == 2U
#define DISP_ROW_SIZE (2)
#define DISP_COL_SIZE (64)
#elif DISP_PANELS == 3U
#define DISP_ROW_SIZE (2)
#define DISP_COL_SIZE (96)
#elif DISP_PANELS == 4U
#define DISP_ROW_SIZE (2)
#define DISP_COL_SIZE (128)
#endif
/*
* Global variables
*/
#ifdef DISP_USE_MONOSPACE_FONT
static const uint8_t lookup[DISP_MAX_CHARS][DISP_CHAR_WIDTH] = {
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' '
0x02, 0xFF, 0x1B, 0xFF, 0x1B, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char !
0x05, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char "
0x07, 0xB0, 0x01, 0xB0, 0x19, 0xFC, 0x07, 0xB3, 0x19,
0xFC, 0x07, 0xB3, 0x01, 0xB0, 0x01, 0x00, 0x00, // Code for char #
0x07, 0x3C, 0x06, 0x7E, 0x0C, 0x66, 0x0C, 0xFF, 0x1F,
0x66, 0x0C, 0xE6, 0x0F, 0xCC, 0x07, 0x00, 0x00, // Code for char $
0x07, 0x0C, 0x00, 0x0C, 0x18, 0xC0, 0x1F, 0xFC, 0x07,
0x3F, 0x00, 0x03, 0x06, 0x00, 0x06, 0x00, 0x00, // Code for char %
0x07, 0xBE, 0x0F, 0xFF, 0x1F, 0x63, 0x18, 0xFF, 0x1F,
0xDE, 0x0F, 0x00, 0x07, 0x80, 0x0D, 0x00, 0x00, // Code for char &
0x02, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char '
0x05, 0xE0, 0x00, 0xF8, 0x03, 0x1E, 0x0F, 0x07, 0x1C,
0x03, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
0x05, 0x03, 0x18, 0x07, 0x1C, 0x1E, 0x0F, 0xF8, 0x03,
0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
0x06, 0xB8, 0x01, 0xB0, 0x00, 0xFC, 0x03, 0xFC, 0x03,
0xB0, 0x00, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char *
0x06, 0x60, 0x00, 0x60, 0x00, 0xFC, 0x03, 0xFC, 0x03,
0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
0x02, 0x00, 0x18, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
0x06, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
0x02, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char .
0x05, 0x00, 0x18, 0xC0, 0x1F, 0xFC, 0x07, 0x3F, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
0x07, 0xFE, 0x0F, 0xFF, 0x1F, 0x83, 0x19, 0xE3, 0x18,
0x33, 0x18, 0xFF, 0x1F, 0xFE, 0x0F, 0x00, 0x00, // Code for char 0
0x07, 0x00, 0x18, 0x06, 0x18, 0x06, 0x18, 0xFF, 0x1F,
0xFF, 0x1F, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, // Code for char 1
0x07, 0x06, 0x1E, 0x07, 0x1F, 0x83, 0x19, 0xC3, 0x18,
0x63, 0x18, 0x3F, 0x18, 0x1E, 0x18, 0x00, 0x00, // Code for char 2
0x07, 0x06, 0x0C, 0x07, 0x1C, 0x63, 0x18, 0x63, 0x18,
0x63, 0x18, 0xFF, 0x1F, 0xBE, 0x0F, 0x00, 0x00, // Code for char 3
0x07, 0x00, 0x07, 0xC0, 0x07, 0xF0, 0x06, 0x3C, 0x06,
0x0F, 0x06, 0x83, 0x1F, 0x80, 0x1F, 0x00, 0x00, // Code for char 4
0x07, 0x7F, 0x0C, 0x7F, 0x1C, 0x63, 0x18, 0x63, 0x18,
0x63, 0x18, 0xE3, 0x1F, 0xC3, 0x0F, 0x00, 0x00, // Code for char 5
0x07, 0xE0, 0x0F, 0xF8, 0x1F, 0x7E, 0x18, 0x66, 0x18,
0x63, 0x18, 0xE3, 0x1F, 0xC0, 0x0F, 0x00, 0x00, // Code for char 6
0x07, 0x07, 0x00, 0x07, 0x18, 0x03, 0x1E, 0x83, 0x07,
0xE3, 0x01, 0x7F, 0x00, 0x1F, 0x00, 0x00, 0x00, // Code for char 7
0x07, 0xBE, 0x0F, 0xFF, 0x1F, 0x63, 0x18, 0x63, 0x18,
0x63, 0x18, 0xFF, 0x1F, 0xBE, 0x0F, 0x00, 0x00, // Code for char 8
0x07, 0x7E, 0x00, 0xFF, 0x18, 0xC3, 0x18, 0xC3, 0x0C,
0xC3, 0x0F, 0xFF, 0x03, 0xFE, 0x00, 0x00, 0x00, // Code for char 9
0x02, 0x60, 0x18, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char :
0x02, 0x60, 0x18, 0x60, 0x78, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
0x06, 0x40, 0x00, 0xE0, 0x00, 0xF0, 0x01, 0xB8, 0x03,
0x1C, 0x07, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, // Code for char <
0x07, 0x98, 0x01, 0x98, 0x01, 0x98, 0x01, 0x98, 0x01,
0x98, 0x01, 0x98, 0x01, 0x98, 0x01, 0x00, 0x00, // Code for char =
0x06, 0x0C, 0x06, 0x1C, 0x07, 0xB8, 0x03, 0xF0, 0x01,
0xE0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
0x07, 0x06, 0x00, 0x07, 0x1B, 0x83, 0x1B, 0xC3, 0x00,
0x63, 0x00, 0x3F, 0x00, 0x1E, 0x00, 0x00, 0x00, // Code for char ?
0x07, 0xFE, 0x0F, 0x07, 0x18, 0xF3, 0x13, 0xFB, 0x17,
0x0B, 0x16, 0xFF, 0x07, 0xFE, 0x07, 0x00, 0x00, // Code for char @
0x07, 0xFE, 0x1F, 0xFF, 0x1F, 0x63, 0x00, 0x63, 0x00,
0x63, 0x00, 0xFF, 0x1F, 0xFE, 0x1F, 0x00, 0x00, // Code for char A
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x63, 0x18, 0x63, 0x18,
0x63, 0x18, 0xFF, 0x1F, 0xBE, 0x0F, 0x00, 0x00, // Code for char B
0x07, 0xFE, 0x0F, 0xFF, 0x1F, 0x03, 0x18, 0x03, 0x18,
0x03, 0x18, 0x07, 0x1C, 0x06, 0x0C, 0x00, 0x00, // Code for char C
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x03, 0x18, 0x03, 0x18,
0x03, 0x18, 0xFF, 0x1F, 0xFE, 0x0F, 0x00, 0x00, // Code for char D
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x63, 0x18, 0x63, 0x18,
0x63, 0x18, 0x63, 0x18, 0x03, 0x18, 0x00, 0x00, // Code for char E
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x63, 0x00, 0x63, 0x00,
0x63, 0x00, 0x63, 0x00, 0x03, 0x00, 0x00, 0x00, // Code for char F
0x07, 0xFE, 0x0F, 0xFF, 0x1F, 0x03, 0x18, 0x03, 0x18,
0x63, 0x18, 0xE7, 0x1F, 0xE6, 0x1F, 0x00, 0x00, // Code for char G
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x60, 0x00, 0x60, 0x00,
0x60, 0x00, 0xFF, 0x1F, 0xFF, 0x1F, 0x00, 0x00, // Code for char H
0x06, 0x03, 0x18, 0x03, 0x18, 0xFF, 0x1F, 0xFF, 0x1F,
0x03, 0x18, 0x03, 0x18, 0x00, 0x00, 0x00, 0x00, // Code for char I
0x07, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x18, 0x03, 0x18,
0xFF, 0x1F, 0xFF, 0x0F, 0x03, 0x00, 0x00, 0x00, // Code for char J
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x60, 0x00, 0xF8, 0x01,
0x9E, 0x07, 0x07, 0x1E, 0x01, 0x18, 0x00, 0x00, // Code for char K
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x00, 0x18, 0x00, 0x18,
0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, // Code for char L
0x07, 0xFF, 0x1F, 0xFE, 0x1F, 0x18, 0x00, 0x70, 0x00,
0x18, 0x00, 0xFE, 0x1F, 0xFF, 0x1F, 0x00, 0x00, // Code for char M
0x07, 0xFF, 0x1F, 0xFE, 0x1F, 0x38, 0x00, 0xE0, 0x00,
0x80, 0x03, 0xFF, 0x0F, 0xFF, 0x1F, 0x00, 0x00, // Code for char N
0x07, 0xFE, 0x0F, 0xFF, 0x1F, 0x03, 0x18, 0x03, 0x18,
0x03, 0x18, 0xFF, 0x1F, 0xFE, 0x0F, 0x00, 0x00, // Code for char O
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x63, 0x00, 0x63, 0x00,
0x63, 0x00, 0x7F, 0x00, 0x3E, 0x00, 0x00, 0x00, // Code for char P
0x07, 0xFE, 0x03, 0xFF, 0x07, 0x03, 0x06, 0x83, 0x0F,
0x03, 0x1E, 0xFF, 0x17, 0xFE, 0x13, 0x00, 0x00, // Code for char Q
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x63, 0x00, 0xE3, 0x00,
0xE3, 0x03, 0x7F, 0x1F, 0x3E, 0x1C, 0x00, 0x00, // Code for char R
0x07, 0x3E, 0x0C, 0x7F, 0x1C, 0x63, 0x18, 0x63, 0x18,
0x63, 0x18, 0xE7, 0x1F, 0xC6, 0x0F, 0x00, 0x00, // Code for char S
0x06, 0x03, 0x00, 0x03, 0x00, 0xFF, 0x1F, 0xFF, 0x1F,
0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
0x07, 0xFF, 0x0F, 0xFF, 0x1F, 0x00, 0x18, 0x00, 0x18,
0x00, 0x18, 0xFF, 0x1F, 0xFF, 0x0F, 0x00, 0x00, // Code for char U
0x07, 0xFF, 0x03, 0xFF, 0x07, 0x00, 0x0E, 0x00, 0x1C,
0x00, 0x0E, 0xFF, 0x07, 0xFF, 0x03, 0x00, 0x00, // Code for char V
0x07, 0xFF, 0x1F, 0xFF, 0x0F, 0x00, 0x03, 0xC0, 0x01,
0x00, 0x03, 0xFF, 0x0F, 0xFF, 0x1F, 0x00, 0x00, // Code for char W
0x07, 0x07, 0x1C, 0x1F, 0x1F, 0xB8, 0x03, 0xE0, 0x00,
0xB8, 0x03, 0x1F, 0x1F, 0x07, 0x1C, 0x00, 0x00, // Code for char X
0x07, 0x07, 0x00, 0x1F, 0x00, 0x38, 0x00, 0xE0, 0x1F,
0xF8, 0x1F, 0x1F, 0x00, 0x07, 0x00, 0x00, 0x00, // Code for char Y
0x07, 0x03, 0x1C, 0x03, 0x1F, 0x83, 0x1B, 0xE3, 0x18,
0x3B, 0x18, 0x1F, 0x18, 0x07, 0x18, 0x00, 0x00, // Code for char Z
0x04, 0xFE, 0x7F, 0xFE, 0x7F, 0x06, 0x60, 0x06, 0x60,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
0x05, 0x03, 0x00, 0x3F, 0x00, 0xFC, 0x07, 0xC0, 0x1F,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash
0x04, 0x06, 0x60, 0x06, 0x60, 0xFE, 0x7F, 0xFE, 0x7F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
0x07, 0x60, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00,
0x38, 0x00, 0x70, 0x00, 0x60, 0x00, 0x00, 0x00, // Code for char ^
0x07, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18,
0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, // Code for char _
0x04, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
0x07, 0x00, 0x0E, 0x40, 0x1F, 0x60, 0x19, 0x60, 0x19,
0x60, 0x19, 0xE0, 0x1F, 0xE0, 0x1F, 0x00, 0x00, // Code for char a
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x60, 0x18, 0x60, 0x18,
0x60, 0x18, 0xE0, 0x1F, 0xC0, 0x0F, 0x00, 0x00, // Code for char b
0x07, 0xC0, 0x0F, 0xE0, 0x1F, 0x60, 0x18, 0x60, 0x18,
0x60, 0x18, 0xE0, 0x1C, 0xC0, 0x0C, 0x00, 0x00, // Code for char c
0x07, 0xC0, 0x0F, 0xE0, 0x1F, 0x60, 0x18, 0x60, 0x18,
0x60, 0x18, 0xFF, 0x1F, 0xFF, 0x1F, 0x00, 0x00, // Code for char d
0x07, 0xC0, 0x0F, 0xE0, 0x1F, 0x60, 0x1A, 0x60, 0x1A,
0x60, 0x1A, 0xE0, 0x1B, 0xC0, 0x09, 0x00, 0x00, // Code for char e
0x07, 0x60, 0x00, 0xFE, 0x1F, 0xFF, 0x1F, 0x63, 0x00,
0x63, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char f
0x07, 0xC0, 0x4F, 0xE0, 0xDF, 0x60, 0xD8, 0x60, 0xD8,
0x60, 0xD8, 0xE0, 0xFF, 0xC0, 0x7F, 0x00, 0x00, // Code for char g
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x60, 0x00, 0x60, 0x00,
0x60, 0x00, 0xE0, 0x1F, 0xC0, 0x1F, 0x00, 0x00, // Code for char h
0x06, 0x00, 0x18, 0x60, 0x18, 0xEC, 0x1F, 0xEC, 0x1F,
0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, // Code for char i
0x06, 0x00, 0x60, 0x00, 0xE0, 0x60, 0xC0, 0x60, 0xC0,
0xEC, 0xFF, 0xEC, 0x7F, 0x00, 0x00, 0x00, 0x00, // Code for char j
0x07, 0xFF, 0x1F, 0xFF, 0x1F, 0x80, 0x01, 0xE0, 0x03,
0x70, 0x06, 0x10, 0x0C, 0x00, 0x18, 0x00, 0x00, // Code for char k
0x05, 0x03, 0x00, 0xFF, 0x1F, 0xFF, 0x1F, 0x00, 0x18,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l
0x07, 0xE0, 0x1F, 0xE0, 0x1F, 0x60, 0x00, 0xC0, 0x1F,
0x60, 0x00, 0xE0, 0x1F, 0xC0, 0x1F, 0x00, 0x00, // Code for char m
0x07, 0xE0, 0x1F, 0xE0, 0x1F, 0x60, 0x00, 0x60, 0x00,
0x60, 0x00, 0xE0, 0x1F, 0xC0, 0x1F, 0x00, 0x00, // Code for char n
0x07, 0xC0, 0x0F, 0xE0, 0x1F, 0x60, 0x18, 0x60, 0x18,
0x60, 0x18, 0xE0, 0x1F, 0xC0, 0x0F, 0x00, 0x00, // Code for char o
0x07, 0xE0, 0xFF, 0xE0, 0xFF, 0x60, 0x18, 0x60, 0x18,
0x60, 0x18, 0xE0, 0x1F, 0xC0, 0x0F, 0x00, 0x00, // Code for char p
0x07, 0xC0, 0x0F, 0xE0, 0x1F, 0x60, 0x18, 0x60, 0x18,
0x60, 0x18, 0xE0, 0xFF, 0xE0, 0xFF, 0x00, 0x00, // Code for char q
0x07, 0xE0, 0x1F, 0xE0, 0x1F, 0xC0, 0x00, 0x60, 0x00,
0x60, 0x00, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00, // Code for char r
0x07, 0xC0, 0x09, 0xE0, 0x1B, 0x60, 0x1B, 0x60, 0x1B,
0x60, 0x1B, 0x60, 0x1F, 0x40, 0x0E, 0x00, 0x00, // Code for char s
0x07, 0x60, 0x00, 0xFF, 0x0F, 0xFF, 0x1F, 0x60, 0x18,
0x60, 0x18, 0x00, 0x1C, 0x00, 0x0C, 0x00, 0x00, // Code for char t
0x07, 0xE0, 0x0F, 0xE0, 0x1F, 0x00, 0x18, 0x00, 0x18,
0x00, 0x18, 0xE0, 0x1F, 0xE0, 0x0F, 0x00, 0x00, // Code for char u
0x07, 0xE0, 0x03, 0xE0, 0x07, 0x00, 0x0C, 0x00, 0x18,
0x00, 0x0C, 0xE0, 0x07, 0xE0, 0x03, 0x00, 0x00, // Code for char v
0x07, 0xE0, 0x0F, 0xE0, 0x1F, 0x00, 0x18, 0xE0, 0x0F,
0x00, 0x18, 0xE0, 0x1F, 0xE0, 0x0F, 0x00, 0x00, // Code for char w
0x07, 0x60, 0x18, 0xE0, 0x1C, 0x80, 0x06, 0x00, 0x03,
0x80, 0x06, 0xE0, 0x1C, 0x60, 0x18, 0x00, 0x00, // Code for char x
0x07, 0xE0, 0x47, 0xE0, 0xCF, 0x00, 0xCC, 0x00, 0xCC,
0x00, 0xCC, 0xE0, 0xFF, 0xE0, 0x7F, 0x00, 0x00, // Code for char y
0x07, 0x60, 0x18, 0x60, 0x1C, 0x60, 0x1E, 0x60, 0x1B,
0xE0, 0x19, 0xE0, 0x18, 0x60, 0x18, 0x00, 0x00, // Code for char z
0x06, 0x80, 0x01, 0x8E, 0x71, 0xFF, 0xFF, 0x73, 0xCE,
0x03, 0xC0, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, // Code for char {
0x02, 0xFE, 0x7F, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
0x06, 0x03, 0xC0, 0x03, 0xC0, 0x73, 0xCE, 0xFF, 0xFF,
0x8E, 0x71, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char }
0x07, 0x06, 0x00, 0x07, 0x00, 0x03, 0x00, 0x07, 0x00,
0x0E, 0x00, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x00, // Code for char ~
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // // Code for char 128
};
#else
static const uint8_t lookup[DISP_MAX_CHARS][DISP_CHAR_WIDTH] = {
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ' '
0x03, 0xFE, 0x0D, 0xFE, 0x0D, 0xFE, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char !
0x05, 0x3E, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x1E, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char "
0x0A, 0x00, 0x03, 0x18, 0x0F, 0xF8, 0x0F, 0xFE, 0x03, 0x1E, 0x03, 0x18,
0x0F, 0xF8, 0x0F, 0xFE, 0x03, 0x1E, 0x03, 0x18, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char #
0x08, 0x38, 0x06, 0x7C, 0x06, 0x6C, 0x06, 0xFE, 0x0F, 0xFE, 0x0F, 0x6C,
0x06, 0xEC, 0x07, 0xCC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $
0x0C, 0x3C, 0x00, 0x7E, 0x00, 0x42, 0x08, 0x7E, 0x0E, 0xBC, 0x0F, 0xE0,
0x03, 0xF8, 0x00, 0xBE, 0x07, 0xCE, 0x0F, 0x42, 0x08, 0xC0, 0x0F, 0x80,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char %
0x0B, 0x80, 0x07, 0xDC, 0x0F, 0xFE, 0x0F, 0x7E, 0x0C, 0x66, 0x0C, 0xFE,
0x0C, 0xFE, 0x0F, 0x9C, 0x07, 0xC0, 0x07, 0xC0, 0x0E, 0x40, 0x0C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char &
0x02, 0x3E, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char '
0x07, 0xC0, 0x03, 0xF0, 0x0F, 0xF8, 0x1F, 0x3C, 0x3C, 0x0E, 0x70, 0x06,
0x60, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
0x07, 0x02, 0x40, 0x06, 0x60, 0x0E, 0x70, 0x3C, 0x3C, 0xF8, 0x1F, 0xF0,
0x0F, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
0x07, 0x10, 0x00, 0x54, 0x00, 0x38, 0x00, 0xFE, 0x00, 0x38, 0x00, 0x54,
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char *
0x09, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xF8, 0x07, 0xF8, 0x07, 0xF8,
0x07, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
0x03, 0x00, 0x4C, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
0x09, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0,
0x00, 0xC0, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
0x03, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char .
0x09, 0x00, 0x20, 0x00, 0x38, 0x00, 0x3E, 0x80, 0x0F, 0xE0, 0x03, 0xF8,
0x00, 0x3E, 0x00, 0x0E, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
0x08, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0xC6, 0x0C, 0x66, 0x0C, 0xFE,
0x0F, 0xFE, 0x0F, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0
0x07, 0x0C, 0x0C, 0x0C, 0x0C, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00,
0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1
0x08, 0x04, 0x0F, 0x86, 0x0F, 0xC6, 0x0F, 0xC6, 0x0D, 0xE6, 0x0C, 0xFE,
0x0C, 0x7E, 0x0C, 0x3C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2
0x08, 0x04, 0x06, 0x66, 0x0E, 0x66, 0x0E, 0x66, 0x0C, 0x66, 0x0C, 0xFE,
0x0F, 0xFE, 0x0F, 0xDC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3
0x0A, 0xE0, 0x01, 0xF0, 0x01, 0xF8, 0x01, 0x9C, 0x01, 0x8E, 0x01, 0xFE,
0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4
0x08, 0x7E, 0x06, 0x7E, 0x0E, 0x7E, 0x0E, 0x66, 0x0C, 0x66, 0x0C, 0xE6,
0x0F, 0xE6, 0x0F, 0xC6, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5
0x08, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x66, 0x0C, 0x66, 0x0C, 0xE6,
0x0F, 0xE6, 0x0F, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6
0x08, 0x06, 0x00, 0x06, 0x00, 0x86, 0x0F, 0xC6, 0x0F, 0xE6, 0x0F, 0x7E,
0x00, 0x3E, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7
0x08, 0xDC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x66, 0x0C, 0x66, 0x0C, 0xFE,
0x0F, 0xFE, 0x0F, 0xDC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8
0x08, 0x7C, 0x00, 0xFE, 0x0C, 0xFE, 0x0C, 0xC6, 0x0C, 0xC6, 0x0C, 0xFE,
0x0F, 0xFE, 0x0F, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9
0x03, 0x1C, 0x07, 0x1C, 0x07, 0x1C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char :
0x03, 0x1C, 0x13, 0x1C, 0x1F, 0x1C, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
0x06, 0x80, 0x00, 0xC0, 0x01, 0xE0, 0x03, 0x70, 0x07, 0x30, 0x06, 0x10,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char <
0x08, 0xB0, 0x01, 0xB0, 0x01, 0xB0, 0x01, 0xB0, 0x01, 0xB0, 0x01, 0xB0,
0x01, 0xB0, 0x01, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char =
0x06, 0x10, 0x04, 0x30, 0x06, 0x70, 0x07, 0xE0, 0x03, 0xC0, 0x01, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
0x08, 0x0C, 0x00, 0x0E, 0x00, 0x86, 0x0D, 0xC6, 0x0D, 0xE6, 0x0D, 0x7E,
0x00, 0x3E, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ?
0x0D, 0xE0, 0x01, 0xF8, 0x07, 0x1C, 0x06, 0xE4, 0x0D, 0xF6, 0x0B, 0x1A,
0x0A, 0x0A, 0x0B, 0x8A, 0x09, 0xFA, 0x0B, 0x3E, 0x02, 0x0C, 0x03, 0xFC,
0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char @
0x09, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xC6, 0x00, 0xC6, 0x00, 0xC6,
0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFC, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x66, 0x0C, 0x66, 0x0C, 0x7E,
0x0C, 0xFE, 0x0F, 0xDC, 0x0F, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B
0x09, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x06, 0x0C, 0x06, 0x0C, 0x06,
0x0C, 0x0E, 0x0E, 0x0E, 0x0E, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x06, 0x0C, 0x06, 0x0C, 0x06,
0x0C, 0xFE, 0x0F, 0xFE, 0x0F, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x66, 0x0C, 0x66, 0x0C, 0x66,
0x0C, 0x66, 0x0C, 0x66, 0x0C, 0x06, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x66, 0x00, 0x66, 0x00, 0x66,
0x00, 0x66, 0x00, 0x66, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F
0x09, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x06, 0x0C, 0xC6, 0x0C, 0xC6,
0x0C, 0xCE, 0x0F, 0xCE, 0x0F, 0xCC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x60, 0x00, 0x60, 0x00, 0x60,
0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H
0x05, 0x06, 0x0C, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x06, 0x0C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I
0x07, 0x00, 0x06, 0x00, 0x0E, 0x06, 0x0C, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE,
0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xF0, 0x00, 0xF8, 0x01, 0x9C,
0x03, 0x0E, 0x07, 0x06, 0x0E, 0x02, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K
0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x0C, 0x00, 0x0C, 0x00,
0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L
0x0B, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x1C, 0x00, 0x38, 0x00, 0x70,
0x00, 0x38, 0x00, 0x1C, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char M
0x0A, 0xFE, 0x0F, 0xFE, 0x0F, 0xFC, 0x0F, 0x78, 0x00, 0xF0, 0x00, 0xE0,
0x01, 0xC0, 0x03, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N
0x09, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x06, 0x0C, 0x06, 0x0C, 0x06,
0x0C, 0xFE, 0x0F, 0xFE, 0x0F, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xC6, 0x00, 0xC6, 0x00, 0xC6,
0x00, 0xFE, 0x00, 0xFE, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P
0x0A, 0xFC, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x06, 0x0C, 0x06, 0x0C, 0x06,
0x0C, 0xFE, 0x1F, 0xFE, 0x3F, 0xFC, 0x37, 0x00, 0x20, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q
0x09, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xC6, 0x00, 0xC6, 0x00, 0xC6,
0x01, 0xFE, 0x0F, 0xFE, 0x0F, 0x7C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R
0x08, 0x3C, 0x0C, 0x7E, 0x0C, 0x7E, 0x0C, 0x66, 0x0C, 0x66, 0x0C, 0xE6,
0x0F, 0xE6, 0x0F, 0xC6, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S
0x09, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE,
0x0F, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
0x09, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x0C, 0x00, 0x0C, 0x00,
0x0C, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U
0x09, 0xFE, 0x00, 0xFE, 0x03, 0xFE, 0x07, 0x00, 0x0F, 0x00, 0x0C, 0x00,
0x0F, 0xFE, 0x07, 0xFE, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V
0x0B, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0,
0x01, 0x80, 0x03, 0x00, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char W
0x09, 0x0E, 0x0E, 0x1E, 0x0F, 0xBE, 0x0F, 0xF0, 0x01, 0xE0, 0x00, 0xF0,
0x01, 0xBE, 0x0F, 0x1E, 0x0F, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X
0x09, 0x1E, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0xF0, 0x0F, 0xE0, 0x0F, 0xF0,
0x0F, 0x7E, 0x00, 0x3E, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y
0x09, 0x06, 0x0E, 0x06, 0x0F, 0x86, 0x0F, 0xC6, 0x0D, 0xE6, 0x0C, 0x76,
0x0C, 0x3E, 0x0C, 0x1E, 0x0C, 0x0E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z
0x05, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0x06, 0x60, 0x06, 0x60, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
0x09, 0x02, 0x00, 0x0E, 0x00, 0x3E, 0x00, 0xF8, 0x00, 0xE0, 0x03, 0x80,
0x0F, 0x00, 0x3E, 0x00, 0x38, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char
// BackSlash
0x05, 0x06, 0x60, 0x06, 0x60, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
0x08, 0x70, 0x00, 0x38, 0x00, 0x1C, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x1C,
0x00, 0x38, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^
0x09, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _
0x05, 0x02, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
0x08, 0x00, 0x07, 0xA0, 0x0F, 0xB0, 0x0F, 0xB0, 0x0D, 0xB0, 0x0D, 0xF0,
0x0F, 0xF0, 0x0F, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a
0x08, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x30, 0x0C, 0x30, 0x0C, 0xF0,
0x0F, 0xF0, 0x0F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b
0x08, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x0C, 0x30, 0x0C, 0x70,
0x0E, 0x70, 0x0E, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c
0x08, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x0C, 0x30, 0x0C, 0xFE,
0x0F, 0xFE, 0x0F, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d
0x08, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0xB0, 0x0D, 0xB0, 0x0D, 0xF0,
0x0D, 0xF0, 0x0D, 0xE0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e
0x07, 0x30, 0x00, 0x30, 0x00, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x36,
0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f
0x08, 0xE0, 0x27, 0xF0, 0x6F, 0xF0, 0x6F, 0x30, 0x6C, 0x30, 0x6C, 0xF0,
0x7F, 0xF0, 0x7F, 0xE0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g
0x08, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x30, 0x00, 0x30, 0x00, 0xF0,
0x0F, 0xF0, 0x0F, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h
0x05, 0x30, 0x0C, 0xF6, 0x0F, 0xF6, 0x0F, 0xF6, 0x0F, 0x00, 0x0C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i
0x06, 0x00, 0x20, 0x00, 0x60, 0x30, 0x60, 0xF6, 0x7F, 0xF6, 0x7F, 0xF6,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j
0x08, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0xC0, 0x01, 0xE0, 0x03, 0x70,
0x07, 0x30, 0x0E, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k
0x05, 0x06, 0x0C, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x0C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l
0x0D, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x00, 0x30, 0x00, 0xF0,
0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x00, 0x30, 0x00, 0xF0, 0x0F, 0xF0,
0x0F, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char m
0x08, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x00, 0x30, 0x00, 0xF0,
0x0F, 0xF0, 0x0F, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n
0x08, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x0C, 0x30, 0x0C, 0xF0,
0x0F, 0xF0, 0x0F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o
0x08, 0xF0, 0x7F, 0xF0, 0x7F, 0xF0, 0x7F, 0x30, 0x0C, 0x30, 0x0C, 0xF0,
0x0F, 0xF0, 0x0F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p
0x08, 0xE0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x0C, 0x30, 0x0C, 0xF0,
0x7F, 0xF0, 0x7F, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q
0x08, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x30, 0x00, 0x30, 0x00, 0x70,
0x00, 0x70, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r
0x08, 0xE0, 0x0C, 0xF0, 0x0D, 0xF0, 0x0D, 0xB0, 0x0D, 0xB0, 0x0D, 0xB0,
0x0F, 0xB0, 0x0F, 0x30, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s
0x08, 0x30, 0x00, 0x30, 0x00, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x0F, 0x30,
0x0C, 0x30, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t
0x08, 0xF0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0x00, 0x0C, 0x00, 0x0C, 0xF0,
0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u
0x09, 0x30, 0x00, 0xF0, 0x01, 0xF0, 0x03, 0xC0, 0x0F, 0x00, 0x0E, 0xC0,
0x0F, 0xF0, 0x03, 0xF0, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v
0x0B, 0xF0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0,
0x01, 0x80, 0x03, 0x00, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w
0x09, 0x10, 0x0C, 0x30, 0x0E, 0x70, 0x0F, 0xE0, 0x03, 0xC0, 0x01, 0xE0,
0x03, 0x70, 0x0F, 0x30, 0x0E, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x
0x08, 0xF0, 0x07, 0xF0, 0x0F, 0xF0, 0x0F, 0x00, 0x4E, 0x00, 0x67, 0xF0,
0x7F, 0xF0, 0x3F, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y
0x07, 0x30, 0x0E, 0x30, 0x0F, 0xB0, 0x0F, 0xF0, 0x0D, 0xF0, 0x0C, 0x70,
0x0C, 0x30, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z
0x06, 0x80, 0x01, 0xF8, 0x1F, 0xFC, 0x3F, 0x7E, 0x7E, 0x06, 0x60, 0x02,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char {
0x03, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
0x06, 0x02, 0x40, 0x06, 0x60, 0x7E, 0x7E, 0xFC, 0x3F, 0xF8, 0x1F, 0x80,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char }
0x09, 0xE0, 0x00, 0x70, 0x00, 0x30, 0x00, 0x70, 0x00, 0xE0, 0x00, 0xC0,
0x01, 0x80, 0x01, 0xC0, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~
0x08, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x06, 0x0C, 0x06, 0x0C, 0xFE,
0x0F, 0xFE, 0x0F, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char 128
};
#endif
/*
* Private function prototypes
*/
/*
* Function definitions
*/
static void display_update(void) {
static uint8_t i, x_pos, w, blanks, disp_index, char_width;
if (disp_busy) {
return;
}
if (should_scroll) {
if (timer_0_timeout) {
return;
}
if (disp_reload) {
disp_reload = BIT_CLR;
init_col = 0;
i = 0;
w = 0;
blanks = DISP_COL_SIZE;
if (should_scroll) {
x_pos = 0;
}
else {
x_pos = init_pos;
}
}
if (!should_scroll) {
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
return;
}
}
if (!w) {
if (*(p_string + i)) {
disp_index = *(p_string + i++);
disp_index -= 32;
char_width = lookup[disp_index][0] + 1;
char_width <<= 1; // Multiply by 2.
}
else if (should_scroll) {
buffer[0][x_pos] = 0;
buffer[1][x_pos] = 0;
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
init_col++;
#if DISP_PANELS == 3U
if (init_col & 32 && init_col & 64) {
#else
if (init_col & DISP_COL_SIZE) {
#endif
init_col = 0;
}
blanks--;
if (!blanks) {
disp_reload = BIT_SET;
}
return;
}
}
buffer[1][x_pos] = lookup[disp_index][++w];
buffer[0][x_pos] = lookup[disp_index][++w];
if (w >= char_width) {
w = 0;
}
x_pos++;
if (should_scroll) {
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
init_col++;
#if DISP_PANELS == 3U
if (init_col & 32 && init_col & 64) {
#else
if (init_col & DISP_COL_SIZE) {
#endif
init_col = 0;
}
}
}
void init_display(void) {
// Initialize display pins.
DISP_DATA_DIR = DIR_OP;
DISP_CLOCK_DIR = DIR_OP;
DISP_LATCH_DIR = DIR_OP;
DISP_A_DIR = DIR_OP;
DISP_B_DIR = DIR_OP;
DISP_OE_DIR = DIR_OP;
disp_busy = BIT_SET;
should_scroll = BIT_CLR;
disp_reload = BIT_SET;
init_pos = 0;
init_col = 0;
disp_busy = BIT_SET;
col--;
init_pos = 0;
while (init_pos < col) {
buffer[0][init_pos] = 0;
buffer[1][init_pos++] = 0;
}
p_string = p_msg;
should_scroll = BIT_CLR;
disp_reload = BIT_SET;
disp_busy = BIT_CLR;
}
should_scroll = BIT_SET;
disp_reload = BIT_SET;
disp_busy = BIT_CLR;
}
void display_isr(void) {
static uint8_t mux_ch = 0;
uint8_t col, x_pos, mask, bit_mask;
display_update();
// Disable MUX. Hence no output.
DISP_OE_OFF();
mask = 0x10;
}
else if (mux_ch == 1) {
DISP_A_ON();
DISP_B_OFF();
mask = 0x20;
}
else if (mux_ch == 2) {
DISP_A_OFF();
DISP_B_ON();
mask = 0x40;
}
else if (mux_ch == 3) {
DISP_A_ON();
DISP_B_ON();
mask = 0x80;
}
do {
x_pos = col;
bit_mask = mask;
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
if (buffer[0][x_pos] & bit_mask) {
DISP_DATA_OFF();
}
else {
DISP_DATA_ON();
}
DISP_CLOCK_ON();
DISP_CLOCK_OFF();
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos = col;
bit_mask >>= 4;
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos = col;
bit_mask = mask;
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos = col;
bit_mask >>= 4;
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
if (buffer[1][x_pos] & bit_mask) {
DISP_DATA_OFF();
}
else {
DISP_DATA_ON();
}
DISP_CLOCK_ON();
DISP_CLOCK_OFF();
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
x_pos++;
#if DISP_PANELS == 3U
if (x_pos & 32 && x_pos & 64) {
#else
if (x_pos & DISP_COL_SIZE) {
#endif
x_pos = 0;
}
bit_mask >>= 4;
bit_mask = mask;
bit_mask >>= 4;
// Enable MUX.
DISP_OE_ON();
}