Compucolor.org – Virtual Media

Listing of file='BUFPRO.MAC;02' on disk='vmedia/asm_utility_4-sideB-sector.ccvf'


;
;	SCAN PAST SPACES AND COMMA FOR DIGIT
;

SCND:	INX	H		;
	MOV	A,M		;
	CPI 	' '		;
	JZ	SCND		;
	CPI	','		;
	JZ	SCND		;
	CALL	DIG		; ?DIGIT <C>=YES
	CMC			; <NC>=YES
	RET

;
;
;	GETS VALUE FROM BUFFER TO <A>
;

GVAL:	MVI	B,0		; CLEAR <B>
	CALL	G01		; GET SUM IN <B>
	MOV	A,B		; TO <A>
	STC			; SET CARRY
	CMC			; SET <NC> FOR ERROR
	RET

G01:	MOV	A,M		; GET DIGIT
	SUI	'0'		; CHECK IF 0-9
	RC			; NO
	CPI	'9'+1
	RNC			; NO
	MOV	M,A		; BACK TO MEM
	MOV	A,B		; GET CURRENT SUM
	RLC			; *2
	RLC			; *4
	ADD	B		; *5
	RLC			; *10 FOR SUM
	ADD	M		; ADD DIGIT
	MOV	B,A		; SAVE IN B
	INX	H		; POINT TO NEXT DIGIT
	JMP	G01

	END