b_call(_ClrLCDFull)
	b_call(_HomeUp)
	LD	HL,text
	CALL	CustomStr
	RET

text:	.DB	"Hello ",1,0

CustomStr:
	LD	A,(HL)
	OR	A
	RET	Z

	CP	1
	JR	NZ,NormalChar	; Trap for char $01 (custom)

	PUSH	AF

	XOR	A		; Configure word size
	OUT	($10),A

	LD	A,$05		; Configure X auto-increment
	OUT	($10),A

	LD	A,(CurCol)	; Set LCD Row
	ADD	A,$20
	OUT	($10),A

	LD	A,(CurRow)	; Set LCD Row
	ADD	A,A
	ADD	A,A
	ADD	A,A
	ADD	A,$80
	OUT	($10),A

	LD	DE,Smilie
	LD	B,8
FontLoop:
	LD	A,(DE)
	CALL	$000B
	OUT	($11),A
	INC	DE
	DJNZ	FontLoop

	LD	A,(CurCol)	; Advance cursor position
	INC	A
	AND	%00001111
	LD	(CurCol),A
	JR	NZ,DoneCustomFont

	LD	A,(CurRow)	; Advance row. This doesn't check for a bad
	INC	A		; position or scroll. Do that on your own time.
	LD	(CurRow),A

DoneCustomFont:
	POP	AF
	JR	DoneChar

NormalChar:
	b_call(_PutC)

DoneChar:
	INC	HL
	JR	CustomStr

; Our custom character!
smilie:
	.DB	%0111110
	.DB	%1111111
	.DB	%1001001
	.DB	%1111111
	.DB	%1011101
	.DB	%1100011
	.DB	%0111110
	.DB	%0000000