	.CODE
Delay_100mS		EQU	016EH
Delay_500mS		EQU	0165H

Serial_Out		EQU	01C8H
Init_Serial		EQU	01B8H

;DF-88 Routines
Init_MT8888		EQU	0682H
Alamat_DF88		EQU	6000H

	Org	2000H			;Reset Vector
	Ajmp	Start			;
	Org	2003H			;External Interrupt 0 Vector
	Reti				;
	Org	200BH			;Timer 0 Interrupt Vector
	Reti				;
	Org	2013H			;External Interrupt 1 Vector
	Reti				;
	Org	201BH			;Timer 1 Interrupt Vector
	Reti				;
	Org	2023H			;Serial Interrupt Vector
	Reti				;

Start:
	Lcall	Init_Serial		;Inisial Serial 9600 Bps
	Mov	DPTR,#Alamat_DF88	;Reset IC MT8888
	Lcall	Init_MT8888		;

Loop:
	Jb	INT0,*			;Tunggu sinyal DTMF
	Mov	DPTR,#Alamat_DF88	;Ambil dari Data Register MT8888
	Movx	A,@DPTR			;
	Anl	A,#0FH			;Hapus Bit ke 4 ... 7
	Cjne	A,#10,TidakKonversi_Nol	;Bila ditekan 0, konversi ke 0
	Mov	A,#00H			;

TidakKonversi_Nol:
	Clr	C			;Tampilkan dalam ASCII
	Add	A,#30H			;
	Lcall	Serial_Out		;
	Inc	DPH			;Baca Status Register untuk 
	Movx	A,@DPTR			;mengembalikan Pin IRQ High
	Jnb	INT0,*			;Tunggu IRQ High
	Ajmp	Loop			;Kembali deteksi DTMF
