
	.DATA
	Org	50H
DisplayStatus	Ds	1

;RAM Internal yang digunakan:
;Alamat yang digunakan oleh Program Monitor
;20H hingga 27H untuk Variabel Program Monitor
;30H hingga 4FH untuk Buffer Perintah bagi Program Monitor
;Alamat yang digunakan untuk Built In Routine
;28H untuk rutin delay
;29H untuk variabel rutin LCD
;2AH untuk variabel rutin Phone Interface

;Umum
	.CODE
HexASCII2		EQU	00FAH
HexASCII1		EQU	0106H
ASCII_Hex		EQU	0113H
ASCII_Hex1		EQU	0123H
Dec_DPTR		EQU	0130H
Capitalize		EQU	013CH
Space_Code		EQU	014EH
Writeext_memory		EQU	0157H
Delay_1detik		EQU	015CH
Delay_500mS		EQU	0165H
Delay_100mS		EQU	016EH
Delay_75mS		EQU	0177H
Delay_5mS		EQU	0180H
ASCII_Out		EQU	0197H
Out_DPTR		EQU	01A0H
Enter_Code		EQU	01ABH
Init_Serial		EQU	01B8H
Serial_Out		EQU	01C8H
Serial_In		EQU	01D0H
KirimPesan_Serial	EQU	01D8H
Filter			EQU	01E4H


;HD44780 
GeserDisplay_Kanan	EQU	0208H
GeserDisplay_Kiri	EQU	020FH
PosisiAwal_LCD		EQU	0216H
GeserCursor_Kiri	EQU	021DH
GeserCursor_Kanan	EQU	0224H
KirimPesan_LCD		EQU	022BH
Init_LCD		EQU	0237H
Kirim_Perintah		EQU	0276H
Kirim_Karakter		EQU	0295H
Baris2_LCD		EQU	029FH
Baris1_LCD		EQU	02A4H

;Keypad
Ambil_Keypad		EQU	02C3H

;Keyboard
Init_Keyboard		EQU	0340H
Ambil_Keyboard		EQU	034AH
Konversi_Scancode	EQU	0372H
Keyboard_Interrupt	EQU	0377H

;RTC-1287 Routines
;Alamat RTC harus diset pada DPTR terlebih dahulu
;Interrupt harus diaktifkan apabila ingin alarm interrupt

Init_RTC		EQU	0434H
Kalender_Display	EQU	0441H
Display_Waktu		EQU	04A5H
Set_Waktu		EQU	04D8H
Set_Alarm		EQU	0517H
Baca_Alarm		EQU	0543H
Alarm_Interrupt		EQU	0567H
Ambil_DetikAlarm	EQU	0586H
Ambil_MenitAlarm	EQU	058DH
Ambil_JamAlarm		EQU	0594H
Ambil_Detik		EQU	059BH
Ambil_Menit		EQU	05A2H
Ambil_Jam		EQU	05A9H
Ambil_Hari		EQU	05B0H
Ambil_Tanggal		EQU	05B7H
Ambil_Bulan		EQU	05BEH
Ambil_Tahun		EQU	05C5H

;DF-88 Routines
;Mode DTMF
Init_MT8888		EQU	0682H
Kirim_DTMF		EQU	0695H
CP_Mode			EQU	06A1H
Awal_CP			EQU	06AAH
TungguAkhir_CP		EQU	06CCH
;Mode Pulse
AmbilPulse_Dial		EQU	06E9H
KirimPulse_Dial		EQU	0730H
;Serial EEPROM
Tulis_SEE		EQU	753H
Baca_SEE		EQU	785H
ROM			EQU	2000H
Tabel_Segment		EQU	50H

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

	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:
;Set Home Address
	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	A
	Push	B
	Mov	B,#04H
	Ajmp	EksekusiON

GrafikON:
	Push	A
	Push	B
	Mov	B,#08H
	Ajmp	EksekusiON

CursorONBlinkON:
	Push	A
	Push	B
	Mov	B,#03H

EksekusiON:
	Mov	A,DisplayStatus
	Orl	A,B
	Push	A
	Lcall	197H
	Pop	A
	Acall	KirimPerintah
	Mov	DisplayStatus,A
	Pop	B
	Pop	A
	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	A
	Acall	KirimData2x		;
	Pop	A
	Mov	A,R7
	Acall	KirimPerintah		;
	Pop	07H
	Ret

**********************************
; SUBROUTINE MENGIRIMKAN DATA KE REGISTER DATA
Autowrite:
	Push	DPH			
	Push	DPL
	Push	A
	Mov	DPTR,#CMDP		;Kirim alamat register command

TungguAWR:
	Movx	A,@DPTR			;Tunggu sampai tidak busy
	Anl	A,#08H			;
	Cjne	A,#08H,TungguAWR	;
	Pop	A			;
	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	A

TungguStatus:
	Mov	DPTR,#CMDP
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,TungguStatus
	Pop	A
	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	A	
	Push	A

TungguStatus2:
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,TungguStatus2
	Pop	A
	Mov	DPTR,#DP
	Movx	@DPTR,A

TungguStatus3:
	Mov	DPTR,#CMDP
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,TungguStatus3
	Pop	A
	Mov	A,B
	Mov	DPTR,#DP
	Movx	@DPTR,A
	Pop	DPL
	Pop	DPH
	Ret
TungguStatus1:
	Push	A
	Push	DPH
	Push	DPL
	Mov	DPTR,#CMDP
LoopTgSt1:
	Movx	A,@DPTR
	Anl	A,#03H
	Cjne	A,#03H,LoopTgSt1
	Pop	DPL
	Pop	DPH
	Pop	A
	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	A
	Mov	A,#90H
	Acall	KirimPerintah
	Pop	A
	Ret

CursorONBlinOFF:
	Push	A
	Mov	A,#92H
	Acall	KirimPerintah
	Pop	A
	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
