; get ascii decimal to binary value in dval
; f0 set if user input
 
ascbin:	mov	dval,#0
	mov	dval+1,#0
ascbin2:
	
	clr	f0
	;
asbi2:	call	getchr
	call	upper		; force uppercase
	;
	cjne	a,#'B',nobhit
	
	call	backup
	mov	r7,dval		; R7:R6 dividend
	mov	r6,dval+1
	mov	r5,#0		; R5:R4 divisor
	mov	r4,#10
	call	div16
	mov	dval,r7		; get quotient
	mov	dval+1,r6
	jmp	asbi2
	;
nobhit:	cjne	a,#'E',addit
	ret
notok:	mov	a,#7
	call	sndchr
	jmp	asbi2
	;
addit:	CLR	C
	mov	b,a		; save for later
	subb	a,#'0'		; remove bias
	jc	notok
	cjne	a,#10,gval1
gval1:	jnc	notok
	;
	push	acc		; save char
	mov	a,b		; get saved char
	call	putchr		; show human
	mov	r7,dval		; R7:R6 multiplicand
	mov	r6,dval+1
	mov	r5,#0		; R5:R4 multiplier
	mov	r4,#10
	lcall	mul16
	pop	acc		; get char
	clr	c
	add	a,r6
	mov	r6,a
	mov	a,r7
	addc	a,#0
	mov	r7,a
	mov	dval,r7
	mov	dval+1,r6
	setb	f0
	jmp	asbi2

