
	bseg
flag0:	dbit	1

	dseg
	org	030h
input:	ds	2
output:	ds	2
temp:	ds	1
temp1:	ds	1
	
	cseg
	org 	000h

;	mov 	input, #0EDh	;byte to convert
;	call	b2hcv
;	mov	P0, output
;	mov	P1, output+1
;	sjmp	$

	mov	input, #'C'
	mov	input+1, #'D'
	call	h2bcv
	mov	P1, output
	sjmp	$

; -------------------------- BIN TO ASCII
ldnxt:	setb	flag0
	mov	A, input
	swap	A
	jmp	rdtbl
b2hcv:	clr	flag0 ; 	<<< - Subroutine ENTRY
	mov	A, input 
	mov	DPTR, #cnvtb
rdtbl:	anl	A, #00Fh
	movc	A, @A+DPTR
	jb	flag0, nexto
	mov	output+1, A
	jmp	ldnxt
nexto:	mov	output, A
	clr	flag0
	ret

;--------------------------- ASCII TO BIN 
nxtch:	mov	temp, input
	jmp	entry	
h2bcv:	mov	temp, input+1 ; <<< - Subroutine ENTRY
entry:	mov	DPTR, #cnvtb
tstep:	clr	A
	movc	A, @A+DPTR
	xrl	A, temp
	jz	found	
	inc	DPTR
	jmp	tstep
found:	mov	A, DPL
	clr	C
	subb	A, #LOW(cnvtb)
	jb	flag0, lbyte
	mov	temp1, A
	setb	flag0
	jmp	nxtch
lbyte:	swap	A
	mov	R0, #temp1
	xchd	A, @R0
	mov	output, A
	clr	flag0
	ret
	
cnvtb:	db	'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
	end