;**************************************************************************
;   Nokia LCD /2600/3120/6100/5100/6220/3100/3200/7250i/5140/6610/6200/7210/5140i/6030/2610/2626
;	132x132 pixel; 8/12/16 bit Color
;	PHILIPS PCF8833 vezérlővel
;	Készítette: Bíró Tamás
;**************************************************************************

#include <p16F690.inc>
	__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)

	cblock	0x20
X,Y,Y2,DX1,DX2,DY1,DY2,INC,INC_C,INDEX,INDEXH,INDEX_C,
Lengthx,Lengthy,CHAR,PIXC1,PIXC2,
XDATA,bit_count,Delay1,Delay2,Delay3,Delay4,Delay5,
RGB1,RGB2,RGB3,DL,DI
	endc
	cblock	0x70
W_temp,STATUS_temp,
JEL1,JEL2,JEL3,JEL4
	endc

#define	BLACK	0x00
#define	WHITE	0x01
#define	RED		0x02
#define	GREEN	0x03
#define	BLUE	0x04
#define	CYAN	0x05
#define	MAGENTA	0x06
#define	YELLOW	0x07
#define	BROWN	0x08
#define	ORANGE	0x09
#define	PINK	0x0A

	org	0
	goto	MAIN_PROGRAM
	nop
	nop
	nop
	call	INT_SR			;Megszakítás kezelés
	
MAIN_PROGRAM:
	call	INIT_PORT
	call	INIT_LCD
	call	DISPLAY
	call	TEXT_WRITING
VEGE:						;Program vége jelzés
	bsf		PORTC,0			;Led bekapcs.
	movlw	0x01
	call	DELAY
	bcf		PORTC,0			;Led kikapcs.
	movlw	0x01
	call 	DELAY
	goto	VEGE
;--------------------------------------------------------------------------
INIT_PORT:
	banksel	ANSELH			;Digitális kimenetek	
	clrf	ANSELH	
	banksel	OSCCON
	movlw	B'01110000'
	movwf	OSCCON			;Belső oszcillátor 8MHz
	movlw	B'01111100'
	movwf	TRISC			;PortC 7-es és 0-ás láb kimenet
	movlw	B'00111111'
	movwf	TRISB			;PortB 6 és 7-es láb kimenet
	bsf		IOCA,3			;PortA portváltozás engedélyezés 3-as lábon
	bsf		INTCON,3		;PortA megszakítás engedélyezés
	banksel PORTA			;Port kiolvasás
	movf	PORTA,w
	bcf		INTCON,0		;Portmegszakítás jelző bit törlés
	bsf		INTCON,7		;Globális megszakítás engedélyezés
	return
;--------------------------------------------------------------------------
INIT_LCD:
	movlw	0x01			;Szoftver reset
	call	COMMAND	
	banksel	PORTB			;LCD RESET 2x
	movlw	0x02
	movwf	DL
H_reset:                     
	bcf		PORTB,7			;Reset aktív
	movlw	0x01
	call	DELAY	
	bsf		PORTB,7			;Reset inaktív
	movlw	0x01
	call	DELAY	
	decfsz	DL,f
	goto	H_reset

	movlw	0x11			;SLEEP OUT
	call	COMMAND
	movlw	0x21			;Inverzió kikapcsolás
	call	COMMAND
	movlw	0x3A			;Szín mód
	call	COMMAND
	movlw	0x03			;12bit szín
	call	DATAS
	movlw	0x36			;Memory access controller
	call	COMMAND
	movlw	0xC8
	call	DATAS	
	movlw	0x25			;Kontraszt
	call	COMMAND
	movlw	0x30			
	call	DATAS
	movlw	0x01			;Várakozás
	call	DELAY
	movlw	0x29			;Kijelző bekapcsolás
	call	COMMAND
	return
;--------------------------------------------------------------------------	
DISPLAY:	
	movlw	RED				;/háttér beállítás/
	call	COLOR

	movlw	D'0'			;Színezés X kezdőpontja
	movwf	DX1
	movlw	D'131'			;Színezés X végpontja
	movwf	DX2

	movlw	D'0'			;Színezés Y kezdőpontja
	movwf	DY1
	movlw	D'131'			;Színezés Y végpontja
	movwf	DY2

	movlw	D'132'			;Pixelszám első szorzója
	movwf	PIXC1
	movlw	D'35'			;Pixelszám második szorzója
	movwf	PIXC2

	call	DRAWING
	;.......................................................	
	movlw	BLACK			;/kis négyzet rajzolás/
	call	COLOR

	movlw	D'16'			;Színezés X kezdőpontja
	movwf	DX1
	movlw	D'115'			;Színezés X végpontja
	movwf	DX2

	movlw	D'35'			;Színezés Y kezdőpontja
	movwf	DY1
	movlw	D'105'			;Színezés Y végpontja
	movwf	DY2

	movlw	D'71'			;Pixelszám első szorzója
	movwf	PIXC1
	movlw	D'15'			;Pixelszám második szorzója
	movwf	PIXC2

	call	DRAWING			;Rajzolás
	return
;--------------------------------------------------------------------------
TEXT_WRITING:				;Szövegek kiírása
	movlw	D'15'
	movwf	X
	movlw	D'113'
	movwf	Y
	movwf	Y2
	movlw	BLACK
	call	COLOR

	movlw	A'N'
	call	CHAR_WRITE	
	movlw	A'O'
	call	CHAR_WRITE
	movlw	A'K'
	call	CHAR_WRITE
	movlw	A'I'
	call	CHAR_WRITE
	movlw	A'A'
	call	CHAR_WRITE
	movlw	A'_'
	call	CHAR_WRITE
	movlw	A'6'
	call	CHAR_WRITE
	movlw	A'1'
	call	CHAR_WRITE
	movlw	A'0'
	call	CHAR_WRITE
	movlw	A'0'
	call	CHAR_WRITE
	movlw	A' '
	call	CHAR_WRITE
	movlw	A'L'
	call	CHAR_WRITE
	movlw	A'C'
	call	CHAR_WRITE
	movlw	A'D'
	call	CHAR_WRITE

	movlw	D'16'
	movwf	X
	movlw	D'96'
	movwf	Y
	movwf	Y2
	movlw	PINK
	call	COLOR

	movlw	D'32'
	call	CHAR_WRITE
	movlw	D'33'
	call	CHAR_WRITE
	movlw	D'34'
	call	CHAR_WRITE
	movlw	D'35'
	call	CHAR_WRITE
	movlw	D'36'
	call	CHAR_WRITE
	movlw	D'37'
	call	CHAR_WRITE
	movlw	D'38'
	call	CHAR_WRITE
	movlw	D'39'
	call	CHAR_WRITE
	movlw	D'40'
	call	CHAR_WRITE
	movlw	D'41'
	call	CHAR_WRITE
	movlw	D'42'
	call	CHAR_WRITE
	movlw	D'43'
	call	CHAR_WRITE
	movlw	D'44'
	call	CHAR_WRITE
	movlw	D'45'
	call	CHAR_WRITE

	movlw	D'16'
	movwf	X
	movlw	D'86'
	movwf	Y
	movwf	Y2
	movlw	GREEN
	call	COLOR
	
	movlw	D'46'
	call	CHAR_WRITE
	movlw	D'47'
	call	CHAR_WRITE
	movlw	D'48'
	call	CHAR_WRITE
	movlw	D'49'
	call	CHAR_WRITE
	movlw	D'50'
	call	CHAR_WRITE
	movlw	D'51'
	call	CHAR_WRITE
	movlw	D'52'
	call	CHAR_WRITE
	movlw	D'53'
	call	CHAR_WRITE
	movlw	D'54'
	call	CHAR_WRITE
	movlw	D'55'
	call	CHAR_WRITE
	movlw	D'56'
	call	CHAR_WRITE
	movlw	D'57'
	call	CHAR_WRITE	
	movlw	D'58'
	call	CHAR_WRITE
	movlw	D'59'
	call	CHAR_WRITE

	movlw	D'16'
	movwf	X
	movlw	D'76'
	movwf	Y
	movwf	Y2
	movlw	ORANGE
	call	COLOR
		
	movlw	D'60'
	call	CHAR_WRITE
	movlw	D'61'
	call	CHAR_WRITE
	movlw	D'62'
	call	CHAR_WRITE
	movlw	D'63'
	call	CHAR_WRITE
	movlw	D'64'
	call	CHAR_WRITE
	movlw	D'65'	
	call	CHAR_WRITE
	movlw	D'66'
	call	CHAR_WRITE
	movlw	D'67'
	call	CHAR_WRITE
	movlw	D'68'
	call	CHAR_WRITE
	movlw	D'69'
	call	CHAR_WRITE
	movlw	D'70'
	call	CHAR_WRITE
	movlw	D'71'
	call	CHAR_WRITE
	movlw	D'72'
	call	CHAR_WRITE
	movlw	D'73'	
	call	CHAR_WRITE

	movlw	D'16'
	movwf	X
	movlw	D'66'
	movwf	Y
	movwf	Y2
	movlw	CYAN
	call	COLOR

	movlw	D'74'
	call	CHAR_WRITE
	movlw	D'75'
	call	CHAR_WRITE
	movlw	D'76'
	call	CHAR_WRITE
	movlw	D'77'
	call	CHAR_WRITE
	movlw	D'78'
	call	CHAR_WRITE
	movlw	D'79'	
	call	CHAR_WRITE
	movlw	D'80'
	call	CHAR_WRITE
	movlw	D'81'
	call	CHAR_WRITE
	movlw	D'82'
	call	CHAR_WRITE
	movlw	D'83'
	call	CHAR_WRITE
	movlw	D'84'
	call	CHAR_WRITE
	movlw	D'85'
	call	CHAR_WRITE
	movlw	D'86'
	call	CHAR_WRITE
	movlw	D'87'	
	call	CHAR_WRITE

	movlw	D'16'
	movwf	X
	movlw	D'56'
	movwf	Y
	movwf	Y2
	movlw	MAGENTA
	call	COLOR

	movlw	D'88'
	call	CHAR_WRITE
	movlw	D'89'
	call	CHAR_WRITE
	movlw	D'90'
	call	CHAR_WRITE
	movlw	D'91'
	call	CHAR_WRITE
	movlw	D'92'
	call	CHAR_WRITE
	movlw	D'93'	
	call	CHAR_WRITE
	movlw	D'94'
	call	CHAR_WRITE
	movlw	D'95'
	call	CHAR_WRITE
	movlw	D'96'
	call	CHAR_WRITE
	movlw	D'97'
	call	CHAR_WRITE
	movlw	D'98'
	call	CHAR_WRITE
	movlw	D'99'
	call	CHAR_WRITE
	movlw	D'100'
	call	CHAR_WRITE
	movlw	D'101'	
	call	CHAR_WRITE

	movlw	D'16'
	movwf	X
	movlw	D'46'
	movwf	Y
	movwf	Y2
	movlw	YELLOW
	call	COLOR

	movlw	D'102'
	call	CHAR_WRITE
	movlw	D'103'
	call	CHAR_WRITE
	movlw	D'104'
	call	CHAR_WRITE
	movlw	D'105'
	call	CHAR_WRITE
	movlw	D'106'
	call	CHAR_WRITE
	movlw	D'107'	
	call	CHAR_WRITE
	movlw	D'108'
	call	CHAR_WRITE
	movlw	D'109'
	call	CHAR_WRITE
	movlw	D'110'
	call	CHAR_WRITE
	movlw	D'111'
	call	CHAR_WRITE
	movlw	D'112'
	call	CHAR_WRITE
	movlw	D'113'
	call	CHAR_WRITE
	movlw	D'114'
	call	CHAR_WRITE
	movlw	D'115'	
	call	CHAR_WRITE

	movlw	D'16'
	movwf	X
	movlw	D'36'
	movwf	Y
	movwf	Y2
	movlw	BLUE
	call	COLOR

	movlw	D'116'
	call	CHAR_WRITE
	movlw	D'117'
	call	CHAR_WRITE
	movlw	D'118'
	call	CHAR_WRITE
	movlw	D'119'
	call	CHAR_WRITE
	movlw	D'120'
	call	CHAR_WRITE
	movlw	D'121'	
	call	CHAR_WRITE
	movlw	D'122'
	call	CHAR_WRITE
	movlw	D'123'
	call	CHAR_WRITE
	movlw	D'124'
	call	CHAR_WRITE
	movlw	D'125'
	call	CHAR_WRITE
	movlw	D'126'
	call	CHAR_WRITE
	return
;--------------------------------------------------------------------------
CHAR_WRITE:
	movwf	INC				
	movlw	D'32'
	subwf	INC,f
	bcf		STATUS,C
	clrf	INDEX
	clrf	INDEXH
Char_pointer:				;A karakter mutatójának előállítása
	movlw	D'6'
	addwf	INDEX,f
	btfsc	STATUS,C
	incf	INDEXH			
	decfsz	INC
	goto	Char_pointer	

	movlw	0x06			
	movwf	Lengthx			;Karakter szélessége pixelben
Drawx:
	movlw	0x08
	movwf	Lengthy			;Karakter magassága pixelben
	movf	Y2,w
	movwf	Y
	
	incf	X,f
	
	call	CHAR_TABLE
	movwf	CHAR
	incf	INDEX,f
Drawy:
	rlf		CHAR			;Beolvasott karakterrészek pixelenként
	btfsc	STATUS,C		;kirakása
	call	CHAR_PUTPIXEL
	incf	Y,f
	decfsz	Lengthy
	goto	Drawy
	decfsz	Lengthx	
	goto	Drawx
	incf	X
	return
;--------------------------------------------------------------------------
CHAR_PUTPIXEL:
	movlw	0x2B			;Karakterek pixeleinek kiírása
	call	COMMAND
	movf	Y,w
	call	DATAS
	movf	Y,w
	call	DATAS	

	movlw	0x2A
	call	COMMAND
	movf	X,w
	call	DATAS
	movf	X,w
	call	DATAS

	movlw	0x2C
	call	COMMAND
Color2:
	movf	RGB1,w
	call	DATAS
	movf	RGB2,w
	call	DATAS
	movf	RGB3,w
	call	DATAS
	return
;--------------------------------------------------------------------------
DRAWING:	
	movlw	0x2A			;X tengely
	call	COMMAND
	movf	DX1,w
	call	DATAS
	movf	DX2,w
	call	DATAS

	movlw	0x2B			;Y tengely
	call	COMMAND
	movf	DY1,w
	call	DATAS
	movf	DY2,w
	call	DATAS

	movlw	0x2C
	call	COMMAND
DrawLoop:
	movf	RGB1,w			;Szín beállítás
	call	DATAS
	movf	RGB2,w
	call	DATAS
	movf	RGB3,w
	call	DATAS

	decfsz	PIXC1
	goto	DrawLoop
	decfsz	PIXC2
	goto	DrawLoop
	return
;--------------------------------------------------------------------------
COMMAND:					;Utasítás küldés
	movwf	XDATA			
	movlw	0x08
	movwf	bit_count
	bcf		PORTC,7			;Adat 0 /utasítást jelző érték/
	bsf		PORTB,6			;Óra 1
XM_LOOP:
	bcf		PORTB,6			;Óra 0
	bcf		PORTC,7			;Adat 0
	rlf		XDATA
	btfsc	STATUS,C
	bsf		PORTC,7			;Adat 1
	bsf		PORTB,6			;Óra 1	
	decfsz	bit_count
	goto	XM_LOOP
	bcf		PORTB,6
	return
;--------------------------------------------------------------------------
DATAS:						;Adat küldés
	movwf	XDATA
	movlw	0x08
	movwf	bit_count
	bsf		PORTC,7			;Adat 1	/adatot jelző érték/
	bsf		PORTB,6			;Óra 1
XM_LOOP2:
	bcf		PORTB,6			;Óra 0
	bcf		PORTC,7			;Adat 0
	rlf		XDATA
	btfsc	STATUS,C
	bsf		PORTC,7			;Adat 1
	bsf		PORTB,6			;Óra 1	
	decfsz	bit_count
	goto	XM_LOOP2
	bcf		PORTB,6
	return
;-------------------------------------------------------------------------
DELAY:		
	movwf	Delay3		;Késleltetés
	movlw	0xFF
	movwf	Delay1
	movlw	0xFF
	movwf	Delay2
DLOOP:
	decfsz	Delay1		
	goto	DLOOP
	decfsz	Delay2
	goto	DLOOP
	decfsz	Delay3
	goto	DLOOP
	return
;-------------------------------------------------------------------------
INT_SR:					;/Megszakítás kezelő/
	
	movwf	W_temp		;W mentése W_temp-be
	swapf	STATUS,w	;STATUS bitcserés másolása W-be
	movwf	STATUS_temp	;W másolása STATUS_temp-be
	;.............................................................
	banksel	PORTC
	bsf		PORTC,1
	movlw	D'13'
	movwf	X
	movlw	D'17'
	movwf	Y
	movwf	Y2
	movlw	WHITE
	call	COLOR

	movlw	A'B'
	call	CHAR_WRITE
	movlw	A'i'
	call	CHAR_WRITE
	movlw	A'r'
	call	CHAR_WRITE
	movlw	A'o'
	call	CHAR_WRITE
	movlw	A'E'
	call	CHAR_WRITE
	movlw	A'l'	
	call	CHAR_WRITE
	movlw	A'e'
	call	CHAR_WRITE
	movlw	A'c'
	call	CHAR_WRITE
	movlw	A't'
	call	CHAR_WRITE
	movlw	A'r'
	call	CHAR_WRITE
	movlw	A'o'
	call	CHAR_WRITE
	movlw	A'n'
	call	CHAR_WRITE
	movlw	A'i'
	call	CHAR_WRITE
	movlw	A'c'
	call	CHAR_WRITE
	movlw	A's'
	call	CHAR_WRITE
	
	movlw	D'45'
	movwf	X
	movlw	D'7'
	movwf	Y
	movwf	Y2
	movlw	YELLOW
	call	COLOR

	movlw	A'2'
	call	CHAR_WRITE
	movlw	A'0'
	call	CHAR_WRITE
	movlw	A'1'
	call	CHAR_WRITE
	movlw	A'0'
	call	CHAR_WRITE

	movlw	0x0F
	call	DELAY

	;..............................................................
	movf	PORTA,w			;PortA kiolvasás
	bcf		INTCON,0		;PortA változás jelző bit törlés

	swapf	STATUS_temp,w	;STATUS_temp bitcserés másolása W-be
	movwf	STATUS			;W másolása STATUS-ba
	swapf	W_temp,f		;W_temp bitcseréje
	swapf	W_temp,w		;W_temp bitcserés másolása W-be
	retfie
;--------------------------------------------------------------------------
COLOR:						;Szín táblázat
	movwf	INC_C
	clrf	INDEX_C
Color_pointer:				;Szín mutatójának előállítása
	movlw	D'7'
	addwf	INDEX_C,f
	decfsz	INC_C
	goto	Color_pointer
	movlw	D'3'
	movwf	PCLATH
	movf	INDEX_C,w
	movwf	PCL

	org		0x300
	movlw	0x00			;Fekete
	movwf	RGB1
	movlw	0x00
	movwf	RGB2
	movlw	0x00
	movwf	RGB3
	return

	movlw	0xFF			;Fehér
	movwf	RGB1
	movlw	0xFF
	movwf	RGB2
	movlw	0xFF
	movwf	RGB3
	return

	movlw	0xF0			;Piros
	movwf	RGB1
	movlw	0x0F
	movwf	RGB2
	movlw	0x00
	movwf	RGB3
	return

	movlw	0x0F			;Zöld
	movwf	RGB1
	movlw	0x00
	movwf	RGB2
	movlw	0xF0
	movwf	RGB3
	return

	movlw	0x00			;Kék
	movwf	RGB1
	movlw	0xF0
	movwf	RGB2
	movlw	0x0F
	movwf	RGB3
	return

	movlw	0x0F			;Cián
	movwf	RGB1
	movlw	0xF0
	movwf	RGB2
	movlw	0xFF
	movwf	RGB3
	return

	movlw	0xF0			;Magenta
	movwf	RGB1
	movlw	0xFF
	movwf	RGB2
	movlw	0x0F
	movwf	RGB3
	return

	movlw	0xFF			;Sárga
	movwf	RGB1
	movlw	0x0F
	movwf	RGB2
	movlw	0xF0
	movwf	RGB3
	return

	movlw	0xB2			;Barna
	movwf	RGB1
	movlw	0x2B
	movwf	RGB2
	movlw	0x22
	movwf	RGB3
	return

	movlw	0xFA			;Narancs
	movwf	RGB1
	movlw	0x0F
	movwf	RGB2
	movlw	0xA0
	movwf	RGB3
	return

	movlw	0xF6			;Pink
	movwf	RGB1
	movlw	0xAF
	movwf	RGB2
	movlw	0x6A
	movwf	RGB3
	return
;--------------------------------------------------------------------------
CHAR_TABLE:					;Karakter táblázat 6x8 pixel
	movlw	B'00000100'
	movwf	PCLATH
	movlw	D'1'
	subwf	INDEXH,w
	movlw	B'00000101'
	btfsc	STATUS,Z
	movwf	PCLATH
	movlw	D'2'
	subwf	INDEXH,w
	movlw	B'00000110'
	btfsc	STATUS,Z
	movwf	PCLATH
	movf	INDEX,w
	movwf	PCL
	
	org 	0x400
	retlw	0x00			;32 Space
	retlw	0x00
	retlw	0x00
	retlw	0x00
	retlw	0x00
	retlw	0x00
	
	retlw	0x00			;33 !
	retlw	0x00
	retlw	0x00
	retlw	0x6f
	retlw	0x00
	retlw	0x00

	retlw	0x00			;34 "
	retlw	0x00
	retlw	0x07
	retlw	0x00
	retlw	0x07
	retlw	0x00

	retlw	0x00			;35 #
	retlw	0x14
	retlw	0x7f
	retlw	0x14
	retlw	0x7f
	retlw	0x14

	retlw	0x00			;36 $
	retlw	0x00
	retlw	0x07
	retlw	0x04
	retlw	0x1e
	retlw	0x00

	retlw	0x00			;37 %
	retlw	0x23
	retlw	0x13
	retlw	0x08
	retlw	0x64
	retlw	0x62

	retlw	0x00			;38 &
	retlw	0x36
	retlw	0x49
	retlw	0x56
	retlw	0x20
	retlw	0x50
	
	retlw	0x00			;39 '
	retlw	0x00
	retlw	0x00
	retlw	0x07
	retlw	0x00
	retlw	0x00

	retlw	0x00			;40 (
	retlw	0x00
	retlw	0x1c
	retlw	0x22
	retlw	0x41
	retlw	0x00

	retlw	0x00			;41 )
	retlw	0x00
	retlw	0x41
	retlw	0x22
	retlw	0x1c
	retlw	0x00

	retlw	0x00			;42 *
	retlw	0x14
	retlw	0x08
	retlw	0x3e
	retlw	0x08
	retlw	0x14

	retlw	0x00			;43 +			
	retlw	0x08
	retlw	0x08
	retlw	0x3e
	retlw	0x08
	retlw	0x08

	retlw	0x00			;44 ,					
	retlw	0x00
	retlw	0x50
	retlw	0x30
	retlw	0x00
	retlw	0x00

	retlw	0x00			;45 -					
	retlw	0x08
	retlw	0x08
	retlw	0x08
	retlw	0x08
	retlw	0x08

	retlw	0x00			;46 .							
	retlw	0x00
	retlw	0x60
	retlw	0x60
	retlw	0x00
	retlw	0x00

	retlw	0x00			;47 /						
	retlw	0x20
	retlw	0x10
	retlw	0x08
	retlw	0x04
	retlw	0x02

	retlw	0x00			;48 0					
	retlw	0x3e
	retlw	0x51
	retlw	0x49
	retlw	0x45
	retlw	0x3e
	
	retlw	0x00			;49 1					
	retlw	0x00
	retlw	0x42
	retlw	0x7f
	retlw	0x40
	retlw	0x00

	retlw	0x00			;50 2						
	retlw	0x42
	retlw	0x61
	retlw	0x51
	retlw	0x49
	retlw	0x46

	retlw	0x00			;51 3				
	retlw	0x21
	retlw	0x41
	retlw	0x45
	retlw	0x4b
	retlw	0x31

	retlw	0x00			;52	4				
	retlw	0x18
	retlw	0x14
	retlw	0x12
	retlw	0x7f
	retlw	0x10

	retlw	0x00			;53	5				
	retlw	0x27
	retlw	0x45
	retlw	0x45
	retlw	0x45
	retlw	0x39

	retlw	0x00			;54	6					
	retlw	0x3c
	retlw	0x4a
	retlw	0x49
	retlw	0x49
	retlw	0x30
	
	retlw	0x00			;55 7				
	retlw	0x01
	retlw	0x71
	retlw	0x09
	retlw	0x05
	retlw	0x03

	retlw	0x00			;56 8					
	retlw	0x36
	retlw	0x49
	retlw	0x49
	retlw	0x49
	retlw	0x36

	retlw	0x00			;57 9				
	retlw	0x06
	retlw	0x49
	retlw	0x49
	retlw	0x29
	retlw	0x1e

	retlw	0x00			;58 :				
	retlw	0x00
	retlw	0x36
	retlw	0x36
	retlw	0x00
	retlw	0x00

	retlw	0x00			;59 ;				
	retlw	0x00
	retlw	0x56
	retlw	0x36
	retlw	0x00
	retlw	0x00

	retlw	0x00			;60	<		
	retlw	0x08
	retlw	0x14
	retlw	0x22
	retlw	0x41
	retlw	0x00

	retlw	0x00			;61 =					
	retlw	0x14
	retlw	0x14
	retlw	0x14
	retlw	0x14
	retlw	0x14

	retlw	0x00			;62	>
	retlw	0x00
	retlw	0x41
	retlw	0x22
	retlw	0x14
	retlw	0x08

	retlw	0x00			;63 ?					
	retlw	0x02
	retlw	0x01
	retlw	0x51
	retlw	0x09
	retlw	0x06

	retlw	0x00			;64 @					
	retlw	0x3e
	retlw	0x41
	retlw	0x5d
	retlw	0x49
	retlw	0x4e

	retlw	0x00			;65 A					
	retlw	0x7e
	retlw	0x09
	retlw	0x09
	retlw	0x09
	retlw	0x7e

	retlw	0x00			;66 B					
	retlw	0x7f
	retlw	0x49
	retlw	0x49
	retlw	0x49
	retlw	0x36

	retlw	0x00			;67 C
	retlw	0x3e
	retlw	0x41
	retlw	0x41
	retlw	0x41
	retlw	0x22

	retlw	0x00			;68 D
	retlw	0x7f
	retlw	0x41
	retlw	0x41
	retlw	0x41
	retlw	0x3e

	retlw	0x00			;69 E
	retlw	0x7f
	retlw	0x49
	retlw	0x49
	retlw	0x49
	retlw	0x41

	retlw	0x00			;70 F
	retlw	0x7f
	retlw	0x09
	retlw	0x09
	retlw	0x09
	retlw	0x01

	retlw	0x00			;71 G
	retlw	0x3e
	retlw	0x41
	retlw	0x49
	retlw	0x49
	retlw	0x7a

	retlw	0x00			;72 H
	retlw	0x7f
	retlw	0x08
	retlw	0x08
	retlw	0x08
	retlw	0x7f

	retlw	0x00			;73 I
	retlw	0x00
	retlw	0x41
	retlw	0x7f
	retlw	0x41
	retlw	0x00

	retlw	0x00			;74 J
	retlw	0x20
	retlw	0x40
	retlw	0x41
	retlw	0x3f
	retlw	0x01

	retlw	0x00			;75 K
	retlw	0x7f
	retlw	0x08
	retlw	0x14
	retlw	0x22
	retlw	0x41

	retlw	0x00			;76 L
	retlw	0x7f
	retlw	0x40
	retlw	0x40
	retlw	0x40
	retlw	0x40

	retlw	0x00			;77 M
	retlw	0x7f
	retlw	0x02
	retlw	0x0c
	retlw	0x02
	retlw	0x7f

	retlw	0x00			;78 N
	retlw	0x7f
	retlw	0x04
	retlw	0x08
	retlw	0x10
	retlw	0x7f

	retlw	0x00			;79 O
	retlw	0x3e
	retlw	0x41
	retlw	0x41
	retlw	0x41
	retlw	0x3e

	retlw	0x00			;80 P
	retlw	0x7f
	retlw	0x09
	retlw	0x09
	retlw	0x09
	retlw	0x06

	retlw	0x00			;81 Q
	retlw	0x3e
	retlw	0x41
	retlw	0x51
	retlw	0x21
	retlw	0x5e

	retlw	0x00			;82 R
	retlw	0x7f
	retlw	0x09
	retlw	0x19
	retlw	0x29
	retlw	0x46

	retlw	0x00			;83 S
	retlw	0x46
	retlw	0x49
	retlw	0x49
	retlw	0x49
	retlw	0x31

	retlw	0x00			;84 T
	retlw	0x01
	retlw	0x01
	retlw	0x7f
	retlw	0x01
	retlw	0x01

	retlw	0x00			;85 U
	retlw	0x3f
	retlw	0x40
	retlw	0x40
	retlw	0x40
	retlw	0x3f

	retlw	0x00			;86 V
	retlw	0x0f
	retlw	0x30
	retlw	0x40
	retlw	0x30
	retlw	0x0f

	retlw	0x00			;87 W
	retlw	0x3f
	retlw	0x40
	retlw	0x30
	retlw	0x40
	retlw	0x3f

	retlw	0x00			;88 X
	retlw	0x63
	retlw	0x14
	retlw	0x08
	retlw	0x14
	retlw	0x63

	retlw	0x00			;89 Y
	retlw	0x07
	retlw	0x08
	retlw	0x70
	retlw	0x08
	retlw	0x07

	retlw	0x00			;90 Z
	retlw	0x61
	retlw	0x51
	retlw	0x49
	retlw	0x45
	retlw	0x43

	retlw	0x00			;91 [
	retlw	0x3c
	retlw	0x4a
	retlw	0x49
	retlw	0x29
	retlw	0x1e

	retlw	0x00			;92 \
	retlw	0x02
	retlw	0x04
	retlw	0x08
	retlw	0x10
	retlw	0x20

	retlw	0x00			;93 ]
	retlw	0x00
	retlw	0x41
	retlw	0x7f
	retlw	0x00
	retlw	0x00

	retlw	0x00			;94 ^
	retlw	0x04
	retlw	0x02
	retlw	0x01
	retlw	0x02
	retlw	0x04

	retlw	0x00			;95 _
	retlw	0x40
	retlw	0x40
	retlw	0x40
	retlw	0x40
	retlw	0x40

	retlw	0x00			;96 `
	retlw	0x00
	retlw	0x00
	retlw	0x03
	retlw	0x04
	retlw	0x00

	retlw	0x00			;97 a
	retlw	0x20
	retlw	0x54
	retlw	0x54
	retlw	0x54
	retlw	0x78

	retlw	0x00			;98 b
	retlw	0x7f
	retlw	0x48
	retlw	0x44
	retlw	0x44
	retlw	0x38

	retlw	0x00			;99 c
	retlw	0x38
	retlw	0x44
	retlw	0x44
	retlw	0x44
	retlw	0x20

	retlw	0x00			;100 d
	retlw	0x38
	retlw	0x44
	retlw	0x44
	retlw	0x48
	retlw	0x7f

	retlw	0x00			;101 e
	retlw	0x38
	retlw	0x54
	retlw	0x54
	retlw	0x54
	retlw	0x18

	retlw	0x00			;102 f
	retlw	0x08
	retlw	0x7e
	retlw	0x09
	retlw	0x01
	retlw	0x02

	retlw	0x00			;103 g
	retlw	0x0c
	retlw	0x52
	retlw	0x52
	retlw	0x52
	retlw	0x3e

	retlw	0x00			;104 h
	retlw	0x7f
	retlw	0x08
	retlw	0x04
	retlw	0x04
	retlw	0x78

	retlw	0x00			;105 i
	retlw	0x00
	retlw	0x44
	retlw	0x7d
	retlw	0x40
	retlw	0x00

	retlw	0x00			;106 j
	retlw	0x20
	retlw	0x40
	retlw	0x44
	retlw	0x3d
	retlw	0x00

	retlw	0x00			;107 k
	retlw	0x00
	retlw	0x7f
	retlw	0x10
	retlw	0x28
	retlw	0x44

	retlw	0x00			;108 l
	retlw	0x00
	retlw	0x41
	retlw	0x7f
	retlw	0x40
	retlw	0x00

	retlw	0x00			;109 m
	retlw	0x7c
	retlw	0x04
	retlw	0x18
	retlw	0x04
	retlw	0x78

	retlw	0x00			;110 n
	retlw	0x7c
	retlw	0x08
	retlw	0x04
	retlw	0x04
	retlw	0x78

	retlw	0x00			;111 o
	retlw	0x38
	retlw	0x44
	retlw	0x44
	retlw	0x44
	retlw	0x38

	retlw	0x00			;112 p
	retlw	0x7c
	retlw	0x14
	retlw	0x14
	retlw	0x14
	retlw	0x08

	retlw	0x00			;113 q
	retlw	0x08
	retlw	0x14
	retlw	0x14
	retlw	0x18
	retlw	0x7c

	retlw	0x00			;114 r
	retlw	0x7c
	retlw	0x08
	retlw	0x04
	retlw	0x04
	retlw	0x08

	retlw	0x00			;115 s
	retlw	0x48
	retlw	0x54
	retlw	0x54
	retlw	0x54
	retlw	0x20

	retlw	0x00			;116 t
	retlw	0x04
	retlw	0x3f
	retlw	0x44
	retlw	0x40
	retlw	0x20

	retlw	0x00			;117 u
	retlw	0x3c
	retlw	0x40
	retlw	0x40
	retlw	0x20
	retlw	0x7c

	retlw	0x00			;118 v
	retlw	0x1c
	retlw	0x20
	retlw	0x40
	retlw	0x20
	retlw	0x1c

	retlw	0x00			;119 w
	retlw	0x3c
	retlw	0x40
	retlw	0x30
	retlw	0x40
	retlw	0x3c

	retlw	0x00			;120 x
	retlw	0x44
	retlw	0x28
	retlw	0x10
	retlw	0x28
	retlw	0x44

	retlw	0x00			;121 y
	retlw	0x0c
	retlw	0x50
	retlw	0x50
	retlw	0x50
	retlw	0x3c

	retlw	0x00			;122 z
	retlw	0x44
	retlw	0x64
	retlw	0x54
	retlw	0x4c
	retlw	0x44	

	retlw	0x00			;123 {
	retlw	0x00
	retlw	0x08
	retlw	0x36
	retlw	0x41
	retlw	0x41	

	retlw	0x00			;124 |
	retlw	0x00
	retlw	0x00
	retlw	0x7f
	retlw	0x00
	retlw	0x00

	retlw	0x00			;125 }
	retlw	0x41
	retlw	0x41
	retlw	0x36
	retlw	0x08
	retlw	0x00

	retlw	0x00			;126 ~
	retlw	0x04
	retlw	0x02
	retlw	0x04
	retlw	0x08
	retlw	0x04	
;--------------------------------------------------------------------------
	
	end