; Command and char definitions for the LCD

#define LCDCMD_CLEAR           b'00000001'
#define LCDCMD_HOME            b'00000010'

#define LCDCMD_ENTRY_MODE      b'00000100'
#define LCDBIT_DISPL_SHIFTED   0
#define LCDBIT_CURSOR_INC      1

#define LCDCMD_DISPLAY         b'00001000'
#define LCDBIT_BLINK_ON        0
#define LCDBIT_CURSOR_ON       1
#define LCDBIT_DISPL_ON        2

#define LCDCMD_SHIFT           b'00010000'
#define LCDBIT_RIGHT_SHIFT     2
#define LCDBIT_DISPL_SHIFT     3

#define LCDCMD_FUNCTION        b'00100000'
#define LCDBIT_5X10_DOTS       2
#define LCDBIT_2LN_DISPL       3
#define LCDBIT_8BIT_INTF       4

#define LCDCMD_SET_GC_RAM      b'01000000'

#define LCDCMD_SET_DD_RAM      b'10000000'


#define LCD_GC0                0x00
#define LCD_GC1                0x01
#define LCD_GC2                0x02
#define LCD_GC3                0x03
#define LCD_GC4                0x04
#define LCD_GC5                0x05
#define LCD_GC6                0x06
#define LCD_GC7                0x07

#define LCD_SPACE              0x20
#define LCD_EXCLAMATION_POINT  0x21
#define LCD_QUOT               0x22
#define LCD_SHARP              0x23
#define LCD_DOLLAR             0x24
#define LCD_PERCENT            0x25
#define LCD_AMP                0x26
#define LCD_APOS               0x27
#define LCD_PARENT_OPEN        0x28
#define LCD_PARENT_CLOSE       0x29
#define LCD_ASTERISK           0x2A
#define LCD_PLUS               0x2B
#define LCD_COMMA              0x2C
#define LCD_MINUS              0x2D
#define LCD_PERIOD             0x2E
#define LCD_SLASH              0x2F

#define LCD_0                  0x30
#define LCD_1                  0x31
#define LCD_2                  0x32
#define LCD_3                  0x33
#define LCD_4                  0x34
#define LCD_5                  0x35
#define LCD_6                  0x36
#define LCD_7                  0x37
#define LCD_8                  0x38
#define LCD_9                  0x39
#define LCD_COLON              0x3A
#define LCD_SEMICOLON          0x3B
#define LCD_LESS_THAN          0x3C
#define LCD_EQUALS             0x3D
#define LCD_GREATER_THAN       0x3E
#define LCD_QUESTION           0x3F

#define LCD_AT_SIGN            0x40
#define LCD_A                  0x41
#define LCD_B                  0x42
#define LCD_C                  0x43
#define LCD_D                  0x44
#define LCD_E                  0x45
#define LCD_F                  0x46
#define LCD_G                  0x47
#define LCD_H                  0x48
#define LCD_I                  0x49
#define LCD_J                  0x4A
#define LCD_K                  0x4B
#define LCD_L                  0x4C
#define LCD_M                  0x4D
#define LCD_N                  0x4E
#define LCD_O                  0x4F

#define LCD_P                  0x50
#define LCD_Q                  0x51
#define LCD_R                  0x52
#define LCD_S                  0x53
#define LCD_T                  0x54
#define LCD_U                  0x55
#define LCD_V                  0x56
#define LCD_W                  0x57
#define LCD_X                  0x58
#define LCD_Y                  0x59
#define LCD_Z                  0x5A
#define LCD_BRACKET_OPEN       0x5B
#define LCD_YEN                0x5C
#define LCD_BRACKET_CLOSE      0x5D
#define LCD_CARET              0x5E
#define LCD_UNDERSCORE         0x5F

#define LCD_APOS_REVERSE       0x60
#define LCD_a                  0x61
#define LCD_b                  0x62
#define LCD_c                  0x63
#define LCD_d                  0x64
#define LCD_e                  0x65
#define LCD_f                  0x66
#define LCD_g                  0x67
#define LCD_h                  0x68
#define LCD_i                  0x69
#define LCD_j                  0x6A
#define LCD_k                  0x6B
#define LCD_l                  0x6C
#define LCD_m                  0x6D
#define LCD_n                  0x6E
#define LCD_o                  0x6F

#define LCD_p                  0x70
#define LCD_q                  0x71
#define LCD_r                  0x72
#define LCD_s                  0x73
#define LCD_t                  0x74
#define LCD_u                  0x75
#define LCD_v                  0x76
#define LCD_w                  0x77
#define LCD_x                  0x78
#define LCD_y                  0x79
#define LCD_z                  0x7A
#define LCD_CURLY_BR_OPEN      0x7B
#define LCD_BAR                0x7C
#define LCD_CURLY_BR_CLOSE     0x7D
#define LCD_ARROW_RIGHT        0x7E
#define LCD_ARROW_LEFT         0x7F

#define LCD_MARKER             0xFF
