	/* Holtek LCD controller */
	/* Designed by Paolo Subiaco http://www.creasol.it */

#ifndef __HTLCD_H__
#define __HTLCD_H__

#define HTLCD_MEMORY_START	0x40
#if MCU==4930
#define HTLCD_MEMORY_LENGTH	19
#elif MCU == 4950
#define HTLCD_MEMORY_LENGTH 33
#endif

#define SYMBOL_DEG		1
#define SYMBOL_H			2
#define SYMBOL_MJ			8
#define SYMBOL_TOT		16
#define SYMBOL_K			32
#define SYMBOL_M			96

#define OFF			0
#define ON			1
#define BLINK		2

	// digit bitmask:  0 E F D G A C B
#define CHAR_None			0x80	// No segments on
#define CHAR_A				0x6f
#define CHAR_a				0x5f
#define CHAR_b				0x7a
#define CHAR_C				0x74
#define CHAR_c				0x58
#define CHAR_d				0x5b
#define CHAR_e				0x7c
#define CHAR_E				0x7c
#define CHAR_F				0x6c
#define CHAR_H				0x6b
#define CHAR_h				0x6a
#define CHAR_i				0x40
#define CHAR_l				0x60
#define CHAR_L				0x70
#define CHAR_M				0x67
#define CHAR_m				0x67
#define CHAR_n				0x4a
#define CHAR_o				0x5a
#define CHAR_P				0x6d
#define CHAR_r				0x48
#define CHAR_S				0x3e
#define CHAR_t				0x78
#define CHAR_U				0x73
#define CHAR_y				0x3b
#define CHAR_Z				0x5d

	/* Macros */
#define	htlcd_allSegmentsOn()		htlcd_allSegments(7)
	//#define	htlcd_allSegmentsOff()	htlcd_allSegments(0)

	/* Prototypes */
	void htlcd_display(void);
	void htlcd_allSegments(uchar value);
	void htlcd_setNum(uchar value, uchar num);
	void htlcd_setPoint(uchar value);
	void htlcd_setSymbol(uchar value);
	void htlcd_setColon(uchar value);		
	void htlcd_setWheel(uchar value);		// value= OFF, ON, BLINK
	void htlcd_setMC(uchar value);			// value= OFF, ON, BLINK
	void htlcd_setBattery(uchar value);	// value= OFF, ON, BLINK
	void htlcd_printZero();
	void htlcd_printNull();

	/* Variables */
	extern uchar htlcd_data[15];

#endif
