; READADH.ASM
; READ THE ANALOG INPUT AND DISPLAY THE VALUE IN HEX
	ORG	8000H		;MUST ALWAYS BE ORG'ED AT 8000H FOR SBC-1
READPOT:
	CLR	C		;(C3 HEX) NEEDED ONLY IF USING AUTOBOOT
REPEAT:	CALL	57H		;ANALOG TO DIGITAL ROUTINE IN JUMP TABLE
	CALL	TXHEX		;SEND VALUE IN ACC TO THE TERMINAL
	CALL	42H		;SEND CR/LF ROUTINE IN JUMP TABLE
	JMP	REPEAT		;KEEP READING AND DISPLAYING


; SEND HEXADECIMAL VALUE IN ACC TO THE TERMINAL AS 2 ASCII DIGITS
TXHEX:	PUSH	ACC		;SAVE VALUE
	SWAP	A		;SWAP NIBBLES
	CALL	HTOA		;CONVERT LOWER NIBBLE TO A HEX CHARACTER
	CALL	3CH		;SERIAL CHARACTER OUT ROUTINE IN JUMP TABLE
	POP	ACC		;RESTORE VALUE
	PUSH	ACC		;SAVE IT AGAIN
	CALL	HTOA		;CONVERT LOWER NIBBLE TO A HEX CHARACTER
	CALL	3CH		;SERIAL CHARACTER OUT ROUTINE IN JUMP TABLE
	POP	ACC		;SO THIS ROUTINE PRESERVES IT
	RET

; CONVERT HEXIDECIMAL VALUE IN ACC TO ASCII CHARACTER IN ACC
HTOA:	ANL	A,#0FH
	MOV	DPTR,#HTOATBL
	MOVC	A,@A+DPTR
	RET

HTOATBL:		DB	'0123456789ABCDEF',0

	END			;NEEDED BY MANY ASSEMBLER PROGRAMS
