$MOD51
;***************
;PROGRAM PENAMPIL KARAKTER DAN GAMBAR PADA LCD GRAFIK PG-24644 OLEH DST-51
;*****************
;********
;VARIABEL
        DSEG
	Org	50H
DisplayStatus:   Ds      1


        CSEG

;****************
;DEKLARASI KONSTANTA

ROM			EQU	2000H
JumlahKolom		EQU	40
JumlahBaris		EQU	64
Cursor1Line		EQU	0A0H
Cursor2Line		EQU	0A1H
Cursor3Line		EQU	0A2H
Cursor4Line		EQU	0A3H
Cursor5Line		EQU	0A5H
Cursor6Line		EQU	0A6H
Cursor7Line		EQU	0A7H
TXHOME			EQU	40H
TXAREA			EQU	41H
GRHOME			EQU	42H
GRAREA			EQU	43H
SETCURSOR		EQU	21H
OFFSET			EQU	22H
ADPSET			EQU	24H
AWRON			EQU	0B0H
AWROFF			EQU	0B2H
CMDP			EQU	8200H
DP			EQU	8000H

;***********
;VEKTOR INTERUPSI
	Org	ROM			;Reset Vector
	Ajmp	Start			;
	Org	ROM+3H			;External Interrupt 0 Vector
	Reti				;
	Org	ROM+0BH			;Timer 0 Interrupt Vector
	Reti				;
	Org	ROM+13H			;External Interrupt 1 Vector
	Reti				;
	Org	ROM+1BH			;Timer 1 Interrupt Vector
	Reti				;
	Org	ROM+23H			;Serial Interrupt Vector
	Reti				;
Start:
	Acall	InitLCDGRP
	Acall	KirimTulisan
	Acall	KirimGambar
        Ajmp    $


TampilkanGambar:
	Mov	R7,#JumlahKolom			;Set Jumlah Kolom
LoopGrafis2:
	Mov	R6,#JumlahBaris*8		;Set Jumlah baris

LoopGrafis:
	Movx	A,@DPTR
	Inc	DPTR
	Acall	Autowrite
	Djnz	R6,LoopGrafis
	Djnz	R7,LoopGrafis2
	Mov	A,#AWROFF
	Acall	KirimPerintah
	Ret

KirimGambar:
	Mov	B,#01				;Set alamat awal grafis
	Mov	A,#0E0H				;
	Acall	KirimData2x			;
	Mov	A,#ADPSET			;
	Acall	KirimPerintah			;
	Mov	A,#AWRON			;Autowrite ON
	Acall	KirimPerintah			;
	Mov	DPTR,#TabelGrafis		;Set Alamat awal Tabel Grafik
	Acall	TampilkanGambar			;Tampilkan gambar
	Ret

KirimTulisan:
	Mov	B,#0H				;Set posisi awal text
	Mov	A,#15				;
	Mov	DPTR,#PesanDelta		;Set alamat awal pesan
	Acall	KirimPesanLCD
	Mov	A,#AWROFF
	Acall	KirimPerintah

	Mov	B,#0H				;Set posisi awal text
	Mov	A,#55				;
	Mov	DPTR,#PesanDelta2		;Set alamat awal pesan
	Acall	KirimPesanLCD
	Mov	A,#AWROFF
	Acall	KirimPerintah

	Mov	B,#0H				;Set posisi awal teks
	Mov	A,#90				;
	Mov	DPTR,#PesanWEB			;Set alamat awal pesan
	Acall	KirimPesanLCD			;
	Mov	A,#AWROFF
	Acall	KirimPerintah

	Mov	B,#0H				;Set posisi awal teks
	Mov	A,#JumlahKolom*3+13				;
	Mov	DPTR,#PesanLeader		;Set alamat awal pesan
	Acall	KirimPesanLCD			;
	Mov	A,#AWROFF
	Acall	KirimPerintah

	Mov	B,#0H				;Set posisi awal teks
	Mov	A,#JumlahKolom*4+13				;
	Mov	DPTR,#PesanLeader2		;Set alamat awal pesan
	Acall	KirimPesanLCD			;
	Mov	A,#AWROFF
	Acall	KirimPerintah
	Ret

TextON:
        Push    ACC
	Push	B
	Mov	B,#04H
	Ajmp	EksekusiON

GrafikON:
        Push    ACC
	Push	B
	Mov	B,#08H
	Ajmp	EksekusiON

CursorONBlinkON:
        Push    ACC
	Push	B
	Mov	B,#03H

EksekusiON:
	Mov	A,DisplayStatus
	Orl	A,B
	Acall	KirimPerintah
	Mov	DisplayStatus,A
	Pop	B
        Pop     ACC
	Ret
;********************************
;- Parameter yang harus diatur:
;	- Jumlah Kolom
	
InitLCDGRP:
	Mov	B,#01H
	Mov	A,#0E0H
	Acall	SetGrafikHome

	Mov	B,#00H			;Grafik area sebesar 40 kolom
	Mov	A,#JumlahKolom		;
	Acall	SetGrafikArea

	Mov	B,#00			;Teks area sebesar 40 kolom
	Mov	A,#JumlahKolom			;
	Acall	SetTextArea

	Mov	B,#00H			;Text home di alamat 00H
	Mov	A,#00H			;
	Acall	SetTextHome

	Mov	A,#81H			;Masuk Mode Set
	Acall	KirimPerintah		;
	Acall	HapusMemori		;Hapus isi memori grafis

	Mov	A,#Cursor1Line		;Cursor 1 baris
	Acall	KirimPerintah		;
	Mov	A,#00
	Mov	B,#00H
	Acall	SetPosisiCursor	
	Mov	DisplayStatus,#90H
	Acall	GrafikON
	Acall	TextON
	Acall	CursorONBlinkON
	Ret

SetTextHome:
	Push	07H
	Mov	R7,#TXHOME		;
	Ajmp	EksekusiControlWord

SetGrafikHome:
	Push	07H
	Mov	R7,#GRHOME		;
	Ajmp	EksekusiControlWord

SetGrafikArea:
	Push	07H
	Mov	R7,#GRAREA		;
	Ajmp	EksekusiControlWord

SetTextArea:
	Push	07H
	Mov	R7,#TXAREA		;

EksekusiControlWord:
        Push    ACC
	Acall	KirimData2x		;
        Pop     ACC
	Mov	A,R7
	Acall	KirimPerintah		;
	Pop	07H
	Ret

;**********************************
; SUBROUTINE MENGIRIMKAN DATA KE REGISTER DATA
Autowrite:
	Push	DPH			
	Push	DPL
        Push    ACC
	Mov	DPTR,#CMDP		;Kirim alamat register command

TungguAWR:
	Movx	A,@DPTR			;Tunggu sampai tidak busy
	Anl	A,#08H			;
	Cjne	A,#08H,TungguAWR	;
        Pop     ACC                       ;
	Mov	DPTR,#DP		;Kirim data ke register data
	Movx	@DPTR,A			;
	Pop	DPL
	Pop	DPH	
	Ret
	
;********************
;* SUBROUTINE MENGIRIMKAN DATA KE REGISTER PERINTAH
KirimPerintah:
	Push	DPH
	push	DPL
        Push    ACC

TungguStatus:
	Mov	DPTR,#CMDP
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,TungguStatus
        Pop     ACC
	Movx	@DPTR,A
	Pop	DPL
	Pop	DPH
	Ret

;***************************
;* SUBROUTINE MENGIRIMKAN 2 BYTE DATA KE REGISTER PERINTAH
;* - Data yang dikirim disimpan di Akumulator dan Register B

KirimData2x:
	Push	DPH
	Push	DPL
	Mov	DPTR,#CMDP
        Push    ACC 
        Push    ACC

TungguStatus2:
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,TungguStatus2
        Pop     ACC
	Mov	DPTR,#DP
	Movx	@DPTR,A

TungguStatus3:
	Mov	DPTR,#CMDP
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,TungguStatus3
        Pop     ACC
	Mov	A,B
	Mov	DPTR,#DP
	Movx	@DPTR,A
	Pop	DPL
	Pop	DPH
	Ret
TungguStatus1:
        Push    ACC
	Push	DPH
	Push	DPL
	Mov	DPTR,#CMDP
LoopTgSt1:
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,LoopTgSt1
	Pop	DPL
	Pop	DPH
        Pop     ACC
	Ret

;---------------
;Mengatur posisi cursor
;- Baris di Reg B
;- Kolom di Acc A
;---------------

SetPosisiCursor:
	Acall	KirimData2x		
	Mov	A,#SETCURSOR
	Acall	KirimPerintah
	Ret

;---------------
;Mengatur pola cursor
;- B adalah ukuran cursor
;---------------

SetPolaCursor:
	Dec	B
	Mov	A,#0A0H
	Orl	A,B
	Acall	KirimPerintah
	Ret

;--------------
;Menentukan alamat pointer
;- Reg B = Alamat byte tinggi
;- Acc A = Alamat byte rendah
;--------------

SetPointerAlamat:
	Acall	KirimData2x
	Mov	A,#ADPSET
	Acall	KirimPerintah
	Ret

;---------------
; Hapus 
;---------------
HapusMemori:
	Mov	B,#00H
	Mov	A,#00H
	Acall	KirimData2x
	Mov	A,#ADPSET
	Acall	KirimPerintah

	Mov	A,#AWRON
	Acall	KirimPerintah
	
	Mov	R6,#JumlahKolom
Loop2HapusLCD:
	Mov	R7,#Jumlahbaris*8

LoopHapusLCD:
	Mov	A,#00H
	Acall	Autowrite
	Djnz	R7,LoopHapusLCD
	Djnz	R6,Loop2HapusLCD
	Mov	A,#AWROFF
	Acall	KirimPerintah
	Ret

;********** KONVERSI KARAKTER SESUAI TABEL ********
AmbilTabelKarakter:
	Push	DPH
	Push	DPL
	Mov	DPTR,#TabelKarakterLCD
	Movc	A,@A+DPTR
	Pop	DPL
	Pop	DPH
	Ret

;********** KIRIM KARAKTER KE LCD **********
; A dan B harus diatur sebagai penunjuk posisi awal teks. Untuk LCD 240x64
; maka posisi akhir berada di kolom 40 baris ke 8, yaitu alamat 319 atau 13FH

KirimKarakterLCD:
	Acall	Kirimdata2x			;Atur posisi awal teks
	Mov	A,#ADPSET			;
	Acall	kirimPerintah			;
	Mov	A,R7				
	Acall	AmbilTabelKarakter
	Acall	TungguStatus1
	Mov	DPTR,#DP
	Movx	@DPTR,A
	Mov	A,#0C4H
	Acall	KirimPerintah

	Ret

;**** KIRIM PESAN KE LAYAR LCD **********
; A dan B harus diatur sebagai penunjuk posisi awal teks. Untuk LCD 240x64
; maka posisi akhir berada di kolom 40 baris ke 8, yaitu alamat 319 atau 13FH

KirimPesanLCD:
	Acall	Kirimdata2x			;Set posisi text
	Mov	A,#ADPSET			;
	Acall	kirimPerintah			;
	Mov	A,#AWRON			;Autowrite ON
	Acall	KirimPerintah			;

LoopKirimPesan:
	Movx	A,@DPTR				;Ambil teks dari memori
	Jz	KirimPesanSelesai		;hingga ditemukan data 0h
	Acall	AmbilTabelKarakter		;Konversi ke tabel karakter
	Acall	Autowrite			;
	Inc	DPTR			
	Ajmp	LoopKirimPesan

KirimPesanSelesai:
	Ret

PesanDelta:
	DB	'DELTA ELECTRONIC',00H

PesanDelta2:
	DB	'DESIGN & SERVICE',00H

PesanWEB:
	DB	'www.delta-electronic.com',00H

PesanLeader:
	DB	'LEADER IN ELECTRONIC',00h

PesanLeader2:
	DB	'INTERFACING KITS',00H


TabelKarakterLCD:
	Org	TabelKarakterLCD+20H
	DB	00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,0EH,0FH
	DB	10H,11H,12H,13H,14H,15H,16H,17H,18H,19H,1AH,1BH,1CH,1DH,1EH,1FH
	DB	20H,21H,22H,23H,24H,25H,26H,27H,28H,29H,2AH,2BH,2CH,2DH,2EH,2FH
	DB	30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,3AH,3BH,3CH,3DH,3EH,3FH
	DB	40H,41H,42H,43H,44H,45H,46H,47H,48H,49H,4AH,4BH,4CH,4DH,4EH,4FH
	DB	50H,51H,52H,53H,54H,55H,56H,57H,58H,59H,5AH,5BH,5CH,5DH,5EH,5FH
	DB	60H,61H,62H,63H,64H,65H,66H,67H,68H,69H,6AH,6BH,6CH,6DH,6EH,6FH
	DB	70H,71H,72H,73H,74H,75H,76H,77H,78H,79H,7AH,7BH,7CH,7DH,7EH,7FH



;---------------
; Display Mode
;---------------

DisplayOFF:
        Push    ACC
	Mov	A,#90H
	Acall	KirimPerintah
        Pop     ACC
	Ret

CursorONBlinOFF:
        Push    ACC
	Mov	A,#92H
	Acall	KirimPerintah
        Pop     ACC
	Ret
	


TabelGrafis:
	db 	000h,080h,0E0h,0F0h,0F8h,0FCh,0FCh,0FEh,0FEh,07Eh,07Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
	db	03Eh,03Eh,03Eh,03Eh,03Eh,07Eh,07Eh,0FEh,0FEh,0FCh,0FCh,0F8h,0F0h,0E0h
	db	080
	db 	000h,0FFh,0FFh,0FFh,0FFh,0FFh,007h,001h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,020h,070h,070h
	db	070h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,008h
	db	0F8h,0F8h,088h,088h,0F8h,070h,000h,000h,0E0h,0F0h,018h,008h,008h,010h
	db	038h,000h,000h,000h,000h,000h,020h,010h,018h,018h,0F8h,070h,000h,000h
	db	080h,060h,0F0h,0F8h,000h,000h,0C0h,0E0h,070h,058h,0C8h,088h,000h,000h
	db	080h,060h,0F0h,0F8h,000h,000h,000h,080h,060h,0F0h,0F8h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,001h,007h,0FFh,0FFh,0FFh,0FFh
	db	0FFh,000
	db 	000h,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,080h,080h,080h,08Ch,08Ch,0CCh,0CCh,0DEh
	db	0DEh,0DEh,0DEh,0DEh,0CCh,0C0h,0C0h,080h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,008h
	db	00Fh,00Fh,008h,000h,000h,000h,000h,000h,003h,007h,00Ch,008h,008h,008h
	db	004h,000h,002h,002h,002h,000h,008h,00Ch,00Eh,00Dh,00Ch,00Ch,000h,003h
	db	002h,002h,00Fh,00Fh,002h,000h,007h,00Fh,008h,008h,00Fh,007h,000h,003h
	db	002h,002h,00Fh,00Fh,002h,000h,003h,002h,002h,00Fh,00Fh,002h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,080h,040h,020h,010h,010h,008h,008h,008h,004h,004h,004h
	db	004h,004h,004h,004h,008h,008h,010h,060h,080h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,0F0h,0F0h,0B0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh
	db	0FFh,000
	db 	000h,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,030h,030h,030h,031h,031h,079h,079h,079h,07Bh,07Bh,07Bh
	db	07Bh,07Bh,07Bh,07Bh,07Bh,07Bh,07Bh,079h,078h,078h,030h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,080h,040h,0A0h,050h
	db	028h,014h,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah
	db	00Ah,00Ah,00Bh,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,08Ah,04Ah,0AAh
	db	05Ah,02Ah,032h,0FAh,0C6h,002h,000h,000h,001h,002h,004h,018h,020h,040h
	db	080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,0FFh,0FFh,0BBh,05Fh,0BBh,0DFh,0BBh,0DFh,0BBh,0FFh,0FFh,000h,0FCh
	db	004h,0F4h,0F4h,0FCh,0F4h,0F4h,0F4h,0FCh,0F4h,0F4h,0F4h,0FCh,0F4h,0F4h
	db	0F4h,00Ch,0FCh,000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh
	db	0FFh,000
	db 	000h,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h
	db	0C6h,0C6h,0E6h,0E6h,0E6h,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh
	db	0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0EFh,0E6h
	db	0E0h,0E0h,0C0h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,008h,00Ch,00Ah,019h,03Ah,0EBh,0CAh,00Ah
	db	00Ah,00Ah,00Ah,00Ah,0FAh,07Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah
	db	00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Ah,00Dh,03Eh,0F1h,0C0h
	db	000h,000h,000h,000h,003h,0FFh,0FCh,000h,000h,000h,000h,000h,000h,000h
	db	001h,002h,004h,008h,010h,020h,020h,040h,040h,080h,080h,080h,000h,000h
	db	000h,0FFh,003h,003h,003h,003h,003h,003h,003h,002h,003h,0FFh,000h,0FFh
	db	000h,07Fh,07Fh,0FFh,07Fh,07Fh,07Fh,0FFh,07Fh,07Fh,07Fh,0FFh,07Fh,07Fh
	db	07Fh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh
	db	0FFh,000
	db 	000h,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,098h,098h,098h,0BCh
	db	0BCh,0BCh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh
	db	0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh,0BDh
	db	0BDh,0BDh,0BCh,0BCh,0BCh,098h,080h,080h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,007h,007h,000h
	db	000h,000h,000h,000h,001h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,007h,007h
	db	000h,000h,000h,000h,000h,001h,001h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,001h,001h
	db	001h,01Fh,010h,010h,010h,010h,010h,010h,010h,010h,010h,01Fh,000h,003h
	db	006h,01Fh,01Eh,01Eh,01Eh,01Fh,01Eh,01Eh,01Eh,01Fh,01Eh,01Eh,01Eh,01Fh
	db	01Eh,006h,007h,000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh
	db	0FFh,000
	db 	000h,0FFh,0FFh,0FFh,0FFh,0FFh,0E0h,080h,000h,000h,000h,000h,000h,000h
	db	000h,060h,060h,060h,060h,063h,0F3h,0F3h,0F3h,0F3h,0F7h,0F7h,0F7h,0F7h
	db	0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h
	db	0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h
	db	0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F7h,0F3h,0F0h,0F0h,060h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db 	000h,000h,000h,000h,000h,000h,000h,000h,080h,0E0h,0FFh,0FFh,0FFh,0FFh
	db	0FFh,000
	db 	000h,001h,007h,00Fh,01Fh,03Fh,03Fh,07Fh,07Fh,07Eh,07Eh,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db 	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch,07Ch
	db	07Ch,07Ch,07Ch,07Ch,07Ch,07Eh,07Eh,07Fh,07Fh,03Fh,03Fh,01Fh,00Fh,007h
	db	001h,000
        END
